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