| | |
| | | <div class="headline"> |
| | | 题目设置详情 |
| | | <span style="margin-left: 30px" |
| | | ><el-button type="primary" @click="Submittopicobj" |
| | | >保存</el-button |
| | | ><el-button type="primary" @click="Saveproblem" |
| | | >保 存</el-button |
| | | > </span |
| | | ><span style="margin-left: 30px" |
| | | ><el-button type="success" round @click="drawer = true" |
| | | >+选择指标</el-button |
| | | ></span |
| | | > |
| | | </div> |
| | | <div style="margin-left: 8%"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="6" |
| | | <el-col :span="8"> |
| | | <el-form-item label="问题分类"> |
| | | <el-select |
| | | v-model="topicobj.categoryid" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option-group |
| | | v-for="group in classifylist" |
| | | :key="group.id" |
| | | :label="group.name" |
| | | > |
| | | <el-option |
| | | v-for="item in group.svyLibScriptCategoryList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="评价类型"> |
| | | <el-select |
| | | v-model="topicobj.scoretype" |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | v-for="group in appraiselist" |
| | | :key="group.value" |
| | | :label="group.label" |
| | | :value="group.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8" v-if="topicobj.scoretype == 1"> |
| | | <el-form-item label="题目得分"> |
| | | <el-input |
| | | v-model="topicobj.score" |
| | | placeholder="请输入分数" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8" |
| | | ><el-form-item label="题目标题"> |
| | | <el-input |
| | | v-model="topicobj.topic" |
| | | placeholder="请输入标题" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="6" |
| | | <el-col :span="8" |
| | | ><el-form-item label="是否可用"> |
| | | <el-select |
| | | v-model="topicobj.ishide" |
| | | v-model="topicobj.isavailable" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | |
| | | <el-col :span="8" |
| | | ><el-form-item label="语言(缺)"> |
| | | <el-select |
| | | v-model="topicobj.languageh" |
| | | v-model="topicobj.language" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="6" |
| | | ><el-form-item label="是否必答"> |
| | | <el-radio-group v-model="topicobj.ismandatory"> |
| | | <el-radio label="1">是</el-radio> |
| | | <el-radio label="2">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item></el-col |
| | | > |
| | | <el-col :span="6" |
| | | ><el-form-item label="题目类型"> |
| | | <el-col :span="8" |
| | | ><el-form-item label="是否必填"> |
| | | <el-select |
| | | v-model="topicobj.topictype" |
| | | v-model="topicobj.ismandatory" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="topicobjaa" |
| | | v-for="item in xjxsoptions" |
| | | v-for="item in required" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="8" |
| | | ><el-form-item label="适用方式(缺)"> |
| | | ><el-form-item label="题目类型"> |
| | | <el-select |
| | | v-model="topicobj.languageh" |
| | | v-model="topicobj.scripttype" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="topicobjaa" |
| | | v-for="item in valuetype" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="8" |
| | | ><el-form-item label="适用方式"> |
| | | <el-select |
| | | v-model="suitwaylist" |
| | | size="medium" |
| | | filterable |
| | | multiple |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | |
| | | </el-option> </el-select></el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="题目内容(缺)"> |
| | | <el-form-item label="题目内容"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | | v-model="topicobj.topic" |
| | | placeholder="请输入标题" |
| | | id="script" |
| | | v-model="topicobj.script" |
| | | @focus="handleInput('script')" |
| | | placeholder="请输入题目内容" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="题目说明"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | | v-model="topicobj.scriptContent" |
| | | placeholder="请输入说明" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | |
| | | <el-form-item label="标签" prop="desc"> |
| | | <div class="xinz-inf"> |
| | | <el-tag |
| | | :key="tag.tagname" |
| | | :key="tag" |
| | | type="success" |
| | | v-for="tag in dynamicTags" |
| | | closable |
| | | :disable-transitions="false" |
| | | @close="handleClosetag(tag)" |
| | | > |
| | | {{ tag.tagname }} |
| | | {{ tag }} |
| | | </el-tag> |
| | | <el-select |
| | | v-model="inputValue" |
| | |
| | | </div> |
| | | </el-form-item> |
| | | </el-row> |
| | | </div> |
| | | |
| | | <div class="headline"> |
| | | 选项设置<span style="margin-left: 30px" |
| | | ><el-button type="primary" round @click="addoption" |
| | | >+新增</el-button |
| | | ></span |
| | | ><span style="margin-left: 30px" |
| | | ><el-button type="success" round @click="drawer = true" |
| | | >+选择指标</el-button |
| | | ></span |
| | | > |
| | | </div> |
| | | <div class="topicxq" v-for="item in optionlist"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="11" |
| | | ><el-form-item label="题号"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入" |
| | | v-model="item.optionid" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="11" |
| | | ><el-form-item label="分值"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入" |
| | | v-model="item.score" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="11" |
| | | ><el-form-item label="选项"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入选项" |
| | | v-model="item.optioncontent" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="11" |
| | | ><el-form-item label="下题跳转"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入题号" |
| | | v-model="item.jump" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="2"> |
| | | <el-button |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click="deletexuanx(item)" |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-form-item label="选中提示"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="item.prompt" |
| | | <!-- <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-col :span="24"> |
| | | <div |
| | | style="display: flex; margin-left: 66px; margin-bottom: 10px" |
| | | > |
| | | </el-input |
| | | ></el-form-item> |
| | | </el-row> |
| | | <div |
| | | v-for="item in variablelist" |
| | | class="tsgname" |
| | | @click="tsgnameto(item)" |
| | | > |
| | | {{ item.variatename }} |
| | | </div> |
| | | </div> |
| | | </el-col></el-row |
| | | > --> |
| | | </div> |
| | | <div v-if="topicobj.valueType == 1"> |
| | | <div class="headline"> |
| | | 选项设置<span style="margin-left: 30px" |
| | | ><el-button type="primary" round @click="addoption" |
| | | >+新增</el-button |
| | | ></span |
| | | > |
| | | </div> |
| | | <div |
| | | class="topicxq" |
| | | v-for="item in topicobj.svyLibScriptOptions" |
| | | v-if="item.isoperation != 3" |
| | | > |
| | | <el-row :gutter="10"> |
| | | <el-col :span="11" |
| | | ><el-form-item label="选项"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入选项" |
| | | v-model="item.optioncontent" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="11"> |
| | | <el-form-item v-if="topicobj.scoretype == 1" label="分值"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入选项分值" |
| | | v-model="item.score" |
| | | show-word-limit |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-else-if="topicobj.scoretype == 2" |
| | | label="ABC等级" |
| | | > |
| | | <el-radio-group v-model="item.score"> |
| | | <el-radio label="A">A</el-radio> |
| | | <el-radio label="B">B</el-radio> |
| | | <el-radio label="C">C</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-else-if="topicobj.scoretype == 3" |
| | | label="优良等级" |
| | | > |
| | | <el-radio-group v-model="item.score"> |
| | | <el-radio label="优">优</el-radio> |
| | | <el-radio label="良">良</el-radio> |
| | | <el-radio label="差">差</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-button |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click="deletexuanx(item)" |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-form-item label="选中提示"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="item.prompt" |
| | | > |
| | | </el-input |
| | | ></el-form-item> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | | </el-card> |
| | | </div> |
| | | <el-drawer |
| | | title="添加题目" |
| | | title="添加选项" |
| | | :visible.sync="drawer" |
| | | custom-class="demo-drawer" |
| | | width="50%" |
| | | size="50%" |
| | | > |
| | | <div class="preview-left"> |
| | | <el-form |
| | |
| | | > |
| | | <el-form-item label="标题" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | v-model="queryParams.targetname" |
| | | placeholder="请输入" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | @keyup.enter.native="gettargetInfo" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="主题" prop="sickness"> |
| | | <el-select |
| | | v-model="queryParams.classify" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in optionsclass" |
| | | :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="handleQuery" |
| | | @click="gettargetInfo" |
| | | >搜索</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" |
| | |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table v-loading="loading" :data="userList"> |
| | | <el-table v-loading="loading" :data="targetList"> |
| | | <el-table-column |
| | | label="标题" |
| | | align="center" |
| | | key="userid" |
| | | prop="userid" |
| | | key="targetname" |
| | | prop="targetname" |
| | | width="100" |
| | | /> |
| | | <el-table-column |
| | | label="问题内容" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | key="targetdesc" |
| | | prop="targetdesc" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | |
| | | type="text" |
| | | @click="selectlabel(scope.row)" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-circle-plus-outline"></i>添加</span |
| | | ><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> |
| | |
| | | import { listtag } from "@/api/system/label"; |
| | | import store from "@/store"; |
| | | import { |
| | | getissueclassify, |
| | | delissueclassify, |
| | | addissueclassify, |
| | | gettargetInfo, |
| | | getissuelist, |
| | | issueinfo, |
| | | compileissue, |
| | | delissueinfo, |
| | | Followupinfo, |
| | | getissueclassify, |
| | | deltargetillness, |
| | | addtargetillness, |
| | | getillnesslist, |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | topicobj: {}, |
| | | topicobj: { |
| | | svyLibScriptOptions: [], |
| | | }, |
| | | inputVisible: false, |
| | | inputValue: "", |
| | | currentInputId: "", |
| | | total: 0, |
| | | drawer: false, |
| | | loading: false, |
| | | id: [], |
| | | userList: [ |
| | | { |
| | | userid: "1", |
| | | userName: "指标", |
| | | }, |
| | | { |
| | | userid: "2", |
| | | userName: "二号问卷", |
| | | }, |
| | | ], |
| | | suitwaylist: [], |
| | | targetList: [], |
| | | dynamicTags: [], |
| | | optionsclass: [], |
| | | variablelist: [ |
| | | { variatename: "姓名", variate: "${name}", default: 1 }, |
| | | { variatename: "电话", variate: "${phone}", default: 1 }, |
| | | { variatename: "病情", variate: "${illness}", default: 1 }, |
| | | ], |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | isavailable: "", |
| | | }, |
| | | optionlist: [ |
| | | { value: "topic", table: "topic" }, |
| | |
| | | { value: "topic", table: "topic" }, |
| | | ], |
| | | inputValueillness: "", |
| | | required: [], |
| | | themelist: [], |
| | | languagelist: [], |
| | | courtyardlist: [], |
| | |
| | | optionsillness: [], |
| | | illnesslistapi: [], |
| | | illnesslist: [], |
| | | |
| | | classifylist: [], |
| | | appraiselist: [ |
| | | { label: "分数", value: "1" }, |
| | | { label: "ABC等级", value: "2" }, |
| | | { label: "优良等级", value: "3" }, |
| | | ], |
| | | optionstag: [], |
| | | xjxsoptions: [], |
| | | valuetype: [], |
| | | usable: [], |
| | | mode: [], //方式 |
| | | }; |
| | |
| | | created() { |
| | | this.gettabList(); |
| | | this.getissueinfo(); |
| | | this.gettargetInfo(); |
| | | this.mode = store.getters.mode; |
| | | this.languagelist = store.getters.languagelist; |
| | | this.usable = store.getters.usable; |
| | | this.xjxsoptions = store.getters.xjxsoptions; |
| | | this.valuetype = store.getters.askvaluetype; |
| | | this.required = store.getters.required; |
| | | }, |
| | | |
| | | methods: { |
| | | Submittopicobj() {}, |
| | | // 公共方法--------------- |
| | | getIndexInArray(arr, obj) { |
| | | return arr.indexOf(obj); |
| | | }, |
| | | |
| | | // 递归扁平化 |
| | | flattenArray(arr) { |
| | | let result = []; |
| | | arr.forEach((item) => { |
| | | result.push(item); |
| | | if (item.svyLibTopicCategoryList) { |
| | | console.log(2); |
| | | result = result.concat( |
| | | this.flattenArray(item.svyLibTopicCategoryList) |
| | | ); |
| | | delete item.svyLibTopicCategoryList; |
| | | } |
| | | }); |
| | | return result; |
| | | }, |
| | | // ----------------------------- |
| | | // 获取数据 |
| | | getissueinfo() { |
| | | this.id = this.$route.query.id; |
| | | issueinfo(this.id).then((res) => { |
| | | this.topicobj = res.data; |
| | | // 分类 |
| | | getissueclassify({}).then((res) => { |
| | | this.classifylist = res.rows; |
| | | console.log(this.classifylist, "分类"); |
| | | }); |
| | | if (!this.id) { |
| | | return; |
| | | } |
| | | getissuelist({ id: this.id }).then((res) => { |
| | | this.topicobj = res.rows[0]; |
| | | this.dynamicTags = this.topicobj.tag.split(","); |
| | | this.suitwaylist = this.topicobj.suitway.split(","); |
| | | this.variablelist = JSON.parse(this.topicobj.otherdata) |
| | | ? JSON.parse(this.topicobj.otherdata) |
| | | : this.variablelist; |
| | | }); |
| | | getillnesslist({ |
| | | pageNum: 1, |
| | |
| | | this.illnesslist = res.rows; |
| | | }); |
| | | }, |
| | | gettargetInfo() { |
| | | gettargetInfo(this.queryParams).then((res) => { |
| | | this.targetList = res.rows; |
| | | this.total = res.total; |
| | | }); |
| | | }, |
| | | // 新增或修改详情 |
| | | compileissue() { |
| | | this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map( |
| | | (item) => { |
| | | if (item.isoperation != 1 && item.isoperation != 3) { |
| | | item.isoperation = 2; |
| | | } |
| | | return item; |
| | | } |
| | | ); |
| | | this.topicobj.otherdata = JSON.stringify(this.variablelist); |
| | | this.topicobj.tag = this.dynamicTags.join(","); |
| | | this.topicobj.suitway = this.suitwaylist.join(","); |
| | | if (this.id) { |
| | | this.topicobj.isoperation = 1; |
| | | this.topicobj.isoperation = 2; |
| | | compileissue(this.topicobj).then((res) => { |
| | | if (res.code == 1) { |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | message: "修改成功", |
| | | type: "success", |
| | |
| | | } |
| | | }); |
| | | } else { |
| | | this.topicobj.isoperation = 2; |
| | | this.topicobj.isoperation = 1; |
| | | compileissue(this.topicobj).then((res) => { |
| | | if (res.code == 1) { |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | message: "新增成功", |
| | | type: "success", |
| | |
| | | } |
| | | }); |
| | | } |
| | | this.illnesslist.forEach((item, index) => { |
| | | if (!item.id) { |
| | | addtargetillness(item).then((res) => {}); |
| | | } |
| | | }); |
| | | if (this.illnesslistapi.length) { |
| | | deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); |
| | | } |
| | | }, |
| | | // 判断分值 |
| | | Scorejudgment() { |
| | | let scorearr = this.topicobj.svyLibScriptOptions; |
| | | let isValid = scorearr.every((score) => { |
| | | if (score.score) { |
| | | console.log(Number(score.score), this.topicobj.score, "分值"); |
| | | if ( |
| | | Number(score.score) <= 0 || |
| | | Number(score.score) > Number(this.topicobj.score) |
| | | ) { |
| | | console.log(22); |
| | | this.$message({ |
| | | message: "选项分值必须大于0小于等于" + this.topicobj.score + "分", |
| | | type: "warning", |
| | | }); |
| | | return false; |
| | | } |
| | | return true; |
| | | } else { |
| | | this.$message({ |
| | | message: "选项分值未设置", |
| | | type: "warning", |
| | | }); |
| | | return false; |
| | | } |
| | | }); |
| | | |
| | | if (isValid) { |
| | | this.compileissue(); |
| | | // console.log("到保存了"); |
| | | } |
| | | }, |
| | | Saveproblem() { |
| | | if (this.topicobj.scoretype == 1) { |
| | | console.log(321); |
| | | this.Scorejudgment(); |
| | | } else { |
| | | this.compileissue(); |
| | | } |
| | | }, |
| | | // 删除标签 |
| | | handleClose(tag) { |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | }, |
| | | // 删除选项 |
| | | deletexuanx(row) { |
| | | const index = this.getIndexInArray(this.optionlist, row); |
| | | this.optionlist.splice(index, 1); |
| | | const index = this.getIndexInArray( |
| | | this.topicobj.svyLibScriptOptions, |
| | | row |
| | | ); |
| | | if (this.topicobj.svyLibScriptOptions[index].id) { |
| | | this.topicobj.svyLibScriptOptions[index].isoperation = 3; |
| | | } else { |
| | | this.topicobj.svyLibScriptOptions.splice(index, 1); |
| | | } |
| | | }, |
| | | // 新增选项 |
| | | addoption() { |
| | | this.optionlist.push({ value: "topic", table: "topic" }); |
| | | console.log(this.topicobj, "obj"); |
| | | this.topicobj.svyLibScriptOptions.push({ |
| | | score: "", |
| | | isoperation: 1, |
| | | }); |
| | | }, |
| | | // 选择指标 |
| | | selectlabel(row) {}, |
| | | selectlabel(row) { |
| | | this.$modal |
| | | .confirm( |
| | | '是否选择标题为"' + row.targetname + '"的指标并替换填充问题信息?' |
| | | ) |
| | | .then(() => { |
| | | console.log(row); |
| | | console.log(this.topicobj); |
| | | this.topicobj.topic = row.targetname; |
| | | this.topicobj.valueType = row.valueType; |
| | | this.topicobj.scriptContent = row.targetdesc; |
| | | this.topicobj.isavailable = "0"; |
| | | this.topicobj.language = "普通话"; |
| | | this.topicobj.svyLibScriptOptions = []; |
| | | const labellist = row.targetoptionList; |
| | | labellist.forEach((item) => { |
| | | this.topicobj.svyLibScriptOptions.push({ |
| | | optioncontent: item.targetvalue, |
| | | isoperation: 1, |
| | | }); |
| | | }); |
| | | this.drawer = false; |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | // 标签----------------- |
| | | gettabList() { |
| | |
| | | handleClosetag(tag) { |
| | | console.log(tag); |
| | | console.log(this.dynamicTags.indexOf(tag)); |
| | | const lindex = this.dynamicTags.indexOf(tag); |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3; |
| | | }, |
| | | handleInputConfirm() { |
| | | let tagvalue = {}; |
| | |
| | | isoperation: 1, |
| | | }; |
| | | } |
| | | // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue); |
| | | this.dynamicTags.push(tagvalue); |
| | | // this.dynamicTags.push(tagvalue); |
| | | this.dynamicTags.push(tagvalue.tagname); |
| | | }); |
| | | } |
| | | this.inputVisible = false; |
| | |
| | | this.inputVisibleillness = false; |
| | | this.inputValueillness = ""; |
| | | }, |
| | | // 保存 |
| | | confirmillness() { |
| | | this.illnesslist.forEach((item, index) => { |
| | | if (!item.id) { |
| | | addtargetillness(item).then((res) => {}); |
| | | } |
| | | }); |
| | | if (this.illnesslistapi.length) { |
| | | deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); |
| | | } |
| | | this.illnessVisible = false; |
| | | this.$modal.msgSuccess("编辑成功"); |
| | | }, |
| | | // 查询题库 |
| | | handleQuery() {}, |
| | | // // 保存 |
| | | // confirmillness() { |
| | | // this.illnesslist.forEach((item, index) => { |
| | | // if (!item.id) { |
| | | // addtargetillness(item).then((res) => {}); |
| | | // } |
| | | // }); |
| | | // if (this.illnesslistapi.length) { |
| | | // deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); |
| | | // } |
| | | // this.illnessVisible = false; |
| | | // this.$modal.msgSuccess("编辑成功"); |
| | | // }, |
| | | resetQuery() {}, |
| | | // 便捷标签 |
| | | tsgnameto(row) { |
| | | let inputValueArr = ""; |
| | | let el = document.querySelector("#" + this.currentInputId); |
| | | //el.selectionStart; 这就是当前光标所在的位置(字符串中字符的index) |
| | | if (this.currentInputId == "script") { |
| | | inputValueArr = this.topicobj.script.split(""); |
| | | console.log(123); |
| | | } else if (this.currentInputId == "nomatchtext") { |
| | | inputValueArr = this.topicobj.nomatchtext.split(""); |
| | | } else if (this.currentInputId == "sliencetext") { |
| | | inputValueArr = this.topicobj.sliencetext.split(""); |
| | | } else if (this.currentInputId == "noclearlytext") { |
| | | inputValueArr = this.topicobj.noclearlytext.split(""); |
| | | } else if (this.currentInputId == "submoduletext") { |
| | | inputValueArr = this.topicobj.submoduletext.split(""); |
| | | } else { |
| | | return; |
| | | } |
| | | //将输入框内容切成数组,方便后续操作 |
| | | // inputValueArr = this.inputValue.split(""); |
| | | // 拿到选中文字的长度(后续可以用来替换选中的文字) |
| | | let selectLength = el.selectionEnd - el.selectionStart; |
| | | // 将要插入/替换的文字插入/替换(value.name是要插入/替换的字符串) |
| | | inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`); |
| | | // 把数组重新转换为字符串并赋值 |
| | | inputValueArr = inputValueArr.join(""); |
| | | console.log(inputValueArr); |
| | | if (this.currentInputId == "script") { |
| | | this.topicobj.script = inputValueArr; |
| | | } else if (this.currentInputId == "nomatchtext") { |
| | | this.topicobj.nomatchtext = inputValueArr; |
| | | } else if (this.currentInputId == "sliencetext") { |
| | | this.topicobj.sliencetext = inputValueArr; |
| | | } else if (this.currentInputId == "noclearlytext") { |
| | | this.topicobj.noclearlytext = inputValueArr; |
| | | } else if (this.currentInputId == "submoduletext") { |
| | | this.topicobj.submoduletext = inputValueArr; |
| | | } else { |
| | | return; |
| | | } |
| | | }, |
| | | |
| | | // 新增变量 |
| | | addvariable() { |
| | | this.variablelist.push({ |
| | | variatename: "", |
| | | variate: "", |
| | | }); |
| | | }, |
| | | // 删除变量 |
| | | delvariable(item) { |
| | | const index = this.variablelist.indexOf(item); |
| | | if (index !== -1) { |
| | | this.variablelist.splice(index, 1); // 从索引位置删除一个元素 |
| | | } else { |
| | | console.log("未找到该对象"); |
| | | } |
| | | }, |
| | | // 输入获取id |
| | | handleInput(id) { |
| | | this.currentInputId = id; |
| | | console.log("输入框的值已更新:", this.currentInputId); |
| | | // 在这里执行更新数据的逻辑 |
| | | }, |
| | | // 混合路线 |
| | | generateCombinations(arrays, currentIndex = 0, currentCombination = []) { |
| | | if (currentIndex === arrays.length) { |
| | | return [currentCombination]; |
| | | } |
| | | |
| | | const currentArray = arrays[currentIndex]; |
| | | const newCombinations = []; |
| | | |
| | | for (const item of currentArray) { |
| | | const newCombination = [...currentCombination, item]; |
| | | const combinations = this.generateCombinations( |
| | | arrays, |
| | | currentIndex + 1, |
| | | newCombination |
| | | ); |
| | | newCombinations.push(...combinations); |
| | | } |
| | | return newCombinations; |
| | | }, |
| | | // 执行 |
| | | test() { |
| | | const arrays = [ |
| | | ["2", "3", "4", "5"], |
| | | ["1", "2", "5", "6"], |
| | | ["3", "4", "5", "3"], |
| | | ["3", "2", "5", "7"], |
| | | ]; |
| | | |
| | | const newMixArray = this.generateCombinations(arrays); |
| | | console.log(newMixArray, "全部路线"); |
| | | this.screen(newMixArray); |
| | | }, |
| | | // 数组求和 |
| | | sumArray(arr) { |
| | | return arr.reduce((acc, curr) => acc + parseInt(curr), 0); |
| | | }, |
| | | // 筛选错误路线 |
| | | screen(data) { |
| | | const arraysGreaterThan10 = data.filter((arr) => this.sumArray(arr) > 21); |
| | | |
| | | console.log(arraysGreaterThan10, "筛选错误路线大于13分"); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | } |
| | | } |
| | | } |
| | | .tsgname { |
| | | width: 90px; |
| | | margin-right: 10px; |
| | | text-align: center; |
| | | cursor: pointer; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | background: #7799fa; |
| | | color: #ffff; |
| | | font-size: 18px; |
| | | border-radius: 5px; |
| | | } |
| | | .tsgname:hover { |
| | | background: #3366f5; |
| | | } |
| | | .preview-left { |
| | | margin: 20px; |
| | | // margin: 20px; |