修改大屏问题

dev_xd
lj7788@126.com 2025-06-11 22:01:29 +08:00
parent b3ddd1ae17
commit 9db50321d6
4 changed files with 191 additions and 174 deletions

View File

@ -1,5 +1,5 @@
import request from "@/utils/request";
import dayjs from 'dayjs'
import dayjs from "dayjs";
const groupByAll = (data) => {
return new Promise((resolve) => {
return request({
@ -7,35 +7,35 @@ const groupByAll = (data) => {
method: "get",
params: data,
}).then((d) => {
let tmps=(d.data||[]).map(it=>{
it.sumEmissionReduction=(it.sumEstimateValue||0)-(it.sumPracticalValue||0);
it.emissionReduction=(it.estimateValue||0)-(it.practicalValue||0);
return it;
})
let sumEmissionReduction=0;
let sumEstimateValue=0;
let sumPracticalValue=0;
let emissionReduction=0;
let estimateValue=0;
let practicalValue=0;
tmps.forEach(it=>{
sumEmissionReduction+=(it.sumEmissionReduction||0);
sumEstimateValue+=(it.sumEstimateValue||0);
sumPracticalValue+=(it.sumPracticalValue||0);
emissionReduction+=(it.emissionReduction||0);
estimateValue+=(it.estimateValue||0);
practicalValue+=(it.practicalValue||0);
});
tmps.push({
factorType:0,
sumEmissionReduction:sumEmissionReduction,
sumEstimateValue:sumEstimateValue,
sumPracticalValue:sumPracticalValue,
emissionReduction:emissionReduction,
estimateValue:estimateValue,
practicalValue:practicalValue
})
resolve(tmps)
let tmps = (d.data || []).map((it) => {
it.sumEmissionReduction = (it.sumEstimateValue || 0) - (it.sumPracticalValue || 0);
it.emissionReduction = (it.estimateValue || 0) - (it.practicalValue || 0);
return it;
});
let sumEmissionReduction = 0;
let sumEstimateValue = 0;
let sumPracticalValue = 0;
let emissionReduction = 0;
let estimateValue = 0;
let practicalValue = 0;
tmps.forEach((it) => {
sumEmissionReduction += it.sumEmissionReduction || 0;
sumEstimateValue += it.sumEstimateValue || 0;
sumPracticalValue += it.sumPracticalValue || 0;
emissionReduction += it.emissionReduction || 0;
estimateValue += it.estimateValue || 0;
practicalValue += it.practicalValue || 0;
});
tmps.push({
factorType: 0,
sumEmissionReduction: sumEmissionReduction,
sumEstimateValue: sumEstimateValue,
sumPracticalValue: sumPracticalValue,
emissionReduction: emissionReduction,
estimateValue: estimateValue,
practicalValue: practicalValue,
});
resolve(tmps);
});
});
};
@ -46,58 +46,60 @@ const groupCurrentMonth = (data) => {
url: "/manage/greenCarbonData/groupCurrentMonth",
method: "get",
params: data,
}).then(d=>{
let tmps=(d.data||[]).map(it=>{
it.emissionReduction=(it.estimateValue||0)-(it.practicalValue||0);
return it;
})
let emissionReduction=0;
let estimateValue=0;
let practicalValue=0;
tmps.forEach(it=>{
emissionReduction+=(it.emissionReduction||0);
estimateValue+=(it.estimateValue||0);
practicalValue+=(it.practicalValue||0);
});
tmps.push({
factorType:0,
emissionReduction:emissionReduction,
estimateValue:estimateValue,
practicalValue:practicalValue
})
resolve(tmps)
}).then((d) => {
let tmps = (d.data || []).map((it) => {
it.emissionReduction = (it.estimateValue || 0) - (it.practicalValue || 0);
return it;
});
let emissionReduction = 0;
let estimateValue = 0;
let practicalValue = 0;
tmps.forEach((it) => {
emissionReduction += it.emissionReduction || 0;
estimateValue += it.estimateValue || 0;
practicalValue += it.practicalValue || 0;
});
tmps.push({
factorType: 0,
emissionReduction: emissionReduction,
estimateValue: estimateValue,
practicalValue: practicalValue,
});
resolve(tmps);
});
});
};
const getGroupData=(tmps,data,factorType,dataType)=>{
let titles=[];
let res=[];
let dt=dayjs(data.createTime);
for(let i=0;i<12;i++){
let date=dt.add(i,"month");
let year=date.$y;
let month=date.$M+1;
titles.push(month+"月");
let objs=tmps.filter(it=>(it.factorType==factorType||factorType==0)&& it.comId==year && it.projectId==month);
let val=null;
if(objs.length>0){
if(dataType==1){
val=objs[0].estimateValue/1000.0
const getGroupData = (tmps, data, factorType, dataType) => {
let titles = [];
let res = [];
let dt = dayjs(data.createTime);
for (let i = 0; i < 12; i++) {
let date = dt.add(i, "month");
let year = date.$y;
let month = date.$M + 1;
titles.push(month + "月");
let objs = tmps.filter((it) => (it.factorType == factorType || factorType == 0) && it.comId == year && it.projectId == month);
let val = 0;
if (objs.length > 0) {
objs.forEach((obj) => {
if (dataType == 1) {
val += obj.estimateValue / 1000.0;
}
if(dataType==2){
val=objs[0].practicalValue/1000.0
if (dataType == 2) {
val += obj.practicalValue / 1000.0;
}
if(dataType==3){
val=((objs[0].estimateValue||0) - (val=objs[0].practicalValue||0))/1000.0
if (dataType == 3) {
val += ((obj.estimateValue || 0) - (val = obj.practicalValue || 0)) / 1000.0;
}
}
res.push(val);
});
}
return {
titles:titles,
datas:res
}
}
res.push(val);
}
return {
titles: titles,
datas: res,
};
};
const groupByYearMonth = (data) => {
return new Promise((resolve) => {
@ -105,47 +107,46 @@ const groupByYearMonth = (data) => {
url: "/manage/greenCarbonData/groupByYearMonth",
method: "get",
params: data,
}).then(d=>{
let tmps=d.data||[];
let buildData={
//预估
estimate: getGroupData(tmps,data,1,1),
//实际
practical:getGroupData(tmps,data,1,2),
//减排
emissionReduction:getGroupData(tmps,data,1,3),
};
let oilData={
//预估
estimate: getGroupData(tmps,data,2,1),
//实际
practical:getGroupData(tmps,data,2,2),
//减排
emissionReduction:getGroupData(tmps,data,2,3),
};
let powerData={
//预估
estimate: getGroupData(tmps,data,3,1),
//实际
practical:getGroupData(tmps,data,3,2),
//减排
emissionReduction:getGroupData(tmps,data,3,3),
};
let totalData={
//预估
estimate: getGroupData(tmps,data,0,1),
//实际
practical:getGroupData(tmps,data,0,2),
//减排
emissionReduction:getGroupData(tmps,data,0,3),
};
resolve({
buildData:buildData,
oilData:oilData,
powerData:powerData,
totalData:totalData,
})
}).then((d) => {
let tmps = d.data || [];
let buildData = {
//预估
estimate: getGroupData(tmps, data, 1, 1),
//实际
practical: getGroupData(tmps, data, 1, 2),
//减排
emissionReduction: getGroupData(tmps, data, 1, 3),
};
let oilData = {
//预估
estimate: getGroupData(tmps, data, 2, 1),
//实际
practical: getGroupData(tmps, data, 2, 2),
//减排
emissionReduction: getGroupData(tmps, data, 2, 3),
};
let powerData = {
//预估
estimate: getGroupData(tmps, data, 3, 1),
//实际
practical: getGroupData(tmps, data, 3, 2),
//减排
emissionReduction: getGroupData(tmps, data, 3, 3),
};
let totalData = {
//预估
estimate: getGroupData(tmps, data, 0, 1),
//实际
practical: getGroupData(tmps, data, 0, 2),
//减排
emissionReduction: getGroupData(tmps, data, 0, 3),
};
resolve({
buildData: buildData,
oilData: oilData,
powerData: powerData,
totalData: totalData,
});
});
});
};

View File

@ -268,7 +268,7 @@ export default {
series: [
{
type: 'pie',
radius: '70%',
radius: '50%',
avoidLabelOverlap: false,
bottom: is1K ? '5%' : is2K ? '15%' : '10%',
top: '-10%',

View File

@ -276,6 +276,10 @@ public class SysUserController extends BaseController {
@GetMapping("/getInfo")
public AjaxResult getInfo() {
SysUser user = SecurityUtils.getLoginUser().getSysUser();
SysDept dept= deptService.selectDeptById(user.getDeptId());
user.setComId(dept.getComId());
user.setActiveComId(dept.getComId());
user.setDept(dept);
AjaxResult ajax = AjaxResult.success();
ajax.put("user", user);
if(Objects.nonNull(user.getRoles()) && user.getRoles().size()>0){

View File

@ -86,8 +86,8 @@
</div>
</div>
<div class="tools-bottom">
<el-button type="primary" @click="doSave"></el-button>
</div>
<el-button type="primary" @click="doSave"></el-button>
</div>
</div>
<div class="test-box">
<div class="tag-box">
@ -109,7 +109,11 @@ import useUserStore from "@/store/modules/user";
import { listBimModel } from "@/api/bim/bimModel";
import { ElMessage, ElMessageBox } from "element-plus";
import { emitter } from "@/router/index.js";
import { devicePositionGet,devicePositionAddItems, devicePositionUpdateItems} from "@/api/bim/bim.js";
import {
devicePositionGet,
devicePositionAddItems,
devicePositionUpdateItems,
} from "@/api/bim/bim.js";
import icons from "./icons.js";
export default {
name: "SandTableSetting",
@ -128,7 +132,7 @@ export default {
positionByModalId: "",
selItem: null,
iconVideo: "",
addLabels:[],
addLabels: [],
};
},
created() {
@ -155,55 +159,59 @@ export default {
methods: {
doSave() {
this.$confirm("确认保存修改?", "提示", {
type:"warning",
type: "warning",
confirmButtonText: "确 认",
cancelButtonText: "取 消",
}).then(() => {
let adds=this.devices.filter((item)=>{
return item.id==null
}).map(item=>{
return {
deviceId:item.deviceId,
deviceType:item.deviceType,
position:JSON.stringify( item.position),
enabled:item.show?1:0,
currentUser:this.userStore.name,
remark:'',
}
})
let updates=this.devices.filter((item)=>{
return item.id!=null
}).map(item=>{
return {
id:item.id,
position:JSON.stringify( item.position),
currentUser:this.userStore.name,
enabled:item.show?1:0,
}
})
console.log("-->",adds,updates)
let ajaxs=[];
if(adds.length>0){
ajaxs.push(devicePositionAddItems({items:adds}))
let adds = this.devices
.filter((item) => {
return item.id == null;
})
.map((item) => {
return {
deviceId: item.deviceId,
deviceType: item.deviceType,
position: JSON.stringify(item.position),
enabled: item.show ? 1 : 0,
currentUser: this.userStore.name,
remark: "",
};
});
let updates = this.devices
.filter((item) => {
return item.id != null;
})
.map((item) => {
return {
id: item.id,
position: JSON.stringify(item.position),
currentUser: this.userStore.name,
enabled: item.show ? 1 : 0,
};
});
console.log("-->", adds, updates);
let ajaxs = [];
if (adds.length > 0) {
ajaxs.push(devicePositionAddItems({ items: adds }));
}
if(updates.length>0){
ajaxs.push(devicePositionUpdateItems({items:updates}))
if (updates.length > 0) {
ajaxs.push(devicePositionUpdateItems({ items: updates }));
}
Promise.all(ajaxs).then((res)=>{
ElMessage.success("保存成功")
})
Promise.all(ajaxs).then((res) => {
ElMessage.success("保存成功");
});
});
},
clearLabels(){
this.addLabels.forEach(id=>{
clearLabels() {
this.addLabels.forEach((id) => {
window.sandSettingApi.Label.removeBalloon(id);
})
this.addLabels=[];
});
this.addLabels = [];
},
addDeviceLabel(){
this.devices.forEach(d=>{
if(d.position && d.position.length>0){
this.AddLable(d)
addDeviceLabel() {
this.devices.forEach((d) => {
if (d.position && d.position.length > 0) {
this.AddLable(d);
}
});
},
@ -229,7 +237,7 @@ export default {
${item.name}
</span>
</div>`;
window.sandSettingApi.Label.addBalloon({
Html: html,
ID: item.elId,
@ -249,18 +257,22 @@ export default {
window.sandSettingApi.Feature.getByPosition([e.x, e.y], (n) => {
if (n && n["id"]) {
this.positionByModalId = n.id.split("^")[0];
window.sandSettingApi.Public.pickupCoordinate(true, (e) => {
this.selItem.position = e;
window.sandSettingApi.Label.removeBalloon(item.elId);
this.AddLable(this.selItem);
window.sandSettingApi.Public.pickupCoordinate(false);
window.sandSettingApi.Public.clearHandler();
});
} else {
ElMessage.warning("请在模型上选点!");
}
});
});
window.sandSettingApi.Public.pickupCoordinate(true, (e) => {
if (!this.positionByModalId) {
return;
}
this.selItem.position = e;
window.sandSettingApi.Label.removeBalloon(item.elId);
this.AddLable(this.selItem);
window.sandSettingApi.Public.pickupCoordinate(false);
window.sandSettingApi.Public.clearHandler();
});
},
doToolsClose() {
this.activeMenu = 0;
@ -298,12 +310,12 @@ export default {
.filter((item) => item.deviceType == this.activeMenu)
.map((item) => {
item.show = item.enabled != 0;
item.position=this.$tryToJson(item.position,[]);
item.position = this.$tryToJson(item.position, []);
item.elId = (item.id ? item.id : cnt++) + "-" + item.deviceType;
return item;
});
this.clearLabels();
this.addDeviceLabel();
this.clearLabels();
this.addDeviceLabel();
});
},
initEngine() {
@ -489,10 +501,10 @@ export default {
}
}
}
.tools-bottom{
.tools-bottom {
position: absolute;
bottom: 10px;
width:100%;
width: 100%;
text-align: center;
}
}