WXL
2024-08-27 b50917f4bdf0b05c028d76d8cdbde44a85ec8b91
测试完成
已修改11个文件
1182 ■■■■■ 文件已修改
src/api/system/user.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Regular/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/education/compilequer/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/questionbank/particulars/index.vue 295 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/questionnaire/compilequer/index.vue 423 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/questionnaire/index.vue 105 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/outsideChain.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/intention/index.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/templateku/configurat/index.vue 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/templateku/index.vue 107 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/user.js
@@ -21,7 +21,7 @@
// 新增用户
export function addUser(data) {
  return request({
    url: '/system/user',
    url: '/system/user/add',
    method: 'post',
    data: data
  })
src/components/Regular/index.vue
@@ -56,10 +56,11 @@
              >
              </el-input> </el-form-item
          ></el-col>
          <el-col :span="12"
          <el-col :span="12" v-show="branchFlag"
            ><el-form-item label="选中跳转">
              <el-input
                type="text"
                @blur="$emit('branchFlagfn', item.nextQuestion)"
                placeholder="请输入题目节点"
                v-model="item.nextQuestion"
                show-word-limit
@@ -272,6 +273,10 @@
      type: Boolean,
      default: true,
    },
    branchFlag: {
      type: Boolean,
      default: false,
    },
  },
  created() {
src/views/knowledge/education/compilequer/index.vue
@@ -142,6 +142,7 @@
                @change="handleInputConfirm"
                filterable
                remote
                allow-create
                reserve-keyword
                default-first-option
                :remote-method="remoteMethodtag"
src/views/knowledge/questionbank/particulars/index.vue
@@ -101,7 +101,7 @@
                ></el-col>
                <el-col :span="8"
                  ><el-form-item label="是否可用">
                    <el-radio-group v-model="topicobj.isAvailable">
                    <el-radio-group v-model="topicobj.isavailable">
                      <el-radio
                        v-for="(item, index) in usable"
                        :label="item.value"
@@ -348,6 +348,11 @@
                  topicobj.targetname ? "修改指标" : "+选择指标"
                }}</el-button></span
              >
              <span style="margin-left: 30px"
                ><el-button type="primary" @click="Saveproblem"
                  >保 存</el-button
                >
              </span>
            </div>
            <el-divider></el-divider>
            <el-form ref="form">
@@ -401,116 +406,120 @@
                </el-col>
              </el-row>
            </el-form>
            <div v-if="topicobj.scriptType != 4">
              <div class="headline">
                选项设置<span style="margin-left: 30px"
                  ><el-button type="primary" round @click="addoption"
                    >+新增</el-button
                  ></span
                >
              </div>
            <div>
              <el-divider></el-divider>
              <div v-if="topicobj.scriptType != 4">
                <div class="headline">
                  选项设置<span style="margin-left: 30px"
                    ><el-button type="primary" round @click="addoption"
                      >+新增</el-button
                    ></span
                  >
                </div>
                <div
                  class="topicxq"
                  v-for="item in topicobj.svyLibScriptOptions"
                  v-if="item.isoperation != 3"
                >
                  <el-row :gutter="10">
                    <el-col :span="11"
                      ><el-form-item label="选项名称">
                        <el-input
                          type="text"
                          placeholder="请输入选项分值"
                          v-model="item.optioncontent"
                          show-word-limit
                        >
                        </el-input> </el-form-item
                    ></el-col>
                    <el-col :span="11">
                      <el-form-item v-if="topicobj.scoretype == 1" label="分值">
                        <el-input
                          type="text"
                          placeholder="请输入选项分值"
                          v-model="item.score"
                          show-word-limit
                        >
                        </el-input>
                      </el-form-item>
                      <el-form-item
                        v-else-if="topicobj.scoretype == 2"
                        label="ABC等级"
                      >
                        <el-radio-group v-model="item.score">
                          <el-radio label="A">A</el-radio>
                          <el-radio label="B">B</el-radio>
                          <el-radio label="C">C</el-radio>
                        </el-radio-group>
                      </el-form-item>
                      <el-form-item
                        v-else-if="topicobj.scoretype == 3"
                        label="优良等级"
                      >
                        <el-radio-group v-model="item.score">
                          <el-radio label="优">优</el-radio>
                          <el-radio label="良">良</el-radio>
                          <el-radio label="差">差</el-radio>
                        </el-radio-group>
                      </el-form-item>
                    </el-col>
              <div
                class="topicxq"
                v-for="item in topicobj.svyLibScriptOptions"
                v-if="item.isoperation != 3"
              >
                <el-row :gutter="10">
                  <el-col :span="11"
                    ><el-form-item label="选项名称">
                      <el-input
                        type="text"
                        placeholder="请输入选项分值"
                        v-model="item.optioncontent"
                        show-word-limit
                      >
                      </el-input> </el-form-item
                  ></el-col>
                  <el-col :span="11">
                    <el-form-item v-if="topicobj.scoretype == 1" label="分值">
                      <el-input
                        type="text"
                        placeholder="请输入选项分值"
                        v-model="item.score"
                        show-word-limit
                      >
                      </el-input>
                    </el-form-item>
                    <el-form-item
                      v-else-if="topicobj.scoretype == 2"
                      label="ABC等级"
                    <el-col
                      :span="2"
                      :offsset="topicobj.scoretype == 4 ? 11 : 0"
                    >
                      <el-radio-group v-model="item.score">
                        <el-radio label="A">A</el-radio>
                        <el-radio label="B">B</el-radio>
                        <el-radio label="C">C</el-radio>
                      <el-button
                        type="danger"
                        icon="el-icon-delete"
                        circle
                        @click="deletexuanx(item)"
                      ></el-button>
                    </el-col>
                  </el-row>
                  <el-row :gutter="10">
                    <el-form-item label="预警提醒">
                      <el-radio-group v-model="item.isabnormal">
                        <el-radio :label="1">是</el-radio>
                        <el-radio :label="0">否</el-radio>
                      </el-radio-group>
                    </el-form-item>
                    <el-form-item
                      v-else-if="topicobj.scoretype == 3"
                      label="优良等级"
                    >
                      <el-radio-group v-model="item.score">
                        <el-radio label="优">优</el-radio>
                        <el-radio label="良">良</el-radio>
                        <el-radio label="差">差</el-radio>
                      </el-radio-group>
                    </el-form-item>
                  </el-col>
                  <el-col :span="2" :offsset="topicobj.scoretype == 4 ? 11 : 0">
                    <el-button
                      type="danger"
                      icon="el-icon-delete"
                      circle
                      @click="deletexuanx(item)"
                    ></el-button>
                  </el-col>
                </el-row>
                <el-row :gutter="10">
                  <el-form-item label="预警提醒">
                    <el-radio-group v-model="item.isabnormal">
                      <el-radio :label="1">是</el-radio>
                      <el-radio :label="0">否</el-radio>
                    </el-radio-group>
                  </el-form-item>
                </el-row>
                <el-row :gutter="10">
                  <el-form-item label="选中提示">
                    <el-input
                      style="width: 40vw"
                      type="textarea"
                      autosize
                      placeholder="请输入内容"
                      v-model="item.prompt"
                    >
                    </el-input
                  ></el-form-item>
                </el-row>
                <el-form-item label="选项文件" prop="sickness">
                  <div style="width: 40vw">
                    <el-upload
                      class="upload-demo"
                      :action="uploadImgUrl"
                      :headers="headers"
                      accept=".jpg,.png,image/*"
                      :on-success="handleChange.bind(this, item)"
                    >
                      <el-button size="small" type="primary"
                        >点击上传</el-button
                  </el-row>
                  <el-row :gutter="10">
                    <el-form-item label="选中提示">
                      <el-input
                        style="width: 40vw"
                        type="textarea"
                        autosize
                        placeholder="请输入内容"
                        v-model="item.prompt"
                      >
                    </el-upload>
                    <div style="margin: 20px">
                      <el-image
                        style="width: 100px; height: 100px"
                        :src="item.picturePath"
                        :preview-src-list="[...item.picturePath]"
                      </el-input
                    ></el-form-item>
                  </el-row>
                  <el-form-item label="选项文件" prop="sickness">
                    <div style="width: 40vw">
                      <el-upload
                        class="upload-demo"
                        :action="uploadImgUrl"
                        :headers="headers"
                        accept=".jpg,.png,image/*"
                        :on-success="handleChange.bind(this, item)"
                      >
                      </el-image>
                        <el-button size="small" type="primary"
                          >点击上传</el-button
                        >
                      </el-upload>
                      <div style="margin: 20px">
                        <el-image
                          style="width: 100px; height: 100px"
                          :src="item.picturePath"
                          :preview-src-list="[...item.picturePath]"
                        >
                        </el-image>
                      </div>
                    </div>
                  </div>
                </el-form-item>
                  </el-form-item>
                </div>
              </div>
              <div v-else class="topicxq">
                <el-input
