From bac10733d14f935a026ea9c3f8beeb9fd7b5d803 Mon Sep 17 00:00:00 2001
From: Houjie <714924425@qq.com>
Date: 星期一, 26 五月 2025 10:30:52 +0800
Subject: [PATCH] 刀具刃磨/  工具盘点/工具报损

---
 src/views/tms/requirement/modules/ToolsSharpeningModal.vue |  355 ++++++++++++++++++++--------------------------------------
 1 files changed, 123 insertions(+), 232 deletions(-)

diff --git a/src/views/tms/requirement/modules/ToolsSharpeningModal.vue b/src/views/tms/requirement/modules/ToolsSharpeningModal.vue
index 37c0fb8..9a903d0 100644
--- a/src/views/tms/requirement/modules/ToolsSharpeningModal.vue
+++ b/src/views/tms/requirement/modules/ToolsSharpeningModal.vue
@@ -2,10 +2,10 @@
   <j-modal
     :title="title"
     :width="1200"
-    :visible="visible"
     :confirmLoading="confirmLoading"
     switchFullscreen
     centered
+    :visible="visible"
     :mask-closable="false"
     @ok="handleOk"
     @cancel="handleCancel"
@@ -14,113 +14,122 @@
     <a-spin :spinning="spinning">
       <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
         <a-row :gutter="24">
-          <a-col :span="8">
+          <a-col :span="12">
             <a-form-model-item prop="standardCode" label="宸ュ叿缂栧彿">
-              <a-input-search v-model="model.toolsId"  placeholder="璇烽�夋嫨宸ュ叿缂栧彿"  :disabled="disableSubmit" @search="onSearchPart" enter-button
+              <a-input-search v-model="model.toolId" placeholder="璇烽�夋嫨宸ュ叿缂栧彿" :disabled="disableSubmit"
+                              @search="selectTools" enter-button
               />
             </a-form-model-item>
           </a-col>
-          <a-col :span="10">
-            <a-form-model-item prop="equipmentId" label="宸ュ叿鍒嗙被鍚嶇О">
-              <a-input placeholder="璇疯緭鍏ュ伐鍏峰垎绫诲悕绉�" v-model="model.typeName" readOnly/>
+          <a-col :span="12">
+            <a-form-model-item prop="classify_id" label="宸ュ叿鍒嗙被缂栫爜">
+              <a-input placeholder="璇疯緭鍏ュ伐鍏峰垎绫诲悕绉�" v-model="model.classifyId" readOnly :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
 
         </a-row>
         <a-row :gutter="24">
-          <a-col :span="8">
-            <a-form-model-item prop="standardCode" label="宸ュ叿鍙傛暟鏍囪瘑">
-              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" readOnly v-model="model.paraTypeFlagName" readOnly/>
+          <a-col :span="12">
+            <a-form-model-item prop="paramaTableName" label="宸ュ叿鍙傛暟鏍囪瘑">
+              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" readOnly v-model="model.paramaTableName" readOnly
+                       :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
-          <a-col :span="8">
+          <a-col :span="12">
             <a-form-model-item label="宸ュ叿绫诲瀷">
-              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.applicationType" readOnly/>
+              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.applicationType" readOnly
+                       :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
         </a-row>
 
         <a-row :gutter="24">
-          <a-col :span="8">
+          <a-col :span="12">
             <a-form-model-item prop="operator" label="璐d换浜�">
-              <j-dict-select-tag type="list" v-model="model.reportPerson" dictCode="sys_user,realname,id" placeholder="璇烽�夋嫨鎶ュ伐浜哄憳" />
+              <j-dict-select-tag type="list" v-model="model.responsiblePerson" dictCode="sys_user,realname,id"
+                                 placeholder="璇烽�夋嫨璐d换浜�" :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
-          <a-col :span="8">
-            <a-form-model-item prop="standardName" label="宸ュ叿鍒嗙被缂栫爜">
-              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" readOnly v-model="model.classifyId" readOnly/>
+          <a-col :span="12">
+            <a-form-model-item label="鍒冪(鏃堕棿" prop="sharpeningTime">
+              <j-date placeholder="璇烽�夋嫨鍒冪(鏃堕棿" date-format="YYYY-MM-DD HH:mm:ss" v-model="model.sharpeningTime"
+                      style="width: 100%" :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
         </a-row>
 
         <a-row :gutter="24">
-          <a-col :span="8">
-            <a-form-model-item label="缁撴灉鍙婂缓璁�" prop="inspectionDate">
-              <a-input placeholder="閫夋嫨濉啓鍒冪(缁撴灉鍙婂缓璁�"  v-model="model.sharpeningResult" readOnly/>
+          <a-col :span="12">
+            <a-form-model-item label="鍒冪(缁撴灉鍙婂缓璁�" prop="sharpeningResult">
+              <a-textarea placeholder="閫夋嫨濉啓鍒冪(缁撴灉鍙婂缓璁�" v-model="model.sharpeningResult"
+                          :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
-          <a-col :span="6">
+          <a-col :span="12">
             <a-form-model-item label="鍨嬪彿/鍥惧彿">
-              <j-date placeholder="閫夋嫨濉啓鍨嬪彿/鍥惧彿" v-model="model.toolModel" disabled style="width: 100%"/>
+              <a-input placeholder="閫夋嫨濉啓鍨嬪彿/鍥惧彿" v-model="model.toolModel" :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
-          <a-col :span="8">
+          <a-col :span="12">
             <a-form-model-item label="浠撳簱鍩庡競" prop="inspectionDate">
-              <a-input placeholder="閫夋嫨濉啓浠撳簱鐪佷唤鍩庡競"  v-model="model.provinceCity" readOnly/>
+              <a-input placeholder="閫夋嫨濉啓浠撳簱鐪佷唤鍩庡競" v-model="model.provinceCity" readOnly
+                       :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
-          <a-col :span="8">
+          <a-col :span="12">
             <a-form-model-item label="搴撳尯/搴撳彿">
-              <j-date placeholder="閫夋嫨濉啓搴撳尯/搴撳彿" v-model="model.warehouseId" disabled style="width: 100%"/>
+              <a-input placeholder="閫夋嫨濉啓搴撳尯/搴撳彿" v-model="model.warehouseId" readOnly :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
-          <a-col :span="8">
-            <a-form-model-item label="瀛樺偍浣嶇疆" prop="inspectionDate">
-              <a-input placeholder="閫夋嫨濉啓瀛樺偍浣嶇疆"  v-model="model.storageLocation" readOnly/>
+          <a-col :span="12">
+            <a-form-model-item label="瀛樺偍浣嶇疆" prop="storageLocation">
+              <a-input placeholder="閫夋嫨濉啓瀛樺偍浣嶇疆" v-model="model.positionCode" readOnly
+                       :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
-          <a-col :span="8">
+          <a-col :span="12">
             <a-form-model-item label="璁¢噺涓诲崟浣�">
-              <j-date placeholder="璇峰~鍐欒閲忎富鍗曚綅" v-model="model.mainUnit" disabled style="width: 100%"/>
+              <a-input placeholder="璇峰~鍐欒閲忎富鍗曚綅" v-model="model.mainUnit" readOnly :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
         </a-row>
-        <a-row :gutter="24">
-          <a-col :span="8">
-            <a-form-model-item label="鍒冪(鏃堕棿" prop="inspectionDate">
-              <j-date placeholder="璇烽�夋嫨鎵撳嵃鏃堕棿" v-model="model.sharpeningTime"  style="width: 100%" />
-            </a-form-model-item>
-          </a-col>
 
-        </a-row>
         <a-row :gutter="24">
           <a-col :span="24">
             <a-form-model-item label="澶囨敞" :labelCol="{span:2}" :wrapperCol="{span:21}" prop="remark">
-              <a-textarea v-model="model.remark" rows="3" placeholder="璇疯緭鍏ュ娉�"/>
+              <a-textarea v-model="model.remark" rows="3" placeholder="璇疯緭鍏ュ娉�" :disabled="disableSubmit" />
             </a-form-model-item>
           </a-col>
         </a-row>
       </a-form-model>
     </a-spin>
+    <template slot="footer">
+      <a-button :style="{ marginRight: '8px' }" @click="handleCancel()">
+        鍏抽棴
+      </a-button>
+
+      <a-button @click="handleOk()" :disabled="disableSubmit" type="primary" :loading="confirmLoading">纭畾</a-button>
+    </template>
+    <tools-modal ref="toolListModel"></tools-modal>
+
+
   </j-modal>
 </template>
 
 <script>
-import { getAction, httpAction } from '@/api/manage'
+import { getAction, httpAction, postAction, requestPut } from '@/api/manage'
 import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
