From 1eafd96fcd5d4bea8eb47bb6b5f888ff4af1a088 Mon Sep 17 00:00:00 2001 From: “linengliang” <vanSuperEnergy@163.com> Date: 星期四, 11 一月 2024 18:11:35 +0800 Subject: [PATCH] 维修添加实际用料 --- src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReportModel.vue | 44 +++--- src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReport.vue | 319 +++++++++++++++++++++++++++++--------------- src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue | 13 + 3 files changed, 237 insertions(+), 139 deletions(-) diff --git a/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReport.vue b/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReport.vue index 406d5a4..dc2e7d1 100644 --- a/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReport.vue +++ b/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReport.vue @@ -19,6 +19,29 @@ slot-scope='text, record, index' > <div :key="col.dataIndex"> + <a-input + :value="text" + v-if="col.dataIndex == 'sparePartId'" + auto-size + placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" + @change="(e)=>handleChange(e, record.key, col, index)" + :disabled="record.disabled" + /> + <a-input + :value="text" + v-if="col.dataIndex == 'repairOrderAmUda1'" + auto-size + placeholder="璇疯緭鍏ュ崟浣�" + @change="(e)=>handleChange(e, record.key, col, index)" + :disabled="record.disabled" + /> + <j-dict-select-tag + :value='text' + v-if="col.dataIndex == 'outboundOrderId'" + dictCode="material_type" + :disabled="true" + style="width: 100%;" + @change='(e)=>handleChange(e, record.key, col, index)'/> <a-input-number :value="text" v-if="col.dataIndex == 'actualQuantity'" @@ -31,6 +54,15 @@ </div> </template> <span + slot='action' + slot-scope='text, record,index' + > + <a + :disabled="mainId.status=='4'" + @click='handleDelete(index)' + >鍒犻櫎</a> + </span> + <!-- <span slot='action' slot-scope='text, record' > @@ -56,34 +88,36 @@ > <a v-if="record.isLock=='no'&&mainId.status=='3'">鍒犻櫎</a> </a-popconfirm> - </span> + </span> --> </a-table> <a-button style="width: 100%; margin-top: 16px; margin-bottom: 8px" type="dashed" icon="plus" @click="addMaterial" - :disabled="mainId.status=='4' || mainId.status=='2'" + :disabled="mainId.status!='3'||( mainId.repairOrderUda1!='needPart'&&mainId.repairOrderUda1!='needSpare')" >娣诲姞瀹為檯鐢ㄦ枡</a-button> <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> <a-row :style="{textAlign:'right'}"> - <!-- <a-button + <a-button :style="{marginRight: '8px'}" - @click="handleCancel" + @click='handleCancel' > 鍙栨秷 - </a-button> --> + </a-button> <!-- <a-button - @click="handleOk(1)" - type="primary" + @click='handleOk(1)' + type='primary' :style="{marginRight: '8px'}" - :disabled="specialyMaintenanceOrderStatus!='4'" - >鏆傚瓨</a-button> + :disabled="this.repairOrderStatus=='4' || this.repairOrderStatus=='2'" + >鏆傚瓨 + </a-button> --> <a-button - @click="handleOk(0)" - type="primary" - :disabled="specialyMaintenanceOrderStatus!='4'" - >淇濆瓨</a-button> --> + @click='handleOk(0)' + type='primary' + :disabled="this.mainId.status=='4' || this.mainId.status=='2'" + >淇濆瓨 + </a-button> </a-row> <!-- :disabled="false" --> </div> @@ -96,14 +130,13 @@ import pick from 'lodash.pick' import JEllipsis from '@/components/jeecg/JEllipsis' import JSelectSparePartModal from './select/JSelectSparePartModal' -import RepairOrderActualMaterialReportModel from './RepairOrderActualMaterialReportModel.vue' +// import RepairOrderActualMaterialReportModel from './RepairOrderActualMaterialReportModel.vue' export default { name: 'RepairOrderActualMaterialReport', mixins: [JeecgListMixin], components: { JEllipsis, JSelectSparePartModal, - RepairOrderActualMaterialReportModel }, props: { mainId: { @@ -168,62 +201,68 @@ return parseInt(index) + 1; } }, - { - title: '棰嗘枡鍑哄簱鍗�', - dataIndex: 'num', - align: "center", - width: 150, - }, - { - title: '澶囦欢缂栫爜', - dataIndex: 'sparePartNum', - align: "center", + // { + // title: '棰嗘枡鍑哄簱鍗�', + // dataIndex: 'num', + // align: "center", + // width: 150, + // }, + // { + // title: '澶囦欢缂栫爜', + // dataIndex: 'sparePartNum', + // align: "center", - }, + // }, { - title: '澶囦欢鍚嶇О', - dataIndex: 'sparePartName', + title: '鐗╂枡鍚嶇О', + dataIndex: 'sparePartId', + scopedSlots: { customRender: 'sparePartId' }, align: "center", - + className: 'red', + width: 250, }, { - title: '瑙勬牸', - dataIndex: 'sparePartSpecification', + title: '鐗╂枡绉嶇被', + dataIndex: 'outboundOrderId', + scopedSlots: { customRender: 'outboundOrderId' }, align: "center", + width: 250, }, + // { + // title: '鍨嬪彿', + // dataIndex: 'sparePartModel', + // align: "center", + // }, + // { + // title: '鍒堕�犲晢', + // dataIndex: 'constructorName', + // align: "center", + // }, { - title: '鍨嬪彿', - dataIndex: 'sparePartModel', + title: '鍗曚綅', + dataIndex: 'repairOrderAmUda1', + scopedSlots: { customRender: 'repairOrderAmUda1' }, align: "center", + className: 'red', + width: 250, }, - { - title: '鍒堕�犲晢', - dataIndex: 'constructorName', - align: "center", - }, - { - title: '涓诲崟浣�', - dataIndex: 'mainUnitName', - align: "center", - - }, - { - title: '涓绘暟閲�', - align: 'center', - dataIndex: 'mainQuantity' - }, - { - title: '鍙敤鏁伴噺', - align: 'center', - dataIndex: 'availableQuantity' - }, + // { + // title: '涓绘暟閲�', + // align: 'center', + // dataIndex: 'mainQuantity' + // }, + // { + // title: '鍙敤鏁伴噺', + // align: 'center', + // dataIndex: 'availableQuantity' + // }, { title: '浣跨敤鏁伴噺', dataIndex: 'actualQuantity', align: "center", scopedSlots: { customRender: 'actualQuantity' }, className: 'red', - + width: 250, }, { title: '鎿嶄綔', @@ -234,8 +273,8 @@ } ], url: { - list: '/eam/repairOrder/listRepairOrderActualMaterialByMainId', - confirmMaterial: "/eam/repairOrderActualMaterial/add", + list: '/eam/repairOrderActualMaterial/list', + confirmMaterial: "/eam/repairOrderActualMaterial/addNew", delete: "/eam/repairOrderActualMaterial/delete", addInit: "/eam/repairOrderActualMaterial/addInit", lock: "/eam/repairOrderActualMaterial/lock", @@ -247,6 +286,7 @@ watch: { mainId: { immediate: true, + deep:true, handler(val) { console.log(val) if (!this.mainId.id) { @@ -267,16 +307,17 @@ // }, methods: { addMaterial() { - let ids = []; - for (let i = 0; i < this.dataSource.length; i++) { - ids.push(this.dataSource[i].outboundOrderDetailId); - } - this.$refs.JSelectSparePartModal.showModals(ids); - this.$refs.JSelectSparePartModal.title = '閫夋嫨澶囦欢淇℃伅' - this.$refs.JSelectSparePartModal.disableSubmit = false + // let ids = []; + // for (let i = 0; i < this.dataSource.length; i++) { + // ids.push(this.dataSource[i].outboundOrderDetailId); + // } + // this.$refs.JSelectSparePartModal.showModals(ids); + // this.$refs.JSelectSparePartModal.title = '閫夋嫨澶囦欢淇℃伅' + // this.$refs.JSelectSparePartModal.disableSubmit = false + this.dataSource.push({ sparePartId: '', outboundOrderId: this.mainId.repairOrderUda1,repairOrderAmUda1: '', actualQuantity:'',repairOrderId:this.mainId.id }) }, handleCancel() { - this.$bus.$emit('close'); + this.$bus.$emit('closeDrawer') }, close() { this.$emit('close'); @@ -291,15 +332,24 @@ console.log(column) const temp = [...this.dataSource] const target = temp[index] - let availableQuantity = target['availableQuantity'] - if (target) { - if (value != undefined && value != null && value != '' && availableQuantity < value) { - this.$message.error('浣跨敤鏁伴噺涓嶈兘澶т簬鍙敤鏁伴噺!') - } else { - } - target[column.dataIndex] = value - this.dataSource = temp + // let availableQuantity = target['availableQuantity'] + // if (target) { + // if (value != undefined && value != null && value != '' && availableQuantity < value) { + // this.$message.error('浣跨敤鏁伴噺涓嶈兘澶т簬鍙敤鏁伴噺!') + // } else { + // } + // target[column.dataIndex] = value + // this.dataSource = temp + // } + if ('sparePartId' == column.dataIndex) { + target['sparePartId'] = value.target.value } + if ('repairOrderAmUda1' == column.dataIndex) { + target['repairOrderAmUda1'] = value.target.value + } + if ('actualQuantity' == column.dataIndex) { + target['actualQuantity'] = value + } }, clearList() { this.dataSource = []; @@ -381,47 +431,94 @@ this.loading = false }) }, - }, - mounted() { - let newActualMaterials = []; - this.$bus.$on('selection3Rows', (data) => { - for (let i = 0; i < data.length; i++) { - newActualMaterials.push({ - // id: this.getUuiD(16), - num: data[i].num, - outboundOrderDetailId: data[i].id, - sparePartId: data[i].sparePartId, - // sparePartNum: data[i].spareNum, - // sparePartName: data[i].spareName, - // sparePartSpecification: data[i].specification, - // sparePartModel: data[i].model, - // constructorName: data[i].constructorName, - // constructorId: data[i].constructorId, - // mainUnitName: data[i].mainUnitName, - // mainUnitId: data[i].mainUnitId, - mainQuantity: data[i].mainQuantity, - useQuantity: data[i].useQuantity, - availableQuantity: data[i].availableQuantity, - repairOrderId: this.mainId.id, - equipmentId: this.equipmentId, - isLock: 'no' - }) - } - let that = this - postAction(this.url.addInit, newActualMaterials).then((res) => { - if (res.success) { - that.$message.success(res.message) - newActualMaterials = [] - that.$emit('ok') - } else { - that.$message.warning(res.message) + handleOk(saveStatus) { + const that = this + if (saveStatus == 0) { + let workHoursDataSource = that.dataSource + for (let i = 0; i < workHoursDataSource.length; i++) { + if (workHoursDataSource[i].sparePartId == undefined || workHoursDataSource[i].sparePartId == null || workHoursDataSource[i].sparePartId == '') { + that.$message.warning('璇烽�夋嫨绗�' + (i + 1) + '琛岀墿鏂欏悕绉帮紒') + return false + } + if (workHoursDataSource[i].repairOrderAmUda1 == undefined || workHoursDataSource[i].repairOrderAmUda1 == null || workHoursDataSource[i].repairOrderAmUda1 == '') { + that.$message.warning('璇峰~鍐欑' + (i + 1) + '琛屽崟浣嶏紒') + return false + } + if (workHoursDataSource[i].actualQuantity == undefined || workHoursDataSource[i].actualQuantity == null || workHoursDataSource[i].actualQuantity == '') { + that.$message.warning('璇峰~鍐欑' + (i + 1) + '琛屼娇鐢ㄦ暟閲忥紒') + return false + } } - }).finally(res => { - that.loadData(); - + } + if (that.dataSource.length === 0) { + that.$message.warning('璇锋坊鍔犵敤鏂欙紒') + return + } + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true + let formData = that.dataSource; + let obj = obj = postAction(this.url.confirmMaterial, formData) + obj.then((res) => { + if (res.success) { + that.$message.success(res.message) + that.$emit('ok') + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = false + that.close() + that.loadData(1) + }) + } }) - }) + }, + handleDelete(index) { + console.log(index) + this.dataSource.splice(index, 1) + }, }, + // mounted() { + // let newActualMaterials = []; + // this.$bus.$on('selection3Rows', (data) => { + // for (let i = 0; i < data.length; i++) { + // newActualMaterials.push({ + // // id: this.getUuiD(16), + // num: data[i].num, + // outboundOrderDetailId: data[i].id, + // sparePartId: data[i].sparePartId, + // // sparePartNum: data[i].spareNum, + // // sparePartName: data[i].spareName, + // // sparePartSpecification: data[i].specification, + // // sparePartModel: data[i].model, + // // constructorName: data[i].constructorName, + // // constructorId: data[i].constructorId, + // // mainUnitName: data[i].mainUnitName, + // // mainUnitId: data[i].mainUnitId, + // mainQuantity: data[i].mainQuantity, + // useQuantity: data[i].useQuantity, + // availableQuantity: data[i].availableQuantity, + // repairOrderId: this.mainId.id, + // equipmentId: this.equipmentId, + // isLock: 'no' + // }) + // } + // let that = this + // postAction(this.url.addInit, newActualMaterials).then((res) => { + // if (res.success) { + // that.$message.success(res.message) + // newActualMaterials = [] + // that.$emit('ok') + // } else { + // that.$message.warning(res.message) + // } + // }).finally(res => { + // that.loadData(); + + // }) + // }) + // }, } </script> diff --git a/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReportModel.vue b/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReportModel.vue index c4ab61a..67d12e7 100644 --- a/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReportModel.vue +++ b/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReportModel.vue @@ -228,30 +228,30 @@ //this.modelDefault = JSON.parse(JSON.stringify(this.model)) }, - mounted() { - this.$bus.$on('selectionRows', (data) => { - for (let i = 0; i < data.length; i++) { - this.dataSource.push({ - id: data[i].id, - num: data[i].num, - outboundOrderId:data[i].outboundOrderId, - sparePartId:data[i].sparePartId, - spareNum: data[i].spareNum, - spareName: data[i].spareName, - specification: data[i].specification, - model:data[i].model, - constructorName:data[i].constructorName, - constructorId:data[i].constructorId, - mainUnitName:data[i].mainUnitName, - mainUnitId:data[i].mainUnitId, - mainQuantity:data[i].mainQuantity, - useQuantity:data[i].useQuantity + // mounted() { + // this.$bus.$on('selectionRows', (data) => { + // for (let i = 0; i < data.length; i++) { + // this.dataSource.push({ + // id: data[i].id, + // num: data[i].num, + // outboundOrderId:data[i].outboundOrderId, + // sparePartId:data[i].sparePartId, + // spareNum: data[i].spareNum, + // spareName: data[i].spareName, + // specification: data[i].specification, + // model:data[i].model, + // constructorName:data[i].constructorName, + // constructorId:data[i].constructorId, + // mainUnitName:data[i].mainUnitName, + // mainUnitId:data[i].mainUnitId, + // mainQuantity:data[i].mainQuantity, + // useQuantity:data[i].useQuantity - }) - } + // }) + // } - }) - }, + // }) + // }, methods: { diff --git a/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue b/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue index c217ea4..447b8ba 100644 --- a/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue +++ b/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue @@ -68,6 +68,7 @@ </a-row> </div> <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> + <a-form labelAlign="left" > <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;" @@ -486,6 +487,7 @@ </a-form-item> </a-col> </a-row> + </a-form> </div> </a-card> <a-card :style="getBackground()"> @@ -540,7 +542,7 @@ import Tooltip from 'ant-design-vue/es/tooltip' import RepairOrderActualMaterialList from './moudles/RepairOrderActualMaterialReport' import RepairOrderActualWorkHoursList from './moudles/RepairOrderActualHoursReport' -import RepairOrderFaultAnalysisList from './moudles/RepairOrderFaultAnalysisReport.vue' +import RepairOrderFaultAnalysisList from './moudles/RepairOrderFaultAnalysisReport' import { getAction } from '../../../../api/manage' export default { name: 'RepairOrderExcuteDrawer', @@ -579,11 +581,11 @@ dataSource: [], labelCol: { xs: { span: 24 }, - sm: { span: 12 }, + sm: { span: 7 }, }, wrapperCol: { xs: { span: 24 }, - sm: { span: 12 }, + sm: { span: 17}, }, url: { orderStart: "eam/repairOrder/start", @@ -891,9 +893,8 @@ <style scoped> @import '~@assets/less/common.less'; .hightColor { - height: 10%; - font-weight: bold; - font-size: 20px; + height: 2%; + font-size: 15px; color: #1b1e1e; } .frozenRowClass { -- Gitblit v1.9.3