WXL
2024-01-11 3b774a197bd7087ee42999937ccc1e7e048eb1aa
src/views/knowledge/education/compilequer/index.vue
@@ -23,7 +23,7 @@
        >
          <el-form-item label="宣教分类" prop="region">
            <el-select
              v-model="ruleForm.groupID"
              v-model="ruleForm.assortid"
              size="medium"
              filterable
              placeholder="请选择分类"
@@ -38,39 +38,48 @@
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="宣教标题" prop="extName">
          <el-form-item label="宣教标题" prop="preachname">
            <div style="width: 30%">
              <el-input v-model="ruleForm.extName"></el-input>
              <el-input v-model="ruleForm.preachname"></el-input>
            </div>
          </el-form-item>
          <el-form-item label="宣教描述" prop="extName">
          <el-form-item label="宣教描述" prop="preachdescription">
            <div style="width: 30%">
              <el-input v-model="ruleForm.note"></el-input>
              <el-input v-model="ruleForm.preachdescription"></el-input>
            </div>
          </el-form-item>
          <el-form-item label="通知变量" prop="name">
            <el-row v-for="item in variablelist">
              <el-col :span="4">
                <el-input v-model="item.variable"></el-input>
              </el-col>
              <el-col :span="8" :offset="1">
                <el-input v-model="item.value"></el-input>
              </el-col>
              <el-col :span="4" :offset="1">
                <el-button
                  type="success"
                  icon="el-icon-plus"
                  circle
                  @click="addvariable(item)"
                ></el-button>
                <el-button
                  type="danger"
                  icon="el-icon-delete"
                  circle
                  @click="delvariable(item)"
                ></el-button>
              </el-col>
            </el-row>
            <div style="margin-bottom: 5px" v-for="item in variablelist">
              <el-row>
                <el-col :span="5">
                  <el-input
                    v-model="item.variatename"
                    placeholder="请输入变量名"
                  ></el-input>
                </el-col>
                <el-col :span="8" :offset="1">
                  <el-input
                    v-model="item.variate"
                    placeholder="请输入变量内容"
                  ></el-input>
                </el-col>
                <el-col :span="8" :offset="1">
                  <el-button
                    type="success"
                    icon="el-icon-plus"
                    circle
                    @click="addvariable(item)"
                  ></el-button>
                  <el-button
                    v-if="!item.default"
                    type="danger"
                    icon="el-icon-delete"
                    circle
                    @click="delvariable(item)"
                  ></el-button>
                </el-col>
              </el-row>
            </div>
          </el-form-item>
          <el-form-item label="文件" prop="sickness">
@@ -137,9 +146,8 @@
            <el-col :span="9">
              <el-form-item label="可用状态" prop="region">
                <el-select
                  v-model="ruleForm.isEnable"
                  v-model="ruleForm.isavailable"
                  size="medium"
                  multiple
                  filterable
                  placeholder="请选择分类"
                >
@@ -156,7 +164,7 @@
          </el-row>
          <el-form-item label="宣教方式" prop="region">
            <el-select
              v-model="ruleForm.way"
              v-model="ruleForm.suitway"
              size="medium"
              multiple
              filterable
@@ -164,10 +172,10 @@
            >
              <el-option
                class="ruleFormaa"
                v-for="item in xjxsoptions"
                :key="item.value"
                v-for="item in mode"
                :key="item.label"
                :label="item.label"
                :value="item.value"
                :value="item.label"
              >
              </el-option>
            </el-select>
@@ -215,7 +223,7 @@
          </el-form-item>
          <el-form-item label="适用院区" prop="region">
            <el-select
              v-model="ruleForm.courtyard"
              v-model="ruleForm.campus"
              size="medium"
              filterable
              placeholder="请选择分类"
@@ -231,22 +239,18 @@
            </el-select>
          </el-form-item>
          <el-form-item label="适用科室" prop="region">
            <el-select
              v-model="ruleForm.administrative"
              size="medium"
              multiple
              filterable
              placeholder="请选择分类"
            <el-cascader
              v-model="tempDetpRelevanceslist"
              :options="deptList"
              :props="props"
              :show-all-levels="false"
              clearable
            >
              <el-option
                class="ruleFormaa"
                v-for="item in options"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
              <template slot-scope="{ node, data }">
                <span>{{ data.deptName }}</span>
                <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
              </template>
            </el-cascader>
          </el-form-item>
          <el-form-item>
            <el-button type="success" @click="nextstep('ruleForm')"
@@ -264,10 +268,10 @@
          <el-col :span="12">
            <div>
              <el-button @click="laststep('ruleForm')">上一步</el-button>
              <el-button type="success" @click="submitForm('ruleForm')"
              <el-button type="success" @click="Departmenttreatment('ruleForm')"
                >保存</el-button
              >
              <el-button type="warning" @click="submitForm('ruleForm')"
              <el-button type="warning" @click="Departmenttreatment('ruleForm')"
                >另存新版本</el-button
              >
              <el-button type="info" @click="closeFm('ruleForm')"
