| | |
| | | :label="group.name" |
| | | > |
| | | <el-option |
| | | v-for="item in group.svyLibTopicCategoryList" |
| | | v-for="item in group.svyLibScriptCategoryList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | |
| | | <el-col :span="10"> |
| | | <el-form-item label="评价类型"> |
| | | <el-select |
| | | v-model="topicobj.evaluateid" |
| | | v-model="topicobj.scoretype" |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | |
| | | </el-row> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="6" |
| | | <el-col :span="8" |
| | | ><el-form-item label="题目标题"> |
| | | <el-input |
| | | v-model="topicobj.topic" |
| | | v-model="topicobj.script" |
| | | 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.isavailable" |
| | |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="6" |
| | | <el-col :span="8" |
| | | ><el-form-item label="是否必填"> |
| | | <el-select |
| | | v-model="topicobj.ismandatory" |
| | |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="6" |
| | | <el-col :span="8" |
| | | ><el-form-item label="题目类型"> |
| | | <el-select |
| | | v-model="topicobj.valueType" |
| | | v-model="topicobj.scripttype" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | |
| | | <el-col :span="8" |
| | | ><el-form-item label="适用方式"> |
| | | <el-select |
| | | v-model="topicobj.suitway" |
| | | v-model="suitwaylist" |
| | | size="medium" |
| | | filterable |
| | | multiple |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | | id="topicContent" |
| | | v-model="topicobj.topicContent" |
| | | @focus="handleInput('topicContent')" |
| | | id="scriptContent" |
| | | v-model="topicobj.scriptContent" |
| | | @focus="handleInput('scriptContent')" |
| | | placeholder="请输入标题" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | </div> |
| | | <div |
| | | class="topicxq" |
| | | v-for="item in topicobj.svyLibTopicoptions" |
| | | v-for="item in topicobj.svyLibScriptOptions" |
| | | v-if="item.isoperation != 3" |
| | | > |
| | | <el-row :gutter="10"> |
| | |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="11" |
| | | ><el-form-item label="分值"> |
| | | <el-col :span="11"> |
| | | <el-form-item v-if="topicobj.scoretype == 1" label="分值"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入" |
| | | placeholder="请输入选项分值" |
| | | v-model="item.score" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </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" |
| | |
| | | title="添加选项" |
| | | :visible.sync="drawer" |
| | | custom-class="demo-drawer" |
| | | width="66%" |
| | | size="50%" |
| | | > |
| | | <div class="preview-left"> |
| | | <el-form |
| | |
| | | data() { |
| | | return { |
| | | topicobj: { |
| | | svyLibTopicoptions: [], |
| | | svyLibScriptOptions: [], |
| | | }, |
| | | inputVisible: false, |
| | | inputValue: "", |
| | |
| | | drawer: false, |
| | | loading: false, |
| | | id: [], |
| | | suitwaylist: [], |
| | | targetList: [], |
| | | dynamicTags: [], |
| | | optionsclass: [], |
| | |
| | | illnesslist: [], |
| | | classifylist: [], |
| | | appraiselist: [ |
| | | { label: "分数", value: 1 }, |
| | | { label: "ABC等级", value: 2 }, |
| | | { label: "优良等级", value: 3 }, |
| | | { label: "分数", value: "1" }, |
| | | { label: "ABC等级", value: "2" }, |
| | | { label: "优良等级", value: "3" }, |
| | | ], |
| | | optionstag: [], |
| | | valuetype: [], |
| | |
| | | created() { |
| | | this.gettabList(); |
| | | this.getissueinfo(); |
| | | this.test(); |
| | | this.gettargetInfo(); |
| | | this.mode = store.getters.mode; |
| | | this.languagelist = store.getters.languagelist; |
| | |
| | | // 分类 |
| | | getissueclassify({}).then((res) => { |
| | | this.classifylist = res.rows; |
| | | console.log(this.classifylist, "分类"); |
| | | }); |
| | | if (!this.id) { |
| | | return; |
| | | } |
| | | getissuelist({ topicid: this.id }).then((res) => { |
| | | 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; |
| | |
| | | }, |
| | | // 新增或修改详情 |
| | | compileissue() { |
| | | this.topicobj.svyLibTopicoptions = this.topicobj.svyLibTopicoptions.map( |
| | | console.log(11223); |
| | | this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map( |
| | | (item) => { |
| | | if (item.isoperation != 1 && item.isoperation != 3) { |
| | | item.isoperation = 2; |
| | |
| | | ); |
| | | 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 = 2; |
| | | compileissue(this.topicobj).then((res) => { |
| | |
| | | }, |
| | | // 删除选项 |
| | | deletexuanx(row) { |
| | | const index = this.getIndexInArray(this.topicobj.svyLibTopicoptions, row); |
| | | if (this.topicobj.svyLibTopicoptions[index].topicid) { |
| | | this.topicobj.svyLibTopicoptions[index].isoperation = 3; |
| | | const index = this.getIndexInArray( |
| | | this.topicobj.svyLibScriptOptions, |
| | | row |
| | | ); |
| | | if (this.topicobj.svyLibScriptOptions[index].id) { |
| | | this.topicobj.svyLibScriptOptions[index].isoperation = 3; |
| | | } else { |
| | | this.topicobj.svyLibTopicoptions.splice(index, 1); |
| | | this.topicobj.svyLibScriptOptions.splice(index, 1); |
| | | } |
| | | }, |
| | | // 新增选项 |
| | | addoption() { |
| | | this.topicobj.svyLibTopicoptions.push({ |
| | | console.log(this.topicobj, "obj"); |
| | | this.topicobj.svyLibScriptOptions.push({ |
| | | score: "", |
| | | isoperation: 1, |
| | | }); |
| | |
| | | console.log(this.topicobj); |
| | | this.topicobj.topic = row.targetname; |
| | | this.topicobj.valueType = row.valueType; |
| | | this.topicobj.topicContent = row.targetdesc; |
| | | this.topicobj.scriptContent = row.targetdesc; |
| | | this.topicobj.isavailable = "0"; |
| | | this.topicobj.language = "普通话"; |
| | | this.topicobj.svyLibTopicoptions = []; |
| | | this.topicobj.svyLibScriptOptions = []; |
| | | const labellist = row.targetoptionList; |
| | | labellist.forEach((item) => { |
| | | this.topicobj.svyLibTopicoptions.push({ |
| | | this.topicobj.svyLibScriptOptions.push({ |
| | | optioncontent: item.targetvalue, |
| | | isoperation: 1, |
| | | }); |
| | |
| | | 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("编辑成功"); |
| | | }, |
| | | // // 保存 |
| | | // 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 == "topicContent") { |
| | | inputValueArr = this.topicobj.topicContent.split(""); |
| | | if (this.currentInputId == "scriptContent") { |
| | | inputValueArr = this.topicobj.scriptContent.split(""); |
| | | console.log(123); |
| | | } else if (this.currentInputId == "nomatchtext") { |
| | | inputValueArr = this.topicobj.nomatchtext.split(""); |
| | |
| | | // 把数组重新转换为字符串并赋值 |
| | | inputValueArr = inputValueArr.join(""); |
| | | console.log(inputValueArr); |
| | | if (this.currentInputId == "topicContent") { |
| | | this.topicobj.topicContent = inputValueArr; |
| | | if (this.currentInputId == "scriptContent") { |
| | | this.topicobj.scriptContent = inputValueArr; |
| | | } else if (this.currentInputId == "nomatchtext") { |
| | | this.topicobj.nomatchtext = inputValueArr; |
| | | } else if (this.currentInputId == "sliencetext") { |
| | |
| | | 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"], |
| | | ["1", "2"], |
| | | ["3", "4", "5"], |
| | | ["3", "2", "5"], |
| | | ]; |
| | | |
| | | 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) > 13); |
| | | |
| | | console.log(arraysGreaterThan10,'筛选错误路线大于13分'); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |