|  |  | 
 |  |  |           <el-step> | 
 |  |  |             <template slot="title"> | 
 |  |  |               <span style="cursor: pointer" @click="Editprogress = 1" | 
 |  |  |                 >问题库编辑</span | 
 |  |  |                 >话术基础信息编辑</span | 
 |  |  |               > | 
 |  |  |             </template> | 
 |  |  |           </el-step> | 
 |  |  |           <el-step> | 
 |  |  |             <template slot="title"> | 
 |  |  |               <span style="cursor: pointer" @click="nextstep" | 
 |  |  |                 >问题指标编辑</span | 
 |  |  |                 >话术指标编辑</span | 
 |  |  |               > | 
 |  |  |             </template> | 
 |  |  |           </el-step> | 
 |  |  | 
 |  |  |     <div class="leftvlue"> | 
 |  |  |       <!-- 基本信息 --> | 
 |  |  |       <div v-if="Editprogress == 1"> | 
 |  |  |         <div class="leftvlue-jbxx">基本信息</div> | 
 |  |  |         <div class="leftvlue-jbxx"> | 
 |  |  |           基本信息 | 
 |  |  |           <span style="margin-left: 30px" | 
 |  |  |             ><el-button type="success" round @click="gettargetInfo" | 
 |  |  |               >+选择指标</el-button | 
 |  |  |             ></span | 
 |  |  |           > | 
 |  |  |         </div> | 
 |  |  |         <el-divider></el-divider> | 
 |  |  |         <el-form | 
 |  |  |           ref="form" | 
 |  |  | 
 |  |  |           :rules="rules" | 
 |  |  |           label-width="100px" | 
 |  |  |         > | 
 |  |  |         <el-row :gutter="20"> | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="问题主旨" prop="scriptTopic"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="indexform.scriptTopic" | 
 |  |  |                   placeholder="请输入问题主旨" | 
 |  |  |                   maxlength="80" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |           <el-form-item label="问题文本" prop="scriptContent"> | 
 |  |  |                 <el-input | 
 |  |  |                   :rows="2" | 
 |  |  |                   type="textarea" | 
 |  |  |                   id="scriptContent" | 
 |  |  |                   show-word-limit | 
 |  |  |                   placeholder="请输入内容" | 
 |  |  |                   v-model.sync="indexform.scriptContent" | 
 |  |  |                   @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"> | 
 |  |  | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |           <el-row :gutter="20"> | 
 |  |  |             <el-col :span="20"> | 
 |  |  |               <el-form-item label="问题主旨" prop="questiontitle"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="indexform.questiontitle" | 
 |  |  |                   placeholder="请输入问题主旨" | 
 |  |  |                   maxlength="80" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |  | 
 |  |  |           <el-form-item label="标签" prop="desc"> | 
 |  |  |             <div class="xinz-inf"> | 
 |  |  |               <el-tag | 
 |  |  | 
 |  |  |                 @change="handleInputConfirm" | 
 |  |  |                 filterable | 
 |  |  |                 remote | 
 |  |  |                 allow-create | 
 |  |  |                 reserve-keyword | 
 |  |  |                 default-first-option | 
 |  |  |                 :remote-method="remoteMethodtag" | 
 |  |  | 
 |  |  |               </div> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-drawer> | 
 |  |  |           <el-row> | 
 |  |  |           <!-- <el-row> | 
 |  |  |             <el-col :span="6"> | 
 |  |  |               <el-form-item label="仅限院区" prop="region"> | 
 |  |  |                 <el-select | 
 |  |  | 
 |  |  |             <el-col :span="6"> | 
 |  |  |               <el-form-item label="适用方式" prop="status"> | 
 |  |  |                 <el-select | 
 |  |  |                   disabled | 
 |  |  |                   v-model="indexform.suitway" | 
 |  |  |                   multiple | 
 |  |  |                   placeholder="请选择" | 
 |  |  |                 > | 
 |  |  |                   <el-option | 
 |  |  | 
 |  |  |                 </el-select> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="8"> | 
 |  |  |               <el-form-item label="关联指标" prop="region"> | 
 |  |  |                 <el-select | 
 |  |  |                   v-model="indexform.targetid" | 
 |  |  |                   filterable | 
 |  |  |                   remote | 
 |  |  |                   reserve-keyword | 
 |  |  |                   placeholder="请输入关键词" | 
 |  |  |                   :remote-method="remoteMethod" | 
 |  |  |                   @change="targetchange" | 
 |  |  |                   :loading="loading" | 
 |  |  |                 > | 
 |  |  |                   <el-option | 
 |  |  |                     v-for="item in targetlist" | 
 |  |  |                     :key="item.id" | 
 |  |  |                     :label="item.targetname" | 
 |  |  |                     :value="item.id" | 
 |  |  |                   > | 
 |  |  |                   </el-option> | 
 |  |  |                 </el-select> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |           </el-row> --> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="24"> | 
 |  |  |               <el-form-item label="问题变量" prop="questionText"> | 
 |  |  |               <el-form-item label="问题变量" prop="scriptContent"> | 
 |  |  |                 <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 }} | 
 |  |  | 
 |  |  |           > | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="24"> | 
 |  |  |               <el-form-item label="问题文本" prop="questionText"> | 
 |  |  |               <el-form-item label="语音文本" prop="scriptContent"> | 
 |  |  |                 <el-input | 
 |  |  |                   :rows="2" | 
 |  |  |                   type="textarea" | 
 |  |  |                   id="questionText" | 
 |  |  |                   id="scriptContent" | 
 |  |  |                   show-word-limit | 
 |  |  |                   placeholder="请输入内容" | 
 |  |  |                   v-model.sync="indexform.questionText" | 
 |  |  |                   @focus="handleInput('questionText')" | 
 |  |  |                   v-model.sync="indexform.ivrtext" | 
 |  |  |                   @focus="handleInput('scriptContent')" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> </el-col | 
 |  |  |           ></el-row> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="6"> | 
 |  |  |               <el-form-item label="问题语音" prop="verbaltrickyy"> | 
 |  |  |               <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" | 
 |  |  |                   :show-file-list="false" | 
 |  |  |                   :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"> | 
 |  |  |               <span style="font-size: 12px" v-if="indexform.ivrVoice">{{ | 
 |  |  |                 indexform.ivrVoice.substring( | 
 |  |  |                   indexform.ivrVoice.lastIndexOf("/") + 1 | 
 |  |  |                 ) | 
 |  |  |               }}</span> | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="6"> | 
 |  |  |               <mini-audio | 
 |  |  |                 :audio-source=" | 
 |  |  |                   indexform.ivrVoice | 
 |  |  |                     ? indexform.ivrVoice | 
 |  |  |                     : 'https://example.com/example.mp3' | 
 |  |  |                 " | 
 |  |  |               ></mini-audio> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |  | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="24"> | 
 |  |  |               <el-form-item label="无匹配文本" prop="noMatchText"> | 
 |  |  | 
 |  |  |           ></el-row> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="6"> | 
 |  |  |               <el-form-item label="无匹配语音" prop="matchyy"> | 
 |  |  |               <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" | 
 |  |  |                   :show-file-list="false" | 
 |  |  |                   :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"> | 
 |  |  |               <span style="font-size: 12px" v-if="indexform.nomatchvoice">{{ | 
 |  |  |                 indexform.nomatchvoice.substring( | 
 |  |  |                   indexform.nomatchvoice.lastIndexOf("/") + 1 | 
 |  |  |                 ) | 
 |  |  |               }}</span> | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="6"> | 
 |  |  |               <mini-audio | 
 |  |  |                 :audio-source=" | 
 |  |  |                   indexform.nomatchvoice | 
 |  |  |                     ? indexform.nomatchvoice | 
 |  |  |                     : 'https://example.com/example.mp3' | 
 |  |  |                 " | 
 |  |  |               ></mini-audio> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="24"> | 
 |  |  |               <el-form-item label="无声文本" prop="slienceText"> | 
 |  |  |               <el-form-item label="静默文本" prop="slienceText"> | 
 |  |  |                 <el-input | 
 |  |  |                   type="textarea" | 
 |  |  |                   :rows="2" | 
 |  |  | 
 |  |  |           ></el-row> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="6"> | 
 |  |  |               <el-form-item label="无声语音" prop="silentyy"> | 
 |  |  |               <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" | 
 |  |  |                   :show-file-list="false" | 
 |  |  |                   :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"> | 
 |  |  |               <span style="font-size: 12px" v-if="indexform.sliencevoice">{{ | 
 |  |  |                 indexform.sliencevoice.substring( | 
 |  |  |                   indexform.sliencevoice.lastIndexOf("/") + 1 | 
 |  |  |                 ) | 
 |  |  |               }}</span> | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="6"> | 
 |  |  |               <mini-audio | 
 |  |  |                 :audio-source=" | 
 |  |  |                   indexform.sliencevoice | 
 |  |  |                     ? indexform.sliencevoice | 
 |  |  |                     : 'https://example.com/example.mp3' | 
 |  |  |                 " | 
 |  |  |               ></mini-audio> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |  | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="24"> | 
 |  |  | 
 |  |  |           ></el-row> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="6"> | 
 |  |  |               <el-form-item label="听不清语音" prop="vagueyy"> | 
 |  |  |               <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" | 
 |  |  |                   :show-file-list="false" | 
 |  |  |                   :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"> | 
 |  |  |               <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> | 
 |  |  |         </el-form> | 
 |  |  |         <div slot="footer" class="dialog-footer"> | 
 |  |  |           <el-button type="primary" @click="nextstep">下一步</el-button> | 
 |  |  | 
 |  |  |       </div> | 
 |  |  |       <!-- 指标设置 --> | 
 |  |  |       <div v-if="Editprogress == 2"> | 
 |  |  |         <div class="leftvlue-jbxx">指标题目设置</div> | 
 |  |  |         <div class="leftvlue-jbxx"> | 
 |  |  |           指标题目设置 | 
 |  |  |           <span style="margin-left: 30px" | 
 |  |  |             ><el-button type="success" round @click="gettargetInfo" | 
 |  |  |               >+选择指标</el-button | 
 |  |  |             ></span | 
 |  |  |           > | 
 |  |  |         </div> | 
 |  |  |         <el-divider></el-divider> | 
 |  |  |         <el-form | 
 |  |  |           ref="form" | 
 |  |  | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="指标描述" prop="deptId"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="indexform.targetname" | 
 |  |  |                   v-model="indexform.targetdesc" | 
 |  |  |                   placeholder="请输入指标描述" | 
 |  |  |                   maxlength="60" | 
 |  |  |                 /> | 
 |  |  | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="24"> | 
 |  |  |               <el-form-item label="值类型"> | 
 |  |  |                 <el-radio-group disabled v-model="indexform.valueType"> | 
 |  |  |                 <el-radio-group | 
 |  |  |                   :disabled="indexform.targetid" | 
 |  |  |                   v-model="indexform.valueType" | 
 |  |  |                 > | 
 |  |  |                   <el-radio :label="1">选项</el-radio> | 
 |  |  |                   <el-radio :label="2">文本</el-radio> | 
 |  |  |                   <el-radio :label="3">数值</el-radio> | 
 |  |  |                 </el-radio-group> | 
 |  |  |               </el-form-item> | 
 |  |  |  | 
 |  |  |               <el-form-item label="题目类型"> | 
 |  |  |                 <el-radio-group | 
 |  |  |                   @input="typeselection" | 
 |  |  |                   :disabled="indexform.targetid" | 
 |  |  |                   v-model="indexform.scriptType" | 
 |  |  |                 > | 
 |  |  |                   <el-radio :label="1">单选</el-radio> | 
 |  |  |                   <!-- <el-radio :label="2">多选</el-radio> --> | 
 |  |  |                   <el-radio :label="4">问答</el-radio> | 
 |  |  |                 </el-radio-group> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col></el-row | 
 |  |  |           > | 
 |  |  |           <div v-if="indexform.valueType == 1"> | 
 |  |  |           <div v-if="indexform.scriptType == 1 || indexform.scriptType == 2"> | 
 |  |  |             <el-card class="box-card" style="margin-bottom: 20px"> | 
 |  |  |               <Regular | 
 |  |  |                 :TargetoptionList="indexform.ivrLibaScriptTargetoptionList" | 
 |  |  | 
 |  |  |                 @syioption="syioption" | 
 |  |  |                 @xiayioption="xiayioption" | 
 |  |  |                 :intent="false" | 
 |  |  |                 :Verbalproblem="false" | 
 |  |  |               /> | 
 |  |  |             </el-card> | 
 |  |  |             <el-row :gutter="20"> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="测试输入" prop="targetvalue"> | 
 |  |  |                   <el-input | 
 |  |  |                     v-model="testvalue" | 
 |  |  |                     v-model="indexform.content" | 
 |  |  |                     placeholder="请输入测试内容" | 
 |  |  |                     maxlength="40" | 
 |  |  |                   /> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="4"> | 
 |  |  |                 <el-button type="success">开始测试</el-button> | 
 |  |  |                 <el-button type="success" @click="testtagerlist" | 
 |  |  |                   >开始测试</el-button | 
 |  |  |                 > | 
 |  |  |               </el-col> | 
 |  |  |             </el-row> | 
 |  |  |             <div style="margin-bottom: 20px"> | 
 |  |  | 
 |  |  |         <el-button @click="Saveproblem()">保存数据</el-button> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |     <el-drawer | 
 |  |  |       title="选择指标" | 
 |  |  |       :visible.sync="drawer" | 
 |  |  |       custom-class="demo-drawer" | 
 |  |  |       size="50%" | 
 |  |  |     > | 
 |  |  |       <div class="preview-left"> | 
 |  |  |         <el-form | 
 |  |  |           :model="queryParams" | 
 |  |  |           ref="queryForm" | 
 |  |  |           size="small" | 
 |  |  |           :inline="true" | 
 |  |  |           label-width="98px" | 
 |  |  |         > | 
 |  |  |           <el-form-item label="标题" prop="userName"> | 
 |  |  |             <el-input | 
 |  |  |               v-model="queryParams.targetname" | 
 |  |  |               placeholder="请输入" | 
 |  |  |               clearable | 
 |  |  |               style="width: 200px" | 
 |  |  |               @keyup.enter.native="gettargetInfo" | 
 |  |  |             /> | 
 |  |  |           </el-form-item> | 
 |  |  |           <el-form-item label="指标类型" prop="scriptType"> | 
 |  |  |             <el-select v-model="queryParams.scriptType" placeholder="请选择"> | 
 |  |  |               <el-option | 
 |  |  |                 v-for="(item, index) in qyoptions" | 
 |  |  |                 :key="item.value" | 
 |  |  |                 :label="item.label" | 
 |  |  |                 :value="item.value" | 
 |  |  |               > | 
 |  |  |               </el-option> | 
 |  |  |             </el-select> | 
 |  |  |           </el-form-item> | 
 |  |  |  | 
 |  |  |           <el-form-item> | 
 |  |  |             <el-button | 
 |  |  |               type="primary" | 
 |  |  |               icon="el-icon-search" | 
 |  |  |               size="medium" | 
 |  |  |               @click="gettargetInfo" | 
 |  |  |               >搜索</el-button | 
 |  |  |             > | 
 |  |  |             <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" | 
 |  |  |               >重置</el-button | 
 |  |  |             > | 
 |  |  |           </el-form-item> | 
 |  |  |         </el-form> | 
 |  |  |         <el-table v-loading="loading" :data="targetList"> | 
 |  |  |           <el-table-column | 
 |  |  |             label="标题" | 
 |  |  |             align="center" | 
 |  |  |             key="targetname" | 
 |  |  |             prop="targetname" | 
 |  |  |             width="100" | 
 |  |  |           /> | 
 |  |  |           <el-table-column | 
 |  |  |             label="问题内容" | 
 |  |  |             align="center" | 
 |  |  |             key="targetdesc" | 
 |  |  |             prop="targetdesc" | 
 |  |  |             width="200" | 
 |  |  |             :show-overflow-tooltip="true" | 
 |  |  |           /> | 
 |  |  |  | 
 |  |  |           <el-table-column | 
 |  |  |             label="操作" | 
 |  |  |             align="center" | 
 |  |  |             class-name="small-padding fixed-width" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <el-button | 
 |  |  |                 size="medium" | 
 |  |  |                 type="text" | 
 |  |  |                 @click="selectlabel(scope.row)" | 
 |  |  |                 ><span class="button-textxg" | 
 |  |  |                   ><i class="el-icon-circle-plus-outline"></i>选择</span | 
 |  |  |                 ></el-button | 
 |  |  |               > | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |         </el-table> | 
 |  |  |         <pagination | 
 |  |  |           v-show="total > 0" | 
 |  |  |           :total="total" | 
 |  |  |           :page.sync="queryParams.pageNum" | 
 |  |  |           :limit.sync="queryParams.pageSize" | 
 |  |  |           @pagination="gettargetInfo" | 
 |  |  |         /> | 
 |  |  |       </div> | 
 |  |  |     </el-drawer> | 
 |  |  |   </div> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | 
 |  |  | } 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", //单选题选中 | 
 |  |  | 
 |  |  |       radioas: "", //填空题答案 | 
 |  |  |       dynamicTags: [], | 
 |  |  |       dellist: [], | 
 |  |  |       targetList: [], | 
 |  |  |       inputVisible: false, | 
 |  |  |       drawer: false, | 
 |  |  |       inputValue: "", | 
 |  |  |       testvalue: "", | 
 |  |  |       testgovalue: "", | 
 |  |  | 
 |  |  |       indexform: { | 
 |  |  |         ivrLibaScriptTargetoptionList: [], | 
 |  |  |         ivrLibaScriptTagList: [], | 
 |  |  |         suitway: "2", | 
 |  |  |         noMatchText:'抱歉,我没有听懂,您能再说一遍吗?', | 
 |  |  |         noClearlyText:'抱歉,我没有听清您说的话,您可以再说一次吗?', | 
 |  |  |         slienceText:'抱歉,我没有听到您说的话,您可以再说一次吗?', | 
 |  |  |       }, | 
 |  |  |       mode: [], | 
 |  |  |       questionclass: [], | 
 |  |  | 
 |  |  |       courtyardlist: [], | 
 |  |  |       // 总条数 | 
 |  |  |       total: 1, | 
 |  |  |  | 
 |  |  |       targetlist: [ | 
 |  |  |         { | 
 |  |  |           value: "选项1", | 
 |  |  |           label: "图文", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       rules: {}, | 
 |  |  |       rulesa: {}, | 
 |  |  |       optionstag: [], | 
 |  |  | 
 |  |  |  | 
 |  |  |       addvalue: "添加题目", | 
 |  |  |       languagelist: [], //语言列表 | 
 |  |  |       qyoptions: [], | 
 |  |  |       // 查询参数 | 
 |  |  |       queryParams: { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         userName: undefined, | 
 |  |  |         phonenumber: undefined, | 
 |  |  |         status: undefined, | 
 |  |  |         deptId: undefined, | 
 |  |  |         IDnumber: undefined, | 
 |  |  |       }, | 
 |  |  |       variabledeawer: false, | 
 |  |  |     }; | 
 |  |  | 
 |  |  |     this.languagelist = store.getters.languagelist; | 
 |  |  |     this.usable = store.getters.usable; | 
 |  |  |     this.courtyardlist = store.getters.courtyardlist; | 
 |  |  |     this.qyoptions = store.getters.askvaluetype; | 
 |  |  |   }, | 
 |  |  |  | 
 |  |  |   methods: { | 
 |  |  |     // 获取详情数据 | 
 |  |  |     getverbaltrick() { | 
 |  |  |       let id = this.$route.query.id; | 
 |  |  |       this.indexform.language = "普通话"; | 
 |  |  |       this.indexform.isAvailable = "1"; | 
 |  |  |  | 
 |  |  |       if (id) { | 
 |  |  |         getverbaltrick({ id: id }).then((res) => { | 
 |  |  |           this.indexform = res.data; | 
 |  |  |           if (this.indexform.suitway) | 
 |  |  |             this.indexform.suitway = this.indexform.suitway.split(","); | 
 |  |  |  | 
 |  |  |           this.indexform.assortid = parseInt(this.indexform.assortid); | 
 |  |  |           this.variablelist = JSON.parse(this.indexform.otherdata).length | 
 |  |  |             ? JSON.parse(this.indexform.otherdata) | 
 |  |  | 
 |  |  |           this.dynamicTags = this.indexform.ivrLibaScriptTagList.map( | 
 |  |  |             this.processElement | 
 |  |  |           ); | 
 |  |  |  | 
 |  |  |           // this.targetlist = [ | 
 |  |  |           //   { | 
 |  |  |           //     id: this.indexform.targetid, | 
 |  |  |           //     targetname: this.indexform.targetname, | 
 |  |  |           //   }, | 
 |  |  |           // ]; | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |       gettargetInfolist({ pageSize: 100, pageNum: 1 }).then((res) => { | 
 |  |  |         this.targetlist = res.rows; | 
 |  |  |       }); | 
 |  |  |       // 树 | 
 |  |  |       getbaltrickclassify({}).then((res) => { | 
 |  |  |         this.questionclass = res.rows; | 
 |  |  | 
 |  |  |     // 保存详细信息 | 
 |  |  |     Saveproblem() { | 
 |  |  |       this.indexform.otherdata = JSON.stringify(this.variablelist); | 
 |  |  |       if (this.indexform.suitway) { | 
 |  |  |         this.indexform.suitway = this.indexform.suitway.join(","); | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       if (this.indexform.id) { | 
 |  |  |         this.indexform.ivrLibaScriptTargetoptionList = | 
 |  |  | 
 |  |  |         console.log(this.dellist); | 
 |  |  |         this.indexform.ivrLibaScriptTargetoptionList = | 
 |  |  |           this.indexform.ivrLibaScriptTargetoptionList.concat(this.dellist); | 
 |  |  |         this.indexform.targetoptions = | 
 |  |  |           this.indexform.ivrLibaScriptTargetoptionList | 
 |  |  |             .filter((item) => item.isope != 3) // 过滤掉 isope 为 3 的项 | 
 |  |  |             .map((item) => item.targetvalue) | 
 |  |  |             .join(", "); | 
 |  |  |         compileverbaltrick(this.indexform).then((res) => { | 
 |  |  |           if (res.code == 200) { | 
 |  |  |             this.$modal.msgSuccess("修改成功"); | 
 |  |  | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     remoteMethod(query) { | 
 |  |  |       if (query !== "") { | 
 |  |  |         this.loading = true; | 
 |  |  |         setTimeout(() => { | 
 |  |  |           this.loading = false; | 
 |  |  |           gettargetInfolist({ targetname: query }).then((res) => { | 
 |  |  |             this.targetlist = res.rows; | 
 |  |  |           }); | 
 |  |  |         }, 200); | 
 |  |  |  | 
 |  |  |     testtagerlist() { | 
 |  |  |       if (this.indexform.content) { | 
 |  |  |         let data = this.indexform; | 
 |  |  |         data.targetoptionList = | 
 |  |  |           this.indexform.ivrLibaScriptTargetoptionList.concat(this.dellist); | 
 |  |  |         testtagerlist(data).then((res) => { | 
 |  |  |           this.$modal.msgSuccess("测试成功"); | 
 |  |  |           this.testgovalue = res.msg; | 
 |  |  |           this.getList(); | 
 |  |  |         }); | 
 |  |  |       } else { | 
 |  |  |         this.targetlist = []; | 
 |  |  |         this.$modal.msgError("请填写测试内容"); | 
 |  |  |         return; | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     targetchange(res) { | 
 |  |  |       console.log(res); | 
 |  |  |       gettargetInfo({ id: res }).then((res) => { | 
 |  |  |         console.log(res.rows[0]); | 
 |  |  |         this.$modal | 
 |  |  |           .confirm('是否添加"' + res.rows[0].targetname + '"指标的选项?') | 
 |  |  |           .then(() => { | 
 |  |  |             this.indexform.valueType = res.rows[0].valueType; | 
 |  |  |             this.indexform.questiontitle = res.rows[0].targetname; | 
 |  |  |             this.indexform.targetname = res.rows[0].targetname; | 
 |  |  |             this.indexform.questionText = res.rows[0].targetdesc; | 
 |  |  |             this.indexform.isAvailable = "0"; | 
 |  |  |             this.indexform.language = "普通话"; | 
 |  |  |             this.indexform.isenable = res.rows[0].isenable; | 
 |  |  |             this.$forceUpdate(); | 
 |  |  |             res.rows[0].targetoptionList.forEach((item) => { | 
 |  |  |               item.isoperation = 1; | 
 |  |  |               this.indexform.ivrLibaScriptTargetoptionList.push(item); | 
 |  |  |             }); | 
 |  |  |           }) | 
 |  |  |           .catch(() => { | 
 |  |  |             this.$modal.msgSuccess("已取消"); | 
 |  |  |     // 选择指标 | 
 |  |  |     selectlabel(row) { | 
 |  |  |       this.$modal | 
 |  |  |         .confirm( | 
 |  |  |           '是否选择标题为"' + row.targetname + '"的指标并替换填充问题信息?' | 
 |  |  |         ) | 
 |  |  |         .then(() => { | 
 |  |  |           console.log(row); | 
 |  |  |           this.indexform.valueType = row.valueType; | 
 |  |  |           this.indexform.scriptType = row.scriptType; | 
 |  |  |           this.indexform.scriptTopic = row.targetname; | 
 |  |  |           this.indexform.targetname = row.targetname; | 
 |  |  |           this.indexform.targetid = row.id; | 
 |  |  |           this.indexform.targetdesc = row.targetdesc; | 
 |  |  |           this.indexform.isAvailable = "0"; | 
 |  |  |           this.indexform.language = "普通话"; | 
 |  |  |           this.indexform.isenable = row.isenable; | 
 |  |  |           const labellist = row.targetoptionList; | 
 |  |  |           labellist.forEach((item) => { | 
 |  |  |             item.isoperation = 1; | 
 |  |  |             this.indexform.ivrLibaScriptTargetoptionList.push(item); | 
 |  |  |           }); | 
 |  |  |           this.drawer = false; | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); | 
 |  |  |     }, | 
 |  |  |     gettargetInfo() { | 
 |  |  |       this.queryParams.suitWay = 2; | 
 |  |  |       gettargetInfo(this.queryParams).then((res) => { | 
 |  |  |         console.log(res); | 
 |  |  |         this.targetList = res.rows; | 
 |  |  |         this.total = res.total; | 
 |  |  |         this.drawer = true; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     resetQuery() { | 
 |  |  |       this.queryParams = { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |       }; | 
 |  |  |       this.gettargetInfo(); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 题目类型更换 | 
 |  |  |     typeselection(row) { | 
 |  |  |       if ( | 
 |  |  |         (row == 1 || row == 2) && | 
 |  |  |         !this.indexform.ivrLibaScriptTargetoptionList.length | 
 |  |  |       ) { | 
 |  |  |         this.indexform.ivrLibaScriptTargetoptionList.push({ | 
 |  |  |           guid: 1, | 
 |  |  |           isoperation: 1, | 
 |  |  |           targetvalue: "", | 
 |  |  |           targetregex: "", | 
 |  |  |           targetregex2: "", | 
 |  |  |           dynamiccruxs: [], | 
 |  |  |           nodynamiccruxs: [], | 
 |  |  |           dynamiccruxsJson: "", | 
 |  |  |           nodynamiccruxsJson: "", | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 下一步 | 
 |  |  |     nextstep() { | 
 |  |  |       if (this.Editprogress <= 1) { | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     // 文件---------------------- | 
 |  |  |     // 控制文件 | 
 |  |  |     handleChange(file, fileList) { | 
 |  |  |       this.fileList = fileList.slice(-3); | 
 |  |  |     handleChange(response, file, additionalParam) { | 
 |  |  |       console.log(response); | 
 |  |  |       if (additionalParam == 1) { | 
 |  |  |         this.indexform.ivrVoice = response.url; | 
 |  |  |       } else if (additionalParam == 2) { | 
 |  |  |         this.indexform.nomatchvoice = response.url; | 
 |  |  |         console.log(this.indexform.nomatchvoice); | 
 |  |  |       } 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 = { | 
 |  |  | 
 |  |  |       let inputValueArr = ""; | 
 |  |  |       let el = document.querySelector("#" + this.currentInputId); | 
 |  |  |       //el.selectionStart; 这就是当前光标所在的位置(字符串中字符的index) | 
 |  |  |       if (this.currentInputId == "questionText") { | 
 |  |  |         inputValueArr = this.indexform.questionText.split(""); | 
 |  |  |       if (this.currentInputId == "scriptContent") { | 
 |  |  |         inputValueArr = this.indexform.scriptContent.split(""); | 
 |  |  |       } else if (this.currentInputId == "noMatchText") { | 
 |  |  |         inputValueArr = this.indexform.noMatchText.split(""); | 
 |  |  |       } else if (this.currentInputId == "slienceText") { | 
 |  |  | 
 |  |  |       // 把数组重新转换为字符串并赋值 | 
 |  |  |       inputValueArr = inputValueArr.join(""); | 
 |  |  |       console.log(inputValueArr); | 
 |  |  |       if (this.currentInputId == "questionText") { | 
 |  |  |         this.indexform.questionText = inputValueArr; | 
 |  |  |       if (this.currentInputId == "scriptContent") { | 
 |  |  |         this.indexform.scriptContent = inputValueArr; | 
 |  |  |       } else if (this.currentInputId == "noMatchText") { | 
 |  |  |         this.indexform.noMatchText = inputValueArr; | 
 |  |  |       } else if (this.currentInputId == "slienceText") { | 
 |  |  | 
 |  |  | .sidecolumn { | 
 |  |  |   margin: 20px; | 
 |  |  |   margin-bottom: 0; | 
 |  |  |   padding: 20px; | 
 |  |  |   padding: 15px; | 
 |  |  |   background: #edf1f7; | 
 |  |  |   border: 1px solid #dcdfe6; | 
 |  |  |   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  | 
 |  |  | } | 
 |  |  | .leftvlue { | 
 |  |  |   margin: 20px; | 
 |  |  |   margin-top: 10px; | 
 |  |  |   padding: 30px; | 
 |  |  |   background: #ffff; | 
 |  |  |   border: 1px solid #dcdfe6; | 
 |  |  | 
 |  |  |   padding-top: 0; | 
 |  |  |   padding-bottom: 0; | 
 |  |  | } | 
 |  |  | .tsgname { | 
 |  |  | .tsgnames { | 
 |  |  |   width: 90px; | 
 |  |  |   margin-right: 10px; | 
 |  |  |   text-align: center; | 
 |  |  | 
 |  |  |   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; | 
 |  |  | 
 |  |  | .tsgnamebj:hover { | 
 |  |  |   background: #27c449; | 
 |  |  | } | 
 |  |  | .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 .addtopic-input { | 
 |  |  |   input { |