|
@@ -20,7 +20,6 @@
|
|
|
<el-form-item label="计划单号" prop="code">
|
|
<el-form-item label="计划单号" prop="code">
|
|
|
<el-input
|
|
<el-input
|
|
|
v-model="addForm.code"
|
|
v-model="addForm.code"
|
|
|
- size="small"
|
|
|
|
|
placeholder="自动带出"
|
|
placeholder="自动带出"
|
|
|
disabled
|
|
disabled
|
|
|
></el-input>
|
|
></el-input>
|
|
@@ -28,20 +27,12 @@
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
|
<el-form-item label="计划名称" prop="name">
|
|
<el-form-item label="计划名称" prop="name">
|
|
|
- <el-input
|
|
|
|
|
- v-model="addForm.name"
|
|
|
|
|
- size="small"
|
|
|
|
|
- placeholder="请输入"
|
|
|
|
|
- ></el-input>
|
|
|
|
|
|
|
+ <el-input v-model="addForm.name" placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
|
<el-form-item label="自动派单" prop="autoOrder">
|
|
<el-form-item label="自动派单" prop="autoOrder">
|
|
|
- <el-select
|
|
|
|
|
- v-model="addForm.autoOrder"
|
|
|
|
|
- size="small"
|
|
|
|
|
- style="width: 100%"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <el-select v-model="addForm.autoOrder" style="width: 100%">
|
|
|
<el-option :value="1" label="是"></el-option>
|
|
<el-option :value="1" label="是"></el-option>
|
|
|
<el-option :value="0" label="否"></el-option>
|
|
<el-option :value="0" label="否"></el-option>
|
|
|
</el-select>
|
|
</el-select>
|
|
@@ -51,7 +42,6 @@
|
|
|
<el-form-item label="规则名称" prop="ruleId">
|
|
<el-form-item label="规则名称" prop="ruleId">
|
|
|
<el-select
|
|
<el-select
|
|
|
v-model="addForm.ruleId"
|
|
v-model="addForm.ruleId"
|
|
|
- size="small"
|
|
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
@change="handleRuleNameChange"
|
|
@change="handleRuleNameChange"
|
|
|
>
|
|
>
|
|
@@ -68,11 +58,7 @@
|
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
|
<el-form-item label="计划完成时长" prop="duration">
|
|
<el-form-item label="计划完成时长" prop="duration">
|
|
|
<div style="display: flex">
|
|
<div style="display: flex">
|
|
|
- <el-input
|
|
|
|
|
- v-model="addForm.duration"
|
|
|
|
|
- size="small"
|
|
|
|
|
- placeholder="请输入"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <el-input v-model="addForm.duration" placeholder="请输入">
|
|
|
<template #suffix>分钟</template>
|
|
<template #suffix>分钟</template>
|
|
|
</el-input>
|
|
</el-input>
|
|
|
</div>
|
|
</div>
|
|
@@ -81,7 +67,6 @@
|
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
|
<el-form-item label="设备分类" prop="categoryLevelId">
|
|
<el-form-item label="设备分类" prop="categoryLevelId">
|
|
|
<equipmentSelect
|
|
<equipmentSelect
|
|
|
- size="small"
|
|
|
|
|
v-model="addForm.categoryLevelId"
|
|
v-model="addForm.categoryLevelId"
|
|
|
@changeNode="chooseClassify"
|
|
@changeNode="chooseClassify"
|
|
|
@setRootId="getRootId"
|
|
@setRootId="getRootId"
|
|
@@ -92,7 +77,6 @@
|
|
|
<el-form-item label="设备类别" prop="categoryId">
|
|
<el-form-item label="设备类别" prop="categoryId">
|
|
|
<el-select
|
|
<el-select
|
|
|
v-model="addForm.categoryId"
|
|
v-model="addForm.categoryId"
|
|
|
- size="small"
|
|
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
filterable
|
|
filterable
|
|
|
>
|
|
>
|
|
@@ -108,13 +92,12 @@
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
|
<el-form-item label="审核人" prop="verifyUserId">
|
|
<el-form-item label="审核人" prop="verifyUserId">
|
|
|
- <personSelect v-model="addForm.verifyUserId" size="small" />
|
|
|
|
|
|
|
+ <personSelect v-model="addForm.verifyUserId" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="8" v-if="addForm.autoOrder">
|
|
<el-col :span="8" v-if="addForm.autoOrder">
|
|
|
<el-form-item :label="formLabel + '部门'" prop="groupId">
|
|
<el-form-item :label="formLabel + '部门'" prop="groupId">
|
|
|
<deptSelect
|
|
<deptSelect
|
|
|
- size="small"
|
|
|
|
|
v-model="addForm.groupId"
|
|
v-model="addForm.groupId"
|
|
|
@change="searchDeptNodeClick"
|
|
@change="searchDeptNodeClick"
|
|
|
/>
|
|
/>
|
|
@@ -129,32 +112,12 @@
|
|
|
]"
|
|
]"
|
|
|
>
|
|
>
|
|
|
<personSelect
|
|
<personSelect
|
|
|
- size="small"
|
|
|
|
|
ref="executorRef"
|
|
ref="executorRef"
|
|
|
v-model="addForm.executorId"
|
|
v-model="addForm.executorId"
|
|
|
:init="false"
|
|
:init="false"
|
|
|
/>
|
|
/>
|
|
|
- <!-- <el-select
|
|
|
|
|
- v-model="addForm.executorId"
|
|
|
|
|
- size="small"
|
|
|
|
|
- style="width: 100%"
|
|
|
|
|
- >
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="item in executorList"
|
|
|
|
|
- :key="item.userId"
|
|
|
|
|
- :value="item.userId"
|
|
|
|
|
- :label="item.trueName"
|
|
|
|
|
- @click.native="
|
|
|
|
|
- {
|
|
|
|
|
- addForm.executorName = item.trueName;
|
|
|
|
|
- addForm.executorPhone = item.mobile;
|
|
|
|
|
- }
|
|
|
|
|
- "
|
|
|
|
|
- ></el-option>
|
|
|
|
|
- </el-select> -->
|
|
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
- <!-- :validate-event="false" -->
|
|
|
|
|
<el-col :span="24">
|
|
<el-col :span="24">
|
|
|
<el-form-item label="备注" prop="remark">
|
|
<el-form-item label="备注" prop="remark">
|
|
|
<el-input
|
|
<el-input
|
|
@@ -163,7 +126,6 @@
|
|
|
v-model="addForm.remark"
|
|
v-model="addForm.remark"
|
|
|
:rows="2"
|
|
:rows="2"
|
|
|
placeholder="请详细说明"
|
|
placeholder="请详细说明"
|
|
|
- size="small"
|
|
|
|
|
></el-input>
|
|
></el-input>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
@@ -269,7 +231,6 @@
|
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
|
<el-input
|
|
<el-input
|
|
|
v-model.number="scope.row.num"
|
|
v-model.number="scope.row.num"
|
|
|
- size="small"
|
|
|
|
|
oninput="value=value.replace(/[^\d]/g,'')"
|
|
oninput="value=value.replace(/[^\d]/g,'')"
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
placeholder="输入数量"
|
|
placeholder="输入数量"
|
|
@@ -310,8 +271,8 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div slot="footer" class="dialog_footer">
|
|
<div slot="footer" class="dialog_footer">
|
|
|
- <el-button size="small" type="primary" @click="submit">提交</el-button>
|
|
|
|
|
- <el-button size="small" @click="handleClose">关闭</el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" @click="submit">提交</el-button>
|
|
|
|
|
+ <el-button @click="handleClose">关闭</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
<RuleItemSelection
|
|
<RuleItemSelection
|
|
|
ref="ruleItemSelectionRef"
|
|
ref="ruleItemSelectionRef"
|
|
@@ -342,6 +303,7 @@
|
|
|
import { getDetail, getCode } from '@/api/ruleManagement/matter';
|
|
import { getDetail, getCode } from '@/api/ruleManagement/matter';
|
|
|
import { saveOrUpdate } from '@/api/maintenance/patrol_maintenance';
|
|
import { saveOrUpdate } from '@/api/maintenance/patrol_maintenance';
|
|
|
import { deepClone } from '@/utils';
|
|
import { deepClone } from '@/utils';
|
|
|
|
|
+ import { getById } from '@/api/maintenance/patrol_maintenance';
|
|
|
export default {
|
|
export default {
|
|
|
name: 'addPatrolPlanDialog',
|
|
name: 'addPatrolPlanDialog',
|
|
|
components: {
|
|
components: {
|
|
@@ -352,14 +314,7 @@
|
|
|
RuleItemSelection,
|
|
RuleItemSelection,
|
|
|
AddSpareDialog
|
|
AddSpareDialog
|
|
|
},
|
|
},
|
|
|
- props: {
|
|
|
|
|
- dialogTitle: {
|
|
|
|
|
- type: String,
|
|
|
|
|
- default: () => {
|
|
|
|
|
- return '新增巡点检计划';
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ props: {},
|
|
|
data () {
|
|
data () {
|
|
|
return {
|
|
return {
|
|
|
defaultProps: {
|
|
defaultProps: {
|
|
@@ -398,13 +353,7 @@
|
|
|
executorId: '', // 巡点检人员id
|
|
executorId: '', // 巡点检人员id
|
|
|
remark: '', // 备注
|
|
remark: '', // 备注
|
|
|
categoryId: '', //
|
|
categoryId: '', //
|
|
|
- planType: 'PATROL', // 计划规则类型 巡点检: 'PATROL', 保养: 'MAINTAIN', 盘点: 'INVENTORY'
|
|
|
|
|
- // 计划规则设备列表
|
|
|
|
|
- sparePartsApply: {
|
|
|
|
|
- sourceType: 1,
|
|
|
|
|
- status: 0,
|
|
|
|
|
- sparePartsApplyDetailList: []
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ planType: 'PATROL' // 计划规则类型 巡点检: 'PATROL', 保养: 'MAINTAIN', 盘点: 'INVENTORY'
|
|
|
},
|
|
},
|
|
|
// 计划规则设备列表
|
|
// 计划规则设备列表
|
|
|
planDeviceList: [
|
|
planDeviceList: [
|
|
@@ -446,33 +395,48 @@
|
|
|
ruleNameList: [],
|
|
ruleNameList: [],
|
|
|
equipmentList: [],
|
|
equipmentList: [],
|
|
|
currentNode: null,
|
|
currentNode: null,
|
|
|
- rootId: null
|
|
|
|
|
|
|
+ rootId: null,
|
|
|
|
|
+ dialogTitle: '新增保养计划配置'
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
computed: {},
|
|
computed: {},
|
|
|
- watch: {
|
|
|
|
|
- addPatrolPlanDialog (val) {
|
|
|
|
|
- if (val) {
|
|
|
|
|
- this.formLabel = this.dialogTitle.includes('巡点检')
|
|
|
|
|
- ? '巡点检'
|
|
|
|
|
- : this.dialogTitle.includes('保养')
|
|
|
|
|
- ? '保养'
|
|
|
|
|
- : '盘点';
|
|
|
|
|
- const planRuleTypeObj = {
|
|
|
|
|
- 巡点检: 'PATROL',
|
|
|
|
|
- 保养: 'MAINTAIN',
|
|
|
|
|
- 盘点: 'INVENTORY'
|
|
|
|
|
- };
|
|
|
|
|
- this.addForm.planType = planRuleTypeObj[this.formLabel];
|
|
|
|
|
|
|
+ async created () {},
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ open (title, row) {
|
|
|
|
|
+ this.dialogTitle = title;
|
|
|
|
|
+ this.formLabel = this.dialogTitle.includes('巡点检')
|
|
|
|
|
+ ? '巡点检'
|
|
|
|
|
+ : this.dialogTitle.includes('保养')
|
|
|
|
|
+ ? '保养'
|
|
|
|
|
+ : '盘点';
|
|
|
|
|
+ const planRuleTypeObj = {
|
|
|
|
|
+ 巡点检: 'PATROL',
|
|
|
|
|
+ 保养: 'MAINTAIN',
|
|
|
|
|
+ 盘点: 'INVENTORY'
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- // 获取规则名称
|
|
|
|
|
- this._getRuleNameList();
|
|
|
|
|
|
|
+ if (row?.id) {
|
|
|
|
|
+ // 编辑
|
|
|
|
|
+ this.addForm.id = row.id;
|
|
|
|
|
+ this.getInfo(this.addForm.id);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 新增
|
|
|
|
|
+ this.addForm.planType = planRuleTypeObj[this.formLabel];
|
|
|
this.getOrderCode(this.dialogTitle);
|
|
this.getOrderCode(this.dialogTitle);
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- async created () {},
|
|
|
|
|
- methods: {
|
|
|
|
|
|
|
+ // 获取规则名称
|
|
|
|
|
+ this._getRuleNameList();
|
|
|
|
|
+ this.addPatrolPlanDialog = true;
|
|
|
|
|
+ },
|
|
|
|
|
+ async getInfo (id) {
|
|
|
|
|
+ const res = await getById(id);
|
|
|
|
|
+
|
|
|
|
|
+ const data = res.data;
|
|
|
|
|
+
|
|
|
|
|
+ this.addForm = data;
|
|
|
|
|
+
|
|
|
|
|
+ this._getEquipmentList();
|
|
|
|
|
+ },
|
|
|
// 获取计划配置单号
|
|
// 获取计划配置单号
|
|
|
async getOrderCode (tips) {
|
|
async getOrderCode (tips) {
|
|
|
if (tips.includes('巡点检')) {
|
|
if (tips.includes('巡点检')) {
|
|
@@ -480,7 +444,7 @@
|
|
|
this.$set(this.addForm, 'code', data);
|
|
this.$set(this.addForm, 'code', data);
|
|
|
}
|
|
}
|
|
|
if (tips.includes('保养')) {
|
|
if (tips.includes('保养')) {
|
|
|
- const code = await getCode('maintainconfig_code');
|
|
|
|
|
|
|
+ const code = await getCode('maintenance_code');
|
|
|
this.$set(this.addForm, 'code', code);
|
|
this.$set(this.addForm, 'code', code);
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
@@ -521,17 +485,14 @@
|
|
|
groupId: '', // 巡点检部门code
|
|
groupId: '', // 巡点检部门code
|
|
|
executorId: '', // 巡点检人员id
|
|
executorId: '', // 巡点检人员id
|
|
|
remark: '', // 备注
|
|
remark: '', // 备注
|
|
|
- planType: 'PATROL', // 计划规则类型 巡点检: 'PATROL', 保养: 'MAINTAIN', 盘点: 'INVENTORY'
|
|
|
|
|
-
|
|
|
|
|
- sparePartsApply: {
|
|
|
|
|
- sourceType: 1,
|
|
|
|
|
- status: 0,
|
|
|
|
|
- sparePartsApplyDetailList: []
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ planType: 'PATROL' // 计划规则类型 巡点检: 'PATROL', 保养: 'MAINTAIN', 盘点: 'INVENTORY'
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
getRootId (val) {
|
|
getRootId (val) {
|
|
|
this.rootId = val;
|
|
this.rootId = val;
|
|
|
|
|
+ if (this.addForm?.id) {
|
|
|
|
|
+ this._getEquipmentList();
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
// 设备分类选择
|
|
// 设备分类选择
|
|
|
async handleEquipmentClassChange (item) {
|
|
async handleEquipmentClassChange (item) {
|
|
@@ -553,10 +514,13 @@
|
|
|
},
|
|
},
|
|
|
// 封装 - 获取设备分类列表
|
|
// 封装 - 获取设备分类列表
|
|
|
async _getEquipmentList (val) {
|
|
async _getEquipmentList (val) {
|
|
|
|
|
+ if (!((val || this.addForm.categoryId) && this.rootId)) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
const params = {
|
|
const params = {
|
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
|
size: -1,
|
|
size: -1,
|
|
|
- categoryId: val,
|
|
|
|
|
|
|
+ categoryId: val || this.addForm.categoryId,
|
|
|
rootCategoryLevelId: this.rootId
|
|
rootCategoryLevelId: this.rootId
|
|
|
};
|
|
};
|
|
|
try {
|
|
try {
|
|
@@ -583,17 +547,23 @@
|
|
|
this.planDeviceList[0]['equiLocationCode'] = equiLocationCode;
|
|
this.planDeviceList[0]['equiLocationCode'] = equiLocationCode;
|
|
|
|
|
|
|
|
// 对比详情返回的数据和设备分类下面所有的设备列表,将sparePart同步过去
|
|
// 对比详情返回的数据和设备分类下面所有的设备列表,将sparePart同步过去
|
|
|
- if (this.addForm.deviceInfo) {
|
|
|
|
|
|
|
+ if (this.addForm.planDeviceList) {
|
|
|
for (let i = 0; i < this.planDeviceList.length; i++) {
|
|
for (let i = 0; i < this.planDeviceList.length; i++) {
|
|
|
- for (let j = 0; j < this.addForm.deviceInfo.length; j++) {
|
|
|
|
|
|
|
+ for (let j = 0; j < this.addForm.planDeviceList.length; j++) {
|
|
|
if (
|
|
if (
|
|
|
- this.planDeviceList[i].code ===
|
|
|
|
|
- this.addForm.deviceInfo[j].substanceCode
|
|
|
|
|
|
|
+ this.planDeviceList[i].id ===
|
|
|
|
|
+ this.addForm.planDeviceList[j].deviceId
|
|
|
) {
|
|
) {
|
|
|
|
|
+ this.$refs.equiListTree.setChecked(
|
|
|
|
|
+ this.planDeviceList[i].id,
|
|
|
|
|
+ true
|
|
|
|
|
+ );
|
|
|
|
|
+ this.planDeviceList[i]['workItems'] =
|
|
|
|
|
+ this.addForm.planDeviceList[j]['workItems'];
|
|
|
this.planDeviceList[i]['sparePart'] =
|
|
this.planDeviceList[i]['sparePart'] =
|
|
|
- this.addForm.deviceInfo[j]['sparePart'];
|
|
|
|
|
- // this.$set(this.planDeviceList[i],'totalCost',this.addForm.deviceInfo[j]['totalCost'])
|
|
|
|
|
- // this.planDeviceList[i]['totalCost'] = this.addForm.deviceInfo[j]['totalCost']
|
|
|
|
|
|
|
+ this.addForm.planDeviceList[j]['sparePart'];
|
|
|
|
|
+ // this.$set(this.planDeviceList[i],'totalCost',this.addForm.planDeviceList[j]['totalCost'])
|
|
|
|
|
+ // this.planDeviceList[i]['totalCost'] = this.addForm.planDeviceList[j]['totalCost']
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -613,15 +583,10 @@
|
|
|
},
|
|
},
|
|
|
// 封装 - 获取设备位置名称和code方法
|
|
// 封装 - 获取设备位置名称和code方法
|
|
|
getEquiLocation (data) {
|
|
getEquiLocation (data) {
|
|
|
- // 设备位置名称
|
|
|
|
|
- const path = data.position[0].path;
|
|
|
|
|
- const arry = [];
|
|
|
|
|
- path.map((item) => {
|
|
|
|
|
- arry.push(item.name);
|
|
|
|
|
- });
|
|
|
|
|
- const equiLocation = arry.join('/');
|
|
|
|
|
// 设备位置编码
|
|
// 设备位置编码
|
|
|
const equiLocationCode = data.position[0].pathIds;
|
|
const equiLocationCode = data.position[0].pathIds;
|
|
|
|
|
+ // 设备位置名称
|
|
|
|
|
+ const equiLocation = data.position[0].pathName;
|
|
|
return { equiLocation, equiLocationCode };
|
|
return { equiLocation, equiLocationCode };
|
|
|
},
|
|
},
|
|
|
// 设备列表树点击
|
|
// 设备列表树点击
|