From 78b41b684ec093d4245e935e0bab88e62fa3f8b6 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期五, 11 七月 2025 19:47:42 +0800
Subject: [PATCH] 二级保养新增与列表查询

---
 src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue |  325 ++++++-----------
 src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue          |  740 ++++++++++++----------------------------
 2 files changed, 336 insertions(+), 729 deletions(-)

diff --git a/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue b/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
index 34b4d37..b91805c 100644
--- a/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
+++ b/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
@@ -1,578 +1,278 @@
 <template>
   <a-card :bordered="false">
-
     <!-- 鏌ヨ鍖哄煙 -->
-    <div
-      class="table-page-search-wrapper"
-      v-if="isDisplayOperation"
-    >
-      <a-form
-        layout="inline"
-        @keyup.enter.native="searchQuery"
-      >
+    <div class="table-page-search-wrapper" v-if="isDisplayOperation">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-row :gutter="24">
-          <a-col
-            :xl="4"
-            :lg="7"
-            :md="8"
-            :sm="24"
-          >
+          <a-col :xl="5" :lg="7" :md="8" :sm="24">
+            <a-form-item label="缁熶竴缂栫爜">
+              <lx-search-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="queryParam.equipmentId"/>
+            </a-form-item>
+          </a-col>
+          <a-col :xl="5" :lg="7" :md="8" :sm="24">
             <a-form-item label="宸ュ崟鍙�">
-              <a-input
-                placeholder="璇疯緭鍏ュ伐鍗曞彿"
-                v-model="queryParam.orderNum"
-              ></a-input>
+              <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="queryParam.orderNum"/>
             </a-form-item>
           </a-col>
-          <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>
-          <a-col
-            :xl="6"
-            :lg="7"
-            :md="8"
-            :sm="24"
-          >
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="璁″垝淇濆吇鏃ユ湡">
-              <a-range-picker
-                v-model="queryParam.maintenanceDateRange"
-                @change="onMaintenanceDateChange"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
-              />
+              <a-range-picker v-model="queryParam.maintenanceDateRange" @change="onMaintenanceDateChange"
+                              value-format="YYYY-MM-DD"/>
             </a-form-item>
           </a-col>
-          <a-col
-            :xl="4"
-            :lg="7"
-            :md="8"
-            :sm="24"
-          >
+          <a-col :xl="4" :lg="7" :md="8" :sm="24">
             <a-form-item label="淇濆吇鐘舵��">
-              <j-dict-select-tag
-                placeholder="璇烽�夋嫨淇濆吇鐘舵��"
-                dict-code="second_maintenance_status"
-                v-model="queryParam.maintenanceStatus"
-              />
+              <j-dict-select-tag placeholder="璇烽�夋嫨淇濆吇鐘舵��" dict-code="second_maintenance_status"
+                                 v-model="queryParam.maintenanceStatus"/>
             </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="info"
-                @click="searchReset"
-                icon="reload"
-                style="margin-left: 8px"
-              >閲嶇疆</a-button>
+          <a-col :xl="4" :lg="7" :md="8" :sm="24">
+            <span class="table-page-search-submitButtons">
+              <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
+              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>
             </span>
           </a-col>
-
         </a-row>
       </a-form>
     </div>
 
     <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
-    <div
-      class="table-operator"
-      v-if="isDisplayOperation"
-    >
-      <a-button
-        @click="handleAdd"
-        type="primary"
-        icon="plus"
-        v-if="isShowAuth('eam:secondMaintenance:add')"
-      >鏂板
-      </a-button>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item
-            key="1"
-            @click="handlerBatchAbolish"
-            v-if="isShowAuth('eam:secondMaintenance:abolish')"
-          >
-            <a-icon type="delete" />
-            浣滃簾
-          </a-menu-item>
-          <a-menu-item
-            key="2"
-            @click="handlerBatchCollect"
-            v-if="isShowAuth('eam:secondMaintenance:collect')"
-          >
-            <a-icon type="form" />
-            棰嗗彇
-          </a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔
-          <a-icon type="down" />
-        </a-button>
-      </a-dropdown>
+    <div class="table-operator" v-if="isDisplayOperation">
+      <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
     </div>
 
     <!-- table鍖哄煙-begin -->
     <div>
-      <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>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        class="j-table-force-nowrap"
-        :scroll="{x:'max-content'}"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        @change="handleTableChange"
-      >
-
-        <span
-          slot="action"
-          slot-scope="text, record"
-        >
+      <a-table size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination"
+               :loading="loading" :scroll="{ x: 'max-content' }" @change="handleTableChange">
+        <span slot="action" slot-scope="text, record">
           <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'">
-            <a
-              @click="handleEdit(record)"
-              v-if="isShowAuth('eam:secondMaintenance:edit')"
-            >缂栬緫</a>
+            <a @click="handleEdit(record)">缂栬緫</a>
 
-            <a-divider
-              type="vertical"
-              v-if="isShowAuth('eam:secondMaintenance:edit')"
-            />
+            <a-divider type="vertical"/>
 
-            <a-popconfirm
-              title="纭畾棰嗗彇鍚�?"
-              @confirm="() => handlerCollect(record.id)"
-              v-if="isShowAuth('eam:secondMaintenance:collect')"
-            >
+            <a-popconfirm title="纭畾棰嗗彇鍚�?" @confirm="() => handlerCollect(record.id)">
               <a>棰嗗彇</a>
             </a-popconfirm>
 
-            <a-divider
-              type="vertical"
-              v-if="isShowAuth('eam:secondMaintenance:collect')"
-            />
+            <a-divider type="vertical"/>
 
-            <a-dropdown>
-              <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
-              <a-menu slot="overlay">
-                <a-menu-item v-if="isShowAuth('eam:secondMaintenance:abolish')">
-                  <a-popconfirm
-                    title="纭畾浣滃簾鍚�?"
-                    @confirm="() => handlerAbolish(record.id)"
-                  >
-                    <a>浣滃簾</a>
-                  </a-popconfirm>
-                </a-menu-item>
-                <a-menu-item>
-                  <a @click="handleDetail(record)">璇︽儏</a>
-                </a-menu-item>
-              </a-menu>
-            </a-dropdown>
+            <a @click="handleDetail(record)">璇︽儏</a>
           </template>
 
           <template v-else>
             <a @click="handleDetail(record)">璇︽儏</a>
-            <a-divider
-              type="vertical"
-              v-if="record.maintenanceStatus === 'COMPLETE'"
-            />
-            <a
-              v-if="record.maintenanceStatus === 'COMPLETE'"
-              @click="handlePrint(record)"
-            >鎵撳嵃</a>
+            <a-divider type="vertical" v-if="record.maintenanceStatus === 'COMPLETE'"/>
+            <a v-if="record.maintenanceStatus === 'COMPLETE'" @click="handlePrint(record)">鎵撳嵃</a>
           </template>
 
         </span>
-
       </a-table>
     </div>
     <!-- table鍖哄煙-end -->
 
     <!-- 琛ㄥ崟鍖哄煙 -->
-    <eamSecondMaintenanceOrder-modal
-      ref="modalForm"
-      @ok="modalFormOk"
-    ></eamSecondMaintenanceOrder-modal>
+    <eamSecondMaintenanceOrder-modal ref="modalForm" @ok="modalFormOk"/>
 
-    <second-maintenance-approval-modal
-      ref="secondMaintenanceApprovalModal"
-      :selectShenpiData="selectSecondMaintenanceData"
-    />
+    <second-maintenance-approval-modal ref="secondMaintenanceApprovalModal"
+                                       :selectShenpiData="selectSecondMaintenanceData"/>
   </a-card>
 </template>
 
 <script>
-import '@/assets/less/TableExpand.less'
-import EamSecondMaintenanceOrderModal from './modules/EamSecondMaintenanceOrderModal'
-import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
-import { deleteAction, getAction } from '@api/manage'
-import SecondMaintenanceApprovalModal from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue'
+  import EamSecondMaintenanceOrderModal from './modules/EamSecondMaintenanceOrderModal'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import { deleteAction, getAction } from '@api/manage'
+  import SecondMaintenanceApprovalModal
+    from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue'
+  import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect'
 
-export default {
-  name: 'EamSecondMaintenanceOrderList',
-  mixins: [JeecgListMixin],
-  components: {
-    LxSearchEquipmentSelect,
-    EamSecondMaintenanceOrderModal,
-    SecondMaintenanceApprovalModal
-  },
-  props: {
-    isDisplayOperation: {
-      type: Boolean,
-      default: true
-    }
-  },
-  data() {
-    return {
-      description: '璁惧浜岀骇淇濆吇绠$悊椤甸潰',
-      disableMixinCreated: true,
-      selectSecondMaintenanceData: {},
-      // 琛ㄥご
-      columns: [
-        {
-          title: '#',
-          dataIndex: '',
-          key: 'rowIndex',
-          width: 60,
-          align: 'center',
-          fixed: 'left',
-          customRender: function (t, r, index) {
-            return parseInt(index) + 1
+  export default {
+    name: 'EamSecondMaintenanceOrderList',
+    mixins: [JeecgListMixin],
+    components: {
+      LxSearchEquipmentSelect,
+      EamSecondMaintenanceOrderModal,
+      SecondMaintenanceApprovalModal
+    },
+    props: {
+      isDisplayOperation: {
+        type: Boolean,
+        default: true
+      }
+    },
+    data() {
+      return {
+        description: '璁惧浜岀骇淇濆吇绠$悊椤甸潰',
+        disableMixinCreated: true,
+        selectSecondMaintenanceData: {},
+        // 琛ㄥご
+        columns: [
+          {
+            title: '#',
+            dataIndex: '',
+            key: 'rowIndex',
+            width: 60,
+            align: 'center',
+            customRender: function(t, r, index) {
+              return parseInt(index) + 1
+            }
+          },
+          {
+            title: '缁熶竴缂栫爜',
+            align: 'center',
+            dataIndex: 'equipmentCode'
+          },
+          {
+            title: '璁惧鍚嶇О',
+            align: 'center',
+            dataIndex: 'equipmentName'
+          },
+          {
+            title: '璁惧鍨嬪彿',
+            align: 'center',
+            dataIndex: 'equipmentModel'
+          },
+          {
+            title: '宸ュ崟鍙�',
+            align: 'center',
+            dataIndex: 'orderNum'
+          },
+          {
+            title: '瑙勮寖鍚嶇О',
+            align: 'center',
+            dataIndex: 'standardId_dictText'
+          },
+          {
+            title: '璁″垝淇濆吇鏃ユ湡',
+            align: 'center',
+            dataIndex: 'maintenanceDate'
+          },
+          {
+            title: '瀹為檯寮�濮嬫椂闂�',
+            align: 'center',
+            dataIndex: 'actualStartTime'
+          },
+          {
+            title: '瀹為檯缁撴潫鏃堕棿',
+            align: 'center',
+            dataIndex: 'actualEndTime'
+          },
+          {
+            title: '鎿嶄綔宸�',
+            align: 'center',
+            dataIndex: 'operator_dictText'
+          },
+          {
+            title: '缁翠慨宸�',
+            align: 'center',
+            dataIndex: 'operator_dictText'
+          },
+          {
+            title: '淇濆吇鐘舵��',
+            align: 'center',
+            dataIndex: 'maintenanceStatus_dictText'
+          },
+          {
+            title: '鍒涘缓鏂瑰紡',
+            align: 'center',
+            dataIndex: 'creationMethod_dictText'
+          },
+          {
+            title: '绠$悊鍛樼‘璁�',
+            align: 'center',
+            dataIndex: 'confirmUser_dictText'
+          },
+          {
+            title: '绠$悊鍛樼‘璁ゆ椂闂�',
+            align: 'center',
+            dataIndex: 'confirmTime'
+          },
+          {
+            title: '妫�鏌ヤ汉纭',
+            align: 'center',
+            dataIndex: 'confirmLeader_dictText'
+          },
+          {
+            title: '妫�鏌ヤ汉纭鏃堕棿',
+            align: 'center',
+            dataIndex: 'leaderConfirmTime'
+          },
+          {
+            title: 'HF缂栫爜',
+            align: 'center',
+            dataIndex: 'hfCode'
           }
-        },
-        {
-          title: '宸ュ崟鍙�',
-          align: 'center',
-          dataIndex: 'orderNum',
-          fixed: 'left',
-          width: 60
-        },
-        {
-          title: '璁惧缂栧彿',
-          align: 'center',
-          dataIndex: 'equipmentCode',
-          fixed: 'left',
-          width: 60
-        },
-        {
-          title: '璁惧鍚嶇О',
-          align: 'center',
-          dataIndex: 'equipmentName',
-          fixed: 'left',
-          width: 60
-        },
-        {
-          title: '鏍囧噯鍚嶇О',
-          align: 'center',
-          dataIndex: 'standardId_dictText'
-        },
-        {
-          title: '璁″垝淇濆吇鏃ユ湡',
-          align: 'center',
-          dataIndex: 'maintenanceDate'
-        },
-        {
-          title: '瀹為檯寮�濮嬫椂闂�',
-          align: 'center',
-          dataIndex: 'actualStartTime'
-        },
-        {
-          title: '瀹為檯缁撴潫鏃堕棿',
-          align: 'center',
-          dataIndex: 'actualEndTime'
-        },
-        {
-          title: '淇濆吇浜�',
-          align: 'center',
-          dataIndex: 'operator_dictText'
-        },
-        {
-          title: '淇濆吇鐘舵��',
-          align: 'center',
-          dataIndex: 'maintenanceStatus_dictText'
-        },
-        {
-          title: '鍒涘缓鏂瑰紡',
-          align: 'center',
-          dataIndex: 'creationMethod_dictText'
-        },
-        {
-          title: '纭绠$悊鍛�',
-          align: 'center',
-          dataIndex: 'confirmUser_dictText',
-          width: 60
-        },
-        {
-          title: '绠$悊鍛樼‘璁ゆ椂闂�',
-          align: 'center',
-          dataIndex: 'confirmTime',
-          width: 60
-        },
-        {
-          title: '绠$悊鍛樻剰瑙�',
-          align: 'center',
-          dataIndex: 'confirmComment',
-          width: 60
-        },
-        {
-          title: '纭棰嗗',
-          align: 'center',
-          dataIndex: 'confirmLeader_dictText',
-          width: 60
-        },
-        {
-          title: '棰嗗纭鏃堕棿',
-          align: 'center',
-          dataIndex: 'leaderConfirmTime',
-          width: 60
-        },
-        {
-          title: '棰嗗鎰忚',
-          align: 'center',
-          dataIndex: 'leaderConfirmComment',
-          width: 60
-        },
-        {
-          title: '澶囨敞',
-          align: 'center',
-          dataIndex: 'remark'
+        ],
+        url: {
+          list: '/eam/secondMaintenanceOrder/list',
+          abolish: '/eam/secondMaintenanceOrder/abolish',
+          collect: '/eam/secondMaintenanceOrder/collect'
         }
-      ],
-      url: {
-        list: '/eam/secondMaintenanceOrder/list',
-        abolish: '/eam/secondMaintenanceOrder/abolish',
-        abolishBatch: '/eam/secondMaintenanceOrder/abolishBatch',
-        collect: '/eam/secondMaintenanceOrder/collect',
-        collectBatch: '/eam/secondMaintenanceOrder/collectBatch'
-      }
-    }
-  },
-  created() {
-    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: {},
-  methods: {
-    onMaintenanceDateChange: function (value, dateString) {
-      if (dateString && dateString.length === 2) {
-        this.queryParam.maintenanceDateBegin = dateString[0]
-        this.queryParam.maintenanceDateEnd = dateString[1]
-      } else {
-        this.queryParam.maintenanceDateBegin = undefined
-        this.queryParam.maintenanceDateEnd = undefined
       }
     },
-    handlerAbolish(id) {
-      if (!this.url.abolish) {
-        this.$message.error('璇疯缃畊rl.abolish灞炴��!')
+    created() {
+      if (!this.isDisplayOperation) {
         return
       }
-      var that = this
-      deleteAction(that.url.abolish, { id: id }).then((res) => {
-        if (res.success) {
-          //閲嶆柊璁$畻鍒嗛〉闂
-          that.reCalculatePage(1)
-          // that.$message.success(res.message);
-          that.$notification.success({
-            message: '娑堟伅',
-            description: res.message
+      const operationColumn = {
+        title: '鎿嶄綔',
+        dataIndex: 'action',
+        align: 'center',
+        fixed: 'right',
+        width: 200,
+        scopedSlots: { customRender: 'action' }
+      }
+      this.columns = [...this.columns, operationColumn]
+      this.loadData(1)
+    },
+    methods: {
+      onMaintenanceDateChange: function(dataArray) {
+        this.queryParam.maintenanceDateBegin = dataArray[0]
+        this.queryParam.maintenanceDateEnd = dataArray[1]
+      },
+      /**
+       * 鐐瑰嚮棰嗗彇鏃惰Е鍙�
+       * @param id 琛岃褰昳d
+       */
+      handlerCollect(id) {
+        let that = this
+        getAction(that.url.collect, { id })
+          .then((res) => {
+            if (res.success) {
+              that.$notification.success({
+                message: '娑堟伅',
+                description: res.message
+              })
+              that.loadData()
+            } else {
+              that.$notification.warning({
+                message: '娑堟伅',
+                description: res.message
+              })
+            }
           })
-          that.loadData()
-        } else {
-          // that.$message.warning(res.message);
-          that.$notification.warning({
-            message: '娑堟伅',
-            description: res.message
-          })
-        }
-      })
-    },
-    handlerBatchAbolish() {
-      if (!this.url.abolishBatch) {
-        this.$message.error('璇疯缃畊rl.abolishBatch灞炴��!')
-        return
-      }
-      if (this.selectedRowKeys.length <= 0) {
-        // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒');
-        this.$notification.warning({
-          message: '娑堟伅',
-          description: '璇烽�夋嫨涓�鏉¤褰�'
-        })
-        return
-      } 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
-            deleteAction(that.url.abolishBatch, { ids: ids }).then((res) => {
-              if (res.success) {
-                //閲嶆柊璁$畻鍒嗛〉闂
-                that.reCalculatePage(that.selectedRowKeys.length)
-                // that.$message.success(res.message);
-                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
-            })
-          }
-        })
-      }
-    },
-    //鍗曚釜棰嗗彇
-    handlerCollect(id) {
-      if (!this.url.collect) {
-        this.$message.error('璇疯缃畊rl.collect灞炴��!')
-        return
-      }
-      let that = this
-      getAction(that.url.collect, { id: id }).then((res) => {
-        if (res.success) {
-          //閲嶆柊璁$畻鍒嗛〉闂
-          that.reCalculatePage(1)
-          // that.$message.success(res.message);
-          that.$notification.success({
-            message: '娑堟伅',
-            description: res.message
-          })
-          that.loadData()
-        } else {
-          // that.$message.warning(res.message);
-          that.$notification.warning({
-            message: '娑堟伅',
-            description: res.message
-          })
-        }
-      })
-    },
-    //鎵归噺棰嗗彇
-    handlerBatchCollect() {
-      if (!this.url.collectBatch) {
-        this.$message.error('璇疯缃畊rl.abolishBatch灞炴��!')
-        return
-      }
-      if (this.selectedRowKeys.length <= 0) {
-        // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒');
-        this.$notification.warning({
-          message: '娑堟伅',
-          description: '璇烽�夋嫨涓�鏉¤褰�'
-        })
-        return
-      } 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
-            deleteAction(that.url.collectBatch, { ids: ids }).then((res) => {
-              if (res.success) {
-                //閲嶆柊璁$畻鍒嗛〉闂
-                that.reCalculatePage(that.selectedRowKeys.length)
-                // that.$message.success(res.message);
-                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
-            })
-          }
-        })
-      }
-    },
-    handleDetail(record) {
-      this.selectSecondMaintenanceData = Object.assign({}, record)
-      this.$refs.secondMaintenanceApprovalModal.recordDetail(record)
-      this.$refs.secondMaintenanceApprovalModal.title = '璇︽儏'
-      this.$refs.secondMaintenanceApprovalModal.disableSubmit = true
-    },
+      },
 
-    handlePrint(record) {
-      // let href = `${window._CONFIG['domianURL']}/jmreport/view/1094871242505912320`; //缃戠珯閾炬帴
-      let href = `${window._CONFIG['domianURL']}/jmreport/view/1094834721929232384?id=` + record.id; //缃戠珯閾炬帴
-      window.open(href, "_blank");
-    },
+      /**
+       * 鐐瑰嚮璇︽儏鏃惰Е鍙�
+       * @param record 鍒楄〃琛岃褰�
+       */
+      handleDetail(record) {
+        this.selectSecondMaintenanceData = Object.assign({}, record)
+        this.$refs.secondMaintenanceApprovalModal.recordDetail(record)
+        this.$refs.secondMaintenanceApprovalModal.title = '璇︽儏'
+        this.$refs.secondMaintenanceApprovalModal.disableSubmit = true
+      },
+
+      /**
+       * 鐐瑰嚮鎵撳嵃鏃惰Е鍙�
+       * @param record 鍒楄〃琛岃褰�
+       */
+      handlePrint(record) {
+        let href = `${window._CONFIG['domianURL']}/jmreport/view/1094834721929232384?id=` + record.id //缃戠珯閾炬帴
+        window.open(href, '_blank')
+      }
+    }
   }
-}
-</script>
-<style scoped>
-@import '~@assets/less/common.less';
-</style>
\ No newline at end of file
+</script>
\ No newline at end of file
diff --git a/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue b/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue
index 07af5c0..46cd6fd 100644
--- a/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue
+++ b/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue
@@ -1,105 +1,82 @@
 <template>
-  <j-modal
-    :title="title"
-    :width="1200"
-    :visible="visible"
-    :confirmLoading="confirmLoading"
-    switchFullscreen
-    :mask-closable="false"
-    @ok="handleOk"
-    @cancel="handleCancel"
-    cancelText="鍏抽棴">
+  <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
+           :mask-closable="false" @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴">
 
     <a-spin :spinning="spinning">
       <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
-        <a-row :gutter="24">
+        <a-row>
           <a-col :span="8">
             <a-form-model-item prop="orderNum" label="宸ュ崟鍙�">
               <a-input placeholder="宸ュ崟鍙风郴缁熻嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled/>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
-            <a-form-model-item prop="equipmentId" label="璁惧缂栫爜">
-              <maintenance-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="model.equipmentId"
-                                            :maintenanceCategory="maintenanceCategory"
-                                            @autocompleteForm="autocompleteForm"
-                                            :disabled="editable"></maintenance-equipment-select>
+            <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜">
+              <maintenance-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId"
+                                            maintenanceCategory="SECOND_MAINTENANCE" :allowClear="false"
+                                            @autocompleteForm="autocompleteForm" :disabled="!editable"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
-            <a-form-model-item prop="standardName" label="鏍囧噯鍚嶇О">
+            <a-form-model-item prop="standardName" label="瑙勮寖鍚嶇О">
               <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.standardName" disabled/>
             </a-form-model-item>
           </a-col>
         </a-row>
-        <a-row :gutter="24">
+        <a-row>
           <a-col :span="8">
             <a-form-model-item prop="maintenanceDate" label="淇濆吇鏃ユ湡">
-              <a-date-picker placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" v-model="model.maintenanceDate" format="YYYY-MM-DD"
-                             style="width: 100%"/>
+              <a-date-picker v-model="model.maintenanceDate" value-format="YYYY-MM-DD" style="width: 100%"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
-            <a-form-model-item prop="operator" label="淇濆吇浜�">
-              <j-search-select-tag v-model="model.operator" placeholder="璇烽�夋嫨淇濆吇浜�" :disabled="!model.equipmentId"
-                                   :dictOptions="maintenanceOperatorOptions"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="8">
-            <a-form-model-item prop="maintenancePeriod" label="淇濆吇鍛ㄦ湡">
+            <a-form-model-item label="淇濆吇鍛ㄦ湡">
               <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled/>
             </a-form-model-item>
           </a-col>
         </a-row>
-        <a-row :gutter="24">
+        <a-row>
           <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="remark" label="澶囨敞">
             <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark"/>
           </a-form-model-item>
         </a-row>
-        <a-row :gutter="24">
-          <a-spin :spinning="detail.loading">
-            <j-vxe-table
-              ref="editableDetailTable"
-              :rowNumber="true"
-              :rowSelection="true"
-              :bordered="true"
-              :alwaysEdit="true"
-              :toolbar="true"
-              :toolbarConfig="detail.toolbarConfig"
-              keep-source
-              :height="300"
-              :dataSource="detail.dataSource"
-              :columns="detail.columns"
-              style="margin-top: 8px;"/>
-          </a-spin>
-        </a-row>
+
+        <a-tabs default-active-key="1">
+          <a-tab-pane tab="鎿嶄綔宸�" key="1">
+            <j-vxe-table rowNumber bordered keep-source :height="300" :dataSource="detail.operatorMaintenanceList"
+                         :columns="detail.columns"/>
+          </a-tab-pane>
+          <a-tab-pane tab="缁翠慨宸�" key="2" forceRender>
+            <j-vxe-table rowNumber bordered keep-source :height="300" :dataSource="detail.repairerMaintenanceList"
+                         :columns="detail.columns"/>
+          </a-tab-pane>
+        </a-tabs>
       </a-form-model>
     </a-spin>
   </j-modal>
 </template>
 
 <script>
-import { getAction, httpAction } from '@/api/manage'
-import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
-import { JVXETypes } from '@comp/jeecg/JVxeTable'
+  import { getAction, httpAction } from '@/api/manage'
+  import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
+  import { JVXETypes } from '@comp/jeecg/JVxeTable'
 
-export default {
-    name: "EamSecondMaintenanceOrderModal",
+  export default {
+    name: 'EamSecondMaintenanceOrderModal',
     components: { MaintenanceEquipmentSelect },
-    data () {
+    data() {
       return {
-        title:"鎿嶄綔",
+        title: '鎿嶄綔',
         visible: false,
         editable: false,
         model: {},
-        maintenanceCategory: 'SECOND_MAINTENANCE',
         labelCol: {
           xs: { span: 24 },
           sm: { span: 6 }
         },
         wrapperCol: {
           xs: { span: 24 },
-          sm: { span: 16 }
+          sm: { span: 15 }
         },
         labelColLong: {
           xs: { span: 24 },
@@ -111,23 +88,23 @@
         },
         confirmLoading: false,
         spinning: false,
-        validatorRules:{
+        validatorRules: {
           equipmentId: [
-            { required: true, message: '璇烽�夋嫨璁惧!' }
+            { required: true, message: '璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储', trigger: 'change' }
           ],
           maintenanceDate: [
-            { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡!' }
+            { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡', trigger: 'change' }
           ]
         },
         url: {
-          add: "/eam/secondMaintenanceOrder/add",
-          edit: "/eam/secondMaintenanceOrder/edit",
+          add: '/eam/secondMaintenanceOrder/add',
+          edit: '/eam/secondMaintenanceOrder/edit',
           standardDetail: '/eam/eamMaintenanceStandardDetail/queryList',
-          detail: '/eam/secondMaintenanceOrderDetail/queryList',
-          userSelect: '/eam/user_select/list'
+          detail: '/eam/secondMaintenanceOrderDetail/queryList'
         },
         detail: {
-          loading: false,
+          operatorMaintenanceList: [],
+          repairerMaintenanceList: [],
           dataSource: [],
           columns: [
             {
@@ -143,152 +120,56 @@
             {
               title: '搴忓彿',
               key: 'itemCode',
-              type: JVXETypes.inputNumber,
-              width: '10%',
-              align: 'center',
-              validateRules: [
-                { required: true, unique: true, message: '搴忓彿涓嶈兘閲嶅' }
-              ]
-            },
-            {
-              title: '閮ㄤ綅',
-              key: 'itemPart',
-              type: JVXETypes.textarea,
-              width: '25%',
+              type: JVXETypes.normal,
+              width: 60,
               align: 'center'
             },
             {
               title: '淇濆吇椤�',
               key: 'itemName',
-              type: JVXETypes.textarea,
-              width: '20%',
-              align: 'center',
-              validateRules: [
-                { required: true, message: '淇濆吇椤逛笉鑳戒负绌猴紒' }
-              ]
-            },
-            {
-              title: '淇濆吇瑕佹眰',
-              key: 'itemDemand',
-              type: JVXETypes.textarea,
-              width: '30%',
-              align: 'center',
-              validateRules: [
-                { required: true, message: '淇濆吇瑕佹眰涓嶈兘涓虹┖锛�' }
-              ]
+              type: JVXETypes.normal,
+              align: 'center'
             }
-          ],
-          toolbarConfig: {
-            // prefix 鍓嶇紑锛泂uffix 鍚庣紑
-            slot: ['prefix', 'suffix'],
-            // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳
-            btn: ['add', 'remove', 'clearSelection']
-          }
+          ]
         }
       }
-    },
-    created () {
     },
     methods: {
       add() {
         //鍒濆鍖栭粯璁ゅ��
-        this.model = {}
+        this.model = { maintenancePeriod: 6 }
         this.visible = true
-        this.editable = false
-        this.detail.dataSource = []
+        this.editable = true
+        this.detail.operatorMaintenanceList = this.detail.repairerMaintenanceList = []
       },
+
       edit(record) {
         this.model = Object.assign({}, record)
         this.visible = true
-        this.editable = true
-        this.detail.dataSource = []
+        this.editable = false
+        this.detail.operatorMaintenanceList = this.detail.repairerMaintenanceList = []
         this.loadDetail(record.id)
       },
-      close() {
-        this.$emit('close')
-        this.visible = false
-        this.$refs.form.clearValidate()
-      },
-      async handleOk() {
-        const that = this
-        let errMap = await that.$refs.editableDetailTable.validateTable()
-        if (errMap) {
-          this.$message.warning('鏁版嵁鏍¢獙澶辫触锛�')
-          return
-        }
-        // 瑙﹀彂琛ㄥ崟楠岃瘉
-        this.$refs.form.validate(valid => {
-          if (valid) {
-            let tableData = that.$refs.editableDetailTable.getTableData()
-            let removeData = that.$refs.editableDetailTable.getDeleteData()
-            that.model.tableDetailList = [...tableData]
-            that.model.removeDetailList = [...removeData]
 
-            that.confirmLoading = true
-            let httpurl = ''
-            let method = ''
-            if (!this.model.id) {
-              httpurl += this.url.add
-              method = 'post'
-            } else {
-              httpurl += this.url.edit
-              method = 'put'
-            }
-            httpAction(httpurl, this.model, method).then((res) => {
-              if (res.success) {
-                that.$message.success(res.message)
-                that.$emit('ok')
-                that.close()
-              } else {
-                that.$message.warning(res.message)
-              }
-            }).finally(() => {
-              that.confirmLoading = false
-            })
-          } else {
-            return false
-          }
-        })
-      },
-      handleCancel() {
-        this.close()
-      },
       autocompleteForm(selectObj) {
-        //鏍囧噯鍚嶇О锛屼繚鍏诲懆鏈熶笉鍒锋柊瑙e喅鍔炴硶
-        //鍔炴硶涓�  validatorRules equipmentId 杩樻槸鏈夐棶棰�
-        // const newObj = {
-        //   standardName: selectObj.standardName,
-        //   maintenancePeriod: selectObj.maintenancePeriod,
-        //   standardId : selectObj.id,
-        //   equipmentId: selectObj.equipmentId,
-        // };
-        // this.model = Object.assign({}, newObj, this.model)
-        //鍔炴硶浜�
         this.$set(this.model, 'standardName', selectObj.standardName)
-        this.$set(this.model, 'maintenancePeriod', selectObj.maintenancePeriod)
         this.$set(this.model, 'standardId', selectObj.id)
         this.$set(this.model, 'equipmentId', selectObj.equipmentId)
-        // console.log('model', this.model)
-        if (!this.model.equipmentId) delete this.model.operator
-        if (!this.model.id) {
-          this.loadStandardDetail(selectObj.id)
-        }
-        this.loadMaintenanceOperatorList(this.model.equipmentId)
+        if (!this.model.id) this.loadStandardDetail(selectObj.id)
       },
-      //鍔犺浇璇︽儏鏁版嵁
+
+      /**
+       * 鑾峰彇淇濆吇瑙勮寖鏁版嵁
+       * @param standardId 瑙勮寖Id
+       */
       loadStandardDetail(standardId) {
-        this.detail.dataSource = []
         if (standardId) {
           this.spinning = true
-          getAction(this.url.standardDetail, { standardId: standardId })
+          getAction(this.url.standardDetail, { standardId })
             .then(res => {
               if (res.success) {
-                this.detail.dataSource = res.result.map(item => ({
-                  itemCode: item.itemCode,
-                  itemName: item.itemName,
-                  itemPart: item.itemPart,
-                  itemDemand: item.itemDemand
-                }))
+                this.detail.operatorMaintenanceList = res.result.filter(item => item.itemCategory == 'OPERATOR_MAINTENANCE')
+                this.detail.repairerMaintenanceList = res.result.filter(item => item.itemCategory == 'REPAIRER_MAINTENANCE')
               }
             })
             .finally(() => {
@@ -296,46 +177,72 @@
             })
         }
       },
-      //鏍囧噯閫夋嫨鍙樺寲
+
+      /**
+       * 鑾峰彇浜屼繚宸ュ崟鏄庣粏
+       * @param orderId 宸ュ崟Id
+       */
       loadDetail(orderId) {
         if (orderId) {
-          getAction(this.url.detail, { orderId: orderId }).then(res => {
-            if (res.success) {
-              this.detail.dataSource = [...res.result]
-            }
-          })
+          getAction(this.url.detail, { orderId })
+            .then(res => {
+              if (res.success) {
+                this.detail.dataSource = [...res.result]
+              }
+            })
         }
       },
-      loadMaintenanceOperatorList(equipmentId) {
-        this.maintenanceOperatorOptions = []
-        let params = { positionCode: 'PCR0001' }
-        if (equipmentId) {
-          params.equipmentId = equipmentId
-        }
-        else return
+
+      async handleOk() {
         const that = this
-        getAction(this.url.userSelect, params)
-          .then(res => {
-            if (res.success) {
-              that.maintenanceOperatorOptions = res.result.map(item => ({
-                key: item.id,
-                value: item.username,
-                text: item.realname
-              }))
-              if (!that.maintenanceOperatorOptions.find(item => item.value === that.model.operator)) delete that.model.operator
+        // 瑙﹀彂琛ㄥ崟楠岃瘉
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            that.confirmLoading = that.spinning = true
+            let httpUrl = ''
+            let method = ''
+            if (!this.model.id) {
+              httpUrl += this.url.add
+              method = 'post'
             } else {
-              if (that.model.operator) delete that.model.operator
+              httpUrl += this.url.edit
+              method = 'put'
             }
-          })
-          .catch(err => {
-            if (that.model.operator) delete that.model.operator
-          })
+            httpAction(httpUrl, this.model, method)
+              .then((res) => {
+                if (res.success) {
+                  that.$notification.success({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                  that.$emit('ok')
+                  that.close()
+                } else {
+                  that.$notification.warning({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                }
+              })
+              .finally(() => {
+                that.confirmLoading = that.spinning = false
+              })
+          } else {
+            return false
+          }
+        })
+      },
+
+      handleCancel() {
+        this.close()
+      },
+
+      close() {
+        this.$emit('close')
+        this.visible = false
+        this.$refs.form.clearValidate()
       }
 
     }
   }
 </script>
-
-<style lang="less" scoped>
-
-</style>
\ No newline at end of file

--
Gitblit v1.9.3