提交代码

prv
姜玉琦 2024-04-26 01:50:48 +08:00
parent 1d9c332b61
commit eec37d1315
3 changed files with 277 additions and 1 deletions

View File

@ -84,6 +84,13 @@ const findFormDatasByProcInsId=(procInsId)=> {
})
}
const findFlowLabourList=(projId,nv,pageNum,pageSize)=> {
return request({
url: `bgscreen/flow/findFlowLabourList?projectId=${projId}&activeName=${nv}&pageNum=${pageNum}&pageSize=${pageSize}`,
method: 'get'
})
}
const findFlowLabourGroupCountByApprove=(deptId,projectId)=> {
return request({
url: `bgscreen/flow/findFlowLabourGroupCountByApprove?projectId=${projectId}&deptId=${deptId}`,
@ -103,5 +110,6 @@ export default{
findSafetyWorkList,
findFormDatasByProcInsId,
listByCategory,
findFlowLabourList,
findFlowLabourGroupCountByApprove
}

View File

@ -0,0 +1,259 @@
<template>
<MyDialog
v-if="show"
v-model="show"
width="1480px"
height="850px"
class="flowLabourDlg"
>
<template slot="title">{{ title }}</template>
<div class="head-title-tab">
<div :class="nav == 'all' ? 'head-nav active' : 'head-nav'" @click="doNav('all')">
全部数据({{ tags.all }})
</div>
<div :class="nav == 'jxz' ? 'head-nav active' : 'head-nav'" @click="doNav('jxz')">
待处理({{ tags.db }})
</div>
<div :class="nav == 'ywc' ? 'head-nav active' : 'head-nav'" @click="doNav('ywc')">
已处理({{ tags.yb }})
</div>
</div>
<template>
<div class="data-list scroll" style="max-height: 712px; overflow-y: auto">
<div
v-if="dataList.length == 0"
style="text-align: center; padding-top: 200px"
class="div-no-data"
>
<img src="images/nodata.png" style="width: 120px" />
<div style="text-align: center; font-size: 12px; color: #888">暂无数据</div>
</div>
<div v-else class="acceptance-list">
<div
class="acceptance-item"
v-for="(it, idx) in dataList"
:key="idx"
style="cursor: pointer"
:class="it.approveStatus=='100'?'inspect_shtg':(it.approveStatus%10==0?'inspect_shz':'inspect_shbh')"
>
<el-row>
<el-col :span="8" class="item-data">
<div class="rank-chart-title bottom-line div-text">
项目名称{{ it.projectName }}
</div>
</el-col>
<el-col :span="8" class="item-data">
<div class="rank-chart-title bottom-line div-text">
总包单位{{ it.deptName }}
</div>
</el-col>
<el-col :span="8" class="item-data">
<div class="rank-chart-title bottom-line div-text">
劳务单位{{ it.subDeptName }}
</div>
</el-col>
<el-col :span="8" class="item-data">
<div class="rank-chart-title bottom-line div-text">
投诉人{{ it.deptName }}
</div>
</el-col>
<el-col :span="8" class="item-data">
<div class="rank-chart-title bottom-line div-text">
联系电话{{ it.laborPhone }}
</div>
</el-col>
<el-col :span="8" class="item-data">
<div class="rank-chart-title bottom-line div-text">
身份证号{{ it.laborCardId }}
</div>
</el-col>
<el-col :span="8" class="item-data">
<div class="rank-chart-title bottom-line div-text">
欠薪人数<span class="fblue">{{ it.laborNumber }}</span>
</div>
</el-col>
<el-col :span="8" class="item-data">
<div class="rank-chart-title bottom-line div-text">
欠薪金额<span class="fblue">{{ it.laborAmount }}</span>
</div>
</el-col>
<el-col :span="8" class="item-data">
<div class="rank-chart-title bottom-line div-text">
处理节点
<span class="fblue" v-show="it.approveStatus == '10'">
待总包单位处理
</span>
<span class="fblue" v-show="it.approveStatus == '20'">
待甲方代表审批
</span>
<span class="fred" v-show="it.approveStatus == '21'">
甲方代表审批驳回
</span>
<span class="fblue" v-show="it.approveStatus == '30'">
待集团公司审批
</span>
<span class="fred" v-show="it.approveStatus == '31'">
集团公司审批驳回
</span>
<span class="fsuccess" v-show="it.approveStatus == '100'"></span>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24" class="item-data">
<div class="rank-chart-title bottom-line div-text">
原因说明{{ it.laborReason }} <el-link v-if="it.files" type="primary" @click="downFiles(it.files)"></el-link>
</div>
</el-col>
</el-row>
</div>
</div>
<el-pagination
layout="total,prev, pager, next"
:hide-on-single-page="true"
@current-change="handleCurrentChange"
:total="total"
:page-size="pageSize"
:current-page.sync="pageNum"
class="bg-pagination"
></el-pagination>
</div>
</template>
</MyDialog>
</template>
<script>
import MyDialog from "../components/MyDialog";
export default {
components: {
MyDialog,
},
name: "flowLabourDlg",
data() {
return {
title: "劳资预警",
data: null,
dataList: [],
show: false,
nav: "jxz",
specialType: "0",
tags: {
all: 0,
db: 0,
yb: 0,
},
pageNum: 0,
pageSize: 3,
total: 0,
};
},
/**特种作业人员数据 */
mounted() {
this.data = null;
},
methods: {
handleCurrentChange(n) {
this.pageNum = n;
this.getList();
},
showDialog(it) {
this.data = it;
this.pageNum = 0;
this.getList();
},
doNav(nav) {
this.nav = nav;
this.getList();
},
getList() {
this.queryCount();
this.$api.flow.findFlowLabourList(this.data?.id||0,this.nav,this.pageNum,this.pageSize).then((res) => {
this.dataList = res.rows;
this.show = true;
this.total = res.total;
});
},
queryCount() {
this.$api.flow.findFlowLabourGroupCountByApprove(0, this.data.id).then((res) => {
if (res.code == 200 && res.data) {
this.tags.all = res.data.all;
this.tags.db = res.data.db;
this.tags.yb = res.data.yb;
}
});
},
downFiles(files){
if(files){
files.split(',').forEach(item => {
window.open('/jhapi' + item);
});
}
},
},
};
</script>
<style scope>
.popup-project-introduction-min {
transform: translateY(100px) !important;
}
</style>
<style lang="less" scoped>
.flowLabourDlg {
.data-list {
.acceptance-item {
margin-top: 20px;
border: 1px #dddddd solid;
padding: 12px;
border-radius: 8px;
margin-right: 12px;
}
.fblue{
color:#1879da;
}
.fred{
color:#fd6060;
font-weight:800;
}
.fsuccess{
color:green;
font-weight:800;
}
.inspect_shtg {
padding: 15px 3px;
background-size: 120px 120px !important;
background: url("https://szgcwx.jhncidg.com/staticFiles/images/shtg.png") no-repeat top
40px right 20px;
}
.inspect_shz {
padding: 15px 3px;
background-size: 120px 120px !important;
background: url("https://szgcwx.jhncidg.com/staticFiles/images/shz.png") no-repeat top
40px right 20px;
}
.inspect_shbh {
padding: 15px 3px;
background-size: 120px 120px !important;
background: url("https://szgcwx.jhncidg.com/staticFiles/images/shbh.png") no-repeat top
40px right 20px;
}
}
.bg-pagination {
margin-top: 20px;
}
.head-title-tab {
padding-top: 12px;
display: block;
width: 100%;
.head-nav {
background-size: 100% 100%;
display: inline-block;
width: auto;
padding: 0px 24px;
}
}
}
</style>

View File

@ -816,8 +816,8 @@
top: 12px;
z-index: 9;
"
@click="doFlowLabourDlg()"
/>
<!-- @click="doStandardDlg(null)" -->
<div class="equipment-list-max quality-target-index">
<el-row>
<el-col :span="8">
@ -991,6 +991,7 @@
<project-info-dlg ref="prjInfoDlg"></project-info-dlg>
<AttendanceDetailDialog ref="attDetailDlg"></AttendanceDetailDialog>
<JobWorkerDialog ref="jobWorkerdlg"></JobWorkerDialog>
<flowLabourDlg ref="flowLabourDlg"></flowLabourDlg>
</div>
</template>
@ -1003,6 +1004,7 @@ import projectInfoDlg from "./detail/projectInfoDlg.vue";
import debounce from "lodash.debounce";
import AttendanceDetailDialog from "./components/AttendanceDetailDialog.vue";
import JobWorkerDialog from "./components/JobWorkerDialog.vue";
import flowLabourDlg from "./dlg/flowLabourDlg";
import { tryToJson } from "@/utils/tools";
export default {
components: {
@ -1011,6 +1013,7 @@ export default {
mapModle,
AttendanceDetailDialog,
JobWorkerDialog,
flowLabourDlg,
},
data() {
return {
@ -1204,6 +1207,12 @@ export default {
}
},
methods: {
/**
* 劳资预警详情弹窗
*/
doFlowLabourDlg(){
this.$refs.flowLabourDlg.showDialog(this.project);
},
getFloorArea() {
this.getProjectId((id) => {
if (id == 0) {