WXL
2024-07-31 3d50e2c6d8cd86ee10b4353ad6365c59f588dbc4
测试完成
已修改10个文件
678 ■■■■■ 文件已修改
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/AiCentre/Qtemplate.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/tasklist/index.vue 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/questionnaire/compilequer/index.vue 123 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/questionnaire/index.vue 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/matching/myAudio.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/templateku/configurat/index.vue 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/verbaltrick/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/verbaltrick/particulars/index.vue 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json
@@ -72,6 +72,7 @@
    "style-loader": "^3.3.3",
    "stylus-loader": "^7.1.3",
    "vue": "2.6.12",
    "vue-audio-better": "^3.0.1",
    "vue-cli": "^2.9.6",
    "vue-codemirror": "^4.0.6",
    "vue-count-to": "1.0.13",
src/api/AiCentre/Qtemplate.js
@@ -9,6 +9,7 @@
    data: data,
  });
}
// 问卷模版列表
export function getQtemplatelist(data) {
  return request({
    url: "/smartor/svyLibTemplate/list",
src/main.js
@@ -73,6 +73,8 @@
import DictData from "@/components/DictData";
// 组件封装集成
import components from "./components";
// 语音组件
import VueAudio from 'vue-audio-better'
// 注册过滤器
// 自定义指令
import * as directives from "./directives";
@@ -109,6 +111,7 @@
Vue.use(directive);
Vue.use(plugins);
Vue.use(VueMeta);
Vue.use(VueAudio)
DictData.install();
Vue.use(components);
// Vue.use(VueQuillEditor)
src/views/followvisit/tasklist/index.vue
@@ -12,12 +12,18 @@
        label-width="98px"
      >
        <el-form-item label="任务名称">
          <el-input v-model="topqueryParams.name"></el-input>
          <el-input
            v-model="topqueryParams.taskName"
            @keyup.enter.native="handleQuery"
          ></el-input>
        </el-form-item>
        <el-form-item label="审核人">
          <el-input v-model="topqueryParams.name"></el-input>
        <el-form-item label="创建人">
          <el-input
            v-model="topqueryParams.createBy"
            @keyup.enter.native="handleQuery"
          ></el-input>
        </el-form-item>
        <el-form-item label="审核时间">
        <el-form-item label="创建时间">
          <el-date-picker
            v-model="dateRange"
            style="width: 240px"
@@ -28,32 +34,17 @@
            end-placeholder="结束日期"
          ></el-date-picker>
        </el-form-item>
        <el-form-item label="随访类型" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
            <el-option
              v-for="item in topicoptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        <el-form-item label="模版名称" prop="status">
          <el-input
            v-model="topqueryParams.templatename"
            @keyup.enter.native="handleQuery"
          ></el-input>
        </el-form-item>
        <el-form-item label="模版" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
        <el-form-item label="任务状态" prop="status">
          <el-select v-model="topqueryParams.sendState" placeholder="请选择">
            <el-option
              v-for="item in topicoptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="门诊随访状态" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
            <el-option
              v-for="item in topicoptions"
              v-for="item in dict.type.task_status"
              :key="item.value"
              :label="item.label"
              :value="item.value"
@@ -137,7 +128,6 @@
          label="任务名称"
          fixed
          align="center"
          sortable
          key="taskName"
          prop="taskName"
          :show-overflow-tooltip="true"
@@ -654,12 +644,14 @@
        this.taskoptions,
        this.tasktopic
      );
      getTasklist(this.topqueryParams).then((response) => {
        this.userList = response.rows;
        this.total = response.total;
        this.$forceUpdate();
        this.loading = false;
      });
      getTasklist(this.addDateRange(this.topqueryParams, this.dateRange)).then(
        (response) => {
          this.userList = response.rows;
          this.total = response.total;
          this.$forceUpdate();
          this.loading = false;
        }
      );
    },
    // 查看门诊随访详情
    Referencequestion(row) {
src/views/knowledge/questionnaire/compilequer/index.vue
@@ -246,6 +246,13 @@
              @click="getaddtopiclist"
              >添加题目</el-button
            >
            <el-button
              type="success"
              icon="el-icon-edit-outline"
              round
              @click="Operateit = !Operateit"
              >{{ !Operateit ? "编辑题目" : "完整信息展示" }}</el-button
            >
          </div>
          <div style="display: flex">
            <span
@@ -264,7 +271,7 @@
          </div>
        </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"
@@ -275,6 +282,7 @@
                  align="center"
                  key="sort"
                  prop="sort"
                  width="50"
                />
                <el-table-column
                  label="题目标题"
@@ -284,14 +292,60 @@
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  label="题型"
                  align="center"
                  key="scriptType"
                  prop="scriptType"
                  :show-overflow-tooltip="true"
                >
                  <template slot-scope="scope">
                    <dict-tag
                      :options="askvaluetype"
                      :value="scope.row.scriptType"
                    />
                  </template>
                </el-table-column>
                <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="targetname"
                  prop="targetname"
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  v-if="!Operateit"
                  label="是否必填"
                  align="center"
                  key="ismandatory"
                  prop="ismandatory"
                  :show-overflow-tooltip="true"
                >
                  <template slot-scope="scope">
                    <dict-tag
                      :options="required"
                      :value="scope.row.ismandatory"
                    />
                  </template>
                </el-table-column>
                <el-table-column
                  label="下题跳转"
                  align="center"
                  key="nextScriptno"
                  prop="nextScriptno"
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  v-if="Operateit"
                  label="操作"
                  align="center"
                  width="250"
@@ -327,27 +381,32 @@
              </el-table>
            </el-card>
          </div>
          <div class="presentation-right">
          <div class="presentation-right" v-if="Operateit">
            <el-card class="box-card">
              <el-form
                :inline="true"
                :model="topicobj"
                class="demo-form-inline"
              >
                <div class="headline">
                  题目设置详情
                  <span style="margin-left: 30px"
                    ><el-button type="primary" @click="Submittopicobj"
                      >保存</el-button
                    ></span
                  >
                </div>
                <el-form-item label="题目标题">
                  <el-input
                    v-model="topicobj.scriptTopic"
                    placeholder="请输入标题"
                  ></el-input>
                </el-form-item>
                <div class="headline">题目设置详情</div>
                <el-row :gutter="10">
                  <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="下题跳转" v-if="!topicobj.branchFlag">
                      <el-input
                        v-model="topicobj.nextScriptno"
                        placeholder="请输入题号"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row :gutter="10">
                  <el-col :span="12"
                    ><el-form-item label="是否必填">
@@ -380,6 +439,12 @@
                      </el-select> </el-form-item
                  ></el-col>
                </el-row>
                <el-form-item label="是否由选项配置跳转">
                  <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>
                <div v-if="topicobj.scriptType != 3">
                  <div class="headline">选项设置</div>
                  <div
@@ -781,11 +846,13 @@
      themelist: [],
      languagelist: [],
      courtyardlist: [],
      askvaluetype: [],
      precedencetype: [],
      inputValueillness: "",
      inputVisible: false,
      inputVisibleillness: false,
      illnessVisible: false, //指标疾病弹框
      Operateit: true,
      deptOptions: [],
      optionsillness: [],
      delScriptVOList: [],
@@ -839,6 +906,8 @@
    this.required = store.getters.required;
    this.valuetype = store.getters.valuetype;
    this.courtyardlist = store.getters.courtyardlist;
    this.askvaluetype = store.getters.askvaluetype;
    // this.test();
  },
@@ -1293,8 +1362,7 @@
  // display: flex;
}
.sidecolumn {
  margin: 20px;
  margin-bottom: 0;
  margin: 10px 20px 0 20px;
  padding: 20px;
  background: #edf1f7;
  border: 1px solid #dcdfe6;
@@ -1308,6 +1376,8 @@
  // margin-top: 20px;
  margin: 20px;
  padding: 30px;
  padding-top: 5px;
  margin-top: 10px;
  background: #ffff;
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
@@ -1387,6 +1457,16 @@
      color: #f52727;
    }
  }
  .spresentation-left {
    width: 100%;
    // height: 500px;
    .button-textxg {
      color: #024df0;
    }
    .button-textsc {
      color: #f52727;
    }
  }
  .presentation-right {
    width: 50%;
    max-height: 688px;
@@ -1411,6 +1491,13 @@
.custom-width {
  width: 100px; /* 设置宽度样式 */
}
.el-select {
  width: 40%;
}
.el-cascader {
  width: 40%;
}
::v-deep .addtopic-input {
  input {
    background: #02a7f0;
src/views/knowledge/questionnaire/index.vue
@@ -68,72 +68,48 @@
              v-show="showSearch"
              label-width="98px"
            >
              <el-form-item label="问卷名称" prop="userName">
              <el-form-item label="问卷名称" prop="svyname">
                <el-input
                  v-model="queryParams.userName"
                  v-model="queryParams.svyname"
                  placeholder="请输入"
                  clearable
                  style="width: 200px"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="适用科室" prop="region">
                <el-cascader
                  v-model="queryParams.administrative"
                  :options="deptList"
                  :props="props"
                  :show-all-levels="false"
                  clearable
                >
                  <template slot-scope="{ node, data }">
                    <span>{{ data.deptName }}</span>
                    <span v-if="!node.isLeaf">
                      ({{ data.children.length }})
                    </span>
                  </template>
                </el-cascader>
              </el-form-item>
              <el-form-item label="通知内容" prop="userName">
                <el-input
                  v-model="queryParams.userNamevalue"
                  placeholder="请输入"
                  clearable
                  style="width: 200px"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="适用方式" prop="shape">
                <el-cascader
                  v-model="queryParams.shapevalue"
                  :options="editableTabs"
                  :props="propss"
                  clearable
                ></el-cascader>
              </el-form-item>
              <el-form-item label="内容形式" prop="classify">
              <el-form-item label="适用院区" prop="region">
                <el-select
                  v-model="queryParams.classifyvalue"
                  placeholder="请选择"
                  v-model="queryParams.campus"
                  size="medium"
                  filterable
                  placeholder="请选择分类"
                >
                  <el-option
                    v-for="(item, index) in editableTabs"
                    :key="index++"
                    :label="item.title"
                    :value="index++"
                    v-for="item in courtyardlist"
                    :key="item.label"
                    :label="item.label"
                    :value="item.label"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="主要内容" prop="userName">
                <el-input
                  v-model="queryParams.description"
                  placeholder="请输入"
                  clearable
                  style="width: 200px"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="可用状态" prop="classify">
                <el-select
                  v-model="queryParams.classifyvalue"
                  placeholder="请选择"
                >
                <el-select v-model="queryParams.isenable" placeholder="请选择">
                  <el-option
                    v-for="(item, index) in editableTabs"
                    :key="index++"
                    :label="item.title"
                    :value="index++"
                    v-for="(item, index) in qyoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
@@ -189,15 +165,15 @@
              @selection-change="handleSelectionChange"
            >
              <el-table-column type="selection" width="50" align="center" />
              <el-table-column
              <!-- <el-table-column
                label="序号"
                fixed
                align="center"
                key="svyid"
                prop="svyid"
              />
              /> -->
              <el-table-column
                label="问卷标题"
                label="问卷名称"
                fixed
                align="center"
                key="svyname"
@@ -254,7 +230,7 @@
              </el-table-column>
              <el-table-column
                label="可用"
                label="是否可用"
                align="center"
                key="isenable"
                prop="isenable"
@@ -287,7 +263,7 @@
                    v-hasPermi="['system:user:edit']"
                  >
                    <span class="button-text"
                      ><i class="el-icon-edit"></i>二维码</span
                      ><i class="el-icon-edit"></i>预览</span
                    ></el-button
                  >
                  <!-- <el-button
@@ -411,7 +387,7 @@
      </span>
    </el-dialog>
    <!-- 二维码展示弹框 -->
    <el-dialog width="30%" :visible.sync="goQRCodeVisible">
    <!-- <el-dialog width="30%" :visible.sync="goQRCodeVisible">
      <div class="qrcode-dialo">
        <div class="qrcode-text">
          {{ namequestionnaire }}<span>{{ haoquestionnaire }}</span>
@@ -421,6 +397,69 @@
            src="D:/qrcode/fc9a1fa37e394ac3ac606bf6b77b17c3"
            fit="cover"
          ></el-image>
        </div>
      </div>
    </el-dialog> -->
    <!-- 问卷模版预览 -->
    <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>
          <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="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 == 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>
    </el-dialog>
@@ -436,7 +475,7 @@
  addQtemplateclassify,
  editQtemplateclassify,
  getQtemplatelist,
  issueinfo,
  getQtemplateobj,
  compileissue,
  delQtemplateinfo,
  Followupinfo,
@@ -462,6 +501,7 @@
      loading: false,
      // 选中数组
      ids: [],
      qremark: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
@@ -473,6 +513,7 @@
      namequestionnaire: "",
      haoquestionnaire: "",
      QRcodeurl: "",
      courtyardlist: "",
      // 用户表格数据
      userList: [],
@@ -492,6 +533,8 @@
      idds: "",
      amendtag: false, //是否修改类别
      dialogFormVisible: false, //修改添加类别弹框
      topicVisible: false, //
      topicform: {},
      classifyform: {}, //类别表单
      indexid: null,
      inputValue: "",
@@ -530,6 +573,7 @@
    this.languagelist = store.getters.languagelist;
    this.qyoptions = store.getters.usable;
    this.editableTabs = store.getters.editableTabs;
    this.courtyardlist = store.getters.courtyardlist;
  },
  methods: {
@@ -547,15 +591,20 @@
    },
    goQRCode(row) {
      getQRcode({
        url: "/outsideChain?param1=KHRYDSSuTpwGWDhAS6OnpfxObRZf8fd/TIagYWPvDuyku+MjtrWt1efC1htoBDc+G4QP2UOWPNitAO4TwH4oIQ==&param2=CP/xYqwqDhWACt2aQ/HOwhgRM62Lh4/1upwYDl7dmKSuiaa4zRzMgu7rmRztiwQj2YvJ1KAX1zBTpUAIdxPvUA==",
      }).then((res) => {
        console.log(res);
        this.QRcodeurl = "D:/qrcode/fc9a1fa37e394ac3ac606bf6b77b17c3";
      getQtemplateobj({ svyid: row.svyid }).then((res) => {
        this.topicform = res.rows[0];
        console.log(this.topicform);
        this.topicVisible = true;
      });
      this.goQRCodeVisible = true;
      this.namequestionnaire = row.userName;
      this.haoquestionnaire = row.nickName;
      // getQRcode({
      //   url: "/outsideChain?param1=KHRYDSSuTpwGWDhAS6OnpfxObRZf8fd/TIagYWPvDuyku+MjtrWt1efC1htoBDc+G4QP2UOWPNitAO4TwH4oIQ==&param2=CP/xYqwqDhWACt2aQ/HOwhgRM62Lh4/1upwYDl7dmKSuiaa4zRzMgu7rmRztiwQj2YvJ1KAX1zBTpUAIdxPvUA==",
      // }).then((res) => {
      //   console.log(res);
      //   this.QRcodeurl = "D:/qrcode/fc9a1fa37e394ac3ac606bf6b77b17c3";
      // });
      // this.goQRCodeVisible = true;
      // this.namequestionnaire = row.userName;
      // this.haoquestionnaire = row.nickName;
    },
    // 表单重置
    reset() {
@@ -710,7 +759,8 @@
        });
        return;
      }
      let calssvalue = {};
      let calssvalue = {
      };
      if (
        this.classifyform.pid &&
        this.classifyform.name &&
@@ -719,11 +769,12 @@
        const index = this.deptOptions.findIndex(
          (obj) => obj.id == this.classifyform.pid
        );
        console.log(this.deptOptions[index]);
        calssvalue = this.deptOptions[index];
        calssvalue.svyLibTitleCategoryList.push(this.classifyform);
        calssvalue.svyLibTemplateCategoryList.push(this.classifyform);
      } else if (this.radio == "主分类" && this.classifyform.name) {
        this.classifyform.pid = null;
        this.classifyform.svyLibTitleCategoryList = [];
        this.classifyform.svyLibTemplateCategoryList = [];
      } else {
        return this.$modal.msgError("请填写完整信息");
      }
@@ -954,6 +1005,22 @@
    vertical-align: bottom;
  }
}
.preview-left {
  margin: 20px;
  //   margin: 20px;
  padding: 30px;
  background: #ffff;
  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);
  .scriptTopic-dev {
    margin-bottom: 25px;
    font-size: 20px !important;
    .dev-text {
      margin-bottom: 10px;
    }
  }
}
::v-deep .el-tree-node__content {
  display: -webkit-box;
src/views/repositoryai/matching/myAudio.vue
@@ -113,7 +113,7 @@
    },
    theControlList: {
      type: String,
      default: "",
      default: "",
    },
  },
  data() {
src/views/repositoryai/templateku/configurat/index.vue
@@ -462,6 +462,10 @@
                      </el-select> </el-form-item
                  ></el-col>
                </el-row>
                <el-form-item label="问题语音" v-if="topicobj.scriptVoice">
                  <mini-audio :audio-source="topicobj.scriptVoice"></mini-audio>
                </el-form-item>
                <div
                  class="topicxq"
                  v-if="topicobj.valueType == 2 || topicobj.valueType == 3"
@@ -512,38 +516,16 @@
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row>
                    <!-- <el-row :gutter="10">
                      <el-col :span="12"
                        ><el-form-item label="处理">
                          <el-input
                            type="text"
                            placeholder="(默认)无声"
                            v-model="topicobj.text"
                            maxlength="10"
                            show-word-limit
                          >
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row> -->
                    <el-row :gutter="10">
                      <el-col :span="16">
                        <el-form-item label="语音文件">
                          <el-upload
                            class="upload-demo"
                            style="display: flex"
                            action="https://jsonplaceholder.typicode.com/posts/"
                            :on-change="handleChange"
                            :file-list="fileList"
                            :limit="1"
                            :on-exceed="handleExceed"
                          >
                            <el-button size="small" type="primary"
                              >点击上传</el-button
                            >
                          </el-upload>
                        </el-form-item></el-col
                      >
                        <el-form-item
                          label="无匹配语音"
                          v-if="topicobj.nomatchvoice"
                        >
                          <mini-audio
                            :audio-source="topicobj.nomatchvoice"
                          ></mini-audio> </el-form-item
                      ></el-col>
                    </el-row>
                  </div>
                  <div class="topicxq">
@@ -560,38 +542,21 @@
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row>
                    <!-- <el-row :gutter="10">
                      <el-col :span="12"
                        ><el-form-item label="处理">
                          <el-input
                            type="text"
                            placeholder="(默认)无声"
                            v-model="topicobj.text"
                            maxlength="10"
                            show-word-limit
                          >
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row> -->
                    <el-row :gutter="10">
                      <el-col :span="16">
                        <el-form-item label="语音文件">
                          <el-upload
                            class="upload-demo"
                            style="display: flex"
                            action="https://jsonplaceholder.typicode.com/posts/"
                            :on-change="handleChange"
                            :file-list="fileList"
                            :limit="1"
                            :on-exceed="handleExceed"
                          >
                            <el-button size="small" type="primary"
                              >点击上传</el-button
                            >
                          </el-upload>
                        </el-form-item></el-col
                      >
                        <el-form-item
                          label="语音文件"
                          v-if="topicobj.noclearlyvoice"
                        >
                          <mini-audio
                            :audio-source="
                              topicobj.noclearlyvoice
                                ? topicobj.noclearlyvoice
                                : 'https://example.com/example.mp3'
                            "
                          ></mini-audio> </el-form-item
                      ></el-col>
                    </el-row>
                  </div>
                  <div class="topicxq">
@@ -608,38 +573,21 @@
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row>
                    <!-- <el-row :gutter="10">
                      <el-col :span="12"
                        ><el-form-item label="处理">
                          <el-input
                            type="text"
                            placeholder="(默认)无声"
                            v-model="topicobj.text"
                            maxlength="10"
                            show-word-limit
                          >
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row> -->
                    <el-row :gutter="10">
                      <el-col :span="16">
                        <el-form-item label="语音文件">
                          <el-upload
                            class="upload-demo"
                            style="display: flex"
                            action="https://jsonplaceholder.typicode.com/posts/"
                            :on-change="handleChange"
                            :file-list="fileList"
                            :limit="1"
                            :on-exceed="handleExceed"
                          >
                            <el-button size="small" type="primary"
                              >点击上传</el-button
                            >
                          </el-upload>
                        </el-form-item></el-col
                      >
                        <el-form-item
                          label="语音文件"
                          v-if="topicobj.sliencevoice"
                        >
                          <mini-audio
                            :audio-source="
                              topicobj.sliencevoice
                                ? topicobj.sliencevoice
                                : 'https://example.com/example.mp3'
                            "
                          ></mini-audio> </el-form-item
                      ></el-col>
                    </el-row>
                  </div>
                </div>
src/views/repositoryai/verbaltrick/index.vue
@@ -188,10 +188,10 @@
              />
              <el-table-column
                label="问题语音"
                label="问题内容"
                align="center"
                key="scriptVoice"
                prop="scriptVoice"
                key="scriptContent"
                prop="scriptContent"
                width="200"
              /><el-table-column
                label="关联指标"
src/views/repositoryai/verbaltrick/particulars/index.vue
@@ -246,7 +246,7 @@
                <div style="display: flex; margin-bottom: 10px">
                  <div
                    v-for="item in variablelist"
                    class="tsgname"
                    :class="item.default ? 'tsgname' : 'tsgnames'"
                    @click="tsgnameto(item)"
                  >
                    {{ item.variatename }}
@@ -273,23 +273,32 @@
              </el-form-item> </el-col
          ></el-row>
          <el-row>
            <el-col :span="6">
            <el-col :span="12">
              <el-form-item label="问题语音" prop="verbaltrickyy">
                <el-upload
                  class="upload-demo"
                  action="https://jsonplaceholder.typicode.com/posts/"
                  :on-change="handleChange"
                  :file-list="fileList"
                  :action="uploadImgUrl"
                  :headers="headers"
                  :on-success="
                    (response, file) => handleChange(response, file, 1)
                  "
                  accept=".wav,.mp3"
                  :limit="1"
                  :on-exceed="handleExceed"
                >
                  <el-button size="small" type="primary">点击上传</el-button>
                </el-upload>
                <!-- <el-input v-model="indexform.userName" maxlength="66"
                  show-word-limit /> -->
              </el-form-item>
            </el-col></el-row
          >
            </el-col>
            <el-col :span="6"> </el-col>
            <mini-audio
              :audio-source="
                indexform.scriptVoice
                  ? indexform.scriptVoice
                  : 'https://example.com/example.mp3'
              "
            ></mini-audio>
          </el-row>
          <el-row>
            <el-col :span="24">
              <el-form-item label="无匹配文本" prop="noMatchText">
@@ -305,21 +314,31 @@
              </el-form-item> </el-col
          ></el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="无匹配语音" prop="matchyy">
            <el-col :span="12">
              <el-form-item label="无匹配语音" prop="verbaltrickyy">
                <el-upload
                  class="upload-demo"
                  action="https://jsonplaceholder.typicode.com/posts/"
                  :on-change="handleChange"
                  :file-list="fileList"
                  :action="uploadImgUrl"
                  :headers="headers"
                  :on-success="
                    (response, file) => handleChange(response, file, 2)
                  "
                  accept=".wav,.mp3"
                  :limit="1"
                  :on-exceed="handleExceed"
                >
                  <el-button size="small" type="primary">点击上传</el-button>
                </el-upload>
              </el-form-item>
            </el-col></el-row
          >
            </el-col>
            <el-col :span="6"> </el-col>
            <mini-audio
              :audio-source="
                indexform.nomatchvoice
                  ? indexform.nomatchvoice
                  : 'https://example.com/example.mp3'
              "
            ></mini-audio>
          </el-row>
          <el-row>
            <el-col :span="24">
              <el-form-item label="无声文本" prop="slienceText">
@@ -335,21 +354,31 @@
              </el-form-item> </el-col
          ></el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="无声语音" prop="silentyy">
            <el-col :span="12">
              <el-form-item label="无声语音" prop="verbaltrickyy">
                <el-upload
                  class="upload-demo"
                  action="https://jsonplaceholder.typicode.com/posts/"
                  :on-change="handleChange"
                  :file-list="fileList"
                  :action="uploadImgUrl"
                  :headers="headers"
                  :on-success="
                    (response, file) => handleChange(response, file, 3)
                  "
                  accept=".wav,.mp3"
                  :limit="1"
                  :on-exceed="handleExceed"
                >
                  <el-button size="small" type="primary">点击上传</el-button>
                </el-upload>
              </el-form-item>
            </el-col></el-row
          >
            </el-col>
            <el-col :span="6"> </el-col>
            <mini-audio
              :audio-source="
                indexform.sliencevoice
                  ? indexform.sliencevoice
                  : 'https://example.com/example.mp3'
              "
            ></mini-audio>
          </el-row>
          <el-row>
            <el-col :span="24">
@@ -366,21 +395,31 @@
              </el-form-item> </el-col
          ></el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="听不清语音" prop="vagueyy">
            <el-col :span="12">
              <el-form-item label="听不清语音" prop="verbaltrickyy">
                <el-upload
                  class="upload-demo"
                  action="https://jsonplaceholder.typicode.com/posts/"
                  :on-change="handleChange"
                  :file-list="fileList"
                  :action="uploadImgUrl"
                  :headers="headers"
                  :on-success="
                    (response, file) => handleChange(response, file, 4)
                  "
                  accept=".wav,.mp3"
                  :limit="1"
                  :on-exceed="handleExceed"
                >
                  <el-button size="small" type="primary">点击上传</el-button>
                </el-upload>
              </el-form-item>
            </el-col></el-row
          >
            </el-col>
            <el-col :span="6"> </el-col>
            <mini-audio
              :audio-source="
                indexform.noclearlyvoice
                  ? indexform.noclearlyvoice
                  : 'https://example.com/example.mp3'
              "
            ></mini-audio>
          </el-row>
        </el-form>
        <div slot="footer" class="dialog-footer">
          <el-button type="primary" @click="nextstep">下一步</el-button>
@@ -595,12 +634,17 @@
} from "@/api/AiCentre/index";
import Regular from "@/components/Regular"; //正则组件
import store from "@/store";
import { getToken } from "@/utils/auth";
export default {
  name: "Verbalproblem",
  components: { Regular },
  data() {
    return {
      headers: {
        Authorization: "Bearer " + getToken(),
      },
      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
      Editprogress: 1, //编辑进度
      loading: false, // 遮罩层
      radio: "false", //单选题选中
@@ -842,17 +886,19 @@
    },
    // 文件----------------------
    // 控制文件
    handleChange(file, fileList) {
      this.fileList = fileList.slice(-3);
    handleChange(response, file, additionalParam) {
      console.log(response);
      if (additionalParam == 1) {
        this.indexform.scriptVoice = response.url;
      } else if (additionalParam == 2) {
        this.indexform.nomatchvoice = response.url;
      } else if (additionalParam == 3) {
        this.indexform.sliencevoice = response.url;
      } else if (additionalParam == 4) {
        this.indexform.noclearlyvoice = response.url;
      }
    },
    // 文件超出个数限制时的钩子
    handleExceed(files, fileList) {
      this.$message.warning(
        `当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
          files.length + fileList.length
        } 个文件`
      );
    },
    // 标签-----------------
    gettabList() {
      const tagqueryParams = {
@@ -1129,7 +1175,7 @@
  padding-top: 0;
  padding-bottom: 0;
}
.tsgname {
.tsgnames {
  width: 90px;
  margin-right: 10px;
  text-align: center;
@@ -1141,9 +1187,24 @@
  font-size: 18px;
  border-radius: 5px;
}
.tsgname:hover {
.tsgnames:hover {
  background: #3366f5;
}
.tsgname {
  width: 90px;
  margin-right: 10px;
  text-align: center;
  cursor: pointer;
  height: 40px;
  line-height: 40px;
  background: #66c18c;
  color: #ffff;
  font-size: 18px;
  border-radius: 5px;
}
.tsgname:hover {
  background: #20894d;
}
.tsgnamebj {
  width: 90px;
  margin-left: 15px;