增加上海人员多工程设置页面
This commit is contained in:
parent
dd8090bb6d
commit
fc3d74c997
|
|
@ -71,7 +71,7 @@ export default {
|
|||
top: 50% !important;
|
||||
left: 50% !important;
|
||||
transform: translate(-50%, -50%) !important;
|
||||
height: var(--el-dialog-max-height) !important;
|
||||
height: var(--el-dialog-min-height) !important;
|
||||
min-height: var(--el-dialog-min-height) !important;
|
||||
max-height: var(--el-dialog-max-height) !important;
|
||||
.el-dialog__body {
|
||||
|
|
|
|||
|
|
@ -547,7 +547,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="银行联号">
|
||||
<el-input
|
||||
|
|
@ -571,7 +571,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件">
|
||||
<UploadFileFormData
|
||||
|
|
@ -591,7 +591,6 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
|
|
@ -1521,8 +1520,13 @@ export default {
|
|||
|
||||
// 工资卡信息
|
||||
if (bmWorkerWageCard && Object.keys(bmWorkerWageCard).length > 0) {
|
||||
const { bankCardCode, bankName, bankBranchName, id, bankIdentifierCode } =
|
||||
bmWorkerWageCard
|
||||
const {
|
||||
bankCardCode,
|
||||
bankName,
|
||||
bankBranchName,
|
||||
id,
|
||||
bankIdentifierCode,
|
||||
} = bmWorkerWageCard
|
||||
this.salaryCardInfoForm = {
|
||||
id,
|
||||
bankName,
|
||||
|
|
|
|||
|
|
@ -47,6 +47,14 @@
|
|||
>
|
||||
模板下载
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="success"
|
||||
icon="el-icon-setting"
|
||||
@click="onHandleShanghaiPersonMultiEngineSetting()"
|
||||
>
|
||||
上海人员多工程设置
|
||||
</el-button>
|
||||
</template>
|
||||
|
||||
<!-- 出入场状态 -->
|
||||
|
|
@ -119,7 +127,7 @@
|
|||
</el-row>
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<template v-else-if="dialogConfig.outerTitle === '导入数据'">
|
||||
<UploadFileFormData
|
||||
:limit="1"
|
||||
:file-size="50"
|
||||
|
|
@ -142,15 +150,22 @@
|
|||
</el-button>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<ShanghaiProSetting
|
||||
@closeDialogOuter="handleCloseDialogOuter"
|
||||
/>
|
||||
</template>
|
||||
</template>
|
||||
</DialogModel>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AddOrEditForm from './add-or-edit-form'
|
||||
import TableModel from '@/components/TableModel'
|
||||
import DialogModel from '@/components/DialogModel'
|
||||
import AddOrEditForm from './add-or-edit-form'
|
||||
import ShanghaiProSetting from './shanghai-pro-setting'
|
||||
import UploadFileFormData from '@/components/UploadFileFormData'
|
||||
import { formLabel, columnsList, dialogConfig } from './config'
|
||||
import {
|
||||
|
|
@ -174,6 +189,7 @@ export default {
|
|||
DialogModel,
|
||||
AddOrEditForm,
|
||||
UploadFileFormData,
|
||||
ShanghaiProSetting,
|
||||
},
|
||||
|
||||
data() {
|
||||
|
|
@ -283,12 +299,6 @@ export default {
|
|||
} else {
|
||||
window.open(window.origin + '/人员入场-模版.xlsx')
|
||||
}
|
||||
// window.open(window.origin + '/hd-realname' + '/人员入场-模版.xlsx')
|
||||
// this.download(
|
||||
// '/bmw/download/workerEinTemplate',
|
||||
// {},
|
||||
// '失信人员导入模板.xlsx',
|
||||
// )
|
||||
},
|
||||
|
||||
// 取消上传
|
||||
|
|
@ -330,6 +340,15 @@ export default {
|
|||
})
|
||||
}
|
||||
},
|
||||
|
||||
// 上海人员多工程设置
|
||||
onHandleShanghaiPersonMultiEngineSetting() {
|
||||
this.dialogConfig.outerTitle = '上海人员多工程设置'
|
||||
this.dialogConfig.outerWidth = '80%'
|
||||
this.dialogConfig.minHeight = '90vh'
|
||||
this.dialogConfig.maxHeight = '90vh'
|
||||
this.dialogConfig.outerVisible = true
|
||||
},
|
||||
},
|
||||
|
||||
async created() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,548 @@
|
|||
<template>
|
||||
<!-- 施工人员 ---- 出入场管理 ---- 上海人员多工程设置 -->
|
||||
<div class="container">
|
||||
<div class="shanghai-pro-setting-step1" v-if="currentStep === 1">
|
||||
<el-form label-width="140px">
|
||||
<el-form-item label="身份证号码">
|
||||
<el-input
|
||||
v-model="idNumber"
|
||||
placeholder="请输入身份证号码"
|
||||
clearable
|
||||
style="width: 420px"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div class="content">
|
||||
<span> 上海人员多工程设置 </span>
|
||||
<span> 1. 请确保该人员已经入场一个上海工程 </span>
|
||||
<span>
|
||||
2.
|
||||
每个工程,人员只能存在一条在场数据,即一个工程只能入场一次
|
||||
</span>
|
||||
<span>
|
||||
3. 如需出场,请至
|
||||
<a href="javascript:void(0)" @click="onHandlePersonExit"
|
||||
>【人员出场】</a
|
||||
>
|
||||
模块进行单个工程操作
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 30%; margin-top: 10%"
|
||||
@click="onHandleNextStep"
|
||||
>
|
||||
下一步
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<div class="shanghai-pro-setting-step2" v-else-if="currentStep === 2">
|
||||
<div class="header">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
@click="onHandleAddEntryProject"
|
||||
>
|
||||
新增入场工程
|
||||
</el-button>
|
||||
|
||||
<div class="title"> 上海人员多工程设置明细 </div>
|
||||
|
||||
<div class="content-detail">
|
||||
<span> 上海人员多工程设置 </span>
|
||||
<span> 1. 请确保该人员已经入场一个上海工程 </span>
|
||||
<span>
|
||||
2.
|
||||
每个工程,人员只能存在一条在场数据,即一个工程只能入场一次
|
||||
</span>
|
||||
<span>
|
||||
3. 如需出场,请至
|
||||
<a href="javascript:void(0)" @click="onHandlePersonExit"
|
||||
>【人员出场】</a
|
||||
>
|
||||
模块进行单个工程操作
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-table :data="tableData">
|
||||
<el-table-column
|
||||
type="index"
|
||||
width="50"
|
||||
align="center"
|
||||
label="序号"
|
||||
/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
:prop="item.prop"
|
||||
:key="item.prop"
|
||||
:label="item.label"
|
||||
show-overflow-tooltip
|
||||
v-for="item in columnsList"
|
||||
/>
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<!-- 新增入场工程 -->
|
||||
|
||||
<DialogModel
|
||||
:dialogConfig="dialogConfig"
|
||||
@closeDialogOuter="handleCloseDialogOuter"
|
||||
>
|
||||
<template slot="outerContent">
|
||||
<el-form
|
||||
label-width="120px"
|
||||
:model="addEntryProjectForm"
|
||||
ref="addEntryProjectFormRef"
|
||||
:rules="addEntryProjectFormRules"
|
||||
>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input
|
||||
clearable
|
||||
placeholder="请输入姓名"
|
||||
v-model.trim="addEntryProjectForm.name"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号" prop="idNumber">
|
||||
<el-input
|
||||
clearable
|
||||
placeholder="请输入身份证号"
|
||||
v-model.trim="addEntryProjectForm.idNumber"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工种" prop="postId">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
style="width: 100%"
|
||||
placeholder="请选择工种"
|
||||
@change="onChangePostId"
|
||||
v-model="addEntryProjectForm.postId"
|
||||
>
|
||||
<el-option
|
||||
:key="item.value"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
v-for="item in postTypeSelectList"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="入场工程" prop="proId">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
style="width: 100%"
|
||||
@change="onChangeProId"
|
||||
placeholder="请选择入场工程"
|
||||
v-model="addEntryProjectForm.proId"
|
||||
>
|
||||
<el-option
|
||||
:key="item.value"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
v-for="item in lotProjectSelectList"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="入场分包" prop="subId">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
style="width: 100%"
|
||||
@change="onChangeSubId"
|
||||
placeholder="请选择入场分包"
|
||||
v-model="addEntryProjectForm.subId"
|
||||
>
|
||||
<el-option
|
||||
:key="item.value"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
v-for="item in subSelectList"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="入场班组" prop="teamId">
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
style="width: 100%"
|
||||
@change="onChangeTeamId"
|
||||
placeholder="请选择入场班组"
|
||||
v-model="addEntryProjectForm.teamId"
|
||||
>
|
||||
<el-option
|
||||
:key="item.value"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
v-for="item in teamSelectList"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row class="dialog-footer-btn">
|
||||
<el-button size="medium" @click="onHandleCloseDialogOuter">
|
||||
取消
|
||||
</el-button>
|
||||
<el-button
|
||||
size="medium"
|
||||
type="primary"
|
||||
@click="onHandleConfirmAddEntryProject"
|
||||
>
|
||||
提交
|
||||
</el-button>
|
||||
<el-button
|
||||
size="medium"
|
||||
type="success"
|
||||
@click="onHandleConfirmAddEntryProjectAndContinue"
|
||||
>
|
||||
提交并继续添加
|
||||
</el-button>
|
||||
</el-row>
|
||||
</template>
|
||||
</DialogModel>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DialogModel from '@/components/DialogModel'
|
||||
import { getPostTypeSelectListCommonFun } from '@/utils/getCommonData'
|
||||
import {
|
||||
getSubSelectListByConditionAPI,
|
||||
getTeamSelectListByConditionAPI,
|
||||
getLotProjectSelectListByConditionAPI,
|
||||
} from '@/api/common'
|
||||
export default {
|
||||
name: 'ShanghaiProSetting',
|
||||
components: {
|
||||
DialogModel,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
idNumber: '',
|
||||
currentStep: 1,
|
||||
tableData: [],
|
||||
columnsList: [
|
||||
{
|
||||
prop: 'name',
|
||||
label: '姓名',
|
||||
},
|
||||
{
|
||||
prop: 'idNumber',
|
||||
label: '身份证',
|
||||
},
|
||||
{
|
||||
prop: 'phone',
|
||||
label: '联系方式',
|
||||
},
|
||||
{
|
||||
prop: 'postName',
|
||||
label: '工种',
|
||||
},
|
||||
{
|
||||
prop: 'proName',
|
||||
label: '所属工程',
|
||||
},
|
||||
{
|
||||
prop: 'subName',
|
||||
label: '所属分包',
|
||||
},
|
||||
{
|
||||
prop: 'teamName',
|
||||
label: '所属班组',
|
||||
},
|
||||
{
|
||||
prop: 'einTime',
|
||||
label: '入场时间',
|
||||
},
|
||||
],
|
||||
|
||||
dialogConfig: {
|
||||
outerVisible: false,
|
||||
outerTitle: '新增入场工程',
|
||||
outerWidth: '40%',
|
||||
// minHeight: '78vh',
|
||||
// maxHeight: '78vh',
|
||||
},
|
||||
|
||||
addEntryProjectForm: {
|
||||
name: '',
|
||||
idNumber: '',
|
||||
postName: '',
|
||||
proName: '',
|
||||
subName: '',
|
||||
teamName: '',
|
||||
teamId: '',
|
||||
subId: '',
|
||||
proId: '',
|
||||
postId: '',
|
||||
},
|
||||
|
||||
addEntryProjectFormRules: {
|
||||
name: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入姓名',
|
||||
},
|
||||
],
|
||||
idNumber: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入身份证号',
|
||||
},
|
||||
],
|
||||
postId: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入工种',
|
||||
},
|
||||
],
|
||||
proId: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入入场工程',
|
||||
},
|
||||
],
|
||||
subId: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入入场分包',
|
||||
},
|
||||
],
|
||||
teamId: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入入场班组',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
postTypeSelectList: [], // 工种列表
|
||||
lotProjectSelectList: [], // 工程列表
|
||||
subSelectList: [], // 分包列表
|
||||
teamSelectList: [], // 班组列表
|
||||
}
|
||||
},
|
||||
|
||||
async created() {
|
||||
const postType = await getPostTypeSelectListCommonFun()
|
||||
this.postTypeSelectList = postType.map((item) => {
|
||||
return {
|
||||
value: item.id,
|
||||
label: item.postName,
|
||||
}
|
||||
})
|
||||
|
||||
this.getLotProjectSelectList()
|
||||
},
|
||||
|
||||
methods: {
|
||||
onHandlePersonExit() {
|
||||
this.$router.push(
|
||||
'/construction-person/entry-and-exit-manage/person-exit',
|
||||
)
|
||||
this.$emit('closeDialogOuter')
|
||||
},
|
||||
|
||||
// 下一步
|
||||
onHandleNextStep() {
|
||||
this.currentStep = 2
|
||||
},
|
||||
|
||||
// 新增入场工程
|
||||
onHandleAddEntryProject() {
|
||||
this.dialogConfig.outerVisible = true
|
||||
},
|
||||
|
||||
// 关闭弹框
|
||||
handleCloseDialogOuter() {
|
||||
this.dialogConfig.outerVisible = false
|
||||
},
|
||||
|
||||
// 取消按钮
|
||||
onHandleCloseDialogOuter() {
|
||||
this.dialogConfig.outerVisible = false
|
||||
},
|
||||
|
||||
// 提交按钮
|
||||
onHandleConfirmAddEntryProject() {
|
||||
// this.$emit('closeDialogOuter')
|
||||
this.$refs.addEntryProjectFormRef.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$emit('closeDialogOuter')
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 提交并继续添加按钮
|
||||
onHandleConfirmAddEntryProjectAndContinue() {
|
||||
this.$refs.addEntryProjectFormRef.validate((valid) => {
|
||||
if (valid) {
|
||||
this.tableData.push(
|
||||
JSON.parse(JSON.stringify(this.addEntryProjectForm)),
|
||||
)
|
||||
this.$refs.addEntryProjectFormRef.resetFields()
|
||||
this.dialogConfig.outerVisible = false
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 获取标段工程下拉列表
|
||||
async getLotProjectSelectList() {
|
||||
const { data: res } = await getLotProjectSelectListByConditionAPI(
|
||||
{},
|
||||
)
|
||||
this.lotProjectSelectList = res.map((item) => {
|
||||
return {
|
||||
value: item.id,
|
||||
label: item.name,
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取分包下拉列表
|
||||
async getSubSelectList(data) {
|
||||
const { data: res } = await getSubSelectListByConditionAPI(data)
|
||||
this.subSelectList = res.map((item) => {
|
||||
return {
|
||||
value: item.id,
|
||||
label: item.name,
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取班组下拉列表
|
||||
async getTeamSelectList(data) {
|
||||
const { data: res } = await getTeamSelectListByConditionAPI(data)
|
||||
this.teamSelectList = res.map((item) => {
|
||||
return {
|
||||
value: item.id,
|
||||
label: item.name,
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 入场工程选择
|
||||
onChangeProId(val) {
|
||||
this.addEntryProjectForm.teamId = ''
|
||||
this.addEntryProjectForm.subId = ''
|
||||
if (!val) {
|
||||
this.addEntryProjectForm.proName = ''
|
||||
this.subSelectList = []
|
||||
this.teamSelectList = []
|
||||
return
|
||||
}
|
||||
this.addEntryProjectForm.proName = this.lotProjectSelectList.find(
|
||||
(item) => item.value === val,
|
||||
).label
|
||||
|
||||
this.getSubSelectList({ proId: val })
|
||||
},
|
||||
// 工种选择
|
||||
onChangePostId(val) {
|
||||
if (!val) {
|
||||
this.addEntryProjectForm.postName = ''
|
||||
return
|
||||
}
|
||||
this.addEntryProjectForm.postName = this.postTypeSelectList.find(
|
||||
(item) => item.value === val,
|
||||
).label
|
||||
},
|
||||
// 入场分包选择
|
||||
onChangeSubId(val) {
|
||||
this.addEntryProjectForm.teamId = ''
|
||||
if (!val) {
|
||||
this.addEntryProjectForm.subId = ''
|
||||
this.teamSelectList = []
|
||||
return
|
||||
}
|
||||
this.addEntryProjectForm.subName = this.subSelectList.find(
|
||||
(item) => item.value === val,
|
||||
).label
|
||||
|
||||
this.getTeamSelectList({ subId: val })
|
||||
},
|
||||
// 入场班组选择
|
||||
onChangeTeamId(val) {
|
||||
if (!val) {
|
||||
this.addEntryProjectForm.teamName = ''
|
||||
return
|
||||
}
|
||||
this.addEntryProjectForm.teamName = this.teamSelectList.find(
|
||||
(item) => item.value === val,
|
||||
).label
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.container {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.shanghai-pro-setting-step1 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
||||
.content {
|
||||
margin-top: 28px;
|
||||
width: 40%;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
.shanghai-pro-setting-step2 .header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
.content span {
|
||||
display: block;
|
||||
margin-bottom: 28px;
|
||||
font-size: 14px;
|
||||
color: #ef4444;
|
||||
text-indent: 2em;
|
||||
}
|
||||
|
||||
.content span:first-child,
|
||||
.content-detail span:first-child {
|
||||
text-indent: 0;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.content span a,
|
||||
.content-detail span a {
|
||||
color: #1e3a8a;
|
||||
}
|
||||
|
||||
.content span a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.content-detail span {
|
||||
display: block;
|
||||
margin-bottom: 8px;
|
||||
font-size: 14px;
|
||||
color: #ef4444;
|
||||
text-indent: 2em;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: #000;
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
Loading…
Reference in New Issue