<template> <div class="app-container"> <!-- 搜索工作栏 --> <SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @headBtnClick="handleSearchBarBtnClick" /> <!-- 列表 --> <base-table :table-props="tableProps" :page="queryParams.pageNo" :limit="queryParams.pageSize" :table-data="list" @emitFun="handleEmitFun"> <method-btn v-if="tableBtn.length" slot="handleBtn" label="操作" :width="120" :method-list="tableBtn" @clickBtn="handleTableBtnClick" /> </base-table> <!-- 分页组件 --> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> <!-- 对话框(添加 / 修改) --> <base-dialog :dialogTitle="title" :dialogVisible="open" @close="cancel" @cancel="cancel" @confirm="submitForm"> <DialogForm v-if="open" ref="form" v-model="form" :has-files="false" :rows="rows" /> </base-dialog> </div> </template> <script> import moment from 'moment'; import basicPageMixin from '@/mixins/lb/basicPageMixin'; import { deleteEqMaintainPlan } from '@/api/equipment/base/maintain/record' import { publicFormatter } from '@/utils/dict'; export default { name: 'PlanConfig', components: {}, mixins: [basicPageMixin], data() { const t = new Date(); const [y, m, d] = [t.getFullYear(), t.getMonth(), t.getDate()]; return { searchBarKeys: ['equipmentName', 'createTime'], tableBtn: [ { type: 'detail', btnName: '保养记录', }, this.$auth.hasPermi('equipment:plan-config:update') ? { type: 'edit', btnName: '修改', } : undefined, this.$auth.hasPermi('equipment:plan-config:delete') ? { type: 'delete', btnName: '删除', } : undefined, ].filter((v) => v), tableProps: [ { prop: 'createTime', label: '添加时间', fixed: true, width: 180, filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), }, { prop: 'name', label: '计划名称' }, { prop: 'code', label: '计划编号' }, { prop: 'enabled', label: '启用状态', filter: (val) => ['停用', '启用'][val] }, { prop: 'lineName', label: '产线' }, { prop: 'sectionName', label: '工段' }, { prop: 'equipmentName', label: '设备名称' }, { prop: 'maintainDuration', label: '计划保养用时(h)' }, { prop: 'maintenancePeriod', label: '保养频率(天/次)' }, { prop: 'maintainType', label: '保养类型', filter: publicFormatter('maintain_type') }, { prop: 'remark', label: '备注' }, ], searchBarFormConfig: [ { type: 'input', label: '设备名', placeholder: '请输入设备名称', param: 'equipmentName', }, // 时间段 // { // type: 'datePicker', // label: '时间段', // dateType: 'daterange', // datetimerange // format: 'yyyy-MM-dd', // valueFormat: 'yyyy-MM-dd HH:mm:ss', // // valueFormat: 'timestamp', // rangeSeparator: '-', // startPlaceholder: '开始日期', // endPlaceholder: '结束日期', // defaultTime: ['00:00:00', '23:59:59'], // param: 'createTime', // // defaultSelect: [ // // new Date(y, m, d) // // .toLocaleString() // // .split('/') // // .map((item, index) => { // // if (index == 1 || index == 2) return item.padStart(2, '0'); // // return item; // // }) // // .join('-'), // // new Date(y, m, d, 23, 59, 59) // // .toLocaleString() // // .split('/') // // .map((item, index) => { // // if (index == 1 || index == 2) return item.padStart(2, '0'); // // return item; // // }) // // .join('-'), // // ], // }, { type: 'button', btnName: '查询', name: 'search', color: 'primary', }, { type: 'separate', }, { type: this.$auth.hasPermi('equipment:plan-config:create') ? 'button' : '', btnName: '新增', name: 'add', plain: true, color: 'success', }, // { // type: this.$auth.hasPermi('base:quality-inspection-type:export') // ? 'button' // : '', // btnName: '导出', // name: 'export', // color: 'warning', // }, ], rows: [ [ { input: true, label: '计划名称', prop: 'name', rules: [{ required: true, message: '计划名称不能为空', trigger: 'blur' }], }, { input: true, label: '计划编号', prop: 'code', url: '/base/equipment-maintain-plan/getCode', rules: [{ required: true, message: '计划编号不能为空', trigger: 'blur' }], }, ], [ { select: true, label: '设备名称', prop: 'equipmentId', // url: '/base/core-equipment/listAll?special=false', url: '/base/core-equipment/page?special=false&pageNo=1&pageSize=99', rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }], }, { select: true, label: '保养类型', prop: 'maintainType', options: this.getDictDatas(this.DICT_TYPE.MAINTAIN_TYPE), }, ], [ { input: true, label: '保养时长(h)', prop: 'maintainDuration', rules: [ { type: 'number', trigger: 'blur', message: '请输入正确的数字', transform: (val) => Number(val), }, ], }, { input: true, label: '保养频率(天/次)', prop: 'maintenancePeriod', rules: [ { type: 'number', trigger: 'blur', message: '请输入正确的数字', transform: (val) => Number(val), }, ], rules: [{ required: true, message: '保养频率不能为空', trigger: 'blur' }], }, ], [ { switch: true, label: '启用状态', prop: 'enabled', bind: { 'active-value': 1, 'inactive-value': 0, }, } ], [{ input: true, label: '备注', prop: 'remark' }], ], // 是否显示弹出层 open: false, // 查询参数 queryParams: { pageNo: 1, pageSize: 10, special: false, equipmentName: null, createTime: null, }, // 表单参数 form: {}, basePath: '/base/equipment-maintain-plan', }; }, created() { if (this.$route.query) { this.queryParams.equipmentId = this.$route.query?.equipmentId ?? undefined this.searchBarFormConfig[0].defaultSelect = this.$route.query.equipmentName ?? undefined } this.getList(); }, methods: { /** 查询列表 */ getList() { this.loading = true; // 执行查询 this.recv(this.queryParams).then((response) => { this.list = response.data.list; this.total = response.data.total; this.loading = false; }); }, /** 取消按钮 */ cancel() { this.open = false; this.reset(); }, /** 表单重置 */ reset() { this.form = { code: null, name: null, equipmentId: null, enabled: null, maintenancePeriod: null, maintainDuration: null, maintainType: null, remark: null, enabled: 1 }; this.resetForm('form'); }, /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageNo = 1; this.getList(); }, /** 重置按钮操作 */ resetQuery() { this.resetForm('queryForm'); this.handleQuery(); }, /** 新增按钮操作 */ handleAdd() { this.reset(); this.open = true; this.title = '添加保养计划'; }, handleDetail(row){ // alert('跳转到 保养记录') // console.log(row) const queryData = { equipmentId: row.equipmentId, maintainPlanId: row.id, isAdd: 1 // relatePlan: row.enabled } if (this.queryParams.createTime) { queryData.createTime = this.queryParams.createTime } console.log('你好', queryData) this.$router.push({ path: '/equipment/base/maintain/record',query: queryData }) // this.$router.push({ path: '/equipment/base/maintain/record', query: { orderNo: row.orderNo }}) }, /** 修改按钮操作 */ handleUpdate(row) { this.reset(); const id = row.id; this.info({ id }).then((response) => { this.form = response.data; this.open = true; this.title = '修改保养计划'; }); }, /** 提交按钮 */ submitForm() { this.$refs['form'].validate((valid) => { if (!valid) { return; } // 修改的提交 if (this.form.id != null) { this.put(this.form).then((response) => { this.$modal.msgSuccess('修改成功'); this.open = false; this.getList(); }); return; } // 添加的提交 this.post(this.form).then((response) => { this.$modal.msgSuccess('新增成功'); this.open = false; this.getList(); }); }); }, /** 删除按钮操作 */ handleDelete(row) { const id = row.id; this.$modal .confirm('是否确认删除计划名称为"' + row.name + '"的数据项?') .then(function () { return deleteEqMaintainPlan(id); }) .then(() => { this.getList(); this.$modal.msgSuccess('删除成功'); }) .catch(() => {}); }, }, }; </script>