WXL
2024-09-11 b5a56d53e44c426fa188ba3e4e1db3eb779e2fd9
src/views/knowledge/questionnaire/compilequer/index.vue
@@ -41,7 +41,7 @@
        >
          <el-row :gutter="10">
            <el-col :span="10">
              <el-form-item label="问卷分类" prop="region">
              <el-form-item label="问卷分类" prop="categoryid">
                <el-select
                  v-model="ruleForm.categoryid"
                  size="medium"
@@ -65,7 +65,7 @@
              </el-form-item>
            </el-col>
            <el-col :span="10">
              <el-form-item label="评价类型">
              <el-form-item label="评价类型" prop="scoreType">
                <el-select
                  v-model="ruleForm.scoreType"
                  placeholder="请选择分类"
@@ -81,12 +81,12 @@
              </el-form-item>
            </el-col>
          </el-row>
          <el-form-item label="问卷标题" prop="name">
          <el-form-item label="问卷标题" prop="svyname">
            <div style="width: 30%">
              <el-input v-model="ruleForm.svyname"></el-input>
            </div>
          </el-form-item>
          <el-form-item label="问卷描述">
          <el-form-item label="问卷描述" prop="description">
            <el-input
              style="width: 40vw"
              type="textarea"
@@ -98,7 +98,19 @@
          ></el-form-item>
          <el-row>
            <el-form-item label="标签" prop="desc">
            <el-form-item  prop="dynamicTags" >
              <template #label>
                    标签
                    <el-tooltip
                      class="item"
                      effect="light"
                      content="准确、扼要、多重的标签,可以让您在系统使用中方便的查找到该模版。"
                      placement="top-start"
                    >
                      <i class="el-icon-warning-outline"></i>
                    </el-tooltip>
                    <!-- 在标签后插入红色星号 -->
                  </template>
              <div class="xinz-inf">
                <el-tag
                  :key="tag.tagname"
@@ -142,7 +154,18 @@
            </el-form-item>
          </el-row>
          <div class="xinz-infs">
            <el-form-item label="适用疾病" prop="region">
            <el-form-item >
              <template #label>
                适用疾病
                <el-tooltip
                  class="item"
                  effect="light"
                  content="选择好适用疾病后,可以方便您通过疾病诊断查找到对应的病人!"
                  placement="top-start"
                >
                  <i class="el-icon-warning-outline"></i>
                </el-tooltip>
              </template>
              <el-tag
                v-for="tag in displayedTags"
                :key="tag.icdid"
@@ -168,7 +191,7 @@
                ></el-input> </el-form-item
            ></el-col>
            <el-col :span="9">
              <el-form-item label="可用状态" prop="region">
              <el-form-item label="可用状态" prop="isAvailable">
                <el-radio-group v-model="ruleForm.isAvailable">
                  <el-radio
                    v-for="(item, index) in usable"
@@ -179,7 +202,7 @@
              </el-form-item></el-col
            >
          </el-row>
          <el-form-item label="问卷方式" prop="region">
          <el-form-item label="问卷方式" prop="suitway">
            <el-select
              v-model="ruleForm.suitway"
              size="medium"
@@ -198,37 +221,56 @@
            </el-select>
          </el-form-item>
          <el-form-item label="适用院区" prop="region">
            <el-select
              v-model="ruleForm.campus"
              size="medium"
              filterable
              placeholder="请选择分类"
          <el-row>
            <el-col :span="10"
              ><el-form-item label="适用院区" prop="region">
                <el-select
                  v-model="ruleForm.campus"
                  size="medium"
                  filterable
                  placeholder="请选择分类"
                >
                  <el-option
                    class="ruleFormaa"
                    v-for="item in courtyardlist"
                    :key="item.label"
                    :label="item.label"
                    :value="item.label"
                  >
                  </el-option>
                </el-select> </el-form-item
            ></el-col>
            <el-col :span="12"
              ><el-form-item label="适用科室" prop="region">
                <el-cascader
                style="width: 400px;"
                  v-model="tempDetpRelevanceslist"
                  :options="deptList"
                  :props="props"
                  :show-all-levels="false"
                  clearable
                >
                  <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-col
            >
              <el-option
                class="ruleFormaa"
                v-for="item in courtyardlist"
                :key="item.label"
                :label="item.label"
                :value="item.label"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="适用科室" prop="region">
            <el-cascader
              v-model="tempDetpRelevanceslist"
              :options="deptList"
              :props="props"
              :show-all-levels="false"
              clearable
          </el-row>
          <el-form-item label="问卷结束语" prop="conclusion">
            <el-input
              style="width: 40vw"
              type="textarea"
              autosize
              placeholder="请输入内容"
              v-model="ruleForm.conclusion"
            >
              <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-input
          ></el-form-item>
          <el-form-item>
            <el-button type="success" @click="nextstep('ruleForm')"
              >下一步</el-button
@@ -497,6 +539,16 @@
                    <el-radio :label="0">否</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-form-item label="选中提示" v-if="topicobj.scriptType != 1">
                  <el-input
                    style="width: 24vw"
                    type="textarea"
                    autosize
                    placeholder="请输入内容"
                    v-model="topicobj.prompt"
                  >
                  </el-input
                ></el-form-item>
                <div
                  v-if="topicobj.scriptType == 1 || topicobj.scriptType == 2"
                >
