代码提交

This commit is contained in:
lixiaobang 2023-03-24 16:50:05 +08:00
parent 70db821295
commit 262ec2866e
14 changed files with 2149 additions and 1733 deletions

View File

@ -28,7 +28,8 @@
"vue-router": "^3.0.1", "vue-router": "^3.0.1",
"vue2-scale-box": "^0.1.4", "vue2-scale-box": "^0.1.4",
"vuedraggable": "2.24.3", "vuedraggable": "2.24.3",
"vuex": "3.0.1" "vuex": "3.0.1",
"moment": "^2.29.4"
}, },
"devDependencies": { "devDependencies": {
"autoprefixer": "^7.1.2", "autoprefixer": "^7.1.2",

View File

@ -88,3 +88,33 @@ export const getCompleteMonthStatus = (params) => {
{params}, {params},
) )
}; };
//视频监控
export const getIsImportant = (params) => {
return axios.get('api/ems-third-party-service/camera/isImportant',
{params},
)
};
//获取所有监控接口
export const getAllCamera = (params) => {
return axios.get('api/ems-third-party-service/camera/all/get',
{params},
)
};
//获取所有监控接口列表
export const getAllCameraList = (params) => {
return axios.get('api/ems-third-party-service/camera/all/get',
{params},
)
};
//获取摄像头数量接口
export const getCameraCount = (params) => {
return axios.get('api/ems-third-party-service/camera/count',
{params},
)
};
//获取摄像头历史监控
export const getCameraHistory = (params) => {
return axios.get('api/ems-third-party-service/camera/history',
{params},
)
};

View File

@ -38,4 +38,15 @@ export const getAttend = (params) => {
{params}, {params},
) )
}; };
//站班会记录
export const getRecentMeeting = (params) => {
return axios.get('api/ems-third-party-service/project/recentMeeting',
{params},
)
};
//站班会统计
export const getMonthCensus = (params) => {
return axios.get('api/ems-third-party-service/project/monthCensus',
{params},
)
};

View File

@ -8,7 +8,7 @@
height="100%" height="100%"
:extensionFun="extensionFun" :extensionFun="extensionFun"
></Chart> ></Chart>
<div class="lineBox"></div> <!-- <div class="lineBox"></div> -->
</div> </div>
</template> </template>
<script> <script>
@ -53,7 +53,11 @@ export default {
yAxisPadding: { yAxisPadding: {
type: Array, type: Array,
default: null default: null
} },
radarList:{
type: Array,
default: null
} //
}, },
components: { components: {
@ -69,7 +73,13 @@ export default {
watch: { watch: {
// Echarts // Echarts
chartData: { // chartData: {
// deep: true,
// handler () {
// this.resetOption()
// }
// },
radarList:{
deep: true, deep: true,
handler () { handler () {
this.resetOption() this.resetOption()
@ -100,6 +110,12 @@ export default {
} }
}, },
option () { option () {
let month = [];
let number = [];
this.radarList.forEach((item,index) => {
month.push(item.month + '月')
number.push(item.number)
});
const self = this const self = this
return { return {
title: { title: {
@ -119,10 +135,10 @@ export default {
} }
}, },
grid: { grid: {
top: '121', top: '80',
left: '37', left: '37',
right: '31', right: '31',
bottom: '46', bottom: '20',
containLabel: true containLabel: true
}, },
xAxis: { xAxis: {
@ -130,7 +146,7 @@ export default {
// x线 // x线
show: true, show: true,
lineStyle: { lineStyle: {
color: '#ffff', color: '#fff',
height: 0 height: 0
} }
}, },
@ -146,7 +162,7 @@ export default {
}, },
triggerEvent: true, triggerEvent: true,
type: 'category', type: 'category',
data: this.xAxisData data: month
}, },
yAxis: { yAxis: {
name: '次数', name: '次数',
@ -183,7 +199,7 @@ export default {
series: [ series: [
{ {
name:'检查次数', name:'检查次数',
data: this.chartData, data: number,
type: 'bar', type: 'bar',
barWidth:10, barWidth:10,
color:'#0DFFFF' color:'#0DFFFF'

View File

@ -89,6 +89,10 @@
var arr = ['middleLost', 0.6, val1data2, '今日完成进度'] var arr = ['middleLost', 0.6, val1data2, '今日完成进度']
// //
myChart.setOption({ myChart.setOption({
tooltip:{
trigger:'item',
formatter: '{b}{c}',
},
graphic: { graphic: {
elements: [{ elements: [{
type: 'image',//,image,, text, circle, sector, ring, polygon, polyline, rect, line, bezierCurve, arc, group, type: 'image',//,image,, text, circle, sector, ring, polygon, polyline, rect, line, bezierCurve, arc, group,

View File

@ -79,6 +79,10 @@ export default {
var arr = ['middleLost', 0.6, val1data2, '今日完成进度'] var arr = ['middleLost', 0.6, val1data2, '今日完成进度']
// //
myChart.setOption({ myChart.setOption({
tooltip:{
trigger:'item',
formatter: '{b}{c}%',
},
graphic: { graphic: {
elements: [{ elements: [{
type: 'image',//,image,, text, circle, sector, ring, polygon, polyline, rect, line, bezierCurve, arc, group, type: 'image',//,image,, text, circle, sector, ring, polygon, polyline, rect, line, bezierCurve, arc, group,

View File

@ -72,6 +72,10 @@ export default {
var arr = ["middleLost", 0.6, val1data2, "今日完成进度"]; var arr = ["middleLost", 0.6, val1data2, "今日完成进度"];
// //
myChart.setOption({ myChart.setOption({
tooltip:{
trigger:'item',
formatter: '{b}{c}%',
},
series: [ series: [
{ {
type: "pie", type: "pie",

View File

@ -9,7 +9,7 @@
<div class="jsBox"> <div class="jsBox">
<div class="bogJs" v-for="(item, i) in pieData" :key="i"> <div class="bogJs" v-for="(item, i) in pieData" :key="i">
<div class="jsChild"> <div class="jsChild">
<span :style="item.color"></span> <span :style="{'background':item.colorList}"></span>
<!-- <span :background="item.color"></span> --> <!-- <span :background="item.color"></span> -->
<span>{{item.groupName}}</span> <span>{{item.groupName}}</span>
</div> </div>
@ -58,10 +58,11 @@ export default {
totalPer:0, totalPer:0,
pieDataNew:[], pieDataNew:[],
color:['background-color:#00B3FF','background-color:#F1E453','background-color:#F85B60','background-color:#00A572', 'background-color:#008AA4', 'background-color:#7968D9', 'background-color:#C7A73E'], color:['background-color:#00B3FF','background-color:#F1E453','background-color:#F85B60','background-color:#00A572', 'background-color:#008AA4', 'background-color:#7968D9', 'background-color:#C7A73E'],
colorList:['#00B3FF','#F1E453','#F85B60','#00A572', '#008AA4', '#7968D9', '#C7A73E'],
}; };
}, },
mounted() { mounted() {
this.initCharts(); // this.initCharts();
}, },
watch: { watch: {
// Echarts // Echarts
@ -74,10 +75,8 @@ export default {
pieData: { pieData: {
deep: true, deep: true,
handler(newVal) { handler(newVal) {
console.log(newVal,'==============');
// this.initCharts(newVal)
this.changeNewVal(newVal) this.changeNewVal(newVal)
this.initCharts(newVal)
} }
} }
}, },
@ -85,21 +84,74 @@ export default {
methods: { methods: {
// //
changeNewVal(newVal){ changeNewVal(newVal){
console.log("newVal",newVal)
this.pieDataNew = newVal this.pieDataNew = newVal
// var pieDataN = [] // var pieDataN = []
newVal.map((item,index) => { newVal.map((item,index) => {
this.totalPer+=item.number this.totalPer+=item.number
console.log("this.totalPer",this.totalPer) console.log("this.totalPer",this.totalPer)
this.color.forEach((items,indexs) => { this.colorList.forEach((items,indexs) => {
if(index==indexs){ if(index==indexs){
return item.color = items return item.colorList = items
} }
}) })
}) })
}, },
initCharts() { initCharts(dataList) {
let series = [];
let serItem={}
dataList.forEach((item,index) => {
serItem={}
serItem={
name: item.groupName,
type: 'pie',
clockWise: true,
hoverAnimation: false,
radius: [80-(index*10), 82-(index*10)],
center: ['50%', '50%'],
itemStyle: {
normal: {
label: {
show: false
},
labelLine: {
show: false,
length: 100,
smooth: 0.5
},
borderWidth: 3,
shadowBlur: 40,
borderColor: item.colorList,
shadowColor: 'rgba(0, 0, 0, 0)' //
}
},
data: [ {
value: item.number,
}, {
value: item.number + 5,
// name: '',
itemStyle: {
normal: {
label: {
show: false,
position: "center"
},
labelLine: {
show: false
},
color: "rgb(8,76,71)",
borderWidth: 0
},
emphasis: {
color: "#104841a3",
borderColor: "#00b3ff",
borderWidth: 0
}
}
}]
},
series.push(serItem)
});
let myChart = this.$echarts.init(this.$refs.chart); let myChart = this.$echarts.init(this.$refs.chart);
var placeHolderStyle = { var placeHolderStyle = {
normal: { normal: {
@ -121,103 +173,110 @@ export default {
}; };
// //
myChart.setOption({ myChart.setOption({
series: [ tooltip:{
{ trigger:'item',
name: '值', formatter: function (params) {
type: 'pie', return params.seriesName+':' +params.value
clockWise: true, }
hoverAnimation: false, },
radius: ['92%', '97%'], series: series,
center: ['50%', '50%'], // [
itemStyle: { // {
normal: { // name: '',
label: { // type: 'pie',
show: false // clockWise: true,
}, // hoverAnimation: false,
labelLine: { // radius: ['92%', '97%'],
show: false, // center: ['50%', '50%'],
length: 100, // itemStyle: {
smooth: 0.5 // normal: {
}, // label: {
borderWidth: 5, // show: false
shadowBlur: 40, // },
borderColor: "#00B3FF", // labelLine: {
shadowColor: 'rgba(0, 0, 0, 0)' // // show: false,
} // length: 100,
}, // smooth: 0.5
data: [{ // },
value: 12, // borderWidth: 5,
}, { // shadowBlur: 40,
value: 4, // borderColor: "#00B3FF",
name: '', // shadowColor: 'rgba(0, 0, 0, 0)' //
itemStyle: placeHolderStyle // }
}] // },
}, // data: [{
// ------------2 // value: 12,
{ // }, {
name: '值', // value: 4,
type: 'pie', // name: '',
clockWise: true, // itemStyle: placeHolderStyle
hoverAnimation: false, // }]
radius: ['72%', '67%'], // },
center: ['50%', '50%'], // // ------------2
itemStyle: { // {
normal: { // name: '',
label: { // type: 'pie',
show: false // clockWise: true,
}, // hoverAnimation: false,
labelLine: { // radius: ['72%', '67%'],
show: false, // center: ['50%', '50%'],
length: 100, // itemStyle: {
smooth: 0.5 // normal: {
}, // label: {
borderWidth: 5, // show: false
shadowBlur: 40, // },
borderColor: "#F1E453", // labelLine: {
shadowColor: 'rgba(0, 0, 0, 0)' // // show: false,
} // length: 100,
}, // smooth: 0.5
data: [{ // },
value: 6, // borderWidth: 5,
}, { // shadowBlur: 40,
value: 4, // borderColor: "#F1E453",
name: '', // shadowColor: 'rgba(0, 0, 0, 0)' //
itemStyle: placeHolderStyle // }
}] // },
}, // data: [{
// ------------3 // value: 6,
{ // }, {
name: '值', // value: 4,
type: 'pie', // name: '',
clockWise: true, // itemStyle: placeHolderStyle
hoverAnimation: false, // }]
radius: ['48%', '44%'], // },
center: ['50%', '50%'], // // ------------3
itemStyle: { // {
normal: { // name: '',
label: { // type: 'pie',
show: false // clockWise: true,
}, // hoverAnimation: false,
labelLine: { // radius: ['48%', '44%'],
show: false, // center: ['50%', '50%'],
length: 100, // itemStyle: {
smooth: 0.5 // normal: {
}, // label: {
borderWidth: 5, // show: false
shadowBlur: 40, // },
borderColor: "#f85b60", // labelLine: {
shadowColor: 'rgba(0, 0, 0, 0)' // // show: false,
} // length: 100,
}, // smooth: 0.5
data: [{ // },
value: 9, // borderWidth: 5,
}, { // shadowBlur: 40,
value: 44, // borderColor: "#f85b60",
name: '', // shadowColor: 'rgba(0, 0, 0, 0)' //
itemStyle: placeHolderStyle // }
}] // },
}, // data: [{
] // value: 9,
// }, {
// value: 44,
// name: '',
// itemStyle: placeHolderStyle
// }]
// },
// ]
}); });
// //

View File

@ -35,6 +35,14 @@ Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key]) Vue.filter(key, filters[key])
}) })
import moment from 'moment'
//定义一个全局过滤器实现日期格式化
Vue.filter('datefmt',function (input,fmtstring) {//当input为时间戳时需转为Number类型
// 使用momentjs这个日期格式化类库实现日期的格式化功能
return moment(input).format(fmtstring);
});
Vue.prototype.$moment = moment
Vue.config.productionTip = false Vue.config.productionTip = false
//MQTT订阅 //MQTT订阅
var currentTopics = null; var currentTopics = null;

View File

@ -38,7 +38,7 @@
<!-- 视频监控 --> <!-- 视频监控 -->
<VideoSurveillanceComponents v-if="videoSurveillanceShow" @transfer="getUser"/> <VideoSurveillanceComponents v-if="videoSurveillanceShow" @transfer="getUser"/>
<!-- 视频监控子页面 --> <!-- 视频监控子页面 -->
<VideoViewingComponents v-if="videoViewingShow"/> <VideoViewingComponents v-if="videoViewingShow" :videoName="videoName" :videoId="videoId"/>
<!-- 进度管理 --> <!-- 进度管理 -->
<ProgressComponents v-if="progressShow"/> <ProgressComponents v-if="progressShow"/>
<!-- 安全管理 --> <!-- 安全管理 -->
@ -111,6 +111,8 @@ export default {
}, },
data() { data() {
return { return {
videoName:'', //
videoId:'',//Id
// //
indexShow:true, indexShow:true,
// //
@ -371,7 +373,26 @@ export default {
} }
}, },
closeindex(){ closeindex(){
this.$router.push('/') // this.$router.push('/')
this.$confirm("确定退出登录?", "确认信息", {
distinguishCancelAndClose: true,
confirmButtonText: "退出",
cancelButtonText: "取消",
})
.then(() => {
this.$message({
type: "info",
message: "返回登录",
});
this.$router.push("/");
sessionStorage.clear(); //session
})
.catch((action) => {
this.$message({
type: "info",
message: action === "cancel" ? "取消退出" : "停留在当前页面",
});
});
}, },
// //
getTime(){ getTime(){
@ -401,7 +422,6 @@ export default {
url: 'https://restapi.amap.com/v3/weather/weatherInfo?key=e979d73682c0c69059e4cb6740c9dacd&city=320100', url: 'https://restapi.amap.com/v3/weather/weatherInfo?key=e979d73682c0c69059e4cb6740c9dacd&city=320100',
methods: '' methods: ''
}).then(res => { }).then(res => {
console.log(res.data,'=======================');
this.weatherItem = res.data.lives[0]; this.weatherItem = res.data.lives[0];
}); });
} , } ,
@ -439,7 +459,7 @@ export default {
// //
getUser(msg){ getUser(msg){
// this.username= msg // this.username= msg
if(msg=='into'){ if(msg != null){
this.indexShow = false this.indexShow = false
this.personnelShow = false this.personnelShow = false
this.videoSurveillanceShow = false this.videoSurveillanceShow = false
@ -447,6 +467,8 @@ export default {
this.managementShow= false this.managementShow= false
this.progressShow = false this.progressShow = false
this.titLeftshow = true this.titLeftshow = true
this.videoName = msg.videoName
this.videoId = msg.videoId
} }
}, },
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {

View File

@ -200,6 +200,7 @@
</div> </div>
</div> </div>
<!-- 右侧模块1 --> <!-- 右侧模块1 -->
<div class="rightOneBox" :style="{ right: boxNone ? '27px' : '-444px' }"> <div class="rightOneBox" :style="{ right: boxNone ? '27px' : '-444px' }">
<div class="titName"> <div class="titName">
<span></span> <span></span>
@ -210,16 +211,19 @@
<div <div
style="position: relative; margin-left: 30px; margin-right: 20px" style="position: relative; margin-left: 30px; margin-right: 20px"
class="videoFat" class="videoFat"
v-for="(item,index) in videoList"
:key="index"
> >
<img src="@/assets/pic/23.png" alt="" /> <img :src="item.thumbnail" alt="" />
<div class="smallBox">隧道2号位摄像头</div> <div class="smallBox">{{item.equipmentName}}</div>
</div> </div>
<div style="position: relative" class="videoFat"> <!-- <div style="position: relative" class="videoFat">
<img src="@/assets/pic/23.png" alt="" /> <img src="@/assets/pic/23.png" alt="" />
<div class="smallBox">隧道3号位摄像头</div> <div class="smallBox">隧道3号位摄像头</div>
</div> </div> -->
</div> </div>
</div> </div>
<!-- 右侧模块2 --> <!-- 右侧模块2 -->
<div class="rightTwoBox" :style="{ right: boxNone ? '27px' : '-442px' }"> <div class="rightTwoBox" :style="{ right: boxNone ? '27px' : '-442px' }">
<div class="titName"> <div class="titName">
@ -352,6 +356,7 @@ import {
getProjectStatus, getProjectStatus,
getProjectCheckCensus, getProjectCheckCensus,
getProjectCheckInfo, getProjectCheckInfo,
getIsImportant,
} from "@/api/api"; } from "@/api/api";
export default { export default {
name: "report", name: "report",
@ -363,6 +368,7 @@ export default {
}, },
data() { data() {
return { return {
videoList:[],//
jinduList:0, // jinduList:0, //
progress:0, // progress:0, //
securityCheck: [], // securityCheck: [], //
@ -729,6 +735,12 @@ export default {
} }
this.tableData = res.data.data; this.tableData = res.data.data;
}); });
//
getIsImportant().then((res)=>{
this.videoList = Object.keys(res.data.data).map((item,index)=>{
return {thumbnail:res.data.data[item].thumbnail,equipmentName:res.data.data[item].equipmentName}
})
})
}); });
window.onresize = () => { window.onresize = () => {
@ -894,7 +906,7 @@ export default {
} }
.smallBox { .smallBox {
width: 105px; // width: 105px;
height: 28px; height: 28px;
background: rgba(0, 37, 35, 0.5); background: rgba(0, 37, 35, 0.5);
position: absolute; position: absolute;
@ -1125,15 +1137,19 @@ export default {
.videoBox { .videoBox {
position: absolute; position: absolute;
bottom: 33px; // bottom: 33px;
display: flex; // display: flex;
// width: 100%;
overflow-y: auto; //
height: calc(100% - 60px);
top: 40px;
.videoFat { .videoFat {
background: gray; background: gray;
flex: 1; flex: 1;
width: 180px; width: 165px;
height: 183px; height: 183px;
float: left;
margin-top: 5%;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -1442,10 +1458,11 @@ export default {
position: absolute; position: absolute;
top: 96px; top: 96px;
right: 27px; right: 27px;
overflow-x: hidden; // overflow-x: auto;
transition: right 0.8s, height 1s; transition: right 0.8s, height 1s;
overflow-y: hidden; // // overflow-y: auto; //
display: flex;
flex-direction: column;
@media only screen and (max-height: 1000px) { @media only screen and (max-height: 1000px) {
top: 76px; top: 76px;
height: 282px; height: 282px;

View File

@ -48,37 +48,40 @@
<span></span> <span></span>
</div> </div>
<div class="kqjk"> <div class="kqjk">
<div class="oneKqjk">
<img src="@/assets/pic/23.png" alt="" />
</div>
<div class="twoKqjk"> <div class="twoKqjk">
<div class="nameMessage" v-for="(item, i) in peopleList" :key="i"> <div class="nameMessage" v-for="(item, i) in peopleList" :key="i">
<div> <div class="oneKqjk">
<span style="color: #7ffffc">姓名</span> <img :src="item.picture" alt="" />
<span style="color: #ffffff">{{ item.value }}</span> </div>
<div class="textRight">
<div style="margin-top:10px">
<span style="color: #7ffffc;white-space: nowrap">姓名</span>
<span style="color: #ffffff">{{ item.name }}</span>
</div> </div>
<div> <div style="margin-top:10px">
<span style="color: #7ffffc">岗位</span> <span style="color: #7ffffc;white-space: nowrap">岗位</span>
<span style="color: #ffffff">{{ item.value }}</span> <span style="color: #ffffff">{{ item.post }}</span>
</div> </div>
<div> <div style="margin-top:10px">
<span style="color: #7ffffc">体温</span> <span style="color: #7ffffc;white-space: nowrap">体温</span>
<span style="color: #ffffff">{{ item.value }}</span> <span style="color: #ffffff">{{ item.temperature }}</span>
</div> </div>
<div> <div style="margin-top:10px">
<span style="color: #7ffffc">入场时间</span> <span style="color: #7ffffc;white-space: nowrap">入场时间</span>
<span style="color: #ffffff">{{ item.value }}</span> <span style="color: #ffffff">{{ item.time }}</span>
</div> </div>
<div> <div style="margin-top:10px">
<span style="color: #7ffffc">考勤类型</span> <span style="color: #7ffffc;white-space: nowrap">考勤类型</span>
<span style="color: #ffffff">{{ item.value }}</span> <span style="color: #ffffff;">{{ item.type }}</span>
</div> </div>
<div> <div style="margin-top:10px">
<span style="color: #7ffffc">打卡设备</span> <span style="color: #7ffffc;white-space: nowrap">打卡设备</span>
<span style="color: #ffffff">{{ item.value }}</span> <span style="color: #ffffff">{{ item.equipment }}</span>
</div> </div>
</div> </div>
</div> </div>
</div>
</div> </div>
</div> </div>
<!-- 右侧模块1 --> <!-- 右侧模块1 -->
@ -96,15 +99,15 @@
<div class="mesBox"> <div class="mesBox">
<div> <div>
<span style="color: #82dddb">会议时间</span> <span style="color: #82dddb">会议时间</span>
<span style="color: #ffffff">2023-01-02</span> <span style="color: #ffffff">{{meeting.date}}</span>
</div> </div>
<div> <div>
<span style="color: #82dddb">会议类型</span> <span style="color: #82dddb">会议类型</span>
<span style="color: #ffffff">项目早会</span> <span style="color: #ffffff">{{meeting.type}}</span>
</div> </div>
<div> <div>
<span style="color: #82dddb">会议主持</span> <span style="color: #82dddb">会议主持</span>
<span style="color: #ffffff">王毅</span> <span style="color: #ffffff">{{meeting.host}}</span>
</div> </div>
<div> <div>
<span style="color: #82dddb">参会人员</span> <span style="color: #82dddb">参会人员</span>
@ -115,23 +118,18 @@
display: inline-block; display: inline-block;
white-space: pre-wrap; white-space: pre-wrap;
" "
>王小龙高红澄澈</span >{{meeting.participants}}</span
> >
</div> </div>
</div> </div>
</div> </div>
<div class="meeting">会议内容</div> <div class="meeting">会议内容</div>
<div class="mettiogBox"> <div class="mettiogBox">
<div> <div class="meetContent">
<div>1施工部署</div> {{meeting.content}}</div>
<div> <div style="height:10%;width:100%">
(1)土方开挖:条基采用机械开挖局部人工修补余土外运桩基采用人工挖土桩基挖土过程中设置通风设备保证挖土人员的安全 <div class="lookFor" @click="gantDialog"></div>
</div> </div>
<div>
(2)钢筋加工:现场加工现场设置钢筋加工棚布置加工机械梁板钢筋连接采用绑扎接头或闪光对焊柱及墙板钢筋采用电渣压力焊
</div>
</div>
<div class="lookFor" @click="gantDialog"></div>
</div> </div>
</div> </div>
<!-- 右侧模块2 --> <!-- 右侧模块2 -->
@ -148,6 +146,7 @@
:color-array="['#021C9F', '#01B1FF']" :color-array="['#021C9F', '#01B1FF']"
:chart-data="qyList" :chart-data="qyList"
:x-axis-data="qyList.map((item) => item.name)" :x-axis-data="qyList.map((item) => item.name)"
:radarList="radarList"
/> />
</div> </div>
</div> </div>
@ -199,15 +198,15 @@
<div class="mesBox"> <div class="mesBox">
<div> <div>
<span style="color: #82dddb">会议时间</span> <span style="color: #82dddb">会议时间</span>
<span style="color: #ffffff">2023-01-02</span> <span style="color: #ffffff">{{meeting.date}}</span>
</div> </div>
<div> <div>
<span style="color: #82dddb">会议类型</span> <span style="color: #82dddb">会议类型</span>
<span style="color: #ffffff">项目早会</span> <span style="color: #ffffff">{{meeting.type}}</span>
</div> </div>
<div> <div>
<span style="color: #82dddb">会议主持</span> <span style="color: #82dddb">会议主持</span>
<span style="color: #ffffff">王毅</span> <span style="color: #ffffff">{{meeting.host}}</span>
</div> </div>
<div> <div>
<span style="color: #82dddb">参会人员</span> <span style="color: #82dddb">参会人员</span>
@ -218,29 +217,17 @@
display: inline-block; display: inline-block;
white-space: pre-wrap; white-space: pre-wrap;
" "
>王小龙高红澄澈</span >{{meeting.participants}}</span
> >
</div> </div>
</div> </div>
</div> </div>
<div class="meet2ing">会议内容</div> <div class="meet2ing">会议内容</div>
<div class="mettiog2Box"> <div class="mettiog2Box">
<div> <div class="meetContent">
<div>1施工部署</div> {{meeting.content}}
<div>
(1)土方开挖:条基采用机械开挖局部人工修补余土外运桩基采用人工挖土桩基挖土过程中设置通风设备保证挖土人员的安全
</div> </div>
<div> </div>
(2)钢筋加工:现场加工现场设置钢筋加工棚布置加工机械梁板钢筋连接采用绑扎接头或闪光对焊柱及墙板钢筋采用电渣压力焊
</div>
<div>
(3)钢筋加工:现场加工现场设置钢筋加工棚布置加工机械梁板钢筋连接采用绑扎接头或闪光对焊柱及墙板钢筋采用电渣压力焊
</div>
<div>
(4)钢筋加工:现场加工现场设置钢筋加工棚布置加工机械梁板钢筋连接采用绑扎接头或闪光对焊柱及墙板钢筋采用电渣压力焊
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -255,7 +242,7 @@ import RadarChart from "@/components/common/RadarChart";
import pieChart from "@/components/common/pieChart"; import pieChart from "@/components/common/pieChart";
import pieDateChart from "@/components/common/pieDateChart"; import pieDateChart from "@/components/common/pieDateChart";
import Resize from "../utils/Resize.vue"; import Resize from "../utils/Resize.vue";
import { getUserGroup, getGroupCensus, getAttend } from "@/api/personnel"; import { getUserGroup, getGroupCensus, getAttend,getRecentMeeting,getMonthCensus } from "@/api/personnel";
export default { export default {
name: "report", name: "report",
components: { components: {
@ -266,6 +253,8 @@ export default {
}, },
data() { data() {
return { return {
radarList:[], //
meeting:{}, //
boxNone: true, boxNone: true,
colorList: ["#00A572", "#008AA4", "#7968D9", "#C7A73E"], colorList: ["#00A572", "#008AA4", "#7968D9", "#C7A73E"],
iconPicList: [ iconPicList: [
@ -374,7 +363,13 @@ export default {
chartData: [], chartData: [],
peopleList: [ peopleList: [
{ {
name:'王刚' name:'史蒂芬库里',
post:'经理',
temperature:'36.7',
time:'2023-2-1',
type:'lala',
equipment:'一号打卡机',
picture:require('../assets/pic/23.png')
} }
], ],
vdaH: 0, vdaH: 0,
@ -413,7 +408,6 @@ export default {
getUserGroup({ getUserGroup({
projectId: projectId, projectId: projectId,
}).then((res) => { }).then((res) => {
console.log("res.data.data", res.data.data);
// this.projectUser = res.data.data // this.projectUser = res.data.data
this.pieData = res.data.data; this.pieData = res.data.data;
}); });
@ -423,11 +417,26 @@ export default {
}).then((res) => { }).then((res) => {
this.constructionPersonnel = res.data.data; this.constructionPersonnel = res.data.data;
}); });
//
getAttend({ getAttend({
projectId: projectId, projectId: projectId,
}).then((res) => { }).then((res) => {
console.log(res.data, "============="); this.peopleList = Object.keys(res.data.data).map((item,index)=>{
return {name:res.data.data[item].name,post:res.data.data[item].post,type:res.data.data[item].type,time:res.data.data[item].time,picture:res.data.data[item].picture,equipment:res.data.data[item].equipment,temperature:res.data.data[item].temperature}
})
}); });
//
getRecentMeeting({
projectId: projectId,
}).then((res)=>{
this.meeting = res.data.data
})
//
getMonthCensus({
projectId: projectId,
}).then((res)=>{
this.radarList = res.data.data
})
}, },
createMqtt() { createMqtt() {
@ -659,13 +668,17 @@ export default {
font-size: 14px; font-size: 14px;
font-family: SourceHanSansCN-Medium, SourceHanSansCN; font-family: SourceHanSansCN-Medium, SourceHanSansCN;
font-weight: 500; font-weight: 500;
margin-top: 10px; // margin-top: 10px;
margin-left: 18px; // margin-left: 18px;
width: 100%;
span:nth-child(1) { display: flex;
display: inline-block; // span:nth-child(1) {
width: 56px; // display: inline-block;
text-align-last: justify; // width: 56px;
// text-align-last: justify;
// }
.textRight{
width: 50%;
} }
} }
@ -736,6 +749,17 @@ export default {
color: #ffffff; color: #ffffff;
padding: 0 22px 0 0px; padding: 0 22px 0 0px;
height: 260px; height: 260px;
::-webkit-scrollbar {
display: none;
}
.meetContent{
overflow: auto;
height: 90%;
width: 100%;
word-wrap: break-word;
word-break: break-all;
}
} }
.mettiogBox { .mettiogBox {
@ -747,16 +771,31 @@ export default {
font-weight: 500; font-weight: 500;
color: #ffffff; color: #ffffff;
padding: 0 22px 0 30px; padding: 0 22px 0 30px;
height: 260px; height: 215px;
width: 100%;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: center;
@media only screen and (max-height: 1000px) { @media only screen and (max-height: 1000px) {
top: 330px; top: 330px;
} }
::-webkit-scrollbar {
display: none;
}
.meetContent{
overflow: auto;
height: 90%;
width: 100%;
word-wrap: break-word;
word-break: break-all;
}
} }
.lookFor { .lookFor {
width: 57px; width: 57px;
height: 24px; height: 100%;
background: url("~@/assets/pic/view.png") no-repeat; background: url("~@/assets/pic/view.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
float: right; float: right;
@ -812,7 +851,9 @@ export default {
position: absolute; position: absolute;
top: 48px; top: 48px;
display: flex; display: flex;
::-webkit-scrollbar {
display: none ;
}
@media only screen and (max-height: 1000px) { @media only screen and (max-height: 1000px) {
top: 24px; top: 24px;
} }
@ -822,7 +863,7 @@ export default {
height: 160px; height: 160px;
padding: 5px; padding: 5px;
border: 1px solid #00ebeb; border: 1px solid #00ebeb;
margin-top: 38px; margin-top: 11px;
margin-left: 18px; margin-left: 18px;
margin-right: 14px; margin-right: 14px;
@ -833,10 +874,11 @@ export default {
} }
.twoKqjk { .twoKqjk {
width: 234px; width: 100%;
height: 200px; height: 194px;
margin-top: 25px; margin-top: 25px;
background: rgba(0, 84, 79, 0.3); background: rgba(0, 84, 79, 0.3);
overflow-y: auto;
} }
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff