From 08881d6b6412822d5035f63a0775ca1f213c8668 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 20 十月 2025 10:17:22 +0800
Subject: [PATCH] 测试完成
---
src/views/knowledge/questionbank/particulars/index.vue | 1256 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 816 insertions(+), 440 deletions(-)
diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue
index 579464e..b009153 100644
--- a/src/views/knowledge/questionbank/particulars/index.vue
+++ b/src/views/knowledge/questionbank/particulars/index.vue
@@ -1,406 +1,551 @@
<template>
<div>
<div class="presentation-right">
- <el-card class="box-card">
- <el-form :inline="true" :model="topicobj" class="demo-form-inline">
- <div class="headline">
- 棰樼洰璁剧疆璇︽儏
- <span style="margin-left: 30px"
- ><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="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"
+ <div class="sidecolumn">
+ <div>
+ <el-steps finish-status="success" :active="Editprogress" simple>
+ <el-step>
+ <template slot="title">
+ <span style="cursor: pointer" @click="Editprogress = 1"
+ >闂鍩虹淇℃伅缂栬緫</span
+ >
+ </template>
+ </el-step>
+ <el-step>
+ <template slot="title">
+ <span style="cursor: pointer" @click="nextstep"
+ >闂鎸囨爣缂栬緫</span
+ >
+ </template>
+ </el-step>
+ </el-steps>
+ </div>
+ </div>
+ <div v-if="Editprogress == 1">
+ <el-card class="box-card">
+ <el-form :inline="true" ref="topicobj" :model="topicobj" :rules="rules" class="demo-form-inline">
+ <div class="headline">
+ 鍩虹淇℃伅閰嶇疆
+ <span style="margin-left: 30px"
+ ><el-button type="success" @click="topicVisible = true"
+ >棰勮</el-button
+ >
+ </span>
+ <span style="margin-left: 30px"
+ ><el-button type="primary" @click="Saveproblem"
+ >淇� 瀛�</el-button
+ >
+ </span>
+ </div>
+ <el-divider></el-divider>
+
+ <div style="margin-left: 8%">
+ <el-form-item label="闂鍐呭" prop="scriptContent">
+ <el-input
+ style="width: 40vw"
+ type="textarea"
+ id="scriptContent"
+ v-model="topicobj.scriptContent"
+ @focus="handleInput('scriptContent')"
+ placeholder="璇疯緭鍏ラ棶棰樺唴瀹�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="闂璇存槑" prop="targetname">
+ <el-input
+ style="width: 40vw"
+ type="textarea"
+ v-model="topicobj.scriptDesc"
+ placeholder="璇疯緭鍏ヨ鏄�"
+ ></el-input>
+ </el-form-item>
+ <el-row :gutter="10">
+ <el-col :span="8">
+ <el-form-item label="闂鍒嗙被" prop="categoryid">
+ <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="璇勪环绫诲瀷" prop="scoretype">
+ <el-select
+ v-model="topicobj.scoretype"
+ placeholder="璇烽�夋嫨鍒嗙被"
>
<el-option
- v-for="item in group.svyLibScriptCategoryList"
- :key="item.id"
- :label="item.name"
- :value="item.id"
+ v-for="group in appraiselist"
+ :key="group.value"
+ :label="group.label"
+ :value="group.value"
>
</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.scriptTopic"
- placeholder="璇疯緭鍏ユ爣棰�"
- ></el-input> </el-form-item
- ></el-col>
- <el-col :span="8"
- ><el-form-item label="鏄惁鍙敤">
- <el-select
- v-model="topicobj.isavailable"
- size="medium"
- filterable
- placeholder="璇烽�夋嫨鍒嗙被"
- >
- <el-option
- class="topicobjaa"
- v-for="item in usable"
- :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="topicobj.language"
- size="medium"
- filterable
- placeholder="璇烽�夋嫨鍒嗙被"
- >
- <el-option
- class="topicobjaa"
- v-for="item in languagelist"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select> </el-form-item
- ></el-col>
- </el-row>
- <el-row :gutter="10">
- <el-col :span="8"
- ><el-form-item label="鏄惁蹇呭~">
- <el-select
- v-model="topicobj.ismandatory"
- size="medium"
- filterable
- placeholder="璇烽�夋嫨鍒嗙被"
- >
- <el-option
- class="topicobjaa"
- v-for="item in required"
- :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="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
- class="topicobjaa"
- v-for="item in mode"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option> </el-select></el-form-item
- ></el-col>
- </el-row>
- <el-form-item label="棰樼洰鍐呭">
- <el-input
- style="width: 40vw"
- type="textarea"
- id="scriptContent"
- v-model="topicobj.scriptContent"
- @focus="handleInput('scriptContent')"
- placeholder="璇疯緭鍏ラ鐩唴瀹�"
- ></el-input>
- </el-form-item>
- <el-form-item label="棰樼洰璇存槑">
- <el-input
- style="width: 40vw"
- type="textarea"
- v-model="topicobj.scriptDesc"
- placeholder="璇疯緭鍏ヨ鏄�"
- ></el-input>
- </el-form-item>
-
- <el-form-item label="棰樺共鏂囦欢" prop="sickness">
- <div style="width: 40vw">
- <el-upload
- class="upload-demo"
- :action="uploadImgUrl"
- :headers="headers"
- :accept="'image/*,video/*'"
- :on-success="handleChangetg"
- >
- <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
- </el-upload>
- <div style="margin: 20px">
- <el-image
- style="width: 100px; height: 100px"
- :src="topicobj.picturePath"
- :preview-src-list="[...topicobj.picturePath]"
- >
- </el-image>
- </div>
- </div>
- </el-form-item>
-
- <el-row>
- <el-form-item label="鏍囩" prop="desc">
- <div class="xinz-inf">
- <el-tag
- :key="tag"
- type="success"
- v-for="tag in dynamicTags"
- closable
- :disable-transitions="false"
- @close="handleClosetag(tag)"
- >
- {{ tag }}
- </el-tag>
- <el-select
- v-model="inputValue"
- v-if="inputVisible"
- @change="handleInputConfirm"
- filterable
- remote
- reserve-keyword
- default-first-option
- :remote-method="remoteMethodtag"
- :loading="loading"
- placeholder="璇烽�夋嫨"
- >
- <el-option
- v-for="item in optionstag"
- :key="item.tagid"
- :label="item.tagname"
- :value="item.tagname"
- >
- </el-option>
- </el-select>
- <el-button
- v-else
- class="button-new-tag"
- size="small"
- @click="showInput"
- >+ 鏂板鏍囩</el-button
- >
- </div>
- </el-form-item>
- </el-row>
- <el-row>
- <el-form-item label="閫傜敤鐤剧梾" prop="region">
- <div class="xinz-inf">
- <el-tag
- :key="item.icd10name"
- type="warning"
- v-for="item in illnesslist"
- closable
- :disable-transitions="false"
- @close="handleCloseillness(item)"
- >
- {{ item.icd10name }}
- </el-tag>
- <el-select
- v-model="inputValueillness"
- v-if="inputVisibleillness"
- @change="illnessConfirm"
- :remote-method="remoteMethod"
- filterable
- remote
- allow-create
- default-first-option
- placeholder="璇烽�夋嫨/鏌ヨ"
- :loading="loading"
- >
- <el-option
- v-for="item in optionsillness"
- :key="item.icdid"
- :label="item.icdname"
- :value="item.icdid"
- >
- </el-option>
- </el-select>
- <el-button
- v-else
- class="button-new-tag"
- size="small"
- @click="inputVisibleillness = true"
- >+ 鏂板鐤剧梾</el-button
- >
- </div>
- </el-form-item>
- </el-row>
- </div>
- <div v-if="topicobj.scriptType != 3">
- <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-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8" v-if="topicobj.scoretype == 1">
+ <el-form-item label="闂寰楀垎" prop="score">
<el-input
- type="text"
- placeholder="璇疯緭鍏ラ�夐」"
- v-model="item.optioncontent"
- show-word-limit
- >
- </el-input> </el-form-item
+ 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="闂鏍囬" prop="scriptTopic">
+ <el-input
+ v-model="topicobj.scriptTopic"
+ placeholder="璇疯緭鍏ユ爣棰�"
+ ></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-col :span="8"
+ ><el-form-item label="鏄惁鍙敤" prop="isavailable">
+ <el-radio-group v-model="topicobj.isavailable">
+ <el-radio
+ @change="$forceUpdate()"
+ v-for="(item, index) in usable"
+ :label="item.value"
+ >{{ item.label }}</el-radio
+ >
+ </el-radio-group>
+ </el-form-item></el-col
+ >
+ <!-- <el-col :span="8">
+ <el-form-item label="鏄惁蹇呭~" prop="ismandatory">
+ <el-radio-group v-model="topicobj.ismandatory">
+ <el-radio
+ @change="$forceUpdate()"
+ v-for="(item, index) in required"
+ :label="item.value"
+ >{{ item.label }}</el-radio
+ >
+ </el-radio-group>
+ </el-form-item>
+ </el-col> -->
+ </el-row>
+ <el-row :gutter="10">
+
+ <el-col :span="8"
+ ><el-form-item label="闂绫诲瀷" prop="scriptType">
+ <el-select
+ v-model="topicobj.scriptType"
+ @change="changefn"
+ size="medium"
+ filterable
+ placeholder="璇烽�夋嫨鍒嗙被"
>
- </el-input>
+ <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="閫傜敤鏂瑰紡" prop="suitway">
+ <el-select
+ v-model="topicobj.suitway"
+ disabled
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ class="topicobjaa"
+ v-for="item in mode"
+ :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="璇█" prop="language">
+ <el-select
+ v-model="topicobj.language"
+ size="medium"
+ filterable
+ placeholder="璇烽�夋嫨鍒嗙被"
+ >
+ <el-option
+ class="topicobjaa"
+ v-for="item in languagelist"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
</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-form-item
+ label=""
+ prop="scriptContent"
+ v-if="topicobj.scriptType == 3"
+ >
+ <div style="display: flex; margin-bottom: 10px">
+ <div class="tsgnames" @click="tsgnametos">鎻掑叆濉┖鏍囪</div>
+ </div>
+ </el-form-item> -->
+ <!-- <el-row>
+ <el-col :span="20">
+ <el-form-item
+ label="濉┖淇℃伅"
+ v-if="
+ topicobj.scriptType == 3 &&
+ topicobj.svyLibScriptOptions.length
+ "
+ >
+ <el-card class="box-card" style="width: 200%">
+ <div
+ v-for="item in topicobj.svyLibScriptOptions"
+ v-if="item.isoperation != 3"
+ style="margin-bottom: 10px"
+ >
+ <el-input
+ type="text"
+ placeholder="濉叆鍐呭淇℃伅"
+ v-model="item.aaa"
+ >
+ <el-button
+ slot="append"
+ @click="deletexuanx(item)"
+ type="danger"
+ icon="el-icon-delete"
+ circle
+ ></el-button>
+ <span slot="prepend">{{
+ "(" + item.orderno + ")"
+ }}</span>
+ </el-input>
+ </div>
+ </el-card>
+ </el-form-item>
+ </el-col>
+ </el-row> -->
+
+
+ <!-- <el-form-item label="閫変腑鎸囨爣锛�">
+ <span style="margin-left: 30px"
+ ><el-tag type="success" effect="dark">{{
+ topicobj.targetname ? topicobj.targetname : "鏈�夋嫨"
+ }}</el-tag></span
+ >
+ <span style="margin-left: 30px"
+ ><el-button type="success" round @click="gettargetInfo"
+ >+閫夋嫨鎸囨爣</el-button
+ ></span
+ >
+ </el-form-item> -->
+ </div>
+ <div class="headline">鍏宠仈淇℃伅閰嶇疆</div>
+ <el-divider></el-divider>
+
+ <div style="margin-left: 8%">
+ <el-row>
+ <el-form-item label="鏍囩" prop="desc">
+ <div class="xinz-inf">
+ <el-tag
+ :key="tag.tagname"
+ type="success"
+ v-for="tag in dynamicTags"
+ closable
+ :disable-transitions="false"
+ @close="handleClosetag(tag)"
+ >
+ {{ tag.tagname }}
+ </el-tag>
+ <el-select
+ v-model="inputValue"
+ v-if="inputVisible"
+ @change="handleInputConfirm"
+ filterable
+ remote
+ allow-create
+ reserve-keyword
+ default-first-option
+ :remote-method="remoteMethodtag"
+ :loading="loading"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in optionstag"
+ :key="item.tagid"
+ :label="item.tagname"
+ :value="item.tagname"
+ >
+ </el-option>
+ </el-select>
+ <el-button
+ v-else
+ class="button-new-tag"
+ size="small"
+ @click="showInput"
+ >+ 鏂板鏍囩</el-button
+ >
+ </div>
+ </el-form-item>
</el-row>
- <el-form-item label="閫夐」鏂囦欢" prop="sickness">
+
+ <el-form-item label="棰樺共鏂囦欢" prop="sickness">
<div style="width: 40vw">
<el-upload
class="upload-demo"
:action="uploadImgUrl"
:headers="headers"
- :accept="'image/*,video/*'"
- :on-success="handleChange.bind(this, item)"
+ accept=".jpg,.png,image/*"
+ :on-success="handleChangetg"
>
<el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+ <div slot="tip" class="el-upload__tip">
+ 鍙兘涓婁紶jpg/png绫诲瀷鏂囦欢
+ </div>
</el-upload>
+
<div style="margin: 20px">
<el-image
style="width: 100px; height: 100px"
- :src="item.picturePath"
- :preview-src-list="[...item.picturePath]"
+ :src="topicobj.picturePath"
+ :preview-src-list="
+ topicobj.picturePath ? [topicobj.picturePath] : []
+ "
>
</el-image>
</div>
</div>
</el-form-item>
</div>
- </div>
- </el-form>
- </el-card>
+ </el-form>
+ </el-card>
+ </div>
+ <div v-if="Editprogress == 2">
+ <el-card class="box-card">
+ <el-form :inline="true" ref="topicobj" :model="topicobj" class="demo-form-inline">
+ <div class="headline">
+ 鎸囨爣璁剧疆璇︽儏
+ <span v-if="topicobj.targetname" style="margin-left: 30px"
+ ><el-button type="success" @click="topicVisible = true"
+ >棰勮</el-button
+ ></span
+ >
+ <span style="margin-left: 30px"
+ ><el-button type="primary" round @click="gettargetInfo">{{
+ topicobj.targetname ? "淇敼鎸囨爣" : "+閫夋嫨鎸囨爣"
+ }}</el-button></span
+ >
+ <span style="margin-left: 30px"
+ ><el-button type="primary" @click="Saveproblem"
+ >淇� 瀛�</el-button
+ >
+ </span>
+ </div>
+ <el-divider></el-divider>
+ <el-form ref="form">
+ <el-row>
+ <el-col :span="10">
+ <el-form-item label="鎸囨爣鍚嶇О" prop="deptId">
+ <el-input
+ disabled
+ v-model="topicobj.targetname"
+ placeholder="璇疯緭鍏ユ寚鏍囧悕绉�"
+ maxlength="20"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鎸囨爣鎻忚堪" prop="deptId">
+ <el-input
+ disabled
+ v-model="topicobj.targetdesc"
+ placeholder="璇疯緭鍏ユ寚鏍囨弿杩�"
+ maxlength="60"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row>
+ <el-col :span="10">
+ <el-form-item label="缁撴灉绫诲瀷">
+ <el-radio-group
+ :disabled="true"
+ v-model="topicobj.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-col>
+ <el-col :span="12">
+ <el-form-item label="闂棰樺瀷">
+ <el-radio-group
+ :disabled="true"
+ v-model="topicobj.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>
+ </el-form>
+ <div>
+ <el-divider></el-divider>
+ <div v-if="topicobj.scriptType != 4">
+ <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="1">A</el-radio>
+ <el-radio :label="2">B</el-radio>
+ <el-radio :label="3">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"
+ :offsset="topicobj.scoretype == 4 ? 11 : 0"
+ >
+ <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-radio-group v-model="item.isabnormal">
+ <el-radio :label="1">鏄�</el-radio>
+ <el-radio :label="0">鍚�</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </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>
+ <el-form-item label="閫夐」鏂囦欢" prop="sickness">
+ <div style="width: 40vw">
+ <el-upload
+ class="upload-demo"
+ :action="uploadImgUrl"
+ :headers="headers"
+ accept=".jpg,.png,image/*"
+ :on-success="handleChange.bind(this, item)"
+ >
+ <el-button size="small" type="primary"
+ >鐐瑰嚮涓婁紶</el-button
+ >
+ </el-upload>
+ <div style="margin: 20px">
+ <el-image
+ style="width: 100px; height: 100px"
+ :src="item.picturePath"
+ :preview-src-list="
+ item.picturePath ? [item.picturePath] : []
+ "
+ >
+ </el-image>
+ </div>
+ </div>
+ </el-form-item>
+ </div>
+ </div>
+ <div v-else class="topicxq">
+ <el-input
+ type="textarea"
+ :rows="4"
+ placeholder="姝ゅ灞曠ず闂瓟棰樻敹闆嗕俊鎭�"
+ v-model="testgovalue"
+ >
+ </el-input>
+ </div>
+ </div>
+ </el-form>
+ </el-card>
+ </div>
</div>
<el-drawer
- title="娣诲姞閫夐」"
+ title="閫夋嫨鎸囨爣"
:visible.sync="drawer"
custom-class="demo-drawer"
size="50%"
@@ -413,7 +558,7 @@
:inline="true"
label-width="98px"
>
- <el-form-item label="鏍囬" prop="userName">
+ <el-form-item label="鎸囨爣鍚嶇О" prop="userName">
<el-input
v-model="queryParams.targetname"
placeholder="璇疯緭鍏�"
@@ -421,6 +566,26 @@
style="width: 200px"
@keyup.enter.native="gettargetInfo"
/>
+ </el-form-item>
+ <el-form-item label="鎸囨爣璇存槑" prop="userName">
+ <el-input
+ v-model="queryParams.targetdesc"
+ 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>
@@ -438,17 +603,45 @@
</el-form>
<el-table v-loading="loading" :data="targetList">
<el-table-column
- label="鏍囬"
+ label="鎸囨爣鍚嶇О"
align="center"
key="targetname"
prop="targetname"
width="100"
/>
<el-table-column
- label="闂鍐呭"
+ label="鎸囨爣璇存槑"
align="center"
key="targetdesc"
prop="targetdesc"
+ width="200"
+ :show-overflow-tooltip="true"
+ />
+ <el-table-column
+ label="鏄惁鍙敤"
+ align="center"
+ key="isavailable"
+ prop="isavailable"
+ >
+ <template slot-scope="scope">
+ <dict-tag :options="usable" :value="scope.row.isavailable" />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="闂绫诲瀷"
+ align="center"
+ key="scriptType"
+ prop="scriptType"
+ >
+ <template slot-scope="scope">
+ <dict-tag :options="valuetype" :value="scope.row.scriptType" />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="閫夐」璇存槑"
+ align="center"
+ key="optionDesc"
+ prop="optionDesc"
width="200"
:show-overflow-tooltip="true"
/>
@@ -456,6 +649,7 @@
<el-table-column
label="鎿嶄綔"
align="center"
+ fixed="right"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
@@ -479,6 +673,35 @@
/>
</div>
</el-drawer>
+ <el-dialog title="闂棰勮" :visible.sync="topicVisible" width="50%">
+ <div class="preview-left">
+ <div class="dev-text">
+ <span>{{ topicobj.scriptContent }}</span>
+ </div>
+
+ <div
+ class="dev-xx"
+ v-if="topicobj.scriptType != 3 && topicobj.scriptType != 4"
+ >
+ <el-radio-group v-model="topicobj.asrtext">
+ <el-radio
+ v-for="(topicobjs, index) in topicobj.svyLibScriptOptions"
+ :key="topicobjs.optioncontent"
+ :label="topicobjs.optioncontent"
+ >{{ topicobjs.optioncontent }}</el-radio
+ >
+ </el-radio-group>
+ </div>
+ <div v-else>
+ <el-input
+ type="textarea"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ v-model.sync="topicobj.asrtext"
+ :rows="2"
+ />
+ </div>
+ </div>
+ </el-dialog>
</div>
</template>
@@ -506,6 +729,10 @@
return {
topicobj: {
svyLibScriptOptions: [],
+ svyLibScriptTagList: [],
+ suitway: "1",
+ scoretype:'4',
+ language:'鏅�氳瘽',
},
headers: {
Authorization: "Bearer " + getToken(),
@@ -514,9 +741,11 @@
inputVisible: false,
inputValue: "",
currentInputId: "",
+ scriptTypels: "",
total: 0,
drawer: false,
loading: false,
+ topicVisible: false, //棰勮寮规
id: [],
suitwaylist: [],
targetList: [],
@@ -537,13 +766,16 @@
pageNum: 1,
pageSize: 10,
isavailable: "",
+ scriptType: "",
},
+ Editprogress: 1,
optionlist: [
{ value: "scriptTopic", table: "scriptTopic" },
{ value: "scriptTopic", table: "scriptTopic" },
{ value: "scriptTopic", table: "scriptTopic" },
],
inputValueillness: "",
+ testgovalue: "",
required: [],
themelist: [],
languagelist: [],
@@ -553,6 +785,7 @@
inputVisibleillness: false,
illnessVisible: false, //鎸囨爣鐤剧梾寮规
deptOptions: [],
+ qyoptions: [],
optionsillness: [],
illnesslistapi: [],
illnesslist: [],
@@ -561,29 +794,64 @@
{ label: "鍒嗘暟", value: "1" },
{ label: "ABC绛夌骇", value: "2" },
{ label: "浼樿壇绛夌骇", value: "3" },
+ { label: "鏃�", value: "4" },
],
optionstag: [],
valuetype: [],
usable: [],
mode: [], //鏂瑰紡
+ // 琛ㄥ崟鏍¢獙
+ rules: {
+ categoryid: [
+ { required: true, message: "闂鍒嗙被涓嶈兘涓虹┖", trigger: "blur" },
+ ],
+ scoretype: [
+ { required: true, message: "璇勪环绫诲瀷涓嶈兘涓虹┖", trigger: "blur" },
+ ],
+ language: [
+ { required: true, message: "璇█涓嶈兘涓虹┖", trigger: "blur" },
+ ],
+ isavailable: [
+ { required: true, message: "鍙敤鐘舵�佷笉鑳戒负绌�", trigger: "blur" },
+ ],
+ scriptTopic: [
+ { required: true, message: "闂鏍囬涓嶈兘涓虹┖", trigger: "blur" },
+ ],
+ ismandatory: [
+ { required: true, message: "鏄惁蹇呭~涓嶈兘涓虹┖", trigger: "blur" },
+ ],
+ scriptType: [
+ { required: true, message: "闂绫诲瀷涓嶈兘涓虹┖", trigger: "blur" },
+ ],
+ suitway: [
+ { required: true, message: "閫傜敤鏂瑰紡涓嶈兘涓虹┖", trigger: "blur" },
+ ],
+ scriptContent: [
+ { required: true, message: "闂鍐呭涓嶈兘涓虹┖", trigger: "blur" },
+ ],
+ },
};
},
created() {
this.gettabList();
this.getissueinfo();
- this.gettargetInfo();
+ // this.gettargetInfo();
this.mode = store.getters.mode;
this.languagelist = store.getters.languagelist;
this.usable = store.getters.usable;
this.valuetype = store.getters.askvaluetype;
this.required = store.getters.required;
+ this.qyoptions = store.getters.askvaluetype;
},
methods: {
// 鍏叡鏂规硶---------------
getIndexInArray(arr, obj) {
return arr.indexOf(obj);
+ },
+ processElement(element) {
+ return { ...element, isoperation: 1 };
},
// 閫掑綊鎵佸钩鍖�
flattenArray(arr) {
@@ -604,18 +872,27 @@
// 鑾峰彇鏁版嵁
getissueinfo() {
this.id = this.$route.query.id;
+
+
// 鍒嗙被
getissueclassify({}).then((res) => {
this.classifylist = res.rows;
- console.log(this.classifylist, "鍒嗙被");
+ if (this.$route.query.categoryid) {
+ this.topicobj.categoryid = Number(this.$route.query.categoryid);
+ }
});
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(",");
+ if (!this.topicobj.svyLibScriptTagList) {
+ this.topicobj.svyLibScriptTagList = [];
+ }
+ this.dynamicTags = this.topicobj.svyLibScriptTagList.map(
+ this.processElement
+ );
+ this.scriptTypels = this.topicobj.scriptType;
this.variablelist = JSON.parse(this.topicobj.otherdata)
? JSON.parse(this.topicobj.otherdata)
: this.variablelist;
@@ -631,14 +908,22 @@
});
},
gettargetInfo() {
+ if (!this.queryParams.scriptType) {
+ this.queryParams.scriptType = this.topicobj.scriptType;
+ }
+
+ this.queryParams.suitWay = 1;
gettargetInfo(this.queryParams).then((res) => {
this.targetList = res.rows;
this.total = res.total;
+ this.drawer = true;
});
},
// 鏂板鎴栦慨鏀硅鎯�
compileissue() {
- this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map(
+ this.$refs["topicobj"].validate((valid) => {
+ if (valid) {
+ this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map(
(item) => {
if (item.isoperation != 1 && item.isoperation != 3) {
item.isoperation = 2;
@@ -646,9 +931,11 @@
return item;
}
);
+ this.topicobj.targetoptions = this.topicobj.svyLibScriptOptions
+ .filter((item) => item.isoperation != 3)
+ .map((item) => item.optioncontent)
+ .join(", ");
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) => {
@@ -690,59 +977,97 @@
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(score, "閿欒鍒嗗��");
+ let isValid = scorearr.every((score, index) => {
+ if (this.topicobj.scriptType == 1) {
+ if (score.score||score.score==0) {
+ if (
+ Number(score.score) < 0 ||
+ Number(score.score) > Number(this.topicobj.score)
+ ) {
+ console.log(score, "閿欒鍒嗗��");
+ this.$message({
+ message: "閫夐」鍒嗗�煎繀椤诲湪0鍒�" + this.topicobj.score + "鍒嗕箣闂�",
+ type: "warning",
+ });
+ return false;
+ }
+ return true;
+ } else {
this.$message({
- message: "閫夐」鍒嗗�煎繀椤诲ぇ浜�0灏忎簬绛変簬" + this.topicobj.score + "鍒�",
+ message: "閫夐」鍒嗗�兼湭璁剧疆",
type: "warning",
});
return false;
}
+ } else if (this.topicobj.scriptType == 2) {
+ // 绱姞鍒嗗��
+ const totalScore = scorearr.reduce((acc, score) => {
+ if (score.score) {
+ return acc + Number(score.score);
+ }
+ return acc; // 濡傛灉 score.score 涓嶅瓨鍦紝涓嶇疮鍔�
+ }, 0);
+
+ // 妫�鏌ョ疮鍔犵殑鍒嗗�兼槸鍚︾瓑浜� this.topicobj.score
+ if (totalScore !== Number(this.topicobj.score)) {
+ this.$message({
+ message:
+ "澶氶�夐閫夐」鍒嗗�兼�诲拰蹇呴』绛変簬 " + this.topicobj.score + " 鍒�",
+ type: "warning",
+ });
+ return false;
+ }
+ return true; // 濡傛灉鎬诲垎姝g‘锛岃繑鍥� true
+ } else if (this.topicobj.scriptType == 4) {
return true;
- } else if (this.topicobj.scriptType == 3) {
- 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);
+ // 鍒ゆ柇鎸囨爣
+ changefn(item) {
+ console.log(item);
+ if (this.topicobj.targetname || this.topicobj.svyLibScriptOptions[0]) {
+ this.$modal
+ .confirm("鏇存敼绫诲瀷鍚庨�夐」灏嗘竻绌烘槸鍚︾户缁紵")
+ .then(() => {
+ this.scriptTypels = this.topicobj.scriptType;
+ this.topicobj.svyLibScriptOptions.forEach((item) => {
+ item.isoperation = 3;
+ });
+ })
+ .catch(() => {
+ this.topicobj.scriptType = this.scriptTypels;
+ });
+ }
},
+
// 鍒犻櫎閫夐」
deletexuanx(row) {
const index = this.getIndexInArray(
this.topicobj.svyLibScriptOptions,
row
);
+ console.log(this.topicobj.svyLibScriptOptions);
+
if (this.topicobj.svyLibScriptOptions[index].id) {
this.topicobj.svyLibScriptOptions[index].isoperation = 3;
} else {
@@ -761,16 +1086,18 @@
selectlabel(row) {
this.$modal
.confirm(
- '鏄惁閫夋嫨鏍囬涓�"' + row.targetname + '"鐨勬寚鏍囧苟鏇挎崲濉厖闂淇℃伅锛�'
+ '鏄惁閫夋嫨鏍囬涓�"' +
+ row.targetname +
+ '"鐨勬寚鏍囧苟鏇挎崲濉厖闂鍙婇�夐」淇℃伅锛�'
)
.then(() => {
console.log(row);
- console.log(this.topicobj);
- this.topicobj.scriptTopic = row.targetname;
+ // this.topicobj.scriptTopic = row.targetname;
this.topicobj.valueType = row.valueType;
- this.topicobj.scriptContent = row.targetdesc;
- this.topicobj.isavailable = "0";
- this.topicobj.language = "鏅�氳瘽";
+ this.topicobj.scriptType = row.scriptType;
+ // this.topicobj.scriptContent = row.targetdesc;
+ this.topicobj.targetid = row.id;
+ this.topicobj.targetname = row.targetname;
this.topicobj.svyLibScriptOptions = [];
const labellist = row.targetoptionList;
labellist.forEach((item) => {
@@ -792,14 +1119,14 @@
tagcategoryid: "0",
};
listtag(tagqueryParams).then((response) => {
- console.log(response);
this.optionstag = response.rows;
});
},
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.topicobj.svyLibScriptTagList[lindex].delFlag = 1;
},
handleInputConfirm() {
let tagvalue = {};
@@ -821,7 +1148,8 @@
};
}
// this.dynamicTags.push(tagvalue);
- this.dynamicTags.push(tagvalue.tagname);
+ this.topicobj.svyLibScriptTagList.push(tagvalue);
+ this.dynamicTags.push(tagvalue);
});
}
this.inputVisible = false;
@@ -897,22 +1225,25 @@
// this.illnessVisible = false;
// this.$modal.msgSuccess("缂栬緫鎴愬姛");
// },
- resetQuery() {},
- // 渚挎嵎鏍囩
- tsgnameto(row) {
+ resetQuery() {
+ this.queryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ };
+ this.gettargetInfo();
+ },
+
+ // 渚挎嵎鏍囩鎻掑叆濉┖
+ tsgnametos(row) {
let inputValueArr = "";
+ let value = this.topicobj.svyLibScriptOptions.length + 1;
+
let el = document.querySelector("#" + this.currentInputId);
//el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛�
if (this.currentInputId == "scriptContent") {
+ console.log(1);
inputValueArr = this.topicobj.scriptContent.split("");
- } 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("");
+ console.log(2);
} else {
return;
}
@@ -921,20 +1252,22 @@
// 鎷垮埌閫変腑鏂囧瓧鐨勯暱搴︼紙鍚庣画鍙互鐢ㄦ潵鏇挎崲閫変腑鐨勬枃瀛楋級
let selectLength = el.selectionEnd - el.selectionStart;
// 灏嗚鎻掑叆/鏇挎崲鐨勬枃瀛楁彃鍏�/鏇挎崲锛坴alue.name鏄鎻掑叆/鏇挎崲鐨勫瓧绗︿覆锛�
- inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`);
+ inputValueArr.splice(
+ el.selectionStart,
+ selectLength,
+ "__" + value + "__"
+ );
+ this.topicobj.svyLibScriptOptions.push({
+ orderno: value,
+ optiondesc: "",
+ isoperation: 1,
+ });
// 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪��
inputValueArr = inputValueArr.join("");
+
console.log(inputValueArr);
if (this.currentInputId == "scriptContent") {
this.topicobj.scriptContent = 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;
}
@@ -1008,10 +1341,14 @@
handleChange(item, response, file, fileList) {
console.log(response);
if (response.code == 200) {
+ console.log(item);
let index = this.topicobj.svyLibScriptOptions.findIndex(
- (obj) => obj.id == item.id && obj.name == item.name
+ (obj) => obj.optioncontent == item.optioncontent
);
+ console.log(index);
this.topicobj.svyLibScriptOptions[index].picturePath = response.url;
+ console.log(this.topicobj.svyLibScriptOptions[index]);
+ this.$forceUpdate();
} else {
this.$message.error("鍥剧墖鎻掑叆澶辫触");
}
@@ -1024,6 +1361,21 @@
this.$message.error("鍥剧墖鎻掑叆澶辫触");
}
},
+ // 涓嬩竴姝�
+ nextstep() {
+ if (this.Editprogress <= 1) {
+ // if (this.indexform.targetid) {
+ return this.Editprogress++;
+ // } else {
+ // this.$message.warning("璇峰厛閫夋嫨鍏宠仈鎸囨爣");
+ // }
+ } else {
+ }
+ },
+ // 涓婁竴姝�
+ laststep() {
+ this.Editprogress = this.Editprogress - 1;
+ },
},
};
</script>
@@ -1034,20 +1386,14 @@
padding: 0 20px;
font-size: 18px;
overflow: auto;
- .headline {
- font-size: 20px;
- border-left: 3px solid #41a1be;
- padding-left: 5px;
- margin: 15px 0;
- }
+
.topicxq {
- width: 68%;
+ width: 72%;
background-color: #e2f5fc;
border-radius: 4px;
margin-top: 15px;
margin-left: 10%;
- padding-left: 10px;
- padding-top: 15px;
+ padding: 20px;
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);
@@ -1077,6 +1423,21 @@
}
}
}
+.sidecolumn {
+ margin-bottom: 10px;
+ padding: 15px;
+ background: #edf1f7;
+ 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);
+}
+.headline {
+ display: flex;
+ font-size: 20px;
+ border-left: 4px solid #41a1be;
+ padding-left: 5px;
+ margin: 15px 0;
+}
.tsgname {
width: 90px;
margin-right: 10px;
@@ -1092,6 +1453,21 @@
.tsgname:hover {
background: #3366f5;
}
+.tsgnames {
+ width: 120px;
+ margin-right: 10px;
+ text-align: center;
+ cursor: pointer;
+ height: 40px;
+ line-height: 40px;
+ background: #66c18c;
+ color: #ffff;
+ font-size: 18px;
+ border-radius: 5px;
+}
+.tsgnames:hover {
+ background: #20894d;
+}
.preview-left {
margin: 20px;
// margin: 20px;
--
Gitblit v1.9.3