From b008401dfa948e874ce1e340e669322d6c68c097 Mon Sep 17 00:00:00 2001 From: cuijian <cuijian@xalxzn.com> Date: 星期四, 31 八月 2023 18:42:57 +0800 Subject: [PATCH] 专业点检标准、专业点检方案增加自动生成编码,项目性维修上传附件功能 --- src/views/eam/SpecialtyInspectionPlanList.vue | 2 src/views/eam/modules/specialtyInspectionStandard/SpecialtylnspectionStandardModal.vue | 28 ++++++-- src/views/eam/modules/projectMaintenanceOrder/ProjectMaintenanceOrderForm.vue | 33 +++++++++- src/views/eam/SerialNumberList.vue | 12 ++-- src/views/eam/modules/specialtyInspectionPlan/SpecialtyInspectionPlanModal.vue | 21 ++++-- src/views/eam/SpecialtyInspectionStandardList.vue | 12 ++++ src/views/spare/modules/sparePart/SparePartModel.vue | 25 +++++--- src/views/eam/ProjectMaintenanceOrderList.vue | 45 ++++++++------ 8 files changed, 122 insertions(+), 56 deletions(-) diff --git a/src/views/eam/ProjectMaintenanceOrderList.vue b/src/views/eam/ProjectMaintenanceOrderList.vue index 24aefee..e805135 100644 --- a/src/views/eam/ProjectMaintenanceOrderList.vue +++ b/src/views/eam/ProjectMaintenanceOrderList.vue @@ -132,22 +132,21 @@ @change='handleTableChange' > <!-- :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'checkbox'}" --> - <template - slot='imgSlot' - slot-scope='text,record' - > - <span - v-if='!text' - style='font-size: 12px;font-style: italic;' - >鏃犲浘鐗�</span> - <img + <template slot="imgSlot" slot-scope="text,record"> + <span v-if="!record.path" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span> + <img v-else :src="getImgView(record.path)" :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 - :src='getImgView(text)' - :preview='record.id' - height='25px' - alt='' - style='max-width:80px;font-size: 12px;font-style: italic;' - /> + :ghost="true" + type="primary" + icon="download" + size="small" + @click="downloadFile(text)"> + 涓嬭浇 + </a-button> </template> <span @@ -324,11 +323,17 @@ // } }, { - title: '闄勪欢', - align: "center", - dataIndex: 'annex', - scopedSlots: { customRender: 'imgSlot' } - }, + title:'闄勪欢', + align:"center", + dataIndex: 'annex', + scopedSlots: {customRender: 'fileSlot'} + }, + // { + // title:'鍥剧墖棰勮', + // align:"center", + // dataIndex: 'annex', + // scopedSlots: {customRender: 'imgSlot'} + // }, // { // title:'鍙樺姩鏂瑰紡', // align:"center", diff --git a/src/views/eam/SerialNumberList.vue b/src/views/eam/SerialNumberList.vue index 2b16125..cc9c7dd 100644 --- a/src/views/eam/SerialNumberList.vue +++ b/src/views/eam/SerialNumberList.vue @@ -198,12 +198,12 @@ dataIndex: 'beginSymbol', sorter: true, }, - { - title: '浼佷笟浠g爜', - align: 'center', - dataIndex: 'enterpriseCode', - sorter: true, - }, + // { + // title: '浼佷笟浠g爜', + // align: 'center', + // dataIndex: 'enterpriseCode', + // sorter: true, + // }, { title: '绫诲瀷', align: 'center', diff --git a/src/views/eam/SpecialtyInspectionPlanList.vue b/src/views/eam/SpecialtyInspectionPlanList.vue index 42507f4..c470fc3 100644 --- a/src/views/eam/SpecialtyInspectionPlanList.vue +++ b/src/views/eam/SpecialtyInspectionPlanList.vue @@ -13,7 +13,7 @@ :md="6" :sm="8" > - <a-form-item label='鐐规璁″垝缂栫爜'> + <a-form-item label='鐐规鏂规缂栫爜'> <a-input placeholder='璇疯緭鍏ヨ澶囩紪鐮�' v-model='queryParam.num' diff --git a/src/views/eam/SpecialtyInspectionStandardList.vue b/src/views/eam/SpecialtyInspectionStandardList.vue index 536795b..a99b9fa 100644 --- a/src/views/eam/SpecialtyInspectionStandardList.vue +++ b/src/views/eam/SpecialtyInspectionStandardList.vue @@ -154,6 +154,10 @@ >鍗囩増</a> <a-divider type="vertical" /> <a + v-if="record.versionStatus == '2'" + @click="handleCopy(record)" + >澶嶅埗</a> + <a v-if="record.versionStatus == '1'" @click="handleTakeEffect(record)" >鐢熸晥</a> @@ -357,6 +361,14 @@ this.$refs.modalForm.isRevise = true; }, + //澶嶅埗 + handleCopy: function (record) { + this.$refs.modalForm.edit(record); + this.$refs.modalForm.title = "涓撲笟鐐规鏍囧噯澶嶅埗"; + this.$refs.modalForm.disableSubmit = false; + this.$refs.modalForm.isCopy = true; + }, + //鐢熸晥 handleTakeEffect(record) { const that = this; diff --git a/src/views/eam/modules/projectMaintenanceOrder/ProjectMaintenanceOrderForm.vue b/src/views/eam/modules/projectMaintenanceOrder/ProjectMaintenanceOrderForm.vue index 89b0747..73205d1 100644 --- a/src/views/eam/modules/projectMaintenanceOrder/ProjectMaintenanceOrderForm.vue +++ b/src/views/eam/modules/projectMaintenanceOrder/ProjectMaintenanceOrderForm.vue @@ -97,10 +97,7 @@ :wrapperCol='wrapperCol' prop='annex' > - <j-image-upload - :isMultiple="false" - v-model="model.annex" - ></j-image-upload> + <j-upload :returnUrl= "false" :isMultiple="false" v-model="model.file" ></j-upload> </a-form-model-item> </a-col> <a-col :span='12'> @@ -215,10 +212,10 @@ import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' import { JVXETypes } from '@comp/jeecg/JVxeTable' -import { getRefPromise, VALIDATE_FAILED } from '@/components/jeecg/JVxeTable/utils/vxeUtils.js' import JFormContainer from '@/components/jeecg/JFormContainer' import { getAction } from '@api/manage' +import { VALIDATE_FAILED, getRefPromise, validateFormAndTables,validateFormModelAndTables} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js' export default { name: 'ProjectMaintenanceOrderForm', @@ -543,6 +540,32 @@ }, methods: { + handleOk() { + this.model['annex'] = this.model.file[0].filePath; + /** 瑙﹀彂琛ㄥ崟楠岃瘉 */ + this.getAllTable().then(tables => { + /** 涓�娆℃�ч獙璇佷富琛ㄥ拰鎵�鏈夌殑娆¤〃 */ + return validateFormModelAndTables(this.$refs.form,this.model, tables) + }).then(allValues => { + /** 涓�娆℃�ч獙璇佷竴瀵逛竴鐨勬墍鏈夊瓙琛� */ + return this.validateSubForm(allValues) + }).then(allValues => { + if (typeof this.classifyIntoFormData !== 'function') { + throw this.throwNotFunction('classifyIntoFormData') + } + let formData = this.classifyIntoFormData(allValues) + // 鍙戣捣璇锋眰 + return this.request(formData) + }).catch(e => { + if (e.error === VALIDATE_FAILED) { + // 濡傛灉鏈夋湭閫氳繃琛ㄥ崟楠岃瘉鐨勫瓙琛紝灏辫嚜鍔ㄨ烦杞埌瀹冩墍鍦ㄧ殑tab + this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index] + } else { + console.error(e) + } + }) + }, + getSuppler() { getAction(this.url.supplierVoList).then((res) => { if (res.success) { diff --git a/src/views/eam/modules/specialtyInspectionPlan/SpecialtyInspectionPlanModal.vue b/src/views/eam/modules/specialtyInspectionPlan/SpecialtyInspectionPlanModal.vue index 06f9007..f22b2d8 100644 --- a/src/views/eam/modules/specialtyInspectionPlan/SpecialtyInspectionPlanModal.vue +++ b/src/views/eam/modules/specialtyInspectionPlan/SpecialtyInspectionPlanModal.vue @@ -340,11 +340,11 @@ form: this.$form.createForm(this), headers: {}, validatorRules: { - num: { - rules: [ - { required: true, message: '璇疯緭鍏ョ偣妫�璁″垝缂栫爜!' }, - ] - }, + // num: { + // rules: [ + // { required: true, message: '璇疯緭鍏ョ偣妫�璁″垝缂栫爜!' }, + // ] + // }, inspectionCycleId: { rules: [ { required: true, message: '璇烽�夋嫨鐐规鍛ㄦ湡!' }, @@ -384,6 +384,7 @@ listByBusIdAndBusType: "/system/sysUploadRela/listByBusIdAndBusType", getInspectionCycle: "/eam/inspectionStandardDetail/getInspectionCycle", // getSysDeparts: "/eam/specialtyInspectionPlan/getSysDeparts", + getNum: '/eam/sysIdentity/getNumNew', }, dataSource: [], //鐢ㄤ簬灞曠ず鏂囦欢 @@ -522,7 +523,7 @@ handleOk() { const that = this; // 瑙﹀彂琛ㄥ崟楠岃瘉 - that.form.validateFields((err, values) => { + that.form.validateFields(async (err, values) => { if (JSON.stringify(that.fileObject.file) == '{}' && that.uploadId == '' && that.fileList.length == 0) { that.$message.warning("璇蜂笂浼犳枃浠�"); return false @@ -543,7 +544,13 @@ method = 'put'; } let formData = Object.assign(that.model, values); - + if(!formData.num){ + await getAction(this.url.getNum, { type: 'SpecialtyInspectionPlan', length: '4' }).then((res) => { + if (res.success) { + formData.num = res.message; + } + }); + } formData.type = "inspection_path_photo"; formData.uploadId = that.uploadId; formData.fileType = "7";//鏂囦欢绫诲瀷 7锛氬浘鐗� diff --git a/src/views/eam/modules/specialtyInspectionStandard/SpecialtylnspectionStandardModal.vue b/src/views/eam/modules/specialtyInspectionStandard/SpecialtylnspectionStandardModal.vue index 6fd79a4..2573712 100644 --- a/src/views/eam/modules/specialtyInspectionStandard/SpecialtylnspectionStandardModal.vue +++ b/src/views/eam/modules/specialtyInspectionStandard/SpecialtylnspectionStandardModal.vue @@ -22,7 +22,7 @@ <a-input allow-clear :disabled="codeDisable" - :placeholder="disableSubmit?'':'璇疯緭鍏ョ偣妫�鏍囧噯缂栫爜'" + :placeholder="disableSubmit?'':'璇疯緭鍏ョ偣妫�鏍囧噯缂栫爜锛屼笉杈撳叆灏嗙敱绯荤粺鑷姩鐢熸垚缂栫爜'" v-decorator="['num', validatorRules.num ]" /> </a-form-item> @@ -291,6 +291,7 @@ model: {}, inspectionCycles: {}, isRevise: false, + isCopy:false, labelCol: { xs: { span: 24 }, sm: { span: 6 }, @@ -302,11 +303,11 @@ confirmLoading: false, form: this.$form.createForm(this), validatorRules: { - num: { - rules: [ - { required: true, message: '璇疯緭鍏ョ偣妫�鏍囧噯缂栫爜!' }, - ] - }, + // num: { + // rules: [ + // { required: true, message: '璇疯緭鍏ョ偣妫�鏍囧噯缂栫爜!' }, + // ] + // }, equipmentName: { rules: [ { required: true, message: '璇烽�夋嫨璁惧!' }, @@ -330,6 +331,8 @@ getInspectionCycle: "/eam/inspectionStandardDetail/getInspectionCycle", revise: '/eam/specialtyStandard/revise', getReviseVersion: "/eam/specialtyStandard/getReviseVersion", + getNum: '/eam/sysIdentity/getNumNew', + getCopy: "/eam/specialtyStandard/getCopy", }, dataSource: [], @@ -426,20 +429,29 @@ handleOk() { const that = this; - this.form.validateFields((err, values) => { + this.form.validateFields(async (err, values) => { if (!err) { that.confirmLoading = true; let formData = Object.assign(this.model, values); formData.specialtyInspectionStandardDetaillist = that.dataSource; let obj; if (!this.model.id) { + if(!formData.num){ + await getAction(this.url.getNum, { type: 'SpecialtyInspectionStandard', length: '4' }).then((res) => { + if (res.success) { + formData.num = res.message; + } + }); + } formData.versionStatus = '1' obj = postAction(this.url.add, formData); } else { if (this.isRevise) { formData.versionStatus = '1' obj = postAction(this.url.revise, formData); - } else { + } else if(this.isCopy){ + obj = postAction(this.url.getCopy, formData); + }else { obj = requestPut(this.url.edit, formData, { id: this.model.id }); } } diff --git a/src/views/spare/modules/sparePart/SparePartModel.vue b/src/views/spare/modules/sparePart/SparePartModel.vue index b5f7752..223f820 100644 --- a/src/views/spare/modules/sparePart/SparePartModel.vue +++ b/src/views/spare/modules/sparePart/SparePartModel.vue @@ -311,7 +311,7 @@ validatorRules: { num: { rules: [ - { required: true, message: '璇疯緭鍏ヨ澶囧垎绫荤紪鍙�!' }, + // { required: true, message: '璇疯緭鍏ヨ澶囧垎绫荤紪鍙�!' }, { min: 2, max: 30, message: '闀垮害鍦� 2 鍒� 30 涓瓧绗�', trigger: 'blur' }, // { validator: this.validateNum }, ] @@ -378,13 +378,13 @@ this.codeDisable = true; } else { this.codeDisable = false; - this.$nextTick(() => { - getAction(this.url.getNum, { type: 'SparePart', length: '4' }).then((res) => { - if (res.success) { - this.form.setFieldsValue({ num: res.message }); - } - }) - }); + // this.$nextTick(() => { + // getAction(this.url.getNum, { type: 'SparePart', length: '4' }).then((res) => { + // if (res.success) { + // this.form.setFieldsValue({ num: res.message }); + // } + // }) + // }); } }, @@ -396,12 +396,19 @@ handleOk() { const that = this; // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { + this.form.validateFields(async (err, values) => { if (!err) { that.confirmLoading = true; let formData = Object.assign(this.model, values); let obj; if (!this.model.id) { + if(!formData.num){ + await getAction(this.url.getNum, { type: 'SparePart', length: '4' }).then((res) => { + if (res.success) { + formData.num = res.message; + } + }); + } formData.sparePartCategoryId = this.sparePartCategoryId obj = postAction(this.url.add, formData); } else { -- Gitblit v1.9.3