@@ -610,11 +619,11 @@
          <el-table-column
            label="是否可用"
            align="center"
            key="isAvailable"
            prop="isAvailable"
            key="isavailable"
            prop="isavailable"
          >
            <template slot-scope="scope">
              <dict-tag :options="usable" :value="scope.row.isAvailable" />
              <dict-tag :options="usable" :value="scope.row.isavailable" />
            </template>
          </el-table-column>
          <el-table-column
@@ -763,6 +772,7 @@
        { value: "scriptTopic", table: "scriptTopic" },
      ],
      inputValueillness: "",
      testgovalue: "",
      required: [],
      themelist: [],
      languagelist: [],
@@ -829,9 +839,9 @@
    // 获取数据
    getissueinfo() {
      this.id = this.$route.query.id;
      this.topicobj.categoryid = Number(this.$route.query.categoryid);
      console.log(this.topicobj.categoryid);
      if (this.$route.query.categoryid) {
        this.topicobj.categoryid = Number(this.$route.query.categoryid);
      }
      this.topicobj.isavailable = "1";
      this.topicobj.language = "普通话";
      // 分类
@@ -937,35 +947,54 @@
    // 判断分值
    Scorejudgment() {
      let scorearr = this.topicobj.svyLibScriptOptions;
      let isValid = scorearr.every((score) => {
        if (score.score) {
          console.log(Number(score.score), this.topicobj.score, "分值");
          if (
            Number(score.score) < 0 ||
            Number(score.score) > Number(this.topicobj.score)
          ) {
            console.log(score, "错误分值");
      let isValid = scorearr.every((score, index) => {
        if (this.topicobj.scriptType == 1) {
          if (score.score) {
            if (
              Number(score.score) < 0 ||
              Number(score.score) > Number(this.topicobj.score)
            ) {
              console.log(score, "错误分值");
              this.$message({
                message: "选项分值必须在0到" + this.topicobj.score + "分之间",
                type: "warning",
              });
              return false;
            }
            return true;
          } else {
            this.$message({
              message: "选项分值必须在0到" + this.topicobj.score + "分之间",
              message: "选项分值未设置",
              type: "warning",
            });
            return false;
          }
        } else if (this.topicobj.scriptType == 2) {
          // 累加分值
          const totalScore = scorearr.reduce((acc, score) => {
            if (score.score) {
              return acc + Number(score.score);
            }
            return acc; // 如果 score.score 不存在,不累加
          }, 0);
          // 检查累加的分值是否等于 this.topicobj.score
          if (totalScore !== Number(this.topicobj.score)) {
            this.$message({
              message:
                "多选题选项分值总和必须等于 " + this.topicobj.score + " 分",
              type: "warning",
            });
            return false;
          }
          return true; // 如果总分正确,返回 true
        } else if (this.topicobj.scriptType == 4) {
          return true;
        } else if (this.topicobj.scriptType == 3) {
          return true;
        } else {
          this.$message({
            message: "选项分值未设置",
            type: "warning",
          });
          return false;
        }
      });
      if (isValid) {
        this.compileissue();
        // console.log("到保存了");
      }
    },
    Saveproblem() {
@@ -978,13 +1007,14 @@
    // 判断指标
    changefn(item) {
      console.log(item);
      if (this.topicobj.targetname || this.topicobj.svyLibScriptOptions[0]) {
        this.$modal
          .confirm("更改类型后选项将清空是否继续?")
          .then(() => {
            this.scriptTypels = this.topicobj.scriptType;
            this.topicobj.svyLibScriptOptions = [];
            this.topicobj.svyLibScriptOptions.forEach((item) => {
              item.isoperation = 3;
            });
          })
          .catch(() => {
            this.topicobj.scriptType = this.scriptTypels;
@@ -1001,8 +1031,6 @@
      console.log(this.topicobj.svyLibScriptOptions);
      if (this.topicobj.svyLibScriptOptions[index].id) {
        console.log(2);
        this.topicobj.svyLibScriptOptions[index].isoperation = 3;
      } else {
        this.topicobj.svyLibScriptOptions.splice(index, 1);
@@ -1055,12 +1083,10 @@
        tagcategoryid: "0",
      };
      listtag(tagqueryParams).then((response) => {
        console.log(response, "待选标签");
        this.optionstag = response.rows;
      });
    },
    handleClosetag(tag) {
      console.log(tag);
      console.log(this.dynamicTags.indexOf(tag));
      const lindex = this.dynamicTags.indexOf(tag);
      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
@@ -1331,8 +1357,7 @@
    border-radius: 4px;
    margin-top: 15px;
    margin-left: 10%;
    padding-left: 20px;
    padding-top: 15px;
    padding: 20px;
    border: 1px solid #dcdfe6;
    -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
      0 0 6px 0 rgba(0, 0, 0, 0.04);
src/views/knowledge/questionnaire/compilequer/index.vue
@@ -242,7 +242,18 @@
      </div>
      <!-- 问卷设置 -->
      <div v-if="Editprogress == 2">
        <div class="leftvlue-jbxx">问卷题目设置</div>
        <div class="leftvlue-jbxx">
          问卷题目设置
          <span style=""
            ><el-button
              type="warning"
              icon="el-icon-finished"
              round
              @click="test"
              >题目规则效验</el-button
            ></span
          >
        </div>
        <el-divider></el-divider>
        <div style="display: flex; justify-content: space-between">
          <div>
@@ -349,7 +360,15 @@
                  key="nextScriptno"
                  prop="nextScriptno"
                  :show-overflow-tooltip="true"
                />
                >
                  <template slot-scope="scope">
                    <span>{{
                      scope.row.nextScriptno == 0
                        ? "已是最后一题"
                        : scope.row.nextScriptno
                    }}</span>
                  </template>
                </el-table-column>
                <el-table-column
                  v-if="Operateit"
@@ -405,7 +424,7 @@
                      ></el-input> </el-form-item
                  ></el-col>
                  <el-col :span="12">
                    <el-form-item label="下题跳转" v-if="!topicobj.branchFlag">
                    <el-form-item label="下题跳转">
                      <el-input
                        v-model="topicobj.nextScriptno"
                        placeholder="请输入题号"
@@ -433,12 +452,16 @@
                        </el-option> </el-select></el-form-item
                  ></el-col>
                  <el-col :span="12">
                    <el-form-item label="题目分数">
                    <el-form-item
                      label="题目分值"
                      v-if="topicobj.scoretype == 1"
                    >
                      <el-input
                        v-model="topicobj.scriptTopic"
                        placeholder="请输入标题"
                      ></el-input> </el-form-item
                  ></el-col>
                        v-model="topicobj.score"
                        placeholder="请输入题号"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row :gutter="10">
@@ -465,20 +488,10 @@
                    </el-form-item></el-col
                  >
                </el-row>
                <el-row>
                  <el-col :span="12">
                    <el-form-item
                      label="题目分值"
                      v-if="topicobj.scoretype == 1"
                    >
                      <el-input
                        v-model="topicobj.score"
                        placeholder="请输入题号"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-form-item label="是否由选项配置跳转">
                <el-form-item
                  label="是否由选项配置跳转"
                  v-if="topicobj.scriptType == 1"
                >
                  <el-radio-group v-model="topicobj.branchFlag">
                    <el-radio :label="1">是</el-radio>
                    <el-radio :label="0">否</el-radio>
@@ -506,7 +519,7 @@
                      <el-col :span="8">
                        <el-form-item
                          v-if="topicobj.scoretype == 1"
                          label="分值"
                          label="选项分值"
                        >
                          <el-input
                            class="custom-width"
@@ -539,11 +552,12 @@
                        </el-form-item>
                      </el-col>
                    </el-row>
                    <el-row :gutter="10">
                    <el-row :gutter="10" v-if="topicobj.branchFlag == 1">
                      <el-col :span="20"
                        ><el-form-item label="下题跳转(序号)">
                          <el-input
                            type="text"
                            @blur="branchFlagfn"
                            placeholder="请输入题号"
                            v-model="item.nextQuestion"
                            show-word-limit
@@ -635,62 +649,61 @@
        <div class="leftvlue-jbxx">问卷预览</div>
        <el-divider></el-divider>
        <div class="preview-left">
          <!-- 单选 -->
          <div
            class="scriptTopic-dev"
            v-for="item in ruleForm.svyTemplateLibScripts"
            :key="item.sort"
            v-if="item.scriptType == 1"
          >
            <div class="dev-text">
              {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
          <div v-for="item in ruleForm.svyTemplateLibScripts">
            <!-- 单选 -->
            <div
              class="scriptTopic-dev"
              :key="item.sort"
              v-if="item.scriptType == 1"
            >
              <div class="dev-text">
                {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
              </div>
              <div class="dev-xx">
                <el-radio-group v-model="item.remark">
                  <el-radio
                    v-for="(items, index) in item.svyLibTemplateTargetoptions"
                    :key="index"
                    :label="index"
                    >{{ items.optioncontent }}</el-radio
                  >
                </el-radio-group>
              </div>
            </div>
            <div class="dev-xx">
              <el-radio-group v-model="item.remark">
                <el-radio
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="index"
                  >{{ items.optioncontent }}</el-radio
                >
              </el-radio-group>
            <!-- 多选 -->
            <div
              class="scriptTopic-dev"
              :key="item.sort"
              v-if="item.scriptType == 2"
            >
              <div class="dev-text">
                {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
              </div>
              <div class="dev-xx">
                <el-checkbox-group v-model="qremark">
                  <el-checkbox
                    v-for="(items, index) in item.svyLibTemplateTargetoptions"
                    :key="index"
                    :label="index"
                  >
                    {{ items.optioncontent }}
                  </el-checkbox>
                </el-checkbox-group>
              </div>
            </div>
          </div>
          <!-- 多选 -->
          <div
            class="scriptTopic-dev"
            v-for="item in ruleForm.svyTemplateLibScripts"
            :key="item.sort"
            v-if="item.scriptType == 2"
          >
            <div class="dev-text">
              {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group v-model="qremark">
                <el-checkbox
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="index"
                >
                  {{ items.optioncontent }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
          <!-- 填空 -->
          <div
            class="scriptTopic-dev"
            v-for="item in ruleForm.svyTemplateLibScripts"
            :key="item.sort"
            v-if="item.scriptType == 3"
          >
            <div class="dev-text">
              {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-input placeholder="请输入答案" v-model="radioas" clearable>
              </el-input>
            <!-- 填空 -->
            <div
              class="scriptTopic-dev"
              :key="item.sort"
              v-if="item.scriptType == 3"
            >
              <div class="dev-text">
                {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span>
              </div>
              <div class="dev-xx">
                <el-input placeholder="请输入答案" v-model="radioas" clearable>
                </el-input>
              </div>
            </div>
          </div>
        </div>
@@ -1487,13 +1500,10 @@
      this.sortFn();
    },
    sortFn() {
      console.log(this.ruleForm.svyTemplateLibScripts, "序前值");
      this.ruleForm.svyTemplateLibScripts.forEach((item, index) => {
        item.sort = Number(index) + 1;
        console.log(this.ruleForm.svyTemplateLibScripts.length, "length");
        if (item.sort == this.ruleForm.svyTemplateLibScripts.length) {
          item.nextScriptno = "已是最后一题";
          item.nextScriptno = 0;
        } else {
          item.nextScriptno = item.sort + 1;
        }
@@ -1626,14 +1636,12 @@
      this.illnessVisible = false;
      this.$modal.msgSuccess("编辑成功");
    },
    // --------------------------
    resetQuery() {
      this.queryParams = { pageNum: 1, pageSize: 10 };
      this.getaddtopiclist();
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
    // --------------------------
    // 问卷分数限制算法
    // 混合路线
    generateCombinations(arrays, currentIndex = 0, currentCombination = []) {
@@ -1657,16 +1665,13 @@
    },
    // 执行
    test() {
      const arrays = [
        ["2", "3", "4", "5"],
        ["1", "2", "5", "6"],
        ["3", "4", "5", "3"],
        ["3", "2", "5", "7"],
      ];
      console.log(this.ruleForm.svyTemplateLibScripts);
      const arraysa = [
        {
          id: 1,
          grade: "5",
          Topicjump: "2",
          branchFlag: "0",
          arr: [
            { name: "不错", skip: 2 },
            { name: "一般", skip: 2 },
@@ -1677,86 +1682,217 @@
        {
          id: 2,
          grade: "5",
          Topicjump: "4",
          branchFlag: "1",
          arr: [
            { name: "优秀", skip: 3 },
            { name: "优秀", skip: 4 },
            { name: "良好", skip: 3 },
            { name: "一般", skip: 3 },
            { name: "较差", skip: 4 },
            { name: "较差", skip: 3 },
          ],
        },
        {
          id: 3,
          grade: "5",
          Topicjump: "4",
          branchFlag: "1",
          arr: [
            { name: "是的", skip: 4 },
            { name: "不清楚", skip: 4 },
            { name: "不清楚", skip: 5 },
            { name: "还可", skip: 4 },
            { name: "一般", skip: 4 },
          ],
        },
        {
          id: 4,
          grade: "5",
          Topicjump: "5",
          branchFlag: "0",
          bac: null,
        },
        {
          id: 5,
          Topicjump: "0",
          branchFlag: "0",
          arr: [
            { name: "真不错", skip: null },
            { name: "还可以", skip: null },
            { name: "一般般", skip: null },
            { name: "不清楚", skip: null },
            { name: "真不错", skip: 0 },
            { name: "还可以", skip: 0 },
            { name: "一般般", skip: 0 },
            { name: "不清楚", skip: 0 },
          ],
        },
      ];
      // const newMixArray = this.generateCombinations(arrays);
      const newMixArray = this.getExecutionOrders(arraysa);
      const csnewMixArray = this.csgetExecutionOrders(arraysa);
      console.log(csnewMixArray, "测试全部路线");
      const newMixArray = this.getExecutionOrders(
        this.ruleForm.svyTemplateLibScripts
      );
      console.log(newMixArray, "全部路线");
      this.screen(newMixArray);
      this.sumArray(newMixArray);
    },
    getExecutionOrders(data) {
      let orders = [];
    // 遍历方法
    csgetExecutionOrders(arrays) {
      const allPaths = [];
      const findPath = (currentId, path) => {
        const current = arrays.find((item) => item.id.toString() === currentId);
        if (!current) return;
        path.push(current);
      const explore = (currentOrder, id) => {
        console.log(currentOrder, "currentOrder", id);
        const currentQuestion = data[currentOrder[currentOrder.length - 1]];
        if (
          currentQuestion.arr.some(
            (option) =>
              option.skip !== null && !currentOrder.includes(option.skip)
          )
        ) {
          currentQuestion.arr.forEach((option) => {
            if (option.skip !== null && !currentOrder.includes(option.skip)) {
              explore([...currentOrder, option.skip]);
            }
        if (current.branchFlag === "1") {
          current.arr.forEach((option) => {
            findPath(option.skip.toString(), path.slice());
          });
        } else {
          orders.push(
            currentOrder.map((id) => ({
              id: data[id].id,
              grade: data[id].grade,
            }))
          );
          const nextId = parseInt(current.Topicjump);
          if (nextId !== 0) {
            findPath(nextId.toString(), path.slice());
          } else {
            allPaths.push(path.slice());
          }
        }
      };
      console.log(data, "data");
      data.forEach((entry) => {
        explore([entry.id], entry.id);
      });
      return orders;
      findPath("1", []);
      return allPaths;
    },
    // 遍历方法
    getExecutionOrders(arrays) {
      const allPaths = [];
      const findPath = (currentId, path) => {
        const current = arrays.find(
          (item) => item.sort.toString() === currentId
        );
        if (!current) return;
        path.push(current);
        if (current.branchFlag == "1") {
          current.svyLibTemplateTargetoptions.forEach((option) => {
            findPath(option.nextQuestion.toString(), path.slice());
          });
        } else {
          const nextId = parseInt(current.nextScriptno);
          if (nextId !== 0) {
            findPath(nextId.toString(), path.slice());
          } else {
            allPaths.push(path.slice());
          }
        }
      };
      findPath("1", []);
      return allPaths;
    },
    // 数组求和
    sumArray(arr) {
      return arr.reduce((acc, curr) => acc + parseInt(curr), 0);
    },
    // 筛选错误路线
    screen(data) {
      const arraysGreaterThan10 = data.filter((arr) => this.sumArray(arr) > 21);
      // const arrsum = arr;
      // arrsum.forEach((item) => {
      //   // 判断题目和模版层级
      //   console.log(item, "一条链路");
      console.log(arraysGreaterThan10, "筛选错误路线大于13分");
      //   const totalScore = item.reduce((accumulator, current) => {
      //     return accumulator + Number(current.score);
      //   }, 0);
      //   console.log(totalScore);
      //   console.log(this.ruleForm.scriptScore);
      //   if (totalScore == this.ruleForm.scriptScore) {
      //     this.ClaimNofn(arr);
      //     this.$modal.msgSuccess("分数核验成功");
      //   }
      // });
      const allGreaterThanTen = arr.every((array) => {
        const totalScore = array.reduce((accumulator, current) => {
          return accumulator + current.score;
        }, 0);
        return totalScore == this.ruleForm.scriptScore;
      });
      if (allGreaterThanTen) {
        this.$modal.msgSuccess("题目分值累加和模版总分相符");
      } else {
        this.$modal.msgError("题目分值累加和模版分值不符");
      }
    },
    // 遍历是否重复是否都用上
    ClaimNofn(arr) {
      arr.forEach((item) => {
        const Aarr = item;
        const Barr = this.ruleForm.svyTemplateLibScripts;
        const notInB = A.filter(
          (itemA) => !B.some((itemB) => itemB.id === itemA.id)
        );
        if (notInB.length) {
          this.$modal.msgError("题目未全部使用");
        } else {
          this.$modal.msgSuccess("题目全部使用");
        }
      });
      arr.forEach((item) => {
        const idCount = arr.reduce((acc, item) => {
          acc[item.id] = (acc[item.id] || 0) + 1;
          return acc;
        }, {});
        const whether = item.values(idCount).some((count) => count > 1); // 如果有任何 id 的计数大于 1 就返回 true
        if (!whether) this.$modal.msgError("配置项有题目重复");
      });
    },
    // 题目和选项间的分值判断
    Scorejudgment() {
      let scorearr = this.topicobj.svyLibScriptOptions;
      let isValid = scorearr.every((score, index) => {
        if (this.topicobj.scriptType == 1) {
          if (score.score) {
            if (
              Number(score.score) < 0 ||
              Number(score.score) > Number(this.topicobj.score)
            ) {
              console.log(score, "错误分值");
              this.$message({
                message: "选项分值必须在0到" + this.topicobj.score + "分之间",
                type: "warning",
              });
              return false;
            }
            return true;
          } else {
            this.$message({
              message: "选项分值未设置",
              type: "warning",
            });
            return false;
          }
        } else if (this.topicobj.scriptType == 2) {
          // 累加分值
          const totalScore = scorearr.reduce((acc, score) => {
            if (score.score) {
              return acc + Number(score.score);
            }
            return acc; // 如果 score.score 不存在,不累加
          }, 0);
          // 检查累加的分值是否等于 this.topicobj.score
          if (totalScore !== Number(this.topicobj.score)) {
            this.$message({
              message:
                "多选题选项分值总和必须等于 " + this.topicobj.score + " 分",
              type: "warning",
            });
            return false;
          }
          return true; // 如果总分正确,返回 true
        } else if (this.topicobj.scriptType == 4) {
          return true;
        }
      });
      if (isValid) {
        this.compileissue();
      }
    },
    // ---------------------------------------------------------
    // 新问题新增
    addoption() {
      if (!this.indexform.svyLibTemplateTargetoptions) {
@@ -1783,6 +1919,13 @@
        this.$forceUpdate();
      } else {
        this.$message.error("图片插入失败");
      }
    },
    branchFlagfn(row) {
      console.log(row);
      if (this.topicobj.branchFlag == 1 && this.topicobj.nextScriptno != 0) {
        this.topicobj.nextScriptno =
          this.topicobj.svyLibTemplateTargetoptions[0].nextQuestion;
      }
    },
  },
@@ -1818,6 +1961,8 @@
    font-size: 20px;
  }
  .leftvlue-jbxx {
    display: flex; /* 使用 Flexbox 布局 */
    justify-content: space-between;
    font-size: 24px;
    border-left: 5px solid #41a1be;
    padding-left: 5px;
src/views/knowledge/questionnaire/index.vue
@@ -405,61 +405,60 @@
    <el-dialog title="随访题目预览" :visible.sync="topicVisible" width="50%">
      <div class="preview-left">
        <!-- 单选 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.svyTemplateLibScripts"
          :key="item.sort"
          v-if="item.scriptType == 1"
        >
          <div class="dev-text">
            {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
        <div v-for="item in topicform.svyTemplateLibScripts">
          <div
            class="scriptTopic-dev"
            :key="item.sort"
            v-if="item.scriptType == 1"
          >
            <div class="dev-text">
              {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-radio-group v-model="item.remark">
                <el-radio
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="index"
                  >{{ items.optioncontent }}</el-radio
                >
              </el-radio-group>
            </div>
          </div>
          <div class="dev-xx">
            <el-radio-group v-model="item.remark">
              <el-radio
                v-for="(items, index) in item.svyLibTemplateTargetoptions"
                :key="index"
                :label="index"
                >{{ items.optioncontent }}</el-radio
              >
            </el-radio-group>
          <!-- 多选 -->
          <div
            class="scriptTopic-dev"
            :key="item.sort"
            v-if="item.scriptType == 2"
          >
            <div class="dev-text">
              {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group v-model="qremark">
                <el-checkbox
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="index"
                >
                  {{ items.optioncontent }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
        </div>
        <!-- 多选 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.svyTemplateLibScripts"
          :key="item.sort"
          v-if="item.scriptType == 2"
        >
          <div class="dev-text">
            {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-checkbox-group v-model="qremark">
              <el-checkbox
                v-for="(items, index) in item.svyLibTemplateTargetoptions"
                :key="index"
                :label="index"
              >
                {{ items.optioncontent }}
              </el-checkbox>
            </el-checkbox-group>
          </div>
        </div>
        <!-- 填空 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.svyTemplateLibScripts"
          :key="item.sort"
          v-if="item.scriptType == 4"
        >
          <div class="dev-text">
            {{ item.sort }}、[问答]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-input placeholder="请输入答案" v-model="radioas" clearable>
            </el-input>
          <!-- 填空 -->
          <div
            class="scriptTopic-dev"
            :key="item.sort"
            v-if="item.scriptType == 4"
          >
            <div class="dev-text">
              {{ item.sort }}、[问答]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-input placeholder="请输入答案" v-model="radioas" clearable>
              </el-input>
            </div>
          </div>
        </div>
      </div>
src/views/outsideChain.vue
@@ -76,16 +76,18 @@
    getQuestionnaire() {
      let taskid = this.$route.query.param1;
      let patid = this.$route.query.param2;
      let taskname = this.$route.query.param3;
      let routertf = this.$route.query.param5;
      console.log(taskid, "taskid");
      console.log(patid, "patid");
      console.log(taskname, "patid");
      console.log(routertf, "routertf");
      // let taskid =
      //   "OFp7tn/B6x7IzKJetvGWHdSWBj7msRlnlj6am9dyuHTH6sEt4uBbVCUXs5kcF/e4O2W6vqHf2Bz9K3/evbYDmw==";
      // let patid =
      //   "CVk0j8O86AeCqhV5WPsBBYDg9fec0wDoDlP9imYK4wDBNIkxywZzMJEGlPagOxnq6qr2WYZo0U8MUGWRGnq8ZA==";
      // this.taskid = this.decrypt(taskid);
      this.taskid = this.decrypt(taskid);
      this.patid = this.decrypt(patid);
      this.taskid = taskid;
@@ -93,8 +95,8 @@
      console.log(this.taskid, "this.taskid");
      console.log(this.patid, "this.patid");
      // this.$modal.msgSuccess("用户id为" + this.patid);
      // this.$modal.msgSuccess("任务id为" + this.taskid);
      this.$modal.msgSuccess("用户id为" + this.patid);
      this.$modal.msgSuccess("任务id为" + this.taskid);
      let taskids = this.encrypt(this.taskid);
      let patids = this.encrypt(this.patid);
      getExternalfollowup({ param1: taskids, param2: patids }).then((res) => {
src/views/repositoryai/intention/index.vue
@@ -512,20 +512,6 @@
            <el-row v-if="!measurement">
              <el-col :span="24">
                <el-form-item label="适用场景" prop="suitWayList">
                  <!-- <el-select
                    class="el-select1"
                    v-model="indexform.suitWayList"
                    multiple
                    @change="changeselect"
                    placeholder="请选择"
                  >
                    <el-option
                      v-for="item in mode"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    ></el-option>
                  </el-select> -->
                  <el-checkbox-group v-model="indexform.suitWayList">
                    <el-checkbox v-for="item in mode" :label="item.value">{{
                      item.label
@@ -1279,6 +1265,7 @@
      this.indexform = {
        ivrLibaTargetTagList: [],
        targetoptionList: [],
        suitWayList: [],
      };
      this.dynamicTags = [];
      this.testuserList = [
src/views/repositoryai/templateku/configurat/index.vue
@@ -348,9 +348,16 @@
            @click="getaddtopiclist"
            >添加题目</el-button
          >
          <el-button
            type="success"
            icon="el-icon-edit-outline"
            round
            @click="Operateit = !Operateit"
            >{{ !Operateit ? "编辑题目" : "完整信息展示" }}</el-button
          >
        </div>
        <div class="presentation">
          <div class="presentation-left">
          <div :class="Operateit ? 'presentation-left' : 'spresentation-left'">
            <el-card class="box-card" style="min-height: 688px">
              <el-table
                v-loading="loading"
@@ -370,15 +377,40 @@
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  v-if="!Operateit"
                  label="问题话术"
                  align="center"
                  key="scriptContent"
                  prop="scriptContent"
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  v-if="!Operateit"
                  label="问题话术"
                  align="center"
                  key="scriptContent"
                  prop="scriptContent"
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  label="下题跳转"
                  align="center"
                  key="nextScriptno"
                  prop="nextScriptno"
                  :show-overflow-tooltip="true"
                >
                  <template slot-scope="scope">
                    <span>{{
                      scope.row.nextScriptno == 0
                        ? "已是最后一题"
                        : scope.row.nextScriptno
                    }}</span>
                  </template>
                </el-table-column>
                <el-table-column
                  label="操作"
                  v-if="Operateit"
                  align="center"
                  width="250"
                  class-name="small-padding fixed-width"
@@ -413,7 +445,7 @@
              </el-table>
            </el-card>
          </div>
          <div class="presentation-right">
          <div class="presentation-right" v-if="Operateit">
            <el-card class="box-card">
              <el-form
                :model="topicobj"
@@ -422,13 +454,21 @@
              >
                <div class="headline">题目设置详情</div>
                <el-row>
                  <el-col :span="20"
                  <el-col :span="12"
                    ><el-form-item label="题目标题">
                      <el-input
                        v-model="topicobj.scriptTopic"
                        placeholder="请从左侧列表选择"
                      ></el-input> </el-form-item
                  ></el-col>
                  <el-col :span="12">
                    <el-form-item label="下题跳转">
                      <el-input
                        v-model="topicobj.nextScriptno"
                        placeholder="请输入题号"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col :span="20"
@@ -469,14 +509,14 @@
                      </el-select> </el-form-item
                  ></el-col>
                  <el-col :span="12"
                    ><el-form-item label="取值类型">
                    ><el-form-item label="题目类型">
                      <el-select
                        v-model="topicobj.valueType"
                        v-model="topicobj.scriptType"
                        placeholder="请选择"
                        :disabled="true"
                      >
                        <el-option
                          v-for="item in valuetype"
                          v-for="item in askvaluetype"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
@@ -485,6 +525,15 @@
                      </el-select> </el-form-item
                  ></el-col>
                </el-row>
                <el-form-item
                  label="是否由选项配置跳转"
                  v-if="topicobj.scriptType == 1"
                >
                  <el-radio-group v-model="topicobj.branchFlag">
                    <el-radio :label="1">是</el-radio>
                    <el-radio :label="0">否</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-row>
                  <el-col :span="6">
                    <el-form-item label="问题语音" prop="verbaltrickyy">
@@ -556,6 +605,8 @@
                  <Regular
                    :TargetoptionList="topicobj.ivrLibaScriptTargetoptionList"
                    @deloption="deloption"
                    @branchFlagfn="branchFlagfn"
                    :branchFlag="topicobj.branchFlag ? true : false"
                    :controlsc="false"
                  />
                  <!-- 无匹配类型 -->
@@ -753,62 +804,64 @@
        <el-divider></el-divider>
        <div class="preview-left">
          <!-- 单选 -->
          <div
            class="scriptTopic-dev"
            v-for="item in valssu"
            :key="item.sort"
            v-if="item.valueType == 1"
          >
            <div class="dev-text">
              {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
          <div v-for="item in valssu">
            <!-- 单选 -->
            <div
              class="scriptTopic-dev"
              :key="item.sort"
              v-if="item.valueType == 1"
            >
              <div class="dev-text">
                {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
              </div>
              <div class="dev-xx">
                <el-radio-group v-model="item.remark">
                  <el-radio
                    v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                    :key="index"
                    :label="index"
                    >{{ items.targetvalue }}</el-radio
                  >
                </el-radio-group>
              </div>
            </div>
            <div class="dev-xx">
              <el-radio-group v-model="item.remark">
                <el-radio
                  v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                  :key="index"
                  :label="index"
                  >{{ items.targetvalue }}</el-radio
                >
              </el-radio-group>
            <!-- 多选 -->
            <div
              class="scriptTopic-dev"
              :key="item.sort"
              v-if="item.valueType == 2"
            >
              <div class="dev-text">
                {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
              </div>
              <div class="dev-xx">
                <el-checkbox-group v-model="item.remark">
                  <el-checkbox
                    v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                    :key="index"
                    :label="index"
                  >
                    {{ items.targetvalue }}
                  </el-checkbox>
                </el-checkbox-group>
              </div>
            </div>
          </div>
          <!-- 多选 -->
          <div
            class="scriptTopic-dev"
            v-for="item in valssu"
            :key="item.sort"
            v-if="item.valueType == 2"
          >
            <div class="dev-text">
              {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group v-model="item.remark">
                <el-checkbox
                  v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                  :key="index"
                  :label="index"
                >
                  {{ items.targetvalue }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
          <!-- 填空 -->
          <div
            class="scriptTopic-dev"
            v-for="item in valssu"
            :key="item.sort"
            v-if="item.valueType == 3"
          >
            <div class="dev-text">
              {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-input placeholder="请输入答案" v-model="radioas" clearable>
              </el-input>
            <!-- 填空 -->
            <div
              class="scriptTopic-dev"
              :key="item.sort"
              v-if="item.valueType == 3"
            >
              <div class="dev-text">
                {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span>
              </div>
              <div class="dev-xx">
                <el-input placeholder="请输入答案" v-model="radioas" clearable>
                </el-input>
              </div>
            </div>
          </div>
        </div>
@@ -1335,6 +1388,7 @@
      radioas: "", //填空题答案
      task: null, //是否来自任务
      taskform: null, //任务信息
      Operateit: true,
      indexform: {
        ivrLibaScriptTargetoptionList: [],
      },
@@ -1385,6 +1439,7 @@
      usable: [],
      required: [],
      valuetype: [],
      askvaluetype: [],
      mode: [],
      inputVisible: false,
      inputVisibleillness: false,
@@ -1451,6 +1506,7 @@
    this.usable = store.getters.usable;
    this.required = store.getters.required;
    this.valuetype = store.getters.valuetype;
    this.askvaluetype = store.getters.askvaluetype;
    this.languagelist = store.getters.languagelist;
    this.courtyardlist = store.getters.courtyardlist;
    this.precedencetype = store.getters.precedencetype;
@@ -1555,7 +1611,14 @@
      });
      // 疾病列
    },
    //
    // 选项配置跳转触发
    branchFlagfn(row) {
      if (this.topicobj.branchFlag == 1 && this.topicobj.nextScriptno != 0) {
        this.topicobj.nextScriptno =
          this.topicobj.ivrLibaScriptTargetoptionList[0].nextQuestion;
      }
    },
    //保存
    submitForm(formName) {
      if (this.ruleForm.id) {
        this.ruleForm.isoperation = 2;
@@ -1874,16 +1937,20 @@
    },
    // 问题排序
    sortFn() {
      this.ruleForm.ivrLibaTemplateScriptVOList =
        this.ruleForm.ivrLibaTemplateScriptVOList.map((item, index) => {
          return Object.assign({}, item, { sort: (index + 1).toString() });
        });
      this.ruleForm.ivrLibaTemplateScriptVOList.forEach((question, index) => {
        question.ivrLibaScriptTargetoptionList =
          question.ivrLibaScriptTargetoptionList.map((option) => {
            option.nextQuestion = Number(question.sort) + 1;
            return option;
      this.ruleForm.ivrLibaTemplateScriptVOList.forEach((item, index) => {
        item.sort = Number(index) + 1;
        console.log(1);
        if (item.sort == this.ruleForm.ivrLibaTemplateScriptVOList.length) {
          item.nextScriptno = 0;
        } else {
          item.nextScriptno = item.sort + 1;
        }
        if (item.ivrLibaScriptTargetoptionList) {
          item.ivrLibaScriptTargetoptionList.forEach((items) => {
            items.nextQuestion = Number(item.sort) + 1;
          });
        }
      });
      console.log(this.ruleForm.ivrLibaTemplateScriptVOList);
    },
@@ -2092,6 +2159,16 @@
      color: #f52727;
    }
  }
  .spresentation-left {
    width: 100%;
    // height: 500px;
    .button-textxg {
      color: #024df0;
    }
    .button-textsc {
      color: #f52727;
    }
  }
  .presentation-right {
    width: 55%;
    max-height: 688px;
src/views/repositoryai/templateku/index.vue
@@ -416,62 +416,61 @@
    <!-- 随访题目预览 -->
    <el-dialog title="随访题目预览" :visible.sync="topicVisible" width="50%">
      <div class="preview-left">
        <!-- 单选 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.ivrLibaTemplateScriptVOList"
          :key="item.targetid"
          v-if="item.valueType == 1"
        >
          <div class="dev-text">
            {{ item.targetid }}、[单选]<span>{{ item.scriptContent }}</span>
        <div v-for="item in topicform.ivrLibaTemplateScriptVOList">
          <!-- 单选 -->
          <div
            class="scriptTopic-dev"
            :key="item.targetid"
            v-if="item.valueType == 1"
          >
            <div class="dev-text">
              {{ item.targetid }}、[单选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-radio-group v-model="item.remark">
                <el-radio
                  v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                  :key="index"
                  :label="index"
                  >{{ items.targetvalue }}</el-radio
                >
              </el-radio-group>
            </div>
          </div>
          <div class="dev-xx">
            <el-radio-group v-model="item.remark">
              <el-radio
                v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                :key="index"
                :label="index"
                >{{ items.targetvalue }}</el-radio
              >
            </el-radio-group>
          <!-- 多选 -->
          <div
            class="scriptTopic-dev"
            :key="item.targetid"
            v-if="item.valueType == 2"
          >
            <div class="dev-text">
              {{ item.targetid }}、[多选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group v-model="item.remark">
                <el-checkbox
                  v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                  :key="index"
                  :label="index"
                >
                  {{ items.targetvalue }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
        </div>
        <!-- 多选 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.ivrLibaTemplateScriptVOList"
          :key="item.targetid"
          v-if="item.valueType == 2"
        >
          <div class="dev-text">
            {{ item.targetid }}、[多选]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-checkbox-group v-model="item.remark">
              <el-checkbox
                v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                :key="index"
                :label="index"
              >
                {{ items.targetvalue }}
              </el-checkbox>
            </el-checkbox-group>
          </div>
        </div>
        <!-- 填空 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.ivrLibaTemplateScriptVOList"
          :key="item.targetid"
          v-if="item.valueType == 3"
        >
          <div class="dev-text">
            {{ item.targetid }}、[填空]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-input placeholder="请输入答案" v-model="radioas" clearable>
            </el-input>
          <!-- 填空 -->
          <div
            class="scriptTopic-dev"
            :key="item.targetid"
            v-if="item.valueType == 3"
          >
            <div class="dev-text">
              {{ item.targetid }}、[填空]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-input placeholder="请输入答案" v-model="radioas" clearable>
              </el-input>
            </div>
          </div>
        </div>
      </div>
vue.config.js
@@ -9,7 +9,7 @@
const name = process.env.VUE_APP_TITLE || '患者智慧服务系统' // 网页标题
const port = process.env.port || process.env.npm_config_port || 8096 // 端口
const port = process.env.port || process.env.npm_config_port || 8095 // 端口
// vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions