考勤机页面完善
This commit is contained in:
parent
70c4287051
commit
3e39d0b85f
|
|
@ -49,3 +49,10 @@ export const getTeamSelectListAPI = () => {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 获取工种下拉列表
|
||||||
|
export const getPostTypeSelectListAPI = () => {
|
||||||
|
return request({
|
||||||
|
url: '/bmw/postType/listAll',
|
||||||
|
method: 'GET',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
import request from '@/utils/request'
|
||||||
|
import requestFormData from '@/utils/request_formdata'
|
||||||
|
|
||||||
|
// 新增考勤机
|
||||||
|
export const addAttendanceMachineAPI = (data) => {
|
||||||
|
return request({
|
||||||
|
url: '/bmw/pmAttDevice/addPmAttDevice',
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 修改考勤机
|
||||||
|
export const editAttendanceMachineAPI = (data) => {
|
||||||
|
return request({
|
||||||
|
url: '/bmw/pmAttDevice/updatePmAttDevice',
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除考勤机
|
||||||
|
export const deleteAttendanceMachineAPI = (data) => {
|
||||||
|
return request({
|
||||||
|
url: '/bmw/pmAttDevice/delPmAttDevice',
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取考勤机列表
|
||||||
|
export const getAttendanceMachineListAPI = (data) => {
|
||||||
|
return request({
|
||||||
|
url: '/bmw/pmAttDevice/list',
|
||||||
|
method: 'GET',
|
||||||
|
params: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -10,6 +10,32 @@ export const addEntryPersonAPI = (data) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 人员出场 批量出场
|
||||||
|
export const batchExitPersonAPI = (data) => {
|
||||||
|
return requestFormData({
|
||||||
|
url: '/bmw/workerExit/exit/batchExit',
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取人员出入场记录记录
|
||||||
|
export const getPersonEntryAndExitRecordAPI = (data) => {
|
||||||
|
return requestFormData({
|
||||||
|
url: '/bmw/workerExit/workerList',
|
||||||
|
method: 'GET',
|
||||||
|
params: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 已出场且未上传工资单 然后单独上传接口
|
||||||
|
export const uploadExitFileAPI = (data) => {
|
||||||
|
return requestFormData({
|
||||||
|
url: '/bmw/workerExit/exitFile',
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 人员出场 删除人员接口
|
// 人员出场 删除人员接口
|
||||||
export const deleteEntryPersonAPI = (data) => {
|
export const deleteEntryPersonAPI = (data) => {
|
||||||
return request({
|
return request({
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,8 @@ const common = {
|
||||||
subSelectList: [],
|
subSelectList: [],
|
||||||
// 班组下拉列表
|
// 班组下拉列表
|
||||||
teamSelectList: [],
|
teamSelectList: [],
|
||||||
|
// 工种下拉列表
|
||||||
|
postTypeSelectList: [],
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
SET_COMPANY_SELECT_LIST(state, companySelectList) {
|
SET_COMPANY_SELECT_LIST(state, companySelectList) {
|
||||||
|
|
@ -32,6 +34,9 @@ const common = {
|
||||||
SET_TEAM_SELECT_LIST(state, teamSelectList) {
|
SET_TEAM_SELECT_LIST(state, teamSelectList) {
|
||||||
state.teamSelectList = teamSelectList
|
state.teamSelectList = teamSelectList
|
||||||
},
|
},
|
||||||
|
SET_POST_TYPE_SELECT_LIST(state, postTypeSelectList) {
|
||||||
|
state.postTypeSelectList = postTypeSelectList
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import {
|
||||||
getLotProjectSelectListAPI,
|
getLotProjectSelectListAPI,
|
||||||
getSubSelectListAPI,
|
getSubSelectListAPI,
|
||||||
getTeamSelectListAPI,
|
getTeamSelectListAPI,
|
||||||
|
getPostTypeSelectListAPI,
|
||||||
} from '@/api/common'
|
} from '@/api/common'
|
||||||
|
|
||||||
// 获取公司下拉列表
|
// 获取公司下拉列表
|
||||||
|
|
@ -90,3 +91,16 @@ export async function getTeamSelectListCommonFun() {
|
||||||
}
|
}
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
// 获取工种下拉列表
|
||||||
|
export async function getPostTypeSelectListCommonFun() {
|
||||||
|
const { postTypeSelectList } = store.state.common
|
||||||
|
if (postTypeSelectList.length > 0) {
|
||||||
|
return postTypeSelectList
|
||||||
|
}
|
||||||
|
const res = await getPostTypeSelectListAPI()
|
||||||
|
if (res.code === 200) {
|
||||||
|
store.commit('SET_POST_TYPE_SELECT_LIST', res.rows)
|
||||||
|
return res.rows
|
||||||
|
}
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
<template>
|
||||||
|
<!-- 新增或修改标段工程表单 -->
|
||||||
|
<div>
|
||||||
|
<el-form
|
||||||
|
label-width="140px"
|
||||||
|
ref="addOrEditFormRef"
|
||||||
|
:model="addOrEditForm"
|
||||||
|
:rules="addOrEditFormRules"
|
||||||
|
>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="考勤机编码" prop="deviceCode">
|
||||||
|
<el-input
|
||||||
|
clearable
|
||||||
|
maxlength="30"
|
||||||
|
show-word-limit
|
||||||
|
placeholder="请输入考勤机编码"
|
||||||
|
v-model="addOrEditForm.deviceCode"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="考勤机名称" prop="deviceName">
|
||||||
|
<el-input
|
||||||
|
clearable
|
||||||
|
maxlength="30"
|
||||||
|
show-word-limit
|
||||||
|
placeholder="请输入考勤机名称"
|
||||||
|
v-model="addOrEditForm.deviceName"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="工程名称" prop="proId">
|
||||||
|
<el-select
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
style="width: 100%"
|
||||||
|
placeholder="请选择"
|
||||||
|
v-model="addOrEditForm.proId"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
v-for="item in lotProjectList"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import UploadImgFormData from '@/components/UploadImgFormData'
|
||||||
|
import {
|
||||||
|
addAttendanceMachineAPI,
|
||||||
|
editAttendanceMachineAPI,
|
||||||
|
} from '@/api/construction-person/attendance-manage/attendance-machine'
|
||||||
|
|
||||||
|
import { getLotProjectSelectListCommonFun } from '@/utils/getCommonData'
|
||||||
|
export default {
|
||||||
|
name: 'AddOrEditForm',
|
||||||
|
components: {
|
||||||
|
UploadImgFormData,
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
// 修改时回显的数据
|
||||||
|
editFormData: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
addOrEditForm: {
|
||||||
|
proId: '',
|
||||||
|
isUpdate: false,
|
||||||
|
deviceCode: '',
|
||||||
|
deviceName: '',
|
||||||
|
},
|
||||||
|
addOrEditFormRules: {
|
||||||
|
deviceCode: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
trigger: 'blur',
|
||||||
|
message: '请输入考勤机编码',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
deviceName: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
trigger: 'blur',
|
||||||
|
message: '请输入考勤机名称',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
proId: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
trigger: 'blur',
|
||||||
|
message: '请选择工程',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
lotProjectList: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 确定按钮
|
||||||
|
onHandleConfirmAddOrEditFun() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
this.$refs.addOrEditFormRef.validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
// 组装参数
|
||||||
|
const { isUpdate, proId, deviceCode, deviceName } =
|
||||||
|
this.addOrEditForm
|
||||||
|
|
||||||
|
const params = {
|
||||||
|
proId,
|
||||||
|
deviceCode,
|
||||||
|
deviceName,
|
||||||
|
}
|
||||||
|
|
||||||
|
const API = isUpdate
|
||||||
|
? editAttendanceMachineAPI
|
||||||
|
: addAttendanceMachineAPI
|
||||||
|
|
||||||
|
const res = await API(params)
|
||||||
|
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$modal.msgSuccess(
|
||||||
|
this.formType === 1 ? '新增成功' : '修改成功',
|
||||||
|
)
|
||||||
|
resolve()
|
||||||
|
} else {
|
||||||
|
this.$modal.msgError(res.meg)
|
||||||
|
reject(new Error(res.meg))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
reject(new Error('表单验证失败'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 重置表单
|
||||||
|
resetForm() {
|
||||||
|
this.$refs.addOrEditFormRef.resetFields()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
async created() {
|
||||||
|
const lotPro = await getLotProjectSelectListCommonFun()
|
||||||
|
this.lotProjectList = lotPro.map((item) => {
|
||||||
|
return {
|
||||||
|
value: item.id,
|
||||||
|
label: item.proName,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
watch: {
|
||||||
|
editFormData: {
|
||||||
|
handler(newVal) {
|
||||||
|
if (Object.keys(newVal).length > 0) {
|
||||||
|
Object.assign(this.addOrEditForm, newVal)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
export const formLabel = [
|
||||||
|
{
|
||||||
|
isShow: false, // 是否展示label
|
||||||
|
f_type: 'ipt',
|
||||||
|
f_label: '考勤机编号',
|
||||||
|
f_model: 'deviceCode',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
isShow: false, // 是否展示label
|
||||||
|
f_type: 'ipt',
|
||||||
|
f_label: '考勤机名称',
|
||||||
|
f_model: 'deviceName',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
isShow: false, // 是否展示label
|
||||||
|
f_type: 'ipt',
|
||||||
|
f_label: '所属工程',
|
||||||
|
f_model: 'proName',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
isShow: false, // 是否展示label
|
||||||
|
f_type: 'sel',
|
||||||
|
f_label: '考勤机状态',
|
||||||
|
f_model: 'onLine',
|
||||||
|
f_selList: [
|
||||||
|
{
|
||||||
|
label: '在线',
|
||||||
|
value: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '离线',
|
||||||
|
value: 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
export const columnsList = [
|
||||||
|
{ t_props: 'deviceCode', t_label: '考勤机编号' },
|
||||||
|
{ t_props: 'deviceName', t_label: '考勤机名称' },
|
||||||
|
{ t_props: 'proName', t_label: '工程名称' },
|
||||||
|
{ t_slot: 'isShanghai', t_label: '工程类型' },
|
||||||
|
{
|
||||||
|
t_label: '状态',
|
||||||
|
t_slot: 'onLine',
|
||||||
|
},
|
||||||
|
{ t_label: '绑定人', t_props: 'updateUser' },
|
||||||
|
{
|
||||||
|
t_label: '绑定时间',
|
||||||
|
t_props: 'updateTime',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
export const dialogConfig = {
|
||||||
|
outerTitle: '',
|
||||||
|
minHeight: '',
|
||||||
|
maxHeight: '',
|
||||||
|
outerWidth: '40%',
|
||||||
|
outerVisible: false,
|
||||||
|
}
|
||||||
|
|
@ -1,11 +1,264 @@
|
||||||
<template>
|
<template>
|
||||||
|
<!-- 施工人员 ---- 考勤管理 ---- 考勤机 -->
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<h1>考勤机</h1>
|
<TableModel
|
||||||
|
:formLabel="formLabel"
|
||||||
|
:showOperation="true"
|
||||||
|
:showRightTools="true"
|
||||||
|
ref="attendanceMachineTableRef"
|
||||||
|
:columnsList="columnsList"
|
||||||
|
:request-api="getAttendanceMachineListAPI"
|
||||||
|
>
|
||||||
|
<template slot="btn" slot-scope="{ queryParams }">
|
||||||
|
<el-button
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
type="success"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="onHandleExportAttendanceMachine(queryParams)"
|
||||||
|
>
|
||||||
|
导出
|
||||||
|
</el-button>
|
||||||
|
|
||||||
|
<el-button
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-plus"
|
||||||
|
v-hasPermi="['attendance:machine:add']"
|
||||||
|
@click="onHandleAddOrBindAttendanceMachine(1, null)"
|
||||||
|
>
|
||||||
|
新增
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 工程类型-->
|
||||||
|
<template slot="isShanghai" slot-scope="{ data }">
|
||||||
|
<span
|
||||||
|
:style="{
|
||||||
|
color: data.isShanghai == 1 ? '#67C23A' : '#F56C6C',
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
{{ data.isShanghai == 1 ? '上海内' : '上海外' }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
<template slot="onLine" slot-scope="{ data }">
|
||||||
|
<el-tag
|
||||||
|
size="mini"
|
||||||
|
:type="data.onLine == 1 ? 'success' : 'danger'"
|
||||||
|
>
|
||||||
|
{{ data.onLine == 1 ? '在线' : '离线' }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template slot="handle" slot-scope="{ data }">
|
||||||
|
<el-button
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
v-if="data.onLine != 1"
|
||||||
|
v-hasPermi="['attendance:machine:bind']"
|
||||||
|
@click="onHandleAddOrBindAttendanceMachine(2, data)"
|
||||||
|
>
|
||||||
|
绑定
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
v-hasPermi="['attendance:machine:unbind']"
|
||||||
|
@click="onHandleUnBindAttendanceMachine(data)"
|
||||||
|
>
|
||||||
|
解绑
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="danger"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
v-hasPermi="['attendance:machine:delete']"
|
||||||
|
@click="onHandleDeleteSubBaseInfo(data)"
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</TableModel>
|
||||||
|
|
||||||
|
<DialogModel
|
||||||
|
:dialogConfig="dialogConfig"
|
||||||
|
@closeDialogOuter="handleCloseDialogOuter"
|
||||||
|
>
|
||||||
|
<template slot="outerContent">
|
||||||
|
<AddAndBindForm
|
||||||
|
:editFormData="editFormData"
|
||||||
|
ref="addOrEditSubBaseInfoRef"
|
||||||
|
/>
|
||||||
|
<el-row class="dialog-footer-btn">
|
||||||
|
<el-button size="medium" @click="handleCloseDialogOuter">
|
||||||
|
取消
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
size="medium"
|
||||||
|
type="primary"
|
||||||
|
@click="onHandleConfirmAddOrEdit"
|
||||||
|
>
|
||||||
|
确定
|
||||||
|
</el-button>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
</DialogModel>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {}
|
import TableModel from '@/components/TableModel'
|
||||||
</script>
|
import DialogModel from '@/components/DialogModel'
|
||||||
|
import AddAndBindForm from './add-and-bind.form.vue'
|
||||||
|
import { formLabel, columnsList, dialogConfig } from './config'
|
||||||
|
import {
|
||||||
|
deleteAttendanceMachineAPI,
|
||||||
|
getAttendanceMachineListAPI,
|
||||||
|
editAttendanceMachineAPI,
|
||||||
|
} from '@/api/construction-person/attendance-manage/attendance-machine'
|
||||||
|
export default {
|
||||||
|
name: 'SubBaseInfo',
|
||||||
|
components: {
|
||||||
|
TableModel,
|
||||||
|
DialogModel,
|
||||||
|
AddAndBindForm,
|
||||||
|
},
|
||||||
|
|
||||||
<style></style>
|
data() {
|
||||||
|
return {
|
||||||
|
formLabel,
|
||||||
|
columnsList,
|
||||||
|
dialogConfig,
|
||||||
|
editFormData: {}, // 修改时回显的数据
|
||||||
|
getAttendanceMachineListAPI, // 获取分包商列表的API
|
||||||
|
|
||||||
|
// 营业执照身份证等信息是否上传的插槽
|
||||||
|
slots: [
|
||||||
|
{
|
||||||
|
type: 1,
|
||||||
|
name: 'businessLicense',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 2,
|
||||||
|
name: 'idCard',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 3,
|
||||||
|
name: 'electronicSeal',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 4,
|
||||||
|
name: 'corporateSeal',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 导出按钮
|
||||||
|
onHandleExportAttendanceMachine(queryParams) {
|
||||||
|
this.download(
|
||||||
|
'/bmw/pmAttDevice/export',
|
||||||
|
{
|
||||||
|
...queryParams,
|
||||||
|
},
|
||||||
|
`考勤机列表.xlsx`,
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增或修改
|
||||||
|
onHandleAddOrBindAttendanceMachine(type, data) {
|
||||||
|
this.dialogConfig.outerTitle =
|
||||||
|
type === 1 ? '新增考勤机' : '绑定考勤机'
|
||||||
|
|
||||||
|
if (type === 2) {
|
||||||
|
const { proId, deviceCode, deviceName } = data
|
||||||
|
|
||||||
|
this.editFormData = {
|
||||||
|
isUpdate: true,
|
||||||
|
proId,
|
||||||
|
deviceCode,
|
||||||
|
deviceName,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.editFormData = {}
|
||||||
|
}
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 解绑
|
||||||
|
onHandleUnBindAttendanceMachine(data) {
|
||||||
|
this.$confirm('是否确定解绑该考勤机?', '温馨提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
})
|
||||||
|
.then(async () => {
|
||||||
|
const res = await editAttendanceMachineAPI({
|
||||||
|
deviceCode: data.deviceCode,
|
||||||
|
})
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$modal.msgSuccess('解绑成功')
|
||||||
|
this.$refs.attendanceMachineTableRef.getTableList() // 更新列表
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
// console.log('取消')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
onHandleDeleteSubBaseInfo(data) {
|
||||||
|
this.$confirm('确定删除该考勤机吗?', '温馨提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
})
|
||||||
|
.then(async () => {
|
||||||
|
const res = await deleteAttendanceMachineAPI({
|
||||||
|
deviceCode: data.deviceCode,
|
||||||
|
})
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$modal.msgSuccess('删除成功')
|
||||||
|
this.$refs.attendanceMachineTableRef.getTableList() // 更新列表
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
// console.log('取消')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 确定按钮
|
||||||
|
async onHandleConfirmAddOrEdit() {
|
||||||
|
try {
|
||||||
|
await this.$refs.addOrEditSubBaseInfoRef.onHandleConfirmAddOrEditFun()
|
||||||
|
this.handleCloseDialogOuter()
|
||||||
|
this.$refs.attendanceMachineTableRef.getTableList()
|
||||||
|
} catch (error) {
|
||||||
|
// console.log('表单提交失败', error)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 关闭弹框
|
||||||
|
handleCloseDialogOuter() {
|
||||||
|
this.$refs.addOrEditSubBaseInfoRef.resetForm()
|
||||||
|
this.dialogConfig.outerVisible = false
|
||||||
|
},
|
||||||
|
|
||||||
|
// 初始化是否上传
|
||||||
|
initIsUpload(data, type) {
|
||||||
|
if (data.contractFile.length > 0) {
|
||||||
|
const isUpload = data.contractFile.some(
|
||||||
|
(item) => item.sourceType == type,
|
||||||
|
)
|
||||||
|
return isUpload ? '已上传' : '未上传'
|
||||||
|
}
|
||||||
|
return '未上传'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -187,8 +187,8 @@ export default {
|
||||||
async onHandleConfirmAddOrEdit() {
|
async onHandleConfirmAddOrEdit() {
|
||||||
try {
|
try {
|
||||||
await this.$refs.addOrEditFormContentRef.onHandleConfirmAddOrEditFun()
|
await this.$refs.addOrEditFormContentRef.onHandleConfirmAddOrEditFun()
|
||||||
// this.$refs.personEntryTableRef.getTableList()
|
this.$refs.personEntryTableRef.getTableList()
|
||||||
// this.handleCloseDialogOuter()
|
this.handleCloseDialogOuter()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log('表单提交失败', error)
|
console.log('表单提交失败', error)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,57 +1,81 @@
|
||||||
export const formLabel = [
|
export const formLabel = [
|
||||||
{
|
{
|
||||||
f_label: '关键词',
|
f_label: '姓名',
|
||||||
f_model: 'keyword',
|
f_model: 'name',
|
||||||
f_type: 'ipt',
|
f_type: 'ipt',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '身份证',
|
f_label: '身份证',
|
||||||
f_model: 'keyword',
|
f_model: 'idNumber',
|
||||||
f_type: 'ipt',
|
f_type: 'ipt',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '联系方式',
|
f_label: '联系方式',
|
||||||
f_model: 'keyword',
|
f_model: 'phone',
|
||||||
f_type: 'ipt',
|
f_type: 'ipt',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '选择工程',
|
f_label: '选择工程',
|
||||||
f_model: 'keyword',
|
f_model: 'proId',
|
||||||
f_type: 'ipt',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '选择工种',
|
f_label: '选择工种',
|
||||||
f_model: 'keyword',
|
f_model: 'postId',
|
||||||
f_type: 'ipt',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '选择分包',
|
f_label: '选择分包',
|
||||||
f_model: 'keyword',
|
f_model: 'subId',
|
||||||
f_type: 'ipt',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '选择班组',
|
f_label: '选择班组',
|
||||||
f_model: 'keyword',
|
f_model: 'teamId',
|
||||||
f_type: 'ipt',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '出入场状态',
|
f_label: '出入场状态',
|
||||||
f_model: 'keyword',
|
f_model: 'einStatus',
|
||||||
f_type: 'ipt',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [
|
||||||
|
{
|
||||||
|
label: '在场',
|
||||||
|
value: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '出场',
|
||||||
|
value: 2,
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '结算单状态',
|
f_label: '结算单状态',
|
||||||
f_model: 'keyword',
|
f_model: 'isUploadFile',
|
||||||
f_type: 'ipt',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [
|
||||||
|
{
|
||||||
|
label: '未上传',
|
||||||
|
value: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '已上传',
|
||||||
|
value: 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -70,8 +94,9 @@ export const columnsList = [
|
||||||
t_label: '出场时间',
|
t_label: '出场时间',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
t_props: 'electronicSignature',
|
t_slot: 'isUploadFile',
|
||||||
t_label: '离场人员工资结算确认单',
|
t_label: '离场人员工资结算确认单',
|
||||||
|
t_width: '200px',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
t_props: 'subName',
|
t_props: 'subName',
|
||||||
|
|
|
||||||
|
|
@ -2,26 +2,118 @@
|
||||||
<!-- 出入场记录 -->
|
<!-- 出入场记录 -->
|
||||||
<div>
|
<div>
|
||||||
<el-table :data="entryExitRecordList">
|
<el-table :data="entryExitRecordList">
|
||||||
<el-table-column label="序号" type="index" width="50" />
|
<el-table-column
|
||||||
<el-table-column prop="name" label="姓名" />
|
align="center"
|
||||||
<el-table-column prop="idNumber" label="工种" />
|
label="序号"
|
||||||
<el-table-column prop="proName" label="所属工程" />
|
type="index"
|
||||||
<el-table-column prop="teamName" label="所属分包" />
|
width="50"
|
||||||
<el-table-column prop="einStatus" label="所属班组" />
|
show-overflow-tooltip
|
||||||
<el-table-column prop="einStatus" label="入场时间" />
|
/>
|
||||||
<el-table-column prop="einStatus" label="出场时间" />
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="name"
|
||||||
|
label="姓名"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="postName"
|
||||||
|
label="工种"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="proName"
|
||||||
|
label="所属工程"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="subName"
|
||||||
|
label="所属分包"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="teamName"
|
||||||
|
label="所属班组"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="einTime"
|
||||||
|
label="入场时间"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="endTime"
|
||||||
|
label="出场时间"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
show-overflow-tooltip
|
||||||
|
label="离场人员工资结算确认单"
|
||||||
|
>
|
||||||
|
<template slot-scope="{ row }">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
@click="onHandlePreviewFile(row)"
|
||||||
|
>
|
||||||
|
3
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { getPersonEntryAndExitRecordAPI } from '@/api/construction-person/entry-and-exit-manage/person-exit'
|
||||||
export default {
|
export default {
|
||||||
name: 'EntryExitRecord',
|
name: 'EntryExitRecord',
|
||||||
|
props: {
|
||||||
|
queryDetailsId: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
entryExitRecordList: [],
|
entryExitRecordList: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
// 获取出入场记录列表
|
||||||
|
async getPersonEntryAndExitRecordList() {
|
||||||
|
const res = await getPersonEntryAndExitRecordAPI({
|
||||||
|
id: this.queryDetailsId,
|
||||||
|
})
|
||||||
|
this.entryExitRecordList = res.rows
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查看附件
|
||||||
|
|
||||||
|
onHandlePreviewFile(row) {
|
||||||
|
console.log(row, '查看附件')
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
watch: {
|
||||||
|
queryDetailsId: {
|
||||||
|
handler(newVal) {
|
||||||
|
if (newVal) {
|
||||||
|
this.getPersonEntryAndExitRecordList()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
:isSelectShow="true"
|
:isSelectShow="true"
|
||||||
ref="personExitTableRef"
|
ref="personExitTableRef"
|
||||||
:columnsList="columnsList"
|
:columnsList="columnsList"
|
||||||
|
:selectable="(row) => row.einStatus === 1"
|
||||||
:request-api="getExitPersonListAPI"
|
:request-api="getExitPersonListAPI"
|
||||||
>
|
>
|
||||||
<template slot="btn" slot-scope="{ queryParams }">
|
<template slot="btn" slot-scope="{ queryParams }">
|
||||||
|
|
@ -43,6 +44,36 @@
|
||||||
出场
|
出场
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
|
<template slot="isUploadFile" slot-scope="{ data }">
|
||||||
|
<el-tag size="mini" type="danger" v-if="data.isUploadFile == 0">
|
||||||
|
未上传
|
||||||
|
{{
|
||||||
|
data.daysSinceExit * 1 > 0
|
||||||
|
? '(' + data.daysSinceExit + '天)'
|
||||||
|
: ''
|
||||||
|
}}
|
||||||
|
</el-tag>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
style="margin-left: 5px"
|
||||||
|
@click="onHandlePersonExit(data, 2)"
|
||||||
|
v-if="
|
||||||
|
data.isUploadFile == 0 &&
|
||||||
|
data.einStatus === 2 &&
|
||||||
|
data.daysSinceExit * 1 < 31
|
||||||
|
"
|
||||||
|
>
|
||||||
|
点击上传
|
||||||
|
</el-button>
|
||||||
|
<el-tag
|
||||||
|
size="mini"
|
||||||
|
type="success"
|
||||||
|
v-if="data.isUploadFile == 1"
|
||||||
|
>
|
||||||
|
已上传
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template slot="handle" slot-scope="{ data }">
|
<template slot="handle" slot-scope="{ data }">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -51,7 +82,7 @@
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-right"
|
icon="el-icon-right"
|
||||||
v-if="data.einStatus === 1"
|
v-if="data.einStatus === 1"
|
||||||
@click="onHandlePersonExit(data)"
|
@click="onHandlePersonExit(data, 1)"
|
||||||
>
|
>
|
||||||
出场
|
出场
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -75,14 +106,19 @@
|
||||||
<PersonExitForm
|
<PersonExitForm
|
||||||
ref="personExitFormRef"
|
ref="personExitFormRef"
|
||||||
:exitFormData="exitFormData"
|
:exitFormData="exitFormData"
|
||||||
|
:isExitUpload="isExitUpload"
|
||||||
v-if="dialogConfig.outerTitle === '人员出场'"
|
v-if="dialogConfig.outerTitle === '人员出场'"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<EntryExitRecord
|
<EntryExitRecord
|
||||||
|
:queryDetailsId="queryDetailsId"
|
||||||
v-if="dialogConfig.outerTitle === '出入场记录'"
|
v-if="dialogConfig.outerTitle === '出入场记录'"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-row class="dialog-footer-btn">
|
<el-row
|
||||||
|
class="dialog-footer-btn"
|
||||||
|
v-if="dialogConfig.outerTitle === '人员出场'"
|
||||||
|
>
|
||||||
<el-button size="medium" @click="handleCloseDialogOuter">
|
<el-button size="medium" @click="handleCloseDialogOuter">
|
||||||
取消
|
取消
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -104,15 +140,21 @@ import TableModel from '@/components/TableModel'
|
||||||
import DialogModel from '@/components/DialogModel'
|
import DialogModel from '@/components/DialogModel'
|
||||||
import PersonExitForm from './person-exit-form.vue'
|
import PersonExitForm from './person-exit-form.vue'
|
||||||
import EntryExitRecord from './entry-exit-record.vue'
|
import EntryExitRecord from './entry-exit-record.vue'
|
||||||
import { formLabel, columnsList, dialogConfig } from './config'
|
|
||||||
import {
|
import {
|
||||||
deleteSubBaseInfoAPI,
|
getLotProjectSelectListCommonFun,
|
||||||
getSubBaseInfoListAPI,
|
getSubSelectListCommonFun,
|
||||||
} from '@/api/basic-manage/sub-manage/sub-base-info'
|
getTeamSelectListCommonFun,
|
||||||
|
getPostTypeSelectListCommonFun,
|
||||||
|
} from '@/utils/getCommonData'
|
||||||
|
import { formLabel, columnsList, dialogConfig } from './config'
|
||||||
|
|
||||||
import { getExitPersonListAPI } from '@/api/construction-person/entry-and-exit-manage/person-exit'
|
import {
|
||||||
|
getExitPersonListAPI,
|
||||||
|
batchExitPersonAPI,
|
||||||
|
} from '@/api/construction-person/entry-and-exit-manage/person-exit'
|
||||||
export default {
|
export default {
|
||||||
name: 'PersonExit',
|
name: 'PersonExit',
|
||||||
|
dicts: ['project_type'],
|
||||||
components: {
|
components: {
|
||||||
TableModel,
|
TableModel,
|
||||||
DialogModel,
|
DialogModel,
|
||||||
|
|
@ -126,6 +168,8 @@ export default {
|
||||||
columnsList,
|
columnsList,
|
||||||
dialogConfig,
|
dialogConfig,
|
||||||
exitFormData: {},
|
exitFormData: {},
|
||||||
|
queryDetailsId: '',
|
||||||
|
isExitUpload: 1, // 是否出场 后上传文件
|
||||||
getExitPersonListAPI,
|
getExitPersonListAPI,
|
||||||
|
|
||||||
slots: {
|
slots: {
|
||||||
|
|
@ -143,7 +187,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
// 批量出场
|
// 批量出场
|
||||||
onHandleBatchExit() {
|
async onHandleBatchExit() {
|
||||||
console.log(this.$refs.personExitTableRef.selectedData, '批量出场')
|
console.log(this.$refs.personExitTableRef.selectedData, '批量出场')
|
||||||
|
|
||||||
const selectedData = this.$refs.personExitTableRef.selectedData
|
const selectedData = this.$refs.personExitTableRef.selectedData
|
||||||
|
|
@ -152,9 +196,27 @@ export default {
|
||||||
this.$message.warning('请勾选要出场的人员')
|
this.$message.warning('请勾选要出场的人员')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const params = selectedData.map((item) => {
|
||||||
|
return {
|
||||||
|
id: item.id,
|
||||||
|
workerId: item.workerId,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const res = await batchExitPersonAPI(params)
|
||||||
|
|
||||||
|
console.log(res, '批量出场结果')
|
||||||
|
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$modal.msgSuccess('批量出场成功')
|
||||||
|
this.$refs.personExitTableRef.getTableList()
|
||||||
|
} else {
|
||||||
|
this.$modal.msgError(res.msg)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onHandlePersonExit(data) {
|
onHandlePersonExit(data, type) {
|
||||||
|
this.isExitUpload = type
|
||||||
const { name, idNumber, proName, subName, teamName, id, workerId } =
|
const { name, idNumber, proName, subName, teamName, id, workerId } =
|
||||||
data
|
data
|
||||||
|
|
||||||
|
|
@ -187,7 +249,7 @@ export default {
|
||||||
|
|
||||||
// 出入场记录
|
// 出入场记录
|
||||||
onHandleEntryAndExitRecord(data) {
|
onHandleEntryAndExitRecord(data) {
|
||||||
console.log('----')
|
this.queryDetailsId = data.id
|
||||||
this.dialogConfig.outerTitle = '出入场记录'
|
this.dialogConfig.outerTitle = '出入场记录'
|
||||||
this.dialogConfig.outerWidth = '80%'
|
this.dialogConfig.outerWidth = '80%'
|
||||||
this.dialogConfig.minHeight = '90vh'
|
this.dialogConfig.minHeight = '90vh'
|
||||||
|
|
@ -200,5 +262,37 @@ export default {
|
||||||
this.dialogConfig.outerVisible = false
|
this.dialogConfig.outerVisible = false
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async created() {
|
||||||
|
const lotProjectList = await getLotProjectSelectListCommonFun()
|
||||||
|
const subList = await getSubSelectListCommonFun()
|
||||||
|
const teamList = await getTeamSelectListCommonFun()
|
||||||
|
const postTypeList = await getPostTypeSelectListCommonFun()
|
||||||
|
|
||||||
|
this.formLabel[3].f_selList = lotProjectList.map((item) => {
|
||||||
|
return {
|
||||||
|
label: item.proName,
|
||||||
|
value: item.id,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.formLabel[4].f_selList = postTypeList.map((item) => {
|
||||||
|
return {
|
||||||
|
label: item.postName,
|
||||||
|
value: item.postId,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.formLabel[5].f_selList = subList.map((item) => {
|
||||||
|
return {
|
||||||
|
value: item.id,
|
||||||
|
label: item.subName,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.formLabel[6].f_selList = teamList.map((item) => {
|
||||||
|
return {
|
||||||
|
value: item.id,
|
||||||
|
label: item.teamName,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,10 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import UploadFileFormData from '@/components/UploadFileFormData'
|
import UploadFileFormData from '@/components/UploadFileFormData'
|
||||||
import { addEntryPersonAPI } from '@/api/construction-person/entry-and-exit-manage/person-exit'
|
import {
|
||||||
|
addEntryPersonAPI,
|
||||||
|
uploadExitFileAPI,
|
||||||
|
} from '@/api/construction-person/entry-and-exit-manage/person-exit'
|
||||||
export default {
|
export default {
|
||||||
name: 'personExitForm',
|
name: 'personExitForm',
|
||||||
components: {
|
components: {
|
||||||
|
|
@ -92,6 +95,10 @@ export default {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => {},
|
default: () => {},
|
||||||
},
|
},
|
||||||
|
isExitUpload: {
|
||||||
|
type: Number,
|
||||||
|
default: 1,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -110,6 +117,7 @@ export default {
|
||||||
// 确定按钮
|
// 确定按钮
|
||||||
onHandleConfirmAddOrEditFun() {
|
onHandleConfirmAddOrEditFun() {
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
|
if (this.isExitUpload === 1) {
|
||||||
const { id, workerId, fileList } = this.personExitFormData
|
const { id, workerId, fileList } = this.personExitFormData
|
||||||
const params = {
|
const params = {
|
||||||
id,
|
id,
|
||||||
|
|
@ -140,6 +148,37 @@ export default {
|
||||||
this.$modal.msgError(res.msg)
|
this.$modal.msgError(res.msg)
|
||||||
reject(new Error(res.msg))
|
reject(new Error(res.msg))
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
const { id, fileList } = this.personExitFormData
|
||||||
|
const params = {
|
||||||
|
id,
|
||||||
|
}
|
||||||
|
|
||||||
|
const formData = new FormData()
|
||||||
|
const fileMsg = []
|
||||||
|
|
||||||
|
if (fileList.length > 0) {
|
||||||
|
fileList.forEach((e) => {
|
||||||
|
formData.append('files', e.raw)
|
||||||
|
fileMsg.push({
|
||||||
|
name: '工资结算确认单',
|
||||||
|
type: 1,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
formData.append('params', JSON.stringify(params))
|
||||||
|
formData.append('fileMsg', JSON.stringify(fileMsg))
|
||||||
|
const res = await uploadExitFileAPI(formData)
|
||||||
|
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$modal.msgSuccess('上传成功')
|
||||||
|
resolve()
|
||||||
|
} else {
|
||||||
|
this.$modal.msgError(res.msg)
|
||||||
|
reject(new Error(res.msg))
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue