Compare commits

...

2 Commits

  1. 6
      folder-alias.json
  2. BIN
      src/assets/images/zw.png
  3. 24
      src/views/constructionScheduling/progress-monitoring/echartsOptions.js
  4. 14
      src/views/constructionScheduling/progress-monitoring/index.vue
  5. 51
      src/views/large-screen/index.vue
  6. 4
      src/views/sitePersonnel/access-control/index.vue
  7. 3
      src/views/sitePersonnel/work-attendance/index.vue
  8. 9
      src/views/vehicleMachinery/map.vue

@ -28,5 +28,11 @@
},
"src/views/constructionScheduling/resource-management": {
"description": "资源管理"
},
"src/views/sitePersonnel/access-control": {
"description": "门禁"
},
"src/views/sitePersonnel/work-attendance": {
"description": "考勤记录"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@ -6,7 +6,9 @@ export function echartsZhe({ ydata2, ydata1, xdata }) {
let server = [{
type: "line",
name: "计划进度",
symbolSize: 1,
showAllSymbol: true,
symbol: "circle",
symbolSize: 8,
animation: false,
itemStyle: {
normal: {
@ -18,17 +20,21 @@ export function echartsZhe({ ydata2, ydata1, xdata }) {
},
position: "top",
},
color: color[0],
color: '#fff',
borderColor: color[0],
borderWidth: 2,
lineStyle: {
color: color[0],
width: 1,
width: 2,
},
},
},
data: ydata1 ? ydata1 : [],
}, {
type: "line",
symbolSize: 1,
showAllSymbol: true,
symbol: "circle",
symbolSize: 8,
name: "实际进度",
animation: false,
itemStyle: {
@ -41,10 +47,12 @@ export function echartsZhe({ ydata2, ydata1, xdata }) {
},
position: "top",
},
color: color[1],
color: '#fff',
borderColor: color[1],
borderWidth: 2,
lineStyle: {
color: color[1],
width: 1,
width: 2,
},
},
},
@ -63,7 +71,7 @@ export function echartsZhe({ ydata2, ydata1, xdata }) {
textStyle: {
fontSize: 14,
},
data: xdata,
data: xdata ? xdata : [],
},
tooltip: {
trigger: "axis",
@ -88,7 +96,7 @@ export function echartsZhe({ ydata2, ydata1, xdata }) {
axisTick: {
show: true,
},
data: [1, 2, 3, 4],
data: xdata ? xdata : [],
},
],
yAxis: [

@ -48,15 +48,14 @@ function getList(params) {
let ydata1 = []
let ydata2 = []
nextTick(() => {
console.log(res.data.datelist);
res.data.namelist.map((item, index) => {
ydata1.push(res.data.actuallist[index])
ydata2.push(res.data.planlist[index])
state.echart({
id: 'staff' + index,
grid: state.echartsZhe({
ydata1: ydata1,
ydata2: ydata2,
xdata: res.data.namelist
ydata1: res.data.actuallist,
ydata2: res.data.planlist,
xdata: res.data.datelist
}),
});
})
@ -126,5 +125,8 @@ function getList(params) {
/* 子元素超出宽度时换行 */
}
.app-container {}
.app-container {
height: calc(100vh - 140px);
overflow: auto;
}
</style>

@ -2,7 +2,7 @@
<div class="data-screen" element-loading-text="加载中请稍后..." v-loading="state.loading">
<div class="topheader">
<div class="gradient">
智慧工地数据大屏
智慧工地数据看板
</div>
<div class="xitong" @click="Jump()"></div>
</div>
@ -33,7 +33,8 @@
<span>总工期</span>
</div>
<div class="data-font jbborder">
<span class="number-font">{{ parseFloat(state.gk.gcjd).toFixed(0) }}<span>%</span></span>
<span class="number-font">{{ parseFloat(state.gk.gcjd).toFixed(0)
}}<span>%</span></span>
<span>工程进度</span>
</div>
<div class="data-font jbborder">
@ -57,8 +58,11 @@
<div class="top-item">
<div class="boxtitle">智能资源调度</div>
<div class="boxcontent" style="display: flex;flex-direction: column;justify-content: space-around;">
<div v-if="state.dispatchList.length == 0">
<el-empty :image-size="'6.25rem'" description="暂无预警" />
<div class="zanwu" v-if="state.dispatchList.length == 0">
<img style="width: 9.375rem;" src="../../assets/images/zw.png" alt="">
<div class="zwtext">
暂无资源调度
</div>
</div>
<div v-for="item, index in state.dispatchList.slice(0, 2)">
<div class="jd-title">
@ -150,9 +154,13 @@
<div class="right-top-item" style="overflow: hidden;">
<div class="top-item">
<div class="boxtitle">进度预警</div>
<div v-if="state.warnList.length == 0" class="boxcontent"
style="display: grid;grid-template-columns: 1fr ;">
<el-empty :image-size="100" description="暂无预警" />
<div class="boxcontent" v-if="state.warnList.length == 0">
<div class="zanwu">
<img style="width: 150px;" src="../../assets/images/zw.png" alt="">
<div class="zwtext">
暂无进度预警
</div>
</div>
</div>
<div v-else class="boxcontent"
style="display: grid;grid-template-columns: 1fr 1fr ;grid-gap: .75rem;padding: 1.5625rem 1.3125rem;">
@ -166,7 +174,7 @@
</el-progress>
</div>
</div>
<div>预警信息{{ item.warnInfo?item.warnInfo:'-' }}</div>
<div>预警信息{{ item.warnInfo ? item.warnInfo : '-' }}</div>
</div>
</div>
</div>
@ -198,7 +206,10 @@
</div>
</div>
<div class="zanwu" v-if="state.monitorList.length == 0">
暂无数据
<img style="width: 9.375rem;" src="../../assets/images/zw.png" alt="">
<div class="zwtext">
暂无进度监控
</div>
</div>
</vue3-seamless-scroll>
</div>
@ -243,7 +254,10 @@
</div>
</div>
<div class="zanwu" v-if="state.tableData.length == 0">
暂无数据
<img style="width: 200px;" src="../../assets/images/zw.png" alt="">
<div class="zwtext">
暂无门禁记录
</div>
</div>
</vue3-seamless-scroll>
</div>
@ -302,9 +316,8 @@ onMounted(async () => {
await engineeringLog()
await getQuerywarn()
await getStatistics()
// await getVehiclestat()
// await accessControl()
await getVehiclestat()
await accessControl()
state.loading = false
})
function Jump() {
@ -454,6 +467,18 @@ function engineeringLog(params) {
text-align: center;
color: #fff;
padding: .625rem;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
}
.zwtext {
position: absolute;
bottom: .9375rem;
width: 100%;
text-align: center;
color: #ccc;
}
.table-item>div {

@ -35,6 +35,9 @@ const state = reactive({
delete: 'accessControl:page:list',
detail: 'accessControl:page:list',
},
tableResult:{
successCode:0
},
pageInfo: { total: 0, base: { limit: 8, current: 1 } },
tableDataFormatter: function (params, res) {
res.data.total = res.data.totalRows
@ -49,6 +52,7 @@ onMounted(() => {
<template>
<div class="app-container">
<BaseTablePage :tableOptions="state">
<template v-slot:column>
<el-table-column type="index" align="center" label="序号" width="70" />

@ -29,6 +29,9 @@ const state = reactive({
showEditBtn: false,
showDelBtn: false
},
tableResult:{
successCode:0
},
permission: {//
add: 'workAttendance:page:list',
edit: 'workAttendance:page:list',

@ -22,12 +22,13 @@ onMounted(() => {
<template>
<div class="app-container" v-if="state.url" v-loading="state.showLoading" :element-loading-text="'Loading...'"
:element-loading-background="'rgb(34, 58, 106, 0.5)'">
<div style="display: flex;align-items: center;height: 100%;width: 100%;">
<div class="left-detail">
<div style="display: flex;align-items: center;height: 40px;">
<el-button icon="Back" @click="router.back()">
返回</el-button>
</div>
<div style="display: flex;align-items: center;height: calc(100% - 40px);width: 100%;">
<div class="left-detail">
<div>{{ state.item.vehicleNumber ? state.item.vehicleNumber : '-' }}</div>
<div class="left-detail-item">
<span>设备型号</span>
@ -56,7 +57,7 @@ onMounted(() => {
<style scoped lang="scss">
.app-container {
width: 100%;
height: calc(100vh - 50px);
height: calc(100vh - 135px);
}
.left-detail-item {
@ -82,12 +83,12 @@ onMounted(() => {
.left-detail {
padding: 24px;
padding-top: 10px;
height: 100%;
background: red;
width: 242px;
background: #fff;
border-radius: 0px 0px 0px 0px;
>div:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;

Loading…
Cancel
Save