From 4c8b185fea72bc3bb8fc380a196b8fe2a8e5f1af Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期四, 03 七月 2025 20:13:28 +0800 Subject: [PATCH] 设备管理问题修改 --- src/views/eam/purchase/modules/EamEquipmentPurchasePlanForm.vue | 480 +++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 313 insertions(+), 167 deletions(-) diff --git a/src/views/eam/purchase/modules/EamEquipmentPurchasePlanForm.vue b/src/views/eam/purchase/modules/EamEquipmentPurchasePlanForm.vue index 4a26886..06f9ffe 100644 --- a/src/views/eam/purchase/modules/EamEquipmentPurchasePlanForm.vue +++ b/src/views/eam/purchase/modules/EamEquipmentPurchasePlanForm.vue @@ -1,101 +1,247 @@ <template> <a-spin :spinning="confirmLoading"> <j-form-container :disabled="formDisabled"> - <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> + <a-form-model + ref="form" + :model="model" + :rules="validatorRules" + slot="detail" + > <a-row> <a-col :span="12"> - <a-form-model-item label="閲囪喘璁″垝缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planCode"> - <a-input v-model="model.planCode" placeholder="绯荤粺鑷姩鐢熸垚" disabled ></a-input> + <a-form-model-item + label="閲囪喘璁″垝缂栫爜" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="planCode" + > + <a-input + v-model="model.planCode" + placeholder="绯荤粺鑷姩鐢熸垚" + disabled + ></a-input> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="閲囪喘璁″垝鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planName"> - <a-input v-model="model.planName" placeholder="璇疯緭鍏ラ噰璐鍒掑悕绉�" ></a-input> + <a-form-model-item + label="閲囪喘璁″垝鍚嶇О" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="planName" + > + <a-input + v-model="model.planName" + placeholder="璇疯緭鍏ラ噰璐鍒掑悕绉�" + ></a-input> </a-form-model-item> </a-col> - <a-col :span="12" v-if="disabled"> - <a-form-model-item label="璁″垝鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planStatus"> - <j-dict-select-tag dict-code="equipment_purchase_plan_status" placeholder="璇烽�夋嫨璁″垝鐘舵��" - v-model="model.planStatus" /> + <a-col + :span="12" + v-if="disabled" + > + <a-form-model-item + label="璁″垝鐘舵��" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="planStatus" + > + <j-dict-select-tag + dict-code="equipment_purchase_plan_status" + placeholder="璇烽�夋嫨璁″垝鐘舵��" + v-model="model.planStatus" + /> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="鍨嬪彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentModel"> - <a-input v-model="model.equipmentModel" placeholder="璇疯緭鍏ュ瀷鍙�" ></a-input> + <a-form-model-item + label="鍨嬪彿" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="equipmentModel" + > + <a-input + v-model="model.equipmentModel" + placeholder="璇疯緭鍏ュ瀷鍙�" + ></a-input> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="閲囪喘鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="purchaseNumber"> - <a-input-number v-model="model.purchaseNumber" placeholder="璇疯緭鍏ラ噰璐暟閲�" style="width: 100%" /> + <a-form-model-item + label="閲囪喘鏁伴噺" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="purchaseNumber" + > + <a-input-number + v-model="model.purchaseNumber" + placeholder="璇疯緭鍏ラ噰璐暟閲�" + style="width: 100%" + /> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="棰勮鍗曚环" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="estimatedUnitPrice"> - <a-input-number v-model="model.estimatedUnitPrice" placeholder="璇疯緭鍏ラ璁″崟浠�" style="width: 100%" /> + <a-form-model-item + label="棰勮鍗曚环" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="estimatedUnitPrice" + > + <a-input-number + v-model="model.estimatedUnitPrice" + placeholder="璇疯緭鍏ラ璁″崟浠�" + style="width: 100%" + /> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="鎬讳环" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="totalPrice"> - <a-input-number v-model="model.totalPrice" placeholder="璇疯緭鍏ユ�讳环" style="width: 100%" /> + <a-form-model-item + label="鎬讳环" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="totalPrice" + > + <a-input-number + v-model="model.totalPrice" + placeholder="璇疯緭鍏ユ�讳环" + style="width: 100%" + /> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="鍚堝悓鎬婚噾棰�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="overallContractAmount"> - <a-input-number v-model="model.overallContractAmount" placeholder="璇疯緭鍏ュ悎鍚屾�婚噾棰�" style="width: 100%" /> + <a-form-model-item + label="鍚堝悓鎬婚噾棰�" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="overallContractAmount" + > + <a-input-number + v-model="model.overallContractAmount" + placeholder="璇疯緭鍏ュ悎鍚屾�婚噾棰�" + style="width: 100%" + /> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="绠$悊鍒嗙被" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentImportance"> - <j-dict-select-tag dict-code="equipment_abc_flag" placeholder="璇烽�夋嫨绠$悊鍒嗙被" - v-model="model.equipmentImportance" /> + <a-form-model-item + label="绠$悊鍒嗙被" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="equipmentImportance" + > + <j-dict-select-tag + dict-code="equipment_abc_flag" + placeholder="璇烽�夋嫨绠$悊鍒嗙被" + v-model="model.equipmentImportance" + /> </a-form-model-item> </a-col> -<!-- <a-col :span="12">--> -<!-- <a-form-model-item label="璁″垝绫诲埆" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planCategory">--> -<!-- <a-input v-model="model.planCategory" placeholder="璇疯緭鍏ヨ鍒掔被鍒�" ></a-input>--> -<!-- </a-form-model-item>--> -<!-- </a-col>--> + <!-- <a-col :span="12">--> + <!-- <a-form-model-item label="璁″垝绫诲埆" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planCategory">--> + <!-- <a-input v-model="model.planCategory" placeholder="璇疯緭鍏ヨ鍒掔被鍒�" ></a-input>--> + <!-- </a-form-model-item>--> + <!-- </a-col>--> <a-col :span="12"> - <a-form-model-item label="鐢宠浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicant"> - <j-search-select-tag placeholder="璇烽�夋嫨鐢宠浜�" v-model="model.applicant" dict="sys_user,realname, username, del_flag=0 and status=1"/> + <a-form-model-item + label="鐢宠浜�" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="applicant" + > + <j-search-select-tag + placeholder="璇烽�夋嫨鐢宠浜�" + v-model="model.applicant" + dict="sys_user,realname, realname, del_flag=0 and status=1" + /> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="鐢宠杞﹂棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicantProduction"> - <a-tree-select v-model="model.applicantProduction" - style="width: 100%" - :tree-data="treeData" - :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" - placeholder="璇烽�夋嫨浣跨敤杞﹂棿" - allow-clear - tree-default-expand-all - > + <a-form-model-item + label="鐢宠杞﹂棿" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="applicantProduction" + > + <a-tree-select + v-model="model.applicantProduction" + style="width: 100%" + :tree-data="treeData" + :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" + placeholder="璇烽�夋嫨浣跨敤杞﹂棿" + allow-clear + tree-default-expand-all + > </a-tree-select> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="璁″垝寮�濮嬫棩鏈�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planStartDate"> - <j-date :show-time="true" dateFormat="YYYY-MM-DD HH" placeholder="璇烽�夋嫨璁″垝寮�濮嬫棩鏈�" v-model="model.planStartDate" style="width: 100%" /> + <a-form-model-item + label="璁″垝寮�濮嬫棩鏈�" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="planStartDate" + > + <j-date + :show-time="true" + dateFormat="YYYY-MM-DD HH" + placeholder="璇烽�夋嫨璁″垝寮�濮嬫棩鏈�" + v-model="model.planStartDate" + style="width: 100%" + /> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="璁″垝瀹屾垚鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planEndDate"> - <j-date :show-time="true" dateFormat="YYYY-MM-DD HH" placeholder="璇烽�夋嫨璁″垝瀹屾垚鏃ユ湡" v-model="model.planEndDate" style="width: 100%" /> + <a-form-model-item + label="璁″垝瀹屾垚鏃ユ湡" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="planEndDate" + > + <j-date + :show-time="true" + dateFormat="YYYY-MM-DD HH" + placeholder="璇烽�夋嫨璁″垝瀹屾垚鏃ユ湡" + v-model="model.planEndDate" + style="width: 100%" + /> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="璁″垝鎻忚堪" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planDescription"> - <a-textarea v-model="model.planDescription" placeholder="璇疯緭鍏ヨ鍒掓弿杩�" ></a-textarea> + <a-form-model-item + label="璁″垝鎻忚堪" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="planDescription" + > + <a-textarea + v-model="model.planDescription" + placeholder="璇疯緭鍏ヨ鍒掓弿杩�" + ></a-textarea> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="瀹炴柦鍙婂崗鍔╅儴闂�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="relatedDeparts"> - <a-input v-model="model.relatedDeparts" placeholder="璇疯緭鍏ュ疄鏂藉強鍗忓姪閮ㄩ棬" ></a-input> + <a-form-model-item + label="瀹炴柦鍙婂崗鍔╅儴闂�" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="relatedDeparts" + > + <a-input + v-model="model.relatedDeparts" + placeholder="璇疯緭鍏ュ疄鏂藉強鍗忓姪閮ㄩ棬" + ></a-input> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark"> - <a-textarea v-model="model.remark" placeholder="璇疯緭鍏ュ娉�" ></a-textarea> + <a-form-model-item + label="澶囨敞" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="remark" + > + <a-textarea + v-model="model.remark" + placeholder="璇疯緭鍏ュ娉�" + ></a-textarea> </a-form-model-item> </a-col> </a-row> @@ -106,126 +252,126 @@ <script> - import { httpAction, getAction } from '@/api/manage' - import { validateDuplicateValue } from '@/utils/util' +import { httpAction, getAction } from '@/api/manage' +import { validateDuplicateValue } from '@/utils/util' - export default { - name: 'EamEquipmentPurchasePlanForm', - components: { - }, - props: { - //琛ㄥ崟绂佺敤 - disabled: { - type: Boolean, - default: false, - required: false - } - }, - data () { - return { - model:{ - }, - treeData: [], - labelCol: { - xs: { span: 24 }, - sm: { span: 5 }, - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 }, - }, - confirmLoading: false, - validatorRules: { - planName: [ - { required: true, message: '璇疯緭鍏ラ噰璐鍒掑悕绉�!'}, - ], - equipmentModel: [ - { required: true, message: '璇疯緭鍏ュ瀷鍙�!'}, - ], - purchaseNumber: [ - { required: true, message: '璇疯緭鍏ラ噰璐暟閲�!'}, - ], - estimatedUnitPrice: [ - { required: true, message: '璇疯緭鍏ラ璁″崟浠�!'}, - ], - totalPrice: [ - { required: true, message: '璇疯緭鍏ユ�讳环!'}, - ], - overallContractAmount: [ - { required: true, message: '璇疯緭鍏ュ悎鍚屾�婚噾棰�!'}, - ], - planStartDate: [ - { required: true, message: '璇疯緭鍏ヨ鍒掑紑濮嬫棩鏈�!'}, - ], - planEndDate: [ - { required: true, message: '璇疯緭鍏ヨ鍒掑畬鎴愭棩鏈�!'}, - ], - }, - url: { - add: "/eam/eamEquipmentPurchasePlan/add", - edit: "/eam/eamEquipmentPurchasePlan/edit", - queryById: "/eam/eamEquipmentPurchasePlan/queryById", - loadWorkShopOptions:'/mdc/mdcProduction/loadProductionTreeOptions' - } - } - }, - computed: { - formDisabled(){ - return this.disabled - }, - }, - created () { - //澶囦唤model鍘熷鍊� - this.modelDefault = JSON.parse(JSON.stringify(this.model)); - this.loadWorkShopTree() - }, - methods: { - loadWorkShopTree() { - //鍔犺浇杞﹂棿閫夋嫨鏍� - getAction(this.url.loadWorkShopOptions).then(res => { - if (res.success) { - this.treeData = [...res.result] - }else { - that.$message.warning(res.message) - } - }) - }, - add () { - this.edit(this.modelDefault); - }, - edit (record) { - this.model = Object.assign({}, record); - this.visible = true; - }, - submitForm () { - const that = this; - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.$refs.form.validate(valid => { - if (valid) { - 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'); - }else{ - that.$message.warning(res.message); - } - }).finally(() => { - that.confirmLoading = false; - }) - } - - }) - }, +export default { + name: 'EamEquipmentPurchasePlanForm', + components: { + }, + props: { + //琛ㄥ崟绂佺敤 + disabled: { + type: Boolean, + default: false, + required: false } + }, + data() { + return { + model: { + }, + treeData: [], + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, + confirmLoading: false, + validatorRules: { + planName: [ + { required: true, message: '璇疯緭鍏ラ噰璐鍒掑悕绉�!' }, + ], + equipmentModel: [ + { required: true, message: '璇疯緭鍏ュ瀷鍙�!' }, + ], + purchaseNumber: [ + { required: true, message: '璇疯緭鍏ラ噰璐暟閲�!' }, + ], + estimatedUnitPrice: [ + { required: true, message: '璇疯緭鍏ラ璁″崟浠�!' }, + ], + totalPrice: [ + { required: true, message: '璇疯緭鍏ユ�讳环!' }, + ], + overallContractAmount: [ + { required: true, message: '璇疯緭鍏ュ悎鍚屾�婚噾棰�!' }, + ], + planStartDate: [ + { required: true, message: '璇疯緭鍏ヨ鍒掑紑濮嬫棩鏈�!' }, + ], + planEndDate: [ + { required: true, message: '璇疯緭鍏ヨ鍒掑畬鎴愭棩鏈�!' }, + ], + }, + url: { + add: "/eam/eamEquipmentPurchasePlan/add", + edit: "/eam/eamEquipmentPurchasePlan/edit", + queryById: "/eam/eamEquipmentPurchasePlan/queryById", + loadWorkShopOptions: '/mdc/mdcProduction/loadProductionTreeOptions' + } + } + }, + computed: { + formDisabled() { + return this.disabled + }, + }, + created() { + //澶囦唤model鍘熷鍊� + this.modelDefault = JSON.parse(JSON.stringify(this.model)); + this.loadWorkShopTree() + }, + methods: { + loadWorkShopTree() { + //鍔犺浇杞﹂棿閫夋嫨鏍� + getAction(this.url.loadWorkShopOptions).then(res => { + if (res.success) { + this.treeData = [...res.result] + } else { + that.$message.warning(res.message) + } + }) + }, + add() { + this.edit(this.modelDefault); + }, + edit(record) { + this.model = Object.assign({}, record); + this.visible = true; + }, + submitForm() { + const that = this; + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + 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'); + } else { + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + }) + } + + }) + }, } +} </script> \ No newline at end of file -- Gitblit v1.9.3