Compare commits
	
		
			31 Commits
		
	
	
		
			3c5163bd66
			...
			projects/m
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b31b67d2ed | |||
| fc21359f8f | |||
| be6d84daf5 | |||
| daaec2417c | |||
| dcf4f6c392 | |||
| d27e56cd7f | |||
|  | 445ebe339d | ||
|  | 353e3e0f35 | ||
| ea29a33c2a | |||
|  | d5673f3c9f | ||
|  | 3064722052 | ||
|  | dfe52cbac5 | ||
| 68e386333b | |||
|  | 96d55b5a57 | ||
|  | fb74340f0f | ||
| b1ddfa5c0d | |||
|  | f7b151f9aa | ||
|  | 51938926d3 | ||
| 588037c45c | |||
|  | 354031f119 | ||
|  | 44c5271b5a | ||
| 241810d1c8 | |||
|  | 92a297a5e9 | ||
|  | f67e781146 | ||
| e310c5465e | |||
|  | f2cfe94dfc | ||
|  | 92c0c33fbd | ||
| 0a391a4de5 | |||
|  | 8be57f586e | ||
|  | 4e5a5f9ba2 | ||
| a78c3d79f1 | 
| @@ -289,7 +289,7 @@ function splitCurrentAndPreviousB(factoryListResponse) { | ||||
| } | ||||
|  | ||||
| function splitCurrentAndPreviousA(factoryListResponse, targetListResponse, prodOutputFtoListRes,preData,preFtoData) { | ||||
|   console.log('工厂',targetListResponse); | ||||
|   console.log('工厂',preData); | ||||
|  | ||||
|   // 初始数据 | ||||
|   const { chipOeeRate, transformRate, chipRate, stdRate } = initA(); | ||||
| @@ -343,17 +343,24 @@ function splitCurrentAndPreviousA(factoryListResponse, targetListResponse, prodO | ||||
|   //     componentYieldRate: 0.73, | ||||
|   //   }, | ||||
|   // ]; | ||||
|   if (preData && preData[0] != null) { | ||||
|   if (preData) { | ||||
|     for (const factory of preData) { | ||||
|       const fId = getPreFactoryId(factory); | ||||
|       const fId = getPreFactoryId(factory) | ||||
|       console.log('factory',factory.previousYearOee); | ||||
|         //  chipInvest.previous[fId] = factory.previousYearInputNumber; | ||||
|       // chipOeeRate.current[fId] = factory.oee; | ||||
|       chipOeeRate.previous[fId] = factory.previousYearOee; | ||||
|       if (factory.previousGlassType === 0) { | ||||
|          chipOeeRate.previous[fId] = factory.previousYearOee; | ||||
|       } | ||||
|       // chipOeeRate.previous[fId] = factory.previousYearOee; | ||||
|       // 转化效率 | ||||
|       transformRate.previous[fId] =factory.previousYearComponentConversionEfficiency ; | ||||
|         if (factory.previousGlassType === 1) { | ||||
|         transformRate.previous[fId] = factory.previousYearComponentConversionEfficiency; | ||||
|       } | ||||
|       // transformRate.previous[fId] =factory.previousYearComponentConversionEfficiency ; | ||||
|       // 芯片良率 与 标准组件良率 | ||||
|       if (![0, 1].includes(factory.glassType)) continue; | ||||
|       const _t = [chipRate, stdRate][factory.glassType] | ||||
|       if (![0, 1].includes(factory.previousGlassType)) continue; | ||||
|       const _t = [chipRate, stdRate][factory.previousGlassType] | ||||
|       // _t.current[fId] = factory.yieldRate ; | ||||
|       _t.previous[fId] = factory.previousYearYieldRate ; | ||||
|       // } | ||||
| @@ -393,6 +400,7 @@ function splitCurrentAndPreviousA(factoryListResponse, targetListResponse, prodO | ||||
|       _t.current[fId] = factory.yieldRate ; | ||||
|       // _t.previous[fId] = factory.previousYearYieldRate ; | ||||
|     } | ||||
|     console.log('chipOeeRate',stdRate); | ||||
|     // console.log('chipOeeRate',chipOeeRate); | ||||
|     return { | ||||
|       chipOeeRate, | ||||
|   | ||||
| @@ -63,14 +63,22 @@ export default { | ||||
|   computed: {}, | ||||
|   methods: { | ||||
|     handleExport() { | ||||
|       exportFactoryDataExcel({ | ||||
|         factoryId: this.companyId, | ||||
|         timeSelection: this.period === 1 ? 0 : this.period === 2 ? 1 : this.period === 3 ? 2 : 3, | ||||
|         compare: this.than === '同比' ? 1 : 2 | ||||
|       }).then(response => { | ||||
|         this.$download.excel(response, `${this.companyName}生产数据.xls`); | ||||
|       // this.exportLoading = false; | ||||
|     }).catch(() => { }); | ||||
|       if (this.period != 1) { | ||||
|         exportFactoryDataExcel({ | ||||
|           factoryId: this.companyId, | ||||
|           timeSelection: this.period === 1 ? 0 : this.period === 2 ? 1 : this.period === 3 ? 2 : 3, | ||||
|           compare: this.than === '同比' ? 1 : 2 | ||||
|         }).then(response => { | ||||
|           this.$download.excel(response, `${this.companyName}生产数据.xls`); | ||||
|           // this.exportLoading = false; | ||||
|         }).catch(() => { }); | ||||
|       } else { | ||||
|         this.$message({ | ||||
|           type: 'warning', | ||||
|           message: '为日的情况下没有导出功能', | ||||
|         }) | ||||
|       } | ||||
|  | ||||
|     }, | ||||
|     toggleFullScreen() { | ||||
|       this.isFullscreen = !this.isFullscreen; | ||||
|   | ||||
| @@ -65,21 +65,26 @@ export default { | ||||
|         items = [ | ||||
|           { label: `${year - 1}年${yesterday}日`, color: "#12f7f1" }, | ||||
|           { label: `${yesterday}日`, color: "#58adfa" }, | ||||
|           { label: `${yesterday}日目标`, color: "#58adfa" }, | ||||
|         ]; | ||||
|       } else if (this.period === '日' && this.than === '环比') { | ||||
|         items = [ | ||||
|           { label: `${dayBeYes}日`, color: "#12f7f1" }, | ||||
|           { label: `${yesterday}日`, color: "#58adfa" }, | ||||
|           { label: `${yesterday}日目标`, color: "#58adfa" }, | ||||
|         ]; | ||||
|       } else if (this.period === '周' && this.than === '同比') { | ||||
|         items = [ | ||||
|           { label: `${year-1}年本周`, color: "#12f7f1" }, | ||||
|           { label: `本周`, color: "#58adfa" }, | ||||
|           { label: `本周目标`, color: "#58adfa" }, | ||||
|  | ||||
|         ]; | ||||
|       } else if (this.period === '周' && this.than === '环比') { | ||||
|         items = [ | ||||
|           { label: `上周`, color: "#12f7f1" }, | ||||
|           { label: `本周`, color: "#58adfa" }, | ||||
|           { label: `本周目标`, color: "#58adfa" }, | ||||
|         ]; | ||||
|       } else if (this.period === '月' && this.than === '同比') { | ||||
|         items = [ | ||||
| @@ -141,14 +146,6 @@ export default { | ||||
|       // console.log('chipOee', chipOeeRate) | ||||
|       let dataList = null | ||||
|       switch (this.period) { | ||||
|         case "日": | ||||
|           dataList = []; | ||||
|           dataList[0] = chipOeeRate?.previous; | ||||
|           dataList[1] = chipOeeRate?.current; | ||||
|         case "周": | ||||
|           dataList = []; | ||||
|           dataList[0] = chipOeeRate?.previous; | ||||
|           dataList[1] = chipOeeRate?.current; | ||||
|           default: | ||||
|           dataList = []; | ||||
|           dataList[0] = chipOeeRate?.previous; | ||||
| @@ -191,6 +188,11 @@ function getTemplate(period, dataList, than) { | ||||
|         data: dataList ? dataList[1] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|       { | ||||
|         name: `${yesterday}日目标`, | ||||
|         data: dataList ? dataList[2] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|     ]; | ||||
|   } else if (period === '日' && than === '环比') { | ||||
|     items = [ | ||||
| @@ -203,6 +205,11 @@ function getTemplate(period, dataList, than) { | ||||
|         data: dataList ? dataList[1] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|       { | ||||
|         name: `${yesterday}日目标`, | ||||
|         data: dataList ? dataList[2] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|     ]; | ||||
|   } else if (period === '周' && than === '同比') { | ||||
|     items = [ | ||||
| @@ -215,6 +222,11 @@ function getTemplate(period, dataList, than) { | ||||
|         data: dataList ? dataList[1] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|       { | ||||
|         name: `本周目标`, | ||||
|         data: dataList ? dataList[2] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|     ]; | ||||
|   } else if (period === '周' && than === '环比') { | ||||
|     items = [ | ||||
| @@ -227,6 +239,11 @@ function getTemplate(period, dataList, than) { | ||||
|         data: dataList ? dataList[1] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|       { | ||||
|         name: `本周目标`, | ||||
|         data: dataList ? dataList[2] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|     ]; | ||||
|   } else if (period === '月' && than === '同比') { | ||||
|     items = [ | ||||
|   | ||||
| @@ -65,21 +65,26 @@ export default { | ||||
|         items = [ | ||||
|           { label: `${year - 1}年${yesterday}日`, color: "#12f7f1" }, | ||||
|           { label: `${yesterday}日`, color: "#58adfa" }, | ||||
|           { label: `${yesterday}日目标`, color: "#58adfa" }, | ||||
|  | ||||
|         ]; | ||||
|       } else if (this.period === '日' && this.than === '环比') { | ||||
|         items = [ | ||||
|           { label: `${dayBeYes}日`, color: "#12f7f1" }, | ||||
|           { label: `${yesterday}日`, color: "#58adfa" }, | ||||
|           { label: `${yesterday}日目标`, color: "#58adfa" }, | ||||
|         ]; | ||||
|       } else if (this.period === '周' && this.than === '同比') { | ||||
|         items = [ | ||||
|           { label: `${year-1}年本周`, color: "#12f7f1" }, | ||||
|           { label: `本周`, color: "#58adfa" }, | ||||
|           { label: `本周目标`, color: "#58adfa" }, | ||||
|         ]; | ||||
|       } else if (this.period === '周' && this.than === '环比') { | ||||
|         items = [ | ||||
|           { label: `上周`, color: "#12f7f1" }, | ||||
|           { label: `本周`, color: "#58adfa" }, | ||||
|           { label: `本周目标`, color: "#58adfa" }, | ||||
|         ]; | ||||
|       } else if (this.period === '月' && this.than === '同比') { | ||||
|         items = [ | ||||
| @@ -112,17 +117,9 @@ export default { | ||||
|     series() { | ||||
|       // console.log('aaaaaaaa', this.$store.getters.copilot.efficiency.chipOee); | ||||
|       const transformRate = this.transformRate | ||||
|       // console.log('chipOee', chipOeeRate) | ||||
|       console.log('chipOee', transformRate) | ||||
|       let dataList = null; | ||||
|       switch (this.period) { | ||||
|         case "日": | ||||
|           dataList = []; | ||||
|           dataList[0] = transformRate.previous; | ||||
|           dataList[1] = transformRate.current; | ||||
|         case "周": | ||||
|           dataList = []; | ||||
|           dataList[0] = transformRate.previous; | ||||
|           dataList[1] = transformRate.current; | ||||
|         default: | ||||
|           dataList = []; | ||||
|           dataList[0] = transformRate.previous; | ||||
| @@ -182,6 +179,11 @@ function getTemplate(period, dataList,than) { | ||||
|         data: dataList ? dataList[1] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|       { | ||||
|         name: `${yesterday}日目标`, | ||||
|         data: dataList ? dataList[2] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|     ]; | ||||
|   } else if (period === '日' && than === '环比') { | ||||
|     items = [ | ||||
| @@ -194,6 +196,11 @@ function getTemplate(period, dataList,than) { | ||||
|         data: dataList ? dataList[1] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|       { | ||||
|         name: `${yesterday}日目标`, | ||||
|         data: dataList ? dataList[2] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|     ]; | ||||
|   } else if (period === '周' && than === '同比') { | ||||
|     items = [ | ||||
| @@ -206,6 +213,11 @@ function getTemplate(period, dataList,than) { | ||||
|         data: dataList ? dataList[1] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|       { | ||||
|         name: `本周目标`, | ||||
|         data: dataList ? dataList[2] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|     ]; | ||||
|   } else if (period === '周' && than === '环比') { | ||||
|     items = [ | ||||
| @@ -218,6 +230,11 @@ function getTemplate(period, dataList,than) { | ||||
|         data: dataList ? dataList[1] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|       { | ||||
|         name: `本周目标`, | ||||
|         data: dataList ? dataList[2] : [], | ||||
|         // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)), | ||||
|       }, | ||||
|     ]; | ||||
|   } else if (period === '月' && than === '同比') { | ||||
|     items = [ | ||||
|   | ||||
| @@ -65,13 +65,13 @@ export default { | ||||
|     valueTuple() { | ||||
|       const getter = this.chipRate; | ||||
|       // console.log(getter) | ||||
|       if (this.period === "日" || this.period === "周") { | ||||
|         return [ | ||||
|           getter.previous[this.factoryId], | ||||
|           getter.current[this.factoryId], | ||||
|           0, | ||||
|         ]; | ||||
|       } | ||||
|       // if (this.period === "日" || this.period === "周") { | ||||
|       //   return [ | ||||
|       //     getter.previous[this.factoryId], | ||||
|       //     getter.current[this.factoryId], | ||||
|       //     0, | ||||
|       //   ]; | ||||
|       // } | ||||
|       // [100, 200, 200] | ||||
|       return [ | ||||
|         getter.previous[this.factoryId], | ||||
| @@ -105,21 +105,25 @@ export default { | ||||
|         items = [ | ||||
|           { label: `${yesterday}日良率`, }, | ||||
|           { label: `${year - 1}年${yesterday}日良率` }, | ||||
|           { label: `${yesterday}日目标` }, | ||||
|         ]; | ||||
|       } else if (this.period === '日' && this.than === '环比') { | ||||
|         items = [ | ||||
|           { label: `${yesterday}日良率` }, | ||||
|           { label: `${dayBeYes}日良率` }, | ||||
|           { label: `${yesterday}日目标` }, | ||||
|         ]; | ||||
|       } else if (this.period === '周' && this.than === '同比') { | ||||
|         items = [ | ||||
|           { label: `本周良率`, }, | ||||
|           { label: `${year-1}年本周良率` }, | ||||
|           { label: `${year - 1}年本周良率` }, | ||||
|           { label: `本周目标`, }, | ||||
|         ]; | ||||
|       } else if (this.period === '周' && this.than === '环比') { | ||||
|         items = [ | ||||
|           { label: `本周良率`, }, | ||||
|           { label: `上周良率`, }, | ||||
|           { label: `本周目标`, }, | ||||
|         ]; | ||||
|       } else if (this.period === '月' && this.than === '同比') { | ||||
|         items = [ | ||||
| @@ -147,12 +151,13 @@ export default { | ||||
|           月: `${month}月良率`, | ||||
|           年: `${year}良率`, | ||||
|         }[this.period]; | ||||
|       console.log(vt[1]); | ||||
|       console.log(vt[0]); | ||||
|       const t = getOptions({ | ||||
|         // single, | ||||
|         color: this.color == 1 ? "#4CF0E8" : "#1065ff", | ||||
|         titleValue, | ||||
|         subtitle, | ||||
|         yesterday, | ||||
|         currentName: items[0].label, | ||||
|         preName: items[1].label, | ||||
|         previousSum: vt[0], | ||||
| @@ -182,22 +187,25 @@ export default { | ||||
|         items = [ | ||||
|           { label: `${year - 1}年${yesterday}日良率`, value: isNaN(this.valueTuple[0]) || this.valueTuple[0] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[0]) ) + "%" }, | ||||
|           { label: `${yesterday}日良率`, value: isNaN(this.valueTuple[1]) || this.valueTuple[1] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[1])) + "%" }, | ||||
|           { label: `${yesterday}日目标`, value: isNaN(this.valueTuple[2]) || this.valueTuple[2] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[2])) + "%" }, | ||||
|         ]; | ||||
|       } else if (this.period === '日' && this.than === '环比') { | ||||
|         items = [ | ||||
|           { label: `${dayBeYes}日良率`, value: isNaN(this.valueTuple[0]) || this.valueTuple[0] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[0])) + "%" }, | ||||
|           { label: `${yesterday}日良率`, value: isNaN(this.valueTuple[1]) || this.valueTuple[1] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[1])) + "%" }, | ||||
|           { label: `${yesterday}日目标`, value: isNaN(this.valueTuple[2]) || this.valueTuple[2] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[2])) + "%" }, | ||||
|         ]; | ||||
|       } else if (this.period === '周' && this.than === '同比') { | ||||
|         items = [ | ||||
|           { label: `${year-1}年本周良率`, value: isNaN(this.valueTuple[0]) || this.valueTuple[0] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[0])) + "%" }, | ||||
|           { label: `本周良率`, value: isNaN(this.valueTuple[1]) || this.valueTuple[1] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[1])) + "%" }, | ||||
|  | ||||
|           { label: `本周目标`, value: isNaN(this.valueTuple[2]) || this.valueTuple[2] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[2])) + "%" }, | ||||
|         ]; | ||||
|       } else if (this.period === '周' && this.than === '环比') { | ||||
|         items = [ | ||||
|           { label: `上周良率`, value: isNaN(this.valueTuple[0]) || this.valueTuple[0] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[0])) + "%" }, | ||||
|           { label: `本周良率`, value: isNaN(this.valueTuple[1]) || this.valueTuple[1] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[1])) + "%" }, | ||||
|           { label: `本周目标`, value: isNaN(this.valueTuple[2]) || this.valueTuple[2] == null ? 0 + "%" : (this.formatNumber(this.valueTuple[2])) + "%" }, | ||||
|         ]; | ||||
|       } else if (this.period === '月' && this.than === '同比') { | ||||
|         items = [ | ||||
|   | ||||
| @@ -47,12 +47,12 @@ export default { | ||||
|   computed: { | ||||
|     dataRate() { | ||||
|       // if (this.current != 0 && this.target != 0) { | ||||
|         console.log( '1111111111', this.current, this.target); | ||||
|         console.log( '1111111111', this.current, this.target,this.previous); | ||||
|       return this.current == 0 && this.target == 0 | ||||
|           ? 0 | ||||
|         : this.current != 0 && this.target != 0 | ||||
|           ? `${((this.current / this.target) * 100).toFixed(2)}%` | ||||
|           : this.current != 0 && this.target == 0 && this.current >= 100 ? 100 + '%' : this.current != 0 && this.target == 0 && this.current < 100 ? this.current + '%' : this.previous >=100 ? 100 + '%' : this.previous + '%'; | ||||
|           : this.current != 0 && this.target == 0 && this.current >= 100 ? 100 + '%' : this.current != 0 && this.target == 0 && this.current < 100 ? this.current + '%' : 0 + '%' | ||||
|       // } else if(this.previous != 0) { | ||||
|       //   return this.previous + '%' | ||||
|       // } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2024-05-07 10:25:10 | ||||
|  * @LastEditTime: 2024-06-14 09:58:01 | ||||
|  * @LastEditTime: 2024-06-27 09:13:38 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
| --> | ||||
| @@ -11,21 +11,21 @@ | ||||
|     <CityName :value="city.name" /> | ||||
|     <div class="std-rate-item__value"> | ||||
|       <ProgressBar :period="period" :title="title" :target="city.target" :current="city.current" /> | ||||
|       <ProgressBar :period="period" :title="titlePre" :previous="city.previous" /> | ||||
|       <preProgressBar :period="period" :title="titlePre" :previous="city.previous" /> | ||||
|     </div> | ||||
|   </div> | ||||
|   <div v-else-if="period == '周'" class="std-rate-item"> | ||||
|     <CityName :value="city.name" /> | ||||
|     <div class="std-rate-item__value"> | ||||
|       <ProgressBar :period="period" :title="title" :target="city.target" :current="city.current" /> | ||||
|       <ProgressBar :period="period" :title="titlePre" :previous="city.previous" /> | ||||
|       <preProgressBar :period="period" :title="titlePre" :previous="city.previous" /> | ||||
|     </div> | ||||
|   </div> | ||||
|   <div v-else-if="period == '月'" class="std-rate-item"> | ||||
|     <CityName :value="city.name" /> | ||||
|     <div class="std-rate-item__value"> | ||||
|       <ProgressBar :period="period" :title="titleTarget" :target="city.target" :current="city.current" /> | ||||
|       <ProgressBar :period="period" :title="titlePre" :previous="city.previous" /> | ||||
|       <preProgressBar :period="period" :title="titlePre" :previous="city.previous" /> | ||||
|       <!-- <ProgressBar :period="period" :title="title" :value="city.current" /> --> | ||||
|     </div> | ||||
|   </div> | ||||
| @@ -33,7 +33,7 @@ | ||||
|     <CityName :value="city.name" /> | ||||
|     <div class="std-rate-item__value"> | ||||
|       <ProgressBar :period="period" :title="titleTarget" :target="city.target" :current="city.current" /> | ||||
|       <ProgressBar :period="period" :title="titlePre" :previous="city.previous" /> | ||||
|       <preProgressBar :period="period" :title="titlePre" :previous="city.previous" /> | ||||
|       <!-- <ProgressBar :period="period" :title="title" :value="city.current" /> --> | ||||
|     </div> | ||||
|   </div> | ||||
| @@ -42,10 +42,12 @@ | ||||
| <script> | ||||
| import CityName from "./CityName.vue"; | ||||
| import ProgressBar from "./ProgressBar.vue"; | ||||
| import preProgressBar from "./preProgressBar.vue"; | ||||
|  | ||||
|  | ||||
| export default { | ||||
|   name: "StdRateItem", | ||||
|   components: { CityName, ProgressBar }, | ||||
|   components: { CityName, ProgressBar, preProgressBar }, | ||||
|   props: { | ||||
|     city: { | ||||
|       type: Object, | ||||
|   | ||||
| @@ -0,0 +1,130 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2024-06-27 09:12:54 | ||||
|  * @LastEditTime: 2024-06-27 09:14:21 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
| --> | ||||
|  | ||||
| <template> | ||||
|   <div class="progress-bar" :data-title="title" :data-rate="previous + '%'"> | ||||
|     <div class="progress-bar__rate" :style="{ width: dataRate == '-' ? 0 : dataRate }"></div> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   name: "ProgressBar", | ||||
|   components: {}, | ||||
|   props: { | ||||
|     value: { | ||||
|       type: Number, | ||||
|       default: 0, | ||||
|     }, | ||||
|     target: { | ||||
|       type: Number, | ||||
|       default: 0, | ||||
|     }, | ||||
|     previous: { | ||||
|       type: Number, | ||||
|       default: 0, | ||||
|     }, | ||||
|     current: { | ||||
|       type: Number, | ||||
|       default: 0, | ||||
|     }, | ||||
|     // total: { | ||||
|     //   type: Number, | ||||
|     //   default: 0, | ||||
|     // }, | ||||
|     title: { | ||||
|       type: String, | ||||
|       default: "", | ||||
|     }, | ||||
|   }, | ||||
|   data() { | ||||
|     return {}; | ||||
|   }, | ||||
|   computed: { | ||||
|     dataRate() { | ||||
|       // if (this.current != 0 && this.target != 0) { | ||||
|         // console.log( '1111111111', this.current, this.target,this.previous); | ||||
|       return this.previous >=100 ? 100 + '%' : this.previous + '%'; | ||||
|       // } else if(this.previous != 0) { | ||||
|       //   return this.previous + '%' | ||||
|       // } | ||||
|     }, | ||||
|   }, | ||||
|   methods: {}, | ||||
| }; | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| .progress-bar { | ||||
|   height: 10px; | ||||
|   background-color: #002f6b; | ||||
|   border-radius: 4px; | ||||
|   margin-bottom: 12px; | ||||
|   position: relative; | ||||
|  | ||||
|   &:before { | ||||
|     content: attr(data-title); | ||||
|     display: inline-block; | ||||
|     color: #fff; | ||||
|     position: absolute; | ||||
|     bottom: -200%; | ||||
|     font-size: 12px; | ||||
|   } | ||||
|  | ||||
|   &:after { | ||||
|     content: attr(data-rate); | ||||
|     display: inline-block; | ||||
|     color: #fff; | ||||
|     position: absolute; | ||||
|     bottom: -200%; | ||||
|     right: 0; | ||||
|     font-size: 12px; | ||||
|   } | ||||
|  | ||||
|   &:first-child { | ||||
|     &:after { | ||||
|       color: #11eae3; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   &:nth-child(2) { | ||||
|     &:after { | ||||
|       color: #0e65fd; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .progress-bar__rate { | ||||
|     position: absolute; | ||||
|     display: inline-block; | ||||
|     height: 100%; | ||||
|     width: 0; | ||||
|     border-radius: 4px; | ||||
|      background: linear-gradient(to right, | ||||
|           #004c5e11 10%, | ||||
|           #004c5e, | ||||
|           #0ac0c0, | ||||
|           #11eae3); | ||||
|   } | ||||
|  | ||||
|   &:first-child { | ||||
|     .progress-bar__rate { | ||||
|       background: linear-gradient(to right, | ||||
|           #004c5e11 10%, | ||||
|           #004c5e, | ||||
|           #0ac0c0, | ||||
|           #11eae3); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   &:nth-child(2) { | ||||
|     .progress-bar__rate { | ||||
|       background: linear-gradient(to right, #0048a811, #0048a8, #0e65fd); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @@ -6,6 +6,7 @@ export default ({ | ||||
|   targetSum, | ||||
|   currentName, | ||||
|   preName, | ||||
|   yesterday, | ||||
| }) => ({ | ||||
|   grid: { | ||||
|     left: 300, | ||||
| @@ -25,7 +26,7 @@ export default ({ | ||||
|       fontSize: 26, | ||||
|       color: "#fffd", | ||||
|     }, | ||||
|     subtext: `\u2002${subtitle}\u2002`, | ||||
|     subtext: `\u2002${yesterday + '日良率'}\u2002`, | ||||
|     subtextStyle: { | ||||
|       fontSize: 14, | ||||
|       fontWeight: 100, | ||||
| @@ -109,6 +110,9 @@ export default ({ | ||||
|         { | ||||
|           value: previousSum, | ||||
|           name: preName, | ||||
|            tooltip: { | ||||
|             formatter: `${preName} : ${previousSum}` | ||||
|           }, | ||||
|           selected: false, | ||||
|           itemStyle: { | ||||
|             borderJoin: "round", | ||||
| @@ -129,10 +133,11 @@ export default ({ | ||||
|           }, | ||||
|         }, | ||||
|         { | ||||
|           value:previousSum == 0 | ||||
|               ? 1 | ||||
|               : 0, | ||||
|           name: "-", | ||||
|           value:previousSum === 0 ? 1 : 0, | ||||
|           name: preName, | ||||
|           tooltip: { | ||||
|             formatter: `${preName} : ${previousSum}` | ||||
|           }, | ||||
|           itemStyle: { color: "transparent" }, | ||||
|           label: { show: false }, | ||||
|         }, | ||||
|   | ||||
| @@ -134,11 +134,11 @@ export default { | ||||
|         if (preData && preData[0] != null) { | ||||
|           for (const factory of preData) { | ||||
|             if (factory.previousGlassType === 0) { | ||||
|               preDataDetail[1] = factory.previousYearOutputNumber | ||||
|               preDataDetail[1] = factory.previousOutputNumber | ||||
|             } else if (factory.previousGlassType === 1) { | ||||
|               preDataDetail[2] = factory.previousYearOutputNumber | ||||
|             } else if (factory.previousYearOutputNumber === 2) { | ||||
|               currentDataDetail[3] = factory.outputNumber | ||||
|               preDataDetail[2] = factory.previousOutputNumber | ||||
|             } else if (factory.previousGlassType === 2) { | ||||
|               preDataDetail[3] = factory.previousOutputNumber | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|   | ||||
| @@ -132,16 +132,17 @@ export default { | ||||
|             // } | ||||
|           } | ||||
|         } | ||||
|         if (preData && preData[0] != null) { | ||||
|         if (preData) { | ||||
|           for (const factory of preData) { | ||||
|             if (factory.previousGlassType === 0) { | ||||
|               preDataDetail[1] = factory.previousYearOutputNumber | ||||
|               console.log('factory', factory) | ||||
|               preDataDetail[1] = factory.previousOutputNumber | ||||
|             } else if (factory.previousGlassType === 1) { | ||||
|               preDataDetail[2] = factory.previousYearOutputNumber | ||||
|               preDataDetail[2] = factory.previousOutputNumber | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|         if (targetListResponse && targetListResponse[0] != null) { | ||||
|         if (targetListResponse) { | ||||
|           for (const factory of targetListResponse) { | ||||
|             targetDataDetail[0] = factory.ftoInput | ||||
|             // if (factory.previousGlassType === 0) { | ||||
| @@ -153,7 +154,7 @@ export default { | ||||
|           } | ||||
|         } | ||||
|         // console.log('ftoInvest',ftoInvest) | ||||
|         if (factoryListResponse && factoryListResponse[0] != null) { | ||||
|         if (factoryListResponse) { | ||||
|           for (const factory of factoryListResponse) { | ||||
|             // targetDataDetail[0] = factory.ftoInput | ||||
|             if (factory.glassType === 0) { | ||||
| @@ -163,6 +164,7 @@ export default { | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|         console.log('  this.factoryData.preDataDetail', preDataDetail); | ||||
|         this.factoryData.preDataDetail = preDataDetail | ||||
|         this.factoryData.currentDataDetail = currentDataDetail | ||||
|         this.factoryData.targetDataDetail = targetDataDetail | ||||
|   | ||||
| @@ -17,7 +17,7 @@ export default ({ | ||||
|   tooltip: {}, | ||||
|   title: { | ||||
|     text: titleValue, | ||||
|     left: "44%", | ||||
|     left: "48%", | ||||
|     top: "37%", | ||||
|     textAlign: "center", | ||||
|     textStyle: { | ||||
| @@ -39,7 +39,7 @@ export default ({ | ||||
|       type: "pie", | ||||
|       name: "当前目标", | ||||
|      radius: ["80%", "90%"], | ||||
|       center: ["45%", "52%"], | ||||
|       center: ["50%", "52%"], | ||||
|       emptyCircleStyle: { | ||||
|         color: "#042c5f33", | ||||
|       }, | ||||
| @@ -48,7 +48,7 @@ export default ({ | ||||
|     { | ||||
|       type: "pie", | ||||
|       radius: ["80%", "90%"], | ||||
|       center: ["45%", "52%"], | ||||
|       center: ["50%", "52%"], | ||||
|       avoidLabelOvervlap: false, | ||||
|       label: { | ||||
|         show: false, | ||||
| @@ -97,7 +97,7 @@ export default ({ | ||||
|     { | ||||
|       type: "pie", | ||||
|       radius: ["70%", "80%"], | ||||
|       center: ["45%", "52%"], | ||||
|       center: ["50%", "52%"], | ||||
|       avoidLabelOvervlap: false, | ||||
|       label: { | ||||
|         show: false, | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-11-06 15:15:30 | ||||
|  * @LastEditTime: 2024-06-24 15:15:02 | ||||
|  * @LastEditTime: 2024-06-26 13:39:22 | ||||
|  * @LastEditors: DY | ||||
|  * @Description: | ||||
| --> | ||||
| @@ -58,7 +58,7 @@ | ||||
|             <p class="text">{{ dataForm.chipCssMarriageRate }}</p> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <p class="title">芯片段OEE</p> | ||||
|             <p class="title">芯片段OEE(%)</p> | ||||
|             <p class="text">{{ dataForm.chipOee }}</p> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
| @@ -116,10 +116,16 @@ | ||||
|             <p class="title">标准组件平均功率(W)</p> | ||||
|             <p class="text">{{ dataForm.componentAveragePower }}</p> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|         <el-row :gutter="24"> | ||||
|           <el-col :span="6"> | ||||
|             <p class="title">标准组件转化效率</p> | ||||
|             <p class="text">{{ dataForm.componentTransRate }}</p> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <p class="title">芯片投入</p> | ||||
|             <p class="text">{{ dataForm.chipInput }}</p> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|       </div> | ||||
|       <div v-if="glass === 2"> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2024-04-15 10:49:13 | ||||
|  * @LastEditTime: 2024-06-24 14:38:17 | ||||
|  * @LastEditTime: 2024-06-27 14:56:20 | ||||
|  * @LastEditors: DY | ||||
|  * @Description: | ||||
| --> | ||||
| @@ -210,7 +210,7 @@ export default { | ||||
|         { | ||||
|           prop: 'factory', | ||||
|           label: '工厂名称', | ||||
|           filter: (val) => factoryList[val], | ||||
|           filter: (val) =>  factoryList[val], | ||||
|           minWidth: 180, | ||||
|           showOverflowtooltip: true | ||||
|         }, | ||||
| @@ -244,7 +244,7 @@ export default { | ||||
|       colorList: ['#7164FF',  '#63BDFF', '#8EF0AB', '#FFCE6A'] | ||||
| 			// proLineList: [], | ||||
| 			// all: {} | ||||
| 		};  | ||||
| 		}; | ||||
|   }, | ||||
|   // computed: { | ||||
|   //   weekNum() { | ||||
| @@ -381,7 +381,7 @@ export default { | ||||
|       this.seriesList = [] | ||||
|       // x轴数据 | ||||
|       xAxisData = Object.keys(data) | ||||
|        | ||||
|  | ||||
|       // y轴数据 | ||||
|       this.factoryArray.forEach(fac => { | ||||
|         let i =  0 | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-11-06 15:15:30 | ||||
|  * @LastEditTime: 2024-06-17 17:03:17 | ||||
|  * @LastEditTime: 2024-06-27 14:50:21 | ||||
|  * @LastEditors: DY | ||||
|  * @Description: | ||||
| --> | ||||
| @@ -76,15 +76,44 @@ | ||||
|           <p class="text">{{ dataForm.endDate?.length > 0 ? dataForm.endDate[0] + '-' + dataForm.endDate[1] + '-' + dataForm.endDate[2] : '' }}</p> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-divider></el-divider> | ||||
|       <div class="chartDiv"> | ||||
|         <div ref="bar" :style="{ height: '30vh', width: '40vw' }" /> | ||||
|         <div ref="pie" :style="{ height: '30vh', width: '40vw' }" /> | ||||
|       </div> | ||||
|       <div class="chartDiv"> | ||||
|         <div ref="equipmentLine" :style="{ height: '30vh', width: '40vw' }" /> | ||||
|         <div ref="line" v-show="dataForm.orderStatus === 2" :style="{ height: '30vh', width: '40vw' }" /> | ||||
|       </div> | ||||
|       <div style="width: 100%; padding: 0 32px"><el-divider style="margin: 0"></el-divider></div> | ||||
|       <el-row :gutter="0" style="margin: 20px 32px"> | ||||
|         <el-col :span="8"> | ||||
|           <div> | ||||
|             <small-title slot="title" :no-padding="true"> | ||||
|               产品良率 | ||||
|             </small-title> | ||||
|             <div ref="pie" :style="{ height: '40vh', width: '100%' }" /> | ||||
|           </div> | ||||
|         </el-col> | ||||
|         <el-col :span="16"> | ||||
|           <div style="border-left: 1px solid #d1d3d8; width: 100%; padding-left: 32px"> | ||||
|             <small-title slot="title" :no-padding="true"> | ||||
|               历史趋势 | ||||
|             </small-title> | ||||
|             <div ref="line" v-show="dataForm.orderStatus === 2" :style="{ height: '40vh', width: '50vw' }" /> | ||||
|           </div> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <div style="width: 100%; padding: 0 32px"><el-divider style="margin: 0"></el-divider></div> | ||||
|       <el-row :gutter="0" style="margin: 20px 32px"> | ||||
|         <el-col :span="8"> | ||||
|           <div> | ||||
|             <small-title slot="title" :no-padding="true"> | ||||
|               生产明细 | ||||
|             </small-title> | ||||
|             <div ref="bar" :style="{ height: '40vh', width: '100%' }" /> | ||||
|           </div> | ||||
|         </el-col> | ||||
|         <el-col :span="16"> | ||||
|           <div style="border-left: 1px solid #d1d3d8; width: 100%; padding-left: 32px"> | ||||
|             <small-title slot="title" :no-padding="true"> | ||||
|               待制品分布 | ||||
|             </small-title> | ||||
|             <div ref="equipmentLine" :style="{ height: '40vh', width: '50vw' }" /> | ||||
|           </div> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|     </div> | ||||
|   </el-drawer> | ||||
|  | ||||
| @@ -118,7 +147,8 @@ export default { | ||||
|       barChart: null, | ||||
|       equipmentLineChart: null, | ||||
|       visible: false, | ||||
|       dataForm: {} | ||||
|       dataForm: {}, | ||||
|       colorList: ['#3E8EF7', '#69E6D8', '#F7C739'] // pie颜色 | ||||
|     } | ||||
|   }, | ||||
|   beforeDestroy() { | ||||
| @@ -227,38 +257,47 @@ export default { | ||||
|     initChart(barData) { | ||||
|       this.barChart = echarts.init(this.$refs['bar']) | ||||
|       this.barChart.setOption({ | ||||
|         title: { | ||||
|           text: '生产明细', | ||||
|           left: 'center' | ||||
|           // subtext: 'Fake Data' | ||||
|         }, | ||||
|         // title: { | ||||
|         //   text: '生产明细', | ||||
|         //   left: 'center' | ||||
|         //   // subtext: 'Fake Data' | ||||
|         // }, | ||||
|         color: ['#3E8EF7'], | ||||
|         tooltip: { | ||||
|           trigger: 'axis' | ||||
|         }, | ||||
|         grid: { top: 100, right: 90, bottom: 10, left: 10, containLabel: true }, | ||||
|         calculable: true, | ||||
|         grid: { | ||||
|           top: '20%', | ||||
|           left: "1%", | ||||
|           right: "3%", | ||||
|           bottom: "1%", | ||||
|           top: '15%', | ||||
|           left: 0, | ||||
|           right: '10%', | ||||
|           bottom: 0, | ||||
|           containLabel: true | ||||
|         }, | ||||
|         xAxis: { | ||||
|           type: 'category', | ||||
|           data: ['目标产量', '计划投入量', '实际投入', '实际产出', '废品数量', '待再加工数量'], | ||||
|           axisLabel: { | ||||
|             rotate:45 | ||||
|             rotate: 25 | ||||
|           } | ||||
|         }, | ||||
|         yAxis: { | ||||
|           type: 'value' | ||||
|           type: 'value', | ||||
|           name: '单位/片', | ||||
|           axisLine: { | ||||
|             show: true | ||||
|           } | ||||
|         }, | ||||
|         series: [ | ||||
|           { | ||||
|             data: barData, | ||||
|             type: 'bar', | ||||
|             barWidth: '40%' | ||||
|             barWidth: '40%', | ||||
|             label: { | ||||
|               show: true, | ||||
|               position: 'top' | ||||
|             } | ||||
|           } | ||||
|         ] | ||||
|       }, true) | ||||
| @@ -266,8 +305,9 @@ export default { | ||||
|     initPieChart(pieData) { | ||||
|       this.pieChart = echarts.init(this.$refs['pie']) | ||||
|       this.pieChart.setOption({ | ||||
|         color: ['#3E8EF7', '#69E6D8', '#F7C739'], | ||||
|         title: { | ||||
|           text: !isNaN((pieData[0].value / (pieData[0].value + pieData[1].value)).toFixed(4) * 100) ? ( '产品良率 ' + (pieData[0].value / (pieData[0].value + pieData[1].value)).toFixed(4) * 100 + '%') : '产品良率 -', | ||||
|           // text: !isNaN((pieData[0].value / (pieData[0].value + pieData[1].value)).toFixed(4) * 100) ? ( '产品良率 ' + (pieData[0].value / (pieData[0].value + pieData[1].value)).toFixed(4) * 100 + '%') : '产品良率 -', | ||||
|           left: 'center' | ||||
|           // subtext: 'Fake Data' | ||||
|         }, | ||||
| @@ -275,31 +315,31 @@ export default { | ||||
|           trigger: 'item' | ||||
|         }, | ||||
|         legend: { | ||||
|           top: '5%', | ||||
|           left: 'right', | ||||
|           orient: 'vertical' | ||||
|           bottom: 0, | ||||
|           left: 'center' | ||||
|         }, | ||||
|         series: [ | ||||
|           { | ||||
|             // name: 'Access From', | ||||
|             type: 'pie', | ||||
|             radius: ['40%', '70%'], | ||||
|             radius: ['50%', '70%'], | ||||
|             avoidLabelOverlap: false, | ||||
|             data: pieData, | ||||
|             label: { | ||||
|               show: false, | ||||
|               position: 'center' | ||||
|             }, | ||||
|             emphasis: { | ||||
|               label: { | ||||
|                 show: false, | ||||
|                 fontSize: 40, | ||||
|                 fontWeight: 'bold' | ||||
|               show: true, | ||||
|               position: 'outside', | ||||
|               formatter: '{d|{d}%} \n {b|{b}}', | ||||
|               rich: { | ||||
|                 d: { | ||||
|                   color: 'inherit', // 系列色 | ||||
|                   verticalAlign: 'top' | ||||
|                 }, | ||||
|                 b: { | ||||
|                   color: '#8C8C8C', | ||||
|                   verticalAlign: 'top' | ||||
|                 } | ||||
|               } | ||||
|             }, | ||||
|             labelLine: { | ||||
|               show: false | ||||
|             }, | ||||
|             data: pieData | ||||
|             } | ||||
|           } | ||||
|         ] | ||||
|       }, true) | ||||
| @@ -307,39 +347,48 @@ export default { | ||||
|     initEqLineChart(xAxisList, yAxisList) { | ||||
|       this.equipmentLineChart = echarts.init(this.$refs['equipmentLine']) | ||||
|       this.equipmentLineChart.setOption({ | ||||
|         title: { | ||||
|           text: '待制品分布', | ||||
|           left: 'center' | ||||
|           // subtext: 'Fake Data' | ||||
|         }, | ||||
|         // title: { | ||||
|         //   text: '待制品分布', | ||||
|         //   left: 'center' | ||||
|         //   // subtext: 'Fake Data' | ||||
|         // }, | ||||
|         color: ['#3E8EF7'], | ||||
|         tooltip: { | ||||
|           trigger: 'axis' | ||||
|         }, | ||||
|         grid: { top: 100, right: 90, bottom: 10, left: 10, containLabel: true }, | ||||
|         calculable: true, | ||||
|         grid: { | ||||
|           top: '20%', | ||||
|           left: "1%", | ||||
|           right: "3%", | ||||
|           bottom: "1%", | ||||
|           top: '15%', | ||||
|           left: 0, | ||||
|           right: 0, | ||||
|           bottom: 0, | ||||
|           containLabel: true | ||||
|         }, | ||||
|         xAxis: { | ||||
|           type: 'category', | ||||
|           data: xAxisList, | ||||
|           axisLabel: { | ||||
|             rotate:45, | ||||
|             rotate: 25 | ||||
|             // width: '10%' | ||||
|           } | ||||
|         }, | ||||
|         yAxis: { | ||||
|           type: 'value' | ||||
|           type: 'value', | ||||
|           name: '单位/片', | ||||
|           axisLine: { | ||||
|             show: true | ||||
|           } | ||||
|         }, | ||||
|         series: [ | ||||
|           { | ||||
|             data: yAxisList, | ||||
|             type: 'bar', | ||||
|             barWidth: '50%' | ||||
|             barWidth: '50%', | ||||
|             label: { | ||||
|               show: true, | ||||
|               position: 'top' | ||||
|             } | ||||
|           } | ||||
|         ] | ||||
|       }, true) | ||||
| @@ -347,27 +396,39 @@ export default { | ||||
|     initLineChart(xAxisList, seriesList) { | ||||
|       this.lineChart = echarts.init(this.$refs['line']) | ||||
|       this.lineChart.setOption({ | ||||
|         title: { | ||||
|           text: '历史趋势', | ||||
|           left: 'center' // 设置标题居中 | ||||
|         }, | ||||
|         color: ['#3E8EF7'], | ||||
|         tooltip: { | ||||
|           trigger: 'item' | ||||
|         }, | ||||
|         grid: { | ||||
|           top: '15%', | ||||
|           left: 0, | ||||
|           right: 0, | ||||
|           bottom: 0, | ||||
|           containLabel: true | ||||
|         }, | ||||
|         xAxis: { | ||||
|           type: 'category', | ||||
|           data: xAxisList, | ||||
|           axisLabel: { | ||||
|             rotate:45 | ||||
|             rotate: 25 | ||||
|           } | ||||
|         }, | ||||
|         yAxis: { | ||||
|           type: 'value' | ||||
|           type: 'value', | ||||
|           name: '单位/片', | ||||
|           axisLine: { | ||||
|             show: true | ||||
|           } | ||||
|         }, | ||||
|         series: [ | ||||
|           { | ||||
|             data: seriesList, | ||||
|             type: 'line' | ||||
|             type: 'line', | ||||
|             label: { | ||||
|               show: true, | ||||
|               position: 'top' | ||||
|             } | ||||
|           } | ||||
|         ] | ||||
|       }, true) | ||||
| @@ -381,14 +442,8 @@ export default { | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
|  | ||||
| <style scoped> | ||||
| .chartDiv { | ||||
|   display: flex; | ||||
|   justify-content: space-between; | ||||
|   width: 100%; | ||||
|   padding: 5px; | ||||
|   padding-left: 30px; | ||||
| } | ||||
|   .drawer >>> .el-drawer { | ||||
|   border-radius: 8px 0 0 8px; | ||||
| } | ||||
| @@ -405,7 +460,8 @@ export default { | ||||
| } | ||||
| .detailBox p { | ||||
|   margin: 0; | ||||
|   padding: 0 32px; | ||||
|   padding-left: 32px; | ||||
|   /* padding: 0 32px; */ | ||||
| } | ||||
| .detailBox .title { | ||||
|   /* width: 56px; */ | ||||
| @@ -427,6 +483,8 @@ export default { | ||||
| } | ||||
| .detailBox { | ||||
|   padding-top: 30px; | ||||
|   width: 99%; | ||||
|   overflow-x: hidden; | ||||
|   overflow-y: auto; | ||||
|   /* width: 99%; */ | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -30,7 +30,14 @@ | ||||
|     </div> | ||||
|     <!-- 图 --> | ||||
|     <div> | ||||
|       <div style="display: inline-block; width: 79%; vertical-align: top"> | ||||
|       <div | ||||
|         style=" | ||||
|           display: inline-block; | ||||
|           width: 79%; | ||||
|           vertical-align: top; | ||||
|           padding-right: 20px; | ||||
|         " | ||||
|       > | ||||
|         <base-chart | ||||
|           v-show="this.chartMsg1.series[0].data.length > 0" | ||||
|           :chartHeight="chartHeight" | ||||
|   | ||||
| @@ -71,7 +71,7 @@ export default { | ||||
|                 "<br/>" + | ||||
|                 `${ | ||||
|                   params[i].seriesType === "line" | ||||
|                     ? '<img width="10" height="10" style="margin-right:4px;" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTIuNzIxNjM5NXB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDEyLjcyMTYzOTUgOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDx0aXRsZT7nvJbnu4QgNjwvdGl0bGU+CiAgICA8ZyBpZD0iMDTmiqXooajnrqHnkIYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSLmjIfmoIflrozmiJDmg4XlhrUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDUxLjYzOTE4MCwgLTQyNS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Iue8lue7hC025aSH5Lu9LTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMjEuNTAwMDAwLCAzNDQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0i57yW57uELTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI5LjUwMDAwMCwgNzguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgeD0iMCIgeT0iMCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0Ij48L3JlY3Q+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuMTM5MTgwMjYsMyBDOS4wMDMxMDczNywzIDEwLjU2OTI2NzMsNC4yNzQ4OTI3MiAxMS4wMTMyMjU0LDYuMDAwMjQzNDcgTDEyLjM2MDgxOTcsNiBDMTIuOTEzMTA0NSw2IDEzLjM2MDgxOTcsNi40NDc3MTUyNSAxMy4zNjA4MTk3LDcgQzEzLjM2MDgxOTcsNy41NTIyODQ3NSAxMi45MTMxMDQ1LDggMTIuMzYwODE5Nyw4IEwxMS4wMTI5NjY3LDguMDAwNzYxMzQgQzEwLjU2ODY1OTIsOS43MjU2MDIyNCA5LjAwMjc0NTUxLDExIDcuMTM5MTgwMjYsMTEgQzUuMjc1NjE1MDEsMTEgMy43MDk3MDEzMSw5LjcyNTYwMjI0IDMuMjY1MzkzNzgsOC4wMDA3NjEzNCBMMS42MzkxODAyNiw4IEMxLjA4Njg5NTUxLDggMC42MzkxODAyNTgsNy41NTIyODQ3NSAwLjYzOTE4MDI1OCw3IEMwLjYzOTE4MDI1OCw2LjQ0NzcxNTI1IDEuMDg2ODk1NTEsNiAxLjYzOTE4MDI2LDYgTDMuMjY1MTM1MDksNi4wMDAyNDM0NyBDMy43MDkwOTMyLDQuMjc0ODkyNzIgNS4yNzUyNTMxNSwzIDcuMTM5MTgwMjYsMyBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjRkZDRTZBIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+" />' | ||||
|                     ? '<img width="11" height="11" style="margin-right:4px;" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTIuNzIxNjM5NXB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDEyLjcyMTYzOTUgOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDx0aXRsZT7nvJbnu4QgNjwvdGl0bGU+CiAgICA8ZyBpZD0iMDTmiqXooajnrqHnkIYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSLmjIfmoIflrozmiJDmg4XlhrUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDUxLjYzOTE4MCwgLTQyNS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Iue8lue7hC025aSH5Lu9LTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMjEuNTAwMDAwLCAzNDQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0i57yW57uELTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI5LjUwMDAwMCwgNzguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgeD0iMCIgeT0iMCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0Ij48L3JlY3Q+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuMTM5MTgwMjYsMyBDOS4wMDMxMDczNywzIDEwLjU2OTI2NzMsNC4yNzQ4OTI3MiAxMS4wMTMyMjU0LDYuMDAwMjQzNDcgTDEyLjM2MDgxOTcsNiBDMTIuOTEzMTA0NSw2IDEzLjM2MDgxOTcsNi40NDc3MTUyNSAxMy4zNjA4MTk3LDcgQzEzLjM2MDgxOTcsNy41NTIyODQ3NSAxMi45MTMxMDQ1LDggMTIuMzYwODE5Nyw4IEwxMS4wMTI5NjY3LDguMDAwNzYxMzQgQzEwLjU2ODY1OTIsOS43MjU2MDIyNCA5LjAwMjc0NTUxLDExIDcuMTM5MTgwMjYsMTEgQzUuMjc1NjE1MDEsMTEgMy43MDk3MDEzMSw5LjcyNTYwMjI0IDMuMjY1MzkzNzgsOC4wMDA3NjEzNCBMMS42MzkxODAyNiw4IEMxLjA4Njg5NTUxLDggMC42MzkxODAyNTgsNy41NTIyODQ3NSAwLjYzOTE4MDI1OCw3IEMwLjYzOTE4MDI1OCw2LjQ0NzcxNTI1IDEuMDg2ODk1NTEsNiAxLjYzOTE4MDI2LDYgTDMuMjY1MTM1MDksNi4wMDAyNDM0NyBDMy43MDkwOTMyLDQuMjc0ODkyNzIgNS4yNzUyNTMxNSwzIDcuMTM5MTgwMjYsMyBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjRkZDRTZBIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+" />' | ||||
|                     : `<span style="display:inline-block;margin-right:4px;border-radius:2px;width:10px;height:10px;background-color:${params[i].color}"></span>` | ||||
|                 }` + | ||||
|                 `<span style='display:inline-block;width:180px;color:rgba(0,0,0,0.8);font-size:14px;'>${params[i].seriesName}</span>` + | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2024-06-19 15:28:34 | ||||
|  * @LastEditTime: 2024-06-24 08:46:34 | ||||
|  * @LastEditTime: 2024-06-27 10:40:57 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
| --> | ||||
| @@ -9,9 +9,9 @@ | ||||
|   <div> | ||||
|     <!-- 暂无数据 --> | ||||
|     <div class="no-data-bg" style="position: relative; left: 50%; transform: translateX(-50%)" | ||||
|       v-show="this.chartMsg.series.length === 0"></div> | ||||
|       v-show="this.chartMsg.series[0].data.length === 0"></div> | ||||
|     <!-- 图例 --> | ||||
|     <div v-show="this.chartMsg.series.length > 0"> | ||||
|     <div v-show="this.chartMsg.series[0].data.length > 0 "> | ||||
|       <div class="legendData" v-if="show"> | ||||
|         <span class="itemData" v-for="item in legendList" :key="item.id"> | ||||
|           <span v-if="item.type === 1" class="block" :style="{ backgroundColor: item.color }"></span> | ||||
| @@ -63,7 +63,7 @@ export default { | ||||
|                 : params[i].seriesName === "转化效率" | ||||
|                     ? (params[i].value ? params[i].value.toFixed(2) : 0.0) + "%" | ||||
|                   : params[i].seriesName.search('总功率') != -1 | ||||
|                       ? (params[i].value ? params[i] : 0) + "MW" | ||||
|                       ? (params[i].value ? params[i].value : 0) + "MW" | ||||
|                     : (params[i].value ? params[i].value : 0) + "片" | ||||
|                 }</span>`; | ||||
|             } | ||||
| @@ -83,15 +83,36 @@ export default { | ||||
|         dataZoom: [//滚动条 | ||||
|           { | ||||
|             // 设置滚动条的隐藏与显示 | ||||
|             show: false, | ||||
|             show: true, | ||||
|             // 设置滚动条类型 | ||||
|             type: "slider", | ||||
|             // 设置背景颜色 | ||||
|             backgroundColor: "rgb(19, 63, 100)", | ||||
|             backgroundColor: "#F7F7F7", | ||||
|             // handleStyle: { | ||||
|             //   color: '#D6D6D6' | ||||
|             // }, | ||||
|             handleStyle: { | ||||
|               borderColor: '#EBEBEB', | ||||
|               color: '#EBEBEB' | ||||
|             }, | ||||
|             moveHandleStyle: { | ||||
|               borderColor: '#EBEBEB', | ||||
|               color: '#EBEBEB' | ||||
|             }, | ||||
|             emphasis: { | ||||
|               handleStyle: { | ||||
|                 borderColor: '#D6D6D6', | ||||
|                 color: '#D6D6D6' | ||||
|               }, | ||||
|               moveHandleStyle: { | ||||
|                 borderColor: '#D6D6D6', | ||||
|                 color: '#D6D6D6' | ||||
|               } | ||||
|             }, | ||||
|             // 设置选中范围的填充颜色 | ||||
|             fillerColor: "rgb(16, 171, 198)", | ||||
|             fillerColor: "#F7F7F7", | ||||
|             // 设置边框颜色 | ||||
|             borderColor: "rgb(19, 63, 100)", | ||||
|             borderColor: "#F7F7F7", | ||||
|             // 是否显示detail,即拖拽时候显示详细数值信息 | ||||
|             showDetail: false, | ||||
|             // 数据窗口范围的起始数值 | ||||
| @@ -102,9 +123,9 @@ export default { | ||||
|             // 即不会影响其他轴的数据范围 | ||||
|             filterMode: "empty", | ||||
|             // 设置滚动条宽度,相对于盒子宽度 | ||||
|             width: "50%", | ||||
|             width: "100%", | ||||
|             // 设置滚动条高度 | ||||
|             height: 8, | ||||
|             height: 3, | ||||
|             // 设置滚动条显示位置 | ||||
|             left: "center", | ||||
|             // 是否锁定选择区域(或叫做数据窗口)的大小 | ||||
| @@ -112,7 +133,7 @@ export default { | ||||
|             // 控制手柄的尺寸 | ||||
|             handleSize: 0, | ||||
|             // dataZoom-slider组件离容器下侧的距离 | ||||
|             bottom: 3, | ||||
|             bottom: 14, | ||||
|           }, | ||||
|           { | ||||
|             // 没有下面这块的话,只能拖动滚动条, | ||||
| @@ -124,7 +145,6 @@ export default { | ||||
|             moveOnMouseMove: true, | ||||
|             moveOnMouseWheel: true, | ||||
|           }, | ||||
|  | ||||
|         ], | ||||
|         yAxis:undefined, | ||||
|         series: [], | ||||
| @@ -190,6 +210,7 @@ export default { | ||||
|       }, 500)(); | ||||
|     }, | ||||
|     getMes() { | ||||
|       console.log('222222', this.chartMsg.series); | ||||
|       if (this.myChart) { | ||||
|         this.myChart.dispose(); | ||||
|       } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2024-06-20 16:13:36 | ||||
|  * @LastEditTime: 2024-06-24 08:46:42 | ||||
|  * @LastEditTime: 2024-06-27 09:51:43 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
| --> | ||||
| @@ -36,9 +36,9 @@ export default { | ||||
|         color: [], | ||||
|         // color: ["#8EF0AB", "#63BDFF", "#288AFF"], | ||||
|         grid: { | ||||
|           left: -30, | ||||
|           left: 20, | ||||
|           right: 0, | ||||
|           bottom: 30, | ||||
|           bottom: 31, | ||||
|           top: 30, | ||||
|           containLabel:true, | ||||
|         }, | ||||
| @@ -51,7 +51,7 @@ export default { | ||||
|             }, | ||||
|           }, | ||||
|           formatter: function (params) { | ||||
|             // console.log('params', params); | ||||
|             console.log('params', params.data) | ||||
|             var res = `<span style='color:rgba(0,0,0,0.8)'>${params[0].axisValueLabel}</span>`; | ||||
|             for (var i = 0, l = params.length; i < l; i++) { | ||||
|               res += | ||||
| @@ -59,12 +59,12 @@ export default { | ||||
|                 `<span style='display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:${params[i].color}'></span>` + | ||||
|                 `<span style='display:inline-block;width:150px;color:rgba(0,0,0,0.8);font-size:14px;'>${params[i].seriesName}</span>` + | ||||
|               `<span style='color:rgba(0,0,0,0.48);font-size:14px;'>${params[i].seriesName === "综合良率" | ||||
|                   ? (params[i].value ? params[i].value.toFixed(2) : 0.0) + "%" | ||||
|                 ? (params[i].data.titleValue ? params[i].data.titleValue.toFixed(2) : 0.0) + "%" | ||||
|                 : params[i].seriesName === "转化效率" | ||||
|                     ? (params[i].value ? params[i].value.toFixed(2) : 0.0) + "%" | ||||
|                   ? (params[i].data.titleValue ? params[i].data.titleValue.toFixed(2) : 0.0) + "%" | ||||
|                   : params[i].seriesName.search('总功率') != -1 | ||||
|                     ? (params[i].value ? params[i] : 0) + "MW" | ||||
|                     : (params[i].value ? params[i].value : 0) + "片" | ||||
|                     ? (params[i].data.titleValue ? params[i].data.titleValue : 0) + "MW" | ||||
|                     : (params[i].data.titleValue ? params[i].data.titleValue : 0) + "片" | ||||
|                 }</span>`; | ||||
|             } | ||||
|             return res; | ||||
| @@ -80,52 +80,52 @@ export default { | ||||
|             type: "shadow", | ||||
|           }, | ||||
|         }, | ||||
|         dataZoom: [//滚动条 | ||||
|           { | ||||
|             // 设置滚动条的隐藏与显示 | ||||
|             show: false, | ||||
|             // 设置滚动条类型 | ||||
|             type: "slider", | ||||
|             // 设置背景颜色 | ||||
|             backgroundColor: "rgb(19, 63, 100)", | ||||
|             // 设置选中范围的填充颜色 | ||||
|             fillerColor: "rgb(16, 171, 198)", | ||||
|             // 设置边框颜色 | ||||
|             borderColor: "rgb(19, 63, 100)", | ||||
|             // 是否显示detail,即拖拽时候显示详细数值信息 | ||||
|             showDetail: false, | ||||
|             // 数据窗口范围的起始数值 | ||||
|             startValue: 0, | ||||
|             // 数据窗口范围的结束数值(一页显示多少条数据) | ||||
|             endValue: 5, | ||||
|             // empty:当前数据窗口外的数据,被设置为空。 | ||||
|             // 即不会影响其他轴的数据范围 | ||||
|             filterMode: "empty", | ||||
|             // 设置滚动条宽度,相对于盒子宽度 | ||||
|             width: "50%", | ||||
|             // 设置滚动条高度 | ||||
|             height: 8, | ||||
|             // 设置滚动条显示位置 | ||||
|             left: "center", | ||||
|             // 是否锁定选择区域(或叫做数据窗口)的大小 | ||||
|             zoomLoxk: true, | ||||
|             // 控制手柄的尺寸 | ||||
|             handleSize: 0, | ||||
|             // dataZoom-slider组件离容器下侧的距离 | ||||
|             bottom: 3, | ||||
|           }, | ||||
|           { | ||||
|             // 没有下面这块的话,只能拖动滚动条, | ||||
|             // 鼠标滚轮在区域内不能控制外部滚动条 | ||||
|             type: "inside", | ||||
|             // 滚轮是否触发缩放 | ||||
|             zoomOnMouseWheel: false, | ||||
|             // 鼠标滚轮触发滚动 | ||||
|             moveOnMouseMove: true, | ||||
|             moveOnMouseWheel: true, | ||||
|           }, | ||||
|         // dataZoom: [//滚动条 | ||||
|         //   { | ||||
|         //     // 设置滚动条的隐藏与显示 | ||||
|         //     show: true, | ||||
|         //     // 设置滚动条类型 | ||||
|         //     type: "slider", | ||||
|         //     // 设置背景颜色 | ||||
|         //     backgroundColor: "rgb(19, 63, 100)", | ||||
|         //     // 设置选中范围的填充颜色 | ||||
|         //     fillerColor: "rgb(16, 171, 198)", | ||||
|         //     // 设置边框颜色 | ||||
|         //     borderColor: "rgb(19, 63, 100)", | ||||
|         //     // 是否显示detail,即拖拽时候显示详细数值信息 | ||||
|         //     showDetail: false, | ||||
|         //     // 数据窗口范围的起始数值 | ||||
|         //     startValue: 0, | ||||
|         //     // 数据窗口范围的结束数值(一页显示多少条数据) | ||||
|         //     endValue: 5, | ||||
|         //     // empty:当前数据窗口外的数据,被设置为空。 | ||||
|         //     // 即不会影响其他轴的数据范围 | ||||
|         //     filterMode: "empty", | ||||
|         //     // 设置滚动条宽度,相对于盒子宽度 | ||||
|         //     width: "50%", | ||||
|         //     // 设置滚动条高度 | ||||
|         //     height: 8, | ||||
|         //     // 设置滚动条显示位置 | ||||
|         //     left: "center", | ||||
|         //     // 是否锁定选择区域(或叫做数据窗口)的大小 | ||||
|         //     zoomLoxk: true, | ||||
|         //     // 控制手柄的尺寸 | ||||
|         //     handleSize: 0, | ||||
|         //     // dataZoom-slider组件离容器下侧的距离 | ||||
|         //     bottom: 3, | ||||
|         //   }, | ||||
|         //   { | ||||
|         //     // 没有下面这块的话,只能拖动滚动条, | ||||
|         //     // 鼠标滚轮在区域内不能控制外部滚动条 | ||||
|         //     type: "inside", | ||||
|         //     // 滚轮是否触发缩放 | ||||
|         //     zoomOnMouseWheel: false, | ||||
|         //     // 鼠标滚轮触发滚动 | ||||
|         //     moveOnMouseMove: true, | ||||
|         //     moveOnMouseWheel: true, | ||||
|         //   }, | ||||
|  | ||||
|         ], | ||||
|         // ], | ||||
|         yAxis:undefined, | ||||
|         series: [], | ||||
|       }, | ||||
| @@ -136,6 +136,10 @@ export default { | ||||
|       type: Number, | ||||
|       default: 300, | ||||
|     }, | ||||
|     gridLeft: { | ||||
|       type: Boolean, | ||||
|       default: true, | ||||
|     }, | ||||
|     type: { | ||||
|       type: Number, | ||||
|       default: 2, | ||||
| @@ -166,7 +170,12 @@ export default { | ||||
|       handler(newVal) { | ||||
|         this.chartHeight = newVal; | ||||
|       }, | ||||
|  | ||||
|     }, | ||||
|     // gridLeft(val) { | ||||
|     //   console.log(val) | ||||
|  | ||||
|     // }, | ||||
|     type() { | ||||
|       this.canvasReset(); | ||||
|     }, | ||||
| @@ -190,13 +199,20 @@ export default { | ||||
|       }, 500)(); | ||||
|     }, | ||||
|     getMes() { | ||||
|       console.log(this.gridLeft) | ||||
|       if (this.gridLeft === false) { | ||||
|         this.option.grid.left = 20 | ||||
|       } else { | ||||
|         this.option.grid.left = -80 | ||||
|       } | ||||
|       // console.log('222222', this.chartMsg); | ||||
|       if (this.myChart) { | ||||
|         this.myChart.dispose(); | ||||
|       } | ||||
|       var chartDom = document.getElementById(this.chartId); | ||||
|       this.myChart = echarts.init(chartDom); | ||||
|       this.option.color = this.chartMsg.color; | ||||
|       this.option.xAxis.data = this.chartMsg.xData; | ||||
|       this.option.xAxis.data = this.chartMsg.xData | ||||
|       // this.option.yAxis.name = this.chartMsg.yName; | ||||
|  | ||||
|       // this.option.yAxis.axisLabel = this.chartMsg.yAxisLabel; | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2024-06-20 16:13:52 | ||||
|  * @LastEditTime: 2024-06-24 08:46:46 | ||||
|  * @LastEditTime: 2024-06-27 09:55:02 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
| --> | ||||
| @@ -9,9 +9,9 @@ | ||||
|   <div> | ||||
|     <!-- 暂无数据 --> | ||||
|     <div class="no-data-bg" style="position: relative; left: 50%; transform: translateX(-50%)" | ||||
|       v-show="this.chartMsg.series.length === 0"></div> | ||||
|       v-show="this.chartMsg.series[0].data.length === 0"></div> | ||||
|     <!-- 图例 --> | ||||
|     <div v-show="this.chartMsg.series.length > 0"> | ||||
|     <div v-show="this.chartMsg.series[0].data.length > 0"> | ||||
|       <div class="legendData" v-if="show"> | ||||
|         <span class="itemData" v-for="item in legendList" :key="item.id"> | ||||
|           <span v-if="item.type === 1" class="block" :style="{ backgroundColor: item.color }"></span> | ||||
| @@ -36,7 +36,7 @@ export default { | ||||
|         color: [], | ||||
|         // color: ["#8EF0AB", "#63BDFF", "#288AFF"], | ||||
|         grid: { | ||||
|           left: 30, | ||||
|           left: 60, | ||||
|           right: 0, | ||||
|           bottom: 30, | ||||
|           top: 30, | ||||
| @@ -80,52 +80,52 @@ export default { | ||||
|             type: "shadow", | ||||
|           }, | ||||
|         }, | ||||
|         dataZoom: [//滚动条 | ||||
|           { | ||||
|             // 设置滚动条的隐藏与显示 | ||||
|             show: false, | ||||
|             // 设置滚动条类型 | ||||
|             type: "slider", | ||||
|             // 设置背景颜色 | ||||
|             backgroundColor: "rgb(19, 63, 100)", | ||||
|             // 设置选中范围的填充颜色 | ||||
|             fillerColor: "rgb(16, 171, 198)", | ||||
|             // 设置边框颜色 | ||||
|             borderColor: "rgb(19, 63, 100)", | ||||
|             // 是否显示detail,即拖拽时候显示详细数值信息 | ||||
|             showDetail: false, | ||||
|             // 数据窗口范围的起始数值 | ||||
|             startValue: 0, | ||||
|             // 数据窗口范围的结束数值(一页显示多少条数据) | ||||
|             endValue: 5, | ||||
|             // empty:当前数据窗口外的数据,被设置为空。 | ||||
|             // 即不会影响其他轴的数据范围 | ||||
|             filterMode: "empty", | ||||
|             // 设置滚动条宽度,相对于盒子宽度 | ||||
|             width: "50%", | ||||
|             // 设置滚动条高度 | ||||
|             height: 8, | ||||
|             // 设置滚动条显示位置 | ||||
|             left: "center", | ||||
|             // 是否锁定选择区域(或叫做数据窗口)的大小 | ||||
|             zoomLoxk: true, | ||||
|             // 控制手柄的尺寸 | ||||
|             handleSize: 0, | ||||
|             // dataZoom-slider组件离容器下侧的距离 | ||||
|             bottom: 3, | ||||
|           }, | ||||
|           { | ||||
|             // 没有下面这块的话,只能拖动滚动条, | ||||
|             // 鼠标滚轮在区域内不能控制外部滚动条 | ||||
|             type: "inside", | ||||
|             // 滚轮是否触发缩放 | ||||
|             zoomOnMouseWheel: false, | ||||
|             // 鼠标滚轮触发滚动 | ||||
|             moveOnMouseMove: true, | ||||
|             moveOnMouseWheel: true, | ||||
|           }, | ||||
|         // dataZoom: [//滚动条 | ||||
|         //   { | ||||
|         //     // 设置滚动条的隐藏与显示 | ||||
|         //     show: true, | ||||
|         //     // 设置滚动条类型 | ||||
|         //     type: "slider", | ||||
|         //     // 设置背景颜色 | ||||
|         //     backgroundColor: "rgb(19, 63, 100)", | ||||
|         //     // 设置选中范围的填充颜色 | ||||
|         //     fillerColor: "rgb(16, 171, 198)", | ||||
|         //     // 设置边框颜色 | ||||
|         //     borderColor: "rgb(19, 63, 100)", | ||||
|         //     // 是否显示detail,即拖拽时候显示详细数值信息 | ||||
|         //     showDetail: false, | ||||
|         //     // 数据窗口范围的起始数值 | ||||
|         //     startValue: 0, | ||||
|         //     // 数据窗口范围的结束数值(一页显示多少条数据) | ||||
|         //     endValue: 5, | ||||
|         //     // empty:当前数据窗口外的数据,被设置为空。 | ||||
|         //     // 即不会影响其他轴的数据范围 | ||||
|         //     filterMode: "empty", | ||||
|         //     // 设置滚动条宽度,相对于盒子宽度 | ||||
|         //     width: "50%", | ||||
|         //     // 设置滚动条高度 | ||||
|         //     height: 8, | ||||
|         //     // 设置滚动条显示位置 | ||||
|         //     left: "center", | ||||
|         //     // 是否锁定选择区域(或叫做数据窗口)的大小 | ||||
|         //     zoomLoxk: true, | ||||
|         //     // 控制手柄的尺寸 | ||||
|         //     handleSize: 0, | ||||
|         //     // dataZoom-slider组件离容器下侧的距离 | ||||
|         //     bottom: 3, | ||||
|         //   }, | ||||
|         //   { | ||||
|         //     // 没有下面这块的话,只能拖动滚动条, | ||||
|         //     // 鼠标滚轮在区域内不能控制外部滚动条 | ||||
|         //     type: "inside", | ||||
|         //     // 滚轮是否触发缩放 | ||||
|         //     zoomOnMouseWheel: false, | ||||
|         //     // 鼠标滚轮触发滚动 | ||||
|         //     moveOnMouseMove: true, | ||||
|         //     moveOnMouseWheel: true, | ||||
|         //   }, | ||||
|  | ||||
|         ], | ||||
|         // ], | ||||
|         yAxis:undefined, | ||||
|         series: [], | ||||
|       }, | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2024-06-21 09:05:14 | ||||
|  * @LastEditTime: 2024-06-24 08:46:49 | ||||
|  * @LastEditTime: 2024-06-27 10:59:40 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
| --> | ||||
| @@ -9,9 +9,9 @@ | ||||
|   <div> | ||||
|     <!-- 暂无数据 --> | ||||
|     <div class="no-data-bg" style="position: relative; left: 50%; transform: translateX(-50%)" | ||||
|       v-show="this.chartMsg.series.length === 0"></div> | ||||
|       v-show="this.chartMsg.series[0].data.length === 0"></div> | ||||
|     <!-- 图例 --> | ||||
|     <div v-show="this.chartMsg.series.length > 0"> | ||||
|     <div v-show="this.chartMsg.series[0].data.length > 0"> | ||||
|       <div class="legendData" v-if="show"> | ||||
|         <span class="itemData" v-for="item in legendList" :key="item.id"> | ||||
|           <span v-if="item.type === 1" class="block" :style="{ backgroundColor: item.color }"></span> | ||||
| @@ -36,7 +36,7 @@ export default { | ||||
|         color: [], | ||||
|         // color: ["#8EF0AB", "#63BDFF", "#288AFF"], | ||||
|         grid: { | ||||
|           left: -30, | ||||
|           left: 60, | ||||
|           right: 0, | ||||
|           bottom: 30, | ||||
|           top: 30, | ||||
| @@ -51,7 +51,7 @@ export default { | ||||
|             }, | ||||
|           }, | ||||
|           formatter: function (params) { | ||||
|             console.log('params', params) | ||||
|             // console.log('params', params) | ||||
|             let arr = [] | ||||
|             var res = ``; | ||||
|             // for (var i = 0, l = params.length; i < l; i++) { | ||||
| @@ -66,7 +66,7 @@ export default { | ||||
|                 : params[0].name === "转化效率" | ||||
|                     ? (params[0].value ? params[0].value.toFixed(2) : 0.0) + "%" | ||||
|                   : params[i].seriesName.search('总功率') != -1 | ||||
|                     ? (params[i].value ? params[i] : 0) + "MW" | ||||
|                     ? (params[i].value ? params[i].value : 0) + "MW" | ||||
|                     : (params[i].value ? params[i].value : 0) + "片" | ||||
|                 }</span>`; | ||||
|               // } | ||||
| @@ -81,7 +81,7 @@ export default { | ||||
|                 : params[1].name === "转化效率" | ||||
|                   ? (params[1].value ? params[1].value.toFixed(2) : 0.0) + "%" | ||||
|                   : params[i].seriesName.search('总功率') != -1 | ||||
|                     ? (params[i].value ? params[i] : 0) + "MW" | ||||
|                     ? (params[i].value ? params[i].value : 0) + "MW" | ||||
|                     : (params[i].value ? params[i].value : 0) + "片" | ||||
|                 }</span>`; | ||||
|             } | ||||
| @@ -98,52 +98,51 @@ export default { | ||||
|             type: "shadow", | ||||
|           }, | ||||
|         }, | ||||
|         dataZoom: [//滚动条 | ||||
|           { | ||||
|             // 设置滚动条的隐藏与显示 | ||||
|             show: false, | ||||
|             // 设置滚动条类型 | ||||
|             type: "slider", | ||||
|             // 设置背景颜色 | ||||
|             backgroundColor: "rgb(19, 63, 100)", | ||||
|             // 设置选中范围的填充颜色 | ||||
|             fillerColor: "rgb(16, 171, 198)", | ||||
|             // 设置边框颜色 | ||||
|             borderColor: "rgb(19, 63, 100)", | ||||
|             // 是否显示detail,即拖拽时候显示详细数值信息 | ||||
|             showDetail: false, | ||||
|             // 数据窗口范围的起始数值 | ||||
|             startValue: 0, | ||||
|             // 数据窗口范围的结束数值(一页显示多少条数据) | ||||
|             endValue: 5, | ||||
|             // empty:当前数据窗口外的数据,被设置为空。 | ||||
|             // 即不会影响其他轴的数据范围 | ||||
|             filterMode: "empty", | ||||
|             // 设置滚动条宽度,相对于盒子宽度 | ||||
|             width: "50%", | ||||
|             // 设置滚动条高度 | ||||
|             height: 8, | ||||
|             // 设置滚动条显示位置 | ||||
|             left: "center", | ||||
|             // 是否锁定选择区域(或叫做数据窗口)的大小 | ||||
|             zoomLoxk: true, | ||||
|             // 控制手柄的尺寸 | ||||
|             handleSize: 0, | ||||
|             // dataZoom-slider组件离容器下侧的距离 | ||||
|             bottom: 3, | ||||
|           }, | ||||
|           { | ||||
|             // 没有下面这块的话,只能拖动滚动条, | ||||
|             // 鼠标滚轮在区域内不能控制外部滚动条 | ||||
|             type: "inside", | ||||
|             // 滚轮是否触发缩放 | ||||
|             zoomOnMouseWheel: false, | ||||
|             // 鼠标滚轮触发滚动 | ||||
|             moveOnMouseMove: true, | ||||
|             moveOnMouseWheel: true, | ||||
|           }, | ||||
|  | ||||
|         ], | ||||
|         // dataZoom: [//滚动条 | ||||
|         //   { | ||||
|         //     // 设置滚动条的隐藏与显示 | ||||
|         //     show: true, | ||||
|         //     // 设置滚动条类型 | ||||
|         //     type: "slider", | ||||
|         //     // 设置背景颜色 | ||||
|         //     backgroundColor: "#F7F7F7", | ||||
|         //     // 设置选中范围的填充颜色 | ||||
|         //     fillerColor: "#EBEBEB", | ||||
|         //     // 设置边框颜色 | ||||
|         //     borderColor: "#F7F7F7", | ||||
|         //     // 是否显示detail,即拖拽时候显示详细数值信息 | ||||
|         //     showDetail: false, | ||||
|         //     // 数据窗口范围的起始数值 | ||||
|         //     startValue: 0, | ||||
|         //     // 数据窗口范围的结束数值(一页显示多少条数据) | ||||
|         //     endValue: 5, | ||||
|         //     // empty:当前数据窗口外的数据,被设置为空。 | ||||
|         //     // 即不会影响其他轴的数据范围 | ||||
|         //     filterMode: "empty", | ||||
|         //     // 设置滚动条宽度,相对于盒子宽度 | ||||
|         //     width: "100%", | ||||
|         //     // 设置滚动条高度 | ||||
|         //     height: 8, | ||||
|         //     // 设置滚动条显示位置 | ||||
|         //     left: "center", | ||||
|         //     // 是否锁定选择区域(或叫做数据窗口)的大小 | ||||
|         //     zoomLoxk: true, | ||||
|         //     // 控制手柄的尺寸 | ||||
|         //     handleSize: 0, | ||||
|         //     // dataZoom-slider组件离容器下侧的距离 | ||||
|         //     bottom: 3, | ||||
|         //   }, | ||||
|         //   { | ||||
|         //     // 没有下面这块的话,只能拖动滚动条, | ||||
|         //     // 鼠标滚轮在区域内不能控制外部滚动条 | ||||
|         //     type: "inside", | ||||
|         //     // 滚轮是否触发缩放 | ||||
|         //     zoomOnMouseWheel: false, | ||||
|         //     // 鼠标滚轮触发滚动 | ||||
|         //     moveOnMouseMove: true, | ||||
|         //     moveOnMouseWheel: true, | ||||
|         //   }, | ||||
|         // ], | ||||
|         yAxis:undefined, | ||||
|         series: [], | ||||
|       }, | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2024-04-15 10:49:13 | ||||
|  * @LastEditTime: 2024-06-24 09:39:27 | ||||
|  * @LastEditTime: 2024-06-25 08:39:48 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
| --> | ||||
| @@ -155,6 +155,11 @@ export default { | ||||
|       // all: {} | ||||
|     }; | ||||
|   }, | ||||
|   watch: { | ||||
|     currentMenu() { | ||||
|       this.getDataList() | ||||
|     }, | ||||
|   }, | ||||
|   computed: { | ||||
|     weekNum() { | ||||
|       return Math.round((this.end - this.start) / (24 * 60 * 60 * 1000 * 7)) + 1 | ||||
| @@ -314,9 +319,12 @@ export default { | ||||
|       } | ||||
|     }, | ||||
|     async getDataList() { | ||||
|       if (!this.listQuery.startDate && !this.listQuery.endDate) { | ||||
|         return this.$message('请选择起止时间') | ||||
|       } | ||||
|       this.otherProps = [] | ||||
|       let arr  = [] | ||||
|       this.currentMenu === '邯郸' ? arr.push(1) : arr.push(2) | ||||
|       this.currentMenu === '邯郸' ? arr.push(1) : arr.push(0) | ||||
|       this.listQuery.factory = arr | ||||
|       const res = await getComprehensiveDataPage(this.listQuery) | ||||
|       // this.tableData = res.data.list | ||||
|   | ||||
| @@ -84,7 +84,7 @@ | ||||
|             :chartMsg="chartMsgYearTarget" :chartId=" 'yearData'" :chartNum="chartNum" /> | ||||
|         </el-col> --> | ||||
|       </el-row> | ||||
|       <base-table :key="showTable" :span-method="objectSpanMethod" :table-props="tableProps" :page="listQuery.current" | ||||
|       <base-table :key="showTable" :table-props="tableProps" :page="listQuery.current" | ||||
|         :limit="listQuery.size" :table-data="tableData" :max-height="tableH" /> | ||||
|     </div> | ||||
|     <!-- <div class="containerBottom"> | ||||
| @@ -174,7 +174,15 @@ export default { | ||||
|         yAxis: [ | ||||
|           { | ||||
|             type: "value", | ||||
|             name: "单位/片", | ||||
|             name: "单位/MW", | ||||
|             // splitNumber: 5, | ||||
|             // min: function (value) {//取最小值向下取整为最小刻度 | ||||
|             //   return 0 | ||||
|             // }, | ||||
|             // max: function (value) {//取最大值向上取整为最大刻度 | ||||
|             //   return Math.ceil(value.max) | ||||
|             // }, | ||||
|             alignTicks: true, | ||||
|             nameTextStyle: { | ||||
|               fontSize: 12, | ||||
|               align: "right", | ||||
| @@ -183,7 +191,13 @@ export default { | ||||
|           }, | ||||
|           { | ||||
|             type: 'value', | ||||
|             alignTicks: true, | ||||
|             // min: 0, | ||||
|             // max: 100, | ||||
|             // scale: true, | ||||
|             // interval: 25,//间隔 | ||||
|             // inverse: true, | ||||
|             // splitNumber: 5, | ||||
|             name: "单位/%", | ||||
|             nameTextStyle: { | ||||
|               fontSize: 12, | ||||
| @@ -204,7 +218,7 @@ export default { | ||||
|               position: [-18, -16], | ||||
|               color: "#68C483", | ||||
|               formatter: function (params) { | ||||
|                 return params.value + "MW"; | ||||
|                 return params.value | ||||
|               }, | ||||
|             }, | ||||
|           }, | ||||
| @@ -219,7 +233,7 @@ export default { | ||||
|               position: [-18, -16], | ||||
|               color: "#68C483", | ||||
|               formatter: function (params) { | ||||
|                 return params.value + "%"; | ||||
|                 return params.value | ||||
|               }, | ||||
|             }, | ||||
|             yAxisIndex: 1 | ||||
| @@ -233,7 +247,16 @@ export default { | ||||
|         yAxis: [ | ||||
|           { | ||||
|             type: "value", | ||||
|           name: "单位/片", | ||||
|             name: "单位/片", | ||||
|             // min: function (value) {//取最小值向下取整为最小刻度 | ||||
|             //   return 0 | ||||
|             // }, | ||||
|             // max: function (value) {//取最大值向上取整为最大刻度 | ||||
|             //   return Math.ceil(value.max) | ||||
|             // }, | ||||
|             alignTicks: true, | ||||
|             // splitNumber: 5, | ||||
|             // scale: true, | ||||
|             nameTextStyle: { | ||||
|               fontSize: 12, | ||||
|               align: "right", | ||||
| @@ -241,8 +264,16 @@ export default { | ||||
|             axisLabel: {}, | ||||
|           }, | ||||
|           { | ||||
|             type: "value", | ||||
|             type: 'value', | ||||
|             // inverse: true, | ||||
|             name: "单位/%", | ||||
|             scale: true, | ||||
|             alignTicks: true, | ||||
|             // min: 0, | ||||
|             // max: 100, | ||||
|             // scale: true, | ||||
|             // interval: 25,//间隔 | ||||
|             // splitNumber: 5, | ||||
|             nameTextStyle: { | ||||
|               fontSize: 12, | ||||
|               align: "right", | ||||
| @@ -259,10 +290,10 @@ export default { | ||||
|             barWidth: 20, | ||||
|             label: { | ||||
|               show: true, | ||||
|               position: [-18, -16], | ||||
|               position: [-50, -16], | ||||
|               color: "#68C483", | ||||
|               formatter: function (params) { | ||||
|                 return params.value.toFixed(2) + "MW"; | ||||
|                 return params.value.toFixed(2) | ||||
|               }, | ||||
|             }, | ||||
|           }, | ||||
| @@ -274,10 +305,10 @@ export default { | ||||
|             barWidth: 20, | ||||
|             label: { | ||||
|               show: true, | ||||
|               position: [0, -16], | ||||
|               position: [10, -16], | ||||
|               color: "#288AFF", | ||||
|               formatter: function (params) { | ||||
|                 return params.value.toFixed(2) + "MW"; | ||||
|                 return params.value.toFixed(2) | ||||
|               }, | ||||
|             }, | ||||
|           }, | ||||
| @@ -294,7 +325,7 @@ export default { | ||||
|               show: true, | ||||
|               color: "#FFAE17", | ||||
|               formatter: function (params) { | ||||
|                 return params.value.toFixed(2) + "%"; | ||||
|                 return params.value.toFixed(2) | ||||
|               }, | ||||
|             }, | ||||
|           }, | ||||
| @@ -313,13 +344,6 @@ export default { | ||||
|   computed: { | ||||
|     tableProps() { | ||||
|       return [ | ||||
|         { | ||||
|           prop: "factory", | ||||
|           label: "工厂名称", | ||||
|           // filter: (val) => factoryList[val], | ||||
|           minWidth: 200, | ||||
|           showOverflowtooltip: true, | ||||
|         }, | ||||
|         { | ||||
|           prop: "item", | ||||
|           label: "科目", | ||||
| @@ -345,6 +369,9 @@ export default { | ||||
|   }, | ||||
|   watch: { | ||||
|     // 监听左侧菜单栏是否展开 | ||||
|     currentMenu() { | ||||
|       this.getDataList() | ||||
|     }, | ||||
|     isOpen(val) { | ||||
|       if (this.$route.name === "produceConversion") { | ||||
|         this.chartNum++; | ||||
| @@ -494,7 +521,10 @@ export default { | ||||
|       this.chartMsg.series[2].data = [] | ||||
|       this.chartMsgYearTarget.series[0].data = [] | ||||
|       this.chartMsgYearTarget.series[1].data = [] | ||||
|  | ||||
|       this.title = '' | ||||
|       if (!this.listQuery.beginTime && !this.listQuery.endTime) { | ||||
|         return this.$message('请选择起止时间') | ||||
|       } | ||||
|       console.log(this.listQuery); | ||||
|       if (this.listQuery.type == 3) { | ||||
|         this.listQuery.beginTime = this.listQuery.reportTime[0] | ||||
| @@ -560,9 +590,6 @@ export default { | ||||
|             dataArr[0]['' + m + ''] = item.chipTotalPowers | ||||
|             dataArr[1]['' + m + ''] = item.scTotalPowers | ||||
|             dataArr[2]['' + m + ''] = item.conversionEfficiency | ||||
|             dataArr[0].factory = ele.factory === 1 ? '邯郸' : '瑞昌' | ||||
|             dataArr[1].factory = ele.factory === 1 ? '邯郸' : '瑞昌' | ||||
|             dataArr[2].factory = ele.factory === 1 ? '邯郸' : '瑞昌' | ||||
|  | ||||
|             // dataArr[3]['' + m + ''] = ele.comprehensiveYieldRate | ||||
|             // }) | ||||
| @@ -573,7 +600,7 @@ export default { | ||||
|             // }) | ||||
|           }) | ||||
|         }) | ||||
|         this.title = res.data[0].yearTarget.targetTime + '目标值' | ||||
|         this.title = res.data[0].yearTarget.targetTime ? res.data[0].yearTarget.targetTime + '目标值' : '' | ||||
|         this.chartMsgYearTarget.series[0].data = [ | ||||
|           { | ||||
|             value: res.data[0].yearTarget.chipTotalPower, | ||||
| @@ -618,7 +645,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[0].data.push({ | ||||
|               name: dataArr[0]['item'], | ||||
|               value: dataArr[0][i] | ||||
|               value: dataArr[0][i] === 0 ? null : dataArr[0][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
| @@ -627,7 +654,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[1].data.push({ | ||||
|               name: dataArr[1]['item'], | ||||
|               value: dataArr[1][i] | ||||
|               value: dataArr[1][i] === 0 ? null : dataArr[1][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
| @@ -636,7 +663,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[2].data.push({ | ||||
|               name: dataArr[2]['item'], | ||||
|               value: dataArr[2][i] | ||||
|               value: dataArr[2][i] === 0 ? null : dataArr[2][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
|   | ||||
| @@ -64,7 +64,7 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="6" style="margin-top: 30px"> | ||||
|           <bm-line-bar-target :type="listQuery.type" :chartHeight="chartHeight" :legendList="legendList" | ||||
|             :chartMsg="chartMsgTarget" :chartId="'chartTarget'" :chartNum="chartNum" /> | ||||
|             :chartMsg="chartMsgTarget" :gridLeft="gridLeft" :chartId="'chartTarget'" :chartNum="chartNum" /> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <div class="blueTip"> | ||||
| @@ -84,7 +84,7 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="6" style="margin-top: 30px"> | ||||
|           <bm-line-bar-target :type="listQuery.type" :chartHeight="chartHeight" :legendList="legendList" | ||||
|             :chartMsg="chartMsgTarget" :chartId="'chartDayTarget'" :chartNum="chartNum" /> | ||||
|             :chartMsg="chartMsgTarget" :gridLeft="gridLeft" :chartId="'chartDayTarget'" :chartNum="chartNum" /> | ||||
|         </el-col> | ||||
|         <!-- <el-col :span="6"> | ||||
|           <div class="blueTip"> | ||||
| @@ -103,8 +103,8 @@ | ||||
|           :chartId="chartId" :chartNum="chartNum" /> | ||||
|         <!-- </el-col> --> | ||||
|       </el-row> | ||||
|       <base-table :key="showTable" :span-method="objectSpanMethod" :table-props="tableProps" :page="listQuery.current" | ||||
|         :limit="listQuery.size" :table-data="tableData" :max-height="tableH" /> | ||||
|       <base-table :key="showTable" :table-props="tableProps" :page="listQuery.current" :limit="listQuery.size" | ||||
|         :table-data="tableData" :max-height="tableH" /> | ||||
|     </div> | ||||
|     <!-- <div class="containerBottom"> | ||||
|  | ||||
| @@ -130,6 +130,7 @@ export default { | ||||
|       currentMenu: '邯郸', | ||||
|       end: undefined, | ||||
|       title: '', | ||||
|       gridLeft:true, | ||||
|       listQuery: { | ||||
|         pageNo: 1, | ||||
|         pageSize: 999, | ||||
| @@ -222,9 +223,10 @@ export default { | ||||
|         xData: [], | ||||
|         yName: "单位/MW", | ||||
|         yAxis: { | ||||
|           show: true, | ||||
|           type: "value", | ||||
|           name: "单位/MW", | ||||
|           show: false, | ||||
|           // splitNumber: 4, | ||||
|           nameTextStyle: { | ||||
|             fontSize: 12, | ||||
|             align: "right", | ||||
| @@ -239,10 +241,10 @@ export default { | ||||
|         color: ["#8EF0AB", "#288AFF"], | ||||
|         xData: [], | ||||
|         yName: "单位/MW", | ||||
|         yAxis: | ||||
|         { | ||||
|         yAxis:{ | ||||
|           type: "value", | ||||
|           name: "单位/MW", | ||||
|           // splitNumber: 4, | ||||
|           nameTextStyle: { | ||||
|             fontSize: 12, | ||||
|             align: "right", | ||||
| @@ -252,13 +254,12 @@ export default { | ||||
|         series: [ | ||||
|           { | ||||
|             name: "芯片总功率", | ||||
|             data: [ | ||||
|             ], | ||||
|             data: [], | ||||
|             type: "bar", | ||||
|             barWidth: 20, | ||||
|             label: { | ||||
|               show: true, | ||||
|               position: [10, -16], | ||||
|               position: [-30, -16], | ||||
|               color: "#68C483", | ||||
|               formatter: function (params) { | ||||
|                 return params.value | ||||
| @@ -310,13 +311,6 @@ export default { | ||||
|     }, | ||||
|     tableProps() { | ||||
|       return [ | ||||
|         { | ||||
|           prop: "factory", | ||||
|           label: "工厂名称", | ||||
|           // filter: (val) => factoryList[val], | ||||
|           minWidth: 200, | ||||
|           showOverflowtooltip: true, | ||||
|         }, | ||||
|         { | ||||
|           prop: "item", | ||||
|           label: "科目", | ||||
| @@ -342,6 +336,9 @@ export default { | ||||
|   }, | ||||
|   watch: { | ||||
|     // 监听左侧菜单栏是否展开 | ||||
|     currentMenu() { | ||||
|       this.getDataList() | ||||
|     }, | ||||
|     isOpen(val) { | ||||
|       if (this.$route.name === "productionSituationMW") { | ||||
|         this.chartNum++; | ||||
| @@ -494,36 +491,66 @@ export default { | ||||
|       this.chartMsgYearTarget.series[0].data = [] | ||||
|       this.chartMsgYearTarget.series[1].data = [] | ||||
|       console.log(this.listQuery); | ||||
|       if (!this.listQuery.startDate && !this.listQuery.endDate) { | ||||
|         return this.$message('请选择起止时间') | ||||
|       } | ||||
|       let arr = [] | ||||
|       this.currentMenu === '邯郸' ? arr.push(1) : arr.push(0) | ||||
|       this.listQuery.factory = arr | ||||
|       const res = await getProductionSituationMWData(this.listQuery) | ||||
|       if (this.listQuery.type === 2) { | ||||
|         console.log(res.data.list.slice(res.data.list.length - 2, res.data.list.length)); | ||||
|         res.data.list.forEach((ele, index) => { | ||||
|           let i = index + 1 | ||||
|           // this.chartMsg.xData.push(ele.titleValue.replace(/[^\d]/g, " ")) | ||||
|           this.otherProps.push({ | ||||
|             label: ele.titleValue, | ||||
|             prop: 'value' + i | ||||
|           }) | ||||
|       let maxData = [] | ||||
|       res.data.list.forEach((ele, index) => { | ||||
|         let i = index + 1 | ||||
|         // this.chartMsg.xData.push(ele.titleValue.replace(/[^\d]/g, " ")) | ||||
|         this.otherProps.push({ | ||||
|           label: ele.titleValue, | ||||
|           prop: 'value' + i | ||||
|         }) | ||||
|       }) | ||||
|       res.data.list.forEach((ele, index) => { | ||||
|         let i = index + 1 | ||||
|         let m = 'value' + i | ||||
|         ele.productionSituationPowerDataVOList.forEach((item) => { | ||||
|           maxData.push(item.chipTotalPower, item.componentTotalPower) | ||||
|           this.dataArr[0]['' + m + ''] = item.chipTotalPower | ||||
|           // this.dataArr[3].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|           this.dataArr[1]['' + m + ''] = item.componentTotalPower | ||||
|           // this.dataArr[3]['' + m + ''] = item.bipvProductOutput | ||||
|         }) | ||||
|         // ele.titleValue | ||||
|         // .push({ | ||||
|         //   label: ele.titleValue, | ||||
|         //   props: 'value' + index + 1, | ||||
|         // }) | ||||
|       }) | ||||
|       this.chartMsg.yAxis.max = Math.ceil(Math.max(...maxData) / 100) * 100 | ||||
|       this.chartMsgTarget.yAxis.max = Math.ceil(Math.max(...maxData) / 100) * 100 | ||||
|       this.chartMsg.yAxis.min = Math.ceil(Math.min(...maxData) / 100) * 100 | ||||
|       this.chartMsgTarget.yAxis.min = Math.ceil(Math.min(...maxData) / 100) * 100 | ||||
|       this.chartMsg.yAxis.interval = (this.chartMsg.yAxis.max - this.chartMsg.yAxis.min) / 4 | ||||
|       this.chartMsgTarget.yAxis.interval = (this.chartMsgTarget.yAxis.max - this.chartMsgTarget.yAxis.min) / 4 | ||||
|       if (this.listQuery.type === 2) { | ||||
|         if (res.data.list.length === 3) { | ||||
|           this.gridLeft = false | ||||
|         } else { | ||||
|           this.gridLeft = true | ||||
|         } | ||||
|         // res.data.list.forEach((ele) => { | ||||
|         res.data.list.slice(0, res.data.list.length - 2).forEach((ele, index) => { | ||||
|         res.data.list.slice(0, res.data.list.length - 3).forEach((ele, index) => { | ||||
|           // let i = index + 1 | ||||
|           this.chartMsg.xData.push(ele.titleValue.replace(/[^\d]/g, " ")) | ||||
|           this.chartMsg.xData.push(ele.titleValue.slice(0, ele.titleValue.length - 3)) | ||||
|           ele.productionSituationPowerDataVOList.forEach((item) => { | ||||
|             this.chartMsg.series[0].data.push({ | ||||
|               name: ele.titleValue, | ||||
|               value: item.chipTotalPower | ||||
|               value: item.chipTotalPower === 0 ? null : item.chipTotalPower | ||||
|             }) | ||||
|             this.chartMsg.series[1].data.push({ | ||||
|               name: ele.titleValue, | ||||
|               value: item.componentTotalPower | ||||
|               value: item.componentTotalPower === 0 ? null : item.componentTotalPower | ||||
|             }) | ||||
|           }) | ||||
|         }) | ||||
|         this.chartMsgTarget.xData.push(res.data.list[res.data.list.length - 2].titleValue.replace(/[^\d]/g, " ")) | ||||
|         this.chartMsgTarget.xData.push(res.data.list[res.data.list.length - 2].titleValue) | ||||
|         // this.chartMsgTarget.series = [{ | ||||
|         //   name: "FTO投入", | ||||
|         //   data: [ | ||||
| @@ -547,98 +574,19 @@ export default { | ||||
|         let arr = [] | ||||
|         let chip = [] | ||||
|         let std = [] | ||||
|         let obj = {} | ||||
|         let targetObj = {} | ||||
|         res.data.list.slice(res.data.list.length - 3, res.data.list.length - 1).forEach((ele, index) => { | ||||
|           console.log(ele.titleValue.search('目标')); | ||||
|           // let i = index + 1 | ||||
|           // this.chartMsgTarget.xData.push(ele.titleValue) | ||||
|           ele.productionSituationPowerDataVOList.forEach((item) => { | ||||
|             if (ele.titleValue.search('目标') != -1) { | ||||
|               chip.push({ | ||||
|                 name: "芯片总功率目标值", | ||||
|                 // barGap: '-100%', | ||||
|                 stack: 'a', | ||||
|                 data: [ | ||||
|                   { name: "芯片总功率目标值", value: item.componentTotalPower }, | ||||
|                   // { name: '芯片总功率目标值', value: 22 }, | ||||
|                   // { name: "%", value: 21.66 }, | ||||
|                   // { name: "%", value: 18.4 }, | ||||
|                 ], | ||||
|                 type: "bar", | ||||
|                 barWidth: 20, | ||||
|                 // barGap: '-100%', | ||||
|                 label: { | ||||
|                   show: true, | ||||
|                   position: [-18, -16], | ||||
|                   color: "rgba(104,196,131,.5)", | ||||
|                   formatter: function (params) { | ||||
|                     return params.value | ||||
|                   }, | ||||
|                 }, | ||||
|               },) | ||||
|               std.push({ | ||||
|                 name: "标准组件总功率目标值", | ||||
|                 stack: 'b', | ||||
|                 data: [ | ||||
|                   { name: "标准组件总功率目标值", value: item.componentYield }, | ||||
|                   // { name: '标准组件总功率目标值', value: 23 }, | ||||
|  | ||||
|                   // { name: "%", value: 7.02 }, | ||||
|                   // { name: "%", value: 80.2 }, | ||||
|                 ], | ||||
|                 type: "bar", | ||||
|                 barWidth: 20, | ||||
|                 label: { | ||||
|                   show: true, | ||||
|                   position: [0, -16], | ||||
|                   color: "rgba(40,138,255,.5)", | ||||
|                   formatter: function (params) { | ||||
|                     return params.value | ||||
|                   }, | ||||
|                 }, | ||||
|               }) | ||||
|               targetObj.chipTotalPower = item.chipTotalPower === 0 ? null : item.chipTotalPower | ||||
|               targetObj.componentTotalPower = item.componentTotalPower === 0 ? null : item.componentTotalPower | ||||
|             } else { | ||||
|               chip.unshift({ | ||||
|                 name: "芯片总功率完成值", | ||||
|                 // barGap: '-100%', | ||||
|                 stack: 'a', | ||||
|                 data: [ | ||||
|                   { name: "芯片总功率完成值", value: item.componentTotalPower }, | ||||
|                   // { name: '芯片总功率完成值', value: 55 }, | ||||
|                   // { name: "%", value: 21.66 }, | ||||
|                   // { name: "%", value: 18.4 }, | ||||
|                 ], | ||||
|                 type: "bar", | ||||
|                 barWidth: 20, | ||||
|                 // barGap: '-100%', | ||||
|                 label: { | ||||
|                   show: true, | ||||
|                   position: [-18, -16], | ||||
|                   color: "rgba(104,196,131)", | ||||
|                   formatter: function (params) { | ||||
|                     return params.value | ||||
|                   }, | ||||
|                 }, | ||||
|               },) | ||||
|               std.unshift({ | ||||
|                 name: "标准组件总功率完成值", | ||||
|                 stack: 'b', | ||||
|                 data: [ | ||||
|                   { name: "标准组件总功率完成值", value: item.componentYield }, | ||||
|                   // { name: '标准组件总功率完成值', value: 23 }, | ||||
|                   // { name: "%", value: 7.02 }, | ||||
|                   // { name: "%", value: 80.2 }, | ||||
|                 ], | ||||
|                 type: "bar", | ||||
|                 barWidth: 20, | ||||
|                 label: { | ||||
|                   show: true, | ||||
|                   position: [0, -16], | ||||
|                   color: "rgba(40,138,255)", | ||||
|                   formatter: function (params) { | ||||
|                     return params.value | ||||
|                   }, | ||||
|                 }, | ||||
|               }) | ||||
|               obj.chipTotalPower = item.chipTotalPower === 0 ? null : item.chipTotalPower | ||||
|               obj.componentTotalPower = item.componentTotalPower === 0 ? null : item.componentTotalPower | ||||
|             } | ||||
|  | ||||
|             // this.chartMsgTarget.series[1].data.push() | ||||
| @@ -646,7 +594,89 @@ export default { | ||||
|             // this.chartMsgTarget.series[3].data.push() | ||||
|           }) | ||||
|         }) | ||||
|         console.log('arr', arr) | ||||
|         chip.push({ | ||||
|           name: "芯片总功率完成值", | ||||
|           // barGap: '-100%', | ||||
|           stack: 'a', | ||||
|           data: [ | ||||
|             { name: "芯片总功率完成值", value: obj.chipTotalPower, titleValue: obj.chipTotalPower }, | ||||
|             // { name: '芯片总功率完成值', value: 55 }, | ||||
|             // { name: "%", value: 21.66 }, | ||||
|             // { name: "%", value: 18.4 }, | ||||
|           ], | ||||
|           type: "bar", | ||||
|           barWidth: 20, | ||||
|           // barGap: '-100%', | ||||
|           label: { | ||||
|             show: true, | ||||
|             position: [-18, -16], | ||||
|             color: "rgba(104,196,131)", | ||||
|             formatter: function (params) { | ||||
|               return params.value | ||||
|             }, | ||||
|           }, | ||||
|         }, { | ||||
|           name: "芯片总功率目标值", | ||||
|           // barGap: '-100%', | ||||
|           stack: 'a', | ||||
|           data: [ | ||||
|             { name: "芯片总功率目标值", value: (targetObj.chipTotalPower - obj.chipTotalPower) > 0 ? (targetObj.chipTotalPower - obj.chipTotalPower) : null, titleValue: targetObj.chipTotalPower }, | ||||
|             // { name: '芯片总功率目标值', value: 22 }, | ||||
|             // { name: "%", value: 21.66 }, | ||||
|             // { name: "%", value: 18.4 }, | ||||
|           ], | ||||
|           type: "bar", | ||||
|           // barGap: '-100%', | ||||
|           label: { | ||||
|             show: true, | ||||
|             position: [-18, -16], | ||||
|             color: "rgba(104,196,131,.5)", | ||||
|             formatter: function (params) { | ||||
|               return params.value | ||||
|             }, | ||||
|           }, | ||||
|         }) | ||||
|         std.push({ | ||||
|           name: "标准组件总功率完成值", | ||||
|           stack: 'b', | ||||
|           data: [ | ||||
|             { name: "标准组件总功率完成值", value: obj.componentTotalPower,titleValue:obj.componentTotalPower }, | ||||
|             // { name: '标准组件总功率完成值', value: 23 }, | ||||
|             // { name: "%", value: 7.02 }, | ||||
|             // { name: "%", value: 80.2 }, | ||||
|           ], | ||||
|           type: "bar", | ||||
|           barWidth: 20, | ||||
|           label: { | ||||
|             show: true, | ||||
|             position: [0, -16], | ||||
|             color: "rgba(40,138,255)", | ||||
|             formatter: function (params) { | ||||
|               return params.value | ||||
|             }, | ||||
|           }, | ||||
|         }, { | ||||
|           name: "标准组件总功率目标值", | ||||
|           stack: 'b', | ||||
|           data: [ | ||||
|             { name: "标准组件总功率目标值", value: (targetObj.componentTotalPower - obj.componentTotalPower) > 0 ? (targetObj.componentTotalPower - obj.componentTotalPower) : null, titleValue: targetObj.componentTotalPower }, | ||||
|             // { name: '标准组件总功率目标值', value: 23 }, | ||||
|  | ||||
|             // { name: "%", value: 7.02 }, | ||||
|             // { name: "%", value: 80.2 }, | ||||
|           ], | ||||
|           type: "bar", | ||||
|           barWidth: 20, | ||||
|           label: { | ||||
|             show: true, | ||||
|             position: [0, -16], | ||||
|             color: "rgba(40,138,255,.5)", | ||||
|             formatter: function (params) { | ||||
|               return params.value | ||||
|             }, | ||||
|           }, | ||||
|         }) | ||||
|         console.log('arr', chip,std) | ||||
|         this.chartMsgTarget.series = [...chip, ...std] | ||||
|         // arr.forEach((ele) => { | ||||
|  | ||||
| @@ -658,55 +688,33 @@ export default { | ||||
|           ele.productionSituationPowerDataVOList.forEach((item) => { | ||||
|             this.chartMsgYearTarget.series[0].data.push({ | ||||
|               name: ele.titleValue, | ||||
|               value: item.chipTotalPower | ||||
|               value: item.chipTotalPower === 0 ? null : item.chipTotalPower | ||||
|             }) | ||||
|             this.chartMsgYearTarget.series[1].data.push({ | ||||
|               name: ele.titleValue, | ||||
|               value: item.componentTotalPower | ||||
|               value: item.componentTotalPower === 0 ? null : item.componentTotalPower | ||||
|             }) | ||||
|           }) | ||||
|         }) | ||||
|         // }) | ||||
|         console.log(this.chartMsg.xData) | ||||
|         res.data.list.forEach((ele, index) => { | ||||
|           let i = index + 1 | ||||
|           let m = 'value' + i | ||||
|           ele.productionSituationPowerDataVOList.forEach((item) => { | ||||
|             this.dataArr[0]['' + m + ''] = item.chipTotalPower | ||||
|             this.dataArr[0].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             this.dataArr[1].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             // this.dataArr[3].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             this.dataArr[1]['' + m + ''] = item.componentTotalPower | ||||
|             // this.dataArr[3]['' + m + ''] = item.bipvProductOutput | ||||
|           }) | ||||
|           // ele.titleValue | ||||
|           // .push({ | ||||
|           //   label: ele.titleValue, | ||||
|           //   props: 'value' + index + 1, | ||||
|           // }) | ||||
|         }) | ||||
|       } else if (this.listQuery.type === 1 || this.listQuery.type === 0) { | ||||
|         console.log(res.data.list.slice(res.data.list.length - 2, res.data.list.length)); | ||||
|         res.data.list.forEach((ele, index) => { | ||||
|           let i = index + 1 | ||||
|           // this.chartMsg.xData.push(ele.titleValue.replace(/[^\d]/g, " ")) | ||||
|           this.otherProps.push({ | ||||
|             label: ele.titleValue, | ||||
|             prop: 'value' + i | ||||
|           }) | ||||
|         }) | ||||
|         if (res.data.list.length === 2) { | ||||
|           this.gridLeft = false | ||||
|         } else { | ||||
|           this.gridLeft = true | ||||
|         } | ||||
|         // res.data.list.forEach((ele) => { | ||||
|         res.data.list.slice(0, res.data.list.length - 1).forEach((ele, index) => { | ||||
|         res.data.list.slice(0, res.data.list.length - 2).forEach((ele, index) => { | ||||
|           // let i = index + 1 | ||||
|           this.chartMsg.xData.push(ele.titleValue.replace(/[^\d]/g, " ")) | ||||
|           this.chartMsg.xData.push(ele.titleValue.slice(0, ele.titleValue.length - 3)) | ||||
|           ele.productionSituationPowerDataVOList.forEach((item) => { | ||||
|             this.chartMsg.series[0].data.push({ | ||||
|               name: ele.titleValue, | ||||
|               value: item.chipTotalPower | ||||
|               value: item.chipTotalPower === 0 ? null : item.chipTotalPower | ||||
|             }) | ||||
|             this.chartMsg.series[1].data.push({ | ||||
|               name: ele.titleValue, | ||||
|               value: item.componentTotalPower | ||||
|               value: item.componentTotalPower === 0 ? null : item.componentTotalPower | ||||
|             }) | ||||
|           }) | ||||
|         }) | ||||
| @@ -734,98 +742,19 @@ export default { | ||||
|         let arr = [] | ||||
|         let chip = [] | ||||
|         let std = [] | ||||
|         res.data.list.slice(res.data.list.length - 1, res.data.list.length).forEach((ele, index) => { | ||||
|         let obj = {} | ||||
|         let targetObj = {} | ||||
|         res.data.list.slice(res.data.list.length - 2, res.data.list.length).forEach((ele, index) => { | ||||
|           console.log(ele.titleValue.search('目标')); | ||||
|           // let i = index + 1 | ||||
|           // this.chartMsgTarget.xData.push(ele.titleValue) | ||||
|           ele.productionSituationPowerDataVOList.forEach((item) => { | ||||
|             if (ele.titleValue.search('目标') != -1) { | ||||
|               chip.push({ | ||||
|                 name: "芯片总功率目标值", | ||||
|                 // barGap: '-100%', | ||||
|                 stack: 'a', | ||||
|                 data: [ | ||||
|                   { name: "芯片总功率目标值", value: item.componentTotalPower }, | ||||
|                   // { name: '芯片总功率目标值', value: 22 }, | ||||
|                   // { name: "%", value: 21.66 }, | ||||
|                   // { name: "%", value: 18.4 }, | ||||
|                 ], | ||||
|                 type: "bar", | ||||
|                 barWidth: 20, | ||||
|                 // barGap: '-100%', | ||||
|                 label: { | ||||
|                   show: true, | ||||
|                   position: [-18, -16], | ||||
|                   color: "rgba(104,196,131,.5)", | ||||
|                   formatter: function (params) { | ||||
|                     return params.value | ||||
|                   }, | ||||
|                 }, | ||||
|               },) | ||||
|               std.push({ | ||||
|                 name: "标准组件总功率目标值", | ||||
|                 stack: 'b', | ||||
|                 data: [ | ||||
|                   { name: "标准组件总功率目标值", value: item.componentYield }, | ||||
|                   // { name: '标准组件总功率目标值', value: 23 }, | ||||
|  | ||||
|                   // { name: "%", value: 7.02 }, | ||||
|                   // { name: "%", value: 80.2 }, | ||||
|                 ], | ||||
|                 type: "bar", | ||||
|                 barWidth: 20, | ||||
|                 label: { | ||||
|                   show: true, | ||||
|                   position: [0, -16], | ||||
|                   color: "rgba(40,138,255,.5)", | ||||
|                   formatter: function (params) { | ||||
|                     return params.value | ||||
|                   }, | ||||
|                 }, | ||||
|               }) | ||||
|               targetObj.chipTotalPower = item.chipTotalPower === 0 ? null : item.chipTotalPower | ||||
|               targetObj.componentTotalPower = item.componentTotalPower === 0 ? null : item.componentTotalPower | ||||
|             } else { | ||||
|               chip.unshift({ | ||||
|                 name: "芯片总功率完成值", | ||||
|                 // barGap: '-100%', | ||||
|                 stack: 'a', | ||||
|                 data: [ | ||||
|                   { name: "芯片总功率完成值", value: item.componentTotalPower }, | ||||
|                   // { name: '芯片总功率完成值', value: 55 }, | ||||
|                   // { name: "%", value: 21.66 }, | ||||
|                   // { name: "%", value: 18.4 }, | ||||
|                 ], | ||||
|                 type: "bar", | ||||
|                 barWidth: 20, | ||||
|                 // barGap: '-100%', | ||||
|                 label: { | ||||
|                   show: true, | ||||
|                   position: [-18, -16], | ||||
|                   color: "rgba(104,196,131)", | ||||
|                   formatter: function (params) { | ||||
|                     return params.value | ||||
|                   }, | ||||
|                 }, | ||||
|               },) | ||||
|               std.unshift({ | ||||
|                 name: "标准组件总功率完成值", | ||||
|                 stack: 'b', | ||||
|                 data: [ | ||||
|                   { name: "标准组件总功率完成值", value: item.componentYield }, | ||||
|                   // { name: '标准组件总功率完成值', value: 23 }, | ||||
|                   // { name: "%", value: 7.02 }, | ||||
|                   // { name: "%", value: 80.2 }, | ||||
|                 ], | ||||
|                 type: "bar", | ||||
|                 barWidth: 20, | ||||
|                 label: { | ||||
|                   show: true, | ||||
|                   position: [0, -16], | ||||
|                   color: "rgba(40,138,255)", | ||||
|                   formatter: function (params) { | ||||
|                     return params.value | ||||
|                   }, | ||||
|                 }, | ||||
|               }) | ||||
|               obj.chipTotalPower = item.chipTotalPower === 0 ? null : item.chipTotalPower | ||||
|               obj.componentTotalPower = item.componentTotalPower === 0 ? null : item.componentTotalPower | ||||
|             } | ||||
|  | ||||
|             // this.chartMsgTarget.series[1].data.push() | ||||
| @@ -833,57 +762,101 @@ export default { | ||||
|             // this.chartMsgTarget.series[3].data.push() | ||||
|           }) | ||||
|         }) | ||||
|         console.log('arr', arr) | ||||
|         this.chartMsgTarget.series = [...chip,...std] | ||||
|         console.log(this.chartMsg.xData) | ||||
|         res.data.list.forEach((ele, index) => { | ||||
|           let i = index + 1 | ||||
|           let m = 'value' + i | ||||
|           ele.productionSituationPowerDataVOList.forEach((item) => { | ||||
|             this.dataArr[0]['' + m + ''] = item.chipTotalPower | ||||
|             this.dataArr[0].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             this.dataArr[1].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             // this.dataArr[3].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             this.dataArr[1]['' + m + ''] = item.componentTotalPower | ||||
|           }) | ||||
|           // ele.titleValue | ||||
|           // .push({ | ||||
|           //   label: ele.titleValue, | ||||
|           //   props: 'value' + index + 1, | ||||
|           // }) | ||||
|         chip.push({ | ||||
|           name: "芯片总功率完成值", | ||||
|           // barGap: '-100%', | ||||
|           stack: 'a', | ||||
|           data: [ | ||||
|             { name: "芯片总功率完成值", value: obj.chipTotalPower, titleValue: obj.chipTotalPower }, | ||||
|             // { name: '芯片总功率完成值', value: 55 }, | ||||
|             // { name: "%", value: 21.66 }, | ||||
|             // { name: "%", value: 18.4 }, | ||||
|           ], | ||||
|           type: "bar", | ||||
|           barWidth: 20, | ||||
|           // barGap: '-100%', | ||||
|           label: { | ||||
|             show: true, | ||||
|             position: [-18, -16], | ||||
|             color: "rgba(104,196,131)", | ||||
|             formatter: function (params) { | ||||
|               return params.value | ||||
|             }, | ||||
|           }, | ||||
|         }, { | ||||
|           name: "芯片总功率目标值", | ||||
|           // barGap: '-100%', | ||||
|           stack: 'a', | ||||
|           data: [ | ||||
|             { name: "芯片总功率目标值", value: (targetObj.chipTotalPower - obj.chipTotalPower) > 0 ? (targetObj.chipTotalPower - obj.chipTotalPower) : null, titleValue: targetObj.chipTotalPower }, | ||||
|             // { name: '芯片总功率目标值', value: 22 }, | ||||
|             // { name: "%", value: 21.66 }, | ||||
|             // { name: "%", value: 18.4 }, | ||||
|           ], | ||||
|           type: "bar", | ||||
|           // barGap: '-100%', | ||||
|           label: { | ||||
|             show: true, | ||||
|             position: [-18, -16], | ||||
|             color: "rgba(104,196,131,.5)", | ||||
|             formatter: function (params) { | ||||
|               return params.value | ||||
|             }, | ||||
|           }, | ||||
|         }) | ||||
|         std.push({ | ||||
|           name: "标准组件总功率完成值", | ||||
|           stack: 'b', | ||||
|           data: [ | ||||
|             { name: "标准组件总功率完成值", value: obj.componentTotalPower, titleValue: obj.componentTotalPower }, | ||||
|             // { name: '标准组件总功率完成值', value: 23 }, | ||||
|             // { name: "%", value: 7.02 }, | ||||
|             // { name: "%", value: 80.2 }, | ||||
|           ], | ||||
|           type: "bar", | ||||
|           barWidth: 20, | ||||
|           label: { | ||||
|             show: true, | ||||
|             position: [0, -16], | ||||
|             color: "rgba(40,138,255)", | ||||
|             formatter: function (params) { | ||||
|               return params.value | ||||
|             }, | ||||
|           }, | ||||
|         }, { | ||||
|           name: "标准组件总功率目标值", | ||||
|           stack: 'b', | ||||
|           data: [ | ||||
|             { name: "标准组件总功率目标值", value: (targetObj.componentTotalPower - obj.componentTotalPower) > 0 ? (targetObj.componentTotalPower - obj.componentTotalPower) : null, titleValue: targetObj.componentTotalPower }, | ||||
|             // { name: '标准组件总功率目标值', value: 23 }, | ||||
|  | ||||
|             // { name: "%", value: 7.02 }, | ||||
|             // { name: "%", value: 80.2 }, | ||||
|           ], | ||||
|           type: "bar", | ||||
|           barWidth: 20, | ||||
|           label: { | ||||
|             show: true, | ||||
|             position: [0, -16], | ||||
|             color: "rgba(40,138,255,.5)", | ||||
|             formatter: function (params) { | ||||
|               return params.value | ||||
|             }, | ||||
|           }, | ||||
|         }) | ||||
|         console.log('arr', chip, std) | ||||
|         this.chartMsgTarget.series = [...chip, ...std] | ||||
|       } else { | ||||
|         // if (this.currentMenu !== '瑞昌') { | ||||
|         res.data.list.forEach((ele, index) => { | ||||
|           let i = index + 1 | ||||
|           this.chartMsg.xData.push(ele.titleValue) | ||||
|           this.otherProps.push({ | ||||
|             label: ele.titleValue, | ||||
|             prop: 'value' + i | ||||
|           }) | ||||
|         }) | ||||
|         console.log(this.otherProps) | ||||
|         res.data.list.forEach((ele, index) => { | ||||
|           let i = index + 1 | ||||
|           let m = 'value' + i | ||||
|           ele.productionSituationPowerDataVOList.forEach((item) => { | ||||
|             this.dataArr[0]['' + m + ''] = item.chipTotalPower | ||||
|             this.dataArr[0].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             this.dataArr[1].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             this.dataArr[1]['' + m + ''] = item.componentTotalPower | ||||
|           }) | ||||
|           // ele.titleValue | ||||
|           // .push({ | ||||
|           //   label: ele.titleValue, | ||||
|           //   props: 'value' + index + 1, | ||||
|           // }) | ||||
|         }) | ||||
|         for (let i in this.dataArr[0]) { | ||||
|           console.log(this.dataArr[0]['item']); | ||||
|           this.chartMsg.series[0].name = this.dataArr[0]['item'] | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[0].data.push({ | ||||
|               name: this.dataArr[0]['item'], | ||||
|               value: this.dataArr[0][i] | ||||
|               value: this.dataArr[0][i] === 0 ? null : this.dataArr[0][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
| @@ -892,7 +865,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[1].data.push({ | ||||
|               name: this.dataArr[1]['item'], | ||||
|               value: this.dataArr[1][i] | ||||
|               value: this.dataArr[1][i] === 0 ? null : this.dataArr[1][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -84,7 +84,7 @@ | ||||
|             :chartMsg="chartMsgYearTarget" :chartId=" 'yearData'" :chartNum="chartNum" /> | ||||
|         </el-col> --> | ||||
|       </el-row> | ||||
|       <base-table :key="showTable" :span-method="objectSpanMethod" :table-props="tableProps" :page="listQuery.current" | ||||
|       <base-table :key="showTable" :table-props="tableProps" :page="listQuery.current" | ||||
|         :limit="listQuery.size" :table-data="tableData" :max-height="tableH" /> | ||||
|     </div> | ||||
|     <!-- <div class="containerBottom"> | ||||
| @@ -173,6 +173,14 @@ export default { | ||||
|           { | ||||
|             type: "value", | ||||
|             name: "单位/片", | ||||
|             splitNumber: 4, | ||||
|             // min: function (value) {//取最小值向下取整为最小刻度 | ||||
|             //   return Math.floor(value.min) | ||||
|             // }, | ||||
|             // max: function (value) {//取最大值向上取整为最大刻度 | ||||
|             //   return Math.ceil(value.max) | ||||
|             // }, | ||||
|             alignTicks: true, | ||||
|             nameTextStyle: { | ||||
|               fontSize: 12, | ||||
|               align: "right", | ||||
| @@ -182,6 +190,12 @@ export default { | ||||
|           { | ||||
|             type: 'value', | ||||
|             // inverse: true, | ||||
|             alignTicks: true, | ||||
|             // min: 0, | ||||
|             // max: 100, | ||||
|             // scale: true, | ||||
|             // interval: 25,//间隔 | ||||
|             splitNumber: 4, | ||||
|             name: "单位/%", | ||||
|             nameTextStyle: { | ||||
|               fontSize: 12, | ||||
| @@ -232,6 +246,15 @@ export default { | ||||
|           { | ||||
|             type: "value", | ||||
|             name: "单位/片", | ||||
|             // min: function (value) {//取最小值向下取整为最小刻度 | ||||
|             //   return Math.floor(value.min) | ||||
|             // }, | ||||
|             // max: function (value) {//取最大值向上取整为最大刻度 | ||||
|             //   return Math.ceil(value.max) | ||||
|             // }, | ||||
|             alignTicks:true, | ||||
|             // splitNumber: 4, | ||||
|             // scale: true, | ||||
|             nameTextStyle: { | ||||
|               fontSize: 12, | ||||
|               align: "right", | ||||
| @@ -242,6 +265,12 @@ export default { | ||||
|             type: 'value', | ||||
|             // inverse: true, | ||||
|             name: "单位/%", | ||||
|             alignTicks: true, | ||||
|             // min: 0, | ||||
|             // max:100, | ||||
|             // scale: true, | ||||
|             // interval: 25,//间隔 | ||||
|             splitNumber: 4, | ||||
|             nameTextStyle: { | ||||
|               fontSize: 12, | ||||
|               align: "right", | ||||
| @@ -256,12 +285,13 @@ export default { | ||||
|             data: [], | ||||
|             type: "bar", | ||||
|             barWidth: 20, | ||||
|             yAxisIndex: 0, | ||||
|             label: { | ||||
|               show: true, | ||||
|               position: [-18, -16], | ||||
|               color: "#68C483", | ||||
|               formatter: function (params) { | ||||
|                 return params.value + "片"; | ||||
|                 return params.value | ||||
|               }, | ||||
|             }, | ||||
|           }, | ||||
| @@ -269,6 +299,7 @@ export default { | ||||
|             name: "", | ||||
|             // yAxisIndex: 0, | ||||
|             data: [], | ||||
|             yAxisIndex: 0, | ||||
|             type: "bar", | ||||
|             barWidth: 20, | ||||
|             label: { | ||||
| @@ -276,7 +307,7 @@ export default { | ||||
|               position: [0, -16], | ||||
|               color: "#288AFF", | ||||
|               formatter: function (params) { | ||||
|                 return params.value + "片"; | ||||
|                 return params.value | ||||
|               }, | ||||
|             }, | ||||
|           }, | ||||
| @@ -285,13 +316,14 @@ export default { | ||||
|               // yAxisIndex: 0, | ||||
|             data: [], | ||||
|             type: "bar", | ||||
|             yAxisIndex: 0, | ||||
|             barWidth: 20, | ||||
|             label: { | ||||
|               show: true, | ||||
|               position: [0, -16], | ||||
|               color: "#64BDFF", | ||||
|               formatter: function (params) { | ||||
|                 return params.value+ "片"; | ||||
|                 return params.value | ||||
|               }, | ||||
|             }, | ||||
|           }, | ||||
| @@ -307,7 +339,7 @@ export default { | ||||
|               show: true, | ||||
|               color: "#FFAE17", | ||||
|               formatter: function (params) { | ||||
|                 return params.value.toFixed(2) + "%"; | ||||
|                 return params.value.toFixed(2) | ||||
|               }, | ||||
|             }, | ||||
|           }, | ||||
| @@ -326,13 +358,6 @@ export default { | ||||
|   computed: { | ||||
|     tableProps() { | ||||
|       return [ | ||||
|         { | ||||
|           prop: "factory", | ||||
|           label: "工厂名称", | ||||
|           // filter: (val) => factoryList[val], | ||||
|           minWidth: 200, | ||||
|           showOverflowtooltip: true, | ||||
|         }, | ||||
|         { | ||||
|           prop: "item", | ||||
|           label: "科目", | ||||
| @@ -363,6 +388,9 @@ export default { | ||||
|     // 监听左侧菜单栏是否展开 | ||||
|     type(val) { | ||||
|  | ||||
|     }, | ||||
|     currentMenu() { | ||||
|       this.getDataList() | ||||
|     }, | ||||
|     isOpen(val) { | ||||
|       if (this.$route.name === "productionYield") { | ||||
| @@ -512,8 +540,12 @@ export default { | ||||
|       this.chartMsg.series[1].data = [] | ||||
|       this.chartMsg.series[2].data = [] | ||||
|       this.chartMsg.series[3].data = [] | ||||
|       this.chartMsgYearTarget.xData = [] | ||||
|       this.chartMsgYearTarget.series[0].data = [] | ||||
|       this.chartMsgYearTarget.series[1].data = [] | ||||
|       if (!this.listQuery.startDate && !this.listQuery.endDate) { | ||||
|         return this.$message('请选择起止时间') | ||||
|       } | ||||
|       let arr = [] | ||||
|       this.currentMenu === '邯郸' ? arr.push(1) : arr.push(0) | ||||
|       this.listQuery.factory = arr | ||||
| @@ -621,10 +653,6 @@ export default { | ||||
|           let m = 'value' + i | ||||
|           ele.productYieldDataVOList.forEach((item) => { | ||||
|             dataArr[0]['' + m + ''] = item.ftoInput | ||||
|             dataArr[0].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             dataArr[1].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             dataArr[2].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             dataArr[3].factory = item.factory == 1 ? '邯郸' : '瑞昌' | ||||
|             dataArr[1]['' + m + ''] = item.chipYield | ||||
|             dataArr[2]['' + m + ''] = item.componentYield | ||||
|             dataArr[3]['' + m + ''] = item.comprehensiveYieldRate | ||||
| @@ -635,7 +663,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[0].data.push({ | ||||
|               name: dataArr[0]['item'], | ||||
|               value: dataArr[0][i] | ||||
|               value: dataArr[0][i] === 0 ? null : dataArr[0][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
| @@ -644,7 +672,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[1].data.push({ | ||||
|               name: dataArr[1]['item'], | ||||
|               value: dataArr[1][i] | ||||
|               value: dataArr[1][i] === 0 ? null : dataArr[1][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
| @@ -653,7 +681,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[2].data.push({ | ||||
|               name: dataArr[2]['item'], | ||||
|               value: dataArr[2][i] | ||||
|               value: dataArr[2][i] === 0 ? null : dataArr[2][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
| @@ -662,7 +690,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[3].data.push({ | ||||
|               name: dataArr[3]['item'], | ||||
|               value: dataArr[3][i] | ||||
|               value: dataArr[3][i] === 0 ? null : dataArr[3][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
| @@ -695,7 +723,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[0].data.push({ | ||||
|               name: dataArr[0]['item'], | ||||
|               value: dataArr[0][i] | ||||
|               value: dataArr[0][i] === 0 ? null : dataArr[0][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
| @@ -704,7 +732,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[1].data.push({ | ||||
|               name: dataArr[1]['item'], | ||||
|               value: dataArr[1][i] | ||||
|               value: dataArr[1][i] === 0 ? null : dataArr[1][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
| @@ -713,7 +741,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[2].data.push({ | ||||
|               name: dataArr[2]['item'], | ||||
|               value: dataArr[2][i] | ||||
|               value: dataArr[2][i] === 0 ? null : dataArr[2][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
| @@ -722,7 +750,7 @@ export default { | ||||
|           if (i.search('value') === 0) { | ||||
|             this.chartMsg.series[3].data.push({ | ||||
|               name: dataArr[3]['item'], | ||||
|               value: dataArr[3][i] | ||||
|               value: dataArr[3][i] === 0 ? null : dataArr[3][i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
|   | ||||
| @@ -137,7 +137,7 @@ | ||||
|  | ||||
|     <!-- 添加或修改菜单对话框 --> | ||||
|     <base-dialog :dialogTitle="title" :dialogVisible="open" width="50%"> | ||||
|       <el-form ref="form" :model="form" :rules="rules" label-width="100px"> | ||||
|       <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | ||||
|         <el-row> | ||||
|           <el-col :span="24"> | ||||
|             <el-form-item label="上级菜单"> | ||||
| @@ -205,6 +205,7 @@ | ||||
|                 v-model="form.sort" | ||||
|                 controls-position="right" | ||||
|                 :min="0" | ||||
|                 style="width: 100%" | ||||
|               /> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
| @@ -331,8 +332,8 @@ | ||||
|         </el-row> | ||||
|       </el-form> | ||||
|       <div slot="footer" class="dialog-footer"> | ||||
|         <el-button type="primary" @click="submitForm">确 定</el-button> | ||||
|         <el-button @click="cancel">取 消</el-button> | ||||
|         <el-button type="primary" @click="submitForm">确 定</el-button> | ||||
|       </div> | ||||
|     </base-dialog> | ||||
|   </div> | ||||
| @@ -437,6 +438,12 @@ export default { | ||||
|         }, | ||||
|       ], | ||||
|       tableBtn: [ | ||||
|         this.$auth.hasPermi("system:menu:create") | ||||
|           ? { | ||||
|               type: "add", | ||||
|               btnName: "新增", | ||||
|             } | ||||
|           : undefined, | ||||
|         this.$auth.hasPermi("system:menu:update") | ||||
|           ? { | ||||
|               type: "edit", | ||||
| @@ -449,12 +456,6 @@ export default { | ||||
|               btnName: "删除", | ||||
|             } | ||||
|           : undefined, | ||||
|         this.$auth.hasPermi("system:menu:create") | ||||
|           ? { | ||||
|               type: "add", | ||||
|               btnName: "新增", | ||||
|             } | ||||
|           : undefined, | ||||
|       ].filter((v) => v), | ||||
|       tableProps, | ||||
|       heightNum: 210, | ||||
|   | ||||
| @@ -83,7 +83,7 @@ | ||||
|               {{ parseTime(form.startTime) }} | {{ form.duration }} ms | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="12"> | ||||
|           <el-col :span="24"> | ||||
|             <el-form-item label="操作结果:"> | ||||
|               <div v-if="form.resultCode === 0"> | ||||
|                 正常 | {{ form.resultData }} | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|   <div class="app-container"> | ||||
|   <div class="user-container"> | ||||
|     <!-- <doc-alert title="用户体系" url="https://doc.iocoder.cn/user-center/" /> | ||||
|     <doc-alert title="三方登陆" url="https://doc.iocoder.cn/social-user/" /> | ||||
|     <doc-alert | ||||
| @@ -8,40 +8,43 @@ | ||||
|     /> --> | ||||
|     <!-- 搜索工作栏 --> | ||||
|  | ||||
|     <el-row :gutter="20"> | ||||
|     <el-row :gutter="8" class="user-box"> | ||||
|       <!--部门数据--> | ||||
|       <el-col :span="4" :xs="24"> | ||||
|         <div class="head-container"> | ||||
|           <el-input | ||||
|             v-model="deptName" | ||||
|             placeholder="请输入部门名称" | ||||
|             clearable | ||||
|             size="small" | ||||
|             prefix-icon="el-icon-search" | ||||
|             style="margin-bottom: 20px" | ||||
|           /> | ||||
|         </div> | ||||
|         <div class="head-container"> | ||||
|           <el-tree | ||||
|             :data="deptOptions" | ||||
|             :props="defaultProps" | ||||
|             :expand-on-click-node="false" | ||||
|             :filter-node-method="filterNode" | ||||
|             ref="tree" | ||||
|             default-expand-all | ||||
|             highlight-current | ||||
|             @node-click="handleNodeClick" | ||||
|           /> | ||||
|         <div class="user-box-left"> | ||||
|           <div class="head-container"> | ||||
|             <el-input | ||||
|               v-model="deptName" | ||||
|               placeholder="请输入部门名称" | ||||
|               clearable | ||||
|               size="small" | ||||
|               prefix-icon="el-icon-search" | ||||
|               style="margin-bottom: 20px" | ||||
|             /> | ||||
|           </div> | ||||
|           <div class="head-container"> | ||||
|             <el-tree | ||||
|               :data="deptOptions" | ||||
|               :props="defaultProps" | ||||
|               :expand-on-click-node="false" | ||||
|               :filter-node-method="filterNode" | ||||
|               ref="tree" | ||||
|               default-expand-all | ||||
|               highlight-current | ||||
|               @node-click="handleNodeClick" | ||||
|             /> | ||||
|           </div> | ||||
|         </div> | ||||
|       </el-col> | ||||
|       <!--用户数据--> | ||||
|       <el-col :span="20" :xs="24"> | ||||
|         <search-bar | ||||
|           :formConfigs="formConfig" | ||||
|           ref="searchBarForm" | ||||
|           @headBtnClick="buttonClick" | ||||
|         /> | ||||
|         <!-- <el-form | ||||
|         <div class="user-box-right"> | ||||
|           <search-bar | ||||
|             :formConfigs="formConfig" | ||||
|             ref="userSearchBarForm" | ||||
|             @headBtnClick="buttonClick" | ||||
|           /> | ||||
|           <!-- <el-form | ||||
|           :model="queryParams" | ||||
|           ref="queryForm" | ||||
|           size="small" | ||||
| @@ -104,7 +107,7 @@ | ||||
|           </el-form-item> | ||||
|         </el-form> --> | ||||
|  | ||||
|         <!-- <el-row :gutter="10" class="mb8"> | ||||
|           <!-- <el-row :gutter="10" class="mb8"> | ||||
|           <el-col :span="1.5"> | ||||
|             <el-button | ||||
|               type="primary" | ||||
| @@ -144,25 +147,25 @@ | ||||
|           ></right-toolbar> | ||||
|         </el-row> --> | ||||
|  | ||||
|         <!-- 列表 --> | ||||
|         <base-table | ||||
|           :page="queryParams.pageNo" | ||||
|           :limit="queryParams.pageSize" | ||||
|           :table-props="tableProps" | ||||
|           :table-data="userList" | ||||
|           :max-height="tableH" | ||||
|           @emitFun="handleStatusChange" | ||||
|         > | ||||
|           <method-btn | ||||
|             v-if="tableBtn.length" | ||||
|             slot="handleBtn" | ||||
|             :width="220" | ||||
|             label="操作" | ||||
|             :method-list="tableBtn" | ||||
|             @clickBtn="handleClick" | ||||
|           /> | ||||
|         </base-table> | ||||
|         <!-- <el-table v-loading="loading" :data="userList"> | ||||
|           <!-- 列表 --> | ||||
|           <base-table | ||||
|             :page="queryParams.pageNo" | ||||
|             :limit="queryParams.pageSize" | ||||
|             :table-props="tableProps" | ||||
|             :table-data="userList" | ||||
|             :max-height="tableH" | ||||
|             @emitFun="handleStatusChange" | ||||
|           > | ||||
|             <method-btn | ||||
|               v-if="tableBtn.length" | ||||
|               slot="handleBtn" | ||||
|               :width="220" | ||||
|               label="操作" | ||||
|               :method-list="tableBtn" | ||||
|               @clickBtn="handleClick" | ||||
|             /> | ||||
|           </base-table> | ||||
|           <!-- <el-table v-loading="loading" :data="userList"> | ||||
|           <el-table-column | ||||
|             label="用户编号" | ||||
|             align="center" | ||||
| @@ -288,18 +291,19 @@ | ||||
|           </el-table-column> | ||||
|         </el-table> --> | ||||
|  | ||||
|         <pagination | ||||
|           :page.sync="queryParams.pageNo" | ||||
|           :limit.sync="queryParams.pageSize" | ||||
|           :total="total" | ||||
|           @pagination="getList" | ||||
|         /> | ||||
|           <pagination | ||||
|             :page.sync="queryParams.pageNo" | ||||
|             :limit.sync="queryParams.pageSize" | ||||
|             :total="total" | ||||
|             @pagination="getList" | ||||
|           /> | ||||
|         </div> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|  | ||||
|     <!-- 添加或修改参数配置对话框 --> | ||||
|     <base-dialog :dialogTitle="title" :dialogVisible="open" width="50%"> | ||||
|       <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | ||||
|       <el-form ref="form" :model="form" :rules="rules" label-width="100px"> | ||||
|         <el-row> | ||||
|           <el-col :span="12"> | ||||
|             <el-form-item label="用户昵称" prop="nickname"> | ||||
| @@ -412,8 +416,8 @@ | ||||
|         </el-row> | ||||
|       </el-form> | ||||
|       <div slot="footer" class="dialog-footer"> | ||||
|         <el-button type="primary" @click="submitForm">确 定</el-button> | ||||
|         <el-button @click="cancel">取 消</el-button> | ||||
|         <el-button type="primary" @click="submitForm">确 定</el-button> | ||||
|       </div> | ||||
|     </base-dialog> | ||||
|  | ||||
| @@ -448,7 +452,7 @@ | ||||
|             :underline="false" | ||||
|             style="font-size: 12px; vertical-align: baseline" | ||||
|             @click="importTemplate" | ||||
|             >下载模板</el-link | ||||
|             >导出模板</el-link | ||||
|           > | ||||
|         </div> | ||||
|       </el-upload> | ||||
| @@ -606,6 +610,11 @@ export default { | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "重置", | ||||
|           name: "cancel", | ||||
|         }, | ||||
|         { | ||||
|           type: this.$auth.hasPermiOr([ | ||||
|             "system:user:create", | ||||
| @@ -615,18 +624,11 @@ export default { | ||||
|             ? "separate" | ||||
|             : "", | ||||
|         }, | ||||
|         { | ||||
|           type: this.$auth.hasPermi("system:user:create") ? "button" : "", | ||||
|           btnName: "新增", | ||||
|           name: "addNew", | ||||
|           color: "success", | ||||
|           plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: this.$auth.hasPermi("system:user:import") ? "button" : "", | ||||
|           btnName: "导入", | ||||
|           name: "import", | ||||
|           color: "warning", | ||||
|           color: "primary", | ||||
|           plain: true, | ||||
|         }, | ||||
|         { | ||||
| @@ -636,20 +638,15 @@ export default { | ||||
|           color: "primary", | ||||
|           plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: this.$auth.hasPermi("system:user:create") ? "button" : "", | ||||
|           btnName: "新增", | ||||
|           name: "addNew", | ||||
|           color: "success", | ||||
|           plain: true, | ||||
|         }, | ||||
|       ], | ||||
|       tableBtn: [ | ||||
|         this.$auth.hasPermi("system:user:update") | ||||
|           ? { | ||||
|               type: "edit", | ||||
|               btnName: "修改", | ||||
|             } | ||||
|           : undefined, | ||||
|         this.$auth.hasPermi("system:user:delete") | ||||
|           ? { | ||||
|               type: "delete", | ||||
|               btnName: "删除", | ||||
|             } | ||||
|           : undefined, | ||||
|         this.$auth.hasPermi("system:user:update-password") | ||||
|           ? { | ||||
|               type: "reset", | ||||
| @@ -662,6 +659,18 @@ export default { | ||||
|               btnName: "分配角色", | ||||
|             } | ||||
|           : undefined, | ||||
|         this.$auth.hasPermi("system:user:update") | ||||
|           ? { | ||||
|               type: "edit", | ||||
|               btnName: "修改", | ||||
|             } | ||||
|           : undefined, | ||||
|         this.$auth.hasPermi("system:user:delete") | ||||
|           ? { | ||||
|               type: "delete", | ||||
|               btnName: "删除", | ||||
|             } | ||||
|           : undefined, | ||||
|       ].filter((v) => v), | ||||
|       tableProps, | ||||
|       // 遮罩层 | ||||
| @@ -803,6 +812,15 @@ export default { | ||||
|         case "search": | ||||
|           this.handleQuery(val); | ||||
|           break; | ||||
|         case "cancel": | ||||
|           this.$refs["userSearchBarForm"].resetForm(); | ||||
|           this.queryParams.pageNo = 1; | ||||
|           this.queryParams.username = ""; | ||||
|           this.queryParams.mobile = ""; | ||||
|           this.queryParams.status = ""; | ||||
|           this.queryParams.createTime = []; | ||||
|           this.getList(); | ||||
|           break; | ||||
|         case "addNew": | ||||
|           this.handleAdd(); | ||||
|           break; | ||||
| @@ -1033,7 +1051,7 @@ export default { | ||||
|       this.upload.title = "用户导入"; | ||||
|       this.upload.open = true; | ||||
|     }, | ||||
|     /** 下载模板操作 */ | ||||
|     /** 导出模板操作 */ | ||||
|     importTemplate() { | ||||
|       importTemplate().then((response) => { | ||||
|         this.$download.excel(response, "用户导入模板.xls"); | ||||
| @@ -1090,11 +1108,19 @@ export default { | ||||
| }; | ||||
| </script> | ||||
| <style lang="scss" scoped> | ||||
| .app-container { | ||||
| .user-container { | ||||
|   width: 100%; | ||||
|   height: calc(100vh - 120px - 8px); | ||||
|   background-color: #fff; | ||||
|   border-radius: 8px; | ||||
|   padding: 8px; | ||||
|   background-color: #f2f4f9; | ||||
|  | ||||
|   .user-box { | ||||
|     .user-box-left, | ||||
|     .user-box-right { | ||||
|       background-color: #fff; | ||||
|       padding: 8px; | ||||
|       border-radius: 8px; | ||||
|       height: calc(100vh - 128px); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user