From 0c045df28935e21879b8c0b58b58311c011294c5 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 09 五月 2025 16:42:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/views/business/internalCompany.vue | 1
admin/src/views/business/dangerStatic.vue | 77 +++++++++------
admin/src/views/business/admissionStatistics.vue | 54 ++++++++--
admin/src/components/business/OperaInternalCompanyWindow.vue | 6 +
admin/src/views/business/carStatistics.vue | 60 +++++++++--
server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java | 18 ++-
screen/src/views/EnergyConsum.vue | 8
admin/.env.development | 5 +
h5/pages/userinfo/userinfo.vue | 12 +-
admin/src/api/business/index.js | 5
10 files changed, 172 insertions(+), 74 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index 577bf1c..fc24b85 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -2,7 +2,12 @@
NODE_ENV = 'development'
# VUE_APP_API_URL = 'https://atwl.ahzyssl.com/zhyq_interface'
+<<<<<<< HEAD
+VUE_APP_API_URL = 'http://192.168.0.100:10010'
+# VUE_APP_API_URL = 'https://atwl.ahzyssl.com/zhyq_interface'
+=======
#VUE_APP_API_URL = 'http://192.168.0.104:10010'
VUE_APP_API_URL = 'https://atwl.ahzyssl.com/zhyq_interface'
+>>>>>>> f49ead8710e093ee1d2d3ed50870497f07dee9fa
# VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface'
diff --git a/admin/src/api/business/index.js b/admin/src/api/business/index.js
index 9c09cf5..97a96ec 100644
--- a/admin/src/api/business/index.js
+++ b/admin/src/api/business/index.js
@@ -28,7 +28,10 @@
}
// 鍏ュ洯鏁版嵁鍒嗘瀽-瀵煎嚭Excel
export function reportExportExcel (data) {
- return request.post('/visitsAdmin/cloudService/business/inoutRecord/reportExportExcel', data)
+ return request.post('/visitsAdmin/cloudService/business/inoutRecord/reportExportExcel', data, {
+ trim: true,
+ download: true
+ })
}
export const uploadUrl = 'visitsAdmin/cloudService/public/upload'
diff --git a/admin/src/components/business/OperaInternalCompanyWindow.vue b/admin/src/components/business/OperaInternalCompanyWindow.vue
index 13be2e4..e198ac9 100644
--- a/admin/src/components/business/OperaInternalCompanyWindow.vue
+++ b/admin/src/components/business/OperaInternalCompanyWindow.vue
@@ -15,6 +15,9 @@
<el-form-item label="缁勭粐鍚嶇О" prop="name">
<el-input v-model="form.name" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" v-trim/>
</el-form-item>
+ <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ </el-form-item>
<el-form-item label="缁勭粐绫诲瀷" prop="type" v-if="(editType === 'edit' && parentId) || (editType === 'add')">
<el-radio-group v-model="form.type" :disabled="(editType === 'edit') || (!!(editType === 'add' && parentId))">
<el-radio :label="0">鐩稿叧鏂圭粍缁�</el-radio>
@@ -43,7 +46,8 @@
name: '',
parentId: null,
disable: false,
- parentName: ''
+ parentName: '',
+ sortnum: ''
},
editType: '',
parentId: null,
diff --git a/admin/src/views/business/admissionStatistics.vue b/admin/src/views/business/admissionStatistics.vue
index fbe4ea1..91c4840 100644
--- a/admin/src/views/business/admissionStatistics.vue
+++ b/admin/src/views/business/admissionStatistics.vue
@@ -83,14 +83,17 @@
</div>
<el-button type="primary" icon="el-icon-upload2" style="margin-left: 20px;" @click="daochu">瀵煎嚭</el-button>
</div>
- <div class="list_head">
- <div class="list_head_item" v-for="(item, index) in column" :key="index">{{item}}</div>
- </div>
- <div class="table_box">
- <div class="list_content" v-for="(item, index) in list" :key="index">
- <div class="list_head_item" v-for="(child, i) in item" :key="i">{{child}}</div>
+ <template v-if="column.length > 0">
+ <div class="list_head">
+ <div class="list_head_item" v-for="(item, index) in column" :key="index">{{item}}</div>
</div>
- </div>
+ <div class="table_box">
+ <div class="list_content" v-for="(item, index) in list" :key="index">
+ <div class="list_head_item" v-for="(child, i) in item" :key="i">{{child}}</div>
+ </div>
+ </div>
+ </template>
+ <div class="list_wu" v-else>鏆傛棤鏁版嵁</div>
</div>
<div class="main_table_list1">
<div class="title">
@@ -165,7 +168,11 @@
getReportLists() {
getReportList({ dateStr: this.date1, isGroupBy: this.isGroupBy, type: 1 })
.then(res => {
- if (res.length === 0) return
+ if (res.length === 0) {
+ this.column = []
+ this.list = []
+ return
+ }
this.column = res[0]
this.list = res.slice(1, res.length);
@@ -227,7 +234,10 @@
containLabel: true
},
tooltip: {
- trigger: 'item'
+ trigger: 'axis',
+ axisPointer: {
+ type: 'line'
+ }
},
xAxis: {
type: 'category',
@@ -237,6 +247,12 @@
type: 'value',
axisLine: {
show: true
+ },
+ axisLabel: {
+ formatter: function (value) {
+ // 鍥涜垗浜斿叆鍒版渶杩戠殑鏁存暟
+ return Math.round(value);
+ }
}
},
graphic: {
@@ -323,7 +339,7 @@
let option = {
tooltip: {
- trigger: 'item'
+ trigger: 'item',
},
legend: {
show: false,
@@ -338,7 +354,7 @@
labelLine: {
normal: {
length: 30,
- length2: 100,
+ length2: 70,
}
},
label: {
@@ -490,6 +506,14 @@
color: #222222;
}
}
+ .list_wu {
+ width: 100%;
+ height: 100px;
+ line-height: 100px;
+ text-align: center;
+ font-size: 16px;
+ color: #222222;
+ }
.list_head {
width: 100%;
height: 50px;
@@ -546,6 +570,14 @@
font-size: 18px;
color: #222222;
}
+ .list_wu {
+ width: 100%;
+ height: 100px;
+ line-height: 100px;
+ text-align: center;
+ font-size: 16px;
+ color: #222222;
+ }
.list_head {
width: 100%;
height: 50px;
diff --git a/admin/src/views/business/carStatistics.vue b/admin/src/views/business/carStatistics.vue
index 473fc94..d179507 100644
--- a/admin/src/views/business/carStatistics.vue
+++ b/admin/src/views/business/carStatistics.vue
@@ -52,7 +52,7 @@
:clearable="false"
@change="getRataLists()"
:value-format="dateType === 'month' ? 'yyyy-MM' : 'yyyy'"
- style="margin-left: 20px; width: 130px;"
+ style="margin-left: 10px; width: 120px;"
placeholder="璇烽�夋嫨">
</el-date-picker>
</div>
@@ -77,20 +77,23 @@
:clearable="false"
@change="getReportLists()"
:value-format="radio === 'month' ? 'yyyy-MM' : 'yyyy'"
- style="margin-left: 20px; width: 130px;"
+ style="margin-left: 10px; width: 120px;"
placeholder="璇烽�夋嫨">
</el-date-picker>
</div>
<el-button type="primary" style="margin-left: 20px;" icon="el-icon-upload2" @click="daochu">瀵煎嚭</el-button>
</div>
- <div class="list_head">
- <div class="list_head_item" v-for="(item, index) in column" :key="index">{{item}}</div>
- </div>
- <div class="table_box">
- <div class="list_content" v-for="(item, index) in list" :key="index">
- <div class="list_head_item" v-for="(child, i) in item" :key="i">{{child}}</div>
+ <template v-if="column.length > 0">
+ <div class="list_head">
+ <div class="list_head_item" v-for="(item, index) in column" :key="index">{{item}}</div>
</div>
- </div>
+ <div class="table_box">
+ <div class="list_content" v-for="(item, index) in list" :key="index">
+ <div class="list_head_item" v-for="(child, i) in item" :key="i">{{child}}</div>
+ </div>
+ </div>
+ </template>
+ <div class="list_wu" v-else>鏆傛棤鏁版嵁</div>
</div>
<div class="main_table_list1">
<div class="title">
@@ -166,7 +169,11 @@
getReportLists() {
getReportList({ dateStr: this.date1, isGroupBy: this.isGroupBy, type: 0 })
.then(res => {
- if (res.length === 0) return
+ if (res.length === 0) {
+ this.column = []
+ this.list = []
+ return
+ }
this.column = res[0]
this.list = res.slice(1, res.length);
@@ -223,7 +230,10 @@
let option = {
tooltip: {
- trigger: 'item'
+ trigger: 'axis',
+ axisPointer: {
+ type: 'line'
+ }
},
legend: {
show: false,
@@ -259,6 +269,12 @@
type: 'value',
axisLine: {
show: true
+ },
+ axisLabel: {
+ formatter: function (value) {
+ // 鍥涜垗浜斿叆鍒版渶杩戠殑鏁存暟
+ return Math.round(value);
+ }
}
},
series: [
@@ -347,7 +363,7 @@
labelLine: {
normal: {
length: 30,
- length2: 100,
+ length2: 70,
}
},
label: {
@@ -499,6 +515,14 @@
color: #222222;
}
}
+ .list_wu {
+ width: 100%;
+ height: 100px;
+ line-height: 100px;
+ text-align: center;
+ font-size: 16px;
+ color: #222222;
+ }
.list_head {
width: 100%;
height: 50px;
@@ -545,7 +569,7 @@
}
.main_table_list1 {
margin-left: 10px;
- width: 520px;
+ width: 420px;
padding: 20px;
box-sizing: border-box;
flex-shrink: 0;
@@ -553,6 +577,14 @@
.title {
font-weight: 500;
font-size: 18px;
+ color: #222222;
+ }
+ .list_wu {
+ width: 100%;
+ height: 100px;
+ line-height: 100px;
+ text-align: center;
+ font-size: 16px;
color: #222222;
}
.list_head {
@@ -637,7 +669,7 @@
}
.dept_wrap {
- width: 520px;
+ width: 420px;
flex-shrink: 0;
height: 100%;
background-color: #ffffff;
diff --git a/admin/src/views/business/dangerStatic.vue b/admin/src/views/business/dangerStatic.vue
index a89c44e..d94b902 100644
--- a/admin/src/views/business/dangerStatic.vue
+++ b/admin/src/views/business/dangerStatic.vue
@@ -268,7 +268,7 @@
grid: {
left: '10%',
right: '10%',
- bottom: '0%',
+ bottom: '10%',
top: '20%',
containLabel: true
},
@@ -325,7 +325,10 @@
let option = {
tooltip: {
- trigger: 'item'
+ trigger: 'axis',
+ axisPointer: {
+ type: 'line'
+ }
},
grid: {
left: '5%',
@@ -416,47 +419,52 @@
overflow-x: hidden;
padding: 15px;
box-sizing: border-box;
- background-color: #ffffff;
+ background-color: #F4F7FC;
.main_head {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
- margin-bottom: 20px;
+ margin-bottom: 10px;
+ background-color: #ffffff;
+ padding: 20px;
+ box-sizing: border-box;
.blue {
- border-left: 5px solid blue;
+ border-left: 8px solid #12BB8B;
}
.red {
- border-left: 5px solid red;
+ border-left: 8px solid #F6CF46;
}
.yellow {
- border-left: 5px solid yellow;
+ border-left: 8px solid #5DC9FB;
}
.orange {
- border-left: 5px solid orange;
+ border-left: 8px solid #FF9E56;
}
.darkBlue {
- border-left: 5px solid #0000a8;
+ border-left: 8px solid #6B6EFF;
}
.main_head_item {
width: 19%;
- height: 70px;
+ height: 112px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-sizing: border-box;
border-radius: 5px;
- background-color: #ffffff;
+ background: #F4F7FC;
span {
&:nth-child(1) {
- font-size: 22px;
- color: black;
- font-weight: bold;
+ font-weight: 600;
+ font-size: 30px;
+ color: #222222;
}
&:nth-child(2) {
- font-size: 16px;
- color: black;
+ font-weight: 400;
+ font-size: 14px;
+ color: #222222;
+ margin-top: 10px;
}
}
}
@@ -467,8 +475,11 @@
align-items: start;
justify-content: space-between;
.main_table_echart {
- flex: 1;
+ width: 64%;
height: 400px;
+ background-color: #ffffff;
+ padding: 20px;
+ box-sizing: border-box;
.title {
font-weight: 600;
font-size: 16px;
@@ -480,9 +491,11 @@
}
}
.main_table_list {
- margin-left: 20px;
flex-shrink: 0;
- width: 500px;
+ width: 35%;
+ padding: 20px;
+ box-sizing: border-box;
+ background-color: #ffffff;
.title {
font-weight: 600;
font-size: 16px;
@@ -535,38 +548,42 @@
.main_content {
display: flex;
+ align-items: start;
+ justify-content: space-between;
height: 500px;
-
+ margin-bottom: 10px;
.title {
font-weight: 600;
font-size: 16px;
color: #222222;
/*margin-bottom: 20px;*/
- margin-top: 20px;
}
.type_wrap {
- flex: 11;
+ width: 49.5%;
flex-shrink: 0;
- height: calc(100% - 20px);
+ height: 100%;
/*border-right: 12px solid #f7f7f7;*/
-
+ background-color: #ffffff;
+ padding: 20px;
+ box-sizing: border-box;
.echart1 {
width: 100%;
- height: calc(100% - 60px);
+ height: 100%;
}
}
.dept_wrap {
- flex: 10;
+ width: 49.5%;
flex-shrink: 0;
- height: calc(100% - 20px);
- padding-left: 20px;
-
+ height: 100%;
+ background-color: #ffffff;
+ padding: 20px;
+ box-sizing: border-box;
.echart2 {
width: 100%;
- height: calc(100% - 60px);
+ height: 100%;
}
}
}
diff --git a/admin/src/views/business/internalCompany.vue b/admin/src/views/business/internalCompany.vue
index 916de54..f29a75c 100644
--- a/admin/src/views/business/internalCompany.vue
+++ b/admin/src/views/business/internalCompany.vue
@@ -38,6 +38,7 @@
</template>
</el-table-column>
<el-table-column prop="companyNamePath" label="缁勭粐璺緞" min-width="100px"></el-table-column>
+ <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
<el-table-column prop="editorName" label="鎿嶄綔浜�" width="100px"></el-table-column>
<el-table-column prop="editDate" label="鏈�鍚庢洿鏂版椂闂�" min-width="100px"></el-table-column>
<el-table-column label="鎿嶄綔" width="230" fixed="right">
diff --git a/h5/pages/userinfo/userinfo.vue b/h5/pages/userinfo/userinfo.vue
index 9fe4385..3cefd54 100644
--- a/h5/pages/userinfo/userinfo.vue
+++ b/h5/pages/userinfo/userinfo.vue
@@ -24,7 +24,7 @@
</view>
</view>
<view class="cell">
- <view class="title"><b>*</b>璇佷欢鍙风爜</view>
+ <view class="title">璇佷欢鍙风爜</view>
<view class="content">
<input class="input" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false"
placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="璇疯緭鍏ユ偍鐨勮瘉浠跺彿鐮�" />
@@ -201,11 +201,11 @@
title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
icon: 'none'
})
- if (!this.visitorData.idcardNo) return uni.showToast({
- title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (this.visitorData.idcardType === 0) {
+ // if (!this.visitorData.idcardNo) return uni.showToast({
+ // title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
+ // icon: 'none'
+ // })
+ if (this.visitorData.idcardType === 0 && this.visitorData.idcardNo) {
const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
if (!regex.test(this.visitorData.idcardNo)) return uni.showToast({
title: '璇佷欢鍙风爜鏍煎紡閿欒',
diff --git a/screen/src/views/EnergyConsum.vue b/screen/src/views/EnergyConsum.vue
index 33a6337..3bbb3c3 100644
--- a/screen/src/views/EnergyConsum.vue
+++ b/screen/src/views/EnergyConsum.vue
@@ -17,7 +17,7 @@
<div class="com_header">
<div class="title">
<img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
- <div>鏈勾绱寰幆鐑熺</div>
+ <div>鏈勾瀹夊窘涓儫绱寰幆鐑熺</div>
</div>
<img src="@/assets/images/title@2x.png" class="bg" alt="" />
</div>
@@ -357,7 +357,7 @@
formatter: function (params) {
// 閬嶅巻鎮诞鏃剁殑鎵�鏈夌偣锛屽畾鍒跺寲鏄剧ず鍐呭
let result = `<div>
- <div style="width: 120px">${params[0].name}鏈�</div>
+ <div style="width: 120px">${params[0].name}鏈�</div>
<div style="display: flex;align-items: center;;margin-top: 2px;">
<div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #f6d047;margin-right: 6px;"></div></div>
<div><strong>${params[0].value} L</strong></div>
@@ -651,7 +651,7 @@
formatter: function (params) {
// 閬嶅巻鎮诞鏃剁殑鎵�鏈夌偣锛屽畾鍒跺寲鏄剧ず鍐呭
let result = `<div>
- <div style="width: 120px">${params[0].name}鏈�</div>
+ <div style="width: 120px">${params[0].name}鏈�</div>
<div style="display: flex;align-items: center;;margin-top: 2px;">
<div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #61a1c4;margin-right: 6px;"></div></div>
<div><strong>${params[0].value} </strong></div>
@@ -1281,4 +1281,4 @@
z-index: -1;
}
}
-</style>
\ No newline at end of file
+</style>
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index 5408db0..c6f70ac 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -447,13 +447,16 @@
List<String> rowList = dataList.get(i);
for (int j = 0; j < rowList.size(); j++) {
Cell cell = row.createCell(j);
- cell.setCellValue(rowList.get(j));
- if(i ==0 || j==0){
- // 鍒楀璁剧疆
- sheet.setColumnWidth(i, rowList.get(i).length() * 2 * 256);
- // 璁剧疆鍒楀ご鍗曞厓鏍�
- cell.setCellStyle(hstyle);
+ if(i==0&&j==0){
+ cell.setCellValue("鏁版嵁鏃ユ湡");
}else{
+ cell.setCellValue(rowList.get(j));
+ }
+
+ if(i==0){
+ sheet.setColumnWidth(i, rowList.get(i).length() * 2 * 256);
+ cell.setCellStyle(hstyle);
+ }else if(j==0){
cell.setCellStyle(rowStyle);
}
}
@@ -473,6 +476,7 @@
}
}
+
private static CellStyle configHeaderCellStatic (SXSSFWorkbook workbook) {
CellStyle style = workbook.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
@@ -482,7 +486,7 @@
style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
// 瀛椾綋
Font font = workbook.createFont();
- font.setFontHeightInPoints((short) 12);
+ font.setFontHeightInPoints((short) 10);
style.setFont(font);
// 璁剧疆杈规
configCellBorder(style);
--
Gitblit v1.9.3