¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-spin :spinning='confirmLoading'> |
| | | <j-form-container :disabled='formDisabled'> |
| | | <!-- 主表ååºå --> |
| | | <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='num' |
| | | > |
| | | <a-input |
| | | v-model='model.num' |
| | | placeholder='请è¾å
¥è®¡ååç¼å·' |
| | | ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span='12'> |
| | | <a-form-model-item |
| | | label='计ååç§°' |
| | | :labelCol='labelCol' |
| | | :wrapperCol='wrapperCol' |
| | | prop='计ååç§°' |
| | | > |
| | | <a-input |
| | | v-model='model.name' |
| | | rows='4' |
| | | placeholder='请è¾å
¥è®¡ååç§°' |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span='12'> |
| | | <a-form-model-item |
| | | label='计åå¼å§æ¥æ' |
| | | :labelCol='labelCol' |
| | | :wrapperCol='wrapperCol' |
| | | prop='planStartTime' |
| | | > |
| | | <j-date |
| | | placeholder='è¯·éæ©è®¡åå¼å§æ¥æ' |
| | | v-model='model.planStartTime' |
| | | style='width: 100%' |
| | | :showTime='true' |
| | | dateFormat='YYYY-MM-DD HH:mm:ss' |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span='12'> |
| | | <a-form-model-item |
| | | label='计åç»ææ¥æ' |
| | | :labelCol='labelCol' |
| | | :wrapperCol='wrapperCol' |
| | | prop='planEndTime' |
| | | > |
| | | <j-date |
| | | placeholder='è¯·éæ©è®¡åç»ææ¥æ' |
| | | v-model='model.planEndTime' |
| | | style='width: 100%' |
| | | :showTime='true' |
| | | dateFormat='YYYY-MM-DD HH:mm:ss' |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <!-- <a-col :span='12'> |
| | | <a-form-model-item label='å®é
å¼å§æ¥æ' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='actualStartTime'> |
| | | <j-date |
| | | placeholder='è¯·éæ©å®é
å¼å§æ¥æ' |
| | | v-model='model.actualStartTime' |
| | | style='width: 100%' |
| | | :showTime='true' |
| | | dateFormat='YYYY-MM-DD HH:mm:ss' |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span='12'> |
| | | <a-form-model-item label='å®é
ç»ææ¥æ' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='actualEndTime'> |
| | | <j-date |
| | | placeholder='è¯·éæ©å®é
å¼å§æ¥æ' |
| | | v-model='model.actualEndTime' |
| | | style='width: 100%' |
| | | :showTime='true' |
| | | dateFormat='YYYY-MM-DD HH:mm:ss' |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> --> |
| | | <a-col :span='12'> |
| | | <a-form-model-item |
| | | label='éä»¶' |
| | | :labelCol='labelCol' |
| | | :wrapperCol='wrapperCol' |
| | | prop='annex' |
| | | > |
| | | <j-upload :returnUrl= "false" :isMultiple="false" v-model="model.file" ></j-upload> |
| | | </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' |
| | | rows='4' |
| | | placeholder='请è¾å
¥å¤æ³¨' |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | </a-form-model> |
| | | </j-form-container> |
| | | <!-- å表ååºå --> |
| | | <a-tabs |
| | | v-model='activeKey' |
| | | @change='handleChangeTabs' |
| | | > |
| | | <a-tab-pane |
| | | tab='é¡¹ç®æ§ç»´ä¿®æç»' |
| | | :key='refKeys[0]' |
| | | :forceRender='true' |
| | | > |
| | | <j-vxe-table |
| | | keep-source |
| | | :ref='refKeys[0]' |
| | | :loading='projectMaintenanceOrderDetailTable.loading' |
| | | :columns='projectMaintenanceOrderDetailTable.columns' |
| | | :dataSource='projectMaintenanceOrderDetailTable.dataSource' |
| | | :maxHeight='400' |
| | | :disabled='formDisabled' |
| | | :rowNumber='true' |
| | | :rowSelection='true' |
| | | :alwaysEdit='true' |
| | | :toolbar='true' |
| | | :bordered='true' |
| | | :toolbarConfig='toolbarConfig' |
| | | :linkage-config='linkageConfig' |
| | | > |
| | | <template slot='toolbarPrefix'> |
| | | <a-button |
| | | type='primary' |
| | | @click='selectEquipmentList' |
| | | :disabled='formDisabled' |
| | | >éæ©è®¾å¤ |
| | | </a-button> |
| | | </template> |
| | | |
| | | <template v-slot:supplierId='props'> |
| | | <a-select |
| | | v-model='props.row.supplierId' |
| | | :options='supplierVoList' |
| | | style='width: 100%' |
| | | placeholder='è¯·éæ©' |
| | | @change='(e) => handleChange(e, props.row)' |
| | | /> |
| | | |
| | | </template> |
| | | <template v-slot:teamId='props'> |
| | | <a-select |
| | | v-model='props.row.teamId' |
| | | :options='teamVoList' |
| | | style='width: 100%' |
| | | placeholder='è¯·éæ©' |
| | | @change='(e) => handleChange(e, props.row)' |
| | | /> |
| | | |
| | | </template> |
| | | <template v-slot:userId='props'> |
| | | <a-select |
| | | v-model='props.row.userId' |
| | | :options='userVoList' |
| | | style='width: 100%' |
| | | placeholder='è¯·éæ©' |
| | | @change='(e) => handleChange(e, props.row)' |
| | | /> |
| | | <!-- <a-select |
| | | placeholder="è¯·éæ©è´£ä»»äºº" |
| | | allowClear |
| | | showSearch |
| | | style='width: 100%' |
| | | v-model="props.row.userId" |
| | | > |
| | | <a-select-option v-for="item of userVoList" :value="item.id" :key="item.id" > |
| | | {{item.realname}} |
| | | </a-select-option> |
| | | </a-select> --> |
| | | </template> |
| | | </j-vxe-table> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | <equipment-select-modal |
| | | @selectionRows='selectionRows' |
| | | :equipmentStatus="['2', '3']" |
| | | ref='EquipmentSelectModal' |
| | | ></equipment-select-modal> |
| | | </a-spin> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | |
| | | import { validateDuplicateValue } from '@/utils/util' |
| | | import EquipmentSelectModal from '@/components/tools/EquipmentSelection.vue' |
| | | |
| | | import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' |
| | | import { JVXETypes } from '@comp/jeecg/JVxeTable' |
| | | |
| | | 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', |
| | | mixins: [JVxeTableModelMixin], |
| | | components: { |
| | | EquipmentSelectModal, |
| | | JFormContainer |
| | | }, |
| | | data() { |
| | | return { |
| | | supplierVoList: {}, |
| | | userVoList: {}, |
| | | teamVoList: {}, |
| | | toolbarConfig: { |
| | | // prefix åç¼ï¼suffix åç¼ |
| | | slot: ['prefix', 'suffix'], |
| | | // add æ°å¢æé®ï¼remove å 餿é®ï¼clearSelection æ¸
ç©ºéæ©æé® |
| | | btn: ['remove', 'clearSelection'] |
| | | }, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 6 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 18 } |
| | | }, |
| | | // æ°å¢æ¶å表é»è®¤æ·»å å è¡ç©ºæ°æ® |
| | | addDefaultRowNum: 0, |
| | | model: {}, |
| | | validatorRules: { |
| | | num: [ |
| | | { required: true, message: '请è¾å
¥è®¡åç¼å·!' }, |
| | | { validator: (rule, value, callback) => validateDuplicateValue('mom_eam_project_maintenance_order', 'num', value, this.model.id, callback) } |
| | | ], |
| | | remark: [ |
| | | { required: false, message: '请è¾å
¥å¤æ³¨!' } |
| | | ] |
| | | }, |
| | | linkageConfig: [ |
| | | { handleVerify: this.handleVerify, key: 'maintenanceAfterUnseal' } |
| | | ], |
| | | refKeys: ['projectMaintenanceOrderDetail'], |
| | | tableKeys: ['projectMaintenanceOrderDetail'], |
| | | activeKey: 'projectMaintenanceOrderDetail', |
| | | projectMaintenanceOrderDetailTable: { |
| | | loading: false, |
| | | dataSource: [], |
| | | columns: [ |
| | | // { |
| | | // title: 'æä½', |
| | | // key: 'action', |
| | | // width: '60px', |
| | | // type: FormTypes.slot, // å®ä¹è¯¥å为 èªå®ä¹æå¼å |
| | | // slotName: 'action' // slot çåç§°ï¼å¯¹åº v-slot åå·åé¢åçå·åé¢çå
容 |
| | | // }, |
| | | { |
| | | title: '设å¤å°åæç»id', |
| | | key: 'id', |
| | | type: JVXETypes.hidden, |
| | | width: '100px', |
| | | fixed: 'left' |
| | | }, |
| | | { |
| | | title: 'é¡¹ç®æ§ç»´ä¿®åid', |
| | | key: 'projectMaintenanceOrderId', |
| | | type: JVXETypes.hidden, |
| | | |
| | | placeholder: '请è¾å
¥${title}', |
| | | defaultValue: '' |
| | | }, |
| | | { |
| | | title: '设å¤ID', |
| | | key: 'equipmentId', |
| | | type: JVXETypes.hidden, |
| | | defaultValue: '' |
| | | }, |
| | | { |
| | | title: 'ä»»å¡ç¼ç ', |
| | | key: 'taskNum', |
| | | type: JVXETypes.input, |
| | | width: '180px', |
| | | align: "center", |
| | | fixed: 'left', |
| | | validateRules: [ |
| | | { |
| | | required: true, // å¿
å¡« |
| | | message: '请è¾å
¥${title}' // æ¾ç¤ºçææ¬ |
| | | }] |
| | | }, |
| | | { |
| | | title: '设å¤ç¼ç ', |
| | | key: 'equipmentNum', |
| | | type: JVXETypes.normal, |
| | | width: '140px', |
| | | align: "center", |
| | | fixed: 'left' |
| | | }, |
| | | { |
| | | title: 'èµäº§ç¼ç ', |
| | | key: 'assetNumber', |
| | | type: JVXETypes.normal, |
| | | width: '140px', |
| | | align: "center", |
| | | fixed: 'left', |
| | | defaultValue: '' |
| | | }, |
| | | { |
| | | title: 'å§å¤åä½', |
| | | key: 'supplierId', |
| | | type: JVXETypes.slot, |
| | | disabled: true, |
| | | width: '140px', |
| | | align: "center", |
| | | slotName: 'supplierId', |
| | | defaultValue: '' |
| | | }, |
| | | { |
| | | title: 'å§å¤åä½', |
| | | key: 'supplierId', |
| | | type: JVXETypes.hidden |
| | | }, |
| | | { |
| | | title: 'ç»´ä¿æ¹å¼', |
| | | key: 'maintenanceMode', |
| | | type: JVXETypes.select, |
| | | dictCode: 'maintenance_method', |
| | | validateRules: [ |
| | | { |
| | | required: true, // å¿
å¡« |
| | | message: '请è¾å
¥${title}' // æ¾ç¤ºçææ¬ |
| | | }], |
| | | width: '140px', |
| | | align: "center", |
| | | defaultValue: '' |
| | | }, |
| | | // { |
| | | // title: 'ç¹ç§è®¾å¤', |
| | | // key: 'specificEquipment', |
| | | // type: JVXETypes.hidden, |
| | | // disabled: true, |
| | | // placeholder: '请è¾å
¥${title}', |
| | | // defaultValue: '' |
| | | // }, |
| | | // { |
| | | // title: 'ç¹ç§è®¾å¤', |
| | | // key: 'specificEquipment_dictText', |
| | | // type: JVXETypes.slot, |
| | | // disabled: true, |
| | | // width: '100px', |
| | | // defaultValue: '' |
| | | // }, |
| | | { |
| | | title: '设å¤åç§°', |
| | | key: 'equipmentName', |
| | | type: JVXETypes.normal, |
| | | disabled: true, |
| | | width: '140px', |
| | | align: "center", |
| | | defaultValue: '' |
| | | }, |
| | | { |
| | | title: '设å¤åå·', |
| | | key: 'model', |
| | | type: JVXETypes.normal, |
| | | disabled: true, |
| | | width: '140px', |
| | | align: "center", |
| | | defaultValue: '' |
| | | }, |
| | | { |
| | | title: '设å¤è§æ ¼', |
| | | key: 'specification', |
| | | type: JVXETypes.normal, |
| | | disabled: true, |
| | | width: '140px', |
| | | align: "center", |
| | | placeholder: '请è¾å
¥${title}', |
| | | defaultValue: '' |
| | | }, |
| | | { |
| | | title: '设å¤ç¶æ', |
| | | key: 'equipmentStatus_dictText', |
| | | type: JVXETypes.normal, |
| | | disabled: true, |
| | | width: '140px', |
| | | align: "center", |
| | | // placeholder: '请è¾å
¥${title}', |
| | | defaultValue: '' |
| | | }, |
| | | |
| | | { |
| | | title: 'ææ¯ç¶æ', |
| | | key: 'technologyStatus_dictText', |
| | | type: JVXETypes.normal, |
| | | disabled: true, |
| | | width: '140px', |
| | | align: "center", |
| | | defaultValue: '' |
| | | }, |
| | | { |
| | | title: '项ç®å
容', |
| | | key: 'itemName', |
| | | type: JVXETypes.input, |
| | | placeholder: '请è¾å
¥${title}', |
| | | width: '240px', |
| | | validateRules: [{ |
| | | required: true, // å¿
å¡« |
| | | message: '请è¾å
¥${title}' // æ¾ç¤ºçææ¬ |
| | | }], |
| | | align: "center", |
| | | defaultValue: '' |
| | | }, |
| | | { |
| | | title: 'ç´§æ¥ç¨åº¦', |
| | | key: 'urgency', |
| | | type: JVXETypes.select, |
| | | dictCode: 'urgency', |
| | | placeholder: '请è¾å
¥${title}', |
| | | width: '140px', |
| | | align: "center", |
| | | defaultValue: '' |
| | | }, |
| | | { |
| | | title: '责任çç»', |
| | | key: 'teamId', |
| | | type: JVXETypes.slot, |
| | | disabled: true, |
| | | width: '150px', |
| | | placeholder: '请è¾å
¥${title}', |
| | | defaultValue: '', |
| | | align: "center", |
| | | slotName: 'teamId' |
| | | }, |
| | | { |
| | | title: '责任çç»', |
| | | key: 'teamId', |
| | | type: JVXETypes.hidden |
| | | }, |
| | | { |
| | | title: '责任人', |
| | | key: 'userId', |
| | | type: JVXETypes.slot, |
| | | disabled: true, |
| | | width: '160px', |
| | | placeholder: '请è¾å
¥${title}', |
| | | defaultValue: '', |
| | | align: "center", |
| | | slotName: 'userId' |
| | | }, |
| | | { |
| | | title: '责任人', |
| | | key: 'userId', |
| | | type: JVXETypes.hidden |
| | | }, |
| | | { |
| | | title: '计åå¼å§æ¶é´', |
| | | key: 'planStartTime', |
| | | type: JVXETypes.datetime, |
| | | width: '140px', |
| | | align: "center", |
| | | placeholder: '请è¾å
¥${title}', |
| | | defaultValue: '' |
| | | }, { |
| | | title: '计å宿æ¶é´', |
| | | key: 'planEndTime', |
| | | type: JVXETypes.datetime, |
| | | width: '140px', |
| | | align: "center", |
| | | placeholder: '请è¾å
¥${title}', |
| | | defaultValue: '' |
| | | }, |
| | | // { |
| | | // title: 'å®é
å¼å§æ¶é´', |
| | | // key: 'actualStartTime', |
| | | // type: JVXETypes.datetime, |
| | | // width: '120px', |
| | | // placeholder: '请è¾å
¥${title}', |
| | | // defaultValue: '' |
| | | // }, { |
| | | // title: 'å®é
宿æ¶é´', |
| | | // key: 'actualEndTime', |
| | | // type: JVXETypes.datetime, |
| | | // width: '120px', |
| | | // placeholder: '请è¾å
¥${title}', |
| | | // defaultValue: '' |
| | | // } |
| | | ] |
| | | }, |
| | | url: { |
| | | add: '/eam/projectMaintenanceOrder/add', |
| | | edit: '/eam/projectMaintenanceOrder/edit', |
| | | supplierVoList: 'eam/projectMaintenanceOrder/getSupplier', |
| | | userVoList: 'eam/projectMaintenanceOrder/getUser', |
| | | teamVoList: 'eam/projectMaintenanceOrder/getTeam', |
| | | getSupplier: '/eam/projectMaintenanceOrder/getSupplier', |
| | | queryById: '/eam/projectMaintenanceOrder/queryById', |
| | | projectMaintenanceOrderDetail: { |
| | | list: '/eam/projectMaintenanceOrder/queryProjectMaintenanceOrderDetailByMainId' |
| | | }, |
| | | queryUserByTeamId: '/base/team/queryUserByTeamId' |
| | | } |
| | | } |
| | | }, |
| | | props: { |
| | | //表åç¦ç¨ |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | } |
| | | }, |
| | | computed: { |
| | | formDisabled() { |
| | | return this.disabled |
| | | } |
| | | }, |
| | | created() { |
| | | this.getSuppler(); |
| | | this.getTeam(); |
| | | this.getUser(); |
| | | }, |
| | | 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) { |
| | | this.supplierVoList = res.result |
| | | } else { |
| | | this.$message.warn(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | getUser() { |
| | | getAction(this.url.userVoList).then((res) => { |
| | | if (res.success) { |
| | | this.userVoList = res.result |
| | | } else { |
| | | this.$message.warn(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | getTeam() { |
| | | getAction(this.url.teamVoList).then((res) => { |
| | | if (res.success) { |
| | | this.teamVoList = res.result |
| | | } else { |
| | | this.$message.warn(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | // handleChangeTeam(value, data) { |
| | | // console.log(value) |
| | | // this.getUserVoList(value) |
| | | // console.log(data) |
| | | // this.$nextTick(() => { |
| | | // this.$set(data, 'teamId', data.teamId) |
| | | // }) |
| | | // }, |
| | | handleChange(value, data) { |
| | | console.log(value) |
| | | console.log(data) |
| | | this.$nextTick(() => { |
| | | this.$set(data, 'supplierId', data.supplierId) |
| | | this.$set(data, 'teamId', data.teamId) |
| | | this.$set(data, 'userId', data.userId) |
| | | }) |
| | | }, |
| | | getUserVoList(val) { |
| | | getAction(this.url.queryUserByTeamId, { teamId: val }).then(res => { |
| | | if (res.success) { |
| | | this.userVoList = res.result |
| | | } |
| | | else { |
| | | this.$message.error(res.message); |
| | | } |
| | | }) |
| | | }, |
| | | handleVerify(parent) { |
| | | if (parent == 'Y') { |
| | | // å¿
å¡«ã |
| | | } |
| | | }, |
| | | selectionRows(data) { |
| | | // å¢å éä¸ç设å¤å°åè¡¨ä¸ |
| | | this.addSelectedEquipments(data) |
| | | }, |
| | | //éæ©è®¾å¤ |
| | | selectEquipmentList() { |
| | | let ids = [] |
| | | let tableData = this.$refs.projectMaintenanceOrderDetail.getTableData() |
| | | let deleteData = this.$refs.projectMaintenanceOrderDetail.getDeleteData() |
| | | for (let i = 0; i < tableData.length; i++) { |
| | | ids.push(tableData[i].equipmentId) |
| | | } |
| | | this.$refs.EquipmentSelectModal.showModals(ids, tableData) |
| | | this.$refs.EquipmentSelectModal.title = 'éæ©è®¾å¤' |
| | | this.$refs.EquipmentSelectModal.disableSubmit = false |
| | | }, |
| | | addSelectedEquipments(data) { |
| | | let tableData = this.$refs.projectMaintenanceOrderDetail.getTableData() |
| | | let tableStr = tableData.toString() |
| | | let addRows = [] |
| | | for (let i = 0; i < data.length; i++) { |
| | | var sealDetail = {} |
| | | if (tableStr.indexOf(data[i].id) == -1) { |
| | | sealDetail = { |
| | | equipmentId: data[i].id, |
| | | equipmentNum: data[i].num, |
| | | equipmentName: data[i].name, |
| | | assetNumber: data[i].assetNumber, |
| | | specificEquipment_dictText: data[i].specificEquipment_dictText, |
| | | specificEquipment: data[i].specificEquipment, |
| | | model: data[i].model, |
| | | specification: data[i].specification, |
| | | equipmentStatus_dictText: data[i].equipmentStatus_dictText, |
| | | equipmentStatus: data[i].equipmentStatus, |
| | | technologyStatus_dictText: data[i].technologyStatus_dictText, |
| | | technologyStatus: data[i].technologyStatus, |
| | | supplierVoList: this.supplierVoList, |
| | | userVoList: this.userVoList, |
| | | teamVoList: this.teamVoList, |
| | | userId: data[i].userId |
| | | |
| | | } |
| | | } |
| | | addRows.push(sealDetail) |
| | | } |
| | | this.$refs.projectMaintenanceOrderDetail.clearAllData() |
| | | this.$refs.projectMaintenanceOrderDetail.pushRows(addRows) |
| | | }, |
| | | addBefore() { |
| | | this.projectMaintenanceOrderDetailTable.dataSource = [] |
| | | }, |
| | | getAllTable() { |
| | | let values = this.tableKeys.map(key => getRefPromise(this, key)) |
| | | return Promise.all(values) |
| | | }, |
| | | /** è°ç¨å®edit()æ¹æ³ä¹åä¼èªå¨è°ç¨æ¤æ¹æ³ */ |
| | | editAfter() { |
| | | this.$nextTick(() => { |
| | | }) |
| | | // å è½½åè¡¨æ°æ® |
| | | if (this.model.id) { |
| | | let params = { id: this.model.id } |
| | | this.requestSubTableData(this.url.projectMaintenanceOrderDetail.list, params, this.projectMaintenanceOrderDetailTable) |
| | | } |
| | | }, |
| | | //æ ¡éªææä¸å¯¹ä¸å表表å |
| | | validateSubForm(allValues) { |
| | | if (this.$refs.projectMaintenanceOrderDetail.getTableData().length == 0) { |
| | | this.$message.warning("请添å ç»´ä¿®æç»ï¼") |
| | | return |
| | | } |
| | | return new Promise((resolve, reject) => { |
| | | Promise.all([]).then(() => { |
| | | resolve(allValues) |
| | | }).catch(e => { |
| | | if (e.error === VALIDATE_FAILED) { |
| | | // å¦æææªéè¿è¡¨åéªè¯çå表ï¼å°±èªå¨è·³è½¬å°å®æå¨çtab |
| | | this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index] |
| | | } else { |
| | | console.error(e) |
| | | } |
| | | }) |
| | | }) |
| | | }, |
| | | /** æ´çæformData */ |
| | | classifyIntoFormData(allValues) { |
| | | let main = Object.assign(this.model, allValues.formValue) |
| | | return { |
| | | ...main, // å±å¼ |
| | | projectMaintenanceOrderDetailList: allValues.tablesValue[0].tableData |
| | | } |
| | | }, |
| | | validateError(msg) { |
| | | this.$message.error(msg) |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | /** tab panel 䏿䏿æ¡/æ¥æ è¿ç±»å¸¦ä¸æææçï¼éè¦å æ¤æ ·å¼ */ |
| | | |
| | | ::v-deep .jeecg-tabs-top { |
| | | overflow: visible; |
| | | } |
| | | |
| | | ::v-deep .ant-form-explain { |
| | | position: absolute; |
| | | right: -50px; |
| | | top: 12px; |
| | | } |
| | | </style> |