三表一册接口调试完成

This commit is contained in:
BianLzhaoMin 2025-09-29 14:48:51 +08:00
parent 79607cc494
commit 87c90c3fbf
12 changed files with 228 additions and 56 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -92,3 +92,14 @@ export const getTeamSelectListByConditionAPI = (data) => {
data,
})
}
// 删除附件
export const deleteFileAPI = (id) => {
return request({
url: '/bmw/pmProject/updateRefundFileById/' + id,
method: 'POST',
data: {
id: id,
},
})
}

View File

@ -90,3 +90,12 @@ export const uploadProMonthTableRefundAPI = (data) => {
data,
})
}
// 综合查询 三表一册 农名工工资支付表 保存操作
export const saveThreeAndOneMonthlyWagePaymentAPI = (data) => {
return request({
url: '/bmw/pmProject/updateSalary',
method: 'POST',
data,
})
}

View File

@ -246,6 +246,7 @@ export function tansParams(params, isEncrypt = false) {
// result = result.slice(0, -1)
result = encryptWithSM4(result)
}
return result
}

View File

@ -75,8 +75,9 @@ export default {
0,
)
const percent = (
(dataItem.value / total) *
100
isNaN((dataItem.value / total) * 100)
? 0
: (dataItem.value / total) * 100
).toFixed(1)
if (data.showAfter) {

View File

@ -265,7 +265,7 @@ export default {
return {
fontSize: '14px',
color: '#606266',
padding: '12px 8px',
padding: '12px 0',
}
},
@ -307,6 +307,11 @@ export default {
//
onHandleDownloadFile(row) {
console.log('row', row)
this.download(
'/bmw/pmProject/exportThreeAndOne',
{},
'三表一册.xlsx',
)
},
//

View File

@ -11,14 +11,16 @@
>
<el-form-item prop="subName">
<el-input
v-model="attDetailsQueryParams.subName"
clearable
placeholder="请输入分包"
v-model.trim="attDetailsQueryParams.subName"
/>
</el-form-item>
<el-form-item prop="userName">
<el-input
v-model="attDetailsQueryParams.userName"
clearable
placeholder="请输入姓名"
v-model.trim="attDetailsQueryParams.userName"
/>
</el-form-item>
<el-form-item>
@ -53,8 +55,8 @@
<el-form-item
style="flex: 1; text-align: right; color: #ef4444"
>
<span>出勤1</span>
<span>缺勤0</span>
<span>出勤1 &nbsp;&nbsp;</span>
<span>缺勤0 &nbsp;&nbsp;</span>
<span>无对应日期空白</span>
</el-form-item>
</el-form>

View File

@ -12,7 +12,7 @@
size="mini"
type="danger"
@click="onHandlePack"
:disabled="monthlyData.refundStatus == 1"
:disabled="monthlyData.status == 2"
>
封档
</el-button>
@ -32,9 +32,9 @@
<div class="label-list">
<div class="left">
<div
:key="index"
class="label-item"
:key="item.label"
v-for="item in labelList"
v-for="(item, index) in labelList"
>
<span class="label-label">{{ item.label }}</span>
<span class="label-value">
@ -60,18 +60,14 @@
<el-tag
size="mini"
type="warning"
v-if="
monthlyData.refundStatus == 0 ||
monthlyData.refundStatus == null ||
monthlyData.refundStatus == 1
"
v-if="monthlyData.status == 1"
>
待封档
</el-tag>
<el-tag
size="mini"
type="success"
v-if="monthlyData.refundStatus == 2"
v-if="monthlyData.status == 2"
>
已封档
</el-tag>
@ -88,7 +84,6 @@
<el-upload
action="#"
multiple
limit="3"
class="upload-demo"
:file-list="fileList"
:auto-upload="false"
@ -120,23 +115,41 @@
@closeDialogOuter="handleCloseDialogOuter"
>
<template slot="outerContent">
<el-table>
<el-table :data="monthlyData.contractFile">
<el-table-column
align="center"
label="文件名称"
prop="name"
prop="originFileName"
/>
<el-table-column
align="center"
label="上传时间"
prop="name"
prop="createTime"
/>
<el-table-column
align="center"
label="上传人员"
prop="name"
prop="userName"
/>
<el-table-column align="center" label="操作" prop="name" />
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button
type="text"
icon="el-icon-download"
@click="onHandleDownloadFile(scope.row)"
>
下载
</el-button>
<el-button
type="text"
icon="el-icon-delete"
style="color: #f56c6c"
@click="onHandleDeleteFile(scope.row)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
</template>
</DialogModel>
@ -149,6 +162,7 @@ import {
updateProMonthTableAPI,
uploadProMonthTableRefundAPI,
} from '@/api/synthesize-query/three-and-one'
import { deleteFileAPI } from '@/api/common'
import DialogModel from '@/components/DialogModel/index.vue'
export default {
name: 'HeaderInfo',
@ -169,12 +183,23 @@ export default {
default: '',
},
},
computed: {
fileCount() {
if (this.monthlyData.contractFile) {
return 3 - this.monthlyData.contractFile.length
}
return 3
},
},
data() {
return {
uploadVisible: false,
fileSize: 10,
fileList: [],
monthlyData: {},
monthlyData: {
contractFile: [],
},
dialogConfig: {
outerTitle: '银行回单查看',
outerWidth: '40%',
@ -197,7 +222,7 @@ export default {
},
{
label: '封档时间',
valueKey: 'refundTime',
valueKey: 'blockTime',
},
{
label: '回单附件',
@ -236,12 +261,14 @@ export default {
const res = await updateProMonthTableAPI({
id: this.id,
refundStatus: 2,
status: 2,
})
if (res.code == 200) {
this.$modal.msgSuccess('封档成功')
this.getMonthlyData()
this.uploadVisible = false
this.fileList = []
}
})
.catch(() => {
@ -270,6 +297,9 @@ export default {
if (this.fileList.length > 0) {
// this.uploadVisible = false
const formData = new FormData()
const params = {
id: this.id,
}
const fileMsg = []
this.fileList.forEach((item) => {
formData.append('files', item.raw)
@ -279,10 +309,14 @@ export default {
})
})
formData.append('fileMsg', JSON.stringify(fileMsg))
formData.append('params', JSON.stringify(params))
const res = await uploadProMonthTableRefundAPI(formData)
if (res.code == 200) {
this.$modal.msgSuccess('回单上传成功')
this.getMonthlyData()
this.uploadVisible = false
this.fileList = []
}
} else {
this.$modal.msgError('请上传文件')
@ -345,13 +379,42 @@ export default {
//
handleClickContractFile() {
console.log('查看附件')
if (this.monthlyData.contractFile.length > 0) {
this.dialogConfig.outerVisible = true
} else {
this.$modal.msgError('暂无附件')
}
},
//
handleCloseDialogOuter() {
this.dialogConfig.outerVisible = false
},
//
onHandleDeleteFile(row) {
console.log('删除附件', row)
this.$confirm('是否确定删除附件?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(async () => {
const res = await deleteFileAPI(row.id)
if (res.code == 200) {
this.$modal.msgSuccess('删除成功')
this.getMonthlyData()
}
})
.catch(() => {
// console.log('')
})
},
//
onHandleDownloadFile(row) {
window.open(row.lsUrl, '_blank')
},
},
}
</script>

View File

@ -11,29 +11,29 @@
>
<el-form-item prop="subName">
<el-input
placeholder="请输入分包"
clearable
placeholder="请输入分包"
v-model.trim="nameListQueryParams.subName"
/>
</el-form-item>
<el-form-item prop="teamName">
<el-input
clearable
v-model.trim="nameListQueryParams.teamName"
placeholder="请输入班组"
v-model.trim="nameListQueryParams.teamName"
/>
</el-form-item>
<el-form-item prop="userName">
<el-input
clearable
v-model.trim="nameListQueryParams.userName"
placeholder="请输入姓名"
v-model.trim="nameListQueryParams.userName"
/>
</el-form-item>
<el-form-item prop="onDuty">
<el-select
clearable
placeholder="请输入在岗情况"
placeholder="请选择在岗情况"
v-model="nameListQueryParams.onDuty"
>
<el-option label="在岗" value="1" />
@ -128,7 +128,7 @@ export default {
},
data() {
return {
total: 100,
total: 0,
nameListQueryParams: {
monthId: this.id,
onDuty: '',

View File

@ -11,20 +11,23 @@
>
<el-form-item prop="bankCode">
<el-input
v-model="wageInfoQueryParams.bankCode"
clearable
placeholder="请输入银行卡号"
v-model.trim="wageInfoQueryParams.bankCode"
/>
</el-form-item>
<el-form-item prop="teamName">
<el-input
v-model="wageInfoQueryParams.teamName"
clearable
placeholder="请输入班组"
v-model.trim="wageInfoQueryParams.teamName"
/>
</el-form-item>
<el-form-item prop="userName">
<el-input
v-model="wageInfoQueryParams.userName"
clearable
placeholder="请输入姓名"
v-model.trim="wageInfoQueryParams.userName"
/>
</el-form-item>
<el-form-item>
@ -61,8 +64,8 @@
stripe
style="width: 100%"
:data="wageInfoListData"
:header-cell-style="tableHeaderStyle"
:cell-style="tableCellStyle"
:header-cell-style="tableHeaderStyle"
>
<el-table-column
align="center"

View File

@ -11,14 +11,16 @@
>
<el-form-item prop="bankCode">
<el-input
v-model="wagePayQueryParams.bankCode"
clearable
placeholder="请输入银行卡号"
v-model.trim="wagePayQueryParams.bankCode"
/>
</el-form-item>
<el-form-item prop="teamName">
<el-input
v-model="wagePayQueryParams.teamName"
clearable
placeholder="请输入班组"
v-model.trim="wagePayQueryParams.teamName"
/>
</el-form-item>
<el-form-item prop="userName">
@ -86,9 +88,19 @@
<el-input
clearable
style="width: 100px"
v-model="scope.row[item.prop]"
v-model.trim="scope.row[item.prop]"
:ref="`${scope.$index}-${item.prop}Ref`"
@change="
onIptChange(
$event,
item.prop,
scope.$index,
item.label,
)
"
v-if="
(item.prop === 'dk' || item.prop === 'sf') &&
(item.prop === 'deductMoney' ||
item.prop === 'actualMoney') &&
isEdit
"
/>
@ -111,7 +123,10 @@
</template>
<script>
import { exportThreeAndOneMonthlyWagePaymentListAPI } from '@/api/synthesize-query/three-and-one'
import {
exportThreeAndOneMonthlyWagePaymentListAPI,
saveThreeAndOneMonthlyWagePaymentAPI,
} from '@/api/synthesize-query/three-and-one'
export default {
name: 'WagePay',
props: {
@ -134,65 +149,65 @@ export default {
columnData: [
{
label: '姓名',
prop: 'entryTime',
prop: 'userName',
},
{
label: '身份证号',
prop: 'exitTime',
prop: 'idCard',
},
{
label: '所在班组',
prop: 'subcontractorName',
prop: 'teamName',
},
{
label: '岗位',
prop: 'totalEntryCount',
prop: 'workName',
},
{
label: '出勤天数',
prop: 'totalEntryCount',
prop: 'attendanceNum',
},
{
label: '应发工资',
prop: 'totalEntryCount',
prop: 'payMoney',
},
{
label: '其中代扣/代缴',
prop: 'dk',
prop: 'deductMoney',
width: 140,
},
{
label: '实发工资',
prop: 'sf',
prop: 'actualMoney',
width: 140,
},
{
label: '开户银行',
prop: 'totalEntryCount',
prop: 'bankName',
},
{
label: '收款银行联行号',
prop: 'totalEntryCount',
prop: 'bankNum',
},
{
label: '是否与劳动合同约定一致',
prop: 'totalEntryCount',
prop: 'isAccord',
},
{
label: '本人签字',
prop: 'totalEntryCount',
prop: 'signature',
},
{
label: '备注',
prop: 'totalEntryCount',
prop: 'remark',
},
{
label: '转账日期',
prop: 'totalEntryCount',
prop: 'date',
},
{
label: '银行凭证号',
prop: 'totalEntryCount',
prop: 'bankNumber',
},
],
}
@ -253,8 +268,70 @@ export default {
},
// -/
onHandleEditWagePay() {
async onHandleEditWagePay() {
this.isEdit = !this.isEdit
if (!this.isEdit) {
const editData = this.wagePayListData.map((item) => {
return {
id: item.id,
deductMoney: item.deductMoney,
actualMoney: item.actualMoney,
}
})
// console.log(editData)
const res = await saveThreeAndOneMonthlyWagePaymentAPI(
JSON.stringify(editData),
)
console.log(res)
if (res.code === 200) {
this.$modal.msgSuccess('修改成功')
this.getThreeAndOneMonthlyWagePaymentList()
}
}
},
onIptChange(value, prop, index, label) {
// 0
const reg = /^[0-9]\d*(\.\d{1,2})?$/
const inputRef = `${index}-${prop}Ref`
const inputElement = this.$refs[inputRef]
if (!reg.test(value)) {
// this.$message.error('')
this.$modal.msgError(`${index + 1}${label}金额输入错误`)
//
if (inputElement && inputElement.length > 0) {
//
inputElement[0].focus()
//
const input = inputElement[0].$el.querySelector('input')
if (input) {
input.style.borderColor = '#f56c6c'
input.style.boxShadow =
'0 0 0 2px rgba(245, 108, 108, 0.2)'
// 2
// setTimeout(() => {
// input.style.borderColor = ''
// input.style.boxShadow = ''
// }, 2000)
}
}
return
} else {
if (inputElement && inputElement.length > 0) {
//
const input = inputElement[0].$el.querySelector('input')
if (input) {
input.style.borderColor = ''
input.style.boxShadow = ''
}
}
}
},
},
}