接口调试

This commit is contained in:
BianLzhaoMin 2025-09-24 13:10:48 +08:00
parent 6721fe85d8
commit a89b56f5af
12 changed files with 370 additions and 94 deletions

View File

@ -3,7 +3,43 @@ import request from '@/utils/request'
// 综合查询 获取三表一册列表 // 综合查询 获取三表一册列表
export const getThreeAndOneListAPI = (data) => { export const getThreeAndOneListAPI = (data) => {
return request({ return request({
url: '/bmw/workerLight/xxx', url: '/bmw/pmProject/getThreeForms',
method: 'GET',
params: data,
})
}
// 综合查询 获取三表一册工程详情
export const getThreeAndOneProjectDetailAPI = (data) => {
return request({
url: '/bmw/pmProject/getProjectById',
method: 'GET',
params: data,
})
}
// 综合查询 获取三表一册每月数据
export const getThreeAndOneMonthlyDataAPI = (data) => {
return request({
url: '/bmw/pmProject/getProMonthTableList',
method: 'GET',
params: data,
})
}
// 综合查询 获取三表一册单月数据
export const getThreeAndOneMonthlyDataByIdAPI = (data) => {
return request({
url: '/bmw/pmProject/getProMonthTableById',
method: 'GET',
params: data,
})
}
// 综合查询 获取三表一册单月农名工花名册列表
export const getThreeAndOneMonthlyRosterListAPI = (data) => {
return request({
url: '/bmw/pmProject/getProMonthTableRosterList',
method: 'GET', method: 'GET',
params: data, params: data,
}) })

View File

@ -204,6 +204,7 @@ export default {
}) })
.catch(() => { .catch(() => {
this.loading = false this.loading = false
this.getCode()
if (this.captchaEnabled) { if (this.captchaEnabled) {
this.getCode() this.getCode()
} }

View File

@ -36,9 +36,12 @@ export default {
}, },
data() { data() {
return { return {
//
formLabel, formLabel,
columnsList, columnsList,
//
getPersonCountListAPI, getPersonCountListAPI,
//
testTableList: [ testTableList: [
{ {
mainProName: '分公司1', mainProName: '分公司1',
@ -69,5 +72,3 @@ export default {
}, },
} }
</script> </script>
<style></style>

View File

@ -14,16 +14,16 @@ export const formLabel = [
] ]
export const columnsList = [ export const columnsList = [
{ t_props: 'mainProName', t_label: '分公司' }, { t_props: 'subComName', t_label: '分公司' },
{ t_label: '工程名称', t_props: 'volLevel' }, { t_label: '工程名称', t_props: 'proName' },
{ {
t_label: '发放月份数量', t_label: '发放月份数量',
t_props: 'volLevel', t_props: 'tableMonth',
}, },
{ t_slot: 'proStatus', t_label: '发放分包数量' }, { t_props: 'subNum', t_label: '发放分包数量' },
{ t_slot: 'proStatus', t_label: '发放班组数量' }, { t_props: 'teamNum', t_label: '发放班组数量' },
{ t_slot: 'proStatus', t_label: '发放人员人次' }, { t_props: 'payNum', t_label: '发放人员人次' },
{ t_slot: 'proStatus', t_label: '实发工资' }, { t_props: 'netSalary', t_label: '实发工资' },
{ t_slot: 'proStatus', t_label: '状态' }, { t_props: 'proStatus', t_label: '状态' },
] ]

View File

@ -14,10 +14,10 @@
<!-- 项目信息区域 --> <!-- 项目信息区域 -->
<div class="project-details"> <div class="project-details">
<div class="project-title"> <div class="project-title">
{{ projectInfo.projectName }} {{ proName }}
</div> </div>
<div class="company-name"> <div class="company-name">
{{ projectInfo.companyName }} {{ subComName }}
</div> </div>
</div> </div>
@ -59,56 +59,92 @@
</template> </template>
<script> <script>
import { getThreeAndOneProjectDetailAPI } from '@/api/synthesize-query/three-and-one'
export default { export default {
name: 'HeaderInfo', name: 'HeaderInfo',
props: {
projectId: {
type: [Number, String],
default: '',
},
proName: {
type: String,
default: '',
},
subComName: {
type: String,
default: '',
},
},
data() { data() {
return { return {
projectInfo: { projectInfo: {},
projectName: '220kV永和(云纺)输变电工程(变电部分)',
companyName: '输电一公司',
currentStatus: '在建',
projectType: '基建线路',
voltageLevel: '220kV',
plannedStartDate: '2025-02-01',
plannedCompletionDate: '2025-11-30',
projectLocation:
'广东省-东莞市广东省-东莞市广东省-东莞市广东省-东莞市广东省-东莞市广东省-东莞市',
},
labelList: [ labelList: [
{ {
label: '当前状态', label: '当前状态',
value: '在建', value: '在建',
valueKey: 'currentStatus', valueKey: 'proStatus',
}, },
{ {
label: '工程类型', label: '工程类型',
value: '基建线路', value: '基建线路',
valueKey: 'projectType', valueKey: 'proType',
}, },
{ {
label: '电压等级', label: '电压等级',
value: '220kV', value: '220kV',
valueKey: 'voltageLevel', valueKey: 'volLevel',
}, },
{ {
label: '计划开工时间', label: '计划开工时间',
value: '2025-02-01', value: '2025-02-01',
valueKey: 'plannedStartDate', valueKey: 'startTime',
}, },
{ {
label: '计划完工时间', label: '计划完工时间',
value: '2025-11-30', value: '2025-11-30',
valueKey: 'plannedCompletionDate', valueKey: 'endTime',
}, },
{ {
label: '工程地址', label: '工程地址',
value: '广东省-东莞市', value: '广东省-东莞市',
valueKey: 'projectLocation', valueKey: 'proAddress',
}, },
], ],
} }
}, },
created() {
this.getProjectDetail()
},
methods: {
//
async getProjectDetail() {
const res = await getThreeAndOneProjectDetailAPI({
proId: this.projectId,
})
const {
proStatus,
proType,
volLevel,
startTime,
endTime,
proAddress,
} = res.data
this.projectInfo = {
proStatus,
proType,
volLevel,
startTime,
endTime,
proAddress,
}
console.log(res, 'res工程详情')
},
},
} }
</script> </script>

View File

@ -30,7 +30,118 @@
:label="item.label" :label="item.label"
show-overflow-tooltip show-overflow-tooltip
v-for="item in columnsList" v-for="item in columnsList"
/> >
<template slot-scope="{ row }">
<template v-if="item.prop === 'rosterNum'">
<el-tag
size="mini"
type="warning"
v-if="row.status == 0"
>
进行中
</el-tag>
<span v-else>
人数{{ row.rosterNum }}
</span>
</template>
<template
v-else-if="item.prop === 'attendanceNum'"
>
<el-tag
size="mini"
type="warning"
v-if="row.status == 0"
>
进行中
</el-tag>
<span v-else>
考勤天数{{ row.attendanceNum }}
</span>
</template>
<template v-else-if="item.prop === 'salaryNum'">
<el-tag
size="mini"
type="warning"
v-if="row.status == 0"
>
进行中
</el-tag>
<span v-else>
人数{{ row.salaryNum }}
</span>
</template>
<template v-else-if="item.prop === 'payNum'">
<el-tag
size="mini"
type="warning"
v-if="row.status == 0"
>
进行中
</el-tag>
<span v-else>
分包{{ row.subNum }}
<br />
应发工资{{ row.grossSalary }}
<br />
实发工资{{ row.netSalary }}
</span>
</template>
<template v-else-if="item.prop === 'status'">
<el-tag
size="mini"
type="warning"
v-if="row.status == 0"
>
进行中
</el-tag>
<el-tag
size="mini"
type="primary"
v-if="row.status == 1"
>
待封档
</el-tag>
<el-tag
size="mini"
type="success"
v-if="row.status == 2"
>
已封档
</el-tag>
</template>
<template
v-else-if="item.prop === 'refundStatus'"
>
<el-tag
size="mini"
type="warning"
v-if="row.refundStatus == 0"
>
未上传
</el-tag>
<el-tag
size="mini"
type="success"
v-if="row.refundStatus == 1"
>
已上传
</el-tag>
</template>
<template v-else>
<span>{{ row[item.prop] }}</span>
</template>
</template>
</el-table-column>
<el-table-column align="center" label="操作"> <el-table-column align="center" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
@ -57,59 +168,59 @@
<script> <script>
import DialogModel from '@/components/DialogModel/index.vue' import DialogModel from '@/components/DialogModel/index.vue'
import { getThreeAndOneMonthlyDataAPI } from '@/api/synthesize-query/three-and-one'
export default { export default {
name: 'SubTeamCard', name: 'SubTeamCard',
components: { components: {
DialogModel, DialogModel,
}, },
props: {
projectId: {
type: [Number, String],
default: '',
},
},
data() { data() {
return { return {
// //
threeOneData: [ threeOneData: [],
{
month: '3月',
},
{
month: '5月',
},
],
columnsList: [ columnsList: [
{ {
label: '月份', label: '月份',
prop: 'month', prop: 'tableMonth',
}, },
{ {
label: '花名册', label: '花名册',
prop: 'nameList', prop: 'rosterNum',
}, },
{ {
label: '考勤明细表', label: '考勤明细表',
prop: 'month', prop: 'attendanceNum',
}, },
{ {
label: '工资信息报审表', label: '工资信息报审表',
prop: 'month', prop: 'salaryNum',
}, },
{ {
label: '工资支付表', label: '工资支付表',
prop: 'month', prop: 'payNum',
}, },
{ {
label: '状态', label: '状态',
prop: 'month', prop: 'status',
}, },
{ {
label: '封档时间', label: '封档时间',
prop: 'month', prop: 'blockTime',
}, },
{ {
label: '回单上传状态', label: '回单上传状态',
prop: 'month', prop: 'refundStatus',
}, },
{ {
label: '上传时间', label: '上传时间',
prop: 'month', prop: 'refundTime',
}, },
], ],
@ -122,6 +233,9 @@ export default {
}, },
} }
}, },
created() {
this.getThreeAndOneMonthlyData()
},
methods: { methods: {
// //
tableHeaderStyle() { tableHeaderStyle() {
@ -167,9 +281,13 @@ export default {
// //
onHandleOpenDetail(row) { onHandleOpenDetail(row) {
console.log('row', row)
this.$router.push({ this.$router.push({
name: 'ThreeAndOneMonthDetail', name: 'ThreeAndOneMonthDetail',
query: {
id: row.id,
month: row.tableMonth,
proId: this.projectId,
},
}) })
}, },
@ -177,6 +295,14 @@ export default {
onHandleDownloadFile(row) { onHandleDownloadFile(row) {
console.log('row', row) console.log('row', row)
}, },
//
async getThreeAndOneMonthlyData() {
const res = await getThreeAndOneMonthlyDataAPI({
proId: this.projectId,
})
this.threeOneData = res.rows
},
}, },
} }
</script> </script>

View File

@ -1,8 +1,12 @@
<template> <template>
<!-- 综合查询 ---- 工程统计详情 --> <!-- 综合查询 ---- 工程统计详情 -->
<div class="app-container"> <div class="app-container">
<HeaderInfo /> <HeaderInfo
<ThreeOneTable /> :proName="proName"
:projectId="projectId"
:subComName="subComName"
/>
<ThreeOneTable :projectId="projectId" />
</div> </div>
</template> </template>
@ -19,11 +23,15 @@ export default {
data() { data() {
return { return {
projectId: null, // ID projectId: null, // ID
proName: null, //
subComName: null, //
} }
}, },
created() { created() {
// ID // ID
this.projectId = this.$route.params.id || this.$route.query.id this.projectId = this.$route.query?.id
this.proName = this.$route.query?.proName
this.subComName = this.$route.query?.subComName
}, },
methods: { methods: {
// //

View File

@ -7,16 +7,15 @@
:showRightTools="true" :showRightTools="true"
ref="threeAndOneTableRef" ref="threeAndOneTableRef"
:columnsList="columnsList" :columnsList="columnsList"
:testTableList="testTableList"
:request-api="getThreeAndOneListAPI" :request-api="getThreeAndOneListAPI"
> >
<template slot="handle" slot-scope="{ queryParams }"> <template slot="handle" slot-scope="{ data }">
<el-button <el-button
plain plain
size="mini" size="mini"
type="primary" type="primary"
icon="el-icon-view" icon="el-icon-view"
@click="onHandleViewDetail(queryParams)" @click="onHandleViewDetail(data)"
> >
详情 详情
</el-button> </el-button>
@ -51,31 +50,18 @@ export default {
formLabel, formLabel,
columnsList, columnsList,
getThreeAndOneListAPI, getThreeAndOneListAPI,
testTableList: [
{
mainProName: '分公司1',
volLevel: '工程1',
subNum: 1,
teamNum: 1,
teamNum: 1,
},
{
mainProName: '分公司1',
volLevel: '工程1',
subNum: 1,
teamNum: 1,
teamNum: 1,
},
],
} }
}, },
methods: { methods: {
onHandleViewDetail(queryParams) { onHandleViewDetail(data) {
console.log(queryParams)
this.$router.push({ this.$router.push({
name: 'ThreeAndOneDetail', name: 'ThreeAndOneDetail',
query: {
id: data.proId,
proName: data.proName,
subComName: data.subComName,
},
}) })
}, },
}, },

View File

@ -5,7 +5,7 @@
<div class="project-header"> <div class="project-header">
<!-- 项目信息区域 --> <!-- 项目信息区域 -->
<div class="project-details"> <div class="project-details">
<div class="project-title"> 月份2025-09 </div> <div class="project-title"> 月份{{ month }} </div>
</div> </div>
<div> <div>
<el-button size="mini" type="danger" @click="onHandlePack"> <el-button size="mini" type="danger" @click="onHandlePack">
@ -32,10 +32,30 @@
v-for="item in labelList" v-for="item in labelList"
> >
<span class="label-label">{{ item.label }}</span> <span class="label-label">{{ item.label }}</span>
<span class="label-value">{{ item.value }}</span> <span class="label-value">
{{ monthlyData[item.valueKey] }}
</span>
</div> </div>
</div> </div>
<div class="right"> 待封档 </div> <div class="right">
<el-tag
size="mini"
type="warning"
v-if="
monthlyData.refundStatus == 0 ||
monthlyData.refundStatus == null
"
>
待封档
</el-tag>
<el-tag
size="mini"
type="success"
v-if="monthlyData.refundStatus == 1"
>
已封档
</el-tag>
</div>
</div> </div>
</el-card> </el-card>
@ -78,53 +98,72 @@
</template> </template>
<script> <script>
import { getThreeAndOneMonthlyDataByIdAPI } from '@/api/synthesize-query/three-and-one'
export default { export default {
name: 'HeaderInfo', name: 'HeaderInfo',
props: {
id: {
type: [Number, String],
default: '',
},
month: {
type: String,
default: '',
},
proId: {
type: [Number, String],
default: '',
},
},
data() { data() {
return { return {
uploadVisible: false, uploadVisible: false,
fileSize: 10, fileSize: 10,
fileList: [], fileList: [],
monthlyData: {},
labelList: [ labelList: [
{ {
label: '分包数量', label: '分包数量',
value: '1', valueKey: 'subNum',
}, },
{ {
label: '人员数量', label: '人员数量',
value: '128', valueKey: 'rosterNum',
}, },
{ {
label: '封档人', label: '封档人',
value: '李思思', valueKey: 'updateUser',
}, },
{ {
label: '封档时间', label: '封档时间',
value: '2025-09-01', valueKey: 'refundTime',
}, },
{ {
label: '回单附件', label: '回单附件',
value: '2', valueKey: 'contractFile',
}, },
{ {
label: '班组数量', label: '班组数量',
value: '6', valueKey: 'teamNum',
}, },
{ {
label: '实发工资', label: '实发工资',
value: '10000', valueKey: 'netSalary',
}, },
{ {
label: '回单上传人', label: '回单上传人',
value: '李思思', valueKey: 'refundUser',
}, },
{ {
label: '回单上传时间', label: '回单上传时间',
value: '2025-09-01', valueKey: 'refundTime',
}, },
], ],
} }
}, },
created() {
this.getMonthlyData()
},
methods: { methods: {
onHandlePack() { onHandlePack() {
@ -198,6 +237,14 @@ export default {
handleRemove(file, fileList) { handleRemove(file, fileList) {
this.fileList = fileList this.fileList = fileList
}, },
//
async getMonthlyData() {
const res = await getThreeAndOneMonthlyDataByIdAPI({
id: this.id,
})
this.monthlyData = res.data
},
}, },
} }
</script> </script>

View File

@ -92,16 +92,20 @@
</template> </template>
<script> <script>
import { getThreeAndOneMonthlyRosterListAPI } from '@/api/synthesize-query/three-and-one'
export default { export default {
name: 'SubCount', name: 'SubCount',
props: {}, props: {
id: {
type: [Number, String],
default: '',
},
},
data() { data() {
return { return {
total: 100, total: 100,
nameListQueryParams: { nameListQueryParams: {
entryTime: '', monthId: this.id,
pageNum: 1,
pageSize: 10,
}, },
nameListData: [ nameListData: [
{ {
@ -183,7 +187,9 @@ export default {
], ],
} }
}, },
created() {}, created() {
this.getThreeAndOneMonthlyRosterList()
},
watch: {}, watch: {},
methods: { methods: {
// //
@ -208,6 +214,7 @@ export default {
// //
handleQuery() { handleQuery() {
// this.getAttInfoData() // this.getAttInfoData()
this.getThreeAndOneMonthlyRosterList()
}, },
// //
resetQuery() { resetQuery() {
@ -229,6 +236,16 @@ export default {
getNameListData() { getNameListData() {
// this.getAttInfoData() // this.getAttInfoData()
}, },
//
async getThreeAndOneMonthlyRosterList() {
const res = await getThreeAndOneMonthlyRosterListAPI(
this.nameListQueryParams,
)
console.log(res, 'res三表一册单月农名工花名册列表')
// this.nameListData = res.rows
},
}, },
} }
</script> </script>

View File

@ -12,7 +12,7 @@
<el-tab-pane label="农民工工资支付表" name="4" /> <el-tab-pane label="农民工工资支付表" name="4" />
</el-tabs> </el-tabs>
<div class="section-content"> <div class="section-content">
<component :is="componentsList[activeName]" /> <component :id="id" :is="componentsList[activeName]" />
</div> </div>
</div> </div>
</template> </template>
@ -32,6 +32,12 @@ export default {
AttDetails, AttDetails,
WagePay, WagePay,
}, },
props: {
id: {
type: [Number, String],
default: '',
},
},
data() { data() {
return { return {
activeName: '1', activeName: '1',

View File

@ -1,8 +1,8 @@
<template> <template>
<!-- 月份详情 --> <!-- 月份详情 -->
<div class="app-container"> <div class="app-container">
<HeaderInfo /> <HeaderInfo :id="id" :month="month" :proId="proId" />
<ThreeOneTable /> <ThreeOneTable :id="id" />
</div> </div>
</template> </template>
@ -15,5 +15,17 @@ export default {
HeaderInfo, HeaderInfo,
ThreeOneTable, ThreeOneTable,
}, },
data() {
return {
id: null,
month: null,
proId: null,
}
},
created() {
this.id = this.$route.query?.id
this.month = this.$route.query?.month
this.proId = this.$route.query?.proId
},
} }
</script> </script>