设备台账
1.ABC标识变更记录功能
2.质保日期变更记录功能
3.质保到期提醒
4.ABC标识与关键设备标识联动
5.设备质保期字段添加
| | |
| | | <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> |
| | | <a-button type="primary" icon="import" v-has="'equipmentAccount:add&delete&import&Edit'">导å
¥</a-button> |
| | | </a-upload> |
| | | <a-button :disabled="selectedRowKeys.length==0" @click="handleUpdateABC" type="primary" icon="font-colors" v-has="'equipmentAccount:add&delete&import&Edit'">ABCæ è¯åæ´</a-button> |
| | | <a-button :disabled="selectedRowKeys.length==0" @click="handleUpdateWarranty" type="primary" icon="calendar" v-has="'equipmentAccount:add&delete&import&Edit'">è´¨ä¿æåæ´</a-button> |
| | | </div> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <div> |
| | | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> |
| | |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'radio'}" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'checkbox'}" |
| | | :customRow="clickThenSelect" |
| | | @change="handleTableChange"> |
| | | |
| | |
| | | <a-tabs defaultActiveKey="1"> |
| | | <a-tab-pane tab="å·¥èºåæ°" key="1" > |
| | | <EquipmentProcessParametersList |
| | | :mainId="equipmentProcessParametersMainId" |
| | | :mainId="selectedMainId" |
| | | :isOpen="isOpenProcess" |
| | | /> |
| | | </a-tab-pane> |
| | | <a-tab-pane tab="设å¤ç²¾åº¦" key="2" forceRender> |
| | | <EquipmentPrecisionParametersList |
| | | :isOpen="isOpenPrecision" |
| | | :mainId="equipmentPrecisionParametersMainId" /> |
| | | :mainId="selectedMainId" /> |
| | | </a-tab-pane> |
| | | <a-tab-pane tab="è®¾å¤ææ¡£" key="3" forceRender> |
| | | <EquipmentDocumentList :mainId="equipmentDocumentMainId" /> |
| | | <EquipmentDocumentList :mainId="selectedMainId" /> |
| | | </a-tab-pane> |
| | | <a-tab-pane tab="ABCæ è¯åæ´è®°å½" key="4" forceRender> |
| | | <equipment-update-ABC-list :mainId="selectedMainId" /> |
| | | </a-tab-pane> |
| | | <a-tab-pane tab="è´¨ä¿æåæ´è®°å½" key="5" forceRender> |
| | | <equipment-update-warranty-list :mainId="selectedMainId" /> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | <equipment-modal ref="modalForm" @ok="modalFormOk"></equipment-modal> |
| | | <process-edit-model ref ="processEditModel"></process-edit-model> |
| | | <precision-edit-model ref ="precisionEditModel"></precision-edit-model> |
| | | <aBC-update-edit-model @ok="modalFormOk" :updateList="selectionRows" ref="updateABC"></aBC-update-edit-model> |
| | | <warranty-update-model :updateList="selectionRows" ref="updateWarranty"></warranty-update-model> |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | import EquipmentResumeDrawer from './modules/equipmentNew/EquipmentResume/EquipmentResumeDrawer' |
| | | import JSearchSelectTag from '../../components/dict/JSearchSelectTag.vue' |
| | | import ProcessEditModel from './modules/equipmentNew/edit/ProcessEditModel.vue' |
| | | import PrecisionEditModel from './modules/equipmentNew/edit/PrecisionEditModel.vue' |
| | | import PrecisionEditModel from './modules/equipmentNew/edit/PrecisionEditModel' |
| | | import EquipmentUpdateABCList from './modules/equipmentNew/EquipmentUpdateABCList.vue' |
| | | import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue' |
| | | import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel.vue' |
| | | import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue' |
| | | |
| | | |
| | | |
| | | |
| | | export default { |
| | |
| | | JSearchSelectTag, |
| | | ProcessEditModel, |
| | | PrecisionEditModel, |
| | | EquipmentUpdateABCList , |
| | | EquipmentUpdateWarrantyList, |
| | | ABCUpdateEditModel, |
| | | WarrantyUpdateModel, |
| | | }, |
| | | data () { |
| | | return { |
| | |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | mainId:'', |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | }, |
| | | onSelectChange(selectedRowKeys, selectionRows) { |
| | | if(selectedRowKeys.length==1){ |
| | | this.equipmentProcessParametersMainId = selectionRows[0]['id'] |
| | | this.equipmentDocumentMainId = selectionRows[0]['id'] |
| | | this.equipmentPrecisionParametersMainId = selectionRows[0]['id'] |
| | | this.selectedMainId=selectedRowKeys[0] |
| | | this.isOpenProcess = selectionRows[0].processParameters==1; |
| | | this.isOpenPrecision = selectionRows[0].precisionParameters==1; |
| | | }else{ |
| | | this.equipmentProcessParametersMainId ='' |
| | | this.equipmentDocumentMainId = '' |
| | | this.equipmentPrecisionParametersMainId = '' |
| | | this.selectedMainId='' |
| | | } |
| | | this.selectedRowKeys = selectedRowKeys; |
| | |
| | | } |
| | | }) |
| | | }, |
| | | handleUpdateABC(){ |
| | | this.$refs.updateABC.add(); |
| | | }, |
| | | handleUpdateWarranty(){ |
| | | this.$refs.updateWarranty.add(); |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | >ç¶æåæ è¯</a-divider> |
| | | <a-col :span="6"> |
| | | <a-form-model-item |
| | | label="å
³é®è®¾å¤æ è¯" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="specificEquipment" |
| | | > |
| | | <j-dict-select-tag |
| | | allow-clear |
| | | placeholder="è¯·éæ©å
³é®è®¾å¤æ è¯" |
| | | :disabled="formDisabled" |
| | | :triggerChange="true" |
| | | dictCode="specific_equipment" |
| | | v-model="model.specificEquipment" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="6"> |
| | | <a-form-model-item |
| | | label="设å¤ç¶æ" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | |
| | | dictCode="technology_status" |
| | | v-model="model.technologyStatus" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="6"> |
| | | <a-form-model-item |
| | | label="èµäº§ç¶æ" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="propertyStatus" |
| | | > |
| | | <j-dict-select-tag |
| | | allow-clear |
| | | :disabled="formDisabled" |
| | | placeholder="请è¾å
¥èµäº§ç¶æ" |
| | | :triggerChange="true" |
| | | dictCode="property_status" |
| | | v-model="model.propertyStatus" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row v-if="model.propertyStatus=='warranty'"> |
| | | <a-divider |
| | | orientation="center" |
| | | style="font-size: large;font-style: italic;color: #66aeed;" |
| | | >è´¨ä¿æ¥æ</a-divider> |
| | | <a-col :span="6"> |
| | | <a-form-model-item |
| | | label="è´¨ä¿å¼å§æ¥æ" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="warrantyStart" |
| | | > |
| | | <j-date :disabled="formDisabled" style="width: 100%;" placeholder="è¯·éæ©å¼å§æ¥æ" class="query-group-cust" v-model="model.warrantyStart"></j-date> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="6"> |
| | | <a-form-model-item |
| | | label="è´¨ä¿ç»ææ¥æ" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="warrantyEnd" |
| | | > |
| | | <j-date :disabled="formDisabled" style="width: 100%;" placeholder="è¯·éæ©ç»ææ¥æ" class="query-group-cust" v-model="model.warrantyEnd"></j-date> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | |
| | | placeholder="è¯·éæ©ABCæ è¯" |
| | | :triggerChange="true" |
| | | dictCode="ABC-standard-result" |
| | | @change="changeNeedSpecific" |
| | | v-model="model.equipmentImportanceId" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="6" v-if="needSpecific"> |
| | | <a-form-model-item |
| | | label="å
³é®è®¾å¤æ è¯" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="specificEquipment" |
| | | > |
| | | <j-dict-select-tag |
| | | allow-clear |
| | | placeholder="è¯·éæ©å
³é®è®¾å¤æ è¯" |
| | | :disabled="formDisabled" |
| | | :triggerChange="true" |
| | | dictCode="specific_equipment" |
| | | v-model="model.specificEquipment" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | |
| | | :read-only="true" |
| | | v-model="model.processParametersTemplateId_dictText" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row> |
| | | <a-divider |
| | | orientation="center" |
| | | style="font-size: large;font-style: italic;color: #66aeed;" |
| | | >è´¨ä¿æ¥æ</a-divider> |
| | | <a-col :span="6"> |
| | | <a-form-model-item |
| | | label="è´¨ä¿å¼å§æ¥æ" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="warrantyStart" |
| | | > |
| | | <j-date :disabled="formDisabled" style="width: 100%;" placeholder="è¯·éæ©å¼å§æ¥æ" class="query-group-cust" v-model="model.warrantyStart"></j-date> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="6"> |
| | | <a-form-model-item |
| | | label="è´¨ä¿ç»ææ¥æ" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="warrantyEnd" |
| | | > |
| | | <j-date :disabled="formDisabled" style="width: 100%;" placeholder="è¯·éæ©ç»ææ¥æ" class="query-group-cust" v-model="model.warrantyEnd"></j-date> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | |
| | | ], |
| | | warrantyEnd:[ |
| | | { required: true, message: 'è¯·éæ©ç»ææ¥æ!' }, |
| | | ] |
| | | ], |
| | | propertyStatus:[ |
| | | { required: true, message: 'è¯·éæ©èµäº§ç¶æ!' }, |
| | | ], |
| | | }, |
| | | url: { |
| | | add: "/eam/equipment/add", |
| | |
| | | loadOptions: '/sys/sysDepart/loadDepartTreeOptions', |
| | | }, |
| | | treeData: [], |
| | | needSpecific:false, |
| | | |
| | | } |
| | | }, |
| | |
| | | }, |
| | | methods: { |
| | | add() { |
| | | this |
| | | this.edit(this.modelDefault); |
| | | }, |
| | | edit(record) { |
| | |
| | | } |
| | | this.model = Object.assign({}, this.model); |
| | | |
| | | }, |
| | | changeNeedSpecific(val){ |
| | | if(val=='A'){ |
| | | this.needSpecific=true; |
| | | }else{ |
| | | let that = this; |
| | | this.$confirm({ |
| | | title: 'æç¤º', |
| | | content: 'éA类设å¤ï¼æ¯å¦è¦æ·»å å
³é®è®¾å¤æ è¯ï¼', |
| | | okText: '确认', |
| | | cancelText: 'åæ¶', |
| | | onOk() { |
| | | that.needSpecific = true; |
| | | }, |
| | | onCancel(){ |
| | | that.needSpecific = false; |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card :bordered="false" :class="'cust-erp-sub-tab'"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <div> |
| | | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> |
| | | <i class="anticon anticon-info-circle ant-alert-icon"></i> 已鿩 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 |
| | | <a style="margin-left: 24px" @click="onClearSelected">æ¸
空</a> |
| | | </div> |
| | | |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | bordered |
| | | rowKey="id" |
| | | :scroll="{x:true}" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | @change="handleTableChange"> |
| | | |
| | | <template slot="htmlSlot" slot-scope="text"> |
| | | <div v-html="text"></div> |
| | | </template> |
| | | <template slot="imgSlot" slot-scope="text,record"> |
| | | <span v-if="!text" style="font-size: 12px;font-style: italic;">æ å¾ç</span> |
| | | <img v-else :src="getImgView(text)" :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 |
| | | :ghost="true" |
| | | type="primary" |
| | | icon="download" |
| | | size="small" |
| | | @click="downloadFile(text)"> |
| | | ä¸è½½ |
| | | </a-button> |
| | | </template> |
| | | |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a @click="handleEdit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" /> |
| | | <a-popconfirm title="ç¡®å®å é¤å?" @confirm="() => handleDelete(record.id)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | |
| | | </a-table> |
| | | </div> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | export default { |
| | | name: "UpdateABC", |
| | | mixins:[JeecgListMixin], |
| | | components: { }, |
| | | props:{ |
| | | mainId:{ |
| | | type:String, |
| | | default:'', |
| | | required:false |
| | | } |
| | | }, |
| | | watch:{ |
| | | mainId:{ |
| | | immediate: true, |
| | | handler(val) { |
| | | if(!this.mainId){ |
| | | this.clearList() |
| | | }else{ |
| | | this.queryParam['equipmentId'] = val |
| | | this.queryParam['updateType'] = 'ABC' |
| | | this.loadData(1); |
| | | |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | description: 'ææåºåºå管ç页é¢', |
| | | disableMixinCreated:true, |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key:'rowIndex', |
| | | width:60, |
| | | align:"center", |
| | | customRender:function (t,r,index) { |
| | | return parseInt(index)+1; |
| | | } |
| | | }, |
| | | { |
| | | title:'ABCæ è¯ï¼æ§ï¼', |
| | | align:"center", |
| | | dataIndex: 'oldAbcTag_dictText', |
| | | width:300 |
| | | }, |
| | | { |
| | | title:'ABCæ è¯ï¼æ°ï¼', |
| | | align:"center", |
| | | dataIndex: 'newAbcTag_dictText', |
| | | width:300 |
| | | }, |
| | | { |
| | | title:'åæ´æ¥æ', |
| | | align:"center", |
| | | dataIndex: 'updateDate', |
| | | width:300 |
| | | }, |
| | | { |
| | | title:'åæ´äºº', |
| | | align:"center", |
| | | dataIndex: 'updatePerson_dictText', |
| | | width:300 |
| | | }, |
| | | { |
| | | title:'夿³¨', |
| | | align:"center", |
| | | dataIndex: 'remark', |
| | | width:300 |
| | | }, |
| | | ], |
| | | url: { |
| | | list: "/eam/equipmentUpdateInfo/list", |
| | | }, |
| | | dictOptions:{ |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | computed: { |
| | | importExcelUrl(){ |
| | | return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`; |
| | | } |
| | | }, |
| | | methods: { |
| | | clearList(){ |
| | | this.dataSource=[] |
| | | this.selectedRowKeys=[] |
| | | this.ipagination.current = 1 |
| | | } |
| | | |
| | | }, |
| | | mounted(){ |
| | | this.$bus.$on('loadData', (data) => { |
| | | this.loadData(); |
| | | }); |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less' |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card :bordered="false" :class="'cust-erp-sub-tab'"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <div> |
| | | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> |
| | | <i class="anticon anticon-info-circle ant-alert-icon"></i> 已鿩 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 |
| | | <a style="margin-left: 24px" @click="onClearSelected">æ¸
空</a> |
| | | </div> |
| | | |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | bordered |
| | | rowKey="id" |
| | | :scroll="{x:true}" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | @change="handleTableChange"> |
| | | |
| | | <template slot="htmlSlot" slot-scope="text"> |
| | | <div v-html="text"></div> |
| | | </template> |
| | | <template slot="imgSlot" slot-scope="text,record"> |
| | | <span v-if="!text" style="font-size: 12px;font-style: italic;">æ å¾ç</span> |
| | | <img v-else :src="getImgView(text)" :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 |
| | | :ghost="true" |
| | | type="primary" |
| | | icon="download" |
| | | size="small" |
| | | @click="downloadFile(text)"> |
| | | ä¸è½½ |
| | | </a-button> |
| | | </template> |
| | | |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a @click="handleEdit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" /> |
| | | <a-popconfirm title="ç¡®å®å é¤å?" @confirm="() => handleDelete(record.id)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | |
| | | </a-table> |
| | | </div> |
| | | |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | |
| | | export default { |
| | | name: "UpdateWarranty", |
| | | mixins:[JeecgListMixin], |
| | | components: { }, |
| | | props:{ |
| | | mainId:{ |
| | | type:String, |
| | | default:'', |
| | | required:false |
| | | } |
| | | }, |
| | | watch:{ |
| | | mainId:{ |
| | | immediate: true, |
| | | handler(val) { |
| | | if(!this.mainId){ |
| | | this.clearList() |
| | | }else{ |
| | | this.queryParam['equipmentId'] = val |
| | | this.queryParam['updateType'] = 'warranty' |
| | | this.loadData(1); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | description: 'ææåºåºå管ç页é¢', |
| | | disableMixinCreated:true, |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key:'rowIndex', |
| | | width:60, |
| | | align:"center", |
| | | customRender:function (t,r,index) { |
| | | return parseInt(index)+1; |
| | | } |
| | | }, |
| | | { |
| | | title:'è´¨ä¿å¼å§æ¥æï¼æ§ï¼', |
| | | align:"center", |
| | | dataIndex: 'oldStart', |
| | | width:200 |
| | | }, |
| | | { |
| | | title:'è´¨ä¿ç»ææ¥æï¼æ§ï¼', |
| | | align:"center", |
| | | dataIndex: 'oldEnd', |
| | | width:200 |
| | | }, |
| | | { |
| | | title:'è´¨ä¿å¼å§æ¥æï¼æ°ï¼', |
| | | align:"center", |
| | | dataIndex: 'newStart', |
| | | width:200 |
| | | }, |
| | | { |
| | | title:'è´¨ä¿ç»ææ¥æï¼æ°ï¼', |
| | | align:"center", |
| | | dataIndex: 'newEnd', |
| | | width:200 |
| | | }, |
| | | { |
| | | title:'åæ´æ¥æ', |
| | | align:"center", |
| | | dataIndex: 'updateDate', |
| | | width:200 |
| | | }, |
| | | { |
| | | title:'åæ´äºº', |
| | | align:"center", |
| | | dataIndex: 'updatePerson_dictText', |
| | | width:200 |
| | | }, |
| | | { |
| | | title:'夿³¨', |
| | | align:"center", |
| | | dataIndex: 'remark', |
| | | width:200 |
| | | }, |
| | | ], |
| | | url: { |
| | | list: "/eam/equipmentUpdateInfo/list", |
| | | }, |
| | | dictOptions:{ |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | computed: { |
| | | importExcelUrl(){ |
| | | return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`; |
| | | } |
| | | }, |
| | | methods: { |
| | | clearList(){ |
| | | this.dataSource=[] |
| | | this.selectedRowKeys=[] |
| | | this.ipagination.current = 1 |
| | | } |
| | | |
| | | }, |
| | | mounted(){ |
| | | this.$bus.$on('loadData', (data) => { |
| | | this.loadData(); |
| | | }); |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less' |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal |
| | | :title="'ABCæ è¯åæ´'" |
| | | :width="1520" |
| | | :height="600" |
| | | :visible="visible" |
| | | :maskClosable="true" |
| | | :fullscreen="true" |
| | | switchFullscreen |
| | | @ok="handleOk" |
| | | :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" |
| | | @cancel="handleCancel"> |
| | | <aBC-update-edit-table |
| | | :updateList="updateList" |
| | | ref="realForm" |
| | | @ok="submitCallback" |
| | | :disabled="disableSubmit"/> |
| | | </j-modal> |
| | | </template> |
| | | <script> |
| | | import ABCUpdateEditTable from './ABCUpdateEditTable.vue' |
| | | export default { |
| | | name: 'ABCUpdateEditModel', |
| | | components: { |
| | | ABCUpdateEditTable |
| | | }, |
| | | props:{ |
| | | updateList:{ |
| | | type:Array, |
| | | default:[], |
| | | required:false, |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | title:'', |
| | | width:1500, |
| | | visible: false, |
| | | disableSubmit: false |
| | | } |
| | | }, |
| | | methods:{ |
| | | add () { |
| | | this.visible=true |
| | | this.$nextTick(()=>{ |
| | | this.$refs.realForm.addBefore(); |
| | | }) |
| | | }, |
| | | edit (record) { |
| | | this.visible=true |
| | | this.$nextTick(()=>{ |
| | | this.$refs.realForm.edit(record); |
| | | }) |
| | | }, |
| | | close () { |
| | | this.$emit('close'); |
| | | this.visible = false; |
| | | }, |
| | | handleOk () { |
| | | this.$refs.realForm.handleOk(); |
| | | }, |
| | | submitCallback(){ |
| | | this.$emit('ok'); |
| | | this.$bus.$emit('loadData') |
| | | this.visible = false; |
| | | }, |
| | | handleCancel () { |
| | | this.close() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <j-form-container :disabled="formDisabled"> |
| | | <!-- 主表ååºå --> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> |
| | | <a-row> |
| | | </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="updateABCEditTable.loading" |
| | | :columns="updateABCEditTable.columns" |
| | | :dataSource="updateABCEditTable.dataSource" |
| | | :maxHeight="600" |
| | | :disabled="formDisabled" |
| | | :rowNumber="true" |
| | | :rowSelection="false" |
| | | :toolbar="false" |
| | | bordered |
| | | :alwaysEdit="true" |
| | | /> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-spin> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { getAction } from '@/api/manage' |
| | | import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' |
| | | import { duplicateCheck } from '@/api/api' |
| | | import { JVXETypes } from '@/components/jeecg/JVxeTable' |
| | | import { getRefPromise,VALIDATE_FAILED} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js' |
| | | import { validateDuplicateValue } from '@/utils/util' |
| | | import JFormContainer from '@/components/jeecg/JFormContainer' |
| | | import dayjs from 'dayjs' |
| | | export default { |
| | | name: 'PrecisionEditTable', |
| | | mixins: [JVxeTableModelMixin], |
| | | components: { |
| | | JFormContainer, |
| | | dayjs |
| | | }, |
| | | data() { |
| | | return { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | model:{ |
| | | }, |
| | | // æ°å¢æ¶å表é»è®¤æ·»å å è¡ç©ºæ°æ® |
| | | addDefaultRowNum: 0, |
| | | validatorRules: { |
| | | }, |
| | | refKeys: ['updateABCEditTableList', ], |
| | | tableKeys:['updateABCEditTableList', ], |
| | | activeKey: 'updateABCEditTableList', |
| | | updateABCEditTable: { |
| | | loading: false, |
| | | dataSource: [], |
| | | columns: [ |
| | | { |
| | | title: 'id', |
| | | key: 'id', |
| | | type: JVXETypes.hidden, |
| | | disabled:true, |
| | | align:'center', |
| | | }, |
| | | { |
| | | title: 'ç»ä¸ç¼ç ', |
| | | key: 'num', |
| | | type: JVXETypes.normal, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | disabled:true, |
| | | align:'center', |
| | | defaultValue:'', |
| | | |
| | | }, |
| | | { |
| | | title: '设å¤åç§°', |
| | | key: 'name', |
| | | type: JVXETypes.normal, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | disabled:true, |
| | | align:'center', |
| | | defaultValue:'', |
| | | }, |
| | | { |
| | | title: '设å¤åå·', |
| | | key: 'model', |
| | | type: JVXETypes.normal, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | disabled:true, |
| | | align:'center', |
| | | defaultValue:'', |
| | | }, |
| | | { |
| | | title: 'ABCæ è¯ï¼æ§ï¼', |
| | | key: 'equipmentImportanceId', |
| | | type: JVXETypes.normal, |
| | | dictCode: 'ABC-standard-result', |
| | | options:[], |
| | | width:"200px", |
| | | placeholder: 'è¯·éæ©${title}', |
| | | align:'center', |
| | | }, |
| | | { |
| | | title: 'ABCæ è¯ï¼æ°ï¼', |
| | | key: 'newABCTag', |
| | | type: JVXETypes.select, |
| | | dictCode: 'ABC-standard-result', |
| | | options:[], |
| | | width:"200px", |
| | | placeholder: 'è¯·éæ©${title}', |
| | | align:'center', |
| | | validateRules: [ |
| | | { |
| | | required: true, // å¿
å¡« |
| | | message: '请è¾å
¥${title}' // æ¾ç¤ºçææ¬ |
| | | }, |
| | | { |
| | | handler({ cellValue, row, column }, callback, target) { |
| | | if (cellValue==row.equipmentImportanceId) { |
| | | callback(false, '${title}ä¸è½ä¸æ§æ°æ®é·å') // false = æªéè¿ï¼å¯ä»¥è·èªå®ä¹æç¤º |
| | | } else { |
| | | callback(true) // true = éè¿éªè¯ |
| | | } |
| | | }, |
| | | message: '${title}é»è®¤æç¤º' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | title: 'å
³é®è®¾å¤æ è¯', |
| | | key: 'specificEquipment', |
| | | type: JVXETypes.select, |
| | | width:"200px", |
| | | placeholder: 'è¯·éæ©${title}', |
| | | dictCode:'specific_equipment', |
| | | align:'center', |
| | | options:[], |
| | | validateRules: [ |
| | | // { |
| | | // required: true, // å¿
å¡« |
| | | // message: '请è¾å
¥${title}' // æ¾ç¤ºçææ¬ |
| | | // }, |
| | | { handler({ cellValue, row, column }, callback, target) { |
| | | if (row.newABCTag=='A'&&(cellValue==null||cellValue==''||cellValue==undefined)) { |
| | | callback(false, 'A类设å¤å¿
须设置å
³é®æ è¯') // false = æªéè¿ï¼å¯ä»¥è·èªå®ä¹æç¤º |
| | | } else { |
| | | callback(true) // true = éè¿éªè¯ |
| | | } |
| | | }, |
| | | message: '${title}é»è®¤æç¤º' |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | title: '夿³¨', |
| | | key: 'remark', |
| | | type: JVXETypes.textarea, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | align:'center', |
| | | validateRules: [ |
| | | ] |
| | | }, |
| | | ] |
| | | }, |
| | | url: { |
| | | // add: "/tooling/toolingMakeAccountMain/add", |
| | | add: "/eam/equipmentUpdateInfo/updateABC", |
| | | // queryById: "/tooling/toolingMakeAccountMain/queryById", |
| | | updateABCEditTableList: { |
| | | list: '/eam/equipmentPrecisionParameters/list' |
| | | }, |
| | | } |
| | | } |
| | | }, |
| | | props: { |
| | | //表åç¦ç¨ |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | }, |
| | | updateList:{ |
| | | type:Array, |
| | | default:[], |
| | | required:false, |
| | | } |
| | | }, |
| | | computed: { |
| | | formDisabled(){ |
| | | return this.disabled |
| | | }, |
| | | }, |
| | | created () { |
| | | }, |
| | | methods: { |
| | | addBefore(){ |
| | | this.updateABCEditTable.dataSource = this.updateList; |
| | | }, |
| | | getAllTable() { |
| | | let values = this.tableKeys.map(key => getRefPromise(this, key)) |
| | | return Promise.all(values) |
| | | }, |
| | | /** è°ç¨å®edit()æ¹æ³ä¹åä¼èªå¨è°ç¨æ¤æ¹æ³ */ |
| | | editAfter() { |
| | | this.$nextTick(() => { |
| | | }) |
| | | // å è½½åè¡¨æ°æ® |
| | | if (this.model.id) { |
| | | let params = { equipmentId: this.model.id } |
| | | this.requestSubTableData(this.url.updateABCEditTableList.list, params, this.updateABCEditTable) |
| | | } |
| | | }, |
| | | //æ ¡éªææä¸å¯¹ä¸å表表å |
| | | validateSubForm(allValues){ |
| | | 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, // å±å¼ |
| | | updateABCEditTableList: allValues.tablesValue[0].tableData, |
| | | } |
| | | }, |
| | | validateError(msg){ |
| | | this.$message.error(msg) |
| | | }, |
| | | changeDate(target){ |
| | | console.log(target) |
| | | if(target.columnIndex==7){ |
| | | target.row.nextCheckDate=dayjs().add(target.value,'day').format('YYYY-MM-DD') |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal |
| | | :title="'è´¨ä¿æåæ´'" |
| | | :width="1515" |
| | | :height="600" |
| | | :visible="visible" |
| | | :maskClosable="true" |
| | | :fullscreen="true" |
| | | switchFullscreen |
| | | @ok="handleOk" |
| | | :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" |
| | | @cancel="handleCancel"> |
| | | <warranty-update-table |
| | | :updateList="updateList" |
| | | ref="realForm" |
| | | @ok="submitCallback" |
| | | :disabled="disableSubmit"/> |
| | | </j-modal> |
| | | </template> |
| | | <script> |
| | | import WarrantyUpdateTable from './WarrantyUpdateTable.vue' |
| | | |
| | | export default { |
| | | name: 'WarrantyUpdateModel', |
| | | components: { |
| | | WarrantyUpdateTable |
| | | }, |
| | | props:{ |
| | | updateList:{ |
| | | type:Array, |
| | | default:[], |
| | | required:false, |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | title:'', |
| | | width:1500, |
| | | visible: false, |
| | | disableSubmit: false |
| | | } |
| | | }, |
| | | methods:{ |
| | | add () { |
| | | this.visible=true |
| | | this.$nextTick(()=>{ |
| | | this.$refs.realForm.addBefore(); |
| | | }) |
| | | }, |
| | | edit (record) { |
| | | this.visible=true |
| | | this.$nextTick(()=>{ |
| | | this.$refs.realForm.edit(record); |
| | | }) |
| | | }, |
| | | close () { |
| | | this.$emit('close'); |
| | | this.visible = false; |
| | | this.$refs.realForm.warrantyUpdateTable.dataSource=[]; |
| | | |
| | | }, |
| | | handleOk () { |
| | | this.$refs.realForm.handleOk(); |
| | | }, |
| | | submitCallback(){ |
| | | this.$emit('ok'); |
| | | this.$bus.$emit('loadData') |
| | | this.visible = false; |
| | | }, |
| | | handleCancel () { |
| | | this.close() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <j-form-container :disabled="formDisabled"> |
| | | <!-- 主表ååºå --> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> |
| | | <a-row> |
| | | </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="warrantyUpdateTable.loading" |
| | | :columns="warrantyUpdateTable.columns" |
| | | :dataSource="warrantyUpdateTable.dataSource" |
| | | :maxHeight="600" |
| | | :disabled="formDisabled" |
| | | :rowNumber="true" |
| | | :rowSelection="false" |
| | | :toolbar="false" |
| | | bordered |
| | | :alwaysEdit="true" |
| | | /> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-spin> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { getAction } from '@/api/manage' |
| | | import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' |
| | | import { duplicateCheck } from '@/api/api' |
| | | import { JVXETypes } from '@/components/jeecg/JVxeTable' |
| | | import { getRefPromise,VALIDATE_FAILED} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js' |
| | | import { validateDuplicateValue } from '@/utils/util' |
| | | import JFormContainer from '@/components/jeecg/JFormContainer' |
| | | import dayjs from 'dayjs' |
| | | export default { |
| | | name: 'WarrantyUpdateTable', |
| | | mixins: [JVxeTableModelMixin], |
| | | components: { |
| | | JFormContainer, |
| | | dayjs |
| | | }, |
| | | data() { |
| | | return { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | model:{ |
| | | }, |
| | | // æ°å¢æ¶å表é»è®¤æ·»å å è¡ç©ºæ°æ® |
| | | addDefaultRowNum: 0, |
| | | validatorRules: { |
| | | }, |
| | | refKeys: ['warrantyUpdateTableList', ], |
| | | tableKeys:['warrantyUpdateTableList', ], |
| | | activeKey: 'warrantyUpdateTableList', |
| | | warrantyUpdateTable: { |
| | | loading: false, |
| | | dataSource: [], |
| | | columns: [ |
| | | { |
| | | title: 'id', |
| | | key: 'id', |
| | | type: JVXETypes.hidden, |
| | | disabled:true, |
| | | align:'center', |
| | | }, |
| | | { |
| | | title: 'ç»ä¸ç¼ç ', |
| | | key: 'num', |
| | | type: JVXETypes.normal, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | disabled:true, |
| | | align:'center', |
| | | defaultValue:'', |
| | | |
| | | }, |
| | | { |
| | | title: '设å¤åç§°', |
| | | key: 'name', |
| | | type: JVXETypes.normal, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | disabled:true, |
| | | align:'center', |
| | | defaultValue:'', |
| | | }, |
| | | { |
| | | title: '设å¤åå·', |
| | | key: 'model', |
| | | type: JVXETypes.normal, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | disabled:true, |
| | | align:'center', |
| | | defaultValue:'', |
| | | }, |
| | | { |
| | | title: 'è´¨ä¿å¼å§æ¥æï¼æ§ï¼', |
| | | key: 'warrantyStart', |
| | | type: JVXETypes.normal, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | align:'center', |
| | | }, |
| | | { |
| | | title: 'è´¨ä¿å¼å§æ¥æï¼æ°ï¼', |
| | | key: 'newStart', |
| | | type: JVXETypes.date, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | align:'center', |
| | | defaultValue:365, |
| | | validateRules: [ |
| | | { |
| | | required: true, // å¿
å¡« |
| | | message: '请è¾å
¥${title}' // æ¾ç¤ºçææ¬ |
| | | }, |
| | | { handler({ cellValue, row, column }, callback, target) { |
| | | if (cellValue==row.warrantyStart) { |
| | | callback(false, '${title}ä¸è½ä¸æ§æ°æ®é·å') // false = æªéè¿ï¼å¯ä»¥è·èªå®ä¹æç¤º |
| | | } else { |
| | | callback(true) // true = éè¿éªè¯ |
| | | } |
| | | }, |
| | | message: '${title}é»è®¤æç¤º' |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | title: 'è´¨ä¿ç»ææ¥æï¼æ§ï¼', |
| | | key: 'warrantyEnd', |
| | | type: JVXETypes.normal, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | align:'center', |
| | | }, |
| | | { |
| | | title: 'è´¨ä¿ç»ææ¥æï¼æ§ï¼', |
| | | key: 'newEnd', |
| | | type: JVXETypes.date, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | align:'center', |
| | | defaultValue:365, |
| | | validateRules: [ |
| | | { |
| | | required: true, // å¿
å¡« |
| | | message: '请è¾å
¥${title}' // æ¾ç¤ºçææ¬ |
| | | }, |
| | | { handler({ cellValue, row, column }, callback, target) { |
| | | if (cellValue==row.warrantyEnd) { |
| | | callback(false, '${title}ä¸è½è·æ§æ°æ®é·å') // false = æªéè¿ï¼å¯ä»¥è·èªå®ä¹æç¤º |
| | | } else { |
| | | callback(true) // true = éè¿éªè¯ |
| | | } |
| | | }, |
| | | message: '${title}é»è®¤æç¤º' |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | title: '夿³¨', |
| | | key: 'remark', |
| | | type: JVXETypes.textarea, |
| | | width:"200px", |
| | | placeholder: '请è¾å
¥${title}', |
| | | align:'center', |
| | | validateRules: [ |
| | | ] |
| | | }, |
| | | ] |
| | | }, |
| | | url: { |
| | | // add: "/tooling/toolingMakeAccountMain/add", |
| | | add: "/eam/equipmentUpdateInfo/updateWarranty", |
| | | // queryById: "/tooling/toolingMakeAccountMain/queryById", |
| | | warrantyUpdateTableList: { |
| | | list: '/eam/equipmentPrecisionParameters/list' |
| | | }, |
| | | } |
| | | } |
| | | }, |
| | | props: { |
| | | //表åç¦ç¨ |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | }, |
| | | updateList:{ |
| | | type:Array, |
| | | default:[], |
| | | required:false, |
| | | } |
| | | }, |
| | | computed: { |
| | | formDisabled(){ |
| | | return this.disabled |
| | | }, |
| | | }, |
| | | created () { |
| | | }, |
| | | methods: { |
| | | addBefore(){ |
| | | this.warrantyUpdateTable.dataSource = this.updateList |
| | | }, |
| | | getAllTable() { |
| | | let values = this.tableKeys.map(key => getRefPromise(this, key)) |
| | | return Promise.all(values) |
| | | }, |
| | | /** è°ç¨å®edit()æ¹æ³ä¹åä¼èªå¨è°ç¨æ¤æ¹æ³ */ |
| | | editAfter() { |
| | | this.$nextTick(() => { |
| | | }) |
| | | // å è½½åè¡¨æ°æ® |
| | | if (this.model.id) { |
| | | let params = { equipmentId: this.model.id } |
| | | this.requestSubTableData(this.url.warrantyUpdateTableList.list, params, this.warrantyUpdateTable) |
| | | } |
| | | }, |
| | | //æ ¡éªææä¸å¯¹ä¸å表表å |
| | | validateSubForm(allValues){ |
| | | 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, // å±å¼ |
| | | warrantyUpdateTableList: allValues.tablesValue[0].tableData, |
| | | } |
| | | }, |
| | | validateError(msg){ |
| | | this.$message.error(msg) |
| | | }, |
| | | changeDate(target){ |
| | | console.log(target) |
| | | if(target.columnIndex==7){ |
| | | target.row.nextCheckDate=dayjs().add(target.value,'day').format('YYYY-MM-DD') |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | </style> |