三表一册接口调试完成
This commit is contained in:
parent
79607cc494
commit
87c90c3fbf
Binary file not shown.
|
Before Width: | Height: | Size: 4.1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 5.4 KiB |
|
|
@ -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,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,3 +90,12 @@ export const uploadProMonthTableRefundAPI = (data) => {
|
|||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 综合查询 三表一册 农名工工资支付表 保存操作
|
||||
export const saveThreeAndOneMonthlyWagePaymentAPI = (data) => {
|
||||
return request({
|
||||
url: '/bmw/pmProject/updateSalary',
|
||||
method: 'POST',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -246,6 +246,7 @@ export function tansParams(params, isEncrypt = false) {
|
|||
// result = result.slice(0, -1)
|
||||
result = encryptWithSM4(result)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
)
|
||||
},
|
||||
|
||||
// 获取三表一册每月数据
|
||||
|
|
|
|||
|
|
@ -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 </span>
|
||||
<span>缺勤:0 </span>
|
||||
<span>无对应日期:空白</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
|
|
|||
|
|
@ -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('查看附件')
|
||||
this.dialogConfig.outerVisible = true
|
||||
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>
|
||||
|
|
|
|||
|
|
@ -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: '',
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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 = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue