From 55e8de1136a6e88d11cfcaa49d196d0d4271e897 Mon Sep 17 00:00:00 2001 From: lb Date: Mon, 4 Sep 2023 15:24:22 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=AE=8C=E6=88=90=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../equipment/analysis/exception/index.vue | 193 ++++++++---------- 1 file changed, 86 insertions(+), 107 deletions(-) diff --git a/src/views/equipment/analysis/exception/index.vue b/src/views/equipment/analysis/exception/index.vue index 47425378..c8246cdb 100644 --- a/src/views/equipment/analysis/exception/index.vue +++ b/src/views/equipment/analysis/exception/index.vue @@ -65,57 +65,44 @@ export default { : undefined, ].filter((v) => v), tableProps: [ + { prop: 'lineName', label: '产线', align: 'center' }, + { prop: 'sectionName', label: '工段', align: 'center' }, + { prop: 'equipmentName', label: '设备', align: 'center' }, { - prop: 'createTime', - label: '添加时间', - fixed: true, - width: 180, - filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), - }, - { prop: 'name', label: '设备分组名称', align: 'center' }, - { prop: 'code', label: '检测分组编码', align: 'center' }, - { prop: 'remark', label: '备注', align: 'center' }, - { - _action: 'equipment-group-show-alert', - label: '报警', + width: 188, + prop: 'mtbf', + label: '平均故障间隔时间[MTBF](h)', align: 'center', - subcomponent: { - props: ['injectData'], - render: function (h) { - const _this = this; - return h( - 'el-button', - { - props: { type: 'text', size: 'mini' }, - on: { - click: function () { - console.log('inejctdata', _this.injectData); - _this.$emit('emitData', { - action: _this.injectData._action, - // value: _this.injectData.id, - value: _this.injectData, - }); - }, - }, - }, - '查看报警' - ); - }, - }, }, + { + width: 180, + prop: 'mttr', + label: '平均维修时间[MTTR](h)', + align: 'center', + }, + { prop: 'workTime', label: '工作时长(h)', align: 'center' }, + { prop: 'downTime', label: '故障时长(h)', align: 'center' }, + { prop: 'downCount', label: '故障次数', align: 'center' }, ], searchBarFormConfig: [ { - type: 'input', - label: '分组名称', - placeholder: '请输入设备分组名称', - param: 'name', + type: 'select', + label: '请选择月份', + placeholder: '请选择月份', + param: 'month', + selectOptions: Array(12) + .fill(0) + .map((v, i) => ({ + id: i + 1, + name: `${i + 1}月`, + })), }, { - type: 'input', - label: '分组编码', - placeholder: '请输入设备分组编码', - param: 'codes', + __index: 'line', + type: 'select', + label: '产线', + placeholder: '请选择产线', + param: 'lineId', }, { type: 'button', @@ -123,86 +110,78 @@ export default { name: 'search', color: 'primary', }, - { - type: 'separate', - }, - { - type: this.$auth.hasPermi('base:equipment-group:create') - ? 'button' - : '', - btnName: '新增', - name: 'add', - plain: true, - color: 'success', - }, - // { - // type: this.$auth.hasPermi('base:equipment-group:export') ? 'button' : '', - // btnName: '导出', - // name: 'export', - // color: 'warning', - // }, ], - rows: [ - [ - { - input: true, - label: '分组名称', - prop: 'name', - rules: [{ required: true, message: '不能为空', trigger: 'blur' }], - // bind: { - // disabled: true, // some condition, like detail mode... - // } - }, - ], - [ - { - input: true, - label: '分组编码', - prop: 'code', - url: '/base/equipment-group/getCode', - }, - ], - [ - { - input: true, - label: '备注', - prop: 'remark', - // rules: [{ required: true, message: '不能为空', trigger: 'blur' }], - bind: { - placeholder: '请输入备注', - }, - }, - ], - ], - // 是否显示弹出层 - open: false, // 查询参数 queryParams: { - pageNo: 1, - pageSize: 10, - code: null, - name: null, + lineId: null, + factoryId: null, + recordTime: null, }, - // 表单参数 - form: {}, }; }, computed: {}, + created() { + this.fillLineOptions(); + }, methods: { - getList() { + async fillLineOptions() { + const { data } = await this.$axios({ + url: '/base/production-line/listAll', + method: 'get', + }); + const cfg = this.searchBarFormConfig.find( + (item) => item.__index == 'line' + ); + this.$set( + cfg, + 'selectOptions', + data.map((item) => ({ + id: item.id, + name: item.name, + })) + ); + }, + + async getList() { this.loading = true; // 执行查询 - getEquipmentGroupPage(this.queryParams).then((response) => { - this.list = response.data.list; - this.total = response.data.total; - this.loading = false; + const { data } = await this.$axios({ + url: '/analysis/equipment-analysis/efficiency', + method: 'get', + params: { + lineId: this.queryParams.lineId || null, + recordTime: this.queryParams.recordTime || null, + }, }); }, + + handleSearchBarBtnClick(btn) { + switch (btn.btnName) { + case 'search': + if (btn.month) { + this.queryParams.recordTime = [ + moment() + .month(btn.month - 1) + .format('YYYY-MM')+'-01 00:00:00', + moment() + .month(btn.month) + .format('YYYY-MM')+'-01 00:00:00', + ]; + } else { + this.queryParams.recordTime = null; + } + this.queryParams.lineId = btn.lineId || null; + this.handleQuery(); + break; + } + }, + /** 搜索按钮操作 */ handleQuery() { - this.queryParams.pageNo = 1; + // this.queryParams.pageNo = 1; this.getList(); }, + /** 重置按钮操作 */ resetQuery() { this.resetForm('queryForm');