增加导出接口

This commit is contained in:
BianLzhaoMin 2025-08-23 14:51:42 +08:00
parent de7795bc32
commit d036cc36b8
10 changed files with 421 additions and 17 deletions

View File

@ -99,3 +99,12 @@ export const getWorkerContractAPI = (data) => {
params: data,
})
}
// 首页出场未结算列表
export const getExitNoSetListAPI = (data) => {
return request({
url: '/bmw/homePageSub/getWorkerNotFileMsg',
method: 'GET',
params: data,
})
}

View File

@ -100,6 +100,10 @@ export default {
type: [Number, String],
default: 1,
},
selectCompany: {
type: [Number, String],
default: '',
},
},
data() {
return {
@ -332,6 +336,10 @@ export default {
item.value = this.isAtt
}
if (item.label === '分公司') {
item.value = this.selectCompany
}
setTimeout(() => {
if (item.label === '工程状态') {
this.dict.type.project_status.forEach((j) => {

View File

@ -181,12 +181,39 @@ export const personColumnsList = [
{ t_props: 'proName', t_label: '所属工程' },
]
// 出场未结算列表字段
export const exitNoSetColumnsList = [
{ t_props: 'workerName', t_label: '姓名' },
{ t_props: 'idNumber', t_label: '身份证' },
{ t_props: 'phone', t_label: '联系方式' },
{ t_props: 'proName', t_label: '所属工程' },
{ t_props: 'teamName', t_label: '所属班组' },
{ t_props: 'exitTime', t_label: '出场时间' },
{ t_props: 'exitDay', t_label: '出场天数', t_slot: 'exitDay' },
{ t_props: 'subCompanyName', t_label: '所属分公司' },
]
// 出场未结算列表查询条件
export const exitNoSetFormLabel = [
{
f_label: '姓名',
f_model: 'workerName',
f_type: 'ipt',
isShow: false, // 是否展示label
},
{
f_label: '工程名称',
f_model: 'proName',
f_type: 'ipt',
isShow: false, // 是否展示label
},
]
// 弹框公共配置
const dialogCommonConfig = {
outerVisible: false,
outerTitle: '',
minHeight: '90vh',
maxHeight: '90vh',
minHeight: '96vh',
maxHeight: '96vh',
}
// 子项目概况弹框配置

View File

@ -0,0 +1,79 @@
<template>
<!-- item5 出场未结算 -->
<div class="item-four">
<!-- 班组信息弹框 -->
<TableModel
ref="exitNoSetTableRef"
:formLabel="exitNoSetFormLabel"
:columnsList="exitNoSetColumnsList"
:request-api="getExitNoSetListAPI"
:sendParams="{
subComId: selectCompany,
}"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportExitNoSet(queryParams)"
>
导出
</el-button>
</template>
<template slot="exitDay" slot-scope="{ data }">
<span class="tip-text">
{{
data.exitDay > 31
? data.exitDay + '(已转入失信人员)'
: data.exitDay
}}
</span>
</template>
</TableModel>
</div>
</template>
<script>
import TableModel from '@/components/TableModel'
import { getExitNoSetListAPI } from '@/api/home-index/index'
import { exitNoSetColumnsList, exitNoSetFormLabel } from './config'
export default {
name: 'ItemFour',
props: {
selectCompany: {
type: [Number, String],
default: '',
},
},
components: {
TableModel,
},
data() {
return {
exitNoSetColumnsList,
exitNoSetFormLabel,
getExitNoSetListAPI,
}
},
methods: {
handleExportExitNoSet(queryParams) {
this.download(
'/bmw/homePageSub/workerNoFileExport',
{
...queryParams,
},
`出场未结算列表.xlsx`,
)
},
},
watch: {
selectCompany: {
handler() {
this.$refs.exitNoSetTableRef.getTableList()
},
deep: true,
},
},
}
</script>

View File

@ -9,6 +9,15 @@
:columnsList="teamColumnsList"
:request-api="getTeamProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportTeamProject(queryParams)"
>
导出
</el-button>
</template>
<template
:slot="item"
slot-scope="{ data }"
@ -35,6 +44,7 @@
:isPersonFilter="true"
:isAtt="queryParams.isAtt"
:lightStatus="lightStatus"
:selectCompany="selectCompany"
@handelSettingQuery="handelSettingQuery"
/>
<TableModel
@ -44,6 +54,15 @@
:columnsList="personColumnsList"
:request-api="getWorkerProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportPersonProject(queryParams)"
>
导出
</el-button>
</template>
<!-- 人员姓名 -->
<template slot="workerName" slot-scope="{ data }">
<span
@ -193,14 +212,25 @@ export default {
}
},
methods: {
//
handleExportAllProject(queryParams) {
//
handleExportTeamProject(queryParams) {
this.download(
'/bmw/homePageSub/mainProExport',
'/bmw/homePageSub/teamExport',
{
...queryParams,
},
`总工程列表.xlsx`,
`班组列表.xlsx`,
)
},
//
handleExportPersonProject(queryParams) {
this.download(
'/bmw/homePageSub/workerExport',
{
...queryParams,
},
`人员列表.xlsx`,
)
},

View File

@ -39,6 +39,7 @@
:isAtt="``"
:lightStatus="``"
:isPersonFilter="false"
:selectCompany="selectCompany"
@handelSettingQuery="handelSettingQueryProject"
/>
<TableModel
@ -48,6 +49,15 @@
:request-api="getLotProjectListAPI"
:sendParams="queryParamsProject"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportLotProject(queryParams)"
>
导出
</el-button>
</template>
<!-- 分包数量 -->
<template slot="subNum" slot-scope="{ data }">
<span
@ -100,6 +110,15 @@
:sendParams="subQueryParams"
:request-api="getSubProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportSubProject(queryParams)"
>
导出
</el-button>
</template>
<!-- 在场班组数量 -->
<template slot="teamNum" slot-scope="{ data }">
<span
@ -142,6 +161,15 @@
:columnsList="teamColumnsList"
:request-api="getTeamProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportTeamProject(queryParams)"
>
导出
</el-button>
</template>
<template
:slot="item"
slot-scope="{ data }"
@ -170,9 +198,10 @@
<template slot="outerContent">
<FilterQueryModel
:isPersonFilter="true"
:lightStatus="queryParamsPerson.lightStatus"
:selectCompany="selectCompany"
:isAtt="queryParamsPerson.isAtt"
@handelSettingQuery="handelSettingQuery"
:lightStatus="queryParamsPerson.lightStatus"
/>
<TableModel
ref="personTableRef"
@ -181,6 +210,15 @@
:sendParams="queryParamsPerson"
:request-api="getWorkerProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportPersonProject(queryParams)"
>
导出
</el-button>
</template>
<!-- 人员姓名 -->
<template slot="workerName" slot-scope="{ data }">
<span
@ -399,6 +437,50 @@ export default {
)
},
//
handleExportLotProject(queryParams) {
this.download(
'/bmw/homePageSub/proExport',
{
...queryParams,
},
`标段工程列表.xlsx`,
)
},
//
handleExportSubProject(queryParams) {
this.download(
'/bmw/homePageSub/subExport',
{
...queryParams,
},
`分包列表.xlsx`,
)
},
//
handleExportTeamProject(queryParams) {
this.download(
'/bmw/homePageSub/teamExport',
{
...queryParams,
},
`班组列表.xlsx`,
)
},
//
handleExportPersonProject(queryParams) {
this.download(
'/bmw/homePageSub/workerExport',
{
...queryParams,
},
`人员列表.xlsx`,
)
},
//
handleCloseDialogOuter(value) {
this.dialogConfig.outerVisible = value

View File

@ -8,6 +8,15 @@
:request-api="getSubProjectListAPI"
:sendParams="{ subCompanyId: selectCompany }"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportSubProject(queryParams)"
>
导出
</el-button>
</template>
<!-- 在场班组数量 -->
<template slot="teamNum" slot-scope="{ data }">
<span
@ -50,6 +59,15 @@
proId: proId,
}"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportTeamProject(queryParams)"
>
导出
</el-button>
</template>
<template
:slot="item"
slot-scope="{ data }"
@ -77,6 +95,7 @@
>
<template slot="outerContent">
<FilterQueryModel
:selectCompany="selectCompany"
:isAtt="queryParams.isAtt"
:lightStatus="queryParams.lightStatus"
:isPersonFilter="true"
@ -89,6 +108,15 @@
:columnsList="personColumnsList"
:request-api="getWorkerProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportPersonProject(queryParams)"
>
导出
</el-button>
</template>
<!-- 人员姓名 -->
<template slot="workerName" slot-scope="{ data }">
<span
@ -259,6 +287,38 @@ export default {
}
},
methods: {
//
handleExportSubProject(queryParams) {
this.download(
'/bmw/homePageSub/subExport',
{
...queryParams,
},
`分包列表.xlsx`,
)
},
//
handleExportTeamProject(queryParams) {
this.download(
'/bmw/homePageSub/teamExport',
{
...queryParams,
},
`班组列表.xlsx`,
)
},
//
handleExportPersonProject(queryParams) {
this.download(
'/bmw/homePageSub/workerExport',
{
...queryParams,
},
`人员列表.xlsx`,
)
},
//
handleCloseDialogOuterThree(value) {
this.dialogConfigThree.outerVisible = value

View File

@ -6,6 +6,7 @@
:isAtt="``"
:lightStatus="``"
:isPersonFilter="false"
:selectCompany="selectCompany"
@handelSettingQuery="handelSettingQueryProject"
/>
<TableModel
@ -15,6 +16,15 @@
:sendParams="queryParamsProject"
:request-api="getLotProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportLotProject(queryParams)"
>
导出
</el-button>
</template>
<!-- 分包数量 -->
<template slot="subNum" slot-scope="{ data }">
<span class="cursor-blue" @click="onHandleCheckSubCount(data)">
@ -57,6 +67,15 @@
:sendParams="subQueryParams"
:request-api="getSubProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportSubProject(queryParams)"
>
导出
</el-button>
</template>
<!-- 在场班组数量 -->
<template slot="teamNum" slot-scope="{ data }">
<span
@ -99,6 +118,15 @@
:columnsList="teamColumnsList"
:request-api="getTeamProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportTeamProject(queryParams)"
>
导出
</el-button>
</template>
<template
:slot="item"
slot-scope="{ data }"
@ -127,6 +155,7 @@
<template slot="outerContent">
<FilterQueryModel
:isPersonFilter="true"
:selectCompany="selectCompany"
:lightStatus="queryParamsPerson.lightStatus"
:isAtt="queryParamsPerson.isAtt"
@handelSettingQuery="handelSettingQuery"
@ -138,6 +167,15 @@
:sendParams="queryParamsPerson"
:request-api="getWorkerProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportPersonProject(queryParams)"
>
导出
</el-button>
</template>
<!-- 人员姓名 -->
<template slot="workerName" slot-scope="{ data }">
<span
@ -334,17 +372,50 @@ export default {
this.dialogConfig.outerTitle = '工程信息'
this.dialogConfig.outerVisible = true
},
//
handleExportAllProject(queryParams) {
//
handleExportLotProject(queryParams) {
this.download(
'/bmw/homePageSub/mainProExport',
'/bmw/homePageSub/proExport',
{
...queryParams,
},
`工程列表.xlsx`,
`标段工程列表.xlsx`,
)
},
//
handleExportSubProject(queryParams) {
this.download(
'/bmw/homePageSub/subExport',
{
...queryParams,
},
`分包列表.xlsx`,
)
},
//
handleExportTeamProject(queryParams) {
this.download(
'/bmw/homePageSub/teamExport',
{
...queryParams,
},
`班组列表.xlsx`,
)
},
//
handleExportPersonProject(queryParams) {
this.download(
'/bmw/homePageSub/workerExport',
{
...queryParams,
},
`人员列表.xlsx`,
)
},
//
handleCloseDialogOuter(value) {
this.dialogConfig.outerVisible = value

View File

@ -15,6 +15,7 @@
:isAtt="isAtt"
:isPersonFilter="true"
:lightStatus="lightStatus"
:selectCompany="selectCompany"
@handelSettingQuery="handelSettingQuery"
/>
<TableModel
@ -24,6 +25,15 @@
:columnsList="personColumnsList"
:request-api="getWorkerProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
size="mini"
icon="el-icon-download"
@click="handleExportPersonProject(queryParams)"
>
导出
</el-button>
</template>
<!-- 人员姓名 -->
<template slot="workerName" slot-scope="{ data }">
<span class="cursor-blue" @click="onHandleCheckUserName(data)">
@ -146,6 +156,17 @@ export default {
// this.dialogConfigFour.outerVisible = true
// },
//
handleExportPersonProject(queryParams) {
this.download(
'/bmw/homePageSub/workerExport',
{
...queryParams,
},
`人员列表.xlsx`,
)
},
//
onHandleCheckUserName(data) {
this.workerId = data.workerId

View File

@ -38,8 +38,8 @@
<div
:key="item.name"
class="right-content-item"
v-for="item in dataWarningList"
@click="onHandleCheckDataWarning(item)"
v-for="(item, index) in dataWarningList"
@click="onHandleCheckDataWarning(item, index)"
>
<span>
{{ item.name }}
@ -76,6 +76,7 @@ import ItemTwo from './components/item-two.vue' // 标段工程列表
import ItemThree from './components/item-three.vue' //
import ItemFour from './components/item-four.vue' //
import PersonList from './components/person-list.vue' //
import ExitNoSet from './components/exit-no-set.vue' //
import { getDataOverviewProjectAPI } from '@/api/home-index/index'
export default {
name: 'DataOverviewProject',
@ -86,6 +87,7 @@ export default {
ItemThree,
ItemFour,
PersonList,
ExitNoSet,
},
props: {
//
@ -148,18 +150,21 @@ export default {
name: '黄灯人数',
color: '#ff9910',
dataKey: 'yellowNum',
component: 'PersonList',
},
{
count: 20,
name: '黄灯7天',
color: '#FF0000',
dataKey: 'yellowThanSevenDayNum',
component: 'PersonList',
},
{
count: 40,
name: '出场未结算',
color: '#8400ff',
dataKey: 'exitNoFileNum',
component: 'ExitNoSet',
},
],
//
@ -167,8 +172,8 @@ export default {
outerVisible: false,
outerTitle: '',
outerWidth: '80%',
minHeight: '80vh',
maxHeight: '80vh',
minHeight: '90vh',
maxHeight: '90vh',
},
//
@ -215,9 +220,21 @@ export default {
this.dialogConfig.outerVisible = value
},
//
onHandleCheckDataWarning(item) {
onHandleCheckDataWarning(item, type) {
switch (type) {
case 0:
this.lightStatus = 1
break
case 1:
this.lightStatus = 3
break
case 2:
this.lightStatus = ''
break
}
this.currentComponent = item.component
this.dialogConfig.outerVisible = true
console.log(item)
},
//