WXL (wul)
6 天以前 51461f369f0b0ad1da96346afee5637302f1525b
src/views/patient/propaganda/QuestionnaireTask.vue
@@ -214,7 +214,6 @@
                <!-- 药品关联 -->
                <el-row v-if="form.appltype == 6">
                  <el-col :span="20">
                    <el-form-item label="关联药品" prop="region">
                      <el-select
                        v-model="medicalCodes"
@@ -231,7 +230,7 @@
                      >
                        <el-option
                          v-for="item in medicalOptions"
                          :key="item.id"
                        :key="item.itemCode"
                          :label="
                            item.itemName + ' (' + item.manufacturerName + ')'
                          "
@@ -239,7 +238,74 @@
                        />
                      </el-select>
                    </el-form-item>
                  <div
                    style="
                      margin-bottom: 20px;
                      padding: 8px 12px;
                      background-color: #f0f9ff;
                      border-left: 4px solid #409eff;
                    "
                  >
                    <p style="margin: 0; color: #606266; font-size: 13px">
                      <i
                        class="el-icon-info"
                        style="color: #409eff; margin-right: 6px"
                      ></i>
                      针对同一药品在多科室/病区下存在的情况,可选择性配置固定科室/病区
                    </p>
                  </div>
                  <el-row :gutter="20" style="margin-top: 20px">
                    <el-col :span="12">
                      <el-form-item label="关联科室" prop="diseaseDept">
                        <el-select
                          v-model="diseaseDept"
                          style="width: 100%"
                          clearable
                          filterable
                          placeholder="请选择科室(可选)"
                          value-key="deptCode"
                          @change="handleDiseaseDeptChange"
                        >
                          <el-option
                            v-for="item in belongDepts"
                            :key="item.deptCode"
                            :label="item.deptName"
                            :value="item"
                          ></el-option>
                        </el-select>
                        <div v-if="diseaseDept" class="selected-info">
                          已选择: {{ diseaseDept.deptName }} ({{
                            diseaseDept.deptCode
                          }})
                        </div>
                      </el-form-item>
                  </el-col>
                    <el-col :span="12">
                      <el-form-item label="关联病区" prop="diseaseWard">
                        <el-select
                          v-model="diseaseWard"
                          style="width: 100%"
                          clearable
                          filterable
                          placeholder="请选择病区(可选)"
                          value-key="districtCode"
                          @change="handleDiseaseWardChange"
                        >
                          <el-option
                            v-for="item in belongWards"
                            :key="item.districtCode"
                            :label="item.districtName"
                            :value="item"
                          ></el-option>
                        </el-select>
                        <div v-if="diseaseWard" class="selected-info">
                          已选择: {{ diseaseWard.districtName }} ({{
                            diseaseWard.districtCode
                          }})
                        </div>
                      </el-form-item>
                    </el-col>
                  </el-row>
                </el-row>
                <!-- 科室关联 -->
@@ -1280,6 +1346,7 @@
  getTaskpatientQC,
  taskoperhospgetsondel,
  taskdiaghospgetsondel,
  taskmedicaldel,
  getillnesslist,
  getbaseopera,
  Externallist,
@@ -1296,6 +1363,7 @@
  getQtemplateclassify,
  taskdepthospgetsondel,
  taskdepthospgetsonlist,
  taskmedicallist,
  taskdiaggetlist,
  rwztaskdepthospgetsonlist,
  rwztaskdiaggetlist,
@@ -1813,21 +1881,6 @@
              districtCode: this.form.leavehospitaldistrictcode,
              districtName: this.form.leavehospitaldistrictname,
            };
            // 药品关联回显
            if (this.form.medicalCode) {
              this.medicalCodes = this.form.medicalCode
                .split(",")
                .filter(Boolean);
              // 加载已选药品的选项列表(用于展示 label)
              const codes = this.form.medicalCode;
              listMedication({
                itemCode: codes,
                pageNum: 1,
                pageSize: 200,
              }).then((res) => {
                this.medicalOptions = res.rows || [];
              });
            }
            this.overallCase = this.form.patTaskRelevances.concat();
            this.checkList = this.form.preachform
              ? this.form.preachform.split(",")
@@ -2057,6 +2110,8 @@
    listDept() {
      this.leavehospitaldistrictcodes = [];
      this.deptcodesWards = [];
      this.medicalCodes = [];
      this.medicalOptions = [];
      // this.queryParamsdept.taskId = this.form.taskid;
      this.queryParamsdept.taskId = this.form.taskid;
@@ -2101,6 +2156,22 @@
                this.hosplist.push(item);
                this.leavehospitaldistrictcodes.push(item.deptCode);
              }
            });
          }
        });
        // 获取关联药品
        taskmedicallist(this.queryParamsdept).then((res) => {
          if (res.code == 200) {
            let arr = res.rows || [];
            arr.forEach((item) => {
              const code = item.itemCode || item.medicalCode;
              this.medicalCodes.push(code);
              this.medicalOptions.push({
                ...item,
                itemCode: code,
                itemName: item.itemName || item.medicalName,
                manufacturerName: item.manufacturerName || item.medicalCompany
              });
            });
          }
        });
@@ -2199,9 +2270,14 @@
        }
      );
    },
    // 删除已选药品
    // 删除已选药品(单独接口)
    removeMedical(code) {
      taskmedicaldel({ medicalCode: code, taskId: this.form.taskid }).then((res) => {
        if (res.code == 200) {
      this.medicalCodes = this.medicalCodes.filter((c) => c !== code);
          this.$modal.msgSuccess("删除成功");
        }
      });
    },
    // ---------- 患者选择 ----------
@@ -2761,8 +2837,12 @@
        this.form.icd10name = this.diagglist
          .map((item) => item.icdname)
          .join(",");
        // 疾病/手术关联的科室/病区校验
        if (this.form.appltype == 3 || this.form.appltype == 4) {
        // 疾病/手术/药品关联的科室/病区校验
        if (
          this.form.appltype == 3 ||
          this.form.appltype == 4 ||
          this.form.appltype == 6
        ) {
          const hasDept = this.diseaseDept?.deptCode;
          const hasWard = this.diseaseWard?.districtCode;
          if (!hasDept && !hasWard) {