From 34feb4908ec7b7e5b51adf6355603978c67bd3a4 Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期四, 05 六月 2025 09:53:14 +0800
Subject: [PATCH] 申请单入库

---
 src/views/eam/maintenance/EamInspectionOrderList.vue |  424 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 274 insertions(+), 150 deletions(-)

diff --git a/src/views/eam/maintenance/EamInspectionOrderList.vue b/src/views/eam/maintenance/EamInspectionOrderList.vue
index 3fb8659..ecdc95a 100644
--- a/src/views/eam/maintenance/EamInspectionOrderList.vue
+++ b/src/views/eam/maintenance/EamInspectionOrderList.vue
@@ -1,39 +1,33 @@
 <template>
   <a-card :bordered="false">
     <!-- 鏌ヨ鍖哄煙 -->
-    <div class="table-page-search-wrapper">
+    <div class="table-page-search-wrapper" v-if="isDisplayOperation">
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-row :gutter="24">
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+          <a-col :xl="4" :lg="7" :md="8" :sm="24">
             <a-form-item label="宸ュ崟鍙�">
               <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="queryParam.orderNum"></a-input>
             </a-form-item>
           </a-col>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="璁惧ID">
-              <a-input placeholder="璇疯緭鍏ヨ澶嘔D" v-model="queryParam.equipmentId"></a-input>
+          <a-col :xl="4" :lg="7" :md="8" :sm="24">
+            <a-form-item label="璁惧缂栧彿">
+              <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="queryParam.equipmentId"></lx-search-equipment-select>
             </a-form-item>
           </a-col>
-          <template v-if="toggleSearchStatus">
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="鐐规鏃ユ湡">
-                <j-date placeholder="璇烽�夋嫨鐐规鏃ユ湡" v-model="queryParam.inspectionDate"></j-date>
-              </a-form-item>
-            </a-col>
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="鐐规鏃堕棿">
-                <j-date placeholder="璇烽�夋嫨鐐规鏃堕棿" v-model="queryParam.operateTime"></j-date>
-              </a-form-item>
-            </a-col>
-          </template>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="璁″垝鐐规鏃ユ湡">
+              <a-range-picker v-model="queryParam.inspectionDateRange" @change="onInspectionDateChange" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
+            </a-form-item>
+          </a-col>
+          <a-col :xl="4" :lg="7" :md="8" :sm="24">
+            <a-form-item label="鐐规鐘舵��">
+              <j-dict-select-tag placeholder="璇烽�夋嫨鐐规鐘舵��" dict-code="inspection_status" v-model="queryParam.inspectionStatus" />
+            </a-form-item>
+          </a-col>
+          <a-col :xl="4" :lg="7" :md="8" :sm="24">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
+              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>
             </span>
           </a-col>
         </a-row>
@@ -42,24 +36,30 @@
     <!-- 鏌ヨ鍖哄煙-END -->
 
     <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
-<!--      <a-button type="primary" icon="download" @click="handleExportXls('eam_inspection_order')">瀵煎嚭</a-button>-->
-<!--      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
-<!--        <a-button type="primary" icon="import">瀵煎叆</a-button>-->
-<!--      </a-upload>-->
+    <div class="table-operator" v-if="isDisplayOperation">
+      <a-button @click="handleAdd" type="primary" icon="plus" v-if="isShowAuth('eam:inspection:add')">鏂板</a-button>
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>鍒犻櫎</a-menu-item>
+          <a-menu-item key="1" v-if="isShowAuth('eam:inspection:abolish')" @click="batchZf('ABOLISH')">
+            <a-icon type="snippets"/>
+            浣滃簾
+          </a-menu-item>
+          <a-menu-item key="2" v-if="isShowAuth('eam:inspection:collect')" @click="batchLq('UNDER_INSPECTION')">
+            <a-icon type="form"/>
+            棰嗗彇
+          </a-menu-item>
         </a-menu>
-        <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 <a-icon type="down" /></a-button>
+        <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔
+          <a-icon type="down"/>
+        </a-button>
       </a-dropdown>
     </div>
 
     <!-- table鍖哄煙-begin -->
     <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤�
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;" v-if="isDisplayOperation">
+        <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{
+        selectedRowKeys.length }}</a>椤�
         <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a>
       </div>
 
@@ -77,49 +77,38 @@
         class="j-table-force-nowrap"
         @change="handleTableChange">
 
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-        <template slot="imgSlot" slot-scope="text,record">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span>
-          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
-        </template>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">
-            涓嬭浇
-          </a-button>
-        </template>
-
         <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">缂栬緫</a>
+            <a @click="handleEdit(record)" v-if="isShowAuth('eam:inspection:edit') && record.inspectionStatus === 'WAIT_INSPECTION'" >缂栬緫</a>
 
-          <a-divider type="vertical" />
+          <a-divider type="vertical" v-if="isShowAuth('eam:inspection:edit') && record.inspectionStatus === 'WAIT_INSPECTION'" />
+
+          <a-popconfirm title="纭畾棰嗗彇鍚�?" v-if="isShowAuth('eam:inspection:collect') && record.inspectionStatus === 'WAIT_INSPECTION'"
+                        @confirm="() => handleInspection(record.id)">
+                  <a>棰嗗彇</a>
+          </a-popconfirm>
+
+          <a-divider type="vertical" v-if="isShowAuth('eam:inspection:collect') && record.inspectionStatus === 'WAIT_INSPECTION'" />
+
           <a-dropdown>
-            <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
+            <a class="ant-dropdown-link">鏇村 <a-icon type="down"/></a>
             <a-menu slot="overlay">
               <a-menu-item>
                 <a @click="handleDetail(record)">璇︽儏</a>
               </a-menu-item>
-              <a-menu-item>
-                <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">
-                  <a>鍒犻櫎</a>
+              <a-menu-item v-if="isShowAuth('eam:inspection:abolish') && record.inspectionStatus === 'WAIT_INSPECTION'">
+                <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handleOrReceive(record.id)">
+                  <a>浣滃簾</a>
                 </a-popconfirm>
               </a-menu-item>
             </a-menu>
           </a-dropdown>
         </span>
-
       </a-table>
     </div>
 
     <eam-inspection-order-modal ref="modalForm" @ok="modalFormOk"></eam-inspection-order-modal>
+
+    <inspection-order-handle ref="modalFormXq" :selectShenpiData="selectInspectionOrderXqData"/>
   </a-card>
 </template>
 
@@ -129,149 +118,284 @@
   import { mixinDevice } from '@/utils/mixin'
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
   import EamInspectionOrderModal from './modules/EamInspectionOrderModal'
+  import { deleteAction, getAction } from '@api/manage'
+  import InspectionOrderHandle from '../../flowable/workflow/InspectionOrder/InspectionOrderHandle'
+  import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
 
   export default {
     name: 'EamInspectionOrderList',
-    mixins:[JeecgListMixin, mixinDevice],
+    mixins: [JeecgListMixin, mixinDevice],
     components: {
-      EamInspectionOrderModal
+      InspectionOrderHandle,
+      EamInspectionOrderModal,
+      LxSearchEquipmentSelect,
     },
-    data () {
+    props: {
+      isDisplayOperation: {
+        type: Boolean,
+        default: true
+      }
+    },
+    data() {
       return {
         description: 'eam_inspection_order绠$悊椤甸潰',
+        disableMixinCreated: true,
         // 琛ㄥご
         columns: [
           {
             title: '#',
             dataIndex: '',
-            key:'rowIndex',
-            width:60,
-            align:"center",
-            customRender:function (t,r,index) {
-              return parseInt(index)+1;
+            key: 'rowIndex',
+            width: 60,
+            align: 'center',
+            customRender: function(t, r, index) {
+              return parseInt(index) + 1
             }
           },
           {
-            title:'宸ュ崟鍙�',
-            align:"center",
+            title: '宸ュ崟鍙�',
+            align: 'center',
             dataIndex: 'orderNum'
           },
           {
-            title:'璁惧缂栧彿',
-            align:"center",
-            dataIndex: 'equipmentId'
+            title: '璁惧缂栧彿',
+            align: 'center',
+            dataIndex: 'equipmentCode'
           },
           {
-            title:'鏍囧噯缂栫爜',
-            align:"center",
-            dataIndex: 'standardId'
+            title: '璁惧鍚嶇О',
+            align: 'center',
+            dataIndex: 'equipmentName'
           },
           {
-            title:'鐐规鏃ユ湡',
-            align:"center",
+            title: '鏍囧噯鍚嶇О',
+            align: 'center',
+            dataIndex: 'standardId_dictText'
+          },
+          {
+            title: '鐐规鏃ユ湡',
+            align: 'center',
             dataIndex: 'inspectionDate',
-            customRender:function (text) {
-              return !text?"":(text.length>10?text.substr(0,10):text)
+            customRender: function(text) {
+              return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
             }
           },
           {
-            title:'鐐规鏃堕棿',
-            align:"center",
-            dataIndex: 'operateTime',
-            customRender:function (text) {
-              return !text?"":(text.length>10?text.substr(0,10):text)
-            }
-          },
-          {
-            title:'鐐规浜�',
-            align:"center",
-            dataIndex: 'operator'
-          },
-          {
-            title:'鐐规杩囨湡鏃堕棿',
-            align:"center",
+            title: '鐐规杩囨湡鏃ユ湡',
+            align: 'center',
             dataIndex: 'expirationTime',
-            customRender:function (text) {
-              return !text?"":(text.length>10?text.substr(0,10):text)
+            customRender: function(text) {
+              return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
             }
           },
           {
-            title:'鍒涘缓鏂瑰紡',
-            align:"center",
-            dataIndex: 'creationMethod'
+            title: '鍒涘缓鏂瑰紡',
+            align: 'center',
+            dataIndex: 'creationMethod_dictText'
           },
           {
-            title:'鐐规鐘舵��',
-            align:"center",
+            title: '鐐规鐘舵��',
+            align: 'center',
             dataIndex: 'inspectionStatus_dictText'
           },
           {
-            title:'鐝粍闀跨‘璁�',
-            align:"center",
-            dataIndex: 'confirmUser'
+            title: '鐐规浜�',
+            align: 'center',
+            dataIndex: 'operator_dictText'
           },
           {
-            title:'纭鏃堕棿',
-            align:"center",
+            title: '鐐规鏃堕棿',
+            align: 'center',
+            dataIndex: 'operateTime',
+          },
+          {
+            title: '绠$悊鍛樼‘璁�',
+            align: 'center',
+            dataIndex: 'confirmUser_dictText'
+          },
+          {
+            title: '纭鏃堕棿',
+            align: 'center',
             dataIndex: 'confirmTime',
-            customRender:function (text) {
-              return !text?"":(text.length>10?text.substr(0,10):text)
-            }
           },
           {
-            title:'澶囨敞',
-            align:"center",
-            dataIndex: 'remark'
-          },
-          {
-            title: '鎿嶄綔',
-            dataIndex: 'action',
-            align:"center",
-            fixed:"right",
-            width:147,
-            scopedSlots: { customRender: 'action' }
+            title: '纭鎰忚',
+            align: 'center',
+            dataIndex: 'confirmComment',
           }
         ],
         url: {
-          list: "/eam/eamInspectionOrder/list",
-          delete: "/eam/eamInspectionOrder/delete",
-          deleteBatch: "/eam/eamInspectionOrder/deleteBatch",
-          exportXlsUrl: "/eam/eamInspectionOrder/exportXls",
-          importExcelUrl: "eam/eamInspectionOrder/importExcel",
-
+          list: '/eam/eamInspectionOrder/list',
+          cancelInspectionOrder: '/eam/eamInspectionOrder/cancelInspectionOrder',
+          deleteBatch: '/eam/eamInspectionOrder/deleteBatch',
+          exportXlsUrl: '/eam/eamInspectionOrder/exportXls',
+          importExcelUrl: 'eam/eamInspectionOrder/importExcel',
+          receiveInspectionOrder: 'eam/eamInspectionOrder/receiveInspectionOrder',
+          cancelOrReceive: 'eam/eamInspectionOrder/cancelOrReceive'
         },
-        dictOptions:{},
-        superFieldList:[],
+        dictOptions: {},
+        superFieldList: [],
+        selectInspectionOrderXqData: {}
       }
     },
     created() {
-    this.getSuperFieldList();
+      if (!this.isDisplayOperation) {
+        return
+      }
+      const operationColumn = {
+        title: '鎿嶄綔',
+        dataIndex: 'action',
+        align: 'center',
+        fixed: 'right',
+        width: 200,
+        scopedSlots: { customRender: 'action' }
+      }
+      this.columns = [...this.columns, operationColumn]
+      this.loadData(1)
     },
     computed: {
-      importExcelUrl: function(){
-        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-      },
+      importExcelUrl: function() {
+        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
+      }
     },
     methods: {
-      initDictConfig(){
+      initDictConfig() {
       },
-      getSuperFieldList(){
-        let fieldList=[];
-        fieldList.push({type:'string',value:'orderNum',text:'宸ュ崟鍙�',dictCode:''})
-        fieldList.push({type:'string',value:'equipmentId',text:'璁惧ID',dictCode:''})
-        fieldList.push({type:'string',value:'standardId',text:'鏍囧噯ID',dictCode:''})
-        fieldList.push({type:'date',value:'inspectionDate',text:'鐐规鏃ユ湡'})
-        fieldList.push({type:'date',value:'operateTime',text:'鐐规鏃堕棿'})
-        fieldList.push({type:'string',value:'operator',text:'鐐规浜�',dictCode:''})
-        fieldList.push({type:'date',value:'expirationTime',text:'鐐规杩囨湡鏃堕棿'})
-        fieldList.push({type:'string',value:'creationMethod',text:'鍒涘缓鏂瑰紡',dictCode:''})
-        fieldList.push({type:'string',value:'inspectionStatus',text:'鐐规鐘舵��',dictCode:''})
-        fieldList.push({type:'string',value:'confirmUser',text:'璁惧绠$悊鍛樼‘璁�',dictCode:''})
-        fieldList.push({type:'date',value:'confirmTime',text:'纭鏃堕棿'})
-        fieldList.push({type:'string',value:'remark',text:'澶囨敞',dictCode:''})
-        fieldList.push({type:'string',value:'imageFiles',text:'鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧',dictCode:''})
-        this.superFieldList = fieldList
-      }
+      //璇︽儏
+      handleDetail: function(record) {
+        this.selectInspectionOrderXqData = Object.assign({}, record)
+        this.$refs.modalFormXq.visible = true
+        this.$refs.modalFormXq.title = '璇︽儏'
+        this.$refs.modalFormXq.disableSubmit = true
+        this.$refs.modalFormXq.getAllApproveData(record)
+        this.$refs.modalFormXq.getBasicInformation({ ...record, dataId: record.id })
+      },
+      handleInspection(id) {
+        if (!this.url.receiveInspectionOrder) {
+          this.$message.error('璇疯缃畊rl.receiveInspectionOrder!')
+          return
+        }
+        var that = this
+        getAction(that.url.receiveInspectionOrder, { id: id }).then((res) => {
+          if (res.success) {
+            that.$notification.success({
+              message: '娑堟伅',
+              description: res.message
+            })
+            that.loadData()
+          } else {
+            // that.$message.warning(res.message);
+            that.$notification.warning({
+              message: '娑堟伅',
+              description: res.message
+            })
+          }
+        })
+      },
+      handleOrReceive(id) {
+        if (!this.url.cancelInspectionOrder) {
+          this.$message.error('璇疯缃畊rl.cancelInspectionOrder!')
+          return
+        }
+        var that = this
+        getAction(that.url.cancelInspectionOrder, { id: id }).then((res) => {
+          if (res.success) {
+            that.$notification.success({
+              message: '娑堟伅',
+              description: res.message
+            })
+            that.loadData()
+          } else {
+            // that.$message.warning(res.message);
+            that.$notification.warning({
+              message: '娑堟伅',
+              description: res.message
+            })
+          }
+        })
+      },
+      batchZf(type) {
+        if (this.selectedRowKeys.length <= 0) {
+          this.$notification.warning({
+            message: '娑堟伅',
+            description: '璇烽�夋嫨涓�鏉¤褰�'
+          })
+        } else {
+          var ids = ''
+          for (var a = 0; a < this.selectedRowKeys.length; a++) {
+            ids += this.selectedRowKeys[a] + ','
+          }
+          var that = this
+          this.$confirm({
+            title: '纭浣滃簾',
+            content: '鏄惁浣滃簾閫変腑鏁版嵁锛屽彧鏈夊緟鐐规鐘舵�佺殑鏁版嵁鎵嶅彲浣滃簾鎴愬姛?',
+            onOk: function() {
+              that.loading = true
+              getAction(that.url.cancelOrReceive, { ids: ids, type: type }).then((res) => {
+                if (res.success) {
+                  that.$notification.success({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                  that.loadData()
+                  that.onClearSelected()
+                } else {
+                  // that.$message.warning(res.message);
+                  that.$notification.warning({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                }
+              }).finally(() => {
+                that.loading = false
+              })
+            }
+          })
+        }
+      },
+      batchLq(type) {
+        if (this.selectedRowKeys.length <= 0) {
+          this.$notification.warning({
+            message: '娑堟伅',
+            description: '璇烽�夋嫨涓�鏉¤褰�'
+          })
+        } else {
+          var ids = ''
+          for (var a = 0; a < this.selectedRowKeys.length; a++) {
+            ids += this.selectedRowKeys[a] + ','
+          }
+          var that = this
+          this.$confirm({
+            title: '纭棰嗗彇',
+            content: '鏄惁棰嗗彇閫変腑鏁版嵁锛屽彧鏈夊緟鐐规鐘舵�佺殑鏁版嵁鎵嶅彲棰嗗彇鎴愬姛?',
+            onOk: function() {
+              that.loading = true
+              getAction(that.url.cancelOrReceive, { ids: ids, type: type }).then((res) => {
+                if (res.success) {
+                  that.$notification.success({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                  that.loadData()
+                  that.onClearSelected()
+                } else {
+                  // that.$message.warning(res.message);
+                  that.$notification.warning({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                }
+              }).finally(() => {
+                that.loading = false
+              })
+            }
+          })
+        }
+      },
+      onInspectionDateChange: function(value, dateString) {
+        this.queryParam.inspectionDateBegin = dateString[0]
+        this.queryParam.inspectionDateEnd = dateString[1]
+      },
     }
   }
 </script>

--
Gitblit v1.9.3