三表一册接口调试

This commit is contained in:
BianLzhaoMin 2025-09-28 18:18:53 +08:00
parent ff0f4eae06
commit 79607cc494
12 changed files with 532 additions and 246 deletions

View File

@ -1,4 +1,5 @@
import request from '@/utils/request'
import requestFormData from '@/utils/request_formdata'
// 综合查询 获取三表一册列表
export const getThreeAndOneListAPI = (data) => {
@ -44,3 +45,48 @@ export const getThreeAndOneMonthlyRosterListAPI = (data) => {
params: data,
})
}
// 综合查询 导出三表一册单月农民工实名制工资信息报审表
export const exportThreeAndOneMonthlySalaryApprovalListAPI = (data) => {
return request({
url: '/bmw/pmProject/getUserSalaryApprovalList',
method: 'GET',
params: data,
})
}
// 综合查询 导出三表一册单月分包人员考勤明细表
export const exportThreeAndOneMonthlyAttDetailsListAPI = (data) => {
return request({
url: '/bmw/pmProject/getUserAttendanceList',
method: 'GET',
params: data,
})
}
// 综合查询 导出三表一册单月农名工工资支付表
export const exportThreeAndOneMonthlyWagePaymentListAPI = (data) => {
return request({
url: '/bmw/pmProject/getUserWagePayList',
method: 'GET',
params: data,
})
}
// 综合查询 三表一册封档操作
export const updateProMonthTableAPI = (data) => {
return request({
url: '/bmw/pmProject/updateProMonthTable',
method: 'POST',
data,
})
}
// 综合查询 三表一册回单上传操作
export const uploadProMonthTableRefundAPI = (data) => {
return requestFormData({
url: '/bmw/pmProject/updateProMonthTableRefund ',
method: 'POST',
data,
})
}

View File

@ -10,6 +10,7 @@ export const formLabel = [
f_type: 'sel',
f_label: '工程状态',
f_model: 'proStatus',
f_selList: [],
},
]
@ -25,5 +26,5 @@ export const columnsList = [
{ t_props: 'teamNum', t_label: '发放班组数量' },
{ t_props: 'payNum', t_label: '发放人员人次' },
{ t_props: 'netSalary', t_label: '实发工资' },
{ t_props: 'proStatus', t_label: '状态' },
{ t_slot: 'proStatus', t_label: '状态' },
]

View File

