Merge pull request 'projects/mesxc-dy' (#220) from projects/mesxc-dy into projects/mesxc-test

Reviewed-on: #220
This commit is contained in:
朱菊兰 2024-02-29 16:45:58 +08:00
commit 933a4e45a6
21 changed files with 275 additions and 148 deletions

View File

@ -1,7 +1,7 @@
### ###
# @Author: Do not edit # @Author: Do not edit
# @Date: 2023-08-29 09:40:39 # @Date: 2023-08-29 09:40:39
# @LastEditTime: 2024-02-26 08:45:43 # @LastEditTime: 2024-02-29 15:53:50
# @LastEditors: DY # @LastEditors: DY
# @Description: # @Description:
### ###

View File

@ -153,3 +153,12 @@ export function createConCoreWOr(data) {
data: data data: data
}) })
} }
// 修改分配产量
export function updateConCoreWOr(data) {
return request({
url: '/base/core-order-con-work-order/update',
method: 'put',
data: data
})
}

View File

@ -1,7 +1,7 @@
/* /*
* @Author: Do not edit * @Author: Do not edit
* @Date: 2023-11-08 15:56:52 * @Date: 2023-11-08 15:56:52
* @LastEditTime: 2024-02-26 09:29:53 * @LastEditTime: 2024-02-28 18:16:56
* @LastEditors: DY * @LastEditors: DY
* @Description: * @Description:
*/ */
@ -52,6 +52,17 @@ export function exportCheckLogExcel(query) {
}) })
} }
// 导出设备巡检单记录
export function exportCheckOrderExcel(query) {
return request({
url: '/base/equipment-check-order/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 根据设备获得所有巡检配置列表 // 根据设备获得所有巡检配置列表
export function getcheckConfigByEqList(query) { export function getcheckConfigByEqList(query) {
return request({ return request({

View File

@ -83,20 +83,14 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="工段排序" label="工段排序"
prop="sort" prop="sort">
:rules="[ <el-input-number
{
type: 'number',
trigger: 'change',
message: '请输入正确的数字类型',
transform: (val) => Number(val),
},
]">
<el-input
v-model="dataForm.sort" v-model="dataForm.sort"
clearable clearable
controls-position="right"
@change="$emit('update', dataForm)" @change="$emit('update', dataForm)"
placeholder="请输入工段排序" /> placeholder="请输入工段排序"
style="width: 100%" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2024-02-27 15:38:04 * @LastEditTime: 2024-02-29 15:01:25
* @Description: * @Description:
--> -->
<template> <template>
@ -325,7 +325,7 @@ export default {
init(row, isdetail) { init(row, isdetail) {
this.initData(); this.initData();
this.isdetail = isdetail || false; this.isdetail = isdetail || false;
this.dataForm.id = row.id || undefined; this.dataForm.id = row?.id || undefined;
this.isedit = row?.id && row?.externalCode ? true : false; this.isedit = row?.id && row?.externalCode ? true : false;
console.log('你好', this.isedit) console.log('你好', this.isedit)
this.visible = true; this.visible = true;

View File

@ -253,7 +253,9 @@ export default {
if (this.dataForm.priority !== undefined) { if (this.dataForm.priority !== undefined) {
this.dataForm.priority = String(this.dataForm.priority) this.dataForm.priority = String(this.dataForm.priority)
} }
this.dataForm.priority if (this.dataForm.roomNameDict !== undefined) {
this.dataForm.roomNameDict = String(this.dataForm.roomNameDict)
}
}); });
} else { } else {
if (this.urlOptions.isGetCode) { if (this.urlOptions.isGetCode) {

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2023-11-16 09:14:35 * @LastEditTime: 2024-02-29 10:01:52
* @Description: * @Description:
--> -->
<template> <template>
@ -41,12 +41,12 @@
<el-table-column prop="priority" label="优先级" /> <el-table-column prop="priority" label="优先级" />
<el-table-column prop="planAssignmentQuantity" label="计划分配数量" > <el-table-column prop="planAssignmentQuantity" label="计划分配数量" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.planAssignmentQuantity" :disabled="scope.row.actualAssignmentQuantity"></el-input> <el-input v-model="scope.row.planAssignmentQuantity" :disabled="scope.row.isallocation"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="actualAssignmentQuantity" label="实际分配数量"> <el-table-column prop="actualAssignmentQuantity" label="实际分配数量">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.actualAssignmentQuantity" :disabled="scope.row.actualAssignmentQuantity"></el-input> <el-input v-model="scope.row.actualAssignmentQuantity" :disabled="scope.row.isallocation"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
@ -104,7 +104,7 @@
<script> <script>
import basicAdd from '../../core/mixins/basic-add'; import basicAdd from '../../core/mixins/basic-add';
import { getConOrderList, createConCoreWOr, getCoreWO } from '@/api/base/coreWorkOrder'; import { getConOrderList, updateConCoreWOr, getCoreWO } from '@/api/base/coreWorkOrder';
import SmallTitle from '../material/SmallTitle'; import SmallTitle from '../material/SmallTitle';
// import { parseTime } from '../../core/mixins/code-filter'; // import { parseTime } from '../../core/mixins/code-filter';
// import attrAdd from './attr-add'; // import attrAdd from './attr-add';
@ -159,8 +159,8 @@ export default {
// }); // });
// return; // return;
} }
// //
createConCoreWOr({ updateConCoreWOr({
...row, ...row,
workOrderId: this.dataForm.id workOrderId: this.dataForm.id
}).then((response) => { }).then((response) => {
@ -173,16 +173,17 @@ export default {
} }
}, },
getList() { getList() {
// Bom //
getConOrderList({ getConOrderList({
...this.listQuery, ...this.listQuery,
workOrderId: this.dataForm.id workOrderId: this.dataForm.id
}).then((response) => { }).then((response) => {
this.tableData = response.data.map(item => { this.tableData = response.data.map(item => {
item.isEdit = false item.isEdit = false
item.isallocation = item.actualAssignmentQuantity ? true : false
return item return item
}); });
this.listQuery.total = response.data.total; this.listQuery.total = response.data.length;
}); });
}, },
// //

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2023-12-26 16:59:25 * @LastEditTime: 2024-02-29 15:35:02
* @Description: * @Description:
--> -->
<template> <template>
@ -45,7 +45,7 @@
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
<div class="blodTip">工单来源</div> <div class="blodTip">工单来源</div>
<div class="lightTip">{{ dataForm.triggerOrigin === 1 ? 'MES' : dataForm.triggerOrigin === 2 ? 'ERP' : ''}}</div> <div class="lightTip">{{ dataForm.triggerOrigin === 1 ? 'MES-手动' : dataForm.triggerOrigin === 2 ? 'MES-订单下发' : 'ERP'}}</div>
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
<div class="blodTip">所属订单</div> <div class="blodTip">所属订单</div>
@ -218,7 +218,7 @@
<script> <script>
// import basicAdd from '../../core/mixins/basic-add'; // import basicAdd from '../../core/mixins/basic-add';
import { getCoreWO, getMaterialBomPage, getConOrderList, getCoreWOListById } from "@/api/base/coreWorkOrder"; import { getCoreWO, getCoreWOMaPage, getConOrderList, getCoreWOListById } from "@/api/base/coreWorkOrder";
// import { orderList } from "@/api/base/orderManage"; // import { orderList } from "@/api/base/orderManage";
import { getProcessFlowList } from '@/api/base/orderManage' import { getProcessFlowList } from '@/api/base/orderManage'
import SmallTitle from './SmallTitle'; import SmallTitle from './SmallTitle';
@ -261,8 +261,9 @@ const tableProps = [
const tableProps1 = [ const tableProps1 = [
{ {
prop: 'materialName', prop: 'material',
label: '物料名称' label: '物料名称',
filter: publicFormatter('material')
}, },
{ {
prop: 'unit', prop: 'unit',
@ -270,7 +271,7 @@ const tableProps1 = [
filter: publicFormatter('unit_dict') filter: publicFormatter('unit_dict')
}, },
{ {
prop: 'num', prop: 'remaining',
label: '剩余生产预计消耗' label: '剩余生产预计消耗'
}, },
]; ];
@ -431,11 +432,17 @@ export default {
// this.listQuery.total = response.data.total; // this.listQuery.total = response.data.total;
}); });
// 使 // 使
if (this.dataForm.planProductId) { console.log()
getMaterialBomPage({ if (this.dataForm.id) {
productId: this.dataForm.planProductId, getCoreWOMaPage({
workOrderId: this.dataForm.id,
pageNo: 1,
pageSize: 100
}).then((response) => { }).then((response) => {
this.materialList = response.data; this.materialList = response.data.records.map((item) => {
item.remaining = item?.num * this.dataForm.remainingQuantity || 0
return item
});
// this.listQuery.total = response.data.length; // this.listQuery.total = response.data.length;
}); });
} }

View File

@ -197,17 +197,7 @@ export default {
{ {
name: 'status', name: 'status',
type: 'equal', type: 'equal',
value: 2 value: 1
},
{
name: 'status',
type: 'equal',
value: 3
},
{
name: 'status',
type: 'equal',
value: 4
} }
] ]
} }
@ -241,6 +231,11 @@ export default {
name: 'status', name: 'status',
type: 'equal', type: 'equal',
value: 2 value: 2
},
{
name: 'status',
type: 'equal',
value: 3
} }
] ]
} }
@ -266,23 +261,23 @@ export default {
] ]
} }
} }
: undefined,
this.$auth.hasPermi(`base:core-work-order:delete`)
? {
type: 'delete',
btnName: '删除',
showParam: {
type: '|',
data: [
{
name: 'status',
type: 'equal',
value: 1
}
]
}
}
: undefined : undefined
// this.$auth.hasPermi(`base:core-work-order:delete`)
// ? {
// type: 'delete',
// btnName: '',
// showParam: {
// type: '|',
// data: [
// {
// name: 'status',
// type: 'equal',
// value: 1
// }
// ]
// }
// }
// : undefined
].filter((v)=>v), ].filter((v)=>v),
tableData: [], tableData: [],
formConfig: [ formConfig: [

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2024-02-28 16:05:10 * @LastEditTime: 2024-02-29 14:59:28
* @Description: * @Description:
--> -->
<template> <template>
@ -57,8 +57,8 @@
<el-option <el-option
v-for="d in groupOptions" v-for="d in groupOptions"
:key="d.id" :key="d.id"
:label="d.name" :label="d.label"
:value="d.id" /> :value="d.label" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -72,7 +72,8 @@
multiple multiple
clearable clearable
:disabled="isdetail" :disabled="isdetail"
filterable> filterable
style="width: 100%">
<el-option <el-option
v-for="opt in inspectorOptions" v-for="opt in inspectorOptions"
:key="opt.value" :key="opt.value"
@ -165,6 +166,7 @@ import attrAdd from './attr-add';
import {DICT_TYPE, getDictDatas} from "@/utils/dict"; import {DICT_TYPE, getDictDatas} from "@/utils/dict";
import { getCoreDepartmentList } from "@/api/base/coreDepartment"; import { getCoreDepartmentList } from "@/api/base/coreDepartment";
import { groupClassesListAll } from '@/api/monitoring/teamProduction' import { groupClassesListAll } from '@/api/monitoring/teamProduction'
import { getDictDataLabel } from '@/utils/dict';
const tableBtn = [ const tableBtn = [
{ {
@ -245,8 +247,8 @@ export default {
id: undefined, id: undefined,
name: '', name: '',
departmentId: undefined, departmentId: undefined,
groupClass: undefined, groupClass: [],
checkPerson: undefined, checkPerson: [],
planCheckTime: undefined planCheckTime: undefined
}, },
detList: [], detList: [],
@ -270,7 +272,10 @@ export default {
async getDict() { async getDict() {
// //
const res = await groupClassesListAll(); const res = await groupClassesListAll();
this.groupOptions = res.data || []; this.groupOptions = res.data.map((item) => {
item.label = item.name + ' - ' + getDictDataLabel('workshop', item.roomNameDict)
return item
}) || [];
// //
const res1 = await getCoreDepartmentList(); const res1 = await getCoreDepartmentList();
this.departmentOptions = res1.data || [] this.departmentOptions = res1.data || []
@ -317,6 +322,7 @@ export default {
initData() { initData() {
this.detList.splice(0); this.detList.splice(0);
this.listQuery.total = 0; this.listQuery.total = 0;
this.isshowConfirm = false;
}, },
handleClick(raw) { handleClick(raw) {
if (raw.type === 'delete') { if (raw.type === 'delete') {
@ -376,6 +382,16 @@ export default {
// //
this.urlOptions.infoURL(id).then(response => { this.urlOptions.infoURL(id).then(response => {
this.dataForm = response.data this.dataForm = response.data
if (this.dataForm.groupClass && this.dataForm.groupClass !== ''){
this.dataForm.groupClass = response.data?.groupClass.split(',')
} else {
this.dataForm.groupClass = []
}
if (this.dataForm.checkPerson && this.dataForm.checkPerson !== '') {
this.dataForm.checkPerson = response.data?.checkPerson.split(',')
} else {
this.dataForm.checkPerson = []
}
}); });
// //
this.getList(); this.getList();

View File

@ -63,7 +63,7 @@ import moment from 'moment';
import basicPageMixin from '@/mixins/lb/basicPageMixin'; import basicPageMixin from '@/mixins/lb/basicPageMixin';
import addRecord from './addRecord.vue'; import addRecord from './addRecord.vue';
import AddContent from './addContent.vue'; import AddContent from './addContent.vue';
import { exportCheckLogExcel, deleteEqCheckLog } from '@/api/equipment/base/inspection/record' import { exportCheckOrderExcel, deleteEqCheckLog } from '@/api/equipment/base/inspection/record'
import { parseTime } from '../../../../core/mixins/code-filter'; import { parseTime } from '../../../../core/mixins/code-filter';
// const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); // const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss');
@ -130,19 +130,25 @@ export default {
// { prop: 'responsible', label: '' }, // { prop: 'responsible', label: '' },
], ],
searchBarFormConfig: [ searchBarFormConfig: [
// {
// type: 'select',
// label: '',
// placeholder: '',
// param: 'name',
// filterable: true
// },
{ {
type: 'select', type: 'input',
label: '巡检单名称', label: '巡检单名称',
placeholder: '请选择巡检单', placeholder: '请输入巡检单',
param: 'name', param: 'name'
filterable: true
}, },
// //
{ {
type: 'datePicker', type: 'datePicker',
label: '巡检时间', label: '巡检时间',
dateType: 'daterange', // datetimerange dateType: 'datetimerange', // datetimerange
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-dd HH:mm:ss', valueFormat: 'yyyy-MM-dd HH:mm:ss',
rangeSeparator: '-', rangeSeparator: '-',
startPlaceholder: '开始日期', startPlaceholder: '开始日期',
@ -257,7 +263,12 @@ export default {
}; };
}, },
created() { created() {
this.initSearchBar(); let end = moment().format('YYYY-MM-DD 08:00:00')
const current = new Date()
let start = parseTime(new Date(current.getFullYear(), current.getMonth(), current.getDate() - 3, 8, 0, 0))
this.searchBarFormConfig[1].defaultSelect = [start, end]
this.queryParams.actualCheckTime = [start, end]
// this.initSearchBar();
this.getList(); this.getList();
}, },
methods: { methods: {
@ -272,22 +283,23 @@ export default {
break; break;
} }
}, },
initSearchBar() { // initSearchBar() {
this.http('/base/core-equipment/page', 'get', { // this.http('/base/equipment-check-order/page', 'get', {
special: false, // special: false,
pageNo: 1, // pageNo: 1,
pageSize: 99, // pageSize: 99,
}).then(({ data }) => { // status: 2
this.$set( // }).then(({ data }) => {
this.searchBarFormConfig[0], // this.$set(
'selectOptions', // this.searchBarFormConfig[0],
(data?.list || []).map((item) => ({ // 'selectOptions',
name: item.name, // (data?.list || []).map((item) => ({
id: item.id, // name: item.name,
})) // id: item.id,
); // }))
}); // );
}, // });
// },
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@ -419,7 +431,7 @@ export default {
.confirm('是否确认导出所有设备巡检记录?') .confirm('是否确认导出所有设备巡检记录?')
.then(() => { .then(() => {
this.exportLoading = true; this.exportLoading = true;
return exportCheckLogExcel(params); return exportCheckOrderExcel(params);
}) })
.then((response) => { .then((response) => {
this.$download.excel(response, '设备巡检记录.xls'); this.$download.excel(response, '设备巡检记录.xls');

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2024-02-24 20:50:51 * @LastEditTime: 2024-02-29 14:58:37
* @Description: * @Description:
--> -->
<template> <template>
@ -53,6 +53,7 @@
type="datetime" type="datetime"
:placeholder="`请选择计划巡检时间`" :placeholder="`请选择计划巡检时间`"
value-format="timestamp" value-format="timestamp"
:default-time="'8:00:00'"
style="width: 100%" /> style="width: 100%" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -77,8 +78,8 @@
<el-option <el-option
v-for="d in groupOptions" v-for="d in groupOptions"
:key="d.id" :key="d.id"
:label="d.name" :label="d.label"
:value="d.id" /> :value="d.label" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -98,6 +99,7 @@ import basicAdd from '../../../../core/mixins/basic-add';
import { getCheckOrder, getOrderCode, createCheckOrder, updateCheckOrder } from "@/api/equipment/base/inspection/settings"; import { getCheckOrder, getOrderCode, createCheckOrder, updateCheckOrder } from "@/api/equipment/base/inspection/settings";
import { getCoreDepartmentList } from "@/api/base/coreDepartment"; import { getCoreDepartmentList } from "@/api/base/coreDepartment";
import { groupClassesListAll } from '@/api/monitoring/teamProduction' import { groupClassesListAll } from '@/api/monitoring/teamProduction'
import { getDictDataLabel } from '@/utils/dict';
// import { getEquipmentAll } from '@/api/base/equipment' // import { getEquipmentAll } from '@/api/base/equipment'
export default { export default {
@ -139,16 +141,48 @@ export default {
} }
}; };
}, },
created() {
const currenttime = new Date()
this.dataForm.planCheckTime = new Date(currenttime.getFullYear(), currenttime.getMonth(), currenttime.getDate(), 8, 0, 0).getTime()
console.log('11', this.dataForm.planCheckTime, currenttime)
},
mounted() { mounted() {
this.getDict() this.getDict()
}, },
methods: { methods: {
init(id) {
this.dataForm.id = id || "";
this.visible = true;
if (this.urlOptions.getOption) {
this.getArr()
}
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
if (this.dataForm.id) {
this.urlOptions.infoURL(id).then(response => {
this.dataForm = response.data
if (response.data.groupClass === '') {
this.dataForm.groupClass = []
} else {
this.dataForm.groupClass = response.data?.groupClass.split(',') || undefined
}
});
} else {
if (this.urlOptions.isGetCode) {
this.getCode()
}
}
});
},
async getDict() { async getDict() {
// //
const res = await getCoreDepartmentList(); const res = await getCoreDepartmentList();
this.departmentOptions = res.data || []; this.departmentOptions = res.data || [];
const res1 = await groupClassesListAll(); const res1 = await groupClassesListAll();
this.groupOptions = res1.data || []; this.groupOptions = res1.data.map((item) => {
item.label = item.name + ' - ' + getDictDataLabel('workshop', item.roomNameDict)
return item
}) || [];
// const res = await getEquipmentAll() // const res = await getEquipmentAll()
// this.eqList = res.data // this.eqList = res.data
}, },

View File

@ -97,11 +97,11 @@ export default {
{ prop: 'name', label: '巡检单名称', width: 110, showOverflowtooltip: true }, { prop: 'name', label: '巡检单名称', width: 110, showOverflowtooltip: true },
{ prop: 'code', label: '巡检单编码', minWidth: 150, showOverflowtooltip: true }, { prop: 'code', label: '巡检单编码', minWidth: 150, showOverflowtooltip: true },
{ prop: 'department', label: '部门', showOverflowtooltip: true }, { prop: 'department', label: '部门', showOverflowtooltip: true },
{ prop: 'planCheckTime', label: '计划巡检时间', filter: parseTime }, { prop: 'planCheckTime', label: '计划巡检时间', width: 150, filter: parseTime },
{ prop: 'confirmTimeLimit', label: '确认时限', showOverflowtooltip: true }, { prop: 'confirmTimeLimit', label: '确认时限', showOverflowtooltip: true },
{ prop: 'groupClass', label: '班次', showOverflowtooltip: true }, { prop: 'groupClass', label: '班次', showOverflowtooltip: true },
{ prop: 'checkPerson', label: '创建人', minWidth: 150, showOverflowtooltip: true }, { prop: 'creator', label: '创建人', showOverflowtooltip: true },
{ prop: 'createTime', label: '创建时间', filter: parseTime }, { prop: 'createTime', label: '创建时间', width: 150, filter: parseTime },
// { prop: 'responsible', label: '' }, // { prop: 'responsible', label: '' },
{ prop: 'remark', label: '备注' } // TODO: { prop: 'remark', label: '备注' } // TODO:
], ],
@ -195,17 +195,20 @@ export default {
pageSize: 10, pageSize: 10,
equipmentId: null, equipmentId: null,
name: null, name: null,
special: false special: false,
status: 0
}, },
// //
form: {}, form: {},
basePath: '/base/equipment-check-order', basePath: '/base/equipment-check-order',
mode: null, mode: null,
groupList: []
}; };
}, },
created() { created() {
this.initSearchBar(); this.initSearchBar();
this.getList(); this.getList();
this.getGroup();
}, },
methods: { methods: {
handleConfirm() { handleConfirm() {
@ -227,6 +230,11 @@ export default {
); );
}); });
}, },
getGroup() {
groupClassesListAll().then(res => {
this.groupList = res.data || []
})
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;

View File

@ -15,10 +15,10 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="保养计划单号" label="设备保养单号"
prop="maintainOrderNumber" prop="maintainOrderNumber"
:rules="[ :rules="[
{ required: true, message: '请输入保养计划单号', trigger: 'blur' }, { required: true, message: '请输入设备保养单号', trigger: 'blur' },
]"> ]">
<el-input <el-input
v-model="form.maintainOrderNumber" v-model="form.maintainOrderNumber"
@ -227,11 +227,6 @@ export default {
return { return {
form: {}, form: {},
formLoading: true, formLoading: true,
equipmentTypeOptions: [
{ label: '安全设备', value: 1 },
{ label: '消防设备', value: 2 },
{ label: '特种设备', value: 3 },
],
lineList: [], lineList: [],
maintainerList: [], maintainerList: [],
departmentList: [], departmentList: [],
@ -268,7 +263,7 @@ export default {
}, },
}, },
mounted() { mounted() {
// !this.edit && this.getCode('/base/equipment-maintain-plan/getCode'); // !this.edit && this.getCode('/base/equipment-maintain-log/getCode');
this.getList('maintainer'); this.getList('maintainer');
this.getList('department'); this.getList('department');
this.getList('line'); this.getList('line');
@ -309,7 +304,7 @@ export default {
this.formLoading = true; this.formLoading = true;
const response = await this.$axios(url); const response = await this.$axios(url);
this.formLoading = false; this.formLoading = false;
this.form.code = response.data || ''; this.form.maintainOrderNumber = response.data || '';
}, },
// initialize // initialize
async getEquipmentList() { async getEquipmentList() {

View File

@ -420,11 +420,19 @@ export default {
}, },
}, },
mounted() { mounted() {
!this.edit && this.getCode('/base/equipment-maintain-plan/getCode');
this.getList('maintainer'); this.getList('maintainer');
this.getList('department'); this.getList('department');
this.getList('line'); this.getList('line');
}, },
methods: { methods: {
// getCode
async getCode(url) {
this.formLoading = true;
const response = await this.$axios(url);
this.formLoading = false;
this.form.maintainOrderNumber = response.data || '';
},
handleSearchBarBtnClick(btn) { handleSearchBarBtnClick(btn) {
console.log('btn', btn); console.log('btn', btn);
switch (btn.btnName) { switch (btn.btnName) {

View File

@ -47,6 +47,7 @@
<add-content <add-content
v-if="addContent" v-if="addContent"
ref="addContent" ref="addContent"
:plan="true"
@refreshDataList="addContent = false" /> @refreshDataList="addContent = false" />
</div> </div>
</template> </template>
@ -141,7 +142,7 @@ export default {
label: '上次实际保养时间', label: '上次实际保养时间',
filter: parseTime, filter: parseTime,
}, },
{ prop: 'nextMaintainTime', label: '下次计划保养时间', filter: parseTime }, { prop: 'nextPlanMaintainTime', label: '下次计划保养时间', filter: parseTime },
{ prop: 'maintainer', label: '计划保养人员' }, { prop: 'maintainer', label: '计划保养人员' },
// { prop: 'equipmentName', label: '' }, // { prop: 'equipmentName', label: '' },
// { prop: 'equipmentCode', label: '' }, // { prop: 'equipmentCode', label: '' },
@ -219,13 +220,13 @@ export default {
params.pageNo = undefined; params.pageNo = undefined;
params.pageSize = undefined; params.pageSize = undefined;
this.$modal this.$modal
.confirm('是否确认导出所有设备保养监控数据项?') .confirm('是否确认导出所有设备保养计划数据项?')
.then(() => { .then(() => {
this.exportLoading = true; this.exportLoading = true;
return exportMaintainMonitorExcel(params); return exportMaintainMonitorExcel(params);
}) })
.then((response) => { .then((response) => {
this.$download.excel(response, '设备保养监控.xls'); this.$download.excel(response, '设备保养计划.xls');
this.exportLoading = false; this.exportLoading = false;
}) })
.catch(() => { }); .catch(() => { });

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2024-02-27 10:33:31 * @LastEditTime: 2024-02-28 19:52:13
* @Description: * @Description:
--> -->
<template> <template>
@ -22,7 +22,6 @@
:rules="dataRule" :rules="dataRule"
ref="dataForm" ref="dataForm"
@keyup.enter.native="dataFormSubmit()" @keyup.enter.native="dataFormSubmit()"
label-width="100px"
label-position="top"> label-position="top">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
@ -62,19 +61,19 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="保养频率" prop="maintenancePeriod"> <el-form-item label="保养频率(天/次)" prop="maintenancePeriod">
<el-input-number v-model="dataForm.maintenancePeriod" :min="0" controls-position="right" style="width: 100%" :disabled="isdetail" clearable placeholder="请输入保养频率" /> <el-input-number v-model="dataForm.maintenancePeriod" :min="0" controls-position="right" style="width: 100%" :disabled="isdetail" clearable placeholder="请输入保养频率" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="确认时限" prop="confirmTimeLimit"> <el-form-item label="确认时限(h)" prop="confirmTimeLimit">
<el-input-number v-model="dataForm.confirmTimeLimit" :min="0" controls-position="right" style="width: 100%" :disabled="isdetail" clearable placeholder="请输入单位平方数" /> <el-input-number v-model="dataForm.confirmTimeLimit" :min="0" controls-position="right" style="width: 100%" :disabled="isdetail" clearable placeholder="请输入单位平方数" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="保养时长" prop="maintainDuration"> <el-form-item label="保养时长(h)" prop="maintainDuration">
<el-input-number v-model="dataForm.maintainDuration" :min="0" controls-position="right" style="width: 100%" :disabled="isdetail" clearable placeholder="请输入保养时长" /> <el-input-number v-model="dataForm.maintainDuration" :min="0" controls-position="right" style="width: 100%" :disabled="isdetail" clearable placeholder="请输入保养时长" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -220,6 +219,12 @@ export default {
// //
this.urlOptions.infoURL({ id: this.dataForm.id }).then(response => { this.urlOptions.infoURL({ id: this.dataForm.id }).then(response => {
this.dataForm = response.data this.dataForm = response.data
if (response.data?.maintainer) {
this.dataForm.maintainer = response.data?.maintainer.split(',') || undefined
} else {
this.$set(this.dataForm, 'maintainer', undefined)
this.dataForm.maintainer = undefined
}
}); });
// //
// this.getList(); // this.getList();

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2024-02-23 19:48:12 * @LastEditTime: 2024-02-28 19:37:19
* @Description: * @Description:
--> -->
<template> <template>
@ -13,7 +13,7 @@
class="drawer" class="drawer"
size="60%"> size="60%">
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
{{ '添加内容' }} {{ plan ? '详情' : '添加内容' }}
</small-title> </small-title>
<div class="content"> <div class="content">
<div class="visual-part"> <div class="visual-part">
@ -62,7 +62,7 @@
</template> </template>
</div> </div>
<base-table <base-table
:table-props="tableProps" :table-props="plan ? tableProps1 : tableProps"
:page="listQuery.pageNo" :page="listQuery.pageNo"
:limit="listQuery.pageSize" :limit="listQuery.pageSize"
:table-data="planList"> :table-data="planList">
@ -85,7 +85,7 @@
<div v-if="!isdetail" class="drawer-body__footer"> <div v-if="!isdetail" class="drawer-body__footer">
<el-button style="" @click="goback()">取消</el-button> <el-button style="" @click="goback()">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> <el-button type="primary" @click="goback()">确定</el-button>
</div> </div>
</div> </div>
@ -128,13 +128,35 @@ const tableProps = [
}, },
]; ];
const tableProps1 = [
{
prop: 'equipmentName',
label: '设备名称',
},
{
prop: 'program',
label: '保养项目',
},
{
prop: 'maintenanceDes',
label: '保养描述',
},
];
export default { export default {
mixins: [basicAdd], mixins: [basicAdd],
components: { SmallTitle, attrAdd }, components: { SmallTitle, attrAdd },
props: {
plan: {
type: Boolean,
default: false
}
},
data() { data() {
return { return {
tableBtn, tableBtn,
tableProps, tableProps,
tableProps1,
addOrUpdateVisible: false, addOrUpdateVisible: false,
urlOptions: { urlOptions: {
isGetCode: false, isGetCode: false,

View File

@ -160,6 +160,7 @@ export default {
label: '保养计划名称', label: '保养计划名称',
placeholder: '请选择计划名称', placeholder: '请选择计划名称',
param: 'maintainPlanId', param: 'maintainPlanId',
filterable: true
}, },
// //
{ {
@ -339,6 +340,7 @@ export default {
startTime: null, startTime: null,
relatePlan: null, relatePlan: null,
equipmentId: null, equipmentId: null,
confirmed: true
}, },
// //
form: {}, form: {},
@ -349,20 +351,20 @@ export default {
created() { created() {
this.initSearchBar(); this.initSearchBar();
if (this.$route.query) { if (this.$route.query) {
this.queryParams.equipmentId = // this.queryParams.equipmentId =
this.$route.query?.equipmentId ?? undefined; // this.$route.query?.equipmentId ?? undefined;
this.queryParams.maintainPlanId = this.queryParams.maintainPlanId =
this.$route.query?.maintainPlanId ?? undefined; this.$route.query?.maintainPlanId ?? undefined;
this.queryParams.relatePlan = this.$route.query?.relatePlan ?? undefined; // this.queryParams.relatePlan = this.$route.query?.relatePlan ?? undefined;
this.queryParams.startTime = this.$route.query?.createTime ?? undefined; this.queryParams.startTime = this.$route.query?.createTime ?? undefined;
// this.searchBarFormConfig[0].defaultSelect =
// this.$route.query.equipmentId ?? undefined;
this.searchBarFormConfig[0].defaultSelect = this.searchBarFormConfig[0].defaultSelect =
this.$route.query.equipmentId ?? undefined;
this.searchBarFormConfig[1].defaultSelect =
this.$route.query.maintainPlanId ?? undefined; this.$route.query.maintainPlanId ?? undefined;
this.searchBarFormConfig[2].defaultSelect = this.searchBarFormConfig[1].defaultSelect =
this.$route.query?.createTime ?? undefined; this.$route.query?.createTime ?? undefined;
this.searchBarFormConfig[3].defaultSelect = // this.searchBarFormConfig[3].defaultSelect =
Number(this.$route.query.relatePlan) ?? undefined; // Number(this.$route.query.relatePlan) ?? undefined;
} }
this.getList(); this.getList();
if (this.$route.query.addRecord) { if (this.$route.query.addRecord) {
@ -383,26 +385,27 @@ export default {
} }
}, },
initSearchBar() { initSearchBar() {
this.http('/base/core-equipment/page', 'get', { // this.http('/base/core-equipment/page', 'get', {
special: false, // special: false,
pageNo: 1, // pageNo: 1,
pageSize: 99 // pageSize: 99
}).then(({ data }) => { // }).then(({ data }) => {
this.$set( // this.$set(
this.searchBarFormConfig[0], // this.searchBarFormConfig[0],
'selectOptions', // 'selectOptions',
(data?.list || []).map((item) => ({ // (data?.list || []).map((item) => ({
name: item.name, // name: item.name,
id: item.id, // id: item.id,
})) // }))
); // );
}); // });
this.http('/base/equipment-maintain-plan/page', 'get', { this.http('/base/equipment-maintain-plan/page', 'get', {
pageNo: 1, pageNo: 1,
pageSize: 100, pageSize: 100,
special: false
}).then(({ data }) => { }).then(({ data }) => {
this.$set( this.$set(
this.searchBarFormConfig[1], this.searchBarFormConfig[0],
'selectOptions', 'selectOptions',
(data?.list || []).map((item) => ({ (data?.list || []).map((item) => ({
name: item.name, name: item.name,
@ -544,6 +547,7 @@ export default {
let params = { ...this.queryParams }; let params = { ...this.queryParams };
params.pageNo = undefined; params.pageNo = undefined;
params.pageSize = undefined; params.pageSize = undefined;
params.confirmed = true;
this.$modal this.$modal
.confirm('是否确认导出所有保养记录?') .confirm('是否确认导出所有保养记录?')
.then(() => { .then(() => {

View File

@ -680,7 +680,8 @@ export default {
file.type === 'image/jpg'; file.type === 'image/jpg';
return isJPG; return isJPG;
}; };
return checkFileSize() && checkFileType(); return checkFileSize();
// return checkFileSize() && checkFileType();
}, },
// handlers // handlers

View File

@ -17,7 +17,7 @@
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
label="操作" label="操作"
:width="180" :width="90"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleTableBtnClick" /> @clickBtn="handleTableBtnClick" />
</base-table> </base-table>
@ -111,11 +111,13 @@ export default {
{ {
prop: 'maintenanceStartTime', prop: 'maintenanceStartTime',
label: '维修开始时间', label: '维修开始时间',
width: 150,
filter: parseTime, filter: parseTime,
}, },
{ {
prop: 'maintenanceFinishTime', prop: 'maintenanceFinishTime',
label: '维修结束时间', label: '维修结束时间',
width: 150,
filter: parseTime, filter: parseTime,
}, },
// { prop: 'maintenanceStartTime', label: '', filter: parseTime }, // { prop: 'maintenanceStartTime', label: '', filter: parseTime },
@ -128,7 +130,7 @@ export default {
{ prop: 'maintenanceDetail', label: '维修描述', subcomponent: htmls }, // { prop: 'maintenanceDetail', label: '维修描述', subcomponent: htmls }, //
// { prop: 'repairman', label: '', minWidth: 100, showOverflowtooltip: true }, // { prop: 'repairman', label: '', minWidth: 100, showOverflowtooltip: true },
// { prop: 'repairmanPhone', label: '', minWidth: 100, showOverflowtooltip: true }, // { prop: 'repairmanPhone', label: '', minWidth: 100, showOverflowtooltip: true },
{ prop: 'remark', label: '备注', minWidth: 120, showOverflowtooltip: true } { prop: 'remark', label: '备注', minWidth: 90, showOverflowtooltip: true }
], ],
searchBarFormConfig: [ searchBarFormConfig: [
{ {