WXL
2024-11-26 007d3884ad259883d7a5db6714876e46525ae717
测试完成
已添加3个文件
已删除1个文件
已修改17个文件
1249 ■■■■■ 文件已修改
dist.zip 补丁 | 查看 | 原始文档 | blame | 历史
src/api/AiCentre/external.js 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/AiCentre/index.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/AiCentre/patientexternal.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/logo/logoxh.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/logo/logoxh1.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/logo/logoxh2.png 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Regular/index.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/discharge/index.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/record/detailpage/index.vue 245 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/outsideChainnew.vue 199 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/patient/ExternalPatient.vue 282 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/patient/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/patient/profile/index.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/propaganda/Missioncreation.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/propaganda/particty.vue 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/templateku/configurat/index.vue 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/verbaltrick/index.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/verbaltrick/particulars/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dist.zip
Binary files differ
src/api/AiCentre/external.js
@@ -3,25 +3,25 @@
// å¤–链获取随访
export function getExternalfollowup(data) {
  return request({
    url: "/servicetask/getScriptInfoByCondition",
    url: "/smartor/servicetask/getScriptInfoByCondition",
    // url: "/servicetask/getScriptInfoByCondition",
    method: "post",
    data: data
  });
}
// åˆ é™¤é€šç”¨æ¨¡æ¿
// åˆ é™¤é€šç”¨æ¨¡æ¿s
export function geturlinfo(id) {
  return request({
    url: "/outPath/getInfoByParam",
    url: "/smartor/outPath/getInfoByParam",
    method: 'post',
    data: {param:id}
    params: {param:id}
  });
}
// æäº¤ã€éšè®¿
export function SetsaveQuestionAnswer(data) {
  return request({
    // url: "/ivrtaskcalldetail/saveQuestionAnswer",
    url: "/serviceSubtask/saveQuestionAnswer",
    url: "/smartor/serviceSubtask/saveQuestionAnswer",
    method: "post",
    data: data
  });
@@ -30,7 +30,7 @@
// ç¼“存问卷
export function Cachequestionnaire(data) {
  return request({
    url: "/subtaskAnswer/saveQuestionCache",
    url: "/smartor/subtaskAnswer/saveQuestionCache",
    method: "post",
    data: data
  });
@@ -38,7 +38,7 @@
// æ‹¿ç¼“存问卷
export function getCachequestionnaire(data) {
  return request({
    url: "/subtaskAnswer/getQuestionCache",
    url: "/smartor/subtaskAnswer/getQuestionCache",
    method: "post",
    data: data
  });
@@ -46,7 +46,7 @@
// æäº¤é—®å·
export function Submitaquestionnaire(data) {
  return request({
    url: "/subtaskAnswer/saveQuestionAnswer",
    url: "/smartor/subtaskAnswer/saveQuestionAnswer",
    method: "post",
    data: data
  });
@@ -68,3 +68,19 @@
    data: data
  });
}
// èŽ·å–è¯­éŸ³æœåŠ¡ï¼ˆå†…ï¼‰
export function getPersonVoices(data) {
  return request({
    url: "/smartor/smartor/serviceSubtaskDetail/getPersonVoice",
    method: "post",
    data: data
  });
}
// èŽ·å–è¯­éŸ³æœåŠ¡ï¼ˆå†…ï¼‰
export function updatePersonVoices(data) {
  return request({
    url: "/smartor/serviceSubtaskDetail/batchEdit",
    method: "post",
    data: data
  });
}
src/api/AiCentre/index.js
@@ -8,5 +8,4 @@
export * from './SingleTask'
export * from './external'
export * from './Homeimage'
export * from './patientexternal'
src/api/AiCentre/patientexternal.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
import request from "@/utils/request";
// åˆ é™¤å¤–部患者表
export function delExternal(Id) {
  return request({
    url: "/smartor/import/remove/" + Id,
    method: "get",
  });
}
// æŸ¥è¯¢å¤–部患者表
export function Externallist(data) {
  return request({
    url: "/smartor/import/list",
    method: "post",
    data: data,
  });
}
// ä¿®æ”¹å¤–部患者表
export function Externaledit(data) {
  return request({
    url: "/smartor/import/edit",
    method: "post",
    data: data,
  });
}
// æ‚£è€…详情
export function Externalpatient(userId) {
  return request({
    url: '/smartor/import/getInfo/' + userId,
    method: 'get',
  })
};
src/assets/logo/logoxh.png

src/assets/logo/logoxh1.png
Binary files differ
src/assets/logo/logoxh2.png
src/components/Regular/index.vue
@@ -1,6 +1,10 @@
<template>
  <div>
    <div class="topicxq" v-for="item in TargetoptionList">
    <div
      class="topicxq"
      v-for="item in TargetoptionList"
      v-if="item.isoperation != 3"
    >
      <el-form :inline="true" :rules="rules" :model="item" label-width="80px">
        <el-row :gutter="10">
          <el-col :span="12"
@@ -47,11 +51,11 @@
          ></el-col>
        </el-row>
        <el-form-item label="结束对话">
              <el-radio-group v-model="item.isEnd">
                <el-radio :label="1">是</el-radio>
                <el-radio :label="0">否</el-radio>
              </el-radio-group>
            </el-form-item>
          <el-radio-group v-model="item.isEnd">
            <el-radio :label="1">是</el-radio>
            <el-radio :label="0">否</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-row :gutter="10" v-if="intent">
          <el-col :span="12"
@@ -78,17 +82,17 @@
          ></el-col>
        </el-row>
        <el-row :gutter="10" v-if="scriptType == 1">
                      <el-form-item label="选中提示">
                        <el-input
                          style="width: 24vw"
                          type="textarea"
                          autosize
                          placeholder="请输入内容"
                          v-model="item.prompt"
                        >
                        </el-input
                      ></el-form-item>
                    </el-row>
          <el-form-item label="选中提示">
            <el-input
              style="width: 24vw"
              type="textarea"
              autosize
              placeholder="请输入内容"
              v-model="item.prompt"
            >
            </el-input
          ></el-form-item>
        </el-row>
        <el-row>
          <el-form-item label="关键字(含)" prop="desc" v-if="hasValue">
            <div class="xinz-inf">
@@ -288,7 +292,7 @@
    },
    scriptType: {
      type: String,
      default: '1',
      default: "1",
    },
    addoption: {
      type: Boolean,
src/utils/request.js
@@ -49,11 +49,12 @@
      const s_url = sessionObj.url;                  // è¯·æ±‚地址
      const s_data = sessionObj.data;                // è¯·æ±‚数据
      const s_time = sessionObj.time;                // è¯·æ±‚æ—¶é—´
      const interval = 4;                         // é—´é𔿗¶é—´(ms),小于此时间视为重复提交
      const interval = 1;                         // é—´é𔿗¶é—´(ms),小于此时间视为重复提交
      if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
        const message = '数据正在处理,请勿重复提交';
        console.warn(`[${s_url}]: ` + message)
        return Promise.reject(new Error(message))
        return Promise.reject(message)
        // return Promise.reject(new Error(message))
      } else {
        cache.session.setJSON('sessionObj', requestObj)
      }
src/views/followvisit/discharge/index.vue
@@ -410,6 +410,7 @@
        <el-table-column
          label="操作"
          align="center"
          fixed="right"
          width="200"
          class-name="small-padding fixed-width"
        >
@@ -829,7 +830,7 @@
      this.loading = true;
      getTaskservelist(this.topqueryParams).then((response) => {
        this.userList = response.rows[0].serviceSubtaskList;
        this.total=response.total
        this.total = response.total;
        this.cardlist[0].value =
          Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
        this.cardlist[1].value = response.rows[0].ysf;
@@ -845,7 +846,7 @@
            item.endDay = this.daysBetween(item.endtime);
          }
          if (item.endtime) {
           idArray = item.preachform.split(",");
            idArray = item.preachform.split(",");
          }
          item.preachform = idArray.map((value) => {
@@ -1082,9 +1083,18 @@
    },
    // è·³è½¬è¯¦æƒ…页
    Seedetails(row) {
      let type = "";
      if (row.preachform == 3) {
        type = 1;
      }
      this.$router.push({
        path: "/followvisit/record/detailpage/",
        query: { taskid: row.taskid, patid: row.patid, id: row.id },
        query: {
          taskid: row.taskid,
          patid: row.patid,
          id: row.id,
          Voicetype: type,
        },
      });
    },
    // ä¾¿æ·æŒ‰é’®
src/views/followvisit/record/detailpage/index.vue
@@ -28,20 +28,30 @@
          </el-table-column>
          <el-table-column prop="sendstate" align="center" label="服务状态">
            <template slot-scope="scope">
            <div v-if="scope.row.sendstate == 1">
              <el-tag type="primary"
              :disable-transitions="false">被领取</el-tag></div>
            <div v-if="scope.row.sendstate == 2">
              <el-tag type="primary"
              :disable-transitions="false">待发送</el-tag>
              <div v-if="scope.row.sendstate == 1">
                <el-tag type="primary" :disable-transitions="false"
                  >被领取</el-tag
                >
              </div>
            <div v-if="scope.row.sendstate == 3"> <el-tag type="success"
              :disable-transitions="false">已发送未领取</el-tag></div>
            <div v-if="scope.row.sendstate == 4"> <el-tag type="info"
              :disable-transitions="false">不执行</el-tag></div>
            <div v-if="scope.row.sendstate == 5"> <el-tag type="danger"
              :disable-transitions="false">发送失败</el-tag></div>
          </template>
              <div v-if="scope.row.sendstate == 2">
                <el-tag type="primary" :disable-transitions="false"
                  >待发送</el-tag
                >
              </div>
              <div v-if="scope.row.sendstate == 3">
                <el-tag type="success" :disable-transitions="false"
                  >已发送未领取</el-tag
                >
              </div>
              <div v-if="scope.row.sendstate == 4">
                <el-tag type="info" :disable-transitions="false">不执行</el-tag>
              </div>
              <div v-if="scope.row.sendstate == 5">
                <el-tag type="danger" :disable-transitions="false"
                  >发送失败</el-tag
                >
              </div>
            </template>
          </el-table-column>
          <el-table-column
            prop="finishtime"
@@ -177,19 +187,20 @@
      </div>
    </div>
    <div>
      <el-tabs type="border-card">
        <el-tab-pane>
      <el-tabs v-model="activeName" type="border-card">
        <el-tab-pane name="wj">
          <span class="mulsz" slot="label"
            ><i class="el-icon-notebook-1"></i> é—®å·éšè®¿ç»“æžœ</span
          >
          <div class="CONTENT">
            <div class="title">{{ taskname ? taskname : "问卷" }}</div>
            <div class="preview-left">
            <!-- é—®å·ä»»åŠ¡å±•ç¤º -->
            <div class="preview-left" v-if="!Voicetype">
              <!-- å•选 -->
              <div
                class="topic-dev"
                v-for="(item, index) in tableDatatop"
                :key="item.aaa"
                :key="item.id"
              >
                <div
                  :class="
@@ -280,41 +291,121 @@
                </div>
              </div>
            </div>
            <el-button type="primary" @click="getdetail">保存问卷</el-button>
            <!-- è¯­éŸ³é—®å·å½¢å¼å±•示 -->
            <div class="preview-left" v-else>
              <!-- å•选 -->
              <div
                class="topic-dev"
                v-for="(item, index) in tableDatatop"
                :key="item.id"
              >
                <div v-if="item.targetvalue">
                  <div class="dev-text">
                    {{ index + 1 }}、[单选]<span>{{ item.questiontext }}</span>
                  </div>
                  <div class="dev-xx">
                    <el-radio-group
                      v-model="item.matchedtext"
                      @change="handleOptionChange($event, index, item)"
                    >
                      <el-radio
                        v-for="(items, index) in item.scriptResult"
                        :key="items"
                        :label="items"
                        >{{ items }}</el-radio
                      >
                    </el-radio-group>
                  </div>
                  <div v-show="item.prompt">
                    <el-alert :title="item.prompt" type="warning"> </el-alert>
                  </div>
                </div>
                <!-- å¡«ç©º -->
                <div class="scriptTopic-dev" :key="index" v-else>
                  <div class="dev-text">
                    {{ index + 1 }}、[问答]<span>{{ item.questiontext }}</span>
                  </div>
                  <div class="dev-xx">
                    <el-input
                      type="textarea"
                      :rows="2"
                      placeholder="请输入答案"
                      v-model="item.matchedtext"
                      clearable
                    >
                    </el-input>
                  </div>
                </div>
              </div>
            </div>
            <el-button v-if="Voicetype" type="primary" @click="yuyingetdetail"
              >保存服务详情</el-button
            >
            <el-button v-else type="primary" @click="getdetail"
              >保存服务详情</el-button
            >
          </div>
        </el-tab-pane>
        <el-tab-pane>
        <!-- è¯­éŸ³éšè®¿è¯¦æƒ…---------------------- -->
        <el-tab-pane name="yy">
          <span class="mulsz" slot="label"
            ><i class="el-icon-headset"></i> è¯­éŸ³éšè®¿è¯¦æƒ…</span
          >
          <div class="borderdiv">
            <div class="title">{{ taskname ? taskname : "问卷" }}</div>
            <div
              style="
                display: flex;
                text-align: center;
                align-items: center;
                color: #59a0f0;
              "
            >
              å®Œæ•´è¯­éŸ³ï¼š
              <mini-audio
                :audio-source="
                  voice ? voice : 'https://example.com/example.mp3'
                "
              ></mini-audio>
            </div>
            <div class="preview-left">
              <div class="leftside">
                <i class="el-icon-phone-outline"></i
                ><span>您今天身体情况怎么样</span>
              </div>
              <div class="offside">
                <i class="el-icon-user"></i>
                <div class="offside-value">
                  <el-input v-model="input"></el-input>
                  <el-radio v-model="radio" label="1">很棒</el-radio>
                  <el-radio v-model="radio" label="2">还可以</el-radio>
                  <el-radio v-model="radio" label="3">不太好</el-radio>
                  <el-radio v-model="radio" label="4">比较差</el-radio>
                  <div>
                    <mini-audio
                          :audio-source="
                            topicobj.ivrVoice
                              ? topicobj.ivrVoice
                              : 'https://example.com/example.mp3'
                          "
                        ></mini-audio>
              <div v-for="item in voiceDatatop">
                <div class="leftside">
                  <i class="el-icon-phone-outline"></i
                  ><span>{{ item.questiontext }}</span>
                </div>
                <div class="offside">
                  <i class="el-icon-user"></i>
                  <div class="offside-value">
                    <el-input
                      type="textarea"
                      :autosize="{ minRows: 1 }"
                      v-model="item.asrtext"
                    ></el-input>
                    <!-- <el-radio v-model="radio" label="1">很棒</el-radio>
                    <el-radio v-model="radio" label="2">还可以</el-radio>
                    <el-radio v-model="radio" label="3">不太好</el-radio>
                    <el-radio v-model="radio" label="4">比较差</el-radio> -->
                    <div>
                      <mini-audio
                        :audio-source="
                          item.questionvoice
                            ? item.questionvoice
                            : 'https://example.com/example.mp3'
                        "
                      ></mini-audio>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <el-button type="primary" @click="getdetail">保存随访详情</el-button>
            <el-button v-if="Voicetype" type="primary" @click="yuyingetdetail"
              >保存随访详情</el-button
            >
            <el-button v-else type="primary" @click="getdetail"
              >保存随访详情</el-button
            >
          </div>
        </el-tab-pane>
      </el-tabs>
@@ -325,24 +416,30 @@
<script>
import {
  getsearchrResults,
  getPersonVoices,
  getTaskservelist,
  getTaskparticty,
  Editsingletaskson,
  serviceSubtaskDetailedit,
  serviceSubtaskDetailadd,
  updatePersonVoices,
} from "@/api/AiCentre/index";
export default {
  dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
  data() {
    return {
      radio: "1",
      userid: "",
      input: "今天身体还不错",
      radio: "2",
      taskname: "",
      activeName: "wj",
      voice: "",
      tableDatatop: [], //题目表
      voiceDatatop: [], //题目表
      Whetherall: false, //是否全部记录展示
      Voicetype: 0, //是否为语音服务
      logsheetlist: [],
      topicobj:{},
      topicobj: {},
      sendname: null,
      serviceType: null,
      id: null,
@@ -356,8 +453,13 @@
    this.id = this.$route.query.id;
    this.sendname = this.$route.query.sendname;
    this.patid = this.$route.query.patid;
    this.Voicetype = this.$route.query.Voicetype;
    this.serviceType = this.$route.query.serviceType;
    this.getsearchrResults();
    if (this.Voicetype) {
      this.getPersonVoices();
    } else {
      this.getsearchrResults();
    }
    this.getTaskservelist(this.taskid);
  },
@@ -368,7 +470,7 @@
        taskid: this.taskid,
        patid: this.patid,
        subId: this.id,
        isFinish:false,
        isFinish: false,
      }).then((res) => {
        if (res.code === 200) {
          this.tableDatatop = res.data.scriptResult.script;
@@ -383,6 +485,42 @@
          });
          this.taskname = res.data.taskName;
          this.overdata();
        }
      });
    },
    // èŽ·å–è¯­éŸ³æ•°æ®
    getPersonVoices() {
      let obj = {
        taskid: this.taskid,
        patid: this.patid,
        subId: this.id,
      };
      console.log(this.voiceDatatop, "111");
      getPersonVoices(obj).then((res) => {
        console.log("222");
        if (res.code == 200) {
          this.voiceDatatop = res.data.serviceSubtaskDetails;
          this.voice = res.data.voice;
          this.activeName = "yy";
          this.taskname = res.data.taskName;
          // é—®å·å±•示数据处理
          this.tableDatatop = res.data.filteredDetails;
          this.tableDatatop.forEach((item) => {
            if (item.targetvalue) {
              item.scriptResult = item.targetvalue.split("&");
            } else {
              item.scriptResult = [];
            }
          });
        }
      });
    },
    // èŽ·å–é—®å·å®Œæ•´æ•°æ®æ¯”å¯¹
    puttaskid(id) {
      getTaskparticty(id).then((res) => {
        if (res.code == 200) {
        }
      });
    },
