mirror of
https://gitee.com/java110/MicroCommunityWeb.git
synced 2026-02-23 21:36:37 +08:00
v1.9 优化员工没有岗位问题
This commit is contained in:
parent
8edcdb9960
commit
702baeaeaf
@ -1,66 +1,42 @@
|
||||
<!-- components/staff/editStaff.vue -->
|
||||
<template>
|
||||
<el-dialog
|
||||
:title="$t('staff.modifyStaff')"
|
||||
:visible.sync="visible"
|
||||
width="50%"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-dialog :title="$t('staff.modifyStaff')" :visible.sync="visible" width="50%" @close="handleClose">
|
||||
<el-form ref="form" :model="editStaffInfo" label-width="120px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="$t('staff.name')" prop="username">
|
||||
<el-input
|
||||
v-model="editStaffInfo.username"
|
||||
:placeholder="$t('staff.requiredName')"
|
||||
/>
|
||||
<el-input v-model="editStaffInfo.username" :placeholder="$t('staff.requiredName')" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('email')" prop="email">
|
||||
<el-input
|
||||
v-model="editStaffInfo.email"
|
||||
:placeholder="$t('staff.optionalEmail')"
|
||||
/>
|
||||
<el-input v-model="editStaffInfo.email" :placeholder="$t('staff.optionalEmail')" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('staff.phone')" prop="tel">
|
||||
<el-input
|
||||
v-model="editStaffInfo.tel"
|
||||
:placeholder="$t('staff.requiredPhone')"
|
||||
/>
|
||||
<el-input v-model="editStaffInfo.tel" :placeholder="$t('staff.requiredPhone')" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('staff.gender')" prop="sex">
|
||||
<el-select
|
||||
v-model="editStaffInfo.sex"
|
||||
:placeholder="$t('staff.requiredGender')"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option :value="0" :label="$t('staff.male')" />
|
||||
<el-option :value="1" :label="$t('staff.female')" />
|
||||
<el-select v-model="editStaffInfo.sex" :placeholder="$t('staff.requiredGender')" style="width: 100%">
|
||||
<el-option value="0" :label="$t('staff.male')" />
|
||||
<el-option value="1" :label="$t('staff.female')" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('staff.relCd')" prop="relCd">
|
||||
<el-select v-model="editStaffInfo.relCd" :placeholder="$t('staff.relCdPlaceholder')" style="width: 100%">
|
||||
<el-option v-for="(item,index) in editStaffInfo.relCds" :key="index" :label="item.name"
|
||||
:value="item.statusCd" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('staff.address')" prop="address">
|
||||
<el-input
|
||||
v-model="editStaffInfo.address"
|
||||
:placeholder="$t('staff.requiredAddress')"
|
||||
/>
|
||||
<el-input v-model="editStaffInfo.address" :placeholder="$t('staff.requiredAddress')" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" style="text-align: center">
|
||||
<el-image
|
||||
style="width: 200px; height: 200px"
|
||||
:src="editStaffInfo.photoUrl"
|
||||
fit="cover"
|
||||
>
|
||||
<el-image style="width: 200px; height: 200px" :src="editStaffInfo.photoUrl" fit="cover">
|
||||
<div slot="error" class="image-slot">
|
||||
<i class="el-icon-picture-outline"></i>
|
||||
</div>
|
||||
</el-image>
|
||||
<div style="margin-top: 20px">
|
||||
<el-upload
|
||||
action=""
|
||||
:auto-upload="false"
|
||||
:show-file-list="false"
|
||||
:on-change="handlePhotoChange"
|
||||
>
|
||||
<el-upload action="" :auto-upload="false" :show-file-list="false" :on-change="handlePhotoChange">
|
||||
<el-button type="primary">{{ $t('staff.uploadPhoto') }}</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
@ -76,14 +52,11 @@
|
||||
|
||||
<script>
|
||||
import { modifyStaff } from '@/api/staff/staffApi'
|
||||
import { getDict } from '../../api/community/communityApi'
|
||||
|
||||
export default {
|
||||
name: 'EditStaff',
|
||||
props: {
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
staffInfo: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
@ -91,6 +64,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
loading: false,
|
||||
editStaffInfo: {
|
||||
userId: '',
|
||||
@ -128,23 +102,30 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
open(row){
|
||||
open(row) {
|
||||
this.editStaffInfo = {
|
||||
...row,
|
||||
username: row.name,
|
||||
photoUrl: row.faceUrl || '/img/noPhoto.jpg'
|
||||
}
|
||||
...row,
|
||||
username: row.name,
|
||||
photoUrl: row.faceUrl || '/img/noPhoto.jpg'
|
||||
}
|
||||
this.getRelCd()
|
||||
this.visible = true
|
||||
|
||||
},
|
||||
async getRelCd() {
|
||||
const data = await getDict('u_org_staff_rel', "rel_cd")
|
||||
this.editStaffInfo.relCds = data
|
||||
this.$forceUpdate()
|
||||
},
|
||||
handleClose() {
|
||||
this.$emit('update:visible', false)
|
||||
this.visible = false
|
||||
},
|
||||
handlePhotoChange(file) {
|
||||
if (file.size > 2 * 1024 * 1024) {
|
||||
this.$message.error(this.$t('staff.photoSizeLimit'))
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
const reader = new FileReader()
|
||||
reader.onload = (e) => {
|
||||
this.editStaffInfo.photoUrl = e.target.result
|
||||
@ -175,7 +156,7 @@ export default {
|
||||
},
|
||||
async editStaffSubmit() {
|
||||
if (!this.validateForm()) return
|
||||
|
||||
|
||||
try {
|
||||
this.loading = true
|
||||
const data = {
|
||||
@ -183,10 +164,10 @@ export default {
|
||||
name: this.editStaffInfo.username,
|
||||
staffId: this.editStaffInfo.userId
|
||||
}
|
||||
|
||||
|
||||
await modifyStaff(data)
|
||||
this.visible =false
|
||||
this.$message.success(this.$t('staff.modifySuccess'))
|
||||
this.visible = false
|
||||
this.$message.success(this.$t('common.submitSuccess'))
|
||||
this.$emit('success')
|
||||
this.handleClose()
|
||||
} catch (error) {
|
||||
|
||||
@ -64,7 +64,8 @@ export const messages = {
|
||||
hide:'Hide',
|
||||
viewDetail:'View Detail',
|
||||
yuan:'yuan',
|
||||
process:'Process'
|
||||
process:'Process',
|
||||
|
||||
}
|
||||
},
|
||||
zh: {
|
||||
@ -132,7 +133,8 @@ export const messages = {
|
||||
hide:'隐藏',
|
||||
viewDetail:'查看详情',
|
||||
yuan:'元',
|
||||
process:'处理'
|
||||
process:'处理',
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -19,6 +19,12 @@
|
||||
<el-option :label="$t('addStaff.female')" value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('addStaff.relCd')">
|
||||
<el-select v-model="addStaffInfo.relCd" :placeholder="$t('addStaff.relCdPlaceholder')"
|
||||
style="width: 100%">
|
||||
<el-option v-for="item in addStaffInfo.relCds" :key="item.value" :label="item.name" :value="item.statusCd" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('addStaff.phone')">
|
||||
<el-input v-model="addStaffInfo.tel" :placeholder="$t('addStaff.phonePlaceholder')" maxlength="11" />
|
||||
</el-form-item>
|
||||
@ -59,6 +65,7 @@
|
||||
import { addStaff } from '@/api/staff/addStaffApi'
|
||||
import UploadImageUrl from '@/components/upload/UploadImageUrl'
|
||||
import ChooseOrgTree from '@/components/org/ChooseOrgTree'
|
||||
import {getDict} from '@/api/community/communityApi'
|
||||
|
||||
export default {
|
||||
name: 'AddStaff',
|
||||
@ -78,11 +85,19 @@ export default {
|
||||
tel: '',
|
||||
address: '',
|
||||
photo: '',
|
||||
adminFlag: 'N'
|
||||
adminFlag: 'N',
|
||||
relCds:[]
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getRelCd()
|
||||
},
|
||||
methods: {
|
||||
async getRelCd() {
|
||||
const data = await getDict('u_org_staff_rel', "rel_cd")
|
||||
this.addStaffInfo.relCds = data
|
||||
},
|
||||
handleUploadImage(data) {
|
||||
if (data.length > 0) {
|
||||
this.addStaffInfo.photo = data[0].fileId
|
||||
|
||||
@ -23,7 +23,9 @@ export const messages = {
|
||||
save: 'Save',
|
||||
cancel: 'Cancel',
|
||||
chooseOrg: 'Choose Organization',
|
||||
confirm: 'Confirm'
|
||||
confirm: 'Confirm',
|
||||
relCd: 'Relationship',
|
||||
relCdPlaceholder: 'Please select relationship'
|
||||
}
|
||||
},
|
||||
zh: {
|
||||
@ -49,7 +51,9 @@ export const messages = {
|
||||
save: '保存',
|
||||
cancel: '取消',
|
||||
chooseOrg: '选择组织',
|
||||
confirm: '确认'
|
||||
confirm: '确认',
|
||||
relCd: '岗位',
|
||||
relCdPlaceholder: '请选择岗位'
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -40,7 +40,8 @@ export const messages = {
|
||||
uploadPhoto: 'Upload Photo',
|
||||
cancel: 'Cancel',
|
||||
confirmDelete: 'Are you sure to delete? Before deleting staff, please confirm that the staff has completed the relevant approval process. After deletion, the relevant process will not be able to continue. Please operate carefully!',
|
||||
confirmDeleteAction: 'Confirm Delete'
|
||||
confirmDeleteAction: 'Confirm Delete',
|
||||
relCd: 'Relationship'
|
||||
},
|
||||
selectStaff: {
|
||||
title: 'Select Staff',
|
||||
@ -91,7 +92,8 @@ export const messages = {
|
||||
uploadPhoto: '上传照片',
|
||||
cancel: '取消',
|
||||
confirmDelete: '确认是否删除,删除员工前请确认员工已完成相关审批流程,删除后相关流程将无法继续进行,请慎重操作!',
|
||||
confirmDeleteAction: '确认删除'
|
||||
confirmDeleteAction: '确认删除',
|
||||
relCd: '岗位'
|
||||
},
|
||||
selectStaff: {
|
||||
title: '选择员工',
|
||||
|
||||
@ -49,6 +49,7 @@
|
||||
<el-table-column prop="orgName" :label="$t('staff.relatedOrg')" align="center" />
|
||||
<el-table-column prop="email" :label="$t('staff.email')" align="center" />
|
||||
<el-table-column prop="address" :label="$t('staff.address')" align="center" />
|
||||
<el-table-column prop="relCdName" :label="$t('staff.relCd')" align="center" />
|
||||
<el-table-column prop="sex" :label="$t('staff.gender')" align="center">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.sex == 0 ? $t('staff.male') : $t('staff.female') }}
|
||||
@ -84,7 +85,7 @@
|
||||
|
||||
<reset-staff-pwd :visible.sync="resetPwdVisible" :staff-info="currentStaff" @success="handleSuccess" />
|
||||
|
||||
<edit-staff :visible.sync="editStaffVisible" :staff-info="currentStaff" @success="handleSuccess" />
|
||||
<edit-staff ref="editStaff" :staff-info="currentStaff" @success="handleSuccess" />
|
||||
|
||||
<delete-staff :visible.sync="deleteStaffVisible" :staff-info="currentStaff" @success="handleSuccess" />
|
||||
</div>
|
||||
@ -181,6 +182,7 @@ export default {
|
||||
openEditStaff(staff) {
|
||||
this.currentStaff = { ...staff }
|
||||
this.editStaffVisible = true
|
||||
this.$refs.editStaff.open(staff)
|
||||
},
|
||||
openDeleteStaff(staff) {
|
||||
this.currentStaff = { ...staff }
|
||||
|
||||
Loading…
Reference in New Issue
Block a user