|
|
@ -1,7 +1,7 @@ |
|
|
|
<template> |
|
|
|
<!-- 项目基本信息--> |
|
|
|
<div> |
|
|
|
<el-row class="query-row" :gutter="20" style="margin-top: 30px;"> |
|
|
|
<el-row class="query-row" :gutter="20" style="margin-top: 30px"> |
|
|
|
<el-col v-show="showSearch" :span="16"> |
|
|
|
<el-form |
|
|
|
:model="queryParams" |
|
|
@ -51,7 +51,6 @@ |
|
|
|
> |
|
|
|
</el-cascader> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
</el-form> |
|
|
|
</el-col> |
|
|
|
<el-col :span="16"> |
|
|
@ -114,52 +113,34 @@ |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery" |
|
|
|
>重置</el-button |
|
|
|
>重置</el-button |
|
|
|
> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<h2 style="color:#515a6e;text-align: center; font-weight: bold; width: 100%;background-color: #f8f9fb;margin-bottom: 0;height: 40px;line-height: 40px">合计</h2> |
|
|
|
<el-table style="width: 100%" title="合计" v-loading="totalLoading"> |
|
|
|
<el-table-column label="投资总金额" align="center" width="200"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<span style="font-weight: bold">{{ totalData.total }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<h2 |
|
|
|
style=" |
|
|
|
color: #515a6e; |
|
|
|
text-align: center; |
|
|
|
font-weight: bold; |
|
|
|
width: 100%; |
|
|
|
background-color: #f8f9fb; |
|
|
|
margin-bottom: 0; |
|
|
|
height: 40px; |
|
|
|
line-height: 40px; |
|
|
|
" |
|
|
|
> |
|
|
|
合计 |
|
|
|
</h2> |
|
|
|
|
|
|
|
<el-table-column label="合同总金额" align="center" width="200"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<span style="font-weight: bold">{{ totalData.conPay }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="农民工总数" align="center" width="200"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<span style="font-weight: bold">{{ totalData.worksTotal }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="农民工在场数" align="center" width="200"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<span style="font-weight: bold">{{ totalData.enterNum }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<div class="totalData-wrap" v-loading="totalLoading"> |
|
|
|
<div class="totalData-item" v-for="i in totalDataType" :key="i.key"> |
|
|
|
<div class="lab">{{ i.lab }}</div> |
|
|
|
<div class="val">{{ i.val }}</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<el-table-column label="农民工退场数" align="center" width="200"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<span style="font-weight: bold">{{ totalData.exitNum }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="发放工资总数(万元)" align="center" width="200"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<span style="font-weight: bold">{{ totalData.payTotal }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="总拖欠工资" align="center" width="200"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<span style="font-weight: bold">{{ totalData.unPayTotal }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-table v-loading="loading" :data="infoList"> |
|
|
|
<!-- <el-table-column type="selection" width="55" align="center" fixed /> --> |
|
|
|
<el-table-column |
|
|
@ -267,7 +248,6 @@ |
|
|
|
min-width="180" |
|
|
|
/> |
|
|
|
|
|
|
|
|
|
|
|
<el-table-column |
|
|
|
label="操作" |
|
|
|
align="right" |
|
|
@ -282,9 +262,8 @@ |
|
|
|
icon="el-icon-view" |
|
|
|
v-hasPermi="['projectStatisticsSort:info:view']" |
|
|
|
@click="viewInfo(scope.row)" |
|
|
|
>查看</el-button |
|
|
|
>查看</el-button |
|
|
|
> |
|
|
|
|
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
@ -312,21 +291,26 @@ |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import { listProjectManage, listProjectExport,getNmgList,getNmgTotal } from "@/api/warn/earlyWarning"; |
|
|
|
import { |
|
|
|
listProjectManage, |
|
|
|
listProjectExport, |
|
|
|
getNmgList, |
|
|
|
getNmgTotal, |
|
|
|
} from "@/api/warn/earlyWarning"; |
|
|
|
import { regionData, codeToText, TextToCode } from "element-china-area-data"; |
|
|
|
import {getAreasData} from "../../../api/areas"; |
|
|
|
import { getAreasData } from "../../../api/areas"; |
|
|
|
export default { |
|
|
|
name: "earlyWarin", |
|
|
|
props: ["changeType"], |
|
|
|
watch: { |
|
|
|
queryParams(newValue) { |
|
|
|
this.send() // 如果 prop 数据变化,同步到本地数据 |
|
|
|
} |
|
|
|
this.send(); // 如果 prop 数据变化,同步到本地数据 |
|
|
|
}, |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
elementByValue:4, |
|
|
|
tjQuery:this.query, |
|
|
|
elementByValue: 4, |
|
|
|
tjQuery: this.query, |
|
|
|
// 遮罩层 |
|
|
|
loading: true, |
|
|
|
// 选中数组 |
|
|
@ -377,13 +361,13 @@ export default { |
|
|
|
}, |
|
|
|
// 表单参数 |
|
|
|
form: {}, |
|
|
|
totalLoading:false, |
|
|
|
totalLoading: false, |
|
|
|
engineeringGradeOptions: [], |
|
|
|
isMajorProjectOptions:[], |
|
|
|
isMajorProjectOptions: [], |
|
|
|
// 表单校验 |
|
|
|
rules: {}, |
|
|
|
proMsg: {}, |
|
|
|
totalData:{}, |
|
|
|
totalData: {}, |
|
|
|
// 面包屑,路由信息 |
|
|
|
routeList: [ |
|
|
|
{ |
|
|
@ -400,12 +384,22 @@ export default { |
|
|
|
emitPath: false, |
|
|
|
checkStrictly: true, //选择任意一级 |
|
|
|
}, |
|
|
|
totalDataType: [ |
|
|
|
{ lab: "投资总金额", key: "total", val: 0 }, |
|
|
|
{ lab: "合同总金额", key: "conPay", val: 0 }, |
|
|
|
{ lab: "农民工总数", key: "worksTotal", val: 0 }, |
|
|
|
{ lab: "农民工在场数", key: "enterNum", val: 0 }, |
|
|
|
{ lab: "农民工退场数", key: "exitNum", val: 0 }, |
|
|
|
{ lab: "发放工资总数(万元)", key: "payTotal", val: 0 }, |
|
|
|
{ lab: "发放工资总数(万元)", key: "payTotal", val: 0 }, |
|
|
|
{ lab: "总拖欠工资", key: "unPayTotal", val: 0 }, |
|
|
|
], |
|
|
|
}; |
|
|
|
}, |
|
|
|
created() { |
|
|
|
this.getTreeData() |
|
|
|
this.getTreeData(); |
|
|
|
this.getList(); |
|
|
|
this.getNmgTotal() |
|
|
|
this.getNmgTotal(); |
|
|
|
this.getDicts("whether").then((response) => { |
|
|
|
this.isMajorProjectOptions = response.data; |
|
|
|
this.isApprovalOptions = response.data; |
|
|
@ -465,13 +459,16 @@ export default { |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
getNmgTotal(){ |
|
|
|
this.totalLoading=true |
|
|
|
getNmgTotal(this.queryParams).then(res=>{ |
|
|
|
this.totalData=res.data |
|
|
|
console.log(this.totalData,'totalData') |
|
|
|
this.totalLoading=false |
|
|
|
}) |
|
|
|
getNmgTotal() { |
|
|
|
this.totalLoading = true; |
|
|
|
getNmgTotal(this.queryParams).then((res) => { |
|
|
|
this.totalData = res.data; |
|
|
|
|
|
|
|
this.totalDataType.forEach((item) => { |
|
|
|
item.val = res.data[item.key] || 0; |
|
|
|
}); |
|
|
|
this.totalLoading = false; |
|
|
|
}); |
|
|
|
}, |
|
|
|
getTreeData() { |
|
|
|
getAreasData().then((items) => { |
|
|
@ -497,7 +494,7 @@ export default { |
|
|
|
}); |
|
|
|
}, |
|
|
|
send() { |
|
|
|
this.$bus.$emit("queryParams",this.queryParams) |
|
|
|
this.$bus.$emit("queryParams", this.queryParams); |
|
|
|
}, |
|
|
|
engineeringGradeFormat(row, column) { |
|
|
|
return this.selectDictLabel( |
|
|
@ -517,7 +514,7 @@ export default { |
|
|
|
}); |
|
|
|
}, |
|
|
|
changeProjectType() { |
|
|
|
this.send() |
|
|
|
this.send(); |
|
|
|
this.handleQuery(); |
|
|
|
// console.log(555, this.queryParams.data.projectType.slice(0, 2)); |
|
|
|
const key = this.queryParams.data.projectType?.slice(0, 2); |
|
|
@ -616,7 +613,7 @@ export default { |
|
|
|
handleQuery() { |
|
|
|
this.queryParams.pageNum = 1; |
|
|
|
this.getList(); |
|
|
|
this.getNmgTotal() |
|
|
|
this.getNmgTotal(); |
|
|
|
}, |
|
|
|
/** 重置按钮操作 */ |
|
|
|
resetQuery() { |
|
|
@ -706,6 +703,45 @@ export default { |
|
|
|
<style lang="scss" scoped> |
|
|
|
@import "@/assets/css/dialog.scss"; |
|
|
|
|
|
|
|
.totalData-wrap { |
|
|
|
width: 100%; |
|
|
|
display: flex; |
|
|
|
margin: 20px 0; |
|
|
|
|
|
|
|
.totalData-item { |
|
|
|
flex: 1; |
|
|
|
display: flex; |
|
|
|
height: 105px; |
|
|
|
margin-right: 16px; |
|
|
|
background-image: linear-gradient( |
|
|
|
rgb(199, 243, 227), |
|
|
|
rgba(199, 243, 227, 0.3) |
|
|
|
); |
|
|
|
border-radius: 10px; |
|
|
|
box-shadow: 0px 2px 8px 0px #2d78ed1a; |
|
|
|
align-items: center; |
|
|
|
flex-direction: column; |
|
|
|
justify-content: center; |
|
|
|
|
|
|
|
&:nth-last-child(1) { |
|
|
|
margin-right: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.lab { |
|
|
|
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif; |
|
|
|
font-weight: 200; |
|
|
|
font-style: normal; |
|
|
|
font-size: 16px; |
|
|
|
} |
|
|
|
|
|
|
|
.val { |
|
|
|
margin-top: 10px; |
|
|
|
font-weight: 600; |
|
|
|
color: #36b29e; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
::v-deep { |
|
|
|
.el-dialog { |
|
|
|
margin-top: 2vh !important; |
|
|
|