| | |
| | | <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-form-item label="通知变量" prop="name"> |
| | | <div style="margin-bottom: 5px" v-for="item in variablelist"> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-input |
| | | v-model="item.variatename" |
| | | placeholder="请输入变量名" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="8" :offset="1"> |
| | | <el-input |
| | | v-model="item.variate" |
| | | placeholder="请输入变量内容" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="8" :offset="1"> |
| | | <el-button |
| | | type="success" |
| | | icon="el-icon-plus" |
| | | circle |
| | | @click="addvariable(item)" |
| | | ></el-button> |
| | | <el-button |
| | | v-if="!item.default" |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click="delvariable(item)" |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | <el-row> |
| | | <el-drawer |
| | | title="变量编辑" |
| | | :visible.sync="variabledeawer" |
| | | direction="ttb" |
| | | size="35%" |
| | | > |
| | | <el-form-item label="通知变量" prop="name"> |
| | | <div style="margin-bottom: 5px" v-for="item in variablelist"> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-input |
| | | v-model="item.variatename" |
| | | placeholder="请输入变量名" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="8" :offset="1"> |
| | | <el-input |
| | | v-model="item.variate" |
| | | placeholder="请输入变量内容" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="8" :offset="1"> |
| | | <el-button |
| | | type="success" |
| | | icon="el-icon-plus" |
| | | circle |
| | | @click="addvariable(item)" |
| | | ></el-button> |
| | | <el-button |
| | | v-if="!item.default" |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click="delvariable(item)" |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-form-item> |
| | | </el-drawer> |
| | | <!-- <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"> |
| | | <div |
| | | style="display: flex; margin-left: 100px; margin-bottom: 10px" |
| | | > |
| | | <div |
| | | v-for="item in variablelist" |
| | | class="tsgname" |
| | | @click="tsgnameto(item)" |
| | | > |
| | | {{ item.variatename }} |
| | | <el-form-item label="问题变量" prop="scriptContent"> |
| | | <div style="display: flex; margin-bottom: 10px"> |
| | | <div |
| | | v-for="item in variablelist" |
| | | :class="item.default ? 'tsgname' : 'tsgnames'" |
| | | @click="tsgnameto(item)" |
| | | > |
| | | {{ item.variatename }} |
| | | </div> |
| | | <div class="tsgnamebj" @click="variabledeawer = true"> |
| | | 变量编辑 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col></el-row |
| | | > |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="问题文本" prop="questionText"> |
| | | <el-form-item label="语音文本" prop="scriptContent"> |
| | | <el-input |
| | | :rows="2" |
| | | :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"> |
| | |
| | | id="noClearlyText" |
| | | :rows="2" |
| | | placeholder="请输入内容" |
| | | @focus="handleInput('noClearlyText')" |
| | | @focus="handleInput('noClearlyText')" |
| | | v-model.sync="indexform.noClearlyText" |
| | | show-word-limit |
| | | /> |
| | |
| | | ></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" |
| | |
| | | label-width="100px" |
| | | > |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="指标名称" prop="deptId"> |
| | | <el-input |
| | | v-model="indexform.targetname" |
| | | placeholder="请输入指标名称" |
| | | maxlength="40" |
| | | maxlength="20" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="指标描述" prop="deptId"> |
| | | <el-input |
| | | v-model="indexform.targetdesc" |
| | | placeholder="请输入指标描述" |
| | | maxlength="60" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="值类型"> |
| | | <el-radio-group 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" |
| | |
| | | @deloption="deloption" |
| | | @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> |
| | | |
| | | <script> |
| | | import { listtag } from "@/api/system/label"; |
| | | import { |
| | | getverbaltricklist, |
| | | verbaltrickinfo, |
| | | gettagerlist, |
| | | testtagerlist, |
| | | delverbaltrickinfo, |
| | | compileverbaltrick, |
| | | getverbaltrick, |
| | |
| | | } 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; |
| | | margin-left: 15px; |
| | | text-align: center; |
| | | cursor: pointer; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | background: #49dbb7; |
| | | color: #ffff; |
| | | font-size: 18px; |
| | | border-radius: 5px; |
| | | } |
| | | .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 { |