@@ -431,6 +569,16 @@
      });
      this.Editsingletasksonyic(excep);
    },
    yuyingetdetail() {
      this.tableDatatop.forEach((item) => {
        item.scriptResult = item.scriptResult.join("&");
      });
      updatePersonVoices(this.tableDatatop).then((res) => {
        if (res.code == 200) {
          this.$modal.msgSuccess("服务修改成功");
        }
      });
    },
    // èŽ·å–æ‚£è€…è®°å½•
    getTaskservelist(taskid) {
      this.taskid = taskid;
@@ -445,6 +593,7 @@
      }).then((res) => {
        if (res.code == 200) {
          this.logsheetlist = res.rows[0].serviceSubtaskList;
          this.puttaskid(this.logsheetlist[0].templateid)
        }
      });
    },
@@ -474,7 +623,7 @@
      }).then((res) => {
        if (res.code == 200) {
          objson = res.rows[0].serviceSubtaskList[0];
          console.log(objson,'obj');
          console.log(objson, "obj");
          objson.excep = excep;
          Editsingletaskson(objson).then((res) => {
@@ -569,7 +718,7 @@
    text-align: center;
  }
  .leftside {
    margin-bottom: 30px;
    margin: 30px 0;
    span {
      width: 400px;
      margin-left: 20px;
@@ -645,6 +794,10 @@
    right: -5px; /* æ ¹æ®éœ€è¦è°ƒæ•´ */
    top: 0;
  }
  ::v-deep.el-input-group__textarea {
    white-space: pre-wrap; /* ä¿æŒç©ºç™½ç¬¦åºåˆ—并正常换行 */
    word-break: break-all; /* åœ¨é•¿å•词或URL地址内部进行换行 */
  }
  ::v-deep.el-checkbox__label {
    position: relative;
    padding-right: 10px; /* æ ¹æ®éœ€è¦è°ƒæ•´ */
src/views/outsideChainnew.vue
@@ -30,20 +30,20 @@
            <div class="dev-xx">
              <el-radio-group
                class="custom-radio"
                v-model="item.scriptResult"
                v-model="item.questionResult"
                @change="handleOptionChange($event, index, item)"
              >
                <el-radio
                  border
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                  :class="
                    items.isabnormal && item.scriptResult == items.optioncontent
                    items.isabnormal && item.questionResult == items.targetvalue
                      ? 'red-star'
                      : ''
                  "
                  :key="index"
                  :label="items.optioncontent"
                  >{{ items.optioncontent }}</el-radio
                  :label="items.targetvalue"
                  >{{ items.targetvalue }}</el-radio
                >
              </el-radio-group>
            </div>
@@ -62,27 +62,27 @@
            <div class="dev-xx">
              <el-checkbox-group
                class="custom-radio"
                v-model="item.scriptResult"
                v-model="item.questionResult"
                @change="updateScore($event, index, item)"
              >
                <el-checkbox
                  border
                  @change="$forceUpdate()"
                  v-for="(items, indexs) in item.svyLibTemplateTargetoptions"
                  v-for="(items, indexs) in item.ivrLibaScriptTargetoptionList"
                  :key="indexs"
                  :label="items.optioncontent"
                  :label="items.targetvalue"
                >
                  {{ items.optioncontent }}
                  {{ items.targetvalue }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
            <!-- :class="items.isabnormal ? 'red-star' : ''" -->
            <div v-show="item.prompt && item.scriptResult[0]">
            <div v-show="item.prompt && item.questionResult[0]">
              <el-alert :title="item.prompt" type="warning"> </el-alert>
            </div>
          </div>
          <!-- å¡«ç©º -->
          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 4">
          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 4||item.scriptType == 3">
            <div class="dev-text">
              {{ index + 1 }}、<span style="line-height: 1.5"
                >{{ item.scriptContent
@@ -94,7 +94,7 @@
                type="textarea"
                :rows="3"
                placeholder="请输入答案"
                v-model="item.scriptResult"
                v-model="item.questionResult"
                clearable
              >
              </el-input>
@@ -153,6 +153,7 @@
  Submitaquestionnaire,
  geturlinfo,
} from "@/api/AiCentre/index";
import { type } from "jquery";
import JSEncrypt from "jsencrypt";
export default {
  data() {
@@ -161,91 +162,92 @@
      patid: 265823,
      kcb: "",
      excep: "",
      taskname: "",
      questionList: [
        // {
        //   scriptType: 1,
        //   scriptContent: "您的年龄范围是?",
        //   scriptResult: null,
        //   svyLibTemplateTargetoptions: [
        //     { optioncontent: "18-25", value: "18-25", isabnormal: true },
        //     { optioncontent: "26-35", value: "26-35" },
        //     { optioncontent: "36-45", value: "36-45" },
        //     { optioncontent: "46-55", value: "46-55" },
        //     { optioncontent: "56+", value: "56+" },
        //   questionResult: null,
        //   ivrLibaScriptTargetoptionList: [
        //     { targetvalue: "18-25", value: "18-25", isabnormal: true },
        //     { targetvalue: "26-35", value: "26-35" },
        //     { targetvalue: "36-45", value: "36-45" },
        //     { targetvalue: "46-55", value: "46-55" },
        //     { targetvalue: "56+", value: "56+" },
        //   ],
        //   required: true,
        // },
        // {
        //   scriptType: 1,
        //   scriptContent: "您的职业是什么?",
        //   scriptResult: null,
        //   svyLibTemplateTargetoptions: [
        //     { optioncontent: "学生", value: "student" },
        //     { optioncontent: "教师", value: "teacher" },
        //     { optioncontent: "工程师", value: "engineer" },
        //     { optioncontent: "医生", value: "doctor" },
        //     { optioncontent: "其他", value: "other" },
        //   questionResult: null,
        //   ivrLibaScriptTargetoptionList: [
        //     { targetvalue: "学生", value: "student" },
        //     { targetvalue: "教师", value: "teacher" },
        //     { targetvalue: "工程师", value: "engineer" },
        //     { targetvalue: "医生", value: "doctor" },
        //     { targetvalue: "其他", value: "other" },
        //   ],
        //   required: false,
        // },
        // {
        //   scriptType: 2,
        //   scriptContent: "您感兴趣的活动有哪些?",
        //   scriptResult: [],
        //   svyLibTemplateTargetoptions: [
        //     { optioncontent: "旅游", value: "travel", isabnormal: true },
        //     { optioncontent: "阅读", value: "reading", isabnormal: true },
        //     { optioncontent: "运动", value: "sports", isabnormal: true },
        //     { optioncontent: "音乐", value: "music" },
        //     { optioncontent: "电影", value: "movies" },
        //   questionResult: [],
        //   ivrLibaScriptTargetoptionList: [
        //     { targetvalue: "旅游", value: "travel", isabnormal: true },
        //     { targetvalue: "阅读", value: "reading", isabnormal: true },
        //     { targetvalue: "运动", value: "sports", isabnormal: true },
        //     { targetvalue: "音乐", value: "music" },
        //     { targetvalue: "电影", value: "movies" },
        //   ],
        //   required: false,
        // },
        // {
        //   scriptType: 1,
        //   scriptContent: "您的职业是什么?",
        //   scriptResult: null,
        //   svyLibTemplateTargetoptions: [
        //     { optioncontent: "学生", value: "student" },
        //     { optioncontent: "教师", value: "teacher" },
        //     { optioncontent: "工程师", value: "engineer" },
        //     { optioncontent: "医生", value: "doctor" },
        //     { optioncontent: "其他", value: "other" },
        //   questionResult: null,
        //   ivrLibaScriptTargetoptionList: [
        //     { targetvalue: "学生", value: "student" },
        //     { targetvalue: "教师", value: "teacher" },
        //     { targetvalue: "工程师", value: "engineer" },
        //     { targetvalue: "医生", value: "doctor" },
        //     { targetvalue: "其他", value: "other" },
        //   ],
        //   required: false,
        // },
        // {
        //   scriptType: 1,
        //   scriptContent: "您的职业是什么?",
        //   scriptResult: null,
        //   svyLibTemplateTargetoptions: [
        //     { optioncontent: "学生", value: "student" },
        //     { optioncontent: "教师", value: "teacher" },
        //     { optioncontent: "工程师", value: "engineer", isabnormal: true },
        //     { optioncontent: "医生", value: "doctor" },
        //     { optioncontent: "其他", value: "other" },
        //   questionResult: null,
        //   ivrLibaScriptTargetoptionList: [
        //     { targetvalue: "学生", value: "student" },
        //     { targetvalue: "教师", value: "teacher" },
        //     { targetvalue: "工程师", value: "engineer", isabnormal: true },
        //     { targetvalue: "医生", value: "doctor" },
        //     { targetvalue: "其他", value: "other" },
        //   ],
        //   required: false,
        // },
        // {
        //   scriptType: 1,
        //   scriptContent: "您的职业是什么?",
        //   scriptResult: null,
        //   svyLibTemplateTargetoptions: [
        //     { optioncontent: "学生", value: "student" },
        //     { optioncontent: "教师", value: "teacher" },
        //     { optioncontent: "工程师", value: "engineer" },
        //     { optioncontent: "医生", value: "doctor" },
        //     { optioncontent: "其他", value: "other" },
        //   questionResult: null,
        //   ivrLibaScriptTargetoptionList: [
        //     { targetvalue: "学生", value: "student" },
        //     { targetvalue: "教师", value: "teacher" },
        //     { targetvalue: "工程师", value: "engineer" },
        //     { targetvalue: "医生", value: "doctor" },
        //     { targetvalue: "其他", value: "other" },
        //   ],
        //   required: false,
        // },
        // {
        //   scriptType: 4,
        //   scriptContent: "您的姓名是什么?",
        //   scriptResult: "name",
        //   questionResult: "name",
        //   required: true,
        //   scriptResult: null,
        //   questionResult: null,
        // },
      ],
      jsy: null,
@@ -282,28 +284,33 @@
      // let url = 'http://218.108.11.22:8093/sf/003';
      // let urlid = this.extractLastSegmentFromUrl(url);
      geturlinfo( url ).then((res) => {
       if (res.code==200) {
         this.getQuestionnaire(res.data.param1,res.data.param2,res.data.param3,res.data.param5,)
       }
      geturlinfo(url).then((res) => {
        if (res.code == 200) {
          this.getQuestionnaire(
            res.data.param1,
            res.data.param2,
            res.data.param3,
            res.data.param5
          );
        }
      });
    },
//     extractLastSegmentFromUrl(url) {
//     // æ‰¾åˆ°æœ€åŽä¸€ä¸ª'/'的位置
//     const lastSlashIndex = url.lastIndexOf('/');
//     // å¦‚果找到了'/',截取其后的所有字符
//     if (lastSlashIndex !== -1) {
//         return url.substring(lastSlashIndex + 1);
//     }
//     // å¦‚果没有找到'/',返回空字符串
//     return '';
// },
    //     extractLastSegmentFromUrl(url) {
    //     // æ‰¾åˆ°æœ€åŽä¸€ä¸ª'/'的位置
    //     const lastSlashIndex = url.lastIndexOf('/');
    //     // å¦‚果找到了'/',截取其后的所有字符
    //     if (lastSlashIndex !== -1) {
    //         return url.substring(lastSlashIndex + 1);
    //     }
    //     // å¦‚果没有找到'/',返回空字符串
    //     return '';
    // },
    // èŽ·å–æ•°æ®
    getQuestionnaire(param1,param2,param3) {
    getQuestionnaire(param1, param2, param3) {
      this.taskid = decodeURIComponent(param1);
      this.patid = decodeURIComponent(param2);
      this.taskname = param3;
      // this.taskname = param3;
      // let taskid =
      //   "OFp7tn/B6x7IzKJetvGWHdSWBj7msRlnlj6am9dyuHTH6sEt4uBbVCUXs5kcF/e4O2W6vqHf2Bz9K3/evbYDmw==";
      // let patid =
@@ -320,10 +327,10 @@
            this.accomplish = res.data.submit;
            if (this.questionList[0]) {
              this.questionList.forEach((item) => {
                if (item.scriptResult && item.scriptType != 2) {
                  item.scriptResult = JSON.parse(item.scriptResult);
                } else if (item.scriptResult && item.scriptType == 2) {
                  item.scriptResult = item.scriptResult.split("&");
                if (item.questionResult && item.scriptType != 2) {
                  item.questionResult = JSON.parse(item.questionResult);
                } else if (item.questionResult && item.scriptType == 2) {
                  item.questionResult = item.questionResult.split("&");
                }
              });
              return;
@@ -344,11 +351,14 @@
            this.questionList = res.data.script;
            this.jsy = res.data.jsy;
            this.kcb = res.data.kcb;
            this.taskname = res.data.taskName;
            this.type = res.data.type;
            // å¤„理题目收集结果格式
            this.questionList.forEach((item) => {
              item.nextScriptno = Number(item.nextScriptno);
              if (item.scriptType == 2) {
                item.scriptResult = [];
                item.questionResult = [];
              }
            });
          }
@@ -374,13 +384,14 @@
        param1: this.taskid,
        param2: this.patid,
        excep: this.excep,
        type: this.type,
        serviceSubtaskDetailList: [],
      };
      const arr = structuredClone(this.questionList);
      // arr.forEach((item) => {
      //   item.asrtext = JSON.stringify(item.scriptResult);
      //   if (item.scriptType == 2 && item.scriptResult[0]) {
      //     item.scriptResult = item.scriptResult.join("&");
      //   item.asrtext = JSON.stringify(item.questionResult);
      //   if (item.scriptType == 2 && item.questionResult[0]) {
      //     item.questionResult = item.questionResult.join("&");
      //   }
      // });
      form.serviceSubtaskDetailList = arr;
@@ -400,14 +411,18 @@
      let form = {
        param1: this.taskid,
        param2: this.patid,
        svyLibTemplateScriptVOS: [],
        type: this.type,
        ivrLibaTemplateScriptVOList: [],
      };
      const arr = structuredClone(this.questionList);
      console.log(arr, "srr");
      arr.forEach((item, index) => {
        var obj = item.svyLibTemplateTargetoptions.find(
          (items) => items.optioncontent == item.scriptResult
        if (item.scriptType == 3||item.scriptType == 4) return;
        var obj = item.ivrLibaScriptTargetoptionList.find(
          (items) => items.targetvalue == item.questionResult
        );
        console.log(obj, "isabnormal");
        if (obj.isabnormal) {
          console.log(obj.isabnormal);
          form.excep = 1;
@@ -416,13 +431,13 @@
      });
      arr.forEach((item) => {
        if (item.scriptType == 2 && item.scriptResult[0]) {
          item.scriptResult = item.scriptResult.join("&");
        } else if (item.scriptType != 2 && item.scriptResult) {
          item.scriptResult = JSON.stringify(item.scriptResult);
        if (item.scriptType == 2 && item.questionResult[0]) {
          item.questionResult = item.questionResult.join("&");
        } else if (item.scriptType != 2 && item.questionResult) {
          item.questionResult = JSON.stringify(item.questionResult);
        }
      });
      form.svyLibTemplateScriptVOS = arr;
      form.ivrLibaTemplateScriptVOList = arr;
      Cachequestionnaire(form).then((res) => {
        if (res.code == 200) {
          if (subm) {
@@ -434,8 +449,8 @@
    // å¤„理单选选项
    handleOptionChange(selectedvalue, index, arr) {
      // æŸ¥æ‰¾é€‰ä¸­çš„选项对象
      const selectedOption = arr.svyLibTemplateTargetoptions.find(
        (option) => option.optioncontent == selectedvalue
      const selectedOption = arr.ivrLibaScriptTargetoptionList.find(
        (option) => option.targetvalue == selectedvalue
      );
      if (selectedOption) {
        // å°†é€‰ä¸­çš„选项对象的 id èµ‹å€¼ç»™ obj.sonId
@@ -449,8 +464,8 @@
      // ï¿½ï¿½åŠ åˆ†æ•°
      let score = 0;
      selectedvalues.forEach((value) => {
        const selectedOption = arr.svyLibTemplateTargetoptions.find(
          (option) => option.optioncontent == value
        const selectedOption = arr.ivrLibaScriptTargetoptionList.find(
          (option) => option.targetvalue == value
        );
        if (selectedOption) {
          score += Number(selectedOption.score);
src/views/patient/patient/ExternalPatient.vue
@@ -1,51 +1,8 @@
<template>
  <div class="Questionnairemanagement">
    <!-- å·¦ä¾§æ  -->
    <div class="sidecolumn">
      <div class="sidecolumn-top">
        <div class="top-wj">医院患者</div>
      </div>
      <div class="bottom-fl">
        <el-tabs
          tab-position="right"
          v-model="queryParams.allhosp"
          @tab-click="handleClick"
        >
          <!-- <el-tab-pane label="患者列表" name="0"></el-tab-pane> -->
          <el-tab-pane label="出入院患者" name="1"></el-tab-pane>
          <el-tab-pane label="门诊患者" name="2"></el-tab-pane>
          <el-tab-pane label="体检患者" name="3"></el-tab-pane>
        </el-tabs>
      </div>
    </div>
    <!-- å³ä¾§æ•°æ® -->
    <div class="leftvlue">
      <!-- <div>
        <el-row :gutter="10">
          <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
            <el-card
              shadow="hover"
              :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
            >
              <div style="padding: 8px" @click="$router.push(item.router)">
                <span>{{ item.name }}</span>
                <div
                  style="
                    text-align: center;
                    font-size: 18px;
                    margin-top: 10px;
                    font-weight: 600;
                  "
                >
                  {{ item.value }}
                </div>
              </div>
            </el-card>
          </el-col>
        </el-row>
      </div> -->
      <div class="leftvlue-bg">
        <el-row :gutter="20">
          <!--用户数据-->
@@ -58,49 +15,7 @@
              v-show="showSearch"
              label-width="98px"
            >
              <!-- <el-form-item label="院区" prop="userName">
                <el-select v-model="queryParams.value1" placeholder="请选择">
                  <el-option
                    v-for="item in options"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item> -->
              <!-- <el-form-item label="科室/病区" prop="userName">
                <el-select v-model="queryParams.value2" placeholder="请选择">
                  <el-option
                    v-for="item in options"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item> -->
              <el-form-item
                label-width="138px"
                label="主治医生"
                prop="userName"
              >
                <el-input
                  v-model="queryParams.drname"
                  placeholder="请输入医生姓名"
                  maxlength="30"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="门诊编号" prop="visitno">
                <el-input
                  v-model="queryParams.visitno"
                  placeholder="请输入编号"
                  maxlength="30"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="患者姓名" prop="name">
                <el-input
                  v-model="queryParams.name"
@@ -109,20 +24,7 @@
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="患者范围" prop="tagId">
            <el-select
                v-model="queryParams.searchscope"
                placeholder="请选择患者范围"
              >
                <el-option
                  v-for="item in source"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                </el-option>
              </el-select>
          </el-form-item>
              <el-form-item label="联系电话" prop="telcode">
                <el-input
                  v-model="queryParams.telcode"
@@ -174,16 +76,7 @@
                  >删除</el-button
                >
              </el-col>
              <el-col :span="1.5">
                <el-button
                  type="primary"
                  plain
                  icon="el-icon-s-promotion"
                  size="medium"
                  @click="distribute"
                  >向任务派发患者</el-button
                >
              </el-col>
              <el-col :span="6">
                <div class="documentf">
                  <div class="document">
@@ -215,7 +108,7 @@
            <el-table
              v-loading="loading"
              :data="userList"
               height="660"
              height="660"
              @selection-change="handleSelectionChange"
            >
              <el-table-column type="selection" width="50" align="center" />
@@ -254,28 +147,6 @@
              >
              </el-table-column>
              <el-table-column
                label="居住地"
                align="center"
                key="placeOfResidence"
                prop="placeOfResidence"
                width="150"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="患者标签"
                align="center"
                key="tagList"
                prop="tagList"
                width="160"
                :show-overflow-tooltip="true"
              >
                <template slot-scope="scope">
                  <span v-for="item in scope.row.tagList"
                    >{{ item.tagname }}
                  </span>
                </template>
              </el-table-column>
             <el-table-column
                label="证件号码"
                align="center"
                key="idcardno"
@@ -297,7 +168,7 @@
                prop="createTime"
                width="160"
              >
              <template slot-scope="scope">
                <template slot-scope="scope">
                  <span>{{ formatTime(scope.row.createTime) }}</span>
                </template>
              </el-table-column>
@@ -319,33 +190,13 @@
                class-name="small-padding fixed-width"
              >
                <template slot-scope="scope">
                  <el-button
                    size="medium"
                    type="text"
                    @click="
                      $router.push({
                        path: '/patient/patient/profile/',
                        query: { id: scope.row.id },
                      })
                    "
                    ><span class="button-textsc"
                      ><i class="el-icon-zoom-in"></i>详情编辑</span
                    ></el-button
                  >
                  <el-button
                    size="medium"
                    type="text"
                    @click="handleUpdate(scope.row)"
                    ><span class="button-textxga"
                      ><i class="el-icon-edit"></i>患者过滤</span
                    ></el-button
                  >
                  <el-button
                    size="medium"
                    type="text"
                    @click="Distributionservice(scope.row)"
                    @click="handleDelete(scope.row)"
                    ><span class="button-textxg"
                      ><i class="el-icon-menu"></i>服务</span
                      ><i class="el-icon-menu"></i>删除</span
                    ></el-button
                  >
                </template>
@@ -524,7 +375,7 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row  v-if="!amendtag">
        <el-row v-if="!amendtag">
          <el-col :span="8">
            <el-form-item label="民族" prop="name">
              <el-input
@@ -575,7 +426,7 @@
        </el-row>
        <el-row>
          <el-col :span="amendtag?12:24"v-if="!amendtag" >
          <el-col :span="amendtag ? 12 : 24" v-if="!amendtag">
            <el-form-item label="患者类型">
              <el-select v-model="form.pattype" placeholder="请选择类型">
                <el-option
@@ -685,27 +536,22 @@
      <!-- å¯¼å…¥æ£€æŸ¥ -->
      <div class="uploading" v-else-if="dractive == 2">
        <el-table :data="uploadingData" style="width: 100%">
          <el-table-column prop="serial" label="序号"> </el-table-column>
          <el-table-column prop="serial" label="患者id"> </el-table-column>
          <el-table-column prop="name" label="姓名"> </el-table-column>
          <el-table-column prop="sex" label="性别"> </el-table-column>
          <el-table-column prop="certificatenum" label="证件号码">
          </el-table-column>
          <el-table-column prop="idcardno" width="300" label="证件号码"> </el-table-column>
          <el-table-column prop="goday" label="出生日期"> </el-table-column>
          <el-table-column prop="menum" label="本人联系方式"> </el-table-column>
          <el-table-column prop="younum" label="亲属联系方式">
          <el-table-column prop="telcode" width="200" label="联系方式"> </el-table-column>
          <el-table-column prop="createTime"  width="200" label="创建日期">
          </el-table-column>
          <el-table-column prop="tag" label="患者标签"> </el-table-column>
          <el-table-column prop="erry" label="错误原因"> </el-table-column>
          <el-table-column prop="opinion" label="处理意见"> </el-table-column>
        </el-table>
        <pagination
        <!-- <pagination
          v-show="total > 0"
          :total="total"
          :page.sync="queryParams.pageNum"
          :limit.sync="queryParams.pageSize"
          @pagination="geterryList"
        />
        /> -->
      </div>
      <!-- å®Œæˆ -->
      <div class="drexamine" v-else-if="dractive == 3">
@@ -713,11 +559,12 @@
        <p>导入患者成功!</p>
        <p>
          æœ¬æ¬¡
          <span style="color: #158bb8; font-size: 20px">{{
          <!-- <span style="color: #158bb8; font-size: 20px">{{
            ImportQuantity
          }}</span>
          æ¡æ•°æ®æˆåŠŸå¯¼å…¥<span style="color: #72d3a9; font-size: 20px">{{
            ImportQuantity
          æ¡æ•°æ® -->
          æˆåŠŸå¯¼å…¥<span style="color: #72d3a9; font-size: 20px">{{
            uploadingData.length?uploadingData.length:0
          }}</span
          >位患者
        </p>
@@ -749,7 +596,7 @@
      <div slot="footer" class="dialog-footer" v-if="dractive == 3">
        <!-- <el-button type="primary" @click="submitFileForm">下一步</el-button> -->
        <el-button @click="submitclose">完成</el-button>
        <el-button type="warning" @click="submitclose">导出失败数据</el-button>
        <!-- <el-button type="warning" @click="submitclose">导出失败数据</el-button> -->
      </div>
      <div slot="footer" v-else>
        <el-button type="primary" @click="submitFileForm">下一步</el-button>
@@ -778,17 +625,13 @@
<script>
import { delUser } from "@/api/system/user";
import {
  messagelistpatient,
  alterpatient,
  addpatient,
  particularpatient,
  deletepatient,
  Exporterrorpatient,
  toleadpatient,
} from "@/api/patient/homepage";
import { getTasklist } from "@/api/AiCentre/index";
  getTasklist,
  Externallist,
  Externaledit,
  Externalpatient,
  delExternal,
} from "@/api/AiCentre/index";
import { listtag } from "@/api/system/label";
import { getToken } from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
@@ -797,7 +640,12 @@
export default {
  name: "Patient",
  dicts: ["sys_normal_disable", "task_status", "sys_user_sex",'futter_patient'],
  dicts: [
    "sys_normal_disable",
    "task_status",
    "sys_user_sex",
    "futter_patient",
  ],
  components: { Treeselect },
  data() {
    return {
@@ -822,6 +670,7 @@
      // éƒ¨é—¨æ ‘选项
      deptOptions: undefined,
      options: [],
      uploadingData:[],
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // éƒ¨é—¨åç§°
@@ -874,7 +723,6 @@
          value: 2,
          label: "女",
        },
      ],
      cardlist: [
@@ -954,14 +802,8 @@
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        allhosp: "1",
        pageSize: 10,
        searchscope:2,
        idcardno: undefined,
        name: undefined,
        status: undefined,
        tagIds: undefined,
        telcode: undefined,
      },
      // è¡¨å•校验
      rules: {
@@ -996,9 +838,7 @@
            trigger: "blur",
          },
        ],
        placeOfResidence: [
          { required: true, message: "居住地不能为空", trigger: "blur" },
        ],
      },
    };
  },
@@ -1017,24 +857,8 @@
  methods: {
    /** æŸ¥è¯¢æ‚£è€…列表 */
    getList() {
      if (this.queryParams.searchscope == 1) {
        this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.queryParams.leavehospitaldistrictcodes=null;
      } else if (this.queryParams.searchscope == 2) {
        this.queryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
          this.queryParams.leaveldeptcodes=null;
      } else {
        this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.queryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      this.loading = true;
      messagelistpatient(this.queryParams).then((response) => {
      Externallist(this.queryParams).then((response) => {
        this.userList = response.rows;
        this.total = response.total;
        this.loading = false;
@@ -1095,7 +919,6 @@
    },
    /** æœç´¢æŒ‰é’®æ“ä½œ */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
@@ -1122,7 +945,7 @@
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
      const userIds = row.id || this.ids;
      particularpatient(userIds).then((response) => {
      Externalpatient(userIds).then((response) => {
        console.log(response);
        this.form = response.data;
      });
@@ -1136,7 +959,7 @@
          if (this.amendtag) {
            this.form.isoperation = 2;
            this.form.notrequiredFlag = 1;
            alterpatient(this.form)
            Externaledit(this.form)
              .then((response) => {
                console.log(response);
              })
@@ -1146,7 +969,7 @@
              });
          } else {
            this.form.isoperation = 1;
            alterpatient(this.form)
            Externaledit(this.form)
              .then((response) => {
                console.log(response);
              })
@@ -1164,11 +987,11 @@
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const userIds = row.userId || this.ids;
      const userIds =[ row.id]
      this.$modal
        .confirm('是否确认删除用户编号为"' + userIds + '"的数据项?')
        .then(function () {
          return deletepatient(userIds);
          return delExternal(userIds);
        })
        .then(() => {
          this.getList();
@@ -1237,17 +1060,18 @@
    },
    // æ–‡ä»¶ä¸Šä¼ æˆåŠŸå¤„ç†
    handleFileSuccess(response, file, fileList) {
      this.upload.open = false;
      // this.upload.open = false;
      this.upload.isUploading = false;
      this.uploadingData = response.rows;
      this.$refs.upload.clearFiles();
      this.$alert(
        "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
          response.msg +
          "</div>",
        "导入结果",
        { dangerouslyUseHTMLString: true }
      );
      this.getList();
      // this.$alert(
      //   "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
      //     response.msg +
      //     "</div>",
      //   "导入结果",
      //   { dangerouslyUseHTMLString: true }
      // );
      // this.getList();
    },
    // æäº¤ä¸Šä¼ æ–‡ä»¶
    submitFileForm() {
@@ -1262,6 +1086,8 @@
    submitclose() {
      this.upload.open = false;
      this.dractive = 1;
      this.uploadingData=[],
      this.getList();
    },
  },
};
@@ -1350,7 +1176,7 @@
  cursor: pointer; /* é¼ æ ‡æ‚¬æµ®æ—¶å˜ä¸ºæ‰‹å½¢ */
}
.leftvlue {
  width: 80%;
  width: 100%;
  margin-top: 10px;
}
.leftvlue-bg {
src/views/patient/patient/index.vue
@@ -150,7 +150,7 @@
            </el-form>
            <el-row :gutter="10" class="mb8">
              <el-col :span="1.5">
              <!-- <el-col :span="1.5">
                <el-button
                  type="primary"
                  plain
@@ -160,7 +160,7 @@
                  v-hasPermi="['system:user:add']"
                  >新增</el-button
                >
              </el-col>
              </el-col> -->
              <el-col :span="1.5">
                <el-button
@@ -556,7 +556,7 @@
        <el-row v-if="!amendtag">
          <el-col :span="12">
            <el-form-item label="出生地" prop="idcardno">
            <el-form-item label="出生地" prop="birthplace">
              <el-input
                v-model="form.birthplace"
                placeholder="国、省、地市、区县、街道等详细信息"
@@ -564,7 +564,7 @@
              />
            </el-form-item> </el-col
          ><el-col :span="12">
            <el-form-item label="居住地" prop="idcardno">
            <el-form-item label="居住地" prop="placeOfResidence">
              <el-input
                v-model="form.placeOfResidence"
                placeholder="国、省、地市、区县、街道等详细信息"
@@ -988,7 +988,7 @@
        ],
        idcardno: [
          { required: true, message: "证件号能为空", trigger: "blur" },
          { required: true, message: "证件号可能为空", trigger: "blur" },
          {
            pattern:
              /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
@@ -999,6 +999,9 @@
        placeOfResidence: [
          { required: true, message: "居住地不能为空", trigger: "blur" },
        ],
        birthplace: [
          { required: true, message: "出生地不能为空", trigger: "blur" },
        ],
      },
    };
  },
src/views/patient/patient/profile/index.vue
@@ -872,13 +872,33 @@
      record: [
        {
          name: "宣教任务",
          serviceType:'4',
          templatename:'管饲宣教一期',
          createTime:'2024-11-10',
          finishtime:'2024-11-12',
          createBy:'王政',
          drname:'刘明',
          nurseName:'张淑琴',
          excep:'0',
          deptname:'呼吸科',
          leavehospitaldistrictname:'五病区',
        },
        {
          name: "通知任务",
          name: "随访任务",
          serviceType:'2',
          templatename:'心血管随访一期',
          createTime:'2024-11-11',
          finishtime:'2024-11-14',
          createBy:'章程',
          drname:'刘明',
          nurseName:'李丽',
          excep:'0',
          deptname:'呼吸科',
          leavehospitaldistrictname:'五病区',
        },
        {
          name: "问卷调查",
        },
        // {
        //   name: "问卷调查",
        // },
      ],
      inputVisible: false,
      AddanumberVisible: false,
src/views/patient/propaganda/Missioncreation.vue
@@ -1573,7 +1573,6 @@
    handleFileSuccess(response, file, fileList) {
      this.upload.isUploading = false;
      this.uploadingData = response.rows;
      console.log(response, "文件");
      this.$refs.upload.clearFiles();
    },
src/views/patient/propaganda/particty.vue
@@ -78,7 +78,7 @@
                      v-for="(item, index) in checkboxlist"
                      :key="index"
                      :label="item.value"
                       @change="checkboxChange($event, item.value)"
                      @change="checkboxChange($event, item.value)"
                    >
                      {{ item.label }}</el-checkbox
                    >
@@ -94,7 +94,7 @@
                      :disable-transitions="false"
                      @close="handleClosetag(tag)"
                    >
                      ({{index+1}}){{ tag.label }}
                      ({{ index + 1 }}){{ tag.label }}
                    </el-tag>
                  </el-form-item>
                </div>
@@ -253,9 +253,9 @@
                        <el-option
                          class="ruleFormaa"
                          v-for="item in belongWards"
                          :key="item.districtCode"
                          :label="item.districtName"
                          :value="item.districtCode"
                          :key="item.deptCode"
                          :label="item.label"
                          :value="item.deptCode"
                        >
                        </el-option>
                      </el-select> </el-form-item
@@ -394,15 +394,36 @@
                    </el-col>
                    <el-col :span="1.5">
                      <el-button
                        type="primary"
                        plain
                        icon="el-icon-plus"
                        size="medium"
                        :disabled="!patientqueryParams.allhosp"
                        @click="handleQuery"
                        >新增</el-button
                      >
                      <div v-if="form.longTask">
                        <el-tooltip
                          class="item"
                          effect="dark"
                          content="长期任务不支持手动添加患者!"
                          placement="top-start"
                        >
                          <el-button
                            type="primary"
                            plain
                            disabled
                            icon="el-icon-plus"
                            size="medium"
                            @click="handleQuery"
                            >新增</el-button
                          >
                        </el-tooltip>
                      </div>
                      <div v-else>
                        <el-button
                          type="primary"
                          plain
                          icon="el-icon-plus"
                          size="medium"
                          :disabled="!patientqueryParams.allhosp"
                          @click="handleQuery"
                          >新增</el-button
                        >
                      </div>
                    </el-col>
                    <!-- <el-col :span="1.5">
@@ -568,7 +589,7 @@
              <el-row :gutter="20">
                <el-col :span="14">
                  <el-form-item label="可用状态" prop="isenable">
                    <el-radio-group v-model="objyl.usestate">
                    <el-radio-group v-model="objyl.isenable">
                      <el-radio
                        v-for="(item, index) in usable"
                        :label="item.value"
@@ -646,7 +667,7 @@
                        class="ruleFormaa"
                        v-for="item in belongDepts"
                        :key="item.deptCode"
                        :label="item.deptName"
                        :label="item.label"
                        :value="item.deptCode"
                      >
                      </el-option>
@@ -667,9 +688,9 @@
                      <el-option
                        class="ruleFormaa"
                        v-for="item in belongWards"
                        :key="item.districtCode"
                        :label="item.districtName"
                        :value="item.districtCode"
                        :key="item.deptCode"
                        :label="item.label"
                        :value="item.deptCode"
                      >
                      </el-option>
                    </el-select> </el-form-item
@@ -892,6 +913,8 @@
  getFollowupclassify,
  depthospgetsonlist,
} from "@/api/AiCentre/index";
import { deptTreeSelect } from "@/api/system/user";
import SFtable from "@/components/SFtable"; //表格组件
@@ -904,6 +927,7 @@
      id: "", //
      previewid: "", //任务模板传递id
      libName: "",
      username: "",
      objyl: {},
      overallCase: [], //选择患者总
      allpids: [],
@@ -961,10 +985,10 @@
      ],
      tableLabelwj: [
      { label: "创建人", width: "", prop: "createBy" },
        { label: "模板标题", width: "", prop: "templateName" },
        { label: "随访描述", width: "", prop: "note" },
        { label: "修改日期", width: "", prop: "updateTime" },
        { label: "创建人", width: "", prop: "createBy" },
      ],
      // å˜é‡
      tableLabelvariable: [
@@ -1083,8 +1107,8 @@
        templatename: "",
        templateid: null,
        libtemplateid: null,
        kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!",
        kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,进行本次回访服务。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访内容就到这里,祝您身体健康!",
      },
      taskoptions: [
        {
@@ -1180,7 +1204,7 @@
      // ç§‘室院区查询入参
      queryParamsdept: {
        tempid: "",
        type: 11,
        type: 2,
      },
      quote: false,
      serviceType: null,
@@ -1190,8 +1214,9 @@
  created() {
    this.appraiselist = store.getters.appraiselist;
    this.belongWards = store.getters.belongWards;
    this.belongDepts = store.getters.belongDepts;
    // this.belongWards = store.getters.belongWards;
    // this.belongDepts = store.getters.belongDepts;
    this.username = store.getters.name;
    this.mode = store.getters.Askmode;
    this.id = this.$route.query.id;
    this.newadd = this.$route.query.newadd;
@@ -1201,12 +1226,14 @@
    this.form.serviceType = Number(this.$route.query.serviceType);
    this.Acquisitiontype();
    this.Getdetails();
    this.getDeptTree();
    this.getFollowupclassify();
  },
  activated() {
    if (this.id != this.$route.query.id) {
      this.Acquisitiontype();
      this.Getdetails();
      this.getDeptTree();
      this.getFollowupclassify();
    }
  },
@@ -1239,6 +1266,33 @@
        result[item.name] = innerObj;
      });
      return result;
    },
    getDeptTree() {
      // ç§‘室列表
      deptTreeSelect().then((response) => {
        let flatArray = this.flattenArray(response.data);
        this.belongWards = flatArray;
        this.belongDepts = flatArray;
      });
    },
    flattenArray(multiArray) {
      let result = [];
      // é€’归函数,用于将多级数组转换为一维数组,只包含最底层的元素
      function flatten(element) {
        // å¦‚果当前元素有子元素,继续递归
        if (element.children && element.children.length > 0) {
          element.children.forEach((child) => flatten(child));
        } else {
          // å…‹éš†å…ƒç´ ä»¥é¿å…ä¿®æ”¹åŽŸå§‹æ•°æ®
          let item = JSON.parse(JSON.stringify(element));
          result.push(item); // å°†æœ€åº•层的元素添加到结果数组
        }
      }
      // ä»Žé¡¶å±‚元素开始递归
      multiArray.forEach((element) => flatten(element));
      return result; // è¿”回只包含最底层元素的一维数组
    },
    // èŽ·å–å½“å‰ç±»åž‹
    Acquisitiontype() {
@@ -1372,6 +1426,16 @@
          xh: 1,
        },
      ];
      if (
        (this.belongWards[0] || this.belongWards[0]) &&
        this.username == "andmin"
      ) {
        if (this.tempbelongWards[0] || this.tempbelongWards[0]) {
        } else {
          this.$modal.msgError("请选择科室或病区");
          return;
        }
      }
      if (this.checkList[0]) {
        this.form.preachform = this.checkList.join(",");
      } else {
@@ -1462,7 +1526,7 @@
            if (this.form.longTask) {
              this.objyl.longTemp = 1;
            }
            this.queryParamsdept.type = 1;
            this.queryParamsdept.type = 2;
            this.queryParamsdept.tempid = row.id;
            this.listDept();
@@ -1486,7 +1550,7 @@
          if (this.objyl.suitway)
            this.objyl.suitway = this.objyl.suitway.split(",");
          this.queryParamsdept.tempid = this.form.templateid;
          this.queryParamsdept.type = 11;
          this.queryParamsdept.type = 21;
          this.getillness(this.form.libtemplateid);
          // æ‰§è¡ŒèŽ·å–è¯¥ä»»åŠ¡æ¨¡æ¿id
          this.listDept();
@@ -1551,7 +1615,7 @@
          { label: "出院日期", width: "150", prop: "endtime" },
          { label: "患者", width: "", prop: "name" },
          { label: "身份证", width: "200", prop: "idcardno" },
        { label: "电话号码", width: "180", prop: "telcode" },
          { label: "电话号码", width: "180", prop: "telcode" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "出院天数", width: "", prop: "endDay" },
@@ -1565,7 +1629,7 @@
          { label: "入院日期", width: "150", prop: "starttime" },
          { label: "患者", width: "", prop: "name" },
          { label: "身份证", width: "200", prop: "idcardno" },
        { label: "电话号码", width: "180", prop: "telcode" },
          { label: "电话号码", width: "180", prop: "telcode" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "出院天数", width: "", prop: "endDay" },
@@ -1585,6 +1649,7 @@
        this.patientqueryParams.cry = 1;
      } else if (this.patientqueryParams.allhosp == 4) {
        this.patientqueryParams.cry = 0;
        this.patientqueryParams.allhosp = "1";
      }
      // æ¥æºåˆ¤æ–­
@@ -1725,7 +1790,7 @@
        templatename: "",
        templateid: null,
        libtemplateid: null,
        kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访随访。",
        kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!",
      };
@@ -1905,6 +1970,9 @@
      this.objyl.ivrTaskTemplateScriptVOList =
        this.objyl.ivrLibaTemplateScriptVOList;
      this.objyl.isoperation = 1;
      if (this.form.id) {
        this.objyl.taskid=this.form.id
      }
      if (this.form.templateid) {
        deleteTaskparticty(this.form.templateid).then((res) => {
          if (res.code == 200) {
@@ -1950,9 +2018,7 @@
        }
      });
    },
    checkboxChange(checked, value){
    },
    checkboxChange(checked, value) {},
    // æœåŠ¡å½¢å¼é€‰å–
    handleCheckedCitiesChange(row) {
      console.log(row, "服务");
@@ -1965,9 +2031,10 @@
      console.log(tag, "tag");
      console.log(this.foncheckList, "foncheckList");
      this.checkList = this.checkList.filter((item) => item != tag.value);
      this.foncheckList = this.foncheckList.filter(obj => obj.value !== tag.value);
      this.foncheckList = this.foncheckList.filter(
        (obj) => obj.value !== tag.value
      );
      console.log(this.checkList, "checkList");
    },
    // ç§‘室处理
    Departmenttreatment() {
@@ -1977,7 +2044,7 @@
          longTemp: this.form.longTask,
          deptCode: item,
          tempid: null,
          type: 11,
          type: 21,
        });
      });
@@ -1987,7 +2054,7 @@
          longTemp: this.form.longTask,
          deptCode: item,
          tempid: null,
          type: 11,
          type: 21,
        });
      });
      console.log(33);
src/views/repositoryai/templateku/configurat/index.vue
@@ -101,7 +101,7 @@
            <el-col :span="12">
              <el-form-item label="可用状态" prop="region">
                <el-select
                  v-model="ruleForm.usestate"
                  v-model="ruleForm.isenable"
                  size="medium"
                  placeholder="请选择"
                >
@@ -567,8 +567,8 @@
                  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 :label="'1'">是</el-radio>
                    <el-radio :label="'0'">否</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-form-item label="选中提示" v-if="topicobj.scriptType != 1">
@@ -989,6 +989,20 @@
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  label="问题类型"
                  align="center"
                  key="valueType"
                  prop="valueType"
                  width="120"
                >
                  <template slot-scope="scope">
                    <dict-tag
                      :options="valuetypes"
                      :value="scope.row.valueType"
                    />
                  </template>
                </el-table-column>
                <el-table-column
                  label="选项内容"
                  align="center"
                  key="targetoptions"
@@ -1294,64 +1308,7 @@
                      </el-col>
                    </el-row>
                  </div>
                  <div class="topicxq">
                    <el-row :gutter="10">
                      <el-col :span="20"
                        ><el-form-item label="听不清话术">
                          <el-input
                            style="width: 400px"
                            type="textarea"
                            placeholder="请输入"
                            v-model="indexform.noClearlyText"
                            show-word-limit
                          >
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row>
                    <el-row>
                      <el-col :span="6">
                        <el-form-item label="听不清语音" prop="verbaltrickyy">
                          <el-upload
                            class="upload-demo"
                            :action="uploadImgUrl"
                            :show-file-list="false"
                            :headers="headers"
                            :on-success="
                              (response, file) =>
                                handleChange(response, file, 4)
                            "
                            accept=".wav,.mp3"
                            :limit="1"
                          >
                            <el-button size="small" type="primary"
                              >点击上传</el-button
                            >
                          </el-upload>
                        </el-form-item>
                      </el-col>
                      <el-col :span="6">
                        <span
                          style="font-size: 12px"
                          v-if="indexform.noclearlyvoice"
                          >{{
                            indexform.noclearlyvoice.substring(
                              indexform.noclearlyvoice.lastIndexOf("/") + 1
                            )
                          }}</span
                        >
                      </el-col>
                      <el-col :span="6">
                        <mini-audio
                          :audio-source="
                            indexform.noclearlyvoice
                              ? indexform.noclearlyvoice
                              : 'https://example.com/example.mp3'
                          "
                        ></mini-audio>
                      </el-col>
                    </el-row>
                  </div>
                  <div class="topicxq">
                    <el-row :gutter="10">
                      <el-col :span="20"
@@ -1404,6 +1361,64 @@
                          :audio-source="
                            indexform.sliencevoice
                              ? indexform.sliencevoice
                              : 'https://example.com/example.mp3'
                          "
                        ></mini-audio>
                      </el-col>
                    </el-row>
                  </div>
                  <div class="topicxq">
                    <el-row :gutter="10">
                      <el-col :span="20"
                        ><el-form-item label="听不清话术">
                          <el-input
                            style="width: 400px"
                            type="textarea"
                            placeholder="请输入"
                            v-model="indexform.noClearlyText"
                            show-word-limit
                          >
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row>
                    <el-row>
                      <el-col :span="6">
                        <el-form-item label="听不清语音" prop="verbaltrickyy">
                          <el-upload
                            class="upload-demo"
                            :action="uploadImgUrl"
                            :show-file-list="false"
                            :headers="headers"
                            :on-success="
                              (response, file) =>
                                handleChange(response, file, 4)
                            "
                            accept=".wav,.mp3"
                            :limit="1"
                          >
                            <el-button size="small" type="primary"
                              >点击上传</el-button
                            >
                          </el-upload>
                        </el-form-item>
                      </el-col>
                      <el-col :span="6">
                        <span
                          style="font-size: 12px"
                          v-if="indexform.noclearlyvoice"
                          >{{
                            indexform.noclearlyvoice.substring(
                              indexform.noclearlyvoice.lastIndexOf("/") + 1
                            )
                          }}</span
                        >
                      </el-col>
                      <el-col :span="6">
                        <mini-audio
                          :audio-source="
                            indexform.noclearlyvoice
                              ? indexform.noclearlyvoice
                              : 'https://example.com/example.mp3'
                          "
                        ></mini-audio>
@@ -1494,7 +1509,7 @@
      ruleForm: {
        templateName: "",
        revisitBefore:
          "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访随访。",
          "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访。",
        revisitAfter:
          "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!",
        ivrLibaTemplateTagList: [],
@@ -1532,6 +1547,7 @@
      usable: [],
      required: [],
      valuetype: [],
      valuetypes: [],
      askvaluetype: [],
      mode: [],
      inputVisible: false,
@@ -1613,6 +1629,7 @@
    this.usable = store.getters.usable;
    this.required = store.getters.required;
    this.valuetype = store.getters.valuetype;
    this.valuetypes = store.getters.valuetypelb;
    this.askvaluetype = store.getters.askvaluetype;
    this.languagelist = store.getters.languagelist;
    this.courtyardlist = store.getters.courtyardlist;
@@ -1685,7 +1702,7 @@
            console.log(2211);
            this.ruleForm = res.data;
            if (this.ruleForm.deptNames)
              this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
              // this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
            this.ruleForm.suitway = this.ruleForm.suitway.split(",");
            if (this.ruleForm.campus)
              this.ruleForm.campus = this.ruleForm.campus.split(",");
@@ -1828,17 +1845,16 @@
        this.ruleForm.isoperation = 2;
        this.ruleForm.tempDetpRelevances = [];
        compileFollowup(this.ruleForm).then((res) => {
          if (res.code==200) {
          if (res.code == 200) {
            this.$modal.msgSuccess("修改成功");
          this.confirmillness();
          this.putbelongDepts(this.id);
          // this.$modal.closeLoading();
          // this.$router.go(-1);
          window.location.reload();
          }else{
            this.confirmillness();
            this.putbelongDepts(this.id);
            // this.$modal.closeLoading();
            // this.$router.go(-1);
            window.location.reload();
          } else {
            this.$modal.closeLoading();
          }
        });
      } else {
        this.ruleForm.isoperation = 1;
@@ -1847,16 +1863,15 @@
          : "1.0";
        this.ruleForm.tempDetpRelevances = [];
        compileFollowup(this.ruleForm).then((res) => {
          if (res.code==200) {
          if (res.code == 200) {
            this.$modal.msgSuccess("新增成功");
            this.confirmillness(res.data);
            this.putbelongDepts(res.data);
            this.$modal.closeLoading();
            this.$router.go(-1);
          }else{
          } else {
            this.$modal.closeLoading();
          }
        });
      }
    },
@@ -2165,6 +2180,8 @@
    },
    // é—®é¢˜æŽ’序
    sortFn() {
      console.log(this.ruleForm.ivrLibaTemplateScriptVOList);
      this.ruleForm.ivrLibaTemplateScriptVOList.forEach((item, index) => {
        item.sort = Number(index) + 1;
        console.log(this.ruleForm.ivrLibaTemplateScriptVOList.length);
@@ -2175,7 +2192,7 @@
        } else {
          item.nextScriptno = item.sort + 1;
        }
        if (item.ivrLibaScriptTargetoptionList) {
        if (item.ivrLibaScriptTargetoptionList&&!item.branchFlag) {
          item.ivrLibaScriptTargetoptionList.forEach((items) => {
            items.nextQuestion = Number(item.sort) + 1;
          });
@@ -2186,7 +2203,22 @@
      console.log(this.ruleForm.ivrLibaTemplateScriptVOList);
    },
    // -----------------------话术选项
    deloption() {},
    deloption(item) {
      const index = this.topicobj.ivrLibaScriptTargetoptionList.indexOf(item);
      if (index != -1) {
        if (item.id) {
          console.log(item, "chunz");
          item.isoperation = 3;
          console.log(this.topicobj.ivrLibaScriptTargetoptionList);
          this.$forceUpdate();
        } else {
          this.topicobj.ivrLibaScriptTargetoptionList.splice(index, 1); // ä»Žç´¢å¼•位置删除一个元素
        }
        // this.sortFn();
      } else {
        console.log("未找到该对象");
      }
    },
    // ä¿®æ”¹é¢˜ç›®ä¿¡æ¯
    Submittopicobj() {
      this.$modal
@@ -2206,7 +2238,7 @@
          this.drawer = false;
          this.sortFn();
          this.$modal.msgSuccess("题目新增成功,保存模板失效");
          this.$modal.msgSuccess("题目新增成功,保存模板生效");
        });
    },
src/views/repositoryai/verbaltrick/index.vue
@@ -86,7 +86,6 @@
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="语言" prop="status">
                <el-select v-model="queryParams.language" placeholder="请选择">
                  <el-option
@@ -204,6 +203,17 @@
              >
                <template slot-scope="scope">
                  <dict-tag :options="mode" :value="scope.row.suitway" />
                </template>
              </el-table-column>
              <el-table-column
                label="问题类型"
                align="center"
                key="valueType"
                prop="valueType"
                width="120"
              >
                <template slot-scope="scope">
                  <dict-tag :options="valuetype" :value="scope.row.valueType" />
                </template>
              </el-table-column>
              <el-table-column
@@ -542,6 +552,7 @@
      mode: [],
      languagelist: [],
      valuetype:[],
      qyoptions: [],
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
@@ -563,6 +574,7 @@
    this.getDeptTree();
    this.mode = store.getters.mode;
    this.languagelist = store.getters.languagelist;
    this.valuetype = store.getters.valuetypelb;
    this.qyoptions = store.getters.usable;
  },
src/views/repositoryai/verbaltrick/particulars/index.vue
@@ -62,6 +62,16 @@
                  @focus="handleInput('scriptContent')"
                />
              </el-form-item>
              <el-form-item label="问题描述" prop="scriptDesc">
                <el-input
                  :rows="1"
                  type="textarea"
                  id="scriptDesc"
                  show-word-limit
                  placeholder="请输入描述内容"
                  v-model.sync="indexform.scriptDesc"
                />
              </el-form-item>
          <el-row>
            <el-col :span="12">
              <el-form-item label="语言" prop="deptId">
vue.config.js
@@ -36,7 +36,8 @@
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      [process.env.VUE_APP_BASE_API]: {
        // target: `http://192.168.168.60:8095`,
        target: `http://10.202.20.185:8095`,
        // target: `http://10.202.20.185:8095`,
        target: `http://192.168.2.13:8095`,
        // target:`http://localhost:8095`,
        // target: `http://192.168.101.135:8095`,
        // target: `http://192.168.101.166:8093`,