diff --git a/.env.dev b/.env.dev index 5e22299..6b6b439 100644 --- a/.env.dev +++ b/.env.dev @@ -1,7 +1,7 @@ ### # @Author: zhp # @Date: 2024-04-28 13:42:51 - # @LastEditTime: 2024-05-16 17:05:10 + # @LastEditTime: 2024-05-20 14:56:40 # @LastEditors: DY # @Description: ### @@ -12,9 +12,9 @@ ENV = 'development' VUE_APP_TITLE = 芋道管理系统 # 芋道管理系统/开发环境 -# VUE_APP_BASE_API = 'http://192.168.1.61:48080' -VUE_APP_BASE_API = 'http://glass.kszny.picaiba.com' - +VUE_APP_BASE_API = 'http://192.168.1.61:48080' +# VUE_APP_BASE_API = 'http://glass.kszny.picaiba.com' +# # 路由懒加载 VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/package.json b/package.json index d920609..4809466 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ }, "dependencies": { "@babel/parser": "7.18.4", + "@jiaminghi/data-view": "^2.10.0", "@riophae/vue-treeselect": "0.4.0", "axios": "^1.6.8", "clipboard": "2.0.8", diff --git a/src/api/energy/index.js b/src/api/energy/index.js index b96d2fa..0094c4b 100644 --- a/src/api/energy/index.js +++ b/src/api/energy/index.js @@ -1,7 +1,7 @@ /* * @Author: zhp * @Date: 2024-04-28 09:28:12 - * @LastEditTime: 2024-04-28 09:43:40 + * @LastEditTime: 2024-05-16 08:56:59 * @LastEditors: zhp * @Description: */ @@ -13,3 +13,11 @@ export function getEnergyPage(data) { data: data }) } + +export function getEnergySumPage(data) { + return request({ + url: 'ip/prod-output/cockpitComprehensiveDataMonitor', + method: 'post', + data: data + }) +} diff --git a/src/api/produceData/index.js b/src/api/produceData/index.js index 083c39b..84bbb40 100644 --- a/src/api/produceData/index.js +++ b/src/api/produceData/index.js @@ -1,7 +1,7 @@ /* * @Author: zhp * @Date: 2024-05-07 08:54:59 - * @LastEditTime: 2024-05-17 17:51:08 + * @LastEditTime: 2024-05-20 14:56:56 * @LastEditors: DY * @Description: */ @@ -104,3 +104,19 @@ export function delTarget(id) { method: 'delete' }) } + +// export function cockpitDataMonitor(data) { +// return request({ +// url: '/ip/prod-output/cockpitDataMonitor', +// method: 'post', +// data: data +// }) +// } + +export function cockpitDataMonitor(query) { + return request({ + url: 'https://restapi.amap.com/v3/weather/weatherInfo?key=95bdbdc1c387a170105f84cd416c4c9f&city=110108', + method: 'get', + query: query + }) +} diff --git a/src/assets/images/companyData/energy.png b/src/assets/images/companyData/energy.png new file mode 100644 index 0000000..e89185c Binary files /dev/null and b/src/assets/images/companyData/energy.png differ diff --git a/src/assets/images/companyData/order.png b/src/assets/images/companyData/order.png new file mode 100644 index 0000000..a0429a9 Binary files /dev/null and b/src/assets/images/companyData/order.png differ diff --git a/src/assets/images/companyData/prod-minor.png b/src/assets/images/companyData/prod-minor.png new file mode 100644 index 0000000..91220d9 Binary files /dev/null and b/src/assets/images/companyData/prod-minor.png differ diff --git a/src/assets/images/companyData/store.png b/src/assets/images/companyData/store.png new file mode 100644 index 0000000..d96dc6d Binary files /dev/null and b/src/assets/images/companyData/store.png differ diff --git a/src/assets/images/login.png b/src/assets/images/login.png new file mode 100644 index 0000000..63818b0 Binary files /dev/null and b/src/assets/images/login.png differ diff --git a/src/assets/styles/login.scss b/src/assets/styles/login.scss index 8326bc7..3c81154 100644 --- a/src/assets/styles/login.scss +++ b/src/assets/styles/login.scss @@ -133,8 +133,8 @@ $base1px: 0.15vh; // 1px / 1080px; width: 100%; clear: both; position: relative; - top: calc(56 * #{$base1px}); - height: calc(128 * #{$base1px}); + top: calc(#{$base1px}); + height: calc(100 * #{$base1px}); display: flex; align-items: center; justify-content: center; @@ -189,7 +189,7 @@ $base1px: 0.15vh; // 1px / 1080px; height: calc(16 * 0.12vh); line-height: calc(16 * 0.12vh); font-size: calc(12 * 0.12vh); - color: #8c8c8c; + color: #C7C7C7; a, a:hover, diff --git a/src/main.js b/src/main.js index a3b0f0b..1baa77b 100644 --- a/src/main.js +++ b/src/main.js @@ -18,6 +18,7 @@ import store from "./store"; import router from "./router"; import directive from "./directive"; // directive import plugins from "./plugins"; // plugins +import { scrollBoard } from '@jiaminghi/data-view' import "./assets/icons"; // icon import "./permission"; // permission control @@ -69,6 +70,7 @@ Vue.use(directive) Vue.use(plugins) Vue.use(VueMeta) Vue.use(CodeBrickZj); +Vue.use(scrollBoard) // Form Generator 组件需要使用到 tinymce import Tinymce from "@/components/tinymce/index.vue"; Vue.component("tinymce", Tinymce); diff --git a/src/mixins/chart.js b/src/mixins/chart.js index a6c0ef9..b356201 100644 --- a/src/mixins/chart.js +++ b/src/mixins/chart.js @@ -1,19 +1,19 @@ import * as echarts from "echarts"; function __resizeHandler(entries) { + console.log(entries) for (const entry of entries) { if (entry.contentBoxSize) { - // manipulate contentBoxSize - const contentBoxSize = Array.isArray(entry.contentBoxSize) - ? entry.contentBoxSize[0] - : entry.contentBoxSize; - this.chart_mixin_chartInstance.resize({ - width: - contentBoxSize.inlineSize < this.MIN_WIDTH - ? this.MIN_WIDTH - : contentBoxSize.inlineSize, - height: contentBoxSize.blockSize, - }); + // const contentBoxSize = Array.isArray(entry.contentBoxSize) + // ? entry.contentBoxSize[0] + // : entry.contentBoxSize; + // this.chart_mixin_chartInstance.resize({ + // width: + // contentBoxSize.inlineSize < this.MIN_WIDTH + // ? this.MIN_WIDTH + // : contentBoxSize.inlineSize, + // height: contentBoxSize.blockSize, + // }); } else { // manipulate contentRect this.chart_mixin_chartInstance.resize({ @@ -32,7 +32,7 @@ export default { const resizeObserver = new ResizeObserver(__resizeHandler.bind(this)); return { - MIN_WIDTH: 400, + MIN_WIDTH: 390, chart_mixin_chartInstance: null, chart_mixin_observer: resizeObserver, chart_mixin_options: { diff --git a/src/store/index.js b/src/store/index.js index 9e98a78..fbf0125 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,7 +1,15 @@ +/* + * @Author: zhp + * @Date: 2024-04-28 13:42:51 + * @LastEditTime: 2024-05-16 11:59:04 + * @LastEditors: zhp + * @Description: + */ import Vue from 'vue' import Vuex from 'vuex' import app from './modules/app' import user from './modules/user' +import home from './modules/home' import tagsView from './modules/tagsView' import permission from './modules/permission' import settings from './modules/settings' @@ -19,6 +27,7 @@ const store = new Vuex.Store({ permission, settings, dict, + home, copilot }, getters diff --git a/src/store/modules/home.js b/src/store/modules/home.js index 56b3e64..4c278cd 100644 --- a/src/store/modules/home.js +++ b/src/store/modules/home.js @@ -14,7 +14,12 @@ const state = { bipvOutput: null, }, /* 能源驾驶舱 */ - energy: {}, + energy: { + stockDOData: [], + waterList: {}, + gasList: [], + elecList:{} + }, /* 效率驾驶舱 */ efficiency: { chipOee: { @@ -29,10 +34,12 @@ const state = { target: [], current: [], previous: [], + outputNumber:[], }, stdRate: { target: [], current: [], + outputNumber:[] }, }, }, @@ -64,10 +71,12 @@ const mutations = { state.copilot.yield.bipvOutput = payload.bipvOutput; break; case "energy": - state.copilot.energy = payload.data; + state.copilot.energy.stockDOData = payload.stockDOData; + state.copilot.energy.gasList = payload.gasList; + state.copilot.energy.waterList = payload.waterList; + state.copilot.energy.elecList = payload.elecList; break; case "efficiency": - console.log('222222', payload.chipOee) state.copilot.efficiency.chipOee = payload.chipOee; state.copilot.efficiency.transformRate = payload.transformRate; state.copilot.efficiency.chipRate = payload.chipRate; @@ -81,36 +90,47 @@ const actions = { /** 初始化首页数据 */ async initHome({ commit }) { const dataArr = await getHomeInfo(); - const targetArr = await getHomeTarget(); - const payload = splitCurrentAndPrevious(dataArr, targetArr); + console.log('dataArr',dataArr); + // const targetArr = await getHomeInfo(); + const payload = splitCurrentAndPrevious(dataArr.prodOutputOutDO, dataArr.prodTargetDO,dataArr.prodOutputFtoDO +); commit("SET_HOME_INFO", payload); }, /** 初始化驾驶舱数据 */ async initCopilot({ commit }, { period, source }) { - if (source == "comprehensive") return; + // if (source == "energy") return; const fetcher = { yield: getCopilotYield, - comprehensive: getCopilotEnergy, + energy: getCopilotEnergy, efficiency: getCopilotEfficiency, }[source]; const handler = { yield: splitCurrentAndPrevious, - comprehensive: () => null, + energy: splitCurrentAndPreviousB, efficiency: splitCurrentAndPreviousA, - }[source]; + }[source] // 获取产量数据 - // console.log('qqqqqq',handler) - let { data: factoryList, type } = await fetcher(period); + let { data: factoryList, type } = await fetcher(period) let targetList = null; if (source === "yield" || source === "efficiency") { // 获取目标数据 let { data } = await fetcher(period, true) - console.log('11111',data) - targetList = data; + targetList = data } - const payload = handler(factoryList, targetList); + if (source == "energy") { + let factoryData = factoryList + const payload = handler(factoryData) + commit("SET_COPILOT_INFO", { type, payload }); + } else { + let factoryData = factoryList.prodOutputOutDO ? factoryList.prodOutputOutDO : factoryList.prodOutputRateDO + let prodOutputFtoDO = factoryList.prodOutputFtoDO ? factoryList.prodOutputFtoDO : [] + let targetData = targetList.prodTargetDO ? targetList.prodTargetDO : targetList.prodTargetDO + const payload = handler(factoryData, targetData,prodOutputFtoDO) commit("SET_COPILOT_INFO", { type, payload }); + + } + }, }; @@ -121,62 +141,201 @@ export default { actions, }; +function splitCurrentAndPreviousB(factoryListResponse) { + let factoryArr = [ + { + id: 0, + name: '瑞昌中建材光电材料有限公司', + stockData: [], + waterData: [], + elsData: [], + gasData: [], + }, + { + id: 1, + name: '邯郸中建材光电材料有限公司', + stockData: [], + waterData: [], + elsData: [], + gasData: [], + }, + { + id: 2, + name: '中建材株洲光电材料有限公司', + stockData: [], + waterData: [], + elsData: [], + gasData: [], + }, + { + id: 3, + name: '佳木斯中建材光电材料有限公司', + stockData: [], + waterData: [], + elsData: [], + gasData: [], + }, + { + id: 4, + name: '成都中建材光电材料有限公司', + stockData: [], + waterData: [], + elsData: [], + gasData: [], + }, + { + id: 5, + name: '凯盛光伏材料有限公司', + stockData: [], + waterData: [], + elsData: [], + gasData: [], + }, + { + id: 6, + name: '蚌埠兴科玻璃有限公司', + stockData: [], + waterData: [], + elsData: [], + gasData: [], + }, + ] + if (factoryListResponse) { + for (let i in factoryListResponse.stockDO) { + const index = factoryArr.findIndex(item => item.id == factoryListResponse.stockDO[i].factory) + if (index != -1) { + factoryListResponse.stockDO[i].stockInfo.forEach(ele => { + factoryArr[index].stockData.push(ele) + }); + } + + } + let stockDOData = [] + factoryArr.forEach((ele, index) => [ + stockDOData[index] = [], + ele.stockData.forEach((item) => { + let obj = {} + obj.name = item.glassType == 0 ? '玻璃芯片' : item.glassType == 1 ? '标准组件' : item.glassType == 2 ? 'BIPV' : '定制组件' + obj.value = item.stockNumber + stockDOData[index].push(obj) + }), + ]) + let gasList = [] + // if (factoryListResponse.gasDO) { + factoryListResponse.gasDO.forEach((ele) => { + gasList[ele.factory] = ele.totalEnergyValue + }) + // } + + // console.log(factoryListResponse.gasDO); + let waterObj = Object.groupBy(factoryListResponse.waterDO, ({ groupName }) => groupName) + let waterList = { + times: [], + 0: [], + 1: [], + 2: [], + 3: [], + 4: [], + 5: [], + 6: [], + } + for (let i in waterObj) { + waterList.times.push(i) + waterObj[i].forEach((ele, index) => { + waterList[ele.factory].push(ele.totalEnergyValue) + }) + } + let elecObj = Object.groupBy(factoryListResponse.elecDO, ({ groupName }) => groupName) + let elecList = { + times: [], + 0: [], + 1: [], + 2: [], + 3: [], + 4: [], + 5: [], + 6: [], + } + for (let i in elecObj) { + elecList.times.push(i) + elecObj[i].forEach((ele, index) => { + elecList[ele.factory].push(ele.totalEnergyValue) + }) + } + + return { + stockDOData, + waterList, + gasList, + elecList, + }; + } else { + let stockDOData = Array[7].fill([]) + let waterList = {} + return { + stockDOData, + waterList, + gasList, + elecList + }; + } +} + function splitCurrentAndPreviousA(factoryListResponse, targetListResponse) { - console.log('工厂',factoryListResponse); // console.log('工厂',factoryListResponse); // 初始数据 const { chipOee, transformRate, chipRate, stdRate } = initA(); - factoryListResponse = [ - { - factory: 0, - oee: 0.8, - previousYearOee: 0.7, - componentConversionEfficiency: 0.8, - previousYearComponentConversionEfficiency: 0.7, - glassType: 0, - yieldRate: 0.8, - previousYearYieldRate: 0.7, - chipYieldRate: 0.38, - componentYieldRate: 0.73, - }, - { - factory: 1, - oee: 0.8, - previousYearOee: 0.7, - componentConversionEfficiency: 0.8, - previousYearComponentConversionEfficiency: 0.7, - glassType: 1, - yieldRate: 0.8, - previousYearYieldRate: 0.7, - chipYieldRate: 0.38, - componentYieldRate: 0.73, - }, - { - factory: 2, - oee: 0.8, - previousYearOee: 0.7, - componentConversionEfficiency: 0.8, - previousYearComponentConversionEfficiency: 0.7, - glassType: 1, - yieldRate: 0.8, - previousYearYieldRate: 0.7, - chipYieldRate: 0.38, - componentYieldRate: 0.73, - }, - { - factory: 3, - oee: 0.8, - previousYearOee: 0.7, - componentConversionEfficiency: 0.8, - previousYearComponentConversionEfficiency: 0.7, - glassType: 0, - yieldRate: 0.8, - previousYearYieldRate: 0.7, - chipYieldRate: 0.38, - componentYieldRate: 0.73, - }, - ]; + // factoryListResponse = [ + // { + // factory: 0, + // oee: 0.8, + // previousYearOee: 0.7, + // componentConversionEfficiency: 0.8, + // previousYearComponentConversionEfficiency: 0.7, + // glassType: 0, + // yieldRate: 0.8, + // previousYearYieldRate: 0.7, + // chipYieldRate: 0.38, + // componentYieldRate: 0.73, + // }, + // { + // factory: 1, + // oee: 0.8, + // previousYearOee: 0.7, + // componentConversionEfficiency: 0.8, + // previousYearComponentConversionEfficiency: 0.7, + // glassType: 1, + // yieldRate: 0.8, + // previousYearYieldRate: 0.7, + // chipYieldRate: 0.38, + // componentYieldRate: 0.73, + // }, + // { + // factory: 2, + // oee: 0.8, + // previousYearOee: 0.7, + // componentConversionEfficiency: 0.8, + // previousYearComponentConversionEfficiency: 0.7, + // glassType: 1, + // yieldRate: 0.8, + // previousYearYieldRate: 0.7, + // chipYieldRate: 0.38, + // componentYieldRate: 0.73, + // }, + // { + // factory: 3, + // oee: 0.8, + // previousYearOee: 0.7, + // componentConversionEfficiency: 0.8, + // previousYearComponentConversionEfficiency: 0.7, + // glassType: 0, + // yieldRate: 0.8, + // previousYearYieldRate: 0.7, + // chipYieldRate: 0.38, + // componentYieldRate: 0.73, + // }, + // ]; if (factoryListResponse) { for (const factory of factoryListResponse) { const fId = getFactoryId(factory); @@ -187,23 +346,24 @@ function splitCurrentAndPreviousA(factoryListResponse, targetListResponse) { componentYieldRate, chipOee, componentConversionEfficiency, + componentYield } = getFactoryTargetValueA(targetListResponse, fId); - stdRate.target[fId] = chipYieldRate; - chipRate.target[fId] = componentYieldRate; + stdRate.target[fId] = componentYieldRate + chipRate.target[fId] = chipYieldRate } // 芯片OEE - chipOee.current[fId] = factory.oee * 100 || random_default(); - chipOee.previous[fId] = factory.previousYearOee * 100 || random_default(); + chipOee.current[fId] = factory.oee * 100 ; + chipOee.previous[fId] = factory.previousYearOee * 100 ; // 转化效率 transformRate.current[fId] = - factory.componentConversionEfficiency * 100 || random_default(); + factory.componentConversionEfficiency * 100 ; transformRate.previous[fId] = - factory.previousYearComponentConversionEfficiency * 100 || random_default(); + factory.previousYearComponentConversionEfficiency * 100 ; // 芯片良率 与 标准组件良率 if (![0, 1].includes(factory.glassType)) continue; - const _t = [chipRate, stdRate][factory.glassType]; - _t.current[fId] = factory.yieldRate || random_default(); - _t.previous[fId] = factory.previousYearYieldRate || random_default(); + const _t = [chipRate, stdRate][factory.glassType] + _t.current[fId] = factory.yieldRate ; + _t.previous[fId] = factory.previousYearYieldRate ; } return { @@ -215,11 +375,18 @@ function splitCurrentAndPreviousA(factoryListResponse, targetListResponse) { } } -function splitCurrentAndPrevious(factoryListResponse, targetListResponse) { - console.log('工厂',factoryListResponse); - +function splitCurrentAndPrevious(factoryListResponse, targetListResponse, prodOutputFtoListRes) { + console.log('prodOutputFtoListRes',prodOutputFtoListRes); // 初始数据 - const { chipInvest, ftoInvest, chipOutput, stdOutput, bipvOutput } = init(); + const { chipInvest, ftoInvest, chipOutput, stdOutput, bipvOutput } = init() + if (prodOutputFtoListRes) { + for (const factory of prodOutputFtoListRes) { + console.log(factory); + const fId = getFactoryId(factory); + ftoInvest.current[fId] = factory.chipInput; + ftoInvest.previous[fId] = factory.previousYearChipInput; + } + } if (factoryListResponse) { for (const factory of factoryListResponse) { const fId = getFactoryId(factory); @@ -235,8 +402,11 @@ function splitCurrentAndPrevious(factoryListResponse, targetListResponse) { chipInvest.current[fId] = factory.inputNumber; chipInvest.previous[fId] = factory.previousYearInputNumber; // FTO投入 - ftoInvest.current[fId] = factory.chipInput; - ftoInvest.previous[fId] = factory.previousYearChipInput; + // if (factory.chipInput || factory.previousYearChipInput) { + // ftoInvest.current[fId] = factory.chipInput; + // ftoInvest.previous[fId] = factory.previousYearChipInput; + // } + // 产出数据, 0 - (玻璃)芯片产出, 1 - 标准组件产出, 2 - BIPV产出 // 因为后端写的垃圾数据,所以这里要做一下判断 if (![0, 1, 2].includes(factory.glassType)) continue; @@ -248,6 +418,7 @@ function splitCurrentAndPrevious(factoryListResponse, targetListResponse) { return { chipInvest, + // ftoInvest, ftoInvest, chipOutput, stdOutput, @@ -284,16 +455,18 @@ function getFactoryTargetValue(targetList, factoryId) { * @returns */ function getFactoryTargetValueA(targetList, factoryId) { - const target = targetList.find((item) => item.factory === factoryId); + const target = targetList.find((item) => item.factory === factoryId) if (target) { return { chipYieldRate: target.chipYieldRate ?? random_default(), componentYieldRate: target.componentYieldRate ?? random_default(), + componentYield: target.componentYield ?? random_default(), }; } return { - chipYieldRate: random_default(), - componentYieldRate: random_default(), + chipYieldRate:0, + componentYieldRate:0, + componentYield:0 , }; } @@ -317,7 +490,6 @@ function initA() { }; // 芯片良率 const chipRate = deepClone(stdRate); - return { chipOee, transformRate, @@ -369,7 +541,7 @@ function random_default(min = 0, max = 1) { /* 接口 */ async function getHomeInfo() { - const { code, data } = await axios.post("/ip/prod-output/query-by-date", { + const { code, data } = await axios.post("ip/prod-output/cockpitData", { factorys: [], date: 4, }); @@ -397,18 +569,19 @@ function getUrl(copilot_module) { // 对比数据的 URL comparison: "", // 目标数据的 URL - target: "", + // target: "", }; switch (copilot_module) { case "yield": - url.comparison = "/ip/prod-output/query-by-date"; - url.target = "/ip/prod-target/query-by-date"; + url.comparison = "ip/prod-output/cockpitData"; + // url.target = "/ip/prod-target/query-by-date"; break; case "energy": + url.comparison = "ip/prod-output/cockpitComprehensiveDataMonitor"; break; case "efficiency": - url.comparison = "/ip/prod-output/query-Rate-List"; - url.target = "/ip/prod-target/query-rate-target"; + url.comparison = "ip/prod-output/cockpitDataRate"; + // url.target = "/ip/prod-target/query-rate-target"; break; } @@ -418,7 +591,7 @@ function getUrl(copilot_module) { async function doFetch(copilot_module = "yield", fetch_target, params) { const url = getUrl(copilot_module); const { code, data } = await axios.post( - fetch_target ? url.target : url.comparison, + url.comparison, { ...params, } diff --git a/src/views/copilot/components/BarChartBase.vue b/src/views/copilot/components/BarChartBase.vue index 528cfd5..8be1bdc 100644 --- a/src/views/copilot/components/BarChartBase.vue +++ b/src/views/copilot/components/BarChartBase.vue @@ -8,33 +8,25 @@ diff --git a/src/views/copilot/components/CopilotHeader.vue b/src/views/copilot/components/CopilotHeader.vue index 49e00f5..659a686 100644 --- a/src/views/copilot/components/CopilotHeader.vue +++ b/src/views/copilot/components/CopilotHeader.vue @@ -62,7 +62,6 @@ export default { methods: { toggleFullScreen() { this.isFullscreen = !this.isFullscreen; - screenfull.toggle(document.querySelector(".copilot-layout")) // 矫正宽度 // const el = document.querySelector(".copilot-layout"); diff --git a/src/views/copilot/components/FactoryDataHeader.vue b/src/views/copilot/components/FactoryDataHeader.vue new file mode 100644 index 0000000..cafa9bb --- /dev/null +++ b/src/views/copilot/components/FactoryDataHeader.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/src/views/copilot/components/FactorySelect.vue b/src/views/copilot/components/FactorySelect.vue new file mode 100644 index 0000000..b46fd14 --- /dev/null +++ b/src/views/copilot/components/FactorySelect.vue @@ -0,0 +1,137 @@ + + + diff --git a/src/views/copilot/components/LineChartBase.vue b/src/views/copilot/components/LineChartBase.vue index c4eca81..42e3ccc 100644 --- a/src/views/copilot/components/LineChartBase.vue +++ b/src/views/copilot/components/LineChartBase.vue @@ -1,55 +1,47 @@ - @@ -233,7 +458,7 @@ export default { .legend-item { position: relative; // font-size: 12px; - margin-right: 0.67vw; + margin-right: 2vw; &::before { content: ""; @@ -260,37 +485,37 @@ export default { .legend-item:nth-child(1):after, .legend-item:nth-child(1):before { - background-color: #fad162; + background-color: #8167F6; } .legend-item:nth-child(2):after, .legend-item:nth-child(2):before { - background-color: #2160f3; + background-color: #2760FF; } .legend-item:nth-child(3):after, .legend-item:nth-child(3):before { - background-color: #13dbf3; + background-color: #5996F7; } .legend-item:nth-child(4):after, .legend-item:nth-child(4):before { - background-color: #88ca67; + background-color: #8BC566; } .legend-item:nth-child(5):after, .legend-item:nth-child(5):before { - background-color: #5c97fc; + background-color: #11FAF0; } .legend-item:nth-child(6):after, .legend-item:nth-child(6):before { - background-color: #f48900; + background-color: #F3C000; } .legend-item:nth-child(7):after, .legend-item:nth-child(7):before { - background-color: #776bf0; + background-color: #F38600; } } diff --git a/src/views/copilot/components/LineChartWater.vue b/src/views/copilot/components/LineChartWater.vue new file mode 100644 index 0000000..fa05faa --- /dev/null +++ b/src/views/copilot/components/LineChartWater.vue @@ -0,0 +1,528 @@ + + + + + + + diff --git a/src/views/copilot/components/gasBarChartBase.vue b/src/views/copilot/components/gasBarChartBase.vue new file mode 100644 index 0000000..b9ec720 --- /dev/null +++ b/src/views/copilot/components/gasBarChartBase.vue @@ -0,0 +1,309 @@ + + + + + + + diff --git a/src/views/copilot/components/select.vue b/src/views/copilot/components/select.vue index ae818f3..10988c5 100644 --- a/src/views/copilot/components/select.vue +++ b/src/views/copilot/components/select.vue @@ -1,8 +1,8 @@ -