接口调试

This commit is contained in:
BianLzhaoMin 2025-10-13 16:36:07 +08:00
parent e93893a943
commit b4f112c235
5 changed files with 291 additions and 19 deletions

View File

@ -62,3 +62,12 @@ export const getProjectCountDetailAttMachineInfoAPI = (data) => {
params: data,
})
}
// 综合查询 获取工程统计详情中补卡信息
export const getProjectCountDetailRepairInfoAPI = (data) => {
return request({
url: '/bmw/proStatistics/getProRepairMsg',
method: 'GET',
params: data,
})
}

View File

@ -102,6 +102,13 @@
<div class="data-label">累计补卡申请次数()</div>
<div class="data-value">
{{ attendanceData.repairNumHis }}
<span
class="view-more"
@click="handleViewCardReplacement"
>
查看
</span>
</div>
</div>
<div class="data-item">
@ -162,6 +169,7 @@
<DialogModel
:dialogConfig="dialogConfig"
@closeDialogOuter="handleCloseDialogOuter"
@closeDialogInner="handleCloseDialogInner"
>
<template slot="outerContent">
<TableModel
@ -260,6 +268,67 @@
</template>
</TableModel>
<TableModel
:formLabel="formLabel_2"
:showOperation="true"
:columnsList="columnsList_2"
:sendParams="{
proId: proId * 1,
}"
:request-api="getProjectCountDetailRepairInfoAPI"
v-else-if="dialogConfig.outerTitle === '补卡申请详情'"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
plain
size="mini"
type="success"
icon="el-icon-download"
@click="
onHandleExportCardReplacementInfo(queryParams)
"
>
导出
</el-button>
</template>
<template slot="checkStatus" slot-scope="{ data }">
<el-tag
size="mini"
type="warning"
v-if="data.checkStatus == 0"
>
待审核
</el-tag>
<el-tag
size="mini"
type="success"
v-if="data.checkStatus == 1"
>
审核通过
</el-tag>
<el-tag
size="mini"
type="danger"
v-if="data.checkStatus == 2"
>
审核驳回
</el-tag>
</template>
<template slot="handle" slot-scope="{ data }">
<el-button
plain
size="mini"
type="primary"
icon="el-icon-view"
@click="onHandleViewCardReplacementDetail(data)"
>
详情
</el-button>
</template>
</TableModel>
<TableModel
:formLabel="formLabel_1"
:columnsList="columnsList_1"
@ -290,6 +359,112 @@
</template>
</TableModel>
</template>
<template slot="innerContent">
<div style="width: 100%">
<el-row>
<el-col :span="20">
<TitleTip
borderBottom="none"
padding="24px 10px"
titleText="补卡人员清单"
justifyContent="flex-start"
>
<template name="right">
<span class="tip-text">{{ proName }}</span>
</template>
</TitleTip>
</el-col>
</el-row>
<el-table :data="tableData">
<el-table-column
align="center"
label="姓名"
prop="name"
/>
<el-table-column
align="center"
label="身份证"
prop="idNumber"
/>
<el-table-column
align="center"
label="补卡天数"
prop="repairDay"
/>
<el-table-column
align="center"
width="300"
label="补卡日期"
prop="repairDate"
show-overflow-tooltip
/>
<el-table-column
align="center"
label="联系方式"
prop="phone"
/>
<el-table-column
align="center"
label="所属班组"
prop="teamName"
/>
</el-table>
<TitleTip
borderBottom="none"
padding="24px 10px"
titleText="补卡说明"
justifyContent="flex-start"
/>
<el-form
label-width="140px"
ref="addOrEditFormRef"
:model="detailsParams"
>
<el-row>
<el-col :span="12">
<el-form-item label="补卡说明">
<el-input
clearable
disabled
type="textarea"
placeholder="请输入考勤机编码"
v-model="detailsParams.repairRemark"
:autosize="{ minRows: 4, maxRows: 8 }"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="附件">
<div
:key="item.id"
class="files-content"
v-for="item in detailsParams.fileList"
>
<el-tag
@click="onHandlePreviewFile(item)"
style="cursor: pointer"
>
{{ item.originFileName }}
</el-tag>
<span
class="cursor-blue"
@click="onHandleDownloadFile(item)"
>
下载
</span>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
</DialogModel>
</div>
</template>
@ -300,8 +475,11 @@ import TableModel from '@/components/TableModel/index.vue'
import {
getProjectCountDetailEntryInfoAPI,
getProjectCountDetailAttendanceInfoAPI,
getProjectCountDetailRepairInfoAPI,
} from '@/api/synthesize-query/project-count'
import { getCardReplacementAuditDetailAPI } from '@/api/construction-person/attendance-manage/card-replacement-audit'
import {
getSubSelectListCommonFun,
getTeamSelectListCommonFun,
@ -318,6 +496,10 @@ export default {
type: [String, Number],
default: '',
},
proName: {
type: String,
default: '',
},
entryData: {
type: Object,
default: () => {},
@ -339,6 +521,16 @@ export default {
outerWidth: '90%',
minHeight: '90vh',
maxHeight: '90vh',
innerVisible: false,
innerTitle: '补卡详情',
innerWidth: '80%',
innerMinHeight: '70vh',
innerMaxHeight: '70vh',
},
tableData: [],
detailsParams: {
repairRemark: '',
fileList: [],
},
formLabel: [
@ -455,8 +647,29 @@ export default {
{ t_props: 'teamName', t_label: '所属班组' },
],
formLabel_2: [
{
isShow: false, // label
f_type: 'ipt',
f_label: '姓名',
f_model: 'applyUser',
},
],
columnsList_2: [
{ t_props: 'applyTime', t_label: '申请时间' },
{ t_props: 'repairNum', t_label: '补卡人数' },
{ t_props: 'repairDay', t_label: '补卡天数' },
{ t_props: 'repairRemark', t_label: '补卡说明' },
{ t_props: 'applyUser', t_label: '申请人' },
{ t_slot: 'checkStatus', t_label: '审核状态' },
{ t_props: 'checkUser', t_label: '审核人' },
{ t_props: 'checkTime', t_label: '审核时间' },
],
getProjectCountDetailEntryInfoAPI,
getProjectCountDetailAttendanceInfoAPI,
getProjectCountDetailRepairInfoAPI,
}
},
@ -502,8 +715,9 @@ export default {
* 处理查看补卡申请点击事件
*/
handleViewCardReplacement() {
this.$emit('view-card-replacement')
console.log('查看补卡申请')
this.dialogConfig.outerTitle = '补卡申请详情'
this.dialogConfig.outerVisible = true
},
//
@ -521,7 +735,7 @@ export default {
//
onHandleExportAttendanceInfo(queryParams) {
this.download(
'/bmw/workerLight/attExportByWorker',
'/bmw/proStatistics/exportProAttMsg',
// { ...queryParams },
{
// ...queryParams,
@ -547,6 +761,11 @@ export default {
this.dialogConfig.outerVisible = false
},
//
handleCloseDialogInner() {
this.dialogConfig.innerVisible = false
},
//
onHandleCheckUserName(workerId) {
this.dialogConfig.outerVisible = false
@ -560,6 +779,20 @@ export default {
})
},
//
async onHandleViewCardReplacementDetail(query) {
// this.dialogConfig.outerTitle = ''
// this.dialogConfig.outerVisible = true
const { data: res } = await getCardReplacementAuditDetailAPI({
id: query.id,
})
this.detailsParams.repairRemark = res.repairRemark
this.detailsParams.fileList = res.files
this.tableData = res.repairCardDetails
this.dialogConfig.innerVisible = true
},
/**
* 格式化货币显示
* @param {Number} value 金额
@ -569,6 +802,24 @@ export default {
if (!value) return '0'
return `¥${value.toLocaleString()}`
},
onHandlePreviewFile(item) {
window.open(item.url, '_blank')
},
onHandleDownloadFile(item) {
window.open(item.url, '_blank')
},
//
onHandleExportCardReplacementInfo(queryParams) {
this.download(
'/bmw/proStatistics/exportProRepairMsg',
{
proId: this.proId,
},
'补卡申请列表.xlsx',
)
},
},
}
</script>
@ -743,6 +994,17 @@ export default {
}
}
.view-more {
color: #3b82f6;
font-size: 14px;
cursor: pointer;
transition: color 0.3s ease;
&:hover {
color: #1d4ed8;
}
}
//
@media (max-width: 1200px) {
.person-info-container {

View File

@ -21,6 +21,7 @@
<SubTeamCard :proId="proId" />
<PersonInfoCard
:proId="proId"
:proName="proName"
:entryData="entryData"
:attendanceData="attendanceData"
:wageData="wageData"

View File

@ -508,20 +508,20 @@ export default {
//
onHandleExportEntryExitInfo(queryParams) {
// this.download(
// '/bmw/workerLight/attExportByWorker',
// { ...queryParams },
// '.xlsx',
// )
this.download(
'/bmw/subStatistics/exportSubInOutMsg',
{ subId: this.subId },
'人员出场信息列表.xlsx',
)
},
//
onHandleExportAttendanceInfo(queryParams) {
// this.download(
// '/bmw/workerLight/attExportByWorker',
// { ...queryParams },
// '.xlsx',
// )
this.download(
'/bmw/subStatistics/exportSubAttMsg',
{ subId: this.subId },
'人员考勤信息列表.xlsx',
)
},
//
handleViewEntryExitInfo() {

View File

@ -71,13 +71,13 @@ export default {
//
onHandleExport(queryParams) {
// this.download(
// '/bmw/subStatistics/exportSubStatisticsTable',
// {
// // ...queryParams,
// },
// '.xlsx',
// )
this.download(
'/bmw/subStatistics/exportProStatisticsTable',
{
// ...queryParams,
},
'分包统计.xlsx',
)
},
},
}