yxh
13 小时以前 ad5e7a527167a86ca7969e874df9950a5c4e2ff9
src/views/project/externalperson/index.vue
@@ -56,6 +56,7 @@
      </el-table-column>
      <el-table-column label="账号编号" align="center" prop="userno" />
      <el-table-column label="账号名称" align="center" prop="username" />
      <el-table-column label="绩效科室" align="center" prop="deptName" width="140" />
      <el-table-column label="身份证号" width="200" align="center" prop="idcardno" />
      <el-table-column label="职称" align="center" prop="title">
        <template slot-scope="scope">
@@ -117,6 +118,27 @@
                  dict.label
                }}</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="hasUserType(form.usertype, 'performance')">
          <el-col :span="12">
            <el-form-item label="绩效科室" prop="deptId">
              <el-select
                v-model="form.deptId"
                placeholder="请选择绩效科室"
                clearable
                filterable
                style="width: 100%"
                @change="handleDeptChange"
              >
                <el-option
                  v-for="dept in deptList"
                  :key="dept.deptId"
                  :label="dept.deptName"
                  :value="dept.deptId"
                />
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
@@ -217,6 +239,7 @@
} from "@/api/project/organization";
import { getUserProfile } from "@/api/system/user";
import { listDept } from "@/api/system/dept";
export default {
  name: "Externalperson",
@@ -242,6 +265,8 @@
      //医疗机构列表
      unitList: [],
      // 绩效科室列表
      deptList: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
@@ -293,6 +318,20 @@
        ],
        depositbank: [
          { required: true, message: "请输入开户银行", trigger: "blur" }
        ],
        deptId: [
          {
            validator: (rule, value, callback) => {
              if (
                this.hasUserType(this.form.usertype, "performance") &&
                (value === null || value === undefined || value === "")
              ) {
                return callback(new Error("请选择绩效科室"));
              }
              return callback();
            },
            trigger: "change"
          }
        ]
      },      
    };
@@ -306,6 +345,7 @@
  created() {
    this.getUserProfile();
    this.getUnitList();
    this.getDeptList();
    // 默认不打开
    // this.getList();
  },
@@ -381,7 +421,9 @@
        updateBy: null,
        updateTime: null,
        pym: null,
        wbm: null
        wbm: null,
        deptId: null,
        deptName: null
      };
      this.resetForm("form");
    },
@@ -427,6 +469,9 @@
        this.form = response.data;
        //账号类别为多值(逗号分隔),表单用数组回显
        this.form.usertype = this.splitUserType(response.data.usertype);
        if (this.form.deptId !== null && this.form.deptId !== undefined && this.form.deptId !== "") {
          this.form.deptId = Number(this.form.deptId);
        }
        this.open = true;
        this.title = "人员/单位账号信息修改";
      });
@@ -440,6 +485,13 @@
            if (res.organizationid == this.form.unitno)
              this.form.unitname = res.organizationname;
          });
          //绩效科室:提交前按 deptId 回填 deptName
          if (this.form.deptId !== null && this.form.deptId !== undefined && this.form.deptId !== "") {
            const dept = this.deptList.find(
              item => String(item.deptId) === String(this.form.deptId)
            );
            this.form.deptName = dept ? dept.deptName : this.form.deptName;
          }
          //账号类别为多值:提交前转回逗号分隔的字符串
          this.form.usertype = this.joinUserType(this.form.usertype);
          console.log(this.form);
@@ -525,6 +577,23 @@
          console.log(this.unitList);
        }
      });
    },
    /** 绩效科室列表 */
    getDeptList() {
      listDept({}).then(response => {
        this.deptList = response.data || [];
      });
    },
    /** 绩效科室选择变化:同步名称 */
    handleDeptChange(deptId) {
      if (deptId === null || deptId === undefined || deptId === "") {
        this.form.deptName = null;
        return;
      }
      const dept = this.deptList.find(
        item => String(item.deptId) === String(deptId)
      );
      this.form.deptName = dept ? dept.deptName : null;
    }
  }
};