| | |
| | | method: 'get' |
| | | }); |
| | | }, |
| | | getExpList: () => { |
| | | return request({ |
| | | url: import.meta.env.VITE_API_URL + `/account/user/identity/list`, |
| | | method: 'post' |
| | | }); |
| | | }, |
| | | // v2 |
| | | addRole: (data: object) => { |
| | | return request({ |
| | |
| | | data: data |
| | | }); |
| | | }, |
| | | |
| | | getExpertsList: (data: any) => { |
| | | return request({ |
| | | url: import.meta.env.VITE_API_URL + `/account/user/find/expert/list`, |
| | | method: 'post', |
| | | data: data |
| | | }); |
| | | }, |
| | | |
| | | // v1 |
| | | addUser: (data: object) => { |
| | | return request({ |
| | |
| | | realName: '' |
| | | } |
| | | }); |
| | | if(res.data.code === 200){ |
| | | if(res.data.code === 100){ |
| | | reportDialogState.systemPersonList = JSON.parse(JSON.stringify(res.data.data)); |
| | | }else{ |
| | | ElMessage({ |
| | |
| | | realName: '' |
| | | } |
| | | }); |
| | | if(res.data.code === 200){ |
| | | if(res.data.code === 100){ |
| | | reportDialogState.systemPersonList = JSON.parse(JSON.stringify(res.data.data)); |
| | | }else{ |
| | | ElMessage({ |
| | |
| | | <div class="system-menu-dialog-container"> |
| | | <el-dialog title="管理实验现实风险" v-model="assessApplyDialogState.assessApplyDialogVisible" width="60%"> |
| | | <div> |
| | | <el-button @click="openUnitDialog('新增','', assessApplyDialogState.id, assessApplyDialogState.liabilityUserId)" type="primary" style="margin-bottom: 20px" size="default">增加风险分析单元</el-button> |
| | | <el-button @click="openUnitDialog('新增','', assessApplyDialogState.id)" type="primary" style="margin-bottom: 20px" size="default">增加风险分析单元</el-button> |
| | | </div> |
| | | <el-table ref="multipleTableRef" :data="assessApplyDialogState.riskUnitData" style="width: 100%" :header-cell-style="{ background: '#fafafa' }"> |
| | | <el-table-column prop="riskCode" label="风险单元编号"/> |
| | |
| | | <el-table-column prop="riskUnitType" label="风险单元类型"/> |
| | | <el-table-column prop="riskUnitType" label="负责人"> |
| | | <template #default="scope"> |
| | | <span>{{`${assessApplyDialogState.allPersonList.find(item =>item.id === scope.row.liabilityUserId)?.realName || ''}`}}</span> |
| | | <span>{{`${assessApplyDialogState.allPersonList.find(item =>item.id === scope.row.liabilityUserId)?.personName || ''}`}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="evaluateStatus" label="是否评价"> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="操作" width="150" align="center"> |
| | | <template #default="scope"> |
| | | <el-button size="default" text type="primary" @click="openUnitDialog('查看', scope.row, assessApplyDialogState.id, assessApplyDialogState.liabilityUserId)">查看</el-button> |
| | | <el-button size="default" text type="primary" @click="openUnitDialog('编辑', scope.row, assessApplyDialogState.id, assessApplyDialogState.liabilityUserId)">编辑</el-button> |
| | | <el-button size="default" text type="primary" @click="openUnitDialog('查看', scope.row, assessApplyDialogState.id)">查看</el-button> |
| | | <el-button size="default" text type="primary" @click="openUnitDialog('编辑', scope.row, assessApplyDialogState.id)">编辑</el-button> |
| | | <el-button size="default" text type="danger" @click="deleteUnit(scope.$index, scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | getRiskData() |
| | | }; |
| | | |
| | | const openUnitDialog = (title: string, val, id: number, userId: number) => { |
| | | riskUnitDialogRef.value.showRiskUnitDialog(title, val, id, userId, assessApplyDialogState.basicUnitList, assessApplyDialogState.allPersonList, assessApplyDialogState.allRiskTypeList); |
| | | const openUnitDialog = (title: string, val, id: number) => { |
| | | riskUnitDialogRef.value.showRiskUnitDialog(title, val, id, assessApplyDialogState.basicUnitList, assessApplyDialogState.allPersonList, assessApplyDialogState.allRiskTypeList); |
| | | }; |
| | | |
| | | const getRiskData = async () => { |
| | |
| | | }; |
| | | |
| | | const getAllPersonList = async () => { |
| | | let res = await userApi().getUserList({ |
| | | pageIndex: 1, |
| | | pageSize: 99999, |
| | | searchParams:{ |
| | | roleId: null, |
| | | name: '', |
| | | realName: '' |
| | | } |
| | | }); |
| | | if(res.data.code === 200){ |
| | | let res = await personApi().getAllPerson(); |
| | | if(res.data.code === 100){ |
| | | assessApplyDialogState.allPersonList = JSON.parse(JSON.stringify(res.data.data)); |
| | | }else{ |
| | | ElMessage({ |
| | |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="负责人" prop="liabilityUserId"> |
| | | <el-select v-model="riskUnitDialogState.riskUnitForm.liabilityUserId" :disabled="riskUnitDialogState.disabled" placeholder="负责人" clearable class="input-length"> |
| | | <el-option v-for="item in riskUnitDialogState.allPersonList" :key="item.id" :label="item.realName" :value="item.id"></el-option> |
| | | <el-option v-for="item in riskUnitDialogState.allPersonList" :key="item.id" :label="item.personName" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | ], |
| | | }) |
| | | |
| | | const showRiskUnitDialog = (title: string, val, id: number, userId: number, basicUnitList: UnitType [], allPersonList: AllPersonListType [], allRiskTypeList: RiskType []) => { |
| | | const showRiskUnitDialog = (title: string, val, id: number, basicUnitList: UnitType [], allPersonList: AllPersonListType [], allRiskTypeList: RiskType []) => { |
| | | riskUnitDialogState.riskUnitDialogVisible = true; |
| | | riskUnitDialogState.basicUnitList = basicUnitList |
| | | riskUnitDialogState.allPersonList = allPersonList |
| | |
| | | riskCode: '', |
| | | riskName: '', |
| | | riskUnitTypeId: null, |
| | | liabilityUserId: userId, |
| | | liabilityUserId: null, |
| | | liabilityDep: '', |
| | | description: '', |
| | | basicRiskUnitId: null, |
| | |
| | | realName: '' |
| | | } |
| | | }); |
| | | if(res.data.code === 200){ |
| | | if(res.data.code === 100){ |
| | | evaluateState.personList = JSON.parse(JSON.stringify(res.data.data)); |
| | | }else{ |
| | | ElMessage({ |
| | |
| | | realName: '' |
| | | } |
| | | }); |
| | | if(res.data.code === 200){ |
| | | if(res.data.code === 100){ |
| | | identifyState.personList = JSON.parse(JSON.stringify(res.data.data)); |
| | | }else{ |
| | | ElMessage({ |
| | |
| | | realName: '' |
| | | } |
| | | }); |
| | | if(res.data.code === 200){ |
| | | if(res.data.code === 100){ |
| | | planState.personList = JSON.parse(JSON.stringify(res.data.data)); |
| | | }else{ |
| | | ElMessage({ |
| | |
| | | realName: '' |
| | | } |
| | | }); |
| | | if(res.data.code === 200){ |
| | | if(res.data.code === 100){ |
| | | projectDialogState.systemPersonList = JSON.parse(JSON.stringify(res.data.data)); |
| | | }else{ |
| | | ElMessage({ |
| | |
| | | realName: '' |
| | | } |
| | | }); |
| | | if(res.data.code === 200){ |
| | | if(res.data.code === 100){ |
| | | projectDialogState.systemPersonList = JSON.parse(JSON.stringify(res.data.data)); |
| | | }else{ |
| | | ElMessage({ |
对比新文件 |
| | |
| | | <template> |
| | | <div class="system-add-user-container"> |
| | | <el-dialog :title="title" v-model="isShowUserDialog" width="769px"> |
| | | <el-form :model="userForm" size="default" ref="userRef" :rules="userFormRules" label-width="90px"> |
| | | <el-row :gutter="35"> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="用户名" prop="name"> |
| | | <el-input v-model.trim="userForm.name" placeholder="用户名" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="真实姓名" prop="realName"> |
| | | <el-input v-model.trim="userForm.realName" placeholder="真实姓名" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="isAdd"> |
| | | <el-form-item label="账户密码" prop="pwd"> |
| | | <el-input v-model.trim="userForm.pwd" placeholder="账户密码" type="password" show-password> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="关联角色" prop="roleIds"> |
| | | <el-select v-model="userForm.roleIds" placeholder="关联角色" clearable class="w100" multiple> |
| | | <el-option v-for="item in roleData" :key="item.id" :label="item.name" :value="item.id"> </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="部门" prop="depId"> |
| | | <el-cascader :options="departmentData" :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'depName' }" placeholder="部门" clearable class="w100" v-model="userForm.depId"> </el-cascader> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="手机号" prop="phone"> |
| | | <el-input v-model.trim="userForm.phone" placeholder="手机号" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="证件类型" prop="idType"> |
| | | <el-select v-model="userForm.idType" placeholder="证件类型" clearable class="w100"> |
| | | <el-option :key="1" label="身份证" :value="1"> </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="证件号码" prop="idSerial"> |
| | | <el-input v-model.trim="userForm.idSerial" placeholder="证件号码" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="isShowUserDialog = !isShowUserDialog" size="default">取 消</el-button> |
| | | <el-button type="primary" v-throttle @click="onSubmit" size="default">确 定</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { reactive, toRefs, onMounted, defineComponent, ref } from 'vue'; |
| | | import { ElMessageBox, ElMessage } from 'element-plus'; |
| | | import { userApi } from '/@/api/systemManage/user'; |
| | | import {checkChineseName, verifyFullName, verifyIdCard, verifyPhone} from "/@/utils/toolsValidate"; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface DeptData {} |
| | | interface roleData {} |
| | | interface UserState { |
| | | title: string; |
| | | isShowUserDialog: boolean; |
| | | userForm: { |
| | | name: string; |
| | | realName: string; |
| | | roleIds: Array<any> |
| | | depId: number | null; |
| | | phone: string; |
| | | pwd: string; |
| | | idType: number | null; |
| | | idSerial: string; |
| | | }; |
| | | userFormRules:{ |
| | | |
| | | }, |
| | | departmentData: Array<DeptData>; |
| | | roleData: Array<roleData>; |
| | | isAdd:boolean |
| | | } |
| | | |
| | | export default defineComponent({ |
| | | name: 'userDialog', |
| | | setup(props, context) { |
| | | const userRef = ref() |
| | | const state = reactive<UserState>({ |
| | | title: '', |
| | | isShowUserDialog: false, |
| | | userForm: { |
| | | name: '', // 账户名称 |
| | | realName: '', // 用户昵称 |
| | | pwd: '', // 账户密码 |
| | | roleIds: [], // 关联角色 |
| | | depId: null, // 部门 |
| | | phone: '', // 手机号 |
| | | idType: 1, |
| | | idSerial: '', |
| | | }, |
| | | userFormRules:{ |
| | | name: [{ required: true, message: '请填写用户名', trigger: 'blur' }], |
| | | realName: [{ required: true, message: '请填写真实姓名', trigger: 'blur' }], |
| | | roleIds: [{ required: true, message: '请选择用户角色', trigger: 'change' }], |
| | | depId: [{ required: true, message: '请选择部门', trigger: 'change' }], |
| | | phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }], |
| | | idType: [{ required: true, message: '请选择证件类型', trigger: 'blur' }], |
| | | pwd: [{ required: true, message: '请输入账户密码', trigger: 'blur' }], |
| | | }, |
| | | departmentData: [], // 部门数据 |
| | | roleData: [], //角色数据 |
| | | isAdd: true |
| | | }); |
| | | // 打开弹窗 |
| | | const openDialog = (type: string, value: any, departmentList: [], roleList: []) => { |
| | | state.isShowUserDialog = true; |
| | | state.departmentData = departmentList; |
| | | state.roleData = roleList; |
| | | if (type === '新增') { |
| | | state.title = '新增用户'; |
| | | state.isAdd = true |
| | | state.userForm = { |
| | | name: '', |
| | | realName: '', |
| | | roleIds: [], |
| | | depId: null, |
| | | phone: '', |
| | | idType: 1, |
| | | idSerial: '', |
| | | pwd: '' |
| | | }; |
| | | } else { |
| | | state.title = '修改用户'; |
| | | state.isAdd = false |
| | | state.userForm = JSON.parse(JSON.stringify(value)); |
| | | state.userForm.roleIds = JSON.parse(JSON.stringify(value)).roles.map(i=>i.roleId) |
| | | } |
| | | }; |
| | | |
| | | // 新增修改 |
| | | const onSubmit = async () => { |
| | | userRef.value.validate(async (valid:Boolean) => { |
| | | if(valid){ |
| | | if(checkChineseName(state.userForm.realName) == false){ |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: '真实姓名格式有误', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | if(verifyPhone(state.userForm.phone) == false){ |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: '请输入正确的手机号', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | if(state.userForm.idSerial!=='' && verifyIdCard(state.userForm.idSerial) == false){ |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: '请输入正确的证件号码', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | if (state.title === '新增用户') { |
| | | let res = await userApi().addUser(state.userForm); |
| | | if (res.data.code === 100) { |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: '用户新增成功', |
| | | duration: 2000 |
| | | }); |
| | | state.isShowUserDialog = false; |
| | | context.emit('getUserList'); |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | } else { |
| | | const {name, realName, roleIds, depId, phone, idType, idSerial,id } = state.userForm |
| | | const data = {name, realName, roleIds, depId, phone, idType, idSerial,id} |
| | | let res = await userApi().modUser(data); |
| | | if (res.data.code === 100) { |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: '用户修改成功', |
| | | duration: 2000 |
| | | }); |
| | | state.isShowUserDialog = false; |
| | | context.emit('getUserList'); |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | } |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:'请完善基本信息' |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | }; |
| | | |
| | | // 页面加载时 |
| | | onMounted(() => { |
| | | |
| | | }); |
| | | return { |
| | | userRef, |
| | | openDialog, |
| | | onSubmit, |
| | | ...toRefs(state) |
| | | }; |
| | | } |
| | | }); |
| | | </script> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="system-user-container"> |
| | | <el-card shadow="hover"> |
| | | <div class="system-user-search mb15"> |
| | | <el-select v-model="userTableData.listQuery.searchParams.userIndentityId" placeholder="专家类型" clearable class="w100" style="max-width: 180px"> |
| | | <el-option v-for="item in expList" :key="item.id" :label="item.identity" :value="item.id"> </el-option> |
| | | </el-select> |
| | | <el-button size="default" type="primary" class="ml10" @click="searchByName()"> |
| | | <el-icon> |
| | | <ele-Search /> |
| | | </el-icon> |
| | | 查询 |
| | | </el-button> |
| | | <el-button size="default" class="ml10" @click="reset()"> |
| | | <el-icon> |
| | | <RefreshLeft /> |
| | | </el-icon> |
| | | 重置 |
| | | </el-button> |
| | | <!-- <el-button size="default" type="success" class="ml10" @click="onOpenUserDialog('新增', '')">--> |
| | | <!-- <el-icon>--> |
| | | <!-- <ele-FolderAdd />--> |
| | | <!-- </el-icon>--> |
| | | <!-- 新增专家--> |
| | | <!-- </el-button>--> |
| | | </div> |
| | | <el-table :data="userTableData.data" style="width: 100%"> |
| | | <el-table-column type="index" label="序号" width="60" /> |
| | | <el-table-column prop="name" label="用户名"/> |
| | | <el-table-column prop="realName" label="真实姓名"/> |
| | | <el-table-column prop="phone" label="手机号"/> |
| | | <el-table-column prop="depName" label="部门"></el-table-column> |
| | | <el-table-column prop="roles" label="关联角色"> |
| | | <template #default="scope"> |
| | | <span>{{ scope.row.roles.map(obj => obj.roleName).join('、') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="userIdentities" label="专家类型"> |
| | | <template #default="scope"> |
| | | <span>{{ scope.row.userIdentities.map(obj => obj.userIdentity).join('、') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="idType" label="证件类型"> |
| | | <template #default="scope"> |
| | | <span>{{idTypeList.find(item=>item.id == scope.row.idType)?.name}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="idSerial" label="证件号码"></el-table-column> |
| | | <!-- <el-table-column label="操作" width="100">--> |
| | | <!-- <template #default="scope">--> |
| | | <!-- <el-button :disabled="scope.row.userName === 'admin'" size="small" text type="primary" @click="onOpenUserDialog('修改', scope.row)">修改</el-button>--> |
| | | <!-- <el-button style="color: red" :disabled="scope.row.userName === 'admin'" size="small" text type="primary" @click="onRowDel(scope.row)">删除</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | <br /> |
| | | <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="page-position" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="userTableData.listQuery.pageIndex" background v-model:page-size="userTableData.listQuery.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="userTableData.total"> </el-pagination> |
| | | <br /> |
| | | <br /> |
| | | </el-card> |
| | | <userDialog ref="userRef" @getUserList="initUserTableData"/> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue'; |
| | | import { ElMessageBox, ElMessage } from 'element-plus'; |
| | | import userDialog from '/@/views/system/user/component/userDialog.vue'; |
| | | import { userApi } from '/@/api/systemManage/user'; |
| | | import { departmentApi } from '/@/api/systemManage/department'; |
| | | import { useRoleApi } from '/@/api/systemManage/role'; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface TableDataRow { |
| | | userName: string; |
| | | userNickname: string; |
| | | roleSign: string; |
| | | department: string[]; |
| | | phone: string; |
| | | email: string; |
| | | sex: string; |
| | | password: string; |
| | | overdueTime: Date; |
| | | status: boolean; |
| | | describe: string; |
| | | createTime: string; |
| | | } |
| | | interface idType{ |
| | | id: number, |
| | | name: string |
| | | } |
| | | |
| | | interface TableDataState { |
| | | userTableData: { |
| | | data: Array<TableDataRow>; |
| | | total: number; |
| | | loading: boolean; |
| | | listQuery: { |
| | | pageIndex: number; |
| | | pageSize: number; |
| | | searchParams:{ |
| | | userIndentityId: number | null |
| | | } |
| | | }; |
| | | }; |
| | | idTypeList: Array<idType> |
| | | depList: []; |
| | | roleList: []; |
| | | expList: []; |
| | | searchName:string |
| | | } |
| | | |
| | | export default defineComponent({ |
| | | name: 'experts', |
| | | components: { userDialog }, |
| | | setup() { |
| | | const userRef = ref(); |
| | | const state = reactive<TableDataState>({ |
| | | userTableData: { |
| | | data: [], |
| | | total: 0, |
| | | loading: false, |
| | | listQuery: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | searchParams:{ |
| | | userIndentityId: null |
| | | } |
| | | } |
| | | }, |
| | | idTypeList:[ |
| | | { |
| | | id: 1, |
| | | name: '身份证' |
| | | } |
| | | ], |
| | | depList: [], |
| | | roleList: [], |
| | | expList: [], |
| | | searchName: '' |
| | | }); |
| | | // 初始化表格数据 |
| | | const initUserTableData = async () => { |
| | | let res = await userApi().getExpertsList(state.userTableData.listQuery); |
| | | if (res.data.code === 100) { |
| | | state.userTableData.data = res.data.data; |
| | | state.userTableData.total = res.data.total; |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | const searchByName = () =>{ |
| | | initUserTableData() |
| | | } |
| | | |
| | | const reset = () =>{ |
| | | state.userTableData.listQuery={ |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | searchParams:{ |
| | | userIndentityId: null |
| | | } |
| | | } |
| | | initUserTableData() |
| | | } |
| | | |
| | | const getDepList = async () => { |
| | | let res = await departmentApi().getDepartmentList() |
| | | if (res.data.code === 100) { |
| | | state.depList = res.data.data; |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | const getRoleData = async () => { |
| | | let res = await useRoleApi().getRoleList(); |
| | | if (res.data.code === 100) { |
| | | state.roleList = res.data.data; |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | const getExpertsData = async () => { |
| | | let res = await useRoleApi().getExpList(); |
| | | if (res.data.code === 100) { |
| | | state.expList = res.data.data; |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | // 打开新增修改用户弹窗 |
| | | // const onOpenUserDialog = (type: string, value: any) => { |
| | | // console.log('打开',state.depList, state.roleList) |
| | | // userRef.value.openDialog(type, value, state.depList, state.roleList); |
| | | // }; |
| | | |
| | | // 删除用户 |
| | | // const onRowDel = (row: TableDataRow) => { |
| | | // ElMessageBox.confirm(`此操作将永久删除账户名称:“${row.name}”,是否继续?`, '提示', { |
| | | // confirmButtonText: '确认', |
| | | // cancelButtonText: '取消', |
| | | // type: 'warning' |
| | | // }) |
| | | // .then(async () => { |
| | | // let res = await userApi().deleteUser(row.id); |
| | | // if (res.data.code === 100) { |
| | | // ElMessage({ |
| | | // type: 'success', |
| | | // duration: 2000, |
| | | // message: '删除成功' |
| | | // }); |
| | | // await initUserTableData(); |
| | | // } else { |
| | | // ElMessage({ |
| | | // type: 'warning', |
| | | // message: res.data.msg |
| | | // }); |
| | | // } |
| | | // }) |
| | | // .catch(() => {}); |
| | | // }; |
| | | // 分页改变 |
| | | const onHandleSizeChange = (val: number) => { |
| | | state.userTableData.listQuery.pageSize = val; |
| | | initUserTableData(); |
| | | }; |
| | | // 分页改变 |
| | | const onHandleCurrentChange = (val: number) => { |
| | | state.userTableData.listQuery.pageIndex = val; |
| | | initUserTableData(); |
| | | }; |
| | | // 页面加载时 |
| | | onMounted(() => { |
| | | initUserTableData(); |
| | | getRoleData(); |
| | | getDepList(); |
| | | getExpertsData() |
| | | }); |
| | | return { |
| | | userRef, |
| | | reset, |
| | | onHandleSizeChange, |
| | | initUserTableData, |
| | | searchByName, |
| | | onHandleCurrentChange, |
| | | ...toRefs(state) |
| | | }; |
| | | } |
| | | }); |
| | | </script> |
| | | <style scoped> |
| | | :deep(.el-textarea.is-disabled .el-textarea__inner) { |
| | | background-color: var(--el-card-bg-color); |
| | | color: var(--el-input-text-color, var(--el-text-color-regular)); |
| | | } |
| | | :deep(.el-input.is-disabled .el-input__inner) { |
| | | color: var(--el-input-text-color, var(--el-text-color-regular)); |
| | | } |
| | | :deep(.el-input.is-disabled .el-input__wrapper) { |
| | | background-color: var(--el-card-bg-color); |
| | | } |
| | | </style> |
| | |
| | | <el-input v-model.trim="userForm.phone" placeholder="手机号" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="是否专家" prop="identityStatus"> |
| | | <el-radio-group v-model="userForm.identityStatus"> |
| | | <el-radio :label="0">是</el-radio> |
| | | <el-radio :label="1">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="userForm.identityStatus == 0"> |
| | | <el-form-item label="专家类型" prop="identityIds"> |
| | | <el-select v-model="userForm.identityIds" placeholder="专家类型" clearable class="w100" multiple> |
| | | <el-option v-for="item in expData" :key="item.id" :label="item.identity" :value="item.id"> </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="证件类型" prop="idType"> |
| | | <el-select v-model="userForm.idType" placeholder="证件类型" clearable class="w100"> |
| | |
| | | roleIds: Array<any> |
| | | depId: number | null; |
| | | phone: string; |
| | | identityStatus:number|null; |
| | | identityIds: Array<any> |
| | | pwd: string; |
| | | idType: number | null; |
| | | idSerial: string; |
| | |
| | | }, |
| | | departmentData: Array<DeptData>; |
| | | roleData: Array<roleData>; |
| | | expData: Array<roleData>; |
| | | isAdd:boolean |
| | | } |
| | | |
| | |
| | | roleIds: [], // 关联角色 |
| | | depId: null, // 部门 |
| | | phone: '', // 手机号 |
| | | identityStatus: null, |
| | | identityIds: [], |
| | | idType: 1, |
| | | idSerial: '', |
| | | }, |
| | |
| | | roleIds: [{ required: true, message: '请选择用户角色', trigger: 'change' }], |
| | | depId: [{ required: true, message: '请选择部门', trigger: 'change' }], |
| | | phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }], |
| | | identityStatus: [{ required: true, message: '请选择是否为专家', trigger: 'change' }], |
| | | identityIds: [{ required: true, message: '请选择专家类型', trigger: 'change' }], |
| | | idType: [{ required: true, message: '请选择证件类型', trigger: 'blur' }], |
| | | pwd: [{ required: true, message: '请输入账户密码', trigger: 'blur' }], |
| | | }, |
| | | departmentData: [], // 部门数据 |
| | | roleData: [], //角色数据 |
| | | expData: [], |
| | | isAdd: true |
| | | }); |
| | | // 打开弹窗 |
| | | const openDialog = (type: string, value: any, departmentList: [], roleList: []) => { |
| | | const openDialog = (type: string, value: any, departmentList: [], roleList: [],expList: []) => { |
| | | state.isShowUserDialog = true; |
| | | state.departmentData = departmentList; |
| | | state.roleData = roleList; |
| | | state.expData = expList |
| | | if (type === '新增') { |
| | | state.title = '新增用户'; |
| | | state.isAdd = true |
| | |
| | | roleIds: [], |
| | | depId: null, |
| | | phone: '', |
| | | identityStatus: null, |
| | | identityIds: [], |
| | | idType: 1, |
| | | idSerial: '', |
| | | pwd: '' |
| | |
| | | state.isAdd = false |
| | | state.userForm = JSON.parse(JSON.stringify(value)); |
| | | state.userForm.roleIds = JSON.parse(JSON.stringify(value)).roles.map(i=>i.roleId) |
| | | state.userForm.identityIds = JSON.parse(JSON.stringify(value)).userIdentities.map(i=>i.userIdentityId) |
| | | } |
| | | }; |
| | | |
| | |
| | | }); |
| | | return |
| | | } |
| | | if(state.userForm.identityStatus == 1){ |
| | | state.userForm.identityIds = [] |
| | | } |
| | | if (state.title === '新增用户') { |
| | | let res = await userApi().addUser(state.userForm); |
| | | if (res.data.code === 100) { |
| | |
| | | }); |
| | | } |
| | | } else { |
| | | const {name, realName, roleIds, depId, phone, idType, idSerial,id } = state.userForm |
| | | const data = {name, realName, roleIds, depId, phone, idType, idSerial,id} |
| | | const {name, realName, roleIds, depId, phone, idType, idSerial, id, identityStatus, identityIds } = state.userForm |
| | | const data = {name, realName, roleIds, depId, phone, idType, idSerial,id, identityStatus, identityIds} |
| | | let res = await userApi().modUser(data); |
| | | if (res.data.code === 100) { |
| | | ElMessage({ |
| | |
| | | idTypeList: Array<idType> |
| | | depList: []; |
| | | roleList: []; |
| | | expList: []; |
| | | searchName:string |
| | | } |
| | | |
| | |
| | | ], |
| | | depList: [], |
| | | roleList: [], |
| | | expList: [], |
| | | searchName: '' |
| | | }); |
| | | // 初始化表格数据 |
| | | const initUserTableData = async () => { |
| | | let res = await userApi().getUserList(state.userTableData.listQuery); |
| | | if (res.data.code === 200) { |
| | | if (res.data.code === 100) { |
| | | state.userTableData.data = res.data.data; |
| | | state.userTableData.total = res.data.total; |
| | | } else { |
| | |
| | | } |
| | | }; |
| | | |
| | | const getExpertsData = async () => { |
| | | let res = await useRoleApi().getExpList(); |
| | | if (res.data.code === 100) { |
| | | state.expList = res.data.data; |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | // 打开新增修改用户弹窗 |
| | | const onOpenUserDialog = (type: string, value: any) => { |
| | | console.log('打开',state.depList, state.roleList) |
| | | userRef.value.openDialog(type, value, state.depList, state.roleList); |
| | | userRef.value.openDialog(type, value, state.depList, state.roleList, state.expList); |
| | | }; |
| | | |
| | | // 删除用户 |
| | |
| | | onMounted(() => { |
| | | initUserTableData(); |
| | | getRoleData(); |
| | | getExpertsData(); |
| | | getDepList() |
| | | }); |
| | | return { |