From 0dfb988295a64f92ac8f66d4917d3894daba0814 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期五, 24 二月 2023 08:41:57 +0800 Subject: [PATCH] 修改外包代码 --- src/views/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue | 1 src/views/system/user/index.vue | 29 +++ src/api/systemManage/duty/index.ts | 48 ++++++ src/views/system/duty/index.vue | 172 ++++++++++++++++++++++++ src/api/workInjuryDeclaration/index.ts | 2 src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue | 1 src/views/system/user/component/userDialog.vue | 20 ++ src/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue | 2 src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue | 2 src/views/system/duty/component/dutyDialog.vue | 139 +++++++++++++++++++ 10 files changed, 407 insertions(+), 9 deletions(-) diff --git a/src/api/systemManage/duty/index.ts b/src/api/systemManage/duty/index.ts new file mode 100644 index 0000000..2cd8030 --- /dev/null +++ b/src/api/systemManage/duty/index.ts @@ -0,0 +1,48 @@ +import request from '/@/utils/request'; + +export function dutyApi() { + return { + // v1 + getDutyList: (data: any) => { + return request({ + url: import.meta.env.VITE_API_URL + `/position/page/list`, + method: 'post', + data: data + }); + }, + addDuty: (data: any) => { + return request({ + url: import.meta.env.VITE_API_URL + `/position/add`, + method: 'post', + data: data + }); + }, + modDuty: (data: any) => { + return request({ + url: import.meta.env.VITE_API_URL + `/position/mod`, + method: 'post', + data: data + }); + }, + delDuty: (data: any) => { + return request({ + url: import.meta.env.VITE_API_URL + `/position/del`, + method: 'post', + data: data + }); + }, + getAllList: (data: any) => { + return request({ + url: import.meta.env.VITE_API_URL + `/position/list`, + method: 'post', + data: data + }); + } + // getAllUser: () => { + // return request({ + // url: import.meta.env.VITE_API_URL + `/account/list`, + // method: 'get' + // }); + // } + }; +} diff --git a/src/api/workInjuryDeclaration/index.ts b/src/api/workInjuryDeclaration/index.ts index 630f412..6067d1c 100644 --- a/src/api/workInjuryDeclaration/index.ts +++ b/src/api/workInjuryDeclaration/index.ts @@ -100,7 +100,7 @@ // 工伤申报详情 seeAccidentManagementSystem: (params: number) => { return request({ - url: import.meta.env.VITE_API_URL_OUT + `workInjuryDeclaration/info/${params}`, + url: import.meta.env.VITE_API_URL_OUT + `/workInjuryDeclaration/info/${params}`, method: 'get' }); }, diff --git a/src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue b/src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue index 26ef659..3bab4db 100644 --- a/src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue +++ b/src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue @@ -17,6 +17,7 @@ :disabled="disabled" :props="propse" :data="newTreeList" + check-strictly class="w100" placeholder="请选择" /> diff --git a/src/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue b/src/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue index cccc214..eee828d 100644 --- a/src/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue +++ b/src/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue @@ -19,7 +19,7 @@ </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="申报人部门" placeholder="请选择" prop="declareDepartmentId"> - <el-tree-select v-model="ruleForm.declareDepartmentId" :disabled="disabled" + <el-tree-select v-model="ruleForm.declareDepartmentId" :disabled="disabled" check-strictly :data="newTreeList" :props="propse" class="w100" placeholder="请选择" /> </el-form-item> </el-col> diff --git a/src/views/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue b/src/views/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue index 302da1e..3d013b2 100644 --- a/src/views/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue +++ b/src/views/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue @@ -25,6 +25,7 @@ <el-tree-select v-model="ruleForm.responsibleDepartment" :data="data" class="w100" + check-strictly placeholder="请选择"/> </el-form-item> </el-col> diff --git a/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue b/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue index a15475d..60888ec 100644 --- a/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue +++ b/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue @@ -129,7 +129,7 @@ if (res.data.code === '200') { ElMessage({ type: 'success', - message: '生巡检指标修改成功', + message: '巡检指标修改成功', duration: 2000 }); state.isShowInspectTargetDialog = false; diff --git a/src/views/system/duty/component/dutyDialog.vue b/src/views/system/duty/component/dutyDialog.vue new file mode 100644 index 0000000..adf1874 --- /dev/null +++ b/src/views/system/duty/component/dutyDialog.vue @@ -0,0 +1,139 @@ +<template> + <div class="system-add-user-container"> + <el-dialog :title="title" v-model="isShowUserDialog" width="769px"> + <el-form :model="dutyForm" size="default" ref="dutyRef" :rules="dutyFormRules" 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="positionName"> + <el-input v-model.trim="dutyForm.positionName" 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="positionCode"> + <el-input v-model.trim="dutyForm.positionCode" 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 { dutyApi } from '/@/api/systemManage/duty'; + +// 定义接口来定义对象的类型 +interface DeptData {} +interface roleData {} +interface sexData {} +interface UserState { + title: string; + disabled: boolean; + isShowUserDialog: boolean; + dutyForm: { + positionName:string; + positionCode:string + }; + dutyFormRules:{} +} + +export default defineComponent({ + name: 'dutyDialog', + setup(props, context) { + const dutyRef = ref() + const state = reactive<UserState>({ + title: '', + disabled: false, + isShowUserDialog: false, + dutyForm: { + positionName: '', + positionCode: '' + }, + dutyFormRules:{ + positionName: [{ required: true, message: '请填写职务名称', trigger: 'blur' }], + positionCode: [{ required: true, message: '请填写职务编号', trigger: 'blur' }] + } + }); + // 打开弹窗 + const openDialog = (type: string, value: any) => { + state.isShowUserDialog = true; + if (type === '新增') { + state.disabled = false + state.title = '新增职务'; + state.dutyForm = { + positionName: '', + positionCode: '' + }; + } else { + state.disabled = true + state.title = '修改职务'; + state.dutyForm = JSON.parse(JSON.stringify(value)); + } + }; + + // 新增修改 + const onSubmit = async () => { + dutyRef.value.validate(async (valid:Boolean) => { + if(valid){ + if (state.title === '新增职务') { + let res = await dutyApi().addDuty(state.dutyForm); + if (res.data.code === '200') { + ElMessage({ + type: 'success', + message: '职务新增成功', + duration: 2000 + }); + state.isShowUserDialog = false; + context.emit('getDutyList') + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } else { + let res = await dutyApi().modDuty(state.dutyForm); + if (res.data.code === '200') { + ElMessage({ + type: 'success', + message: '职务修改成功', + duration: 2000 + }); + state.isShowUserDialog = false; + context.emit('getDutyList') + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } + }else{ + ElMessage({ + type:'warning', + message:'请完善基本信息' + }) + } + }) + + }; + + // 页面加载时 + onMounted(() => {}); + return { + dutyRef, + openDialog, + onSubmit, + ...toRefs(state) + }; + } +}); +</script> diff --git a/src/views/system/duty/index.vue b/src/views/system/duty/index.vue new file mode 100644 index 0000000..f54bc82 --- /dev/null +++ b/src/views/system/duty/index.vue @@ -0,0 +1,172 @@ +<template> + <div class="system-user-container"> + <el-card shadow="hover"> + <div class="system-user-search mb15"> + <el-input size="default" v-model.trim="listQuery.searchParams.positionName" placeholder="请输入职务名称" style="max-width: 180px;margin-left: 10px;margin-right: 10px"> </el-input> + <el-button size="default" type="primary" class="ml10" @click="initDutyTableData"> + <el-icon> + <ele-Search /> + </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="data" style="width: 100%"> + <el-table-column type="index" label="序号" width="60" align="center"/> + <el-table-column prop="positionName" label="职务名称" show-overflow-tooltip align="center"></el-table-column> + <el-table-column prop="createBy" label="创建人" show-overflow-tooltip align="center"></el-table-column> + <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip align="center"></el-table-column> + <el-table-column label="操作" width="100" align="center"> + <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="listQuery.pageIndex" background v-model:page-size="listQuery.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination> + <br /> + <br /> + </el-card> + <duty-dialog ref="dutyRef" @getDutyList="initDutyTableData" /> + </div> +</template> + +<script lang="ts"> +import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue'; +import { ElMessageBox, ElMessage } from 'element-plus'; +import dutyDialog from './component/dutyDialog.vue'; +import { dutyApi } from '/@/api/systemManage/duty'; +import { departmentApi } from '/@/api/systemManage/department'; +import { useRoleApi } from '/@/api/systemManage/role'; + +// 定义接口来定义对象的类型 +interface TableDataRow { + name: string; + info: string; + createTime: string; +} +interface TableDataState { + data: Array<TableDataRow>; + total: number; + loading: boolean; + listQuery: { + searchParams: { + positionName: string | null + positionCode: string | null + }; + pageIndex: number; + pageSize: number; + } +} + +export default defineComponent({ + name: 'systemDuty', + components: { dutyDialog }, + setup() { + const dutyRef = ref(); + const state = reactive<TableDataState>({ + data: [], + total: 0, + loading: false, + listQuery: { + searchParams: { + positionName: '', + positionCode: '' + }, + pageIndex: 1, + pageSize: 10 + } + }); + // 初始化表格数据 + const initDutyTableData = async () => { + let res = await dutyApi().getDutyList(state.listQuery); + if (res.data.code === '200') { + console.log(res.data.data,'res.data.data') + state.data = JSON.parse(JSON.stringify(res.data.data)); + state.total = res.data.total; + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; + + + // 打开新增修改职务弹窗 + const onOpenUserDialog = (type: string, value: any) => { + dutyRef.value.openDialog(type, value); + }; + + // 删除用户 + const onRowDel = (row: TableDataRow) => { + ElMessageBox.confirm(`此操作将永久删除该职务:“${row.positionName}”,是否继续?`, '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(async () => { + let res = await dutyApi().delDuty({ positionId: row.positionId }); + if (res.data.code === '200') { + ElMessage({ + type: 'success', + duration: 2000, + message: '删除成功' + }); + await initDutyTableData(); + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }) + .catch(() => {}); + }; + // 分页改变 + const onHandleSizeChange = (val: number) => { + state.listQuery.pageSize = val; + initDutyTableData(); + }; + // 分页改变 + const onHandleCurrentChange = (val: number) => { + state.listQuery.pageIndex = val; + initDutyTableData(); + }; + // 页面加载时 + onMounted(() => { + let a = { name: 1, c: { name: 1 } }; + let b = Object.assign({}, a); + b.c.name = 2; + initDutyTableData(); + }); + return { + dutyRef, + onOpenUserDialog, + onRowDel, + onHandleSizeChange, + initDutyTableData, + 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> diff --git a/src/views/system/user/component/userDialog.vue b/src/views/system/user/component/userDialog.vue index a72f115..97721db 100644 --- a/src/views/system/user/component/userDialog.vue +++ b/src/views/system/user/component/userDialog.vue @@ -26,6 +26,13 @@ </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="职务" prop="positionId"> + <el-select v-model="userForm.positionId" placeholder="请选择" clearable class="w100"> + <el-option v-for="item in dutyData" :key="item.positionId" :label="item.positionName" :value="item.positionId"> </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="phone"> <el-input v-model.trim="userForm.phone" placeholder="请输入手机号" clearable></el-input> </el-form-item> @@ -84,6 +91,7 @@ // 定义接口来定义对象的类型 interface DeptData {} interface roleData {} +interface dutyData {} interface sexData {} interface UserState { title: string; @@ -94,10 +102,10 @@ realName: string; roleId: number | null; depId: number | null; + positionId: number | null; phone: string; email: string; gender: number | null; - positionId: number | null; password: string; expireTime: string; status: number; @@ -108,6 +116,7 @@ }, departmentData: Array<DeptData>; roleData: Array<roleData>; + dutyData: Array<dutyData>; sexList: Array<sexData>; } @@ -129,7 +138,7 @@ identify: '', gender: null, // 性别 password: '', // 账户密码 - positionId: 1, // 岗位 + positionId: null, // 岗位 expireTime: '', // 账户过期 status: 1 // 用户状态 }, @@ -138,6 +147,7 @@ realName: [{ required: true, message: '请填写真实姓名', trigger: 'blur' }], roleId: [{ required: true, message: '请选择用户角色', trigger: 'change' }], depId: [{ required: true, message: '请选择部门', trigger: 'change' }], + positionId: [{ required: true, message: '请选择职务', trigger: 'change' }], phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }], gender: [{ required: true, message: '请选择性别', trigger: 'change' }], expireTime: [{ required: true, message: '请输入账户过期时间', trigger: 'blur' }], @@ -145,16 +155,18 @@ }, departmentData: [], // 部门数据 roleData: [], //角色数据 + dutyData:[], //职务数据 sexList: [ { id: 1, name: '男' }, { id: 0, name: '女' } ] }); // 打开弹窗 - const openDialog = (type: string, value: any, departmentList: [], roleList: []) => { + const openDialog = (type: string, value: any, departmentList: [], roleList: [], dutyList:[]) => { state.isShowUserDialog = true; state.departmentData = departmentList; state.roleData = roleList; + state.dutyData = dutyList if (type === '新增') { state.disabled = false state.title = '新增用户'; @@ -166,7 +178,7 @@ phone: '', email: '', identify: '', - positionId: 1, + positionId: null, gender: null, password: '', expireTime: '', diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 06e520f..713c50e 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -36,7 +36,11 @@ <el-tag type="success" v-else-if="scope.row.gender == 0">女</el-tag> </template> </el-table-column> - <el-table-column prop="role.roleName" label="关联角色" show-overflow-tooltip></el-table-column> + <el-table-column prop="positionId" label="职务" show-overflow-tooltip> + <template #default="scope"> + {{ parseNumber(scope.row.positionId) }} + </template> + </el-table-column> <el-table-column prop="department.depName" label="部门" show-overflow-tooltip></el-table-column> <el-table-column prop="phone" label="手机号" show-overflow-tooltip></el-table-column> <el-table-column prop="email" label="邮箱" show-overflow-tooltip></el-table-column> @@ -68,6 +72,7 @@ import { ElMessageBox, ElMessage } from 'element-plus'; import userDialog from '/@/views/system/user/component/userDialog.vue'; import { userApi } from '/@/api/systemManage/user'; +import { dutyApi } from '/@/api/systemManage/duty'; import { departmentApi } from '/@/api/systemManage/department'; import { useRoleApi } from '/@/api/systemManage/role'; @@ -104,6 +109,7 @@ }; departmentList: []; roleList: []; + dutyList: []; props:{} } @@ -129,6 +135,7 @@ }, departmentList: [], roleList: [], + dutyList: [], props: { label: 'depName', value: 'depId', @@ -150,6 +157,10 @@ } }; + // 回显职务信息 + const parseNumber = (value: number) => { + return state.dutyList.find((i) => i.positionId === value)?.positionName; + }; const getDepartmentData = async () => { let res = await departmentApi().getDepartmentList(); if (res.data.code === '200') { @@ -174,9 +185,21 @@ } }; + const getDutyData = async () => { + let res = await dutyApi().getAllList({positionName: '',positionCode: ''}); + if (res.data.code === '200') { + state.dutyList = res.data.data; + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; + // 打开新增修改用户弹窗 const onOpenUserDialog = (type: string, value: any) => { - userRef.value.openDialog(type, value, state.departmentList, state.roleList); + userRef.value.openDialog(type, value, state.departmentList, state.roleList, state.dutyList); }; // 删除用户 @@ -223,11 +246,13 @@ initUserTableData(); getDepartmentData(); getRoleData(); + getDutyData() }); return { userRef, onOpenUserDialog, onRowDel, + parseNumber, onHandleSizeChange, initUserTableData, onHandleCurrentChange, -- Gitblit v1.9.2