From b1c4b9509b3b84594bbc9a541f308101d3a17140 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期四, 24 七月 2025 10:20:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/eam/base/modules/EamMaintenanceStandardModal.vue | 605 +++++++++++++++++++++++++++++++++++-------------------
1 files changed, 391 insertions(+), 214 deletions(-)
diff --git a/src/views/eam/base/modules/EamMaintenanceStandardModal.vue b/src/views/eam/base/modules/EamMaintenanceStandardModal.vue
index a25d747..72ae064 100644
--- a/src/views/eam/base/modules/EamMaintenanceStandardModal.vue
+++ b/src/views/eam/base/modules/EamMaintenanceStandardModal.vue
@@ -1,97 +1,107 @@
<template>
- <j-modal
- :title="title"
- :width="1200"
- :visible="visible"
- :confirmLoading="confirmLoading"
- switchFullscreen
- @ok="handleOk"
- @cancel="handleCancel"
- cancelText="鍏抽棴">
+ <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
+ @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴">
+ <a-spin :spinning="spinning">
+ <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
+ <a-row :gutter="24">
+ <a-col :span="8">
+ <a-form-model-item prop="standardCode" label="瑙勮寖缂栫爜">
+ <a-input placeholder="缂栫爜绯荤粺鑷姩鐢熸垚" v-model="model.standardCode" disabled/>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="8">
+ <a-form-model-item prop="standardName" label="瑙勮寖鍚嶇О">
+ <a-input placeholder="璇疯緭鍏ヨ鑼冨悕绉�" v-model="model.standardName"/>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="8">
+ <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜">
+ <lx-search-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId" :disabled="!editable"/>
+ </a-form-model-item>
+ </a-col>
+ </a-row>
- <a-spin :spinning="confirmLoading">
- <a-form-model ref="form" :model="model" :rules="validatorRules">
<a-row :gutter="24">
<a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardCode" label="鏍囧噯缂栫爜">
- <a-input placeholder="缂栫爜绯荤粺鑷姩鐢熸垚" v-model="model.standardCode" disabled />
+ <a-form-model-item prop="maintenanceCategory" label="淇濆吇鍒嗙被">
+ <j-dict-select-tag dict-code="maintenance_category" placeholder="璇烽�夋嫨淇濆吇鍒嗙被"
+ @change="handleMaintenanceCategoryChange"
+ v-model="model.maintenanceCategory" :disabled="!editable"/>
</a-form-model-item>
</a-col>
<a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardName" label="鏍囧噯鍚嶇О">
- <a-input placeholder="璇疯緭鍏ユ爣鍑嗗悕绉�" v-model="model.standardName" />
+ <a-form-model-item label="淇濆吇鍛ㄦ湡鍗曚綅">
+ <a-input readOnly v-model="model.periodUnit" placeholder="鏍规嵁淇濆吇鍒嗙被鑷姩甯﹀嚭"/>
</a-form-model-item>
</a-col>
<a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="maintenanceCategory" label="淇濆吇鍒嗙被">
- <j-dict-select-tag dict-code="maintenance_category" placeholder="璇烽�夋嫨淇濆吇鍒嗙被" v-model="model.maintenanceCategory" :disabled="editable" />
+ <a-form-model-item prop="maintenancePeriod" label="淇濆吇鍛ㄦ湡">
+ <a-input-number v-model="model.maintenancePeriod" placeholder="璇疯緭鍏ヤ繚鍏诲懆鏈�" :min="1" :precision="0"
+ :disabled="model.maintenanceCategory=='POINT_INSPECTION'||model.maintenanceCategory=='SECOND_MAINTENANCE'"
+ style="width: 100%"/>
</a-form-model-item>
</a-col>
</a-row>
+
<a-row :gutter="24">
<a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fileCode" label="鏂囦欢缂栧彿">
- <a-input placeholder="璇疯緭鍏ヤ繚鍏绘爣鍑嗘枃浠剁紪鍙�" v-model="model.fileCode"/>
+ <a-form-model-item prop="initialDate" label="鍒濆鏃ユ湡">
+ <a-date-picker placeholder="璇烽�夋嫨鍒濆鏃ユ湡" v-model="model.initialDate" value-format="YYYY-MM-DD"
+ style="width: 100%"/>
</a-form-model-item>
</a-col>
<a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="initialDate" label="鍒濆鏃ユ湡">
- <a-date-picker placeholder="璇烽�夋嫨鍒濆鏃ユ湡" v-model="model.initialDate" format="YYYY-MM-DD" style="width: 100%" :disabled="editable"/>
+ <a-form-model-item label="瑙勮寖鐘舵��">
+ <j-dict-select-tag dict-code="maintenance_standard_status" placeholder="鏍规嵁娴佺▼杩涘害鑷姩甯﹀嚭"
+ v-model="model.standardStatus" disabled/>
</a-form-model-item>
</a-col>
<a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="maintenancePeriod" label="淇濆吇鍛ㄦ湡">
- <a-input-number v-model="model.maintenancePeriod" :min="1" :precision="0" style="width: 100%"/>
+ <a-form-model-item label="瑙勮寖鐗堟湰">
+ <a-input-number v-model="model.standardVersion" placeholder="鏍规嵁娴佺▼杩涘害鑷姩甯﹀嚭" style="width: 100%" disabled/>
</a-form-model-item>
</a-col>
</a-row>
+
<a-row :gutter="24">
- <a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="璁惧缂栧彿">
- <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="model.equipmentId" :disabled="editable"></lx-search-equipment-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardStatus" label="鏍囧噯鐘舵��">
- <j-dict-select-tag dict-code="maintenance_standard_status" v-model="model.standardStatus" disabled/>
- </a-form-model-item>
- </a-col>
- <a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardVersion" label="鏍囧噯鐗堟湰">
- <a-input-number v-model="model.standardVersion" style="width: 100%" disabled/>
- </a-form-model-item>
- </a-col>
- </a-row>
- <a-row :gutter="24">
- <a-col :span="8">
- <a-form-model-item
- label="鍙傝�冩枃浠�"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="fileList">
- <lx-upload :returnUrl="false"
- :multiple="false"
- v-model="model.fileList"
- biz="EamMaintenanceStandard">
- </lx-upload>
- </a-form-model-item>
- </a-col>
- </a-row>
- <a-row :gutter="24">
- <j-vxe-table
- ref="editableDetailTable"
- :rowNumber="true"
- :rowSelection="true"
- :bordered="true"
- :alwaysEdit="true"
- :toolbar="true"
- :toolbarConfig="detail.toolbarConfig"
- keep-source
- :height="300"
- :loading="detail.loading"
- :dataSource="detail.dataSource"
- :columns="detail.columns"
- style="margin-top: 8px;"/>
+ <a-tabs :active-key="activeTabKey" v-if="model.maintenanceCategory" @change="handleTabChange">
+ <!--鐐规-->
+ <template v-if="model.maintenanceCategory=='POINT_INSPECTION'">
+ <a-tab-pane tab="鏃ョ偣妫�" key="1" forceRender>
+ <j-vxe-table ref="editableDetailTable1" rowNumber rowSelection bordered alwaysEdit toolbar
+ :toolbarConfig="detail.toolbarConfig" keep-source :height="300"
+ :dataSource="detail.dayInspectionList" :columns="detail.inspectionColumns"/>
+ </a-tab-pane>
+ <a-tab-pane tab="鍛ㄧ偣妫�" key="2" forceRender>
+ <j-vxe-table ref="editableDetailTable2" rowNumber rowSelection bordered alwaysEdit toolbar
+ :toolbarConfig="detail.toolbarConfig" keep-source :height="300"
+ :dataSource="detail.weekInspectionList" :columns="detail.inspectionColumns"/>
+ </a-tab-pane>
+ </template>
+
+ <!--浜屼繚-->
+ <template v-if="model.maintenanceCategory=='SECOND_MAINTENANCE'">
+ <a-tab-pane tab="鎿嶄綔宸�" key="1" forceRender>
+ <j-vxe-table ref="editableDetailTable1" rowNumber rowSelection bordered alwaysEdit toolbar
+ :toolbarConfig="detail.toolbarConfig" keep-source :height="300"
+ :dataSource="detail.operatorMaintenanceList" :columns="detail.secondMaintenanceColumns"/>
+ </a-tab-pane>
+ <a-tab-pane tab="缁翠慨宸�" key="2" forceRender>
+ <j-vxe-table ref="editableDetailTable2" rowNumber rowSelection bordered alwaysEdit toolbar
+ :toolbarConfig="detail.toolbarConfig" keep-source :height="300"
+ :dataSource="detail.repairerMaintenanceList" :columns="detail.secondMaintenanceColumns"/>
+ </a-tab-pane>
+ </template>
+
+ <!--涓変繚-->
+ <template v-if="model.maintenanceCategory=='THIRD_MAINTENANCE'">
+ <a-tab-pane tab="涓変繚" key="1">
+ <j-vxe-table ref="editableDetailTable1" rowNumber rowSelection bordered alwaysEdit toolbar
+ :toolbarConfig="detail.toolbarConfig" keep-source :height="300"
+ :dataSource="detail.thirdMaintenanceList" :columns="detail.thirdMaintenanceColumns"/>
+ </a-tab-pane>
+ </template>
+ </a-tabs>
</a-row>
</a-form-model>
</a-spin>
@@ -99,233 +109,400 @@
</template>
<script>
-import { getAction, httpAction } from '@/api/manage'
+ import { getAction, httpAction } from '@/api/manage'
import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
import { JVXETypes } from '@/components/jeecg/JVxeTable'
import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect'
export default {
- name: "EamMaintenanceStandardModal",
+ name: 'EamMaintenanceStandardModal',
mixins: [JVxeTableModelMixin],
components: {
- LxSearchEquipmentSelect,
+ LxSearchEquipmentSelect
},
- data () {
+ data() {
return {
- title:"鎿嶄綔",
+ title: '鎿嶄綔',
visible: false,
model: {},
- editable: false,
+ editable: true,
upgradeFlag: false,
labelCol: {
xs: { span: 24 },
- sm: { span: 5 },
+ sm: { span: 7 }
},
wrapperCol: {
xs: { span: 24 },
- sm: { span: 16 },
+ sm: { span: 16 }
},
confirmLoading: false,
+ spinning: false,
+ activeTabKey: '1',
validatorRules: {
standardName: [
- { required: true, message: '璇疯緭鍏ユ爣鍑嗗悕绉�!' }
+ { required: true, message: '璇疯緭鍏ヨ鑼冨悕绉�', trigger: 'change' }
],
maintenanceCategory: [
- { required: true, message: '璇烽�夋嫨淇濆吇鍒嗙被!' }
+ { required: true, message: '璇烽�夋嫨淇濆吇鍒嗙被', trigger: 'change' }
],
initialDate: [
- { required: true, message: '璇烽�夋嫨鍒濆鏃ユ湡!' }
+ { required: true, message: '璇烽�夋嫨鍒濆鏃ユ湡', trigger: 'change' }
],
maintenancePeriod: [
- { required: true, message: '璇疯緭鍏ヤ繚鍏诲懆鏈燂紝鍗曚綅锛氬ぉ!' }
+ { required: true, message: '璇疯緭鍏ヤ繚鍏诲懆鏈�', trigger: 'change' }
],
equipmentId: [
- { required: true, message: '璇烽�夋嫨璁惧!' }
+ { required: true, message: '璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�', trigger: 'change' }
]
},
url: {
- add: "/eam/maintenanceStandard/add",
- edit: "/eam/maintenanceStandard/edit",
- detail: "/eam/eamMaintenanceStandardDetail/queryList",
- upgrade: '/eam/maintenanceStandard/upgrade',
+ add: '/eam/maintenanceStandard/add',
+ edit: '/eam/maintenanceStandard/edit',
+ detail: '/eam/eamMaintenanceStandardDetail/queryList',
+ upgrade: '/eam/maintenanceStandard/upgrade'
},
detail: {
- loading: false,
- dataSource: [],
- columns: [
+ dayInspectionList: [],
+ weekInspectionList: [],
+ operatorMaintenanceList: [],
+ repairerMaintenanceList: [],
+ thirdMaintenanceList: [],
+ inspectionColumns: [
{
title: 'ID',
key: 'id',
- type: JVXETypes.hidden,
+ type: JVXETypes.hidden
},
{
title: 'standardId',
key: 'standardId',
- type: JVXETypes.hidden,
+ type: JVXETypes.hidden
},
{
- title: '搴忓彿',
+ title: '椤圭洰搴忓彿',
key: 'itemCode',
type: JVXETypes.inputNumber,
- align:"center",
- width: 100,
- validateRules: [
- {required : true, unique: true, message: '搴忓彿涓嶈兘閲嶅'}
- ]
+ align: 'center',
+ placeholder: '璇疯緭鍏ラ」鐩簭鍙�',
+ width: 150,
+ validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }]
},
{
- title: '閮ㄤ綅',
+ title: '淇濆吇椤圭洰',
+ key: 'itemName',
+ placeholder: '璇疯緭鍏ヤ繚鍏婚」鐩�',
+ type: JVXETypes.textarea,
+ align: 'center',
+ validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }]
+ },
+ {
+ title: '淇濆吇瑙勮寖鎴栬姹�',
+ key: 'itemDemand',
+ placeholder: '璇疯緭鍏ヤ繚鍏昏鑼冩垨瑕佹眰',
+ type: JVXETypes.textarea,
+ align: 'center',
+ validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }]
+ }
+ ],
+ secondMaintenanceColumns: [
+ {
+ title: 'ID',
+ key: 'id',
+ type: JVXETypes.hidden
+ },
+ {
+ title: 'standardId',
+ key: 'standardId',
+ type: JVXETypes.hidden
+ },
+ {
+ title: '椤圭洰搴忓彿',
+ key: 'itemCode',
+ type: JVXETypes.inputNumber,
+ align: 'center',
+ placeholder: '璇疯緭鍏ラ」鐩簭鍙�',
+ width: 150,
+ validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }]
+ },
+ {
+ title: '淇濆吇椤圭洰',
+ key: 'itemName',
+ placeholder: '璇疯緭鍏ヤ繚鍏婚」鐩�',
+ type: JVXETypes.textarea,
+ align: 'center',
+ validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }]
+ }
+ ],
+ thirdMaintenanceColumns: [
+ {
+ title: 'ID',
+ key: 'id',
+ type: JVXETypes.hidden
+ },
+ {
+ title: 'standardId',
+ key: 'standardId',
+ type: JVXETypes.hidden
+ },
+ {
+ title: '淇濆吇閮ㄤ綅',
key: 'itemPart',
type: JVXETypes.textarea,
- align:"center",
+ placeholder: '璇疯緭鍏�${title}',
+ slotName: 'itemPart',
+ align: 'center',
+ validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }]
},
{
- title: '淇濆吇椤�',
+ title: '淇濆吇鍐呭',
key: 'itemName',
+ placeholder: '璇疯緭鍏�${title}',
type: JVXETypes.textarea,
- align:"center",
- validateRules: [
- {required : true, message: '淇濆吇椤逛笉鑳戒负绌猴紒'}
- ]
+ align: 'center',
+ validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }]
},
{
- title: '淇濆吇瑕佹眰',
- key: 'itemDemandAlias',
- type: JVXETypes.textarea,
- align:"center",
- },
- {
- title: '妫�鏌ユ爣鍑嗘垨瑕佹眰',
+ title: '楠屾敹鏍囧噯',
key: 'itemDemand',
+ placeholder: '璇疯緭鍏�${title}',
type: JVXETypes.textarea,
- align:"center",
- validateRules: [
- {required : true, message: "淇濆吇瑕佹眰涓嶈兘涓虹┖锛�"}
- ]
- },
- {
- title: '妫�鏌ユ柟娉�',
- key: 'checkMethod',
- type: JVXETypes.textarea,
- align:"center",
- },
+ align: 'center',
+ validateRules: [{ required: true, message: '璇疯緭鍏�${title}' }]
+ }
],
toolbarConfig: {
// prefix 鍓嶇紑锛泂uffix 鍚庣紑
slot: ['prefix', 'suffix'],
// add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳
btn: ['add', 'remove', 'clearSelection']
- },
+ }
}
}
},
- created () {
- },
methods: {
- add () {
- this.model = {};
- this.visible = true;
- this.editable = false;
- this.upgradeFlag = false;
- this.detail.dataSource = [];
+ // 涓婚〉闈㈢偣鍑绘柊澧炲悗瑙﹀彂
+ add() {
+ this.resetData()
+ this.model = {}
+ this.visible = true
+ this.editable = true
+ this.upgradeFlag = false
},
- edit (record) {
- this.model = Object.assign({}, record);
- this.visible = true;
- this.editable = true;
- this.upgradeFlag = false;
- this.detail.dataSource = [];
- if(record && record.referenceFile) {
- let obj = JSON.parse(record.referenceFile);
- this.model.fileList = [obj];
- }else {
- this.model.fieldList = [];
- }
- this.loadDetail(record.id);
- },
- upgrade(record) {
- this.model = Object.assign({}, record);
- this.visible = true;
- this.editable = true;
- this.upgradeFlag = true;
- this.detail.dataSource = [];
- if(record && record.referenceFile) {
- let obj = JSON.parse(record.referenceFile);
- this.model.fileList = [obj];
- }else {
- this.model.fieldList = [];
- }
- this.loadDetail(record.id);
- },
- close () {
- this.$emit('close');
- this.visible = false;
- this.$refs.form.clearValidate();
- },
- async handleOk () {
- const that = this;
- let errMap = await that.$refs.editableDetailTable.validateTable();
- if(errMap){
- this.$message.warning("鏁版嵁鏍¢獙澶辫触锛�");
- return;
- }
- // 瑙﹀彂琛ㄥ崟楠岃瘉
- this.$refs.form.validate(valid => {
- if (valid) {
- let tableData = that.$refs.editableDetailTable.getTableData();
- let removeData = that.$refs.editableDetailTable.getDeleteData();
- that.model.tableDetailList = [...tableData];
- that.model.removeDetailList = [...removeData];
- that.confirmLoading = true;
- let httpurl = '';
- let method = '';
- if(!this.model.id){
- httpurl+=this.url.add;
- method = 'post';
- }else{
- if(this.upgradeFlag) {
- httpurl+=this.url.upgrade;
- }else {
- httpurl+=this.url.edit;
+ /**
+ * 涓婚〉闈㈢偣鍑荤紪杈戝悗瑙﹀彂
+ * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍
+ */
+ edit(record) {
+ this.resetData()
+ this.model = Object.assign({}, record)
+ this.visible = true
+ this.editable = false
+ this.upgradeFlag = false
+ this.loadDetail(record.id)
+ },
+
+ /**
+ * 鐐瑰嚮鍗囩増鍚庤Е鍙�
+ * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍
+ */
+ upgrade(record) {
+ this.resetData()
+ this.model = Object.assign({}, record)
+ this.visible = true
+ this.editable = false
+ this.upgradeFlag = true
+ this.loadDetail(record.id)
+ },
+
+ //鍔犺浇璇︽儏鏁版嵁
+ loadDetail(standardId) {
+ this.spinning = true
+ getAction(this.url.detail, { standardId })
+ .then(res => {
+ if (res.success) {
+ switch (this.model.maintenanceCategory) {
+ case 'POINT_INSPECTION':
+ this.detail.dayInspectionList = res.result.filter(item => item.itemCategory == 'DAY_INSPECTION')
+ this.detail.weekInspectionList = res.result.filter(item => item.itemCategory == 'WEEK_INSPECTION')
+ break
+ case 'SECOND_MAINTENANCE':
+ this.detail.operatorMaintenanceList = res.result.filter(item => item.itemCategory == 'OPERATOR_MAINTENANCE')
+ this.detail.repairerMaintenanceList = res.result.filter(item => item.itemCategory == 'REPAIRER_MAINTENANCE')
+ break
+ case 'THIRD_MAINTENANCE':
+ this.detail.thirdMaintenanceList = res.result.filter(item => !Boolean(item.itemCategory))
+ break
+ default:
}
- method = 'put';
}
- httpAction(httpurl,this.model,method).then((res)=>{
- if(res.success){
- that.$message.success(res.message);
- that.$emit('ok');
- that.close();
- }else{
- that.$message.warning(res.message);
- }
- }).finally(() => {
- that.confirmLoading = false;
+ })
+ .finally(() => {
+ this.spinning = false
+ })
+ },
+
+ /**
+ * 淇濆吇鍒嗙被鍊兼敼鍙樻椂鍚屾椂鏀瑰彉淇濆吇鍛ㄦ湡鍗曚綅浠ュ強淇濆吇椤瑰垎绫�
+ * @param value 淇濆吇鍒嗙被鍊�
+ */
+ handleMaintenanceCategoryChange(value) {
+ delete this.model.maintenancePeriod
+ switch (value) {
+ case 'THIRD_MAINTENANCE':
+ this.model.periodUnit = '骞�'
+ if (this.activeTabKey != '1') this.activeTabKey = '1'
+ break
+ case 'SECOND_MAINTENANCE':
+ this.model.periodUnit = '鏈�'
+ this.model.maintenancePeriod = 6
+ break
+ case 'POINT_INSPECTION':
+ this.model.periodUnit = '澶�'
+ this.model.maintenancePeriod = 1
+ break
+ default:
+ delete this.model.periodUnit
+ }
+ if (this.model.maintenancePeriod) this.$refs.form.clearValidate('maintenancePeriod')
+ },
+
+ async handleTabChange(tabKey) {
+ let errMap = await this.$refs['editableDetailTable' + this.activeTabKey].validateTable()
+ if (errMap) return
+ this.activeTabKey = tabKey
+ },
+
+ // 鎻愪氦浜嬩欢
+ async handleOk() {
+ // 淇濆吇鍒嗙被涓虹┖鏃朵笉鏍¢獙鏄庣粏
+ if (this.model.maintenanceCategory) {
+ // 鏍¢獙褰撲笅tab涓嬬殑琛ㄦ牸鏄惁涓虹┖
+ let tableData = this.$refs['editableDetailTable' + this.activeTabKey].getTableData()
+ if (tableData.length == 0) {
+ this.$notification.warning({
+ message: '娑堟伅',
+ description: '褰撳墠淇濆吇鏄庣粏涓嶈兘涓虹┖'
})
- }else{
- return false;
+ return
+ }
+
+ // 鏍¢獙褰撳墠tab涓嬬殑琛ㄦ牸鏍¢獙瑙勫垯
+ let errMap = await this.$refs['editableDetailTable' + this.activeTabKey].validateTable()
+ if (errMap) return false
+
+ // 鏍¢獙鍙︿竴tab淇濆吇鏄庣粏琛ㄦ牸鏄惁涓虹┖(涓変繚鏃犻渶)
+ if (this.model.maintenanceCategory != 'THIRD_MAINTENANCE') {
+ if (this.activeTabKey == '1') tableData = this.$refs.editableDetailTable2.getTableData()
+ else tableData = this.$refs.editableDetailTable1.getTableData()
+
+ if (tableData.length == 0) {
+ this.activeTabKey = this.activeTabKey == '1' ? '2' : '1'
+ this.$notification.warning({
+ message: '娑堟伅',
+ description: '褰撳墠淇濆吇鏄庣粏涓嶈兘涓虹┖'
+ })
+ return
+ }
+ }
+ }
+
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ let tableData1 = that.$refs.editableDetailTable1.getTableData()
+ let tableData2 = []
+ let currentTabItemMaintenanceList = []
+ if (this.model.maintenanceCategory != 'THIRD_MAINTENANCE') {
+ tableData2 = that.$refs.editableDetailTable2.getTableData()
+ if (this.model.maintenanceCategory == 'POINT_INSPECTION') currentTabItemMaintenanceList = ['DAY_INSPECTION', 'WEEK_INSPECTION']
+ else currentTabItemMaintenanceList = ['OPERATOR_MAINTENANCE', 'REPAIRER_MAINTENANCE']
+ }
+ if (currentTabItemMaintenanceList.length != 0) {
+ tableData1 = tableData1.map(item => {
+ return {
+ ...item,
+ itemCategory: currentTabItemMaintenanceList[0]
+ }
+ })
+ tableData2 = tableData2.map(item => {
+ return {
+ ...item,
+ itemCategory: currentTabItemMaintenanceList[1]
+ }
+ })
+ }
+ that.model.tableDetailList = [...tableData1, ...tableData2]
+ that.confirmLoading = that.spinning = true
+ let httpUrl = ''
+ let method = ''
+ if (!this.model.id) {
+ httpUrl += this.url.add
+ method = 'post'
+ } else {
+ if (this.upgradeFlag) {
+ httpUrl += this.url.upgrade
+ } else {
+ httpUrl += this.url.edit
+ }
+ method = 'put'
+ }
+ httpAction(httpUrl, this.model, method)
+ .then((res) => {
+ if (res.success) {
+ that.$notification.success({
+ message: '娑堟伅',
+ description: res.message
+ })
+ that.$emit('ok')
+ that.close()
+ } else {
+ that.$notification.warning({
+ message: '娑堟伅',
+ description: res.message
+ })
+ }
+ })
+ .finally(() => {
+ that.confirmLoading = that.spinning = false
+ })
+ } else {
+ return false
}
})
},
- handleCancel () {
+
+ resetData() {
+ this.activeTabKey = '1'
+ this.detail.dayInspectionList = []
+ this.detail.weekInspectionList = []
+ this.detail.operatorMaintenanceList = []
+ this.detail.repairerMaintenanceList = []
+ this.detail.thirdMaintenanceList = []
+ },
+
+ handleCancel() {
this.close()
},
- //鍔犺浇璇︽儏鏁版嵁
- loadDetail(standardId) {
- this.detail.dataSource = [];
- if (standardId) {
- getAction(this.url.detail, { standardId: standardId }).then(res => {
- if (res.success) {
- this.detail.dataSource = [...res.result];
- }
- })
- }
+
+ close() {
+ this.$emit('close')
+ this.visible = false
+ this.$refs.form.clearValidate()
}
}
}
</script>
-<style lang="less" scoped>
+<style scoped lang="less">
+ /deep/ .ant-select-dropdown-menu {
+ text-align: left;
+ }
+ /deep/ textarea.ant-input {
+ resize: none;
+ margin-bottom: 0;
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.3