@@ -276,6 +280,19 @@
            </div></el-col
          >
        </el-row>
        <el-row>
          <el-col :span="24">
            <div style="display: flex; margin-left: 66px; margin-bottom: 10px">
              <div
                v-for="item in variablelist"
                class="tsgname"
                @click="tsgnameto(item)"
              >
                {{ item.variatename }}
              </div>
            </div>
          </el-col></el-row
        >
        <div>
          <el-form
@@ -342,6 +359,7 @@
  illnesslistget,
  getillness,
} from "@/api/AiCentre/index";
import { listDept } from "@/api/system/dept";
// import * as Quill from "quill";
import Quill from "quill";
import { listtag } from "@/api/system/label";
@@ -459,6 +477,9 @@
      illnesslist: [],
      options: [],
      optionstag: [],
      deptList: [],
      tempDetpRelevanceslist: [],
      props: { multiple: true, value: "deptId", label: "deptName" },
      xjxsoptions: [
        {
          value: "1",
@@ -483,10 +504,9 @@
      addvalue: "添加题目",
      variablelist: [
        {
          variable: "paitent",
          value: "表示患者的标识",
        },
        { variatename: "姓名", variate: "${name}", default: 1 },
        { variatename: "电话", variate: "${phone}", default: 1 },
        { variatename: "病情", variate: "${illness}", default: 1 },
      ],
      // 查询参数
      queryParams: {
@@ -519,11 +539,20 @@
      this.loading = true;
      getlibraryinfo({ id: this.$route.query.id }).then((res) => {
        this.ruleForm = res.data;
        this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
        this.ruleForm.suitway = this.ruleForm.suitway.split(",");
        this.variablelist = JSON.parse(this.ruleForm.otherdata)
          ? JSON.parse(this.ruleForm.otherdata)
          : this.variablelist;
      });
      getheLibraryAssort({}).then((res) => {
        this.sortlist = res.rows;
        console.log(res);
      });
      listDept(this.queryParams).then((response) => {
        this.deptList = this.handleTree(response.data, "deptId");
      });
      this.loading = false;
    },
    /** 查询标签列表 */
    gettabList() {
@@ -537,18 +566,28 @@
        this.optionstag = response.rows;
      });
    },
    // 完成
    submitForm(formName) {
      this.rules = this.rulesa;
      //   提交
      this.$refs[formName].validate((valid) => {
        if (valid) {
          alert("submit!");
        } else {
          console.log("error submit!!");
          return false;
        }
      let tgs = [];
      this.dynamicTags.forEach((item) => {
        tgs.push(item.tagname);
      });
      this.ruleForm.labelInfo = tgs.join(",");
      this.ruleForm.otherdata = JSON.stringify(this.variablelist);
      this.ruleForm.suitway = this.ruleForm.suitway.join(",");
      if (this.id) {
        this.ruleForm.isoperation = 2;
        compilelibrary(this.ruleForm).then((response) => {
          this.$modal.msgSuccess("修改成功");
          this.$router.go(-1);
        });
      } else {
        this.ruleForm.isoperation = 1;
        compilelibrary(this.ruleForm).then((response) => {
          this.$modal.msgSuccess("新增成功");
          this.$router.go(-1);
        });
      }
    },
    // 下一步
    nextstep() {
@@ -577,6 +616,42 @@
          });
        });
    },
    // 科室处理
    Departmenttreatment() {
      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
      console.log(this.tempDetpRelevanceslist);
      const result = this.tempDetpRelevanceslist.map(
        (subArr) => subArr[subArr.length - 1]
      );
      console.log(result);
      // id数组查数组对象
      result.forEach((item) => {
        const condition = this.ruleForm.tempDetpRelevances.some(
          (obj) => obj.deptId === item
        );
        if (!condition) {
          listDept({ deptId: item }).then((res) => {
            console.log(res.data[0]);
            res.data[0].type = 2;
            this.ruleForm.tempDetpRelevances.push(res.data[0]);
          });
        }
      });
      console.log(this.ruleForm.tempDetpRelevances);
      // 数组对象查id数组
      this.ruleForm.tempDetpRelevances.forEach((item) => {
        const condition = result.some((obj) => obj === item.deptId);
        if (!condition) {
          const index = this.ruleForm.tempDetpRelevances.indexOf(item);
          this.ruleForm.tempDetpRelevances[index].delFlag = 1;
        }
      });
      console.log(this.ruleForm.tempDetpRelevances);
      setTimeout(() => {
        this.submitForm();
      }, 1000);
      // this.submitForm();
    },
    // 保存题目信息
    Saveproblem() {},
    /** 查询题目列表 */
@@ -584,8 +659,8 @@
    // 新增变量
    addvariable() {
      this.variablelist.push({
        variable: "",
        value: "",
        variatename: "",
        variate: "",
      });
    },
    // 删除变量
@@ -618,7 +693,7 @@
      console.log(this.dynamicTags.indexOf(tag));
      const lindex = this.dynamicTags.indexOf(tag);
      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
      this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3;
      this.ruleForm.heLibraryTagList[lindex].isoperation = 3;
    },
    handleInputConfirm() {
      let tagvalue = {};
@@ -639,7 +714,7 @@
              isoperation: 1,
            };
          }
          this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
          this.ruleForm.heLibraryTagList.push(tagvalue);
          this.dynamicTags.push(tagvalue);
        });
      }