-import { JVXETypes } from '@/components/jeecg/JVxeTable'
-import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect'
-import moment from 'dayjs'
+import ToolsModal from '@views/tms/requirement/modules/ToolsModal.vue'
 
 export default {
   name: 'ToolsSharpeningModal',
   mixins: [JVxeTableModelMixin],
   components: {
-    MaintenanceEquipmentSelect
+    ToolsModal
   },
   data() {
     return {
@@ -138,123 +147,99 @@
       confirmLoading: false,
       spinning: false,
       disabled: false,
+      disableSubmit: false,
       validatorRules: {
-        // standardName: [
-        //   { required: true, message: '璇疯緭鍏ユ爣鍑嗗悕绉�!' }
-        // ],
-        inspectionDate: [
-          { required: true, message: '璇烽�夋嫨鐐规鏃ユ湡!' }
+
+        sharpeningTime: [
+          { required: true, message: '璇烽�夋嫨鍒冪(鏃ユ湡!' }
         ],
-        // maintenancePeriod: [
-        //   { required: true, message: '璇疯緭鍏ヤ繚鍏诲懆鏈燂紝鍗曚綅锛氬ぉ!' }
-        // ],
-        equipmentId: [
-          { required: true, message: '璇烽�夋嫨璁惧!' }
+        responsibleRerson: [
+          { required: true, message: '璇烽�夋嫨璐d换浜�!' }
+        ],
+        sharpeningResult: [
+          { required: true, message: '璇疯緭鍏ュ垉纾ㄧ粨鏋滃強寤鸿!' }
+        ],
+        responsiblePerson: [
+          { required: true, message: '璇烽�夋嫨璐d换浜�!' }
         ]
+
       },
       url: {
-        add: '/eam/eamInspectionOrder/add',
-        edit: '/eam/eamInspectionOrder/edit',
-        detail: '/eam/eamMaintenanceStandardDetail/queryList',
-        detailOrder: '/eam/eamInspectionOrderDetail/queryList',
-        userSelect: '/eam/user_select/list'
-      },
-      maintenanceCategory: 'POINT_INSPECTION',
-      maintenanceOperatorOptions: [],
-      standardId: '',
-      standardType: false,
-      detail: {
-        loading: false,
-        dataSource: [],
-        columns: [
-          {
-            title: '搴忓彿',
-            key: 'itemCode',
-            type: JVXETypes.inputNumber,
-            width: '10%',
-            align: 'center',
-            validateRules: [
-              { required: true, unique: true, message: '搴忓彿涓嶈兘閲嶅' }
-            ]
-          },
-          {
-            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: '淇濆吇瑕佹眰涓嶈兘涓虹┖锛�' }
-            ]
-          }
-        ]
+        add: '/tms/toolSharpening/add',
+        edit: '/tms/toolSharpening/edit',
+        queryDetailList: '/tms/toolSharpening/listToolSharpening'
       }
     }
   },
   created() {
   },
+  mounted() {
+    this.$bus.$on('selectionRows', (data) => {
+      console.log('selectionRows', data)
+      if (data && data.length > 0) {
+        const item = data[0]
+        // 浣跨敤 $set 纭繚 model 鐨勫睘鎬ф槸鍝嶅簲寮忕殑
+        this.$set(this.model, 'toolId', item.toolCode)
+        this.$set(this.model, 'toolCode', item.id)
+        this.$set(this.model, 'classifyId', item.classifyId)
+        this.$set(this.model, 'paramaTableName', item.paramaTableName_dictText)
+        this.$set(this.model, 'applicationType', item.applicationType_dictText)
+        this.$set(this.model, 'toolModel', item.toolModel)
+        this.$set(this.model, 'provinceCity', item.provinceCity)
+        this.$set(this.model, 'warehouseId', item.warehouseId)
+        this.$set(this.model, 'positionCode', item.positionCode)
+        this.$set(this.model, 'mainUnit', item.mainUnit)
+      }
+    })
+
+  },
   methods: {
+
+    selectTools: function() {
+      this.$refs.toolListModel.showModals()
+      this.$refs.toolListModel.title = '閫夋嫨宸ュ叿淇℃伅'
+      this.$refs.toolListModel.disableSubmit = false
+    },
+
     add() {
-      this.model = {}
-      this.detail.dataSource = []
-      this.visible = true
-      this.disabled = false
-      this.standardType = false
+      this.addShow = false
+      this.edit()
     },
 
     edit(record) {
+      console.log(record)
       this.model = Object.assign({}, record)
-      this.standardId = record.standardId
-      this.disabled = true
-      this.standardType = true
       this.visible = true
-      this.detail.dataSource = []
-      if (record && record.referenceFile) {
-        let obj = JSON.parse(record.referenceFile)
-        this.model.fileList = [obj]
-      } else {
-        this.model.fieldList = []
-      }
-      this.loadDetailOrder(record.id)
+      getAction(this.url.queryDetailList, {
+        id: record.id,
+        pageNo: 1,
+        pageSize: 99999
+      }).then((res) => {
+        if (res.success) {
+          console.log(res.result.records)
+          this.dataSource = res.result.records
+        } else {
+          this.dataSource = null
+        }
+      })
     },
-
-    async handleOk() {
+    handleOk() {
       const that = this
-      let errMap = await that.$refs.editableDetailTable.validateTable()
-      if (errMap) {
-        this.$message.warning('鏁版嵁鏍¢獙澶辫触锛�')
-        return
-      }
-      // 瑙﹀彂琛ㄥ崟楠岃瘉
+      that.confirmLoading = true
+
+      // 鉁� 瑙﹀彂琛ㄥ崟楠岃瘉
       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]
+          let formData = Object.assign(this.model)
 
-          that.confirmLoading = that.spinning = true
-          let httpurl = ''
-          let method = ''
+          let obj
           if (!this.model.id) {
-            httpurl += this.url.add
-            method = 'post'
+            obj = postAction(this.url.add, formData)
           } else {
-            httpurl += this.url.edit
-            method = 'put'
+            obj = requestPut(this.url.edit, formData, { id: this.model.id })
           }
-          this.model.standardId = this.standardId
-          httpAction(httpurl, this.model, method).then((res) => {
+
+          obj.then((res) => {
             if (res.success) {
               that.$message.success(res.message)
               that.$emit('ok')
@@ -263,108 +248,14 @@
               that.$message.warning(res.message)
             }
           }).finally(() => {
-            that.confirmLoading = that.spinning = false
+            that.confirmLoading = false
           })
         } else {
+          that.$message.warning('璇峰~鍐欏繀濉瓧娈�')
+          that.confirmLoading = false
           return false
         }
       })
-    },
-    onSearchPart() {
-      this.$refs.PartPopUp.showModals([this.model.enterpriseId])
-    },
-
-    autocompleteForm(selectObj) {
-      this.model.standardName = selectObj.standardName
-      this.model.maintenancePeriod = selectObj.maintenancePeriod
-      this.model.standardCode = selectObj.standardCode
-      // 鑻ュ彇娑堣澶囬�夋嫨鍚庝繚鍏诲懆鏈熶负绌哄垯闇�娓呯┖鐐规鏃ユ湡鍜岀偣妫�杩囨湡鏃堕棿
-      if (!this.model.equipmentId) {
-        delete this.model.inspectionDate
-        delete this.model.expirationTime
-      } else {
-        // 濡傛灉鐐规鏃ユ湡瀛樺湪锛屽垯鍦ㄩ噸鏂伴�夋嫨璁惧鍚庡嵆淇濆吇鍛ㄦ湡鍙兘鍙戠敓鏀瑰彉鍚庨噸鏂拌绠楄繃鏈熸椂闂�
-        if (this.model.inspectionDate) this.expirationTimeFrom(this.model.inspectionDate)
-      }
-      if (!this.standardType) {
-        console.log('this.standardType', this.standardType)
-        this.standardId = selectObj.id
-        this.loadDetail(selectObj.id)
-      }
-      this.$nextTick(() => this.loadMaintenanceOperatorList(this.model.equipmentId))
-    },
-
-    expirationTimeFrom(date) {
-      //杩囨湡鏃堕棿鏄垵濮嬫椂闂�+淇濆吇鍛ㄦ湡
-      if (date && this.model.maintenancePeriod) {
-        // 杞崲涓烘椂闂存埑瀛楃涓诧紙鎴栨寚瀹氭牸寮忥級
-        this.model.expirationTime = moment(date)
-          .add(this.model.maintenancePeriod, 'days')
-          .format('YYYY-MM-DD')
-      } else {
-        this.model.expirationTime = null // 娓呯┖鏃犳晥鍊�
-      }
-    },
-
-    //鍔犺浇璇︽儏鏁版嵁
-    loadDetail(standardId) {
-      this.detail.dataSource = []
-      if (standardId) {
-        console.log('standardId', standardId)
-        this.spinning = true
-        getAction(this.url.detail, { standardId: standardId })
-          .then(res => {
-            if (res.success) {
-              this.detail.dataSource = [...res.result]
-            }
-          })
-          .finally(() => {
-            this.spinning = false
-          })
-      }
-    },
-
-    loadDetailOrder(orderId) {
-      if (orderId) {
-        this.spinning = true
-        getAction(this.url.detailOrder, { orderId: orderId })
-          .then(res => {
-            if (res.success) {
-              this.detail.dataSource = [...res.result]
-            }
-          })
-          .finally(() => {
-            this.spinning = false
-          })
-      }
-    },
-
-    loadMaintenanceOperatorList(equipmentId) {
-      this.maintenanceOperatorOptions = []
-      let params = { positionCode: 'PCR0001' }
-      if (equipmentId) {
-        params.equipmentId = equipmentId
-      } else {
-        delete this.model.operator
-        return
-      }
-      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
-          } else {
-            if (that.model.operator) delete that.model.operator
-          }
-        })
-        .catch(err => {
-          if (that.model.operator) delete that.model.operator
-        })
     },
 
     handleCancel() {

--
Gitblit v1.9.3