zhouwx
昨天 c644a5afed704b804d23e97a0434491c55abc400
src/views/build/conpanyFunctionConsult/orgStructure/departManage/components/departDialog.vue
@@ -8,9 +8,59 @@
        :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%">
@@ -22,23 +72,24 @@
            />
          </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
@@ -58,6 +109,12 @@
            />
          </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">
@@ -73,7 +130,6 @@
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()
@@ -87,17 +143,25 @@
    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' }],
  }
})
@@ -106,8 +170,12 @@
});
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' ? '编辑' : '查看';
@@ -119,14 +187,22 @@
      }
    });
    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{
@@ -134,10 +210,13 @@
  }
};
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)
@@ -155,7 +234,7 @@
      return {
        clauseId: i.id,
        clauseNum: i.clauseNum,
        content: i.name,
        content: i.clauseNum+'-'+i.name,
        id: null
      }
    })
@@ -167,7 +246,16 @@
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)
@@ -188,7 +276,11 @@
    parentId: null,
    caluseVO1List: [],
    delCaluseIds: [],
    companyId: null
    companyId: null,
    responsType: 1,
    childDeptIds: [],
    orderNum: 0,
    deptType: 0
  }
  superRef.value.clearValidate();