From e9a02d180b91ee7a383d25d5e19853630026b4b1 Mon Sep 17 00:00:00 2001 From: 小小儁爺 <1694218219@qq.com> Date: 星期四, 06 三月 2025 14:57:17 +0800 Subject: [PATCH] 1.看板修改 --- src/assets/images/bg3.webp | 0 src/views/login/index.vue | 71 +-- src/api/kanbanManager.js | 8 src/views/kanbanManager/zhkb_back.vue | 560 +++++++++++++++++++++++++++++++++++ src/views/kanbanManager/zhkb.vue | 116 ------ src/utils/myEcharts.js | 173 ++++++++++ 6 files changed, 776 insertions(+), 152 deletions(-) diff --git a/src/api/kanbanManager.js b/src/api/kanbanManager.js index ec3a1e0..c89ab8e 100644 --- a/src/api/kanbanManager.js +++ b/src/api/kanbanManager.js @@ -93,3 +93,11 @@ method: 'get' }) } + +// 杞﹂棿缁煎悎鐪嬫澘,宸︿笂鐢熶骇璁㈠崟宸ュ簭鎵ц鎯呭喌 +export function WorkShopCompreLeftTopCopy() { + return request({ + url: 'KanBanManagerent/WorkShopCompreLeftTopCopy', + method: 'get' + }) +} diff --git a/src/assets/images/bg3.webp b/src/assets/images/bg3.webp new file mode 100644 index 0000000..4df6cdf --- /dev/null +++ b/src/assets/images/bg3.webp Binary files differ diff --git a/src/utils/myEcharts.js b/src/utils/myEcharts.js index 3fb285e..aed1df6 100644 --- a/src/utils/myEcharts.js +++ b/src/utils/myEcharts.js @@ -2119,12 +2119,12 @@ return option } -export function all02(data) { +export function all02(data, title) { return { backgroundColor: 'transparent', // tooltip: {}, title: { - text: '姣忔湀璁㈠崟鏁伴噺/鍑哄簱鏁伴噺', + text: title, left: '50%', top: '0%', textAlign: 'center', @@ -3243,3 +3243,172 @@ } return option } + +export function bar3(data) { + const option = { + backgroundColor: 'transparent', + grid: { + left: '1%', + right: '4%', + bottom: '6%', + top: '20%', + containLabel: true + }, + legend: { // 鍥句緥缁勪欢锛岄鑹插拰鍚嶅瓧 + left: 'center', + top: 10, + itemGap: 16, + itemWidth: 18, + itemHeight: 10, + data: [{ + name: '浠诲姟鏁�' + }, + { + name: '瀹屽伐鏁�' + }], + textStyle: { + color: colorX, + fontStyle: 'normal', + fontFamily: '寰蒋闆呴粦', + fontSize: 16 + } + }, + xAxis: [ + { + type: 'category', + // data: data.map(i => i.step_code), + data: data.map(i => i.stepname), + boundaryGap: true, + axisLabel: { + interval: 0, + formatter: '{value}', + fontSize: 16, + margin: 20, + textStyle: { + color: colorX + } + }, + axisLine: { + lineStyle: { + color: '#032c58' + } + }, + splitLine: { + show: false, + lineStyle: { + color: '#032c58' + } + }, + axisTick: { + show: false + } + } + ], + yAxis: [ + { + // max: Math.max(...data.map(i => i.plan_qty)) * 1.2, + boundaryGap: false, + splitNumber: 4, + type: 'value', + axisLabel: { + textStyle: { + fontSize: 18, + color: colorX + } + }, + // name: '鍗�', + // nameTextStyle: { + // color: colorY, + // fontSize: 14, + // lineHeight: 20 + // }, + splitLine: { + show: true, + lineStyle: { + color: '#032c58' + } + }, + axisLine: { + show: true, + lineStyle: { + color: '#032c58' + } + }, + axisTick: { + show: true + } + } + ], + series: [ + { + name: '浠诲姟鏁�', + type: 'bar', + data: data.map(i => i.plan_qty), + barWidth: 20, + barGap: 0, // 鏌遍棿璺濈 + label: { // 鍥惧舰涓婄殑鏂囨湰鏍囩 + normal: { + show: true, + position: 'top', + textStyle: { + color: colorX, + fontStyle: 'normal', + fontFamily: '寰蒋闆呴粦', + fontSize: 16 + } + } + }, + itemStyle: { // 鍥惧舰鏍峰紡 + normal: { + barBorderRadius: [5, 5, 0, 0], + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ + offset: 1, color: 'rgba(127, 128, 225, 0.7)' + }, { + offset: 0.9, color: 'rgba(72, 73, 181, 0.7)' + }, { + offset: 0.31, color: 'rgba(0, 208, 208, 0.7)' + }, { + offset: 0.15, color: 'rgba(0, 208, 208, 0.7)' + }, { + offset: 0, color: 'rgba(104, 253, 255, 0.7)' + }], false) + } + } + }, + { + name: '瀹屽伐鏁�', + type: 'bar', + data: data.map(i => i.good_qty), + barWidth: 20, + barGap: 1, // 鏌遍棿璺濈 + label: { // 鍥惧舰涓婄殑鏂囨湰鏍囩 + normal: { + show: true, + position: 'top', + textStyle: { + color: colorX, + fontStyle: 'normal', + fontFamily: '寰蒋闆呴粦', + fontSize: 16 + } + } + }, + itemStyle: { // 鍥惧舰鏍峰紡 + normal: { + barBorderRadius: [5, 5, 0, 0], + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ + offset: 1, color: 'rgba(127, 128, 225, 0.7)' + }, { + offset: 0.9, color: 'rgba(72, 73, 181, 0.7)' + }, { + offset: 0.25, color: 'rgba(226, 99, 74, 0.7)' + }, { + offset: 0, color: 'rgba(253, 200, 106, 0.7)' + }], false) + } + } + } + ] + } + return option +} diff --git a/src/views/kanbanManager/zhkb.vue b/src/views/kanbanManager/zhkb.vue index 6563c7d..6f9041a 100644 --- a/src/views/kanbanManager/zhkb.vue +++ b/src/views/kanbanManager/zhkb.vue @@ -90,49 +90,13 @@ <div style="width: 925px;"> <div class="smallTitle"> <svg-icon icon-class="cxjg" class="svg_class" /> - 鐢熶骇璁㈠崟(褰撴湀) + 鍔犲伐宸ュ簭(杩�60澶�) </div> <div class="lineContent horn" style="height: 380px;display: flex;flex-direction: column;justify-content: space-between" > - <div style="height: 180px;padding: 10px;display: flex;justify-content: space-evenly"> - <div v-for="i in LeftBottomData01" :key="i.wkshp_code" class="flex_c_s"> - <div class="all_block01 flex_c_s" style="width: 275px;"> - <div class="flex_c_c all_block02" style="">{{ i.wkshp_name }}</div> - <div class="" style="display: flex;justify-content:space-between"> - <div class="all_block02 flex_c_c" style="width: 49% ">浠诲姟鏁�</div> - <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.plan_qty }}</div> - </div> - <div class="" style="display: flex;justify-content:space-between"> - <div class="all_block02 flex_c_c" style="width: 49% ">瀹屽伐鏁�</div> - <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.good_qty }}</div> - </div> - </div> - </div> - - </div> - - <div style="height: 180px;padding: 10px;display: flex;justify-content: space-evenly"> - <div v-for="i in LeftBottomData02" :key="i.wkshp_code" class="flex_c_s"> - <div class="all_block01 flex_c_s" style="width: 275px;"> - <div class="flex_c_c all_block02" style=" background: rgba(9, 216, 242, 0.2);">{{ i.wkshp_name }}</div> - <div class="" style="display: flex;justify-content:space-between"> - <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">浠诲姟鏁�</div> - <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">{{ i.plan_qty }}</div> - </div> - <div class="" style="display: flex;justify-content:space-between"> - <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">鍏ュ簱鏁�</div> - <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">{{ i.quantity }}</div> - </div> - </div> - </div> - - </div> - - <!-- <div style="height: 260px;">--> - <!-- <div id="all01" class="flex_c_c" style="width: 100%;height:100%;" />--> - <!-- </div>--> + <div id="bar3" class="flex_c_c" style="width: 100%;height:100%;" /> </div> </div> <div style="width: 925px;"> @@ -169,9 +133,13 @@ <script> import './kbCommon.css' -import { loadEcharts, all02, all03 } from '@/utils/myEcharts' +import { loadEcharts, all02, bar3 } from '@/utils/myEcharts' import { - WorkShopCompreLeftBottom, WorkShopCompreLeftTop, WorkShopCompreRightBottom, WorkShopCompreRightTop + WorkShopCompreLeftBottom, + WorkShopCompreLeftTop, + WorkShopCompreLeftTopCopy, + WorkShopCompreRightBottom, + WorkShopCompreRightTop } from '@/api/kanbanManager' export default { @@ -304,72 +272,12 @@ }, 1000 * 40) // 宸︿笅 鐢熶骇璁㈠崟 - const res4 = await WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }) - for (const res4Key in res4.data.LeftTop) { - const data = { - good_qty: 0, - plan_qty: 0, - wkshp_code: '', - wkshp_name: '' - } - if (temp.includes(res4Key)) { - data.good_qty = res4.data.LeftTop[res4Key][0].good_qty - data.plan_qty = res4.data.LeftTop[res4Key][0].plan_qty - data.wkshp_code = res4.data.LeftTop[res4Key][0].wkshp_code - data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name - this.LeftBottomData01.push(data) - } - } - for (const res4Key in res4.data.LeftBottom) { - const data = { - quantity: 0, - wkshp_code: '', - wkshp_name: '' - } - if (temp.includes(res4Key)) { - data.quantity = res4.data.LeftBottom[res4Key][0].quantity - data.plan_qty = res4.data.LeftBottom[res4Key][0].plan_qty - data.wkshp_code = res4.data.LeftBottom[res4Key][0].wkshp_code - data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name - this.LeftBottomData02.push(data) - } - } - // loadEcharts('all01', all03(this.legendData, this.LeftBottomData02)) + const res4 = await WorkShopCompreLeftTopCopy() + loadEcharts('bar3', bar3(res4.data)) setInterval(() => { - WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }).then(res2 => { - this.LeftBottomData01 = [] - this.LeftBottomData02 = [] - for (const res4Key in res4.data.LeftTop) { - const data = { - good_qty: 0, - plan_qty: 0, - wkshp_code: '', - wkshp_name: '' - } - if (temp.includes(res4Key)) { - data.good_qty = res2.data.LeftTop[res4Key][0].good_qty - data.plan_qty = res2.data.LeftTop[res4Key][0].plan_qty - data.wkshp_code = res2.data.LeftTop[res4Key][0].wkshp_code - data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name - this.LeftBottomData01.push(data) - } - } - for (const res4Key in res2.data.LeftBottom) { - const data = { - quantity: 0, - wkshp_code: '', - wkshp_name: '' - } - if (temp.includes(res4Key)) { - data.quantity = res2.data.LeftBottom[res4Key][0].quantity - data.plan_qty = res2.data.LeftBottom[res4Key][0].plan_qty - data.wkshp_code = res2.data.LeftBottom[res4Key][0].wkshp_code - data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name - this.LeftBottomData02.push(data) - } - } - // loadEcharts('all01', all03(this.legendData, this.LeftBottomData02)) + WorkShopCompreLeftTopCopy().then(res4 => { + loadEcharts('bar3', bar3(res4.data)) }) }, 1000 * 30) diff --git a/src/views/kanbanManager/zhkb_back.vue b/src/views/kanbanManager/zhkb_back.vue new file mode 100644 index 0000000..6563c7d --- /dev/null +++ b/src/views/kanbanManager/zhkb_back.vue @@ -0,0 +1,560 @@ +<template> + <div> + <div class="kb_dashboard" style="display:flex;flex-direction: column;justify-content: space-between"> + + <div class="kb_backgroundCustom" /> + + <div class="kb_header"> + <div class="kb_headTime" style="top: 35px;left: 20px"> + <span>姘稿悍甯傛柊鍏夌伅鍏锋湁闄愬叕鍙�</span> + </div> + + <div class="kb_headTime kb_header_text" style="top: 35px;left: 800px"> + <span>杞﹂棿缁煎悎鏁板瓧鍖栫湅鏉�</span> + </div> + + <div class="kb_headTime" style="top: 35px;right: 25px"> + <span>{{ headTime }}</span> + </div> + </div> + <div + style=" padding:5px 20px 20px 20px;z-index:2;height: 940px;flex-direction: column;justify-content: space-between;" + > + <!-- 涓婅竟--> + <div style="display: flex;justify-content: space-between"> + <div style="width: 925px;"> + <div class="smallTitle"> + <svg-icon icon-class="blcs" class="svg_class" /> + 閲囪喘璁㈠崟(鏈�/瀛�) + </div> + <div + class="lineContent horn" + style="height: 450px;display: flex;flex-direction: column;justify-content: space-between" + > + <div style="height: 180px;padding: 10px;display: flex;justify-content: space-between"> + + <div v-for="i in LeftTopData01" :key="i.Quarter" class="flex_c_s"> + <div class="all_block03 flex_c_s"> + <div class="flex_c_c all_block04">{{ i.Quarter }}</div> + <div class="" style="display: flex;justify-content:space-between"> + <div class="all_block04 flex_c_c" style="width: 49% ">浠诲姟鏁�</div> + <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.quantity }}</div> + </div> + <div class="" style="display: flex;justify-content:space-between"> + <div class="all_block04 flex_c_c" style="width: 49% ">鍏ュ簱鏁�</div> + <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.ouquantity }}</div> + </div> + </div> + </div> + + </div> + <div style="height: 260px;"> + <div id="all02_1" class="flex_c_c" style="width: 100%;height:100%;" /> + </div> + </div> + </div> + <div style="width: 925px;"> + <div class="smallTitle"> + <svg-icon icon-class="cggz" class="svg_class" /> + 閿�鍞鍗�(鏈�/瀛�) + </div> + <div + class="lineContent horn" + style="height: 450px;display: flex;flex-direction: column;justify-content: space-between" + > + <div style="height: 180px;padding: 10px;display: flex;justify-content: space-between"> + + <div v-for="i in RightTopData01" :key="i.Quarter" class="flex_c_s"> + <div class="all_block03 flex_c_s"> + <div class="flex_c_c all_block04">{{ i.Quarter }}</div> + <div class="" style="display: flex;justify-content:space-between"> + <div class="all_block04 flex_c_c" style="width: 49% ">浠诲姟鏁�</div> + <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.quantity }}</div> + </div> + <div class="" style="display: flex;justify-content:space-between"> + <div class="all_block04 flex_c_c" style="width: 49% ">鍑哄簱鏁�</div> + <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.ouquantity }}</div> + </div> + </div> + </div> + + </div> + <div style="height: 260px;"> + <div id="all02" class="flex_c_c" style="width: 100%;height:100%;" /> + </div> + </div> + </div> + </div> + <!-- 涓嬭竟--> + <div style="display: flex;justify-content: space-between;margin-top: 15px;"> + <div style="width: 925px;"> + <div class="smallTitle"> + <svg-icon icon-class="cxjg" class="svg_class" /> + 鐢熶骇璁㈠崟(褰撴湀) + </div> + <div + class="lineContent horn" + style="height: 380px;display: flex;flex-direction: column;justify-content: space-between" + > + <div style="height: 180px;padding: 10px;display: flex;justify-content: space-evenly"> + <div v-for="i in LeftBottomData01" :key="i.wkshp_code" class="flex_c_s"> + <div class="all_block01 flex_c_s" style="width: 275px;"> + <div class="flex_c_c all_block02" style="">{{ i.wkshp_name }}</div> + <div class="" style="display: flex;justify-content:space-between"> + <div class="all_block02 flex_c_c" style="width: 49% ">浠诲姟鏁�</div> + <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.plan_qty }}</div> + </div> + <div class="" style="display: flex;justify-content:space-between"> + <div class="all_block02 flex_c_c" style="width: 49% ">瀹屽伐鏁�</div> + <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.good_qty }}</div> + </div> + </div> + </div> + + </div> + + <div style="height: 180px;padding: 10px;display: flex;justify-content: space-evenly"> + <div v-for="i in LeftBottomData02" :key="i.wkshp_code" class="flex_c_s"> + <div class="all_block01 flex_c_s" style="width: 275px;"> + <div class="flex_c_c all_block02" style=" background: rgba(9, 216, 242, 0.2);">{{ i.wkshp_name }}</div> + <div class="" style="display: flex;justify-content:space-between"> + <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">浠诲姟鏁�</div> + <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">{{ i.plan_qty }}</div> + </div> + <div class="" style="display: flex;justify-content:space-between"> + <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">鍏ュ簱鏁�</div> + <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">{{ i.quantity }}</div> + </div> + </div> + </div> + + </div> + + <!-- <div style="height: 260px;">--> + <!-- <div id="all01" class="flex_c_c" style="width: 100%;height:100%;" />--> + <!-- </div>--> + </div> + </div> + <div style="width: 925px;"> + <div class="smallTitle"> + <svg-icon icon-class="ckkc" class="svg_class" /> + 浠撳簱搴撳瓨 + </div> + <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between"> + <div style="display: flex;justify-content: center;position: relative"> + <div class="kb_center_block_children all_block05"> + <div style="font-size: 24px;">{{ parseFloat(RightBottom.Y) }}</div> + <div class="box02" /> + <div>鍘熸潗鏂�</div> + </div> + <div class="kb_center_block_children all_block06"> + <div style="font-size: 24px;">{{ parseFloat(RightBottom.B) }}</div> + <div class="box02" /> + <div>鍗婃垚鍝�</div> + </div> + <div class="kb_center_block_children all_block07"> + <div style="font-size: 24px;">{{ parseFloat(RightBottom.C) }}</div> + <div class="box02" /> + <div>浜ф垚鍝�</div> + </div> + + </div> + </div> + </div> + </div> + </div> + </div> + </div> +</template> + +<script> +import './kbCommon.css' +import { loadEcharts, all02, all03 } from '@/utils/myEcharts' +import { + WorkShopCompreLeftBottom, WorkShopCompreLeftTop, WorkShopCompreRightBottom, WorkShopCompreRightTop +} from '@/api/kanbanManager' + +export default { + name: 'Cjsc', + data() { + return { + headTime: '', + tableDataRightTop: [], + wkshopArr: [], + legendData: [], + + LeftTopData01: [], + LeftTopData02: [], + + RightTopData01: [], + RightTopData02: [], + + LeftBottomData01: [], + LeftBottomData02: [], + + RightBottom: {} + + } + }, + created() { + setInterval(this.getNowTime, 1000) + + // // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆� + setInterval(() => { + window.location.reload() + }, 1000 * 60 * 120) + }, + mounted() { + this.getAllApi() + }, + methods: { + async getAllApi() { + // const { data: res } = await ShopSearch() + const res = [ + { org_code: '1501', org_name: '鏈ㄦ枡杞﹂棿' }, + { org_code: '1502', org_name: '瑁呴厤杞﹂棿' }, + { org_code: '1503', org_name: '鍘嬮摳杞﹂棿' } + + ] + this.wkshopArr = res + const temp = this.wkshopArr.map(i => i.org_code) + // const temp = this.wkshopArr.map(i => i.org_code) + + temp.forEach(i => { + const aa = this.wkshopArr.find(j => j.org_code === i).org_name + this.legendData.push(aa) + }) + + // 宸︿笂 閲囪喘璁㈠崟 + const res2 = await WorkShopCompreLeftBottom() + res2.data.BottomLeftTop.forEach(i => { + this.LeftTopData01.push({ + Quarter: i.Quarter, + quantity: i.quantity, + ouquantity: i.ouquantity + }) + }) + res2.data.BottomLeftBottom.forEach(i => { + this.LeftTopData02.push({ + Month: i.Month + '鏈�', + quantity: i.quantity, + ouquantity: i.ouquantity + }) + }) + loadEcharts('all02_1', all02(this.LeftTopData02, '姣忔湀閲囪喘鏁伴噺/鍏ュ簱鏁伴噺')) + setInterval(() => { + this.LeftTopData01 = [] + this.LeftTopData02 = [] + WorkShopCompreLeftBottom().then(res2 => { + res2.data.BottomLeftTop.forEach(i => { + this.LeftTopData01.push({ + Quarter: i.Quarter, + quantity: i.quantity, + ouquantity: i.ouquantity + }) + }) + res2.data.BottomLeftBottom.forEach(i => { + this.LeftTopData02.push({ + Month: i.Month + '鏈�', + quantity: i.quantity, + ouquantity: i.ouquantity + }) + }) + loadEcharts('all02_1', all02(this.LeftTopData02, '姣忔湀閲囪喘鏁伴噺/鍏ュ簱鏁伴噺')) + }) + }, 1000 * 35) + + // 鍙充笂 閿�鍞鍗� + const res3 = await WorkShopCompreRightTop() + res3.data.RightTop.forEach(i => { + this.RightTopData01.push({ + Quarter: i.Quarter, + quantity: i.quantity, + ouquantity: i.ouquantity + }) + }) + res3.data.RightBottom.forEach(i => { + this.RightTopData02.push({ + Month: i.Month + '鏈�', + quantity: i.quantity, + ouquantity: i.ouquantity + }) + }) + loadEcharts('all02', all02(this.RightTopData02, '姣忔湀璁㈠崟鏁伴噺/鍑哄簱鏁伴噺')) + setInterval(() => { + WorkShopCompreRightTop().then(res3 => { + this.RightTopData01 = [] + this.RightTopData02 = [] + res3.data.RightTop.forEach(i => { + this.RightTopData01.push({ + Quarter: i.Quarter, + quantity: i.quantity, + ouquantity: i.ouquantity + }) + }) + res3.data.RightBottom.forEach(i => { + this.RightTopData02.push({ + Month: i.Month + '鏈�', + quantity: i.quantity, + ouquantity: i.ouquantity + }) + }) + loadEcharts('all02', all02(this.RightTopData02, '姣忔湀璁㈠崟鏁伴噺/鍑哄簱鏁伴噺')) + }) + }, 1000 * 40) + + // 宸︿笅 鐢熶骇璁㈠崟 + const res4 = await WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }) + for (const res4Key in res4.data.LeftTop) { + const data = { + good_qty: 0, + plan_qty: 0, + wkshp_code: '', + wkshp_name: '' + } + if (temp.includes(res4Key)) { + data.good_qty = res4.data.LeftTop[res4Key][0].good_qty + data.plan_qty = res4.data.LeftTop[res4Key][0].plan_qty + data.wkshp_code = res4.data.LeftTop[res4Key][0].wkshp_code + data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name + this.LeftBottomData01.push(data) + } + } + for (const res4Key in res4.data.LeftBottom) { + const data = { + quantity: 0, + wkshp_code: '', + wkshp_name: '' + } + if (temp.includes(res4Key)) { + data.quantity = res4.data.LeftBottom[res4Key][0].quantity + data.plan_qty = res4.data.LeftBottom[res4Key][0].plan_qty + data.wkshp_code = res4.data.LeftBottom[res4Key][0].wkshp_code + data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name + this.LeftBottomData02.push(data) + } + } + // loadEcharts('all01', all03(this.legendData, this.LeftBottomData02)) + + setInterval(() => { + WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }).then(res2 => { + this.LeftBottomData01 = [] + this.LeftBottomData02 = [] + for (const res4Key in res4.data.LeftTop) { + const data = { + good_qty: 0, + plan_qty: 0, + wkshp_code: '', + wkshp_name: '' + } + if (temp.includes(res4Key)) { + data.good_qty = res2.data.LeftTop[res4Key][0].good_qty + data.plan_qty = res2.data.LeftTop[res4Key][0].plan_qty + data.wkshp_code = res2.data.LeftTop[res4Key][0].wkshp_code + data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name + this.LeftBottomData01.push(data) + } + } + for (const res4Key in res2.data.LeftBottom) { + const data = { + quantity: 0, + wkshp_code: '', + wkshp_name: '' + } + if (temp.includes(res4Key)) { + data.quantity = res2.data.LeftBottom[res4Key][0].quantity + data.plan_qty = res2.data.LeftBottom[res4Key][0].plan_qty + data.wkshp_code = res2.data.LeftBottom[res4Key][0].wkshp_code + data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name + this.LeftBottomData02.push(data) + } + } + // loadEcharts('all01', all03(this.legendData, this.LeftBottomData02)) + }) + }, 1000 * 30) + + // 鍙充笅 浠撳簱搴撳瓨 + const res5 = await WorkShopCompreRightBottom() + this.RightBottom = res5.data + + setInterval(() => { + WorkShopCompreRightBottom().then(res5 => { + this.RightBottom = res5.data + }) + }, 1000 * 60) + }, + + // 鑾峰彇Echarts + getEcharts() { + // loadEcharts('cjzl01', cjzl01(this.cjzl01Data)) + + // loadEcharts('cjzl02_1', cjzl02(this.cjzl02_1Title, this.cjzl02_1Data)) + // loadEcharts('cjzl02_2', cjzl02(this.cjzl02_2Title, this.cjzl02_2Data)) + // loadEcharts('cjzl02_3', cjzl02(this.cjzl02_3Title, this.cjzl02_3Data)) + // loadEcharts('cjzl02_4', cjzl02(this.cjzl02_4Title, this.cjzl02_4Data)) + // loadEcharts('cjzl02_5', cjzl02(this.cjzl02_5Title, this.cjzl02_5Data)) + + // loadEcharts('cjzl04', cjzl04(this.legendData, this.cjzl04Data[0], this.cjzl04Data[1], this.cjzl04Data[2]))// 鍙充晶 + // loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData))// 宸︿晶 + }, + + // 鑾峰彇褰撳墠鏃堕棿 + getNowTime() { + const dt = new Date() + const wk = dt.getDay() + const y = dt.getFullYear() + const m = (dt.getMonth() + 1 + '').padStart(2, '0') + const d = (dt.getDate() + '').padStart(2, '0') + + const hh = (dt.getHours() + '').padStart(2, '0') + const mm = (dt.getMinutes() + '').padStart(2, '0') + const ss = (dt.getSeconds() + '').padStart(2, '0') + const weeks = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�'] + const week = weeks[wk] + + this.headTime = `${y}-${m}-${d} ${hh}:${mm}:${ss} ${week}` + }, + headerCellStyle() { + return { + backgroundColor: 'transparent ', + padding: '10px 0', + textAlign: 'center', + color: '#07acc2', + border: 'none', + fontSize: '20px' + } + }, + cellStyle() { + return { + padding: '7px 0', + textAlign: 'center', + backgroundColor: 'transparent ', + color: '#c7e7ff', + border: 'none', + fontSize: '20px' + } + } + + } + +} +</script> + +<style lang="scss" scoped> +$main_color: #09d8f2; +$color01: #00FFFF; +.tableData { + background: transparent; +} + +.el-table::before { + height: 0; +} + +.el-table__empty-text { + color: $main_color; +} + +.tableDataCell { + ::v-deep .cell { + padding: 0 2px; + } +} + +::v-deep .el-table__body-wrapper::-webkit-scrollbar { + /* width: 0;瀹藉害涓�0鏆楄棌 */ + width: 0; + background: transparent; +} + +::v-deep .el-table th, +::v-deep .el-table tr, +::v-deep .el-table td { + background-color: transparent; +} + +.all_block01 { + width: 187px; + height: 180px; +} + +.all_block02 { + width: 100%; + height: 49px; + background: rgba(9, 216, 242, 0.1); +} + +.all_block03 { + width: 199px; + height: 180px; +} + +.all_block04 { + width: 100%; + height: 49px; + background: rgba(9, 216, 242, 0.1); +} + +.kb_center_block_children { + height: 180px; + //border: 1px solid $kbBorderColor; + width: 240px; + display: flex; + z-index: 2; + justify-content: space-around; + align-items: center; + flex-direction: column; + margin: 10px; + font-size: 22px; + + .box02 { + background: url("../../assets/images/box02.png") no-repeat; + transform: scale(1.5); + width: 145px; + height: 84px; + + } +} + +.all_block05 { + position: absolute; + animation: upDown 3s ease-in-out infinite; + left: 60px; +} + +.all_block06 { + position: absolute; + animation: upDown2 3s ease-in-out infinite; + left: 290px; +} + +.all_block07 { + position: absolute; + animation: upDown 3s ease-in-out infinite; + left: 520px; +} + +@keyframes upDown { + 0% { + top: 50px; + } + 50% { + top: 100px; + } + 100% { + top: 50px; + } +} + +@keyframes upDown2 { + 0% { + top: 100px; + } + 50% { + top: 50px; + } + 100% { + top: 100px; + } +} +</style> diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 0398046..395054e 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -1,44 +1,7 @@ <template> <div class="login-container"> + <div class="bg" /> <div class="login-container-center"> - <el-carousel - :autoplay="true" - indicator-position="outside" - height="580px" - :interval="3000" - style="width: 500px;margin-left: 20px" - > - <el-carousel-item> - <img src="@/assets/images/img1.png" style="margin-top: -30px"> - <div class="itemLabel"> - <p class="title" :style="{color:$store.state.settings.theme}">鏅烘収鐗╄仈</p> - <p class="content">鐢熶骇鐜板満鏁版嵁瀹炴椂閲囬泦銆� 浼犻�掋�佸缁村害鍙鍖栧憟鐜�</p> - </div> - </el-carousel-item> - <el-carousel-item> - <img src="@/assets/images/img2.png" style="margin-top: -30px"> - <div class="itemLabel"> - <p class="title" :style="{color:$store.state.settings.theme}">绮剧泭鎬濈淮</p> - <p class="content">杩愮敤绮剧泭鎬濇兂鍜孖T绯荤粺鎶� 鏈墦閫犲伐鍘傚埗閫犲崗鍚屽钩鍙�</p> - </div> - </el-carousel-item> - <el-carousel-item> - <img src="@/assets/images/img3.png" style="margin-top: -30px"> - <div class="itemLabel"> - <p class="title" :style="{color:$store.state.settings.theme}">琛屼笟缁勪欢</p> - <p class="content">鍩轰簬鍒堕�犳ā鍨嬪揩閫熺伒娲诲湴 閰嶇疆瀹㈡埛涓撳睘鐨勫簲鐢ㄥ満鏅�</p> - </div> - </el-carousel-item> - <!-- <el-carousel-item v-for="item in carouselArr" :key="item.title">--> - <!-- <div :style="{ width:'200px',height:'300px' ,margin:'95px 0px 35px 155px'}">--> - <!-- <img :src="item.url" alt="" style="width: 200px;height: 300px">--> - <!-- </div>--> - <!-- <div class="itemLabel">--> - <!-- <div class="title">{{ item.title }}</div>--> - <!-- <div class="content">{{ item.content }}</div>--> - <!-- </div>--> - <!-- </el-carousel-item>--> - </el-carousel> <el-form ref="loginForm" @@ -105,7 +68,8 @@ <el-button :loading="loading" type="primary" - style="width:100%;margin-top:30px;letter-spacing: 10px;height: 40px;" + style="width:100%;margin-top:30px;letter-spacing: 10px;height: 40px; + background: #6e67fe !important;" @click.native.prevent="handleLogin" >鐧诲綍 </el-button> @@ -341,23 +305,38 @@ min-height: 100%; width: 100%; //background-color: $bg; + background-color: #6e67fe; overflow: hidden; - background: url("../../assets/images/login_bg.png") no-repeat; - background-size: 100% 100%; - opacity: 1; + //background: url("../../assets/images/login_bg.png") no-repeat; + //background: url("../../assets/images/bg3.webp") no-repeat; + //background-size: 100% 100%; + //opacity: 1; + + .bg{ + background: url("../../assets/images/bg3.webp") no-repeat; + background-size: 100% 100%; + width: 60vw; + height: 100vh; + //margin-top: 10vh; + + } .login-container-center { - width: 1000px; + //width: 1000px; + width: 546px; height: 600px; background-color: #fff; border-radius: 10px; z-index: 0.5; //浣跨洅瀛愬眳涓� position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); + right: 5vw; + top: calc(50vh - 300px); + //left: 50%; + //top: 50%; + //transform: translate(-50%, -50%); + //transform: scale(0.9); .itemLabel { display: flex; justify-content: center; -- Gitblit v1.9.3