From 18c60ace50725ec8b430cb737368f9af996fda28 Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期一, 17 六月 2024 22:39:01 +0800 Subject: [PATCH] update --- src/views/mdc/components/Time.vue | 78 ++++++++++++++++++++++----------------- 1 files changed, 44 insertions(+), 34 deletions(-) diff --git a/src/views/mdc/components/Time.vue b/src/views/mdc/components/Time.vue index 30cccbf..b552b66 100644 --- a/src/views/mdc/components/Time.vue +++ b/src/views/mdc/components/Time.vue @@ -1,14 +1,14 @@ <!-- * @Date: 2024-04-18 21:52:18 * @LastEditors: Sneed - * @LastEditTime: 2024-04-20 20:26:30 + * @LastEditTime: 2024-06-17 22:37:51 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/components/Time.vue --> <template> <el-row> <el-col> <el-button-group> - <el-button @click="statisticalMethod = item.value" + <el-button size="small" @click="statisticalMethod = item.value" :type="statisticalMethod == item.value ? 'primary' : ''" v-for="item in btnList" :key="item.value">{{ item.label }}</el-button> @@ -26,9 +26,9 @@ <scTable ref="table" row-key="id" border :params="params" :apiObj="apiObj" stripe> <el-table-column prop="workstationCode" label="宸ヤ綅缂栫爜" /> <el-table-column prop="workstationName" label="宸ヤ綅鍚嶇О" /> - <el-table-column prop="" :label="item" v-for="item in cols"> + <el-table-column prop="" :label="item" v-for="item in cols" :key="item"> <template #default="scope"> - <span>{{ scope.row.data[item] }}</span> + <span>{{ colnameFn(scope.row.data[item]) }}</span> </template> </el-table-column> @@ -40,6 +40,31 @@ <script> import scEcharts from '@/components/scEcharts'; export default { + props: { + url: { + default: '/api/blade-mdc/efficiency-analysis', + type: String, + }, + options: { + default() { + return {} + }, + }, + colnameFn: { + type: Function, + default: val => { + if (isNaN(val)) return '-' + return `${(val ? val * 100 : 0).toFixed(2)}%` + } + }, + resFn: { + type: Function, + default: val => { + if (isNaN(val)) return 0 + return (val - 0) * 100 + } + } + }, components: { scEcharts }, @@ -64,7 +89,7 @@ ], cols: [], chartsData: [], - option2: null, + option2: {}, } }, watch: { @@ -115,36 +140,19 @@ queryType: 0, statisticalMethod: this.statisticalMethod } - return this.$HTTP.post('/api/blade-mdc/efficiency-analysis', dataSend, { params }).then(res => { + // console.log(this.option2.series, '>>>>>>>>>>???') + try { + this.option2.dataset.source = [] + this.option2.series = [] + } catch (error) { + + } + return this.$HTTP.post(this.url, dataSend, { params }).then(res => { this.chartsData = res.data.items.records let option2 = { - // legend: { - // type: 'plain', - // }, - title: { - text: '缁熻鍥捐〃', - subtext: '', - }, - grid: { - top: '80px' - }, - tooltip: { - trigger: 'axis' - }, - xAxis: { - type: 'category', - }, - yAxis: { - type: 'value' - }, - dataZoom: [ - { type: 'slider' } - ], - dataset: { - source: [] - }, - series: [] + ...this.options } + option2.series = [] let source1 = ['product'] let row = res.data.items.records[0] Object.values(row.nameData).forEach(v => { @@ -153,11 +161,13 @@ }) source1.push(v) }) + option2.dataset.source = [source1] res.data.items.records.forEach(v => { let current = [v.id] Object.keys(v.nameData).forEach(key => { - current.push(row.data[key] || 0) + current.push(this.resFn(v.data[key])) + // current.push((v.data[key] - 0) * 100) }) option2.dataset.source.push(current) }); @@ -182,7 +192,7 @@ delete dataSend.size delete dataSend.order delete dataSend.prop - return await this.$HTTP.post('/api/blade-mdc/efficiency-analysis', dataSend, { params }).then(res => { + return await this.$HTTP.post(this.url, dataSend, { params }).then(res => { let row = res.data.items?.records[0]?.data || {} this.cols = Object.keys(row) console.log(this.cols) -- Gitblit v1.9.3