<!-- filename: Content.vue author: liubin date: 2023-12-12 13:53:22 description: 巡检单设置 --> <template> <div class="app-container SpecialEquipmentCheckConfig"> <!-- 搜索工作栏 --> <SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @select-changed="handleSearchBarChange" @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="180" :method-list="tableBtn" @clickBtn="handleTableBtnClick" /> </base-table> --> <CheckOrderListTable ref="check-order-list-table" :table-data="list" :page="queryParams.pageNo" :limit="queryParams.pageSize" @edit="handleEdit" @detail="handleDetail" @delete="handleDelete" @confirm="handleConfirm" /> <!-- 分页组件 --> <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="handleSubmit"> <add ref="add" @refreshDataList="successSubmit" /> </base-dialog> <!-- 添加巡检,查看详情 --> <addOrUpdata v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getList" /> </div> </template> <script> import basicPageMixin from '@/mixins/lb/basicPageMixin'; import addOrUpdata from './add-or-updata.vue'; import add from './Content-add.vue'; import { parseTime } from '../../core/mixins/code-filter'; import CheckOrderListTable from './CheckOrderListTable.vue'; export default { name: 'SpecialEquipmentCheckConfig', components: { addOrUpdata, add, CheckOrderListTable }, mixins: [basicPageMixin], data() { return { addOrUpdateVisible: false, addOrEditTitle: '', searchBarKeys: ['name'], tableBtn: [ { type: 'confirm', btnName: '确认', showTip: '确认', }, this.$auth.hasPermi('equipment:check-setting:update') ? { type: 'edit', btnName: '修改', } : undefined, { type: 'detail', btnName: '巡检内容详情', }, this.$auth.hasPermi('equipment:check-setting:delete') ? { type: 'delete', btnName: '删除', } : undefined, ].filter((v) => v), tableProps: [ { prop: 'name', label: '巡检单名称', width: 100, showOverflowtooltip: true, }, { prop: 'department', label: '部门', width: 100, showOverflowtooltip: true, }, { prop: 'planCheckTime', label: '巡检时间', showOverflowtooltip: true, filter: parseTime, }, { prop: 'confirmDueTime', label: '确认截止时间', showOverflowtooltip: true, // filter: (val) => // val != null && val > 24 // ? `${(val - (val % 24)) / 24}天${val % 24}小时` // : `${val}小时`, }, { prop: 'remark', label: '备注' }, ], searchBarFormConfig: [ { type: 'input', label: '巡检单名称', placeholder: '请输入巡检单名称', param: 'name', }, { type: 'button', btnName: '查询', name: 'search', color: 'primary', }, { type: 'separate', }, { type: this.$auth.hasPermi('equipment:check-setting:create') ? 'button' : '', btnName: '新增', name: 'add', plain: true, color: 'success', }, { type: 'button', btnName: '导出', name: 'export', plain: true, color: 'warning', }, { type: 'button', btnName: '批量确认', name: 'batch-confirm', plain: true, color: 'primary', }, ], // 是否显示弹出层 open: false, // 查询参数 queryParams: { pageNo: 1, pageSize: 10, name: null, status: 1, }, // 表单参数 form: {}, basePath: '/base/equipment-check-order', mode: null, allSpecialEquipments: [], }; }, created() { this.initSearchBar(); this.getList(); }, methods: { handleSubmit() { this.$refs.add.dataFormSubmit(); }, successSubmit() { this.cancel(); this.getList(); }, initSearchBar() { this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { this.allSpecialEquipments = data.filter((item) => item.special); this.setSearchBarEquipmentList(data.filter((item) => item.special)); }); }, // 设备大类改变 handleSearchBarChange({ param, value }) { if ('specialType' === param) { if (!value) { this.setSearchBarEquipmentList(this.allSpecialEquipments); return; } this.setSearchBarEquipmentList( this.allSpecialEquipments.filter((item) => item.specialType == value) ); } }, setSearchBarEquipmentList(eqList) { this.$set( this.searchBarFormConfig[2], 'selectOptions', eqList.map((item) => ({ name: item.name, id: item.id, })) ); }, /** 查询列表 */ 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.$refs.add.reset(); this.open = false; this.title = ''; }, /** 表单重置 */ reset() { this.form = { id: null, name: null, content: null, program: null, remark: null, }; this.resetForm('form'); }, /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageNo = 1; this.getList(); }, /** 重置按钮操作 */ resetQuery() { this.resetForm('queryForm'); this.handleQuery(); }, /** 新增按钮操作 */ handleAdd() { this.open = true; this.title = '添加待确认巡检设置'; this.$nextTick(() => { this.$refs.add.init(); }); }, /** 修改按钮操作 */ handleUpdate(row) { this.open = true; this.title = '修改巡检设置'; this.$nextTick(() => { this.$refs.add.init(row); }); }, /** 提交按钮 */ 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(); }); }); }, /** 编辑 */ handleEdit(row) {}, /** 确认巡检单 */ handleConfirm(row) {}, /** 删除巡检单 */ handleDelete(row) { const id = row.id; this.$modal .confirm('是否确认删除巡检单"' + row.name + '"?') .then(() => { return this.del({ id }); }) .then(() => { this.getList(); this.$modal.msgSuccess('删除成功'); }) .catch(() => {}); }, // 处理表格按钮 handleTableBtnClick({ data, type }) { switch (type) { case 'edit': this.handleUpdate(data); break; case 'delete': this.handleDelete(data); break; case 'detail': this.handleDetail(data); break; case 'add': this.handleAddDetail(data); break; } }, handleDetail(row) { this.addOrUpdateVisible = true; this.addOrEditTitle = '详情'; this.$nextTick(() => { this.$refs.addOrUpdate.init(row?.id, true); }); }, handleAddDetail(row) { this.addOrUpdateVisible = true; this.addOrEditTitle = '添加内容'; this.$nextTick(() => { this.$refs.addOrUpdate.init(row); }); }, /** 导出按钮操作 */ handleExport() { // 处理查询参数 let params = { ...this.queryParams }; params.pageNo = undefined; params.pageSize = undefined; this.$modal .confirm('是否确认导出所有巡检设置?') .then(() => { this.exportLoading = true; return exportEquipmentTypeExcel(params); }) .then((response) => { this.$download.excel(response, '巡检设置.xls'); this.exportLoading = false; }) .catch(() => {}); }, }, }; </script>