|
@@ -78,7 +78,7 @@
|
|
|
<div class="basics"><a href="javascript:void(0);" @click="getBasicsInfo">基础信息</a></div>
|
|
|
</div>
|
|
|
<!-- 账号信息 -->
|
|
|
- <el-form ref="accountForm" :model="accountForm" :rules="rules" label-width="90px" v-show="accountShow">
|
|
|
+ <el-form ref="accountForm" :model="accountForm" :rules="accountForms" label-width="90px" v-show="accountShow">
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="序号" prop="userId">
|
|
@@ -105,15 +105,21 @@
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="账号状态" prop="status">
|
|
|
+ <!-- <el-form-item label="账号状态" prop="status">
|
|
|
<el-radio v-model="accountForm.status" label="0">正常</el-radio>
|
|
|
<el-radio v-model="accountForm.status" label="1">停用</el-radio>
|
|
|
+ </el-form-item> -->
|
|
|
+ <el-form-item label="账号状态" prop="status">
|
|
|
+ <el-radio v-model="accountForm.status" v-for="dict in dict.type.sys_account_status" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="性别" prop="sex">
|
|
|
+ <!-- <el-form-item label="性别" prop="sex">
|
|
|
<el-radio v-model="accountForm.sex" label="0">男</el-radio>
|
|
|
<el-radio v-model="accountForm.sex" label="1">女</el-radio>
|
|
|
+ </el-form-item> -->
|
|
|
+ <el-form-item label="性别" prop="sex">
|
|
|
+ <el-radio v-model="accountForm.sex" v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -151,12 +157,12 @@
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="年龄">
|
|
|
- <el-input placeholder="请输入年龄" maxlength="30" />
|
|
|
+ <el-input placeholder="请输入年龄" v-model="ageInfo.age" maxlength="30" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="出生日期">
|
|
|
- <el-input placeholder="请输入出生日期" maxlength="30" />
|
|
|
+ <el-input placeholder="请输入出生日期" v-model="ageInfo.birthday" maxlength="30" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -549,11 +555,20 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <!-- 修改角色权限对话框 -->
|
|
|
+ <!-- 功能权限对话框 -->
|
|
|
<el-dialog title="功能权限" :visible.sync="dialogTableRolePermissions">
|
|
|
- <el-table border>
|
|
|
- <el-table-column label="名称" align="center" width="180"></el-table-column>
|
|
|
- <el-table-column label="描述" align="center"></el-table-column>
|
|
|
+ <el-table v-loading="loading" border :data="roleListAll">
|
|
|
+ <el-table-column label="名称" align="left" width="180">
|
|
|
+ <template scope="scope">
|
|
|
+ <input type="checkbox" :checked="scope.row.checked" @change="roleChange(scope.row)" />
|
|
|
+ <span class="role_">{{ scope.row.roleName }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="描述" align="center">
|
|
|
+ <template scope="scpoe">
|
|
|
+ <span>{{ scpoe.row.remark }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button size="small" @click="cancalRolePermissions">取 消</el-button>
|
|
@@ -565,18 +580,18 @@
|
|
|
<el-dialog title="责权信息" :visible.sync="dialogPower" width="30%" :before-close="handleClose">
|
|
|
<div class="">
|
|
|
<span>级别职务:</span>
|
|
|
- <el-select v-model="jodId" placeholder="请选择" @change="changeJob()">
|
|
|
- <el-option v-for="item in levelJobs" :key="item.jobId" :label="item.jobName" :value="item.jobId"> </el-option>
|
|
|
+ <el-select v-model="jodId" placeholder="请选择" @change="changeJob">
|
|
|
+ <el-option v-for="item in levelJobs" :key="item.jobId" :label="item.jobName" :value="item"> </el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
<div class="responsibility">
|
|
|
<span>责任</span>
|
|
|
</div>
|
|
|
- <el-input type="textarea" :rows="3" v-model="responsibility" :disabled="true" placeholder="请输入内容"> </el-input>
|
|
|
+ <el-input type="textarea" :rows="3" v-model="responsibility" readonly placeholder="请输入内容"> </el-input>
|
|
|
<div class="responsibility">
|
|
|
<span>权利</span>
|
|
|
</div>
|
|
|
- <el-input type="textarea" :rows="3" v-model="right" :disabled="true" placeholder="请输入内容"> </el-input>
|
|
|
+ <el-input type="textarea" :rows="3" v-model="right" readonly placeholder="请输入内容"> </el-input>
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 修改头像对话框 -->
|
|
@@ -585,7 +600,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getUser, delUser, addUser, updateUser, getStaffList, getLevelTreeSelect, getResponsibilityRight, getNatureTreeSelect, getAuthRole } from '@/api/system/employeenInfo'
|
|
|
+import { getUser, delUser, addUser, updateUser, getStaffList, getLevelTreeSelect, listRole, getNatureTreeSelect, getAuthRole, updateAuthRole } from '@/api/system/employeenInfo'
|
|
|
import { getToken } from '@/utils/auth'
|
|
|
import { treeselect } from '@/api/system/dept'
|
|
|
import userAvatar from './profile/userAvatar.vue'
|
|
@@ -595,7 +610,23 @@ import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
|
|
|
|
|
export default {
|
|
|
name: 'employeenInfo',
|
|
|
- dicts: ['sys_normal_disable', 'sys_user_sex'],
|
|
|
+ dicts: [
|
|
|
+ 'sys_normal_disable',
|
|
|
+ 'sys_user_sex',
|
|
|
+ 'sys_account_status',
|
|
|
+ 'sys_employee_education',
|
|
|
+ 'sys_marital _status',
|
|
|
+ 'sys_employee _personality',
|
|
|
+ 'sys_staff_adept',
|
|
|
+ 'sys_income _situation',
|
|
|
+ 'sys_staff_hobby',
|
|
|
+ 'sys_staff_height',
|
|
|
+ 'sys_staff_appearance',
|
|
|
+ 'sys_staff_constitution',
|
|
|
+ 'sys_staff_medicalHistory',
|
|
|
+ 'sys_staff_criminalLaw',
|
|
|
+ 'sys_spare_relationship'
|
|
|
+ ],
|
|
|
components: { Treeselect, TreeChoice, userAvatar },
|
|
|
data() {
|
|
|
return {
|
|
@@ -661,48 +692,54 @@ export default {
|
|
|
{ key: 7, label: `手机号码`, visible: true }
|
|
|
],
|
|
|
// 表单校验
|
|
|
- rules: {
|
|
|
- // userName: [
|
|
|
- // { required: true, message: '用户名称不能为空', trigger: 'blur' },
|
|
|
- // { min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
|
|
|
- // ],
|
|
|
- // nickName: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }],
|
|
|
- // password: [
|
|
|
- // { required: true, message: '用户密码不能为空', trigger: 'blur' },
|
|
|
- // { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
|
|
|
- // ],
|
|
|
- // email: [
|
|
|
- // {
|
|
|
- // type: 'email',
|
|
|
- // message: "'请输入正确的邮箱地址",
|
|
|
- // trigger: ['blur', 'change']
|
|
|
- // }
|
|
|
- // ],
|
|
|
- // phonenumber: [
|
|
|
- // {
|
|
|
- // pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
|
|
- // message: '请输入正确的手机号码',
|
|
|
- // trigger: 'blur'
|
|
|
- // }
|
|
|
- // ]
|
|
|
+ accountForms: {
|
|
|
+ realName: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
|
|
|
+ phonenumber: [
|
|
|
+ { required: true, message: '手机号不能为空', trigger: 'blur' },
|
|
|
+ {
|
|
|
+ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
|
|
+ message: '请输入正确的手机号码',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ idNumber: [
|
|
|
+ { required: true, message: '身份证号不能为空', trigger: 'blur' },
|
|
|
+ {
|
|
|
+ pattern: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
|
|
|
+ message: '请输入正确的身份证号码',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ deptIds: [{ required: true, message: '请选择公司部门', trigger: 'submit' }],
|
|
|
+ levelJobIds: [{ required: true, message: '请选择职称级别', trigger: 'submit' }],
|
|
|
+ naturePostIds: [{ required: true, message: '请选择性质岗位', trigger: 'submit' }]
|
|
|
},
|
|
|
dialogTableRolePermissions: false, // 角色权限弹出层
|
|
|
dialogPower: false, // 责权信息弹出层
|
|
|
accountShow: true, // 账号信息
|
|
|
basicsShow: false, // 基础信息
|
|
|
props: { multiple: true }, // 联级多选
|
|
|
- // propsLevel: { multiple: true },
|
|
|
levelList: [], // 级别列表
|
|
|
natureList: [], // 性质岗位列表
|
|
|
levelJobs: [], // 责权信息列表
|
|
|
jodId: '', // 职位id
|
|
|
responsibility: '', // 职责
|
|
|
right: '', // 权力
|
|
|
+ roleList: [], // 角色列表
|
|
|
+ roleListAll: [], // 所有角色
|
|
|
+ dateRange: [], // 日期范围
|
|
|
+ rolesParams: {
|
|
|
+ roleName: undefined,
|
|
|
+ roleKey: undefined,
|
|
|
+ roleSort: undefined
|
|
|
+ }
|
|
|
+ // checked: false,
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
this.getList()
|
|
|
this.getTreeselect()
|
|
|
+ this.getRoleList()
|
|
|
},
|
|
|
methods: {
|
|
|
/** 查询用户列表 */
|
|
@@ -720,6 +757,15 @@ export default {
|
|
|
this.deptOptions = response.data
|
|
|
})
|
|
|
},
|
|
|
+ /** 查询角色列表 */
|
|
|
+ getRoleList() {
|
|
|
+ listRole(this.addDateRange(this.queryParams, this.dateRange)).then((response) => {
|
|
|
+ this.roleListAll = response.rows
|
|
|
+ this.roleListAll.forEach((element) => {
|
|
|
+ element.checked = false
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
// 节点单击事件
|
|
|
handleNodeClick(data) {
|
|
|
this.queryParams.deptId = data.id
|
|
@@ -772,7 +818,9 @@ export default {
|
|
|
this.userList.map(function (item) {
|
|
|
return item.userId
|
|
|
})
|
|
|
- ) + 1
|
|
|
+ ) +
|
|
|
+ 1 +
|
|
|
+ ''
|
|
|
// getUser().then((response) => {
|
|
|
// // this.postOptions = response.posts
|
|
|
// // this.roleOptions = response.roles
|
|
@@ -781,14 +829,38 @@ export default {
|
|
|
},
|
|
|
// 修改角色权限
|
|
|
getRolePermissions(row) {
|
|
|
+ this.userId = row.userId
|
|
|
getAuthRole(row.userId).then((res) => {
|
|
|
- console.log(res)
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.roleList = res.roles
|
|
|
+ console.log(this.roleList)
|
|
|
+ this.dialogTableRolePermissions = true
|
|
|
+ this.roleList.forEach((element) => {
|
|
|
+ this.roleListAll.forEach((e) => {
|
|
|
+ if (e.roleId == element.roleId) {
|
|
|
+ e.checked = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
})
|
|
|
- this.dialogTableRolePermissions = true
|
|
|
+ },
|
|
|
+ // 切换角色选中状态
|
|
|
+ roleChange(row, index) {
|
|
|
+ row.checked = !row.checked
|
|
|
},
|
|
|
// 保存角色权限修改
|
|
|
saveRolePermissions() {
|
|
|
- this.dialogTableRolePermissions = false
|
|
|
+ let newArr = this.roleListAll.filter((item, index, c) => item.checked == true)
|
|
|
+ let roleIds = newArr.map((item, index, c) => item.roleId)
|
|
|
+ let roleIdsStr = roleIds.join(',')
|
|
|
+ updateAuthRole({ userId: this.userId, roleIds: roleIdsStr }).then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.dialogTableRolePermissions = false
|
|
|
+ // this.getRolePermissions()
|
|
|
+ // console.log(this.roleList)
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
// 取消角色权限修改
|
|
|
cancalRolePermissions() {
|
|
@@ -798,14 +870,15 @@ export default {
|
|
|
getDutiesPowers(row) {
|
|
|
let staff = this.userList.find((item, index, c) => item.userId === row.userId)
|
|
|
this.levelJobs = staff.levelJobs
|
|
|
- this.jodId = this.levelJobs[0].jobId
|
|
|
+ // this.jodId = this.levelJobs[0].jobId
|
|
|
console.log(this.levelJobs)
|
|
|
this.dialogPower = true
|
|
|
},
|
|
|
// 选择职责权限
|
|
|
changeJob(val) {
|
|
|
- // console.log(val)
|
|
|
- console.log(123)
|
|
|
+ console.log(val)
|
|
|
+ this.responsibility = val.responsibility
|
|
|
+ this.right = val.right
|
|
|
},
|
|
|
// 账号信息
|
|
|
getAccountInfo() {
|
|
@@ -952,6 +1025,30 @@ export default {
|
|
|
submitFileForm() {
|
|
|
this.$refs.upload.submit()
|
|
|
}
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ //获取主题颜色
|
|
|
+ theme() {
|
|
|
+ return this.$store.state.settings.theme
|
|
|
+ },
|
|
|
+ //根据身份证号获取年龄和生日
|
|
|
+ ageInfo() {
|
|
|
+ let num = this.accountForm.idNumber
|
|
|
+ if (/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(num)) {
|
|
|
+ let birthday = num.substring(6, 10) + '-' + num.substring(10, 12) + '-' + num.substring(12, 14)
|
|
|
+ var birthdays = new Date(birthday.replace(/-/g, '/'))
|
|
|
+ let d = new Date()
|
|
|
+ let age = d.getFullYear() - birthdays.getFullYear() - (d.getMonth() < birthdays.getMonth() || (d.getMonth() == birthdays.getMonth() && d.getDate() < birthdays.getDate()) ? 1 : 0)
|
|
|
+ return {
|
|
|
+ age,
|
|
|
+ birthday
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ age: '',
|
|
|
+ birthday: ''
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
@@ -1007,4 +1104,7 @@ export default {
|
|
|
.search_form .el-form-item {
|
|
|
margin-bottom: 0;
|
|
|
}
|
|
|
+.role_ {
|
|
|
+ margin-left: 5px;
|
|
|
+}
|
|
|
</style>
|