| | |
| | | <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> |
| | |
| | | :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="scriptTopic"> |
| | | <el-input |
| | | v-model="indexform.scriptTopic" |
| | | placeholder="请输入问题主旨" |
| | | maxlength="80" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-form-item label="标签" prop="desc"> |
| | | <div class="xinz-inf"> |
| | | <el-tag |
| | |
| | | </div> |
| | | </el-form-item> |
| | | </el-drawer> |
| | | <el-row> |
| | | <!-- <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="仅限院区" prop="region"> |
| | | <el-select |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-row> --> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="问题变量" prop="scriptContent"> |
| | |
| | | > |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="问题文本" prop="scriptContent"> |
| | | <el-form-item label="语音文本" prop="scriptContent"> |
| | | <el-input |
| | | :rows="2" |
| | | type="textarea" |
| | | id="scriptContent" |
| | | show-word-limit |
| | | placeholder="请输入内容" |
| | | v-model.sync="indexform.scriptContent" |
| | | v-model.sync="indexform.ivrtext" |
| | | @focus="handleInput('scriptContent')" |
| | | /> |
| | | </el-form-item> </el-col |
| | | ></el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="问题语音" prop="verbaltrickyy"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="语音文件" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :action="uploadImgUrl" |
| | | :headers="headers" |
| | | :show-file-list="false" |
| | | :on-success=" |
| | | (response, file) => handleChange(response, file, 1) |
| | | " |
| | |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> </el-col> |
| | | <mini-audio |
| | | :audio-source=" |
| | | indexform.scriptVoice |
| | | ? indexform.scriptVoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | <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-form-item> </el-col |
| | | ></el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="无匹配语音" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :action="uploadImgUrl" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | :on-success=" |
| | | (response, file) => handleChange(response, file, 2) |
| | |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> </el-col> |
| | | <mini-audio |
| | | :audio-source=" |
| | | indexform.nomatchvoice |
| | | ? indexform.nomatchvoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | <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-form-item> </el-col |
| | | ></el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="无声语音" prop="verbaltrickyy"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="静默语音" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :action="uploadImgUrl" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | :on-success=" |
| | | (response, file) => handleChange(response, file, 3) |
| | |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> </el-col> |
| | | <mini-audio |
| | | :audio-source=" |
| | | indexform.sliencevoice |
| | | ? indexform.sliencevoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | <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-form-item> </el-col |
| | | ></el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="听不清语音" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :action="uploadImgUrl" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | :on-success=" |
| | | (response, file) => handleChange(response, file, 4) |
| | |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> </el-col> |
| | | <mini-audio |
| | | :audio-source=" |
| | | indexform.noclearlyvoice |
| | | ? indexform.noclearlyvoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | <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-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-form-item> |
| | | |
| | | <el-form-item label="题目类型"> |
| | | <el-radio-group disabled v-model="indexform.scriptType"> |
| | | <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="3">填空</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" |
| | |
| | | <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"> |
| | |
| | | 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> |
| | |
| | | ivrLibaScriptTargetoptionList: [], |
| | | ivrLibaScriptTagList: [], |
| | | suitway: "2", |
| | | noMatchText:'抱歉,我没有听懂,您能再说一遍吗?', |
| | | noClearlyText:'抱歉,我没有听清您说的话,您可以再说一次吗?', |
| | | slienceText:'抱歉,我没有听到您说的话,您可以再说一次吗?', |
| | | }, |
| | | mode: [], |
| | | questionclass: [], |
| | |
| | | |
| | | addvalue: "添加题目", |
| | | languagelist: [], //语言列表 |
| | | qyoptions: [], |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | |
| | | 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; |
| | |
| | | } |
| | | }, |
| | | |
| | | // 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.scriptType = res.rows[0].scriptType; |
| | | // this.indexform.scriptTopic = res.rows[0].targetname; |
| | | // this.indexform.targetname = res.rows[0].targetname; |
| | | // this.indexform.targetid = res.rows[0].id; |
| | | // this.indexform.targetdesc = 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("已取消"); |
| | | // }); |
| | | // }); |
| | | // }, |
| | | 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.$modal.msgError("请填写测试内容"); |
| | | return; |
| | | } |
| | | }, |
| | | // 选择指标 |
| | | selectlabel(row) { |
| | | this.$modal |
| | |
| | | .catch(() => {}); |
| | | }, |
| | | gettargetInfo() { |
| | | this.queryParams.suitWay = 2; |
| | | gettargetInfo(this.queryParams).then((res) => { |
| | | console.log(res); |
| | | this.targetList = res.rows; |
| | |
| | | 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(response, file, additionalParam) { |
| | | console.log(response); |
| | | if (additionalParam == 1) { |
| | | this.indexform.scriptVoice = response.url; |
| | | 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) { |
| | |
| | | .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; |