@ -48,8 +48,23 @@
item.valueKey === 'currentStatus',
}"
>
<span class="status-dot"></span>
{{ projectInfo[item.valueKey] }}
<!-- <span class="status-dot"></span> -->
<template v-if="item.valueKey === 'proStatus'">
<el-tag size="mini" type="primary">
{{
initProStatus(
projectInfo[item.valueKey],
)
}}
</el-tag>
</template>
<template v-else-if="item.valueKey === 'proType'">
{{ initProType(projectInfo[item.valueKey]) }}
</template>
<template v-else>
{{ projectInfo[item.valueKey] }}
</template>
</span>
</div>
</div>
@ -62,6 +77,7 @@
import { getThreeAndOneProjectDetailAPI } from '@/api/synthesize-query/three-and-one'
export default {
name: 'HeaderInfo',
dicts: ['project_status', 'project_type'],
props: {
projectId: {
type: [Number, String],
@ -83,32 +99,26 @@ export default {
labelList: [
{
label: '当前状态',
value: '在建',
valueKey: 'proStatus',
},
{
label: '工程类型',
value: '基建线路',
valueKey: 'proType',
},
{
label: '电压等级',
value: '220kV',
valueKey: 'volLevel',
},
{
label: '计划开工时间',
value: '2025-02-01',
valueKey: 'startTime',
},
{
label: '计划完工时间',
value: '2025-11-30',
valueKey: 'endTime',
},
{
label: '工程地址',
value: '广东省-东莞市',
valueKey: 'proAddress',
},
],
@ -144,6 +154,28 @@ export default {
console.log(res, 'res工程详情')
},
//
initProType(data) {
if (typeof data === 'string') {
return this.dict.type.project_type.find(
(item) => item.value == data,
).label
}
return data || ''
},
//
initProStatus(data) {
if (typeof data === 'string') {
return this.dict.type.project_status.find(
(item) => item.value == data,
).label
}
return data || ''
},
},
}
</script>

View File

@ -138,7 +138,7 @@
</template>
<template v-else>
<span>{{ row[item.prop] }}</span>
<span>{{ row[item.prop] || '/' }}</span>
</template>
</template>
</el-table-column>
@ -161,6 +161,13 @@
</el-table-column>
</el-table>
</div>
<pagination
:total="total"
@pagination="getThreeAndOneMonthlyData"
:page.sync="threeOneQueryParams.pageNum"
:limit.sync="threeOneQueryParams.pageSize"
/>
</div>
</div>
</div>
@ -182,8 +189,14 @@ export default {
},
data() {
return {
total: 0,
//
threeOneData: [],
threeOneQueryParams: {
pageNum: 1,
pageSize: 10,
proId: '',
},
columnsList: [
{
@ -298,10 +311,12 @@ export default {
//
async getThreeAndOneMonthlyData() {
const res = await getThreeAndOneMonthlyDataAPI({
proId: this.projectId,
})
this.threeOneQueryParams.proId = this.projectId
const res = await getThreeAndOneMonthlyDataAPI(
this.threeOneQueryParams,
)
this.threeOneData = res.rows
this.total = res.total
},
},
}
@ -339,6 +354,7 @@ export default {
border-radius: 12px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
margin-top: 20px;
padding-bottom: 20px;
overflow: hidden;
.section-header {

View File

@ -21,6 +21,12 @@
</el-button>
</template>
<template slot="proStatus" slot-scope="{ data }">
<el-tag size="mini" type="primary">
{{ initProStatus(data.proStatus) }}
</el-tag>
</template>
<template slot="left-tip">
<div class="left-tip">
1. 每月1号0点自动生成上月"三表一册"
@ -42,6 +48,7 @@ import { formLabel, columnsList } from './config'
import { getThreeAndOneListAPI } from '@/api/synthesize-query/three-and-one'
export default {
name: 'ThreeAndOne',
dicts: ['project_status'],
components: {
TableModel,
},
@ -52,6 +59,9 @@ export default {
getThreeAndOneListAPI,
}
},
created() {
formLabel[1].f_selList = this.dict.type.project_status
},
methods: {
onHandleViewDetail(data) {
@ -64,6 +74,16 @@ export default {
},
})
},
initProStatus(status) {
if (typeof status === 'string') {
return this.dict.type.project_status.find(
(item) => item.value == status,
).label
}
return status || ''
},
},
}
</script>

View File

@ -1,22 +1,23 @@
<template>
<!-- 考勤明细 -->
<!-- 分包人员考勤明细 -->
<div class="section-container">
<div class="table-container">
<el-form
:inline="true"
label-width="auto"
:model="nameListQueryParams"
:model="attDetailsQueryParams"
ref="attDetailsQueryParamsRef"
style="margin-top: 20px; padding-left: 20px; display: flex"
>
<el-form-item>
<el-form-item prop="subName">
<el-input
v-model="nameListQueryParams.entryTime"
v-model="attDetailsQueryParams.subName"
placeholder="请输入分包"
/>
</el-form-item>
<el-form-item>
<el-form-item prop="userName">
<el-input
v-model="nameListQueryParams.entryTime"
v-model="attDetailsQueryParams.userName"
placeholder="请输入姓名"
/>
</el-form-item>
@ -53,15 +54,15 @@
style="flex: 1; text-align: right; color: #ef4444"
>
<span>出勤1</span>
<span>缺勤1</span>
<span>无对应日期1</span>
<span>缺勤0</span>
<span>无对应日期空白</span>
</el-form-item>
</el-form>
<el-table
border
stripe
style="width: 100%"
:data="nameListData"
:data="attDetailsListData"
:header-cell-style="tableHeaderStyle"
:cell-style="tableCellStyle"
>
@ -79,15 +80,20 @@
<el-table-column
align="center"
:key="j"
:label="j"
:label="j.toString()"
width="50"
v-for="j in 30"
/>
v-for="j in attendanceDays"
>
<template slot-scope="{ row }">
{{ row.attendanceDayList[j - 1].isAtt }}
</template>
</el-table-column>
</el-table-column>
<el-table-column
align="center"
label="出勤天数"
fixed="right"
prop="attendanceNum"
/>
<el-table-column align="center" label="签字" fixed="right" />
<el-table-column
@ -100,7 +106,7 @@
<!-- <div style="padding-right: 20px">
<pagination
:total="total"
@pagination="getNameListData"
@pagination="getattDetailsListData"
:page.sync="nameListQueryParams.pageNum"
:limit.sync="nameListQueryParams.pageSize"
/>
@ -110,52 +116,80 @@
</template>
<script>
import { exportThreeAndOneMonthlyAttDetailsListAPI } from '@/api/synthesize-query/three-and-one'
export default {
name: 'WageInfo',
props: {},
props: {
id: {
type: [Number, String],
default: '',
},
month: {
type: [Number, String],
default: '',
},
},
data() {
return {
total: 100,
nameListQueryParams: {
entryTime: '',
pageNum: 1,
pageSize: 10,
attDetailsQueryParams: {
monthId: this.id,
subName: '',
userName: '',
},
nameListData: [
{
entryTime: '测试',
},
{
entryTime: '测试',
},
],
attDetailsListData: [],
columnData: [
{
label: '项目名称',
prop: 'entryTime',
prop: 'proName',
},
{
label: '分包队伍全称',
prop: 'exitTime',
prop: 'subName',
},
{
label: '姓名',
prop: 'subcontractorName',
prop: 'userName',
},
{
label: '身份证号',
prop: 'totalEntryCount',
prop: 'idCard',
},
{
label: '职务/工种',
prop: 'totalEntryCount',
prop: 'workName',
},
],
//
attendanceHeader: [],
//
attendanceDays: 0,
}
},
created() {},
watch: {},
created() {
this.getCurrentMonthDays()
this.getThreeAndOneMonthlyAttDetailsList()
},
methods: {
//
getCurrentMonthDays() {
const now = new Date()
const year = now.getFullYear()
// const month = now.getMonth() + 1 // getMonth() 0-11 +1
// // 0
// const lastDay = new Date(year, month, 0).getDate()
// this.attendanceDays = lastDay
// month 0
const month = this.month.split('-')[1].padStart(2, '0')
// yyyy-MM
this.attendanceDays = new Date(year, month, 0).getDate()
},
//
tableHeaderStyle() {
return {
@ -171,33 +205,44 @@ export default {
return {
fontSize: '14px',
color: '#606266',
padding: '12px 8px',
padding: '12px 0',
}
},
//
handleQuery() {
// this.getAttInfoData()
this.getThreeAndOneMonthlyAttDetailsList()
},
//
resetQuery() {
this.attInfoQueryParams = {
entryTime: '',
}
this.resetForm('attDetailsQueryParamsRef')
this.getThreeAndOneMonthlyAttDetailsList()
},
//
handleExport() {
// this.download(
// '/bmw/workerLight/attExportByWorker',
// {
// ...this.attInfoQueryParams,
// },
// '.xlsx',
// )
this.download(
'/bmw/pmProject/exportUserAttendance',
{
...this.attDetailsQueryParams,
},
'分包人员考勤明细表.xlsx',
)
},
//
getNameListData() {
//
async getThreeAndOneMonthlyAttDetailsList() {
// this.getAttInfoData()
const res = await exportThreeAndOneMonthlyAttDetailsListAPI(
this.attDetailsQueryParams,
)
this.attDetailsListData = res?.data.map((item) => {
return {
...item,
attendanceDayList: JSON.parse(item.attendanceDay),
}
})
},
},
}

View File

@ -8,7 +8,12 @@
<div class="project-title"> 月份{{ month }} </div>
</div>
<div>
<el-button size="mini" type="danger" @click="onHandlePack">
<el-button
size="mini"
type="danger"
@click="onHandlePack"
:disabled="monthlyData.refundStatus == 1"
>
封档
</el-button>
<el-button
@ -33,7 +38,21 @@
>
<span class="label-label">{{ item.label }}</span>
<span class="label-value">
{{ monthlyData[item.valueKey] }}
<template v-if="item.valueKey === 'contractFile'">
<span
class="cursor-blue"
@click="handleClickContractFile"
>
{{
monthlyData[item.valueKey]
? monthlyData[item.valueKey].length
: 0
}}
</span>
</template>
<template v-else>
{{ monthlyData[item.valueKey] || '/' }}
</template>
</span>
</div>
</div>
@ -43,7 +62,8 @@
type="warning"
v-if="
monthlyData.refundStatus == 0 ||
monthlyData.refundStatus == null
monthlyData.refundStatus == null ||
monthlyData.refundStatus == 1
"
>
待封档
@ -51,7 +71,7 @@
<el-tag
size="mini"
type="success"
v-if="monthlyData.refundStatus == 1"
v-if="monthlyData.refundStatus == 2"
>
已封档
</el-tag>
@ -68,7 +88,7 @@
<el-upload
action="#"
multiple
limit="1"
limit="3"
class="upload-demo"
:file-list="fileList"
:auto-upload="false"
@ -94,13 +114,47 @@
</el-button>
</el-row>
</el-dialog>
<DialogModel
:dialogConfig="dialogConfig"
@closeDialogOuter="handleCloseDialogOuter"
>
<template slot="outerContent">
<el-table>
<el-table-column
align="center"
label="文件名称"
prop="name"
/>
<el-table-column
align="center"
label="上传时间"
prop="name"
/>
<el-table-column
align="center"
label="上传人员"
prop="name"
/>
<el-table-column align="center" label="操作" prop="name" />
</el-table>
</template>
</DialogModel>
</div>
</template>
<script>
import { getThreeAndOneMonthlyDataByIdAPI } from '@/api/synthesize-query/three-and-one'
import {
getThreeAndOneMonthlyDataByIdAPI,
updateProMonthTableAPI,
uploadProMonthTableRefundAPI,
} from '@/api/synthesize-query/three-and-one'
import DialogModel from '@/components/DialogModel/index.vue'
export default {
name: 'HeaderInfo',
components: {
DialogModel,
},
props: {
id: {
type: [Number, String],
@ -121,6 +175,13 @@ export default {
fileSize: 10,
fileList: [],
monthlyData: {},
dialogConfig: {
outerTitle: '银行回单查看',
outerWidth: '40%',
outerVisible: false,
minHeight: '40vh',
maxHeight: '90vh',
},
labelList: [
{
label: '分包数量',
@ -170,8 +231,18 @@ export default {
console.log('封档')
this.$modal
.confirm('是否确定封档?')
.then(() => {
console.log('封档')
.then(async () => {
// console.log('')
const res = await updateProMonthTableAPI({
id: this.id,
refundStatus: 2,
})
if (res.code == 200) {
this.$modal.msgSuccess('封档成功')
this.getMonthlyData()
}
})
.catch(() => {
console.log('取消')
@ -183,14 +254,39 @@ export default {
this.fileList = []
},
onHandleDownload() {
console.log('下载三表一册')
// console.log('')
this.download(
'/bmw/pmProject/exportThreeAndOne',
{},
'三表一册.xlsx',
)
},
onHandleCancel() {
this.uploadVisible = false
this.fileList = []
},
onHandleConfirm() {
this.uploadVisible = false
async onHandleConfirm() {
// this.uploadVisible = false
if (this.fileList.length > 0) {
// this.uploadVisible = false
const formData = new FormData()
const fileMsg = []
this.fileList.forEach((item) => {
formData.append('files', item.raw)
fileMsg.push({
name: '回单',
type: 1,
})
})
const res = await uploadProMonthTableRefundAPI(formData)
if (res.code == 200) {
this.$modal.msgSuccess('回单上传成功')
this.getMonthlyData()
}
} else {
this.$modal.msgError('请上传文件')
}
},
//
@ -245,6 +341,17 @@ export default {
})
this.monthlyData = res.data
},
//
handleClickContractFile() {
console.log('查看附件')
this.dialogConfig.outerVisible = true
},
//
handleCloseDialogOuter() {
this.dialogConfig.outerVisible = false
},
},
}
</script>

View File

@ -5,32 +5,40 @@
<el-form
:inline="true"
label-width="auto"
ref="nameListQueryParamsRef"
:model="nameListQueryParams"
style="margin-top: 20px; padding-left: 20px"
>
<el-form-item>
<el-form-item prop="subName">
<el-input
v-model="nameListQueryParams.entryTime"
placeholder="请输入分包"
clearable
v-model.trim="nameListQueryParams.subName"
/>
</el-form-item>
<el-form-item>
<el-form-item prop="teamName">
<el-input
v-model="nameListQueryParams.entryTime"
clearable
v-model.trim="nameListQueryParams.teamName"
placeholder="请输入班组"
/>
</el-form-item>
<el-form-item>
<el-form-item prop="userName">
<el-input
v-model="nameListQueryParams.entryTime"
clearable
v-model.trim="nameListQueryParams.userName"
placeholder="请输入姓名"
/>
</el-form-item>
<el-form-item>
<el-input
v-model="nameListQueryParams.entryTime"
<el-form-item prop="onDuty">
<el-select
clearable
placeholder="请输入在岗情况"
/>
v-model="nameListQueryParams.onDuty"
>
<el-option label="在岗" value="1" />
<el-option label="不在岗" value="0" />
</el-select>
</el-form-item>
<el-form-item>
<el-button
@ -63,12 +71,16 @@
</el-form>
<el-table
border
stripe
:data="nameListData"
style="width: 100%"
:header-cell-style="tableHeaderStyle"
:cell-style="tableCellStyle"
>
<el-table-column
type="index"
width="50"
align="center"
label="序号"
/>
<el-table-column
align="center"
:key="item.prop"
@ -76,7 +88,20 @@
:label="item.label"
show-overflow-tooltip
v-for="item in columnData"
/>
>
<template slot-scope="scope">
<template v-if="item.prop === 'sex'">
{{ scope.row[item.prop] == 0 ? '女' : '男' }}
</template>
<template v-else-if="item.prop === 'onDuty'">
{{ scope.row[item.prop] == 1 ? '在岗' : '不在岗' }}
</template>
<template v-else>
{{ scope.row[item.prop] || '/' }}
</template>
</template>
</el-table-column>
</el-table>
<!-- <div style="padding-right: 20px">
@ -106,83 +131,69 @@ export default {
total: 100,
nameListQueryParams: {
monthId: this.id,
onDuty: '',
subName: '',
teamName: '',
userName: '',
},
nameListData: [
{
entryTime: '2025-01-01',
exitTime: '2025-01-01',
contractName: '工程1',
subcontractorName: '分包1',
totalEntryCount: 10,
},
{
entryTime: '2025-01-01',
exitTime: '2025-01-01',
contractName: '工程1',
subcontractorName: '分包1',
totalEntryCount: 10,
},
],
nameListData: [],
columnData: [
{
label: '分包单位',
prop: 'entryTime',
prop: 'subName',
},
{
label: '班组',
prop: 'exitTime',
prop: 'teamName',
},
{
label: '姓名',
prop: 'subcontractorName',
prop: 'userName',
},
{
label: '性别',
prop: 'totalEntryCount',
prop: 'sex',
},
{
label: '职务/工种',
prop: 'totalEntryCount',
},
{
label: '发证单位及证书号',
prop: 'totalEntryCount',
},
{
label: '有效期',
prop: 'totalEntryCount',
},
{
label: '性别',
prop: 'totalEntryCount',
prop: 'workName',
},
// {
// label: '',
// prop: 'workName',
// },
// {
// label: '',
// prop: 'workName',
// },
{
label: '公民身份证号',
prop: 'totalEntryCount',
prop: 'idCard',
},
{
label: '户籍地址',
prop: 'totalEntryCount',
prop: 'residence',
},
{
label: '手机号',
prop: 'totalEntryCount',
prop: 'phone',
},
{
label: '入场时间',
prop: 'totalEntryCount',
prop: 'inTime',
},
{
label: '离场时间',
prop: 'totalEntryCount',
prop: 'outTime',
},
{
label: '在岗情况',
prop: 'totalEntryCount',
prop: 'onDuty',
},
{
label: '备注',
prop: 'totalEntryCount',
prop: 'remark',
},
],
}
@ -207,7 +218,7 @@ export default {
return {
fontSize: '14px',
color: '#606266',
padding: '12px 8px',
padding: '12px 0',
}
},
@ -218,19 +229,18 @@ export default {
},
//
resetQuery() {
this.attInfoQueryParams = {
entryTime: '',
}
this.resetForm('nameListQueryParamsRef')
this.getThreeAndOneMonthlyRosterList()
},
//
handleExport() {
// this.download(
// '/bmw/workerLight/attExportByWorker',
// {
// ...this.attInfoQueryParams,
// },
// '.xlsx',
// )
this.download(
'/bmw/pmProject/exportProMonthTableRoster',
{
...this.nameListQueryParams,
},
'农名工花名册.xlsx',
)
},
//
getNameListData() {
@ -243,7 +253,7 @@ export default {
this.nameListQueryParams,
)
console.log(res, 'res三表一册单月农名工花名册列表')
this.nameListData = res?.data
// this.nameListData = res.rows
},
},

View File

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

View File

@ -1,28 +1,29 @@
<template>
<!-- 工资信息 -->
<!-- 农民工实名制工资信息报审表 -->
<div class="section-container">
<div class="table-container">
<el-form
:inline="true"
label-width="auto"
:model="nameListQueryParams"
ref="wageInfoQueryParamsRef"
:model="wageInfoQueryParams"
style="margin-top: 20px; padding-left: 20px"
>
<el-form-item>
<el-form-item prop="bankCode">
<el-input
v-model="nameListQueryParams.entryTime"
v-model="wageInfoQueryParams.bankCode"
placeholder="请输入银行卡号"
/>
</el-form-item>
<el-form-item>
<el-form-item prop="teamName">
<el-input
v-model="nameListQueryParams.entryTime"
v-model="wageInfoQueryParams.teamName"
placeholder="请输入班组"
/>
</el-form-item>
<el-form-item>
<el-form-item prop="userName">
<el-input
v-model="nameListQueryParams.entryTime"
v-model="wageInfoQueryParams.userName"
placeholder="请输入姓名"
/>
</el-form-item>
@ -58,19 +59,24 @@
<el-table
border
stripe
:data="nameListData"
style="width: 100%"
:data="wageInfoListData"
:header-cell-style="tableHeaderStyle"
:cell-style="tableCellStyle"
>
<el-table-column
align="center"
:key="item.prop"
:prop="item.prop"
:label="item.label"
show-overflow-tooltip
v-for="item in columnData"
/>
>
<template slot-scope="scope">
<template>
{{ scope.row[item.prop] || '/' }}
</template>
</template>
</el-table-column>
</el-table>
<!-- <div style="padding-right: 20px">
@ -86,86 +92,78 @@
</template>
<script>
import { exportThreeAndOneMonthlySalaryApprovalListAPI } from '@/api/synthesize-query/three-and-one'
export default {
name: 'WageInfo',
props: {},
props: {
id: {
type: [Number, String],
default: '',
},
},
data() {
return {
total: 100,
nameListQueryParams: {
entryTime: '',
pageNum: 1,
pageSize: 10,
wageInfoQueryParams: {
monthId: this.id,
bankCode: '',
teamName: '',
userName: '',
},
nameListData: [
{
entryTime: '2025-01-01',
exitTime: '2025-01-01',
contractName: '工程1',
subcontractorName: '分包1',
totalEntryCount: 10,
},
{
entryTime: '2025-01-01',
exitTime: '2025-01-01',
contractName: '工程1',
subcontractorName: '分包1',
totalEntryCount: 10,
},
],
wageInfoListData: [],
columnData: [
{
label: '姓名',
prop: 'entryTime',
prop: 'userName',
},
{
label: '所在班组',
prop: 'exitTime',
prop: 'teamName',
},
{
label: '身份证号',
prop: 'subcontractorName',
prop: 'idCard',
},
{
label: '开户银行',
prop: 'totalEntryCount',
prop: 'bankName',
},
{
label: '收款银行联行号',
prop: 'totalEntryCount',
prop: 'bankNum',
},
{
label: '银行卡号',
prop: 'totalEntryCount',
prop: 'bankCode',
},
{
label: '工资标准(元/日)',
prop: 'totalEntryCount',
prop: 'priceWage',
},
{
label: '支付周期',
prop: 'totalEntryCount',
prop: 'payment',
},
{
label: '支付日期',
prop: 'totalEntryCount',
},
{
label: '户籍地址',
prop: 'totalEntryCount',
prop: 'payDay',
},
{
label: '联系方式',
prop: 'totalEntryCount',
prop: 'phone',
},
{
label: '备注',
prop: 'totalEntryCount',
prop: 'remark',
},
],
}
},
created() {},
created() {
this.getThreeAndOneMonthlySalaryApprovalList()
},
watch: {},
methods: {
//
@ -183,33 +181,39 @@ export default {
return {
fontSize: '14px',
color: '#606266',
padding: '12px 8px',
padding: '12px 0',
}
},
//
handleQuery() {
// this.getAttInfoData()
this.getThreeAndOneMonthlySalaryApprovalList()
},
//
resetQuery() {
this.attInfoQueryParams = {
entryTime: '',
}
this.resetForm('wageInfoQueryParamsRef')
this.getThreeAndOneMonthlySalaryApprovalList()
},
//
handleExport() {
// this.download(
// '/bmw/workerLight/attExportByWorker',
// {
// ...this.attInfoQueryParams,
// },
// '.xlsx',
// )
this.download(
'/bmw/pmProject/exportUserSalaryApproval',
{
...this.wageInfoQueryParams,
},
'农民工实名制工资信息报审表.xlsx',
)
},
//
getNameListData() {
//
async getThreeAndOneMonthlySalaryApprovalList() {
// this.getAttInfoData()
const res = await exportThreeAndOneMonthlySalaryApprovalListAPI(
this.wageInfoQueryParams,
)
this.wageInfoListData = res?.data
},
},
}

View File

@ -5,24 +5,25 @@
<el-form
:inline="true"
label-width="auto"
:model="nameListQueryParams"
ref="wagePayQueryParamsRef"
:model="wagePayQueryParams"
style="margin-top: 20px; padding-left: 20px"
>
<el-form-item>
<el-form-item prop="bankCode">
<el-input
v-model="nameListQueryParams.entryTime"
v-model="wagePayQueryParams.bankCode"
placeholder="请输入银行卡号"
/>
</el-form-item>
<el-form-item>
<el-form-item prop="teamName">
<el-input
v-model="nameListQueryParams.entryTime"
v-model="wagePayQueryParams.teamName"
placeholder="请输入班组"
/>
</el-form-item>
<el-form-item>
<el-form-item prop="userName">
<el-input
v-model="nameListQueryParams.entryTime"
v-model="wagePayQueryParams.userName"
placeholder="请输入姓名"
/>
</el-form-item>
@ -67,7 +68,7 @@
<el-table
border
stripe
:data="nameListData"
:data="wagePayListData"
style="width: 100%"
:header-cell-style="tableHeaderStyle"
:cell-style="tableCellStyle"
@ -110,38 +111,26 @@
</template>
<script>
import { exportThreeAndOneMonthlyWagePaymentListAPI } from '@/api/synthesize-query/three-and-one'
export default {
name: 'WagePay',
props: {},
props: {
id: {
type: [Number, String],
default: '',
},
},
data() {
return {
isEdit: false,
total: 100,
nameListQueryParams: {
entryTime: '',
pageNum: 1,
pageSize: 10,
wagePayQueryParams: {
monthId: this.id,
bankCode: '',
teamName: '',
userName: '',
},
nameListData: [
{
entryTime: '2025-01-01',
exitTime: '2025-01-01',
contractName: '工程1',
subcontractorName: '分包1',
totalEntryCount: 10,
dk: 10,
sf: 10,
},
{
entryTime: '2025-01-01',
exitTime: '2025-01-01',
contractName: '工程1',
subcontractorName: '分包1',
totalEntryCount: 10,
dk: 10,
sf: 10,
},
],
wagePayListData: [],
columnData: [
{
label: '姓名',
@ -208,8 +197,10 @@ export default {
],
}
},
created() {},
watch: {},
created() {
this.getThreeAndOneMonthlyWagePaymentList()
},
methods: {
//
tableHeaderStyle() {
@ -226,33 +217,39 @@ export default {
return {
fontSize: '14px',
color: '#606266',
padding: '12px 8px',
padding: '12px 0',
}
},
//
handleQuery() {
// this.getAttInfoData()
this.getThreeAndOneMonthlyWagePaymentList()
},
//
resetQuery() {
this.attInfoQueryParams = {
entryTime: '',
}
this.resetForm('wagePayQueryParamsRef')
this.getThreeAndOneMonthlyWagePaymentList()
},
//
handleExport() {
// this.download(
// '/bmw/workerLight/attExportByWorker',
// {
// ...this.attInfoQueryParams,
// },
// '.xlsx',
// )
this.download(
'/bmw/pmProject/exportUserWagePay',
{
...this.wagePayQueryParams,
},
'农名工工资支付表.xlsx',
)
},
//
getNameListData() {
//
async getThreeAndOneMonthlyWagePaymentList() {
// this.getAttInfoData()
const res = await exportThreeAndOneMonthlyWagePaymentListAPI(
this.wagePayQueryParams,
)
this.wagePayListData = res?.data
},
// -/

View File

@ -2,7 +2,7 @@
<!-- 月份详情 -->
<div class="app-container">
<HeaderInfo :id="id" :month="month" :proId="proId" />
<ThreeOneTable :id="id" />
<ThreeOneTable :id="id" :month="month" />
</div>
</template>