马宇豪
2024-12-02 02ad7cd1aaa98f25b9a3dd6a73a037c70006f001
src/views/safetyReview/projectManage/components/expertsList.vue
@@ -10,6 +10,7 @@
              <el-input
                  v-model.trim="queryParams.name"
                  placeholder="姓名"
                  clearable
                  style="width: 250px"
              />
            </el-form-item>
@@ -17,25 +18,27 @@
              <el-input
                  v-model.trim="queryParams.phone"
                  placeholder="手机号"
                  clearable
                  style="width: 250px"
              />
            </el-form-item>
            <el-form-item label="等级">
              <el-select v-model="queryParams.level" style="width: 250px" placeholder="等级" >
              <el-select v-model="queryParams.ratingLevel"   clearable style="width: 250px" placeholder="等级" >
                <el-option
                    v-for="item in levelList"
                    :key="item.id"
                    :label="item.name"
                    :value="item.name"
                    :value="item.id"
                />
              </el-select>
            </el-form-item>
            <el-form-item label="专业领域">
              <el-cascader
                  clearable
                  style="width: 100%"
                  v-model="expertType"
                  :options="domainList"
                  :props="{ expandTrigger: 'hover',value: 'id',label: 'classifyName' }"
                  :props="{ expandTrigger: 'hover',value: 'classifyName',label: 'classifyName' }"
                  @change="professionChange"
                  >
              </el-cascader>
@@ -104,9 +107,9 @@
    pageSize: 10,
    name: '',
    phone: '',
    level: '',
    domain: null,
    post: ''
    ratingLevel: '',
    smallClassify: null,
    bigClassify: null,
  },
  total: 0,
  choosed: [],
@@ -134,16 +137,27 @@
const tableRef = ref()
const { queryParams, total, expertList, domainList, levelList , dialogVisible,title,selected, expertType } = toRefs(data);
const openDialog = (type,choosedData) => {
  getDomain()
const openDialog = (type,choosedData,domainList) => {
  research()
  data.choosed = choosedData
  data.choosed.forEach(item => {
    tableRef.value.toggleRowSelection(item, true);
  nextTick(() => {
    tableRef.value.clearSelection()
  })
  data.dialogVisible = true
  data.choosed = choosedData.map(item => {
    return{
      ...item,
      id: item.expertId ? item.expertId : item.id
    }
  })
  nextTick(() => {
    data.choosed.forEach(item => {
      tableRef.value.toggleRowSelection(item, true);
    })
  })
  data.domainList = domainList
  data.selected = []
  data.title = type
  data.dialogVisible = true
}
const onSubmit = async () => {
@@ -155,6 +169,8 @@
    emit('getName',data.title,data.choosed)
    tableRef.value.clearSelection()
    data.dialogVisible = false
  }else{
    ElMessage.warning('请选择专家')
  }
}
@@ -162,7 +178,7 @@
  loading.value = true;
  const res = await getExpertsList(data.queryParams)
  if(res.code == 200){
    data.expertList = res.data.list.map(item => {
    data.expertList = res.rows.map(item => {
      return{
        ...item,
        birthdayName: item.birthday ? item.birthday.slice(0,10) : '',
@@ -190,7 +206,7 @@
        }
      })
    })
    data.total = res.data.total
    data.total = res.total
  }else{
    ElMessage.warning(res.msg)
  }
@@ -201,14 +217,14 @@
  projectRef.value.openDialog(val);
}
const getDomain = async () => {
  const res = await getExpertTypes()
  if(res.code == 200){
    data.domainList = res.data
  }else{
    ElMessage.warning(res.message)
  }
}
// const getDomain = async () => {
//   const res = await getExpertTypes()
//   if(res.code == 200){
//     data.domainList = res.data
//   }else{
//     ElMessage.warning(res.message)
//   }
// }
const select = ((selection, row) => {
  // data.expertList.forEach(item => {
@@ -241,15 +257,16 @@
    pageSize: 10,
    name: '',
    phone: '',
    level: '',
    domain: null,
    post: ''
    ratingLevel: '',
    smallClassify: null,
    bigClassify: null,
  }
  getList()
}
const professionChange=(value)=> {
  console.log(value,'val')
  data.queryParams.domain = value[1]
}
defineExpose({