|
|
@@ -5,7 +5,7 @@
|
|
|
v-if="visible"
|
|
|
:append-to-body="true"
|
|
|
custom-class="ele-dialog-form"
|
|
|
- :title="title"
|
|
|
+ :title="dialogTitle"
|
|
|
@update:visible="updateVisible"
|
|
|
>
|
|
|
<header-title title="基本信息"></header-title>
|
|
|
@@ -69,18 +69,27 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="审核人" prop="approvalUserId">
|
|
|
+ <el-col :span="8" v-if="addForm.autoOrder">
|
|
|
+ <el-form-item label="部门" prop="groupId">
|
|
|
+ <deptSelect
|
|
|
+ v-model="addForm.groupId"
|
|
|
+ @changeGroup="searchDeptNodeClick"
|
|
|
+ :disabled="isBindPlan"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8" v-if="addForm.autoOrder">
|
|
|
+ <el-form-item label="负责人" prop="executeIdList">
|
|
|
<el-select
|
|
|
- v-model="addForm.approvalUserId"
|
|
|
+ v-model="addForm.executeIdList"
|
|
|
size="small"
|
|
|
- clearable
|
|
|
style="width: 100%"
|
|
|
:disabled="isBindPlan"
|
|
|
+ multiple
|
|
|
filterable
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="item in uerList"
|
|
|
+ v-for="item in executorList"
|
|
|
:key="item.id"
|
|
|
:value="item.id"
|
|
|
:label="item.name"
|
|
|
@@ -88,27 +97,18 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8" v-if="addForm.autoOrder">
|
|
|
- <el-form-item :label="formLabel + '部门'" prop="groupId">
|
|
|
- <deptSelect
|
|
|
- v-model="addForm.groupId"
|
|
|
- @changeGroup="searchDeptNodeClick"
|
|
|
- :disabled="isBindPlan"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8" v-if="addForm.autoOrder">
|
|
|
- <el-form-item :label="formLabel + '人员'" prop="executeIdList">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="审核人" prop="approvalUserId">
|
|
|
<el-select
|
|
|
- v-model="addForm.executeIdList"
|
|
|
+ v-model="addForm.approvalUserId"
|
|
|
size="small"
|
|
|
+ clearable
|
|
|
style="width: 100%"
|
|
|
:disabled="isBindPlan"
|
|
|
- multiple
|
|
|
filterable
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="item in executorList"
|
|
|
+ v-for="item in uerList"
|
|
|
:key="item.id"
|
|
|
:value="item.id"
|
|
|
:label="item.name"
|
|
|
@@ -171,7 +171,7 @@
|
|
|
<el-tab-pane
|
|
|
v-for="(item, ruleIdListIndex) in ruleIdList"
|
|
|
:key="item.ruleId"
|
|
|
- :label="item.ruleName"
|
|
|
+ :label="item.name"
|
|
|
:name="item.ruleId"
|
|
|
>
|
|
|
<div class="el-tab_box">
|
|
|
@@ -183,7 +183,7 @@
|
|
|
icon="el-icon-plus"
|
|
|
class="ele-btn-icon"
|
|
|
type="primary"
|
|
|
- @click="handleAdd(item.equipmentList, ruleIdListIndex)"
|
|
|
+ @click="handleAdd(ruleIdList, ruleIdListIndex)"
|
|
|
>新增</el-button
|
|
|
>
|
|
|
</div>
|
|
|
@@ -194,7 +194,7 @@
|
|
|
<el-table-column label="设备名称" align="center" prop="name">
|
|
|
<template slot-scope="{ row, $index }">
|
|
|
<template>
|
|
|
- {{ row.category.name }}
|
|
|
+ {{ row.name }}
|
|
|
</template>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
@@ -208,10 +208,19 @@
|
|
|
<el-table-column label="固资编码" align="center" prop="fixCode">
|
|
|
<template slot-scope="{ row, $index }">
|
|
|
<template>
|
|
|
- {{ row.category.fixCode }}
|
|
|
+ {{ row.fixCode }}
|
|
|
</template>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="操作" width="100">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ @click="deleteEquipment(scope.$index)"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
<div class="ruleMatters_box">
|
|
|
@@ -354,7 +363,7 @@
|
|
|
:key="item.id"
|
|
|
:value="item.id"
|
|
|
:label="item.name"
|
|
|
- @click.native="ruleObj.ruleName = item.name"
|
|
|
+ @click.native="ruleChange(item)"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
<template v-slot:footer>
|
|
|
@@ -404,10 +413,6 @@
|
|
|
return '新增巡检点计划配置';
|
|
|
}
|
|
|
},
|
|
|
- title: {
|
|
|
- type: String,
|
|
|
- default: ''
|
|
|
- },
|
|
|
visible: {
|
|
|
type: Boolean,
|
|
|
default: false
|
|
|
@@ -432,7 +437,8 @@
|
|
|
isBindPlan: false,
|
|
|
ruleObj: {
|
|
|
ruleId: '',
|
|
|
- ruleName: '',
|
|
|
+ name: '',
|
|
|
+ code: '',
|
|
|
equipmentList: []
|
|
|
},
|
|
|
ruleIdList: [],
|
|
|
@@ -450,7 +456,7 @@
|
|
|
executorPhone: '',
|
|
|
status: 1, // 状态
|
|
|
remark: '', // 备注
|
|
|
- urgent: ''
|
|
|
+ urgent: '1'
|
|
|
},
|
|
|
ruleNameList: [], // 规则列表
|
|
|
uerList: [], // 审核人列表
|
|
|
@@ -613,15 +619,37 @@
|
|
|
} else {
|
|
|
// 获取计划配置单号
|
|
|
this.getOrderCode(tips);
|
|
|
+ this.addForm = {
|
|
|
+ code: '', // 计划配置单号
|
|
|
+ name: '', // 计划配置名称
|
|
|
+ autoOrder: 1, // 自动派单
|
|
|
+ ruleId: '', // 规则id
|
|
|
+ ruleName: '', // 规则名称
|
|
|
+ duration: null, // 计划完成时长
|
|
|
+ categoryId: '', // 设备类别id
|
|
|
+ approvalUserId: '', // 审核人id
|
|
|
+ groupId: '', // 巡点检部门code
|
|
|
+ executeIdList: [], // 巡点检人员id
|
|
|
+ executorPhone: '',
|
|
|
+ status: 1, // 状态
|
|
|
+ remark: '', // 备注
|
|
|
+ urgent: '1'
|
|
|
+ };
|
|
|
+ this.ruleIdList = [];
|
|
|
this.isBindPlan = false;
|
|
|
this.planRuleEquiList = [];
|
|
|
// this.matterRulesList = [];
|
|
|
}
|
|
|
},
|
|
|
+ ruleChange(item) {
|
|
|
+ this.ruleObj.name = item.name;
|
|
|
+ this.ruleObj.code = item.code;
|
|
|
+ },
|
|
|
save() {
|
|
|
console.log(this.addForm);
|
|
|
console.log(this.ruleIdList);
|
|
|
this.$refs.addFormRef.validate(async (valid) => {
|
|
|
+ console.log(valid);
|
|
|
if (valid) {
|
|
|
try {
|
|
|
// this.addForm.deviceInfo = selectList.map((item) => {
|
|
|
@@ -636,26 +664,44 @@
|
|
|
? 1
|
|
|
: this.dialogTitle.includes('保养')
|
|
|
? 2
|
|
|
- : 3;
|
|
|
+ : 4;
|
|
|
+ console.log(this.ruleIdList);
|
|
|
this.addForm.isBindPlan = this.isBindPlan;
|
|
|
- let sendMsg = [];
|
|
|
- this.ruleIdList.forEach((ruleItem) => {
|
|
|
- let obj = { ...this.addForm };
|
|
|
- obj.ruleId = ruleItem.ruleId;
|
|
|
- obj.ruleName = ruleItem.ruleName;
|
|
|
- obj.deviceInfo = ruleItem.equipmentList.map((item) => {
|
|
|
- return {
|
|
|
- substanceId: item.position[0].substanceId
|
|
|
- };
|
|
|
- });
|
|
|
- obj.categoryId = ruleItem.categoryId;
|
|
|
- obj.ruleItems = ruleItem.ruleItems;
|
|
|
- sendMsg.push(obj);
|
|
|
+ let planConfigAddOrUpdatePOList = this.ruleIdList.map((item) => {
|
|
|
+ return {
|
|
|
+ id: item.id,
|
|
|
+ ruleId: item.ruleId,
|
|
|
+ ruleName: item.name,
|
|
|
+ ruleCode: item.code,
|
|
|
+ categoryId: item.categoryId,
|
|
|
+ deviceInfo: item.equipmentList.map((item) => {
|
|
|
+ return {
|
|
|
+ substanceId: this.dialogTitle.includes('新增')
|
|
|
+ ? item.position[0].substanceId
|
|
|
+ : item.id,
|
|
|
+ // 前端回显字段
|
|
|
+ id: item.id,
|
|
|
+ codeNumber: item.codeNumber,
|
|
|
+ name: item.name,
|
|
|
+ fixCode: item.fixCode
|
|
|
+ };
|
|
|
+ }),
|
|
|
+ ruleMatters: item.ruleItems
|
|
|
+ };
|
|
|
});
|
|
|
+ this.addForm.ruleName = this.ruleIdList
|
|
|
+ .map((item) => item.name)
|
|
|
+ .join(',');
|
|
|
+ this.addForm.ruleCode = this.ruleIdList
|
|
|
+ .map((item) => item.code)
|
|
|
+ .join(',');
|
|
|
+ this.addForm.planConfigAddOrUpdatePOList =
|
|
|
+ planConfigAddOrUpdatePOList;
|
|
|
+ this.addForm.ruleId = '0'; // 无效后台验证
|
|
|
+ let sendMsg = deepClone(this.addForm);
|
|
|
const type = this.dialogTitle.includes('新增') ? '新增' : '编辑';
|
|
|
let res = await saveOrUpdate(sendMsg);
|
|
|
if (res) {
|
|
|
- this.visible = false;
|
|
|
this.$message.success(type + '成功!');
|
|
|
this.$emit('done');
|
|
|
}
|
|
|
@@ -680,6 +726,9 @@
|
|
|
this.$refs.operationGuideDialog.open(row, index);
|
|
|
}
|
|
|
},
|
|
|
+ deleteEquipment(index) {
|
|
|
+ this.ruleIdList[this.ruleIndex].equipmentList.splice(index, 1);
|
|
|
+ },
|
|
|
deleteItem(index) {
|
|
|
this.ruleIdList[this.ruleIndex].ruleItems.splice(index, 1);
|
|
|
},
|
|
|
@@ -707,10 +756,29 @@
|
|
|
console.log('res----------', res);
|
|
|
this.addForm = res;
|
|
|
this.isBindPlan = res.isBindPlan;
|
|
|
- // this.categoryEquipment(res.categoryLevelId);
|
|
|
+ this.categoryEquipment(res.categoryLevelId);
|
|
|
+ this.ruleIdList = res.planConfigVOList.map((item) => {
|
|
|
+ return {
|
|
|
+ id: item.id,
|
|
|
+ ruleId: item.ruleId,
|
|
|
+ name: item.ruleName,
|
|
|
+ code: item.code,
|
|
|
+ categoryId: item.categoryId,
|
|
|
+ equipmentList: item.deviceInfo.map((item) => {
|
|
|
+ return {
|
|
|
+ name: item.name,
|
|
|
+ id: item.id,
|
|
|
+ fixCode: item.fixCode,
|
|
|
+ codeNumber: item.codeNumber
|
|
|
+ };
|
|
|
+ }),
|
|
|
+ ruleItems: item.ruleMatters
|
|
|
+ };
|
|
|
+ });
|
|
|
+ this.tabsValue = this.ruleIdList[0].ruleId;
|
|
|
const params = { groupId: res.groupId };
|
|
|
this.getUserList(params);
|
|
|
- this._getMatterRulesDetails(res.ruleId);
|
|
|
+ // this._getMatterRulesDetails(res.ruleId);
|
|
|
this.$set(this.addForm, 'code', res.code);
|
|
|
this.$set(this.addForm, 'urgent', JSON.stringify(res.urgent));
|
|
|
this.$set(this.addForm, 'executeIdList', res.executeId.split(','));
|
|
|
@@ -744,7 +812,11 @@
|
|
|
},
|
|
|
// 选择设备
|
|
|
chooseEquipment(data, index, categoryId) {
|
|
|
- this.$set(this.ruleIdList[index], 'equipmentList', data);
|
|
|
+ this.$set(
|
|
|
+ this.ruleIdList[index],
|
|
|
+ 'equipmentList',
|
|
|
+ this.ruleIdList[index].equipmentList.concat(data)
|
|
|
+ );
|
|
|
this.$set(this.ruleIdList[index], 'categoryId', categoryId);
|
|
|
console.log(this.ruleIdList);
|
|
|
},
|
|
|
@@ -758,11 +830,16 @@
|
|
|
const code = await getCode('maintainconfig_code');
|
|
|
this.$set(this.addForm, 'code', code);
|
|
|
}
|
|
|
+ if (tips.includes('量具送检')) {
|
|
|
+ const code = await getCode('quantity_code');
|
|
|
+ this.$set(this.addForm, 'code', code);
|
|
|
+ }
|
|
|
},
|
|
|
//选择部门(搜索)
|
|
|
- searchDeptNodeClick(info) {
|
|
|
+ searchDeptNodeClick(info, data) {
|
|
|
if (info) {
|
|
|
// 根据部门获取人员
|
|
|
+ this.addForm.groupName = data.name;
|
|
|
const params = { groupId: info };
|
|
|
this.getUserList(params);
|
|
|
} else {
|
|
|
@@ -824,6 +901,20 @@
|
|
|
this.ruleNameList = res.list || [];
|
|
|
}
|
|
|
}
|
|
|
+ if (
|
|
|
+ this.dialogTitle === '新增量具送检计划配置' ||
|
|
|
+ this.dialogTitle === '编辑量具送检计划配置'
|
|
|
+ ) {
|
|
|
+ const res = await getRule({
|
|
|
+ status: 1,
|
|
|
+ type: 5,
|
|
|
+ pageNum: 1,
|
|
|
+ size: -1
|
|
|
+ });
|
|
|
+ if (res.list) {
|
|
|
+ this.ruleNameList = res.list || [];
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
downloadFile(file) {
|
|
|
getFile({ objectName: file.storePath }, file.name);
|
|
|
@@ -849,8 +940,8 @@
|
|
|
this.versionList = res.list;
|
|
|
},
|
|
|
|
|
|
- handleAdd(equipmentList, ruleIdListIndex) {
|
|
|
- this.$refs.productRefs.open(equipmentList, ruleIdListIndex);
|
|
|
+ handleAdd(ruleIdList, ruleIdListIndex) {
|
|
|
+ this.$refs.productRefs.open(ruleIdList, ruleIdListIndex);
|
|
|
},
|
|
|
|
|
|
/* 更新visible */
|
|
|
@@ -992,6 +1083,10 @@
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
+ ::v-deep .el-row {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ }
|
|
|
::v-deep .el-tab_box {
|
|
|
display: flex;
|
|
|
margin-top: 10px;
|
|
|
@@ -1051,6 +1146,9 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .el-table::before {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</style>
|