linwenling
2023-08-08 49bf04d7865d999463a024b82a6cd7608bb89507
ruoyi-ui/src/views/doctor/index.vue
@@ -52,27 +52,10 @@
      </el-form-item>
      <el-form-item label="类别" prop="type">
<!--        <el-input-->
<!--          v-model="queryParams.type"-->
<!--          placeholder="请输入症状"-->
<!--          clearable-->
<!--          style="width: 240px"-->
<!--          @keyup.enter.native="handleQuery">-->
<!--          <i slot="prefix" class="el-input__icon el-icon-search"></i>-->
<!--        </el-input>-->
        <el-select
          v-model="queryParams.type"
          placeholder="所有类别"
          clearable
          style="width: 240px"
          @keyup.enter.native="handleQuery"
        >
          <el-option
            v-for="item in typeOptions"
            :key="item.value"
            :label="item.label"
            :value="item.value"
          />
        <el-select v-model="queryParams.type" placeholder="所有类别" clearable
          style="width: 240px" @keyup.enter.native="handleQuery">
          <el-option v-for="item in typeOptions"
            :key="item.value" :label="item.label" :value="item.value"/>
        </el-select>
      </el-form-item>
@@ -202,11 +185,11 @@
    <el-table v-loading="loading" :data="doctorList" :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange"  :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;">
      <el-table-column type="selection" :reserve-selection="true" width="25"  align="center" />
      <el-table-column fixed label="序号" sortable type="index" align="center" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="60"/>
      <el-table-column label="类型" prop="type" sortable width="80" align="center">
      <el-table-column label="类别" prop="type" sortable width="80" align="center">
<!--        <template slot-scope="scope">{{ getSrc(scope.row.type) }}</template>-->
        <template slot-scope="scope">{{scope.row.type? scope.row.type: '————'}}</template>
      </el-table-column>
      <el-table-column label="症状" prop="symptom" sortable :show-overflow-tooltip="true" width="120" align="center" >
      <el-table-column  label="症状" prop="symptom" sortable :show-overflow-tooltip="true" width="120" align="center" >
        <template slot-scope="scope">{{scope.row.symptom? scope.row.symptom: '————'}}</template>
      </el-table-column>
      <el-table-column label="持续时间" prop="duration" sortable :show-overflow-tooltip="true" width="160" align="center" >
@@ -293,7 +276,7 @@
    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
      <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px">
        <el-form-item label="类型" prop="type">
        <el-form-item label="类别" prop="type">
          <el-select v-model="formDat.type" placeholder="请选择类别" clearable :style="{width: '100%'}"  >
            <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
            ></el-option>
@@ -409,7 +392,7 @@
//导入接口函数
import {listDoctor,enload,getDoctor, addDoctor,updateDoctor, delDoctor,uploadPic} from "@/api/doctor/index";
import {listDoctor,enload,getDoctor, addDoctor,updateDoctor, delDoctor,uploadPic,listType} from "@/api/doctor/index";
import { Notification, MessageBox, Message, Loading } from 'element-ui'
export default {
@@ -434,6 +417,7 @@
      total: 0,
      // 小医生表格数据
      doctorList: [],
      typeList:[],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
@@ -447,7 +431,8 @@
      // 日期范围
      dateRange: [],
      // 数据范围选项
      fot:[".jpg",".jif"],
      fot:['.bmp','.jpg','.jpeg','.png','.tif','.gif','.pcx','.tga','.exif','.fpx',
        '.svg','.psd','.cdr','.pcd','.dxf','.ufo','.eps','.ai','.aw','.WMF','.webp','.apng'],
      fileList:[],
      fileListOther:[],
      dsb:true,
@@ -496,7 +481,7 @@
        type: [{
          // required: true,
          message: '请输入类型',
          message: '请输入类别',
          trigger: 'blur'
        }],
        symptom: [{
@@ -536,23 +521,15 @@
          trigger: 'blur'
        }],
      },
      typeOptions: [{
        value:'神经科',
        label:'神经科'
      },{
        value:'牙科',
        label:'牙科'
      },{
        value:'内科',
        label:'内科'
      }],
      typeOptions: [],
      newOption: undefined,
      showInput: true
    };
  },
  created() {
    this.getList();
    this.getCateInfor()
    // this.getCateInfor();
    this.getTypeOptions();
    // for (let i = 0; i < this.contactList.length; i++) {
    //   this.formDat[i] = this.contactList[i];
    // }
@@ -580,6 +557,7 @@
        this.$set(this.formDat, 'type', newOption); // 更新formDat.type的值为新的选项
      }
    },
    /** 查询记录列表 */
    getList() {
      this.loading = true;
@@ -589,12 +567,37 @@
          //  alert(123)
          //   console.log(response.data)
          this.doctorList = response.data.data;
          this.total = response.data.total;
          this.loading = false;
        }
      );
      listType(this.queryParams).then(response => {
          this.typeList = response.data;
          this.total = response.data.total;
          // console.log( this.typeList )
        // 在回调函数中调用 getTypeOptions()
          this.getTypeOptions();
          this.loading = false;
        }
      );
    },
    getTypeOptions() {
      const filteredOptions = this.typeList.filter(item => typeof item === 'string' && item !== '');
      // 创建一个空对象用于存储唯一的字符串选项
      const uniqueOptions = {};
      // 构建下拉选项列表
      this.typeOptions = filteredOptions.reduce((options, option) => {
        if (!uniqueOptions[option]) {
          uniqueOptions[option] = true;
          options.push({
            label: option,
            value: option
          });
        }
        return options;
      }, []);
      },
    /** 查询类别信息 */
    // getCateInfor()
    // {