From 61734fc304e8d890a6bf8715bee9be203e0af9f0 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 06 9月 2024 10:21:05 +0800
Subject: [PATCH] 入库优化

---
 yiqi_iwara-scada-web/src/api/modular/main/WorkPieceOutboundManage.js     |    9 +
 yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/editForm.vue |  125 +++++++++++++++
 yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/index.vue    |  229 ++++++++++++++++++++++++++++
 yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/addForm.vue  |  102 ++++++++++++
 yiqi_iwara-scada-web/src/views/main/WorkPieceOutbound/index.vue          |   12 
 5 files changed, 471 insertions(+), 6 deletions(-)

diff --git a/yiqi_iwara-scada-web/src/api/modular/main/WorkPieceOutboundManage.js b/yiqi_iwara-scada-web/src/api/modular/main/WorkPieceOutboundManage.js
index 471d6b6..680d19d 100644
--- a/yiqi_iwara-scada-web/src/api/modular/main/WorkPieceOutboundManage.js
+++ b/yiqi_iwara-scada-web/src/api/modular/main/WorkPieceOutboundManage.js
@@ -13,6 +13,15 @@
   })
 }
 
+export function WorkPieceOutboundRecordPage (parameter) {
+  return axios({
+    url: '/WorkPieceOutbound/pageForRecord',
+    method: 'get',
+    params: parameter
+  })
+}
+
+
 /**
  * 宸ヤ欢鍑哄簱淇℃伅鍒楄〃
  *
diff --git a/yiqi_iwara-scada-web/src/views/main/WorkPieceOutbound/index.vue b/yiqi_iwara-scada-web/src/views/main/WorkPieceOutbound/index.vue
index 90ad060..ae62d89 100644
--- a/yiqi_iwara-scada-web/src/views/main/WorkPieceOutbound/index.vue
+++ b/yiqi_iwara-scada-web/src/views/main/WorkPieceOutbound/index.vue
@@ -15,12 +15,12 @@
               </a-form-item>
             </a-col>
             <a-col :md="colMd" :sm="colSm">
-              <a-form-item label="鍑哄簱浜�">
-                <a-input v-model="queryParam.workPieceOutboundUserName" allow-clear placeholder="璇疯緭鍏ュ嚭搴撲汉" />
+              <a-form-item label="鍏ュ簱浜�">
+                <a-input v-model="queryParam.workPieceOutboundUserName" allow-clear placeholder="璇疯緭鍏ュ叆搴撲汉" />
               </a-form-item>
             </a-col>
             <a-col :md="colMd" :sm="colSm">
-              <a-form-item label="鍑哄簱鏃堕棿">
+              <a-form-item label="鍏ュ簱鏃堕棿">
                 <a-range-picker style="width:100%" :show-time="{format:'HH:mm'}" v-model="queryParam.dates" format="YYYY-MM-DD HH:mm" />
               </a-form-item>
             </a-col>
@@ -144,13 +144,13 @@
         //   dataIndex: 'workPieceUnLineUserName'
         // },
         {
-          title: '鍑哄簱鏃堕棿',
+          title: '鍏ュ簱鏃堕棿',
           align: 'center',
           sorter: true,
           dataIndex: 'workPieceOutboundTime'
         },
         {
-          title: '鍑哄簱浜�',
+          title: '鍏ュ簱浜�',
           align: 'center',
           sorter: true,
           dataIndex: 'workPieceOutboundUserName'
@@ -208,7 +208,7 @@
     allRevoke() {
       this.$confirm({
         title: '鎾ら攢纭',
-        content: '纭畾鎾ら攢閫変腑宸ヤ欢鍑哄簱淇℃伅锛�',
+        content: '纭畾鎾ら攢閫変腑宸ヤ欢鍏ュ簱淇℃伅锛�',
         onOk: () => {
           this.WorkPieceOutboundDelete(this.selectedRows)
         },
diff --git a/yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/addForm.vue b/yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/addForm.vue
new file mode 100644
index 0000000..9b344e2
--- /dev/null
+++ b/yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/addForm.vue
@@ -0,0 +1,102 @@
+锘�<template>
+  <a-modal
+    title="鏂板宸ヤ欢鍑哄簱淇℃伅"
+    :width="900"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    @ok="handleSubmit"
+    @cancel="handleCancel">
+    <a-spin :spinning="confirmLoading">
+		<a-form :form="form">
+        <a-form-item label="宸ヤ欢鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+          <a-input placeholder="璇疯緭鍏ュ伐浠跺彿" v-decorator="['workPieceID', {rules: [{required: true, message: '璇疯緭鍏ュ伐浠跺彿锛�'}]}]" />
+        </a-form-item>
+        <a-form-item label="OP80鎴愬搧鐮�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+          <a-input placeholder="璇疯緭鍏P80鎴愬搧鐮�" v-decorator="['oP80NewCode', {rules: [{required: true, message: '璇疯緭鍏P80鎴愬搧鐮侊紒'}]}]" />
+        </a-form-item>
+        <a-form-item label="鍑哄簱鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+          <a-date-picker style="width: 100%" placeholder="璇烽�夋嫨鍑哄簱鏃堕棿" v-decorator="['workPieceOutboundTime',{rules: [{ required: true, message: '璇烽�夋嫨鍑哄簱鏃堕棿锛�' }]}]" @change="onChangeworkPieceOutboundTime"/>
+        </a-form-item>
+        <a-form-item label="鍑哄簱浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+          <a-date-picker style="width: 100%" placeholder="璇烽�夋嫨鍑哄簱浜�" v-decorator="['workPieceOutboundUser',{rules: [{ required: true, message: '璇烽�夋嫨鍑哄簱浜猴紒' }]}]" @change="onChangeworkPieceOutboundUser"/>
+        </a-form-item>
+      </a-form>
+    </a-spin>
+  </a-modal>
+</template>
+
+<script>
+  import {
+    WorkPieceOutboundAdd
+  } from '@/api/modular/main/WorkPieceOutboundManage'
+  export default {
+    data () {
+      return {
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 5 }
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 15 }
+        },
+        workPieceOutboundTimeDateString: '',
+        workPieceOutboundUserDateString: '',
+        visible: false,
+        confirmLoading: false,
+        form: this.$form.createForm(this)
+      }
+    },
+    methods: {
+      // 鍒濆鍖栨柟娉�
+      add (record) {
+        this.visible = true
+        this.$nextTick(() => {
+
+        });
+      },
+      /**
+       * 鎻愪氦琛ㄥ崟
+       */
+      handleSubmit () {
+        const { form: { validateFields } } = this
+        this.confirmLoading = true
+        validateFields((errors, values) => {
+          if (!errors) {
+            for (const key in values) {
+              if (typeof (values[key]) === 'object') {
+                values[key] = JSON.stringify(values[key])
+              }
+            }
+            values.workPieceOutboundTime = this.workPieceOutboundTimeDateString
+            values.workPieceOutboundUser = this.workPieceOutboundUserDateString
+            WorkPieceOutboundAdd(values).then((res) => {
+              if (res.success) {
+                this.$message.success('鏂板鎴愬姛')
+                this.confirmLoading = false
+                this.$emit('ok', values)
+                this.handleCancel()
+              } else {
+                this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message))
+              }
+            }).finally((res) => {
+              this.confirmLoading = false
+            })
+          } else {
+            this.confirmLoading = false
+          }
+        })
+      },
+      onChangeworkPieceOutboundTime(date, dateString) {
+        this.workPieceOutboundTimeDateString = dateString
+      },
+      onChangeworkPieceOutboundUser(date, dateString) {
+        this.workPieceOutboundUserDateString = dateString
+      },
+      handleCancel () {
+        this.form.resetFields()
+        this.visible = false
+      }
+    }
+  }
+</script>
diff --git a/yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/editForm.vue b/yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/editForm.vue
new file mode 100644
index 0000000..d0bed47
--- /dev/null
+++ b/yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/editForm.vue
@@ -0,0 +1,125 @@
+锘�<template>
+  <a-modal
+    title="缂栬緫宸ヤ欢鍑哄簱淇℃伅"
+    :width="900"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    @ok="handleSubmit"
+    @cancel="handleCancel">
+    <a-spin :spinning="confirmLoading">
+      <a-form :form="form">
+        <a-form-item label="宸ヤ欢鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+          <a-input placeholder="璇疯緭鍏ュ伐浠跺彿" v-decorator="['workPieceID', {rules: [{required: true, message: '璇疯緭鍏ュ伐浠跺彿锛�'}]}]" />
+        </a-form-item>
+        <a-form-item label="OP80鎴愬搧鐮�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+          <a-input placeholder="璇疯緭鍏P80鎴愬搧鐮�" v-decorator="['oP80NewCode', {rules: [{required: true, message: '璇疯緭鍏P80鎴愬搧鐮侊紒'}]}]" />
+        </a-form-item>
+        <a-form-item label="鍑哄簱鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+          <a-date-picker style="width: 100%" placeholder="璇烽�夋嫨鍑哄簱鏃堕棿" v-decorator="['workPieceOutboundTime',{rules: [{ required: true, message: '璇烽�夋嫨鍑哄簱鏃堕棿锛�' }]}]" @change="onChangeworkPieceOutboundTime"/>
+        </a-form-item>
+        <a-form-item label="鍑哄簱浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+          <a-date-picker style="width: 100%" placeholder="璇烽�夋嫨鍑哄簱浜�" v-decorator="['workPieceOutboundUser',{rules: [{ required: true, message: '璇烽�夋嫨鍑哄簱浜猴紒' }]}]" @change="onChangeworkPieceOutboundUser"/>
+        </a-form-item>
+        <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item>
+      </a-form>
+    </a-spin>
+  </a-modal>
+</template>
+
+<script>
+  import moment from 'moment'
+  import {
+    WorkPieceOutboundEdit
+  } from '@/api/modular/main/WorkPieceOutboundManage'
+  export default {
+    data () {
+      return {
+	    Id: 0,
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 5 }
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 15 }
+        },
+        record: {},
+        workPieceOutboundTimeDateString: '',
+        workPieceOutboundUserDateString: '',
+        visible: false,
+        confirmLoading: false,
+        form: this.$form.createForm(this)
+      }
+    },
+    methods: {
+      moment,
+      // 鍒濆鍖栨柟娉�
+      edit (record) {
+        this.visible = true;
+		this.Id = record.id;
+        this.$nextTick(() => {
+        });
+        //娣卞害鎷疯礉 绉婚櫎VUE鐨勭洃鍚紝闃叉INDEX椤甸潰鍊煎彉鍔�
+        this.record = JSON.parse(JSON.stringify(record))
+        this.$nextTick(() => {
+          this.form.setFieldsValue(
+            {
+              id: record.id,
+              workPieceID: record.workPieceID,
+              oP80NewCode: record.oP80NewCode
+            }
+          )
+        })
+        this.form.getFieldDecorator('workPieceOutboundTime', { initialValue: moment(record.workPieceOutboundTime, 'YYYY-MM-DD') })
+        this.workPieceOutboundTimeDateString = moment(record.workPieceOutboundTime).format('YYYY-MM-DD')
+        this.form.getFieldDecorator('workPieceOutboundUser', { initialValue: moment(record.workPieceOutboundUser, 'YYYY-MM-DD') })
+        this.workPieceOutboundUserDateString = moment(record.workPieceOutboundUser).format('YYYY-MM-DD')
+      },
+      handleSubmit () {
+        const { form: { validateFields } } = this
+        this.confirmLoading = true
+        validateFields((errors, values) => {
+          if (!errors) {
+            for (const key in values) {
+              if (values[key] == null) continue
+              if (typeof (values[key]) === 'object') {
+                values[key] = JSON.stringify(values[key])
+                 this.record[key] = values[key]
+              } else {
+                 this.record[key] = values[key]
+              }
+            }
+            values.workPieceOutboundTime = this.workPieceOutboundTimeDateString
+            this.record.workPieceOutboundTime = this.workPieceOutboundTimeDateString
+            values.workPieceOutboundUser = this.workPieceOutboundUserDateString
+            this.record.workPieceOutboundUser = this.workPieceOutboundUserDateString
+            WorkPieceOutboundEdit(this.record).then((res) => {
+              if (res.success) {
+                this.$message.success('缂栬緫鎴愬姛')
+                this.confirmLoading = false
+                this.$emit('ok', this.record)
+                this.handleCancel()
+              } else {
+                this.$message.error('缂栬緫澶辫触锛�' + JSON.stringify(res.message))
+              }
+            }).finally((res) => {
+              this.confirmLoading = false
+            })
+          }else{
+            this.confirmLoading = false
+          } 
+        });
+      },
+      onChangeworkPieceOutboundTime(date, dateString) {
+        this.workPieceOutboundTimeDateString = dateString
+      },
+      onChangeworkPieceOutboundUser(date, dateString) {
+        this.workPieceOutboundUserDateString = dateString
+      },
+      handleCancel () {
+        this.form.resetFields()
+        this.visible = false
+      }
+    }
+  }
+</script>
diff --git a/yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/index.vue b/yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/index.vue
new file mode 100644
index 0000000..8d1e504
--- /dev/null
+++ b/yiqi_iwara-scada-web/src/views/main/WorkPieceOutboundRecord/index.vue
@@ -0,0 +1,229 @@
+锘�<template>
+  <div>
+    <a-card :bordered="false" :bodyStyle="tstyle">
+      <div class="table-page-search-wrapper" v-if="hasPerm('WorkPieceOutbound:page')">
+        <a-form layout="inline" :label-col="labelCol" :wrapper-col="wrapperCol">
+          <a-row :gutter="gutter">
+            <a-col :md="colMd" :sm="colSm">
+              <a-form-item label="宸ヤ欢鍙�">
+                <a-input v-model="queryParam.workPieceID" allow-clear placeholder="璇疯緭鍏ュ伐浠跺彿" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="colMd" :sm="colSm">
+              <a-form-item label="鎴愬搧鐮�">
+                <a-input v-model="queryParam.oP80NewCode" allow-clear placeholder="璇疯緭鍏ユ垚鍝佺爜" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="colMd" :sm="colSm">
+              <a-form-item label="鎿嶄綔浜�">
+                <a-input v-model="queryParam.workPieceOutboundUserName" allow-clear placeholder="璇疯緭鍏ユ搷浣滀汉" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="colMd" :sm="colSm">
+              <a-form-item label="鎿嶄綔鏃堕棿">
+                <a-range-picker style="width:100%" :show-time="{format:'HH:mm'}" v-model="queryParam.dates" format="YYYY-MM-DD HH:mm" />
+              </a-form-item>
+            </a-col>
+            <template v-if="advanced">
+
+            </template>
+
+            <a-col :md="colMd" :sm="colSm">
+              <span class="table-page-search-submitButtons">
+                <a-button type="primary" @click="$refs.table.refresh(true)">鏌ヨ</a-button>
+                <a-button style="margin-left: 8px" @click="() => (queryParam = {})">閲嶇疆</a-button>
+                <!-- <a @click="toggleAdvanced" style="margin-left: 8px">
+                  {{ advanced ? '鏀惰捣' : '灞曞紑' }}
+                  <a-icon :type="advanced ? 'up' : 'down'" />
+                </a> -->
+              </span>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+    </a-card>
+    <a-card :bordered="false">
+      <s-table
+        ref="table"
+        :columns="columns"
+        :data="loadData"
+        :alert="true"
+        :rowKey="(record) => record.id"
+        :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
+      >
+      </s-table>
+      <add-form ref="addForm" @ok="handleOk" />
+      <edit-form ref="editForm" @ok="handleOk" />
+    </a-card>
+  </div>
+</template>
+<script>
+import { STable } from '@/components'
+import moment from 'moment'
+import { WorkPieceOutboundRecordPage, WorkPieceOutboundRevoke } from '@/api/modular/main/WorkPieceOutboundManage'
+import addForm from './addForm.vue'
+import editForm from './editForm.vue'
+export default {
+  components: {
+    STable,
+    addForm,
+    editForm
+  },
+  data() {
+    return {
+      gutter: 36,
+      colMd: 6,
+      colSm: 18,
+      labelCol: {
+        xs: { span: 24 },
+        sm: { span: 8 }
+      },
+      wrapperCol: {
+        xs: { span: 24 },
+        sm: { span: 15 }
+      },
+      advanced: false, // 楂樼骇鎼滅储 灞曞紑/鍏抽棴
+      queryParam: {},
+      columns: [
+      {
+            title: '搴忓彿',
+            width: '50px',
+            dataIndex: 'index',
+            key: 'index',
+            align: 'center',
+            customRender: (text, record, index) => `${index + 1}`
+          },
+          {
+          title: '鎴愬搧鐮�',
+          align: 'center',
+          sorter: true,
+          dataIndex: 'oP80NewCode'
+        },
+        {
+          title: '鎿嶄綔绫诲瀷',
+          align: 'center',
+          sorter: true,
+          dataIndex: 'operationType'
+        },
+        // {
+        //   title: '灏忚溅鐮�',
+        //   align: 'center',
+        //   sorter: true,
+        //   dataIndex: 'carNo'
+        // },
+        {
+          title: '宸ヤ欢鍙�',
+          align: 'center',
+          sorter: true,
+          dataIndex: 'workPieceID'
+        },
+        // {
+        //   title: '涓嬬嚎鏃堕棿',
+        //   align: 'center',
+        //   sorter: true,
+        //   dataIndex: 'workPieceUnLineTime'
+        // },
+        // {
+        //   title: '涓嬬嚎浜�',
+        //   align: 'center',
+        //   sorter: true,
+        //   dataIndex: 'workPieceUnLineUserName'
+        // },
+        {
+          title: '鎿嶄綔鏃堕棿',
+          align: 'center',
+          sorter: true,
+          dataIndex: 'createdTime'
+        },
+        {
+          title: '鎿嶄綔浜�',
+          align: 'center',
+          sorter: true,
+          dataIndex: 'createdUserName'
+        }
+      ],
+      tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
+      // 鍔犺浇鏁版嵁鏂规硶 蹇呴』涓� Promise 瀵硅薄
+      loadData: (parameter) => {
+        return WorkPieceOutboundRecordPage(Object.assign(parameter, this.switchingDate())).then((res) => {
+          return res.data
+        })
+      },
+      selectedRowKeys: [],
+      selectedRows: []
+    }
+  },
+  created() {
+    if (this.hasPerm('WorkPieceOutbound:edit') || this.hasPerm('WorkPieceOutbound:delete')) {
+      // this.columns.push({
+      //   title: '鎿嶄綔',
+      //   width: '150px',
+      //   dataIndex: 'action',
+      //   scopedSlots: { customRender: 'action' }
+      // })
+    }
+  },
+  methods: {
+    moment,
+    /**
+     * 鏌ヨ鍙傛暟缁勮
+     */
+     switchingDate() {
+      const dates = this.queryParam.dates
+      if (dates != null) {
+        this.queryParam.startTimeBeginTime = moment(dates[0]).format('YYYY-MM-DD HH:mm')
+        this.queryParam.startTimeEndTime = moment(dates[1]).format('YYYY-MM-DD HH:mm')
+        if (dates.length < 1) {
+          delete this.queryParam.startTimeBeginTime
+          delete this.queryParam.startTimeEndTime
+        }
+      }
+      const obj = JSON.parse(JSON.stringify(this.queryParam))
+      return obj
+    },
+    WorkPieceOutboundDelete(record) {
+      WorkPieceOutboundRevoke(record).then((res) => {
+        if (res.success) {
+          this.$message.success('鎾ら攢鎴愬姛')
+          this.$refs.table.refresh()
+        } else {
+          this.$message.error('鎾ら攢澶辫触') // + res.message
+        }
+      })
+    },
+    allRevoke() {
+      this.$confirm({
+        title: '鎾ら攢纭',
+        content: '纭畾鎾ら攢閫変腑宸ヤ欢鍏ュ簱淇℃伅锛�',
+        onOk: () => {
+          this.WorkPieceOutboundDelete(this.selectedRows)
+        },
+        onCancel() {
+          console.log('Cancel')
+        }
+      })
+    },
+    toggleAdvanced() {
+      this.advanced = !this.advanced
+    },
+    onChangeworkPieceOutboundTime(date, dateString) {
+      this.workPieceOutboundTimeDateString = dateString
+    },
+    handleOk() {
+      this.$refs.table.refresh()
+    },
+    onSelectChange(selectedRowKeys, selectedRows) {
+      this.selectedRowKeys = selectedRowKeys
+      this.selectedRows = selectedRows
+    }
+  }
+}
+</script>
+<style lang="less">
+.table-operator {
+  margin-bottom: 18px;
+}
+button {
+  margin-right: 8px;
+}
+</style>

--
Gitblit v1.9.3