diff --git a/.env.development b/.env.development index 8849f99..6e07116 100644 --- a/.env.development +++ b/.env.development @@ -5,7 +5,7 @@ VITE_APP_TITLE = 煤科建管平台 VITE_APP_ENV = 'development' # 开发环境 -VITE_APP_BASE_API = 'http://192.168.110.213:8899' +VITE_APP_BASE_API = 'http://192.168.110.149:8899' # 无人机接口地址 diff --git a/package.json b/package.json index 7053b13..67291cb 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "diagram-js": "12.3.0", "didi": "9.0.2", "echarts": "5.5.0", + "echarts-gl": "^2.0.9", "element-plus": "2.8.8", "esbuild": "^0.25.0", "ezuikit-js": "^8.1.10", diff --git a/src/api/tender/index.ts b/src/api/tender/index.ts new file mode 100644 index 0000000..2ebb22b --- /dev/null +++ b/src/api/tender/index.ts @@ -0,0 +1,44 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; + +//获取版本 +export const obtainAllVersionNumbers = (query: any): AxiosPromise => { + return request({ + url: '/tender/tenderPlanLimitList/obtainAllVersionNumbers', + method: 'get', + params: query + }); +}; +//获取sheet +export const sheetList = (query: any): AxiosPromise => { + return request({ + url: '/tender/tenderPlanLimitList/sheetList', + method: 'get', + params: query + }); +}; +//获取表格数据 +export const getTableList = (query: any): AxiosPromise => { + return request({ + url: '/tender/tenderPlanLimitList/list', + method: 'get', + params: query + }); +}; +//修改单价数据 +export const updatePrice = (query: any): AxiosPromise => { + return request({ + url: '/tender/tenderPlanLimitList', + method: 'put', + data: query + }); +}; +//导入 +export const importExcelFile = (query: any, data: any): AxiosPromise => { + return request({ + url: '/tender/tenderPlanLimitList/importExcelFile', + method: 'post', + params: query, + data + }); +}; diff --git a/src/components/EchartBox/index.vue b/src/components/EchartBox/index.vue new file mode 100644 index 0000000..1725eac --- /dev/null +++ b/src/components/EchartBox/index.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/src/views/contract/division/index.vue b/src/views/contract/division/index.vue index d5ae5b2..bb6c8d0 100644 --- a/src/views/contract/division/index.vue +++ b/src/views/contract/division/index.vue @@ -463,7 +463,16 @@ const getDetails = (row: any) => { } }); }; - +//监听项目id刷新数据 +const listeningProject = watch( + () => currentProject.value?.id, + (nid, oid) => { + getTabsList(); + } +); +onUnmounted(() => { + listeningProject(); +}); onMounted(() => { getTabsList(); }); diff --git a/src/views/largeScreen/components/optionList.ts b/src/views/largeScreen/components/optionList.ts index 7d9486f..b0ba838 100644 --- a/src/views/largeScreen/components/optionList.ts +++ b/src/views/largeScreen/components/optionList.ts @@ -249,9 +249,10 @@ export const getOption2 = (data: any) => { }; return option; }; -//食堂周报图 +//z折线 export const getLineOption = (lineData: any) => { - const maxData = Math.ceil(Math.max(...lineData.line1)); + const maxData = Math.max(...lineData.line1.flat()); + const option = { backgroundColor: '', tooltip: { @@ -263,37 +264,41 @@ export const getLineOption = (lineData: any) => { }, borderColor: '#7ec7ff' }, - // legend: { - // align: 'left', - // right: '5%', - // top: '1%', - // type: 'plain', - // textStyle: { - // color: '#fff', - // fontSize: 12 - // }, - // // icon:'rect', - // itemGap: 15, - // itemWidth: 18, - // data: [ - // { - // name: '上周销售量' - // }, - // { - // name: '本周销售量' - // } - // ] - // }, + legend: { + align: 'left', + right: '5%', + top: '1%', + type: 'plain', + textStyle: { + color: '#fff', + fontSize: 12 + }, + // icon:'rect', + itemGap: 15, + itemWidth: 18, + data: [ + { + name: '收款金额' + }, + { + name: '付款金额' + }, + { + name: '净现金流' + } + ] + }, grid: { top: '12%', left: '1%', right: '3%', - bottom: '12%', + bottom: '5%', containLabel: true }, xAxis: { type: 'category', data: lineData.xLabel, + boundaryGap: false, axisLine: { show: false }, @@ -318,21 +323,21 @@ export const getLineOption = (lineData: any) => { } } }, - dataZoom: [ - { - // show: true, - start: 0, - end: 30, - bottom: 2, // 下滑块距离x轴底部的距离 - height: 23 - }, - { - type: 'inside' - } - ], + // dataZoom: [ + // { + // // show: true, + // start: 0, + // end: 30, + // bottom: 2, // 下滑块距离x轴底部的距离 + // height: 23 + // }, + // { + // type: 'inside' + // } + // ], series: [ { - name: '逆变器功率', + name: '收款金额', type: 'line', symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆 showAllSymbol: false, @@ -373,7 +378,95 @@ export const getLineOption = (lineData: any) => { shadowColor: 'rgba(25,163,223, 0.5)', //阴影颜色 shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。 }, - data: lineData.line1 + data: lineData.line1[0] + }, + { + name: '付款金额', + type: 'line', + symbol: 'none', // 默认是空心圆(中间是白色的),改成实心圆 + showAllSymbol: false, + symbolSize: 0, + smooth: true, + lineStyle: { + width: 1, + color: 'rgba(255, 224, 179, 1)', // 线条颜色 + borderColor: 'rgba(0,0,0,.4)' + }, + itemStyle: { + color: 'rgba(255, 224, 179, 1)', + borderWidth: 2, + show: true + }, + tooltip: { + show: true + }, + areaStyle: { + //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。 + color: new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: 'rgba(255, 224, 179, 0.4)' + }, + { + offset: 1, + color: 'rgba(255, 224, 179, 0)' + } + ], + false + ), + shadowColor: 'rgba(255, 224, 179, 0.6)', //阴影颜色 + shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。 + }, + data: lineData.line1[1] + }, + { + name: '净现金流', + type: 'line', + symbol: 'none', // 默认是空心圆(中间是白色的),改成实心圆 + showAllSymbol: false, + symbolSize: 0, + smooth: true, + lineStyle: { + width: 1, + color: 'rgba(39, 255, 252, 1)', // 线条颜色 + borderColor: 'rgba(0,0,0,.4)' + }, + itemStyle: { + color: 'rgba(39, 255, 252, 1)', + borderWidth: 2, + show: false + }, + tooltip: { + show: true + }, + areaStyle: { + //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。 + color: new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: 'rgba(39, 255, 252, 0.4)' + }, + { + offset: 1, + color: 'rgba(39, 255, 252, 0)' + } + ], + false + ), + shadowColor: 'rgba(39, 255, 252, 0.5)', //阴影颜色 + shadowBlur: 20 //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。 + }, + data: lineData.line1[2] } ] }; diff --git a/src/views/largeScreen/components/rightPage.vue b/src/views/largeScreen/components/rightPage.vue index d96e850..a87ed17 100644 --- a/src/views/largeScreen/components/rightPage.vue +++ b/src/views/largeScreen/components/rightPage.vue @@ -1,31 +1,71 @@ - + diff --git a/src/views/tender/bidd/index.vue b/src/views/tender/bidd/index.vue new file mode 100644 index 0000000..e32016c --- /dev/null +++ b/src/views/tender/bidd/index.vue @@ -0,0 +1,279 @@ + + + + + diff --git a/src/views/tender/plan/index.vue b/src/views/tender/plan/index.vue index 0a6ec44..806a616 100644 --- a/src/views/tender/plan/index.vue +++ b/src/views/tender/plan/index.vue @@ -1,27 +1,482 @@ - +