diff --git a/src/api/largeScreen/index.ts b/src/api/largeScreen/index.ts new file mode 100644 index 0000000..1eb8464 --- /dev/null +++ b/src/api/largeScreen/index.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { MasterVO, MasterForm, MasterQuery } from '@/api/patch/types'; +/** + * 合同金额 + * + */ +export const totalAmount = () => { + return request({ + url: '/money/big/screen/totalAmount', + method: 'get' + }); +}; + +/** + * 查询项目位置列表 + * + */ export const projectGis = (clientid) => { + return request({ + url: '/money/big/screen/project/gis', + method: 'get', + params: clientid + }); +}; + +/** + * 应收实收 + * + */ export const incomePay = (clientid) => { + return request({ + url: '/money/big/screen/income/pay', + method: 'get', + params: clientid + }); +}; + +/** + * 收入合同分析 + * + */ export const incomeAnalyze = (clientid) => { + return request({ + url: '/money/big/screen/income/analyze', + method: 'get', + params: clientid + }); +}; +/** + * 应付实付 + * + */ export const expensesPay = (clientid) => { + return request({ + url: '/money/big/screen/expenses/pay', + method: 'get', + params: clientid + }); +}; +/** + * 支出合同分析 + * + */ export const expensesAnalyze = (clientid) => { + return request({ + url: '/money/big/screen/expenses/analyze', + method: 'get', + params: clientid + }); +}; +/** + * 成本 + * + */ export const cost = (clientid) => { + return request({ + url: '/money/big/screen/cost', + method: 'get', + params: clientid + }); +}; diff --git a/src/views/largeScreen/components/ProgressComponent.vue b/src/views/largeScreen/components/ProgressComponent.vue index da1b86c..36bc86b 100644 --- a/src/views/largeScreen/components/ProgressComponent.vue +++ b/src/views/largeScreen/components/ProgressComponent.vue @@ -1,17 +1,17 @@ \ No newline at end of file + diff --git a/src/views/largeScreen/components/RevenueContractCard.vue b/src/views/largeScreen/components/RevenueContractCard.vue index 14154dc..5f194d7 100644 --- a/src/views/largeScreen/components/RevenueContractCard.vue +++ b/src/views/largeScreen/components/RevenueContractCard.vue @@ -2,29 +2,12 @@
{{ title }}
- +
- {{ formattedValue }} + {{ props.value }} {{ unit }}
- - -
@@ -107,18 +90,18 @@ const trendText = computed(() => { box-sizing: border-box; border: 1px solid rgba(29, 214, 255, 0.1); border-radius: 4px; // 增加轻微圆角,提升视觉效果 - + &__title { font-size: 14px; - color: #8FABBF; + color: #8fabbf; line-height: 20px; } - + &__value-container { display: flex; align-items: baseline; } - + &__value { font-size: 24px; color: #fff; @@ -126,34 +109,34 @@ const trendText = computed(() => { margin-right: 5px; font-weight: bold; } - + &__unit { - color: #8FABBF; + color: #8fabbf; font-size: 14px; } - + &__footer { display: flex; justify-content: space-between; align-items: center; } - + &__trend { display: flex; align-items: center; } - + &__trend-icon { width: 12px; height: 12px; margin-right: 4px; } - + &__trend-text { font-size: 14px; - color: #8FABBF; + color: #8fabbf; } - + &__badge { width: 40px; height: 40px; diff --git a/src/views/largeScreen/components/bottomboxconpoent.vue b/src/views/largeScreen/components/bottomboxconpoent.vue index 6735331..661c26c 100644 --- a/src/views/largeScreen/components/bottomboxconpoent.vue +++ b/src/views/largeScreen/components/bottomboxconpoent.vue @@ -1,45 +1,158 @@ \ No newline at end of file +.bottom_box_text { + color: rgba(143, 171, 191, 1); + font-size: 14px; + line-height: 20px; + margin-bottom: 5px; +} + +.bottom_box_bottom { + width: 100%; + height: 8px; + margin: 5px 0; +} + +.cost-item { + color: #fff; + font-size: 14px; + line-height: 26px; + display: flex; + justify-content: space-between; +} + +.cost-label { + color: rgba(143, 171, 191, 1); +} + +.cost-value { + font-weight: 500; + color: #fff; +} + diff --git a/src/views/largeScreen/components/centerPage.vue b/src/views/largeScreen/components/centerPage.vue index aee49f0..c0ba314 100644 --- a/src/views/largeScreen/components/centerPage.vue +++ b/src/views/largeScreen/components/centerPage.vue @@ -1,146 +1,160 @@ diff --git a/src/views/largeScreen/components/leftPage.vue b/src/views/largeScreen/components/leftPage.vue index 683c9a3..325df42 100644 --- a/src/views/largeScreen/components/leftPage.vue +++ b/src/views/largeScreen/components/leftPage.vue @@ -1,56 +1,307 @@ @@ -58,13 +309,20 @@ onMounted(() => { .leftPage { width: 100%; height: 100%; - .kpi_box{ + .kpi_box { margin-bottom: 10px; } - .contract_box{ + .contract_box { height: 35vh; + display: flex; + flex-direction: column; // 按钮区和图表区垂直排列 } - .kpi_box,.contract_box { + .chart-container { + flex: 1; // 占满剩余高度,确保图表容器足够大 + min-height: 200px; // 最小高度,避免容器过矮 + } + .kpi_box, + .contract_box { padding: 10px; box-sizing: border-box; border: 1px solid rgba(29, 214, 255, 0.3); diff --git a/src/views/largeScreen/index.vue b/src/views/largeScreen/index.vue index 8ce47fd..13d939e 100644 --- a/src/views/largeScreen/index.vue +++ b/src/views/largeScreen/index.vue @@ -1,4 +1,4 @@ -