@@ -565,10 +617,10 @@
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row>
                    <el-row :gutter="10">
                    <el-row :gutter="10" v-if="topicobj.scriptType == 1">
                      <el-form-item label="选中提示">
                        <el-input
                          style="width: 20vw"
                          style="width: 24vw"
                          type="textarea"
                          autosize
                          placeholder="请输入内容"
@@ -1069,7 +1121,7 @@
                        </el-radio-group>
                      </el-form-item>
                    </el-row>
                    <el-row :gutter="10">
                    <el-row :gutter="10" v-if="item.scriptType == 1">
                      <el-form-item label="选中提示">
                        <el-input
                          style="width: 400px"
@@ -1179,11 +1231,42 @@
        svyTemplateLibScripts: [],
        tempDetpRelevances: [],
        svyLibTemplateTagList: [],
        scoreType:'4',
        isAvailable:'0'
      },
      indexform: {
        svyLibTemplateTargetoptions: [],
      },
      rules: {},
       // 表单校验
       rules: {
        categoryid: [
          { required: true, message: "问卷分类不能为空", trigger: "blur" },
        ],
        scoreType: [
          { required: true, message: "评价类型不能为空", trigger: "blur" },
        ],
        svyname: [
          { required: true, message: "问卷标题不能为空", trigger: "blur" },
        ],
        isAvailable: [
          { required: true, message: "可用状态不能为空", trigger: "blur" },
        ],
        scriptTopic: [
          { required: true, message: "题目标题不能为空", trigger: "blur" },
        ],
        ismandatory: [
          { required: true, message: "是否必填不能为空", trigger: "blur" },
        ],
        scriptType: [
          { required: true, message: "题目类型不能为空", trigger: "blur" },
        ],
        suitway: [
          { required: true, message: "问卷方式不能为空", trigger: "blur" },
        ],
        conclusion: [
          { required: true, message: "问卷结束语不能为空", trigger: "blur" },
        ],
      },
      rulesa: {},
      optionsclass: [], //分类列表
      optionlist: [
@@ -1277,9 +1360,23 @@
    };
  },
  activated() {
    console.log(this.id);
    if (this.id != this.$route.query.id) {
      this.getissueinfo();
      this.gettabList();
    } else {
      this.ruleForm.svyTemplateLibScripts =
        this.ruleForm.svyTemplateLibScripts.filter(
          (item) => item.isoperation != 3
        );
      this.ruleForm.svyLibTemplateTagList =
        this.ruleForm.svyLibTemplateTagList.filter(
          (item) => item.isoperation != 3
        );
      this.delScriptVOList = [];
      this.$forceUpdate();
      console.log(this.ruleForm.svyTemplateLibScripts);
    }
  },
  created() {
@@ -1337,11 +1434,14 @@
    // 获取数据
    getissueinfo() {
      this.id = this.$route.query.id;
      this.ruleForm = {
     this.ruleForm= {
        svyTemplateLibScripts: [],
        tempDetpRelevances: [],
        svyLibTemplateTagList: [],
      };
        scoreType:'4',
        isAvailable:'0'
      },
      this.topicobj = {};
      if (this.id) {
        getQtemplateobj({ svyid: this.id }).then((res) => {
@@ -1372,7 +1472,9 @@
    },
    submitForm(formName) {
      this.$modal.loading("正在修正保存数据,请稍候...");
      this.ruleForm.suitway = this.ruleForm.suitway.join(",");
      if (Array.isArray(this.ruleForm.suitway)) {
        this.ruleForm.suitway = this.ruleForm.suitway.join(",");
      }
      if (!this.ruleForm.categoryid) {
        this.ruleForm.categoryid = -1;
      }
@@ -1471,7 +1573,6 @@
    // 新增题目
    addtopic(row) {
      row.isoperation = 1;
      console.log(row, "row");
      row.svyLibScriptOptions.forEach((item) => {
        item.isoperation = 1;
      });
@@ -1490,7 +1591,6 @@
    handleUpdate(row) {
      this.topicobj = row;
      this.radioas = "";
      console.log(this.topicobj, "看数据");
      // getissuelist({ svyid: row.svyid }).then((res) => {
      // });
    },
@@ -1545,7 +1645,7 @@
          this.drawer = false;
          this.sortFn();
          this.$modal.msgSuccess("题目新增成功,保存模版失效");
          this.$modal.msgSuccess("题目新增成功,保存模板失效");
        });
    },
    // 新增变量
@@ -1799,7 +1899,7 @@
    sumArray(arr) {
      // const arrsum = arr;
      // arrsum.forEach((item) => {
      //   // 判断题目和模版层级
      //   // 判断题目和模板层级
      //   console.log(item, "一条链路");
      //   const totalScore = item.reduce((accumulator, current) => {
@@ -1826,7 +1926,7 @@
      if (allGreaterThanTen) {
        this.$modal.msgSuccess("分值校验成功");
      } else {
        this.$modal.msgError("题目分值累加和模版分值不符");
        this.$modal.msgError("题目分值累加和模板分值不符");
      }
    },