From a22a69946912221dab4d32987dda6c4c8ba3c5d8 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期二, 24 六月 2025 17:43:24 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/mdc/base/GroupUtilizationRateChart.vue | 442 +++++++++++++++++++++++++++--------------------------- 1 files changed, 221 insertions(+), 221 deletions(-) diff --git a/src/views/mdc/base/GroupUtilizationRateChart.vue b/src/views/mdc/base/GroupUtilizationRateChart.vue index a7f005b..269eb21 100644 --- a/src/views/mdc/base/GroupUtilizationRateChart.vue +++ b/src/views/mdc/base/GroupUtilizationRateChart.vue @@ -5,7 +5,7 @@ <a-row :gutter="24"> <a-col :md="3" :sm="3"> <a-form-item label="涓績"> - <a-select v-model="queryParam.productionId" placeholder="璇烽�夋嫨涓績"> + <a-select v-model="queryParam.productionId" placeholder="璇烽�夋嫨涓績" @change="handleCenterSelectChange"> <a-select-option v-for="item in centerList" :key="item.key"> {{ item.title }} </a-select-option> @@ -44,21 +44,9 @@ </a-form-item> </a-col> - - <!-- <a-col :md="5" :sm="5">--> - <!-- <a-form-item label="鐝">--> - <!-- <a-select v-model="queryParam.workTime" placeholder="璇烽�夋嫨鐝" mode="multiple" :maxTagCount="2">--> - <!-- <a-select-option key="123">涓�鐝�</a-select-option>--> - <!-- <a-select-option key="234">浜岀彮</a-select-option>--> - <!-- <a-select-option key="345">涓夌彮</a-select-option>--> - <!-- </a-select>--> - <!-- </a-form-item>--> - <!-- </a-col>--> - <a-col :md="2" :sm="2"> <a-space> <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> - <!-- <a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button>--> </a-space> </a-col> </a-row> @@ -70,225 +58,237 @@ </template> <script> -import mdcApi from '@api/mdc' -import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import mdcApi from '@api/mdc' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' -export default { - name: 'GroupUtilizationRateChart', - components: {}, - mixins: [JeecgListMixin], - data() { - return { - disableMixinCreated: true, - queryParam: {}, - productionIds: [],//鐝粍 - centerList: [], - groupList: [], - equipmentTypeList: [], - shiftList: [] - } - }, - mounted() { - window.addEventListener('resize', this.handleWindowResize) - this.handleWindowResize() - this.getCenterListByApi() - this.getEquipmentTypeListApi() - this.getShiftListByApi() - }, - methods: { - // 鑾峰彇鏁版嵁 - loadData() { - this.chartContainer = this.$echarts.init(document.getElementById('chart-container')) - this.initChart({}) - this.chartContainer.showLoading({ - text: '鏁版嵁鍔犺浇涓� ...', - color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊 - textColor: '#0696e1' - }) - const that = this - - mdcApi.getGroupChartDataApi(this.queryParam) - .then(res => { - if (res.success) { - if (!res.result.dataList || (res.result.dataList && res.result.dataList.length === 0)) { - that.$notification.warning({ - message: '娑堟伅', - description: '鏆傛棤鏁版嵁' - }) - } - that.initChart(res.result) - } - }) + export default { + name: 'GroupUtilizationRateChart', + components: {}, + mixins: [JeecgListMixin], + data() { + return { + disableMixinCreated: true, + queryParam: {}, + productionIds: [],//鐝粍 + centerList: [], + groupList: [], + equipmentTypeList: [], + shiftList: [] + } }, + mounted() { + window.addEventListener('resize', this.handleWindowResize) + this.handleWindowResize() + this.getCenterListByApi() + this.getEquipmentTypeListApi() + this.getShiftListByApi() + }, + methods: { + // 鑾峰彇鏁版嵁 + loadData() { + this.chartContainer = this.$echarts.init(document.getElementById('chart-container')) + this.initChart({}) + this.chartContainer.showLoading({ + text: '鏁版嵁鍔犺浇涓� ...', + color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊 + textColor: '#0696e1' + }) + const that = this - /** - * 鍒濆鍖栧浘琛� - * @param dataList 鍥捐〃鏁版嵁婧� - * @param dateList 鏃ユ湡鍒楄〃 - * @param shiftSubList 鐝鏍囬鍒楄〃 - * @param shiftDataList 鐝鏁版嵁鍒楄〃 - */ - initChart({ dataList, dateList, shiftSubList, shiftDataList }) { - const defaultLegendData = ['24灏忔椂', '24灏忔椂锛堝幓闄ゆ晠闅滄椂闂达級', '鐝', '绱杩愯鏃堕棿(h)'] - const defaultSeries = [ - { - type: 'line', - name: '24灏忔椂', - yAxisIndex: 0, - data: dataList ? dataList.map(item => item.utilizationRate) : [] - }, - { - type: 'line', - name: '24灏忔椂锛堝幓闄ゆ晠闅滄椂闂达級', - yAxisIndex: 0, - data: dataList ? dataList.map(item => item.amendUtilizationRate) : [] - }, - { - type: 'line', - name: '鐝', - yAxisIndex: 0, - data: dataList ? dataList.map(item => item.shiftUtilizationRate) : [] - }, - { - type: 'bar', - name: '绱杩愯鏃堕棿(h)', - yAxisIndex: 1, - barWidth: '30%', - data: dataList ? dataList.map(item => item.processLong) : [] - } - ] - const option = { - title: { - text: '璁惧缁煎悎鍒╃敤鐜�', - left: 'center', - top: 0, - textStyle: { - fontSize: 22 - } - }, - grid: { - top: '12%', - left: '1%', - right: '1%', - bottom: '1%', - containLabel: true - }, - legend: { - top: '6%', - right: 'center', - itemGap: 20, - data: defaultLegendData - }, - tooltip: { - show: true, - trigger: 'axis' - }, - xAxis: { - type: 'category', - data: dateList ? dateList : [] - }, - yAxis: [ - { - type: 'value', - name: '鍒╃敤鐜�(%)', - axisLine: { - show: true - }, - axisLabel: { - formatter: '{value}%' + mdcApi.getGroupChartDataApi(this.queryParam) + .then(res => { + if (res.success) { + if (!res.result.dataList || (res.result.dataList && res.result.dataList.length === 0)) { + that.$notification.warning({ + message: '娑堟伅', + description: '鏆傛棤鏁版嵁' + }) + } + that.initChart(res.result) } + }) + }, + + /** + * 鍒濆鍖栧浘琛� + * @param dataList 鍥捐〃鏁版嵁婧� + * @param dateList 鏃ユ湡鍒楄〃 + * @param shiftSubList 鐝鏍囬鍒楄〃 + * @param shiftDataList 鐝鏁版嵁鍒楄〃 + */ + initChart({ dataList, dateList, shiftSubList, shiftDataList }) { + const defaultLegendData = ['24灏忔椂', '24灏忔椂锛堝幓闄ゆ晠闅滄椂闂达級', '鐝', '绱杩愯鏃堕棿(h)'] + const defaultSeries = [ + { + type: 'line', + name: '24灏忔椂', + yAxisIndex: 0, + data: dataList ? dataList.map(item => item.utilizationRate) : [] }, { - type: 'value', - name: '杩愯鏃堕棿(h)', - axisLine: { - show: true - } - } - ], - series: defaultSeries - } - if (shiftSubList) { - option.legend.data = defaultLegendData.concat(shiftSubList) - const newSeriesData = shiftDataList.map(item => { - return { type: 'line', - name: item.shiftSubName, + name: '24灏忔椂锛堝幓闄ゆ晠闅滄椂闂达級', yAxisIndex: 0, - data: item.dataList ? item.dataList.map(item => item.utilizationRate) : [] + data: dataList ? dataList.map(item => item.amendUtilizationRate) : [] + }, + { + type: 'line', + name: '鐝', + yAxisIndex: 0, + data: dataList ? dataList.map(item => item.shiftUtilizationRate) : [] + }, + { + type: 'bar', + name: '绱杩愯鏃堕棿(h)', + yAxisIndex: 1, + barWidth: '30%', + data: dataList ? dataList.map(item => item.processLong) : [] } - }) + ] + const option = { + title: { + text: '璁惧缁煎悎鍒╃敤鐜�', + left: 'center', + top: 0, + textStyle: { + fontSize: 22 + } + }, + grid: { + top: '12%', + left: '1%', + right: '1%', + bottom: '1%', + containLabel: true + }, + legend: { + top: '6%', + right: 'center', + itemGap: 20, + data: defaultLegendData + }, + tooltip: { + show: true, + trigger: 'axis' + }, + xAxis: { + type: 'category', + data: dateList ? dateList : [] + }, + yAxis: [ + { + type: 'value', + name: '鍒╃敤鐜�(%)', + axisLine: { + show: true + }, + axisLabel: { + formatter: '{value}%' + } + }, + { + type: 'value', + name: '杩愯鏃堕棿(h)', + axisLine: { + show: true + } + } + ], + series: defaultSeries + } + if (shiftSubList) { + option.legend.data = defaultLegendData.concat(shiftSubList) + const newSeriesData = shiftDataList.map(item => { + return { + type: 'line', + name: item.shiftSubName, + yAxisIndex: 0, + data: item.dataList ? item.dataList.map(item => item.utilizationRate) : [] + } + }) - option.series = defaultSeries.concat(newSeriesData) + option.series = defaultSeries.concat(newSeriesData) + } + + this.chartContainer.setOption(option, true) + this.chartContainer.hideLoading() + }, + + // 鑾峰彇涓績鍒楄〃 + getCenterListByApi() { + this.centerList = [] + const that = this + mdcApi.getCenterOrGroupListApi() + .then(res => { + if (res.success) { + that.centerList = res.result + that.queryParam.productionId = res.result[0].value + that.handleCenterSelectChange(res.result[0].value, { isInitLoad: true }) + } + }) + }, + + /** + * 鑾峰彇鐝粍鍒楄〃 + * @param productionId 涓績Id + */ + getGroupListByApi(productionId, isInitLoad) { + this.groupList = [] + const that = this + mdcApi.getCenterOrGroupListApi(productionId) + .then(res => { + if (res.success) { + that.groupList = res.result + that.handleGroupSelectChange(res.result && res.result.length > 0 && isInitLoad ? [res.result[0].value] : []) + if (!isInitLoad) return + that.loadData() + } + }) + }, + + /** + * 涓績鍙戠敓鏀瑰彉鏃惰Е鍙� + * @param value 鏀瑰彉鍚庣殑鍊� + * @param isInitLoad 鏄惁涓哄垵濮嬪寲鍔犺浇 + */ + handleCenterSelectChange(value, { isInitLoad }) { + this.getGroupListByApi(value, isInitLoad) + }, + + /** + * 鐝粍鍙戠敓鏀瑰彉鏃惰Е鍙� + * @param value 鏀瑰彉鍚庣殑鍊� + */ + handleGroupSelectChange(value) { + this.productionIds = value + this.queryParam.productionIds = value.join(',') + }, + + // 鑾峰彇璁惧绫诲瀷鍒楄〃 + getEquipmentTypeListApi() { + const that = this + mdcApi.getEquipmentTypeListApi() + .then(res => { + if (res.success) { + that.equipmentTypeList = res.result + } + }) + }, + + // 鑾峰彇鐝埗鍒楄〃 + getShiftListByApi() { + const that = this + mdcApi.getShiftListApi() + .then(res => { + if (res.success) { + that.shiftList = res.result + } + }) + }, + + handleWindowResize() { + if (this.chartContainer) this.chartContainer.resize() } - - this.chartContainer.setOption(option, true) - this.chartContainer.hideLoading() - }, - - // 鑾峰彇涓績鍒楄〃 - getCenterListByApi() { - const that = this - mdcApi.getCenterOrGroupListApi() - .then(res => { - if (res.success) { - that.centerList = res.result - that.queryParam.productionId = res.result[0].value - that.getGroupListByApi(res.result[0].value) - } - }) - }, - - /** - * 鑾峰彇鐝粍鍒楄〃 - * @param productionId 涓績Id - */ - getGroupListByApi(productionId) { - const that = this - mdcApi.getCenterOrGroupListApi(productionId) - .then(res => { - if (res.success) { - that.groupList = res.result - that.handleGroupSelectChange([res.result[0].value]) - that.loadData() - } - }) - }, - - /** - * 鐝粍鍙戠敓鏀瑰彉鏃惰Е鍙� - * @param value 鏀瑰彉鍚庣殑鍊� - */ - handleGroupSelectChange(value) { - this.productionIds = value - this.queryParam.productionIds = value.join(',') - }, - - // 鑾峰彇璁惧绫诲瀷鍒楄〃 - getEquipmentTypeListApi() { - const that = this - mdcApi.getEquipmentTypeListApi() - .then(res => { - if (res.success) { - that.equipmentTypeList = res.result - } - }) - }, - - // 鑾峰彇鐝埗鍒楄〃 - getShiftListByApi() { - const that = this - mdcApi.getShiftListApi() - .then(res => { - if (res.success) { - that.shiftList = res.result - } - }) - }, - - handleWindowResize() { - if (this.chartContainer) this.chartContainer.resize() } } -} </script> \ No newline at end of file -- Gitblit v1.9.3