| | |
| | | :close-on-press-escape="false" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="150px" > |
| | | <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="150px"> |
| | | <el-form-item label="企业:" prop="companyId" v-if="state.isAdmin"> |
| | | <el-select v-model="state.form.companyId" placeholder="请选择" clearable @change="getDeptList()"> |
| | | <el-option |
| | | v-for="item in state.companyList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-col :span="12" v-if="state.title == '新增'"> |
| | | <el-form-item label="上级部门" prop="parentId"> |
| | | <!-- <el-tree-select--> |
| | | <!-- v-model="state.form.parentId"--> |
| | | <!-- :data="state.departList"--> |
| | | <!-- :props="{ value: 'deptId', label: 'deptName', children: 'children' }"--> |
| | | <!-- value-key="deptId"--> |
| | | <!-- placeholder="选择上级部门"--> |
| | | <!-- check-strictly--> |
| | | <!-- />--> |
| | | <el-select |
| | | clearable |
| | | v-model="state.form.parentId" |
| | | :disabled="state.title =='查看'" |
| | | filterable |
| | | placeholder="选择上级部门" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in state.departList" |
| | | :key="item.deptId" |
| | | :label="item.deptName" |
| | | :value="item.deptId" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="排序:" prop="orderNum"> |
| | | <el-input v-model.number.trim="state.form.orderNum" type="number" :disabled="state.title =='查看'" placeholder="排序"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-form-item label="部门名称:" prop="deptName"> |
| | | <el-input v-model.trim="state.form.deptName" :disabled="state.title =='查看'" placeholder="部门名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="是否是管理层:" prop="deptType" v-if="state.title !== '修改密码'"> |
| | | <el-radio-group v-model="state.form.deptType" :disabled="disabled"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="负责人:" prop="leaderUserId"> |
| | | <el-select clearable v-model="state.form.leaderUserId" :disabled="state.title =='查看'" filterable placeholder="负责人" style="width: 100%"> |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="主要负责部门:" prop="parentId"> |
| | | <el-select |
| | | clearable |
| | | v-model="state.form.parentId" |
| | | :disabled="state.title =='查看'" |
| | | filterable |
| | | placeholder="主要负责部门" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in state.departList" |
| | | :key="item.deptId" |
| | | :label="item.deptName" |
| | | :value="item.deptId" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="主要负责部门:" prop="childDeptIds">--> |
| | | <!-- <el-select--> |
| | | <!-- clearable--> |
| | | <!-- v-model="state.form.childDeptIds"--> |
| | | <!-- :disabled="state.title =='查看'"--> |
| | | <!-- filterable--> |
| | | <!-- multiple--> |
| | | <!-- placeholder="主要负责部门"--> |
| | | <!-- style="width: 100%"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in state.departList"--> |
| | | <!-- :key="item.deptId"--> |
| | | <!-- :label="item.deptName"--> |
| | | <!-- :value="item.deptId"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="部门涉及条款:" prop="caluseVO1List"> |
| | | <el-select |
| | | clearable |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="是否加入职能分配表" prop="responsType"> |
| | | <el-radio-group v-model="state.form.responsType" :disabled="disabled"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="2">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer v-if="state.title !='查看'"> |
| | | <span class="dialog-footer"> |
| | |
| | | import {ElMessage} from "element-plus"; |
| | | import {getDepart, getSysClause, saveDepart} from "@/api/orgStructure/depart"; |
| | | import {listUser} from "@/api/system/user"; |
| | | |
| | | const emit = defineEmits(["getList"]); |
| | | const dialogVisible = ref(false) |
| | | const superRef = ref() |
| | |
| | | parentId: null, |
| | | caluseVO1List: [], |
| | | delCaluseIds: [], |
| | | companyId: null |
| | | companyId: null, |
| | | responsType: 1, |
| | | childDeptIds: [], |
| | | orderNum: 0, |
| | | deptType: 0 |
| | | }, |
| | | isAdmin: false, |
| | | companyList: [], |
| | | userList: [], |
| | | departList: [], |
| | | sysClauseList: [], |
| | | oldClauseList: [], |
| | | formRules:{ |
| | | companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], |
| | | deptName: [{ required: true, message: '请输入部门名称', trigger: 'blur' }], |
| | | leaderUserId: [{ required: true, message: '请选择负责人', trigger: 'blur' }], |
| | | parentId: [{ required: true, message: '请选择负责部门', trigger: 'blur' }], |
| | | caluseVO1List: [{ required: true, message: '请选择设计条款', trigger: 'blur' }], |
| | | orderNum: [{ required: true, message: '请输入排序', trigger: 'blur' }] |
| | | // leaderUserId: [{ required: true, message: '请选择负责人', trigger: 'blur' }], |
| | | // parentId: [{ required: true, message: '请选择负责部门', trigger: 'blur' }], |
| | | // caluseVO1List: [{ required: true, message: '请选择涉及条款', trigger: 'blur' }], |
| | | } |
| | | }) |
| | | |
| | |
| | | }); |
| | | const disabled = ref(false); |
| | | const userInfo = ref() |
| | | const openDialog = async (type, value, companyId) => { |
| | | await getUserList() |
| | | const openDialog = async (type, value, companyId, isAdmin, companyList) => { |
| | | state.isAdmin = isAdmin |
| | | if(isAdmin){ |
| | | state.companyList = companyList |
| | | } |
| | | await getUserList(companyId) |
| | | await getDepartList(companyId) |
| | | await getSysClauseList() |
| | | state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看'; |
| | |
| | | } |
| | | }); |
| | | state.oldClauseList = value.caluseVO1List |
| | | state.form.childDeptIds = value.sysDeptManageVoList?.map(i=>i.subDeptId) |
| | | state.form.responsType = Number(value.responsType) |
| | | state.form.deptType = Number(value.deptType) |
| | | }else{ |
| | | state.form.companyId = companyId |
| | | if(value.deptId && value.companyId){ |
| | | state.form.parentId = value.deptId |
| | | state.form.companyId = value.companyId |
| | | }else{ |
| | | state.form.companyId = companyId |
| | | } |
| | | } |
| | | dialogVisible.value = true |
| | | } |
| | | |
| | | const getUserList = async ()=> { |
| | | const res = await listUser() |
| | | const getUserList = async (companyId)=> { |
| | | const res = await listUser({pageIndex: 1,pageSize: 999, companyId: companyId}) |
| | | if(res.code == 200){ |
| | | state.userList = res.data.list?res.data.list:[] |
| | | }else{ |
| | |
| | | } |
| | | }; |
| | | |
| | | const getDeptList = async ()=>{ |
| | | await getDepartList(state.form.companyId) |
| | | await getUserList(state.form.companyId) |
| | | } |
| | | |
| | | const getDepartList = async (companyId)=> { |
| | | const params = { |
| | | pageNum: 1, |
| | | pageSize: 999, |
| | | companyId: companyId |
| | | } |
| | | const res = await getDepart(params) |
| | |
| | | return { |
| | | clauseId: i.id, |
| | | clauseNum: i.clauseNum, |
| | | content: i.name, |
| | | content: i.clauseNum+'-'+i.name, |
| | | id: null |
| | | } |
| | | }) |
| | |
| | | const onSubmit = async () => { |
| | | const valid = await superRef.value.validate(); |
| | | if(valid){ |
| | | state.form.caluseVO1List = state.form.caluseVO1List.map(i=>{ |
| | | return { |
| | | ...i, |
| | | content: i.content.split('-')[1] |
| | | } |
| | | }) |
| | | state.form.delCaluseIds = state.oldClauseList.filter(oldItem => !state.form.caluseVO1List.some(newItem => newItem.id === oldItem.id)).map(item => item.id) |
| | | if(!state.form.parentId){ |
| | | state.form.parentId = 0 |
| | | } |
| | | const res = await saveDepart(state.form) |
| | | if(res.code == 200){ |
| | | ElMessage.success(res.message) |
| | |
| | | parentId: null, |
| | | caluseVO1List: [], |
| | | delCaluseIds: [], |
| | | companyId: null |
| | | companyId: null, |
| | | responsType: 1, |
| | | childDeptIds: [], |
| | | orderNum: 0, |
| | | deptType: 0 |
| | | } |
| | | |
| | | superRef.value.clearValidate(); |