This commit is contained in:
helloDy
2024-02-29 15:54:23 +08:00
parent f8d033c97a
commit 93eb12aeb7
21 changed files with 277 additions and 150 deletions

View File

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

View File

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

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: DY
* @LastEditTime: 2024-02-24 20:50:51
* @LastEditTime: 2024-02-29 14:58:37
* @Description:
-->
<template>
@@ -53,6 +53,7 @@
type="datetime"
:placeholder="`请选择计划巡检时间`"
value-format="timestamp"
:default-time="'8:00:00'"
style="width: 100%" />
</el-form-item>
</el-col>
@@ -77,8 +78,8 @@
<el-option
v-for="d in groupOptions"
:key="d.id"
:label="d.name"
:value="d.id" />
:label="d.label"
:value="d.label" />
</el-select>
</el-form-item>
</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 { getCoreDepartmentList } from "@/api/base/coreDepartment";
import { groupClassesListAll } from '@/api/monitoring/teamProduction'
import { getDictDataLabel } from '@/utils/dict';
// import { getEquipmentAll } from '@/api/base/equipment'
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() {
this.getDict()
},
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() {
// 部门列表
const res = await getCoreDepartmentList();
this.departmentOptions = res.data || [];
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()
// this.eqList = res.data
},

View File

@@ -97,11 +97,11 @@ export default {
{ prop: 'name', label: '巡检单名称', width: 110, showOverflowtooltip: true },
{ prop: 'code', label: '巡检单编码', minWidth: 150, 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: 'groupClass', label: '班次', showOverflowtooltip: true },
{ prop: 'checkPerson', label: '创建人', minWidth: 150, showOverflowtooltip: true },
{ prop: 'createTime', label: '创建时间', filter: parseTime },
{ prop: 'creator', label: '创建人', showOverflowtooltip: true },
{ prop: 'createTime', label: '创建时间', width: 150, filter: parseTime },
// { prop: 'responsible', label: '负责人' },
{ prop: 'remark', label: '备注' } // TODO: 操作 选项,四个,群里询问
],
@@ -195,17 +195,20 @@ export default {
pageSize: 10,
equipmentId: null,
name: null,
special: false
special: false,
status: 0
},
// 表单参数
form: {},
basePath: '/base/equipment-check-order',
mode: null,
groupList: []
};
},
created() {
this.initSearchBar();
this.getList();
this.getGroup();
},
methods: {
handleConfirm() {
@@ -227,6 +230,11 @@ export default {
);
});
},
getGroup() {
groupClassesListAll().then(res => {
this.groupList = res.data || []
})
},
/** 查询列表 */
getList() {
this.loading = true;

View File

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

View File

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

View File

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

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: DY
* @LastEditTime: 2024-02-27 10:33:31
* @LastEditTime: 2024-02-28 19:52:13
* @Description:
-->
<template>
@@ -22,7 +22,6 @@
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmit()"
label-width="100px"
label-position="top">
<el-row :gutter="20">
<el-col :span="8">
@@ -62,19 +61,19 @@
</el-form-item>
</el-col>
<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-form-item>
</el-col>
<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-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<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-form-item>
</el-col>
@@ -220,6 +219,12 @@ export default {
// 获取计划详情
this.urlOptions.infoURL({ id: this.dataForm.id }).then(response => {
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();

View File

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

View File

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

View File

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

View File

@@ -17,7 +17,7 @@
v-if="tableBtn.length"
slot="handleBtn"
label="操作"
:width="180"
:width="90"
:method-list="tableBtn"
@clickBtn="handleTableBtnClick" />
</base-table>
@@ -111,11 +111,13 @@ export default {
{
prop: 'maintenanceStartTime',
label: '维修开始时间',
width: 150,
filter: parseTime,
},
{
prop: 'maintenanceFinishTime',
label: '维修结束时间',
width: 150,
filter: parseTime,
},
// { prop: 'maintenanceStartTime', label: '开始时间', filter: parseTime },
@@ -128,7 +130,7 @@ export default {
{ prop: 'maintenanceDetail', label: '维修描述', subcomponent: htmls }, // 没有参数
// { prop: 'repairman', 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: [
{