|  |  |  | 
|---|
|  |  |  | <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="Submittopicobj" | 
|---|
|  |  |  | >保存</el-button | 
|---|
|  |  |  | ></span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-col :span="8" | 
|---|
|  |  |  | ><el-form-item label="题目标题"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="topicobj.title" | 
|---|
|  |  |  | placeholder="请输入标题" | 
|---|
|  |  |  | ></el-input> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | <el-col :span="6" | 
|---|
|  |  |  | ><el-form-item label="是否隐藏"> | 
|---|
|  |  |  | <el-radio-group v-model="topicobj.resourcea"> | 
|---|
|  |  |  | <el-radio label="是"></el-radio> | 
|---|
|  |  |  | <el-radio label="否"></el-radio> | 
|---|
|  |  |  | </el-radio-group> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | <el-col :span="6" | 
|---|
|  |  |  | ><el-form-item label="语言"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="topicobj.languageh" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择分类" | 
|---|
|  |  |  | <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 | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | class="topicobjaa" | 
|---|
|  |  |  | v-for="item in xjxsoptions" | 
|---|
|  |  |  | :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-radio-group v-model="topicobj.resource"> | 
|---|
|  |  |  | <el-radio label="是"></el-radio> | 
|---|
|  |  |  | <el-radio label="否"></el-radio> | 
|---|
|  |  |  | </el-radio-group> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | <el-col :span="12" | 
|---|
|  |  |  | ><el-form-item label="题目类型"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="topicobj.languageh" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择分类" | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-step> | 
|---|
|  |  |  | <el-step> | 
|---|
|  |  |  | <template slot="title"> | 
|---|
|  |  |  | <span style="cursor: pointer" @click="nextstep" | 
|---|
|  |  |  | >问题指标编辑</span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | class="topicobjaa" | 
|---|
|  |  |  | v-for="item in xjxsoptions" | 
|---|
|  |  |  | :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" | 
|---|
|  |  |  | v-model="topicobj.title" | 
|---|
|  |  |  | placeholder="请输入标题" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-col :span="8" | 
|---|
|  |  |  | ><el-form-item label="适用方式"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="topicobj.languageh" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择分类" | 
|---|
|  |  |  | </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 | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | class="topicobjaa" | 
|---|
|  |  |  | v-for="item in xjxsoptions" | 
|---|
|  |  |  | :key="item.value" | 
|---|
|  |  |  | :label="item.label" | 
|---|
|  |  |  | :value="item.value" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-option> </el-select></el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | <el-col :span="12" | 
|---|
|  |  |  | ><el-form-item label="适用疾病"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="topicobj.languageh" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择分类" | 
|---|
|  |  |  | </span> | 
|---|
|  |  |  | <span style="margin-left: 30px" | 
|---|
|  |  |  | ><el-button type="primary" @click="Saveproblem" | 
|---|
|  |  |  | >保 存</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | class="topicobjaa" | 
|---|
|  |  |  | v-for="item in xjxsoptions" | 
|---|
|  |  |  | :key="item.value" | 
|---|
|  |  |  | :label="item.label" | 
|---|
|  |  |  | :value="item.value" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | </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="handleClose(tag)" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | {{ tag }} | 
|---|
|  |  |  | </el-tag> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="inputValue" | 
|---|
|  |  |  | v-if="inputVisible" | 
|---|
|  |  |  | @change="handleInputConfirm" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | allow-create | 
|---|
|  |  |  | default-first-option | 
|---|
|  |  |  | placeholder="请选择" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="item in optionstag" | 
|---|
|  |  |  | :key="item.tagname" | 
|---|
|  |  |  | :label="item.tagname" | 
|---|
|  |  |  | :value="item.tagname" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | v-else | 
|---|
|  |  |  | class="button-new-tag" | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | @click="showInput" | 
|---|
|  |  |  | >+ 新增标签</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <div class="headline"> | 
|---|
|  |  |  | 选项设置<span style="margin-left: 30px" | 
|---|
|  |  |  | ><el-button type="primary" @click="addoption" | 
|---|
|  |  |  | >+新增</el-button | 
|---|
|  |  |  | ></span | 
|---|
|  |  |  | <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="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="问题得分" prop="score"> | 
|---|
|  |  |  | <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="问题标题" prop="scriptTopic"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="topicobj.scriptTopic" | 
|---|
|  |  |  | placeholder="请输入标题" | 
|---|
|  |  |  | ></el-input> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | <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-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-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- <el-form-item | 
|---|
|  |  |  | label="" | 
|---|
|  |  |  | prop="scriptContent" | 
|---|
|  |  |  | v-if="topicobj.scriptType == 3" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </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="text" | 
|---|
|  |  |  | 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="text" | 
|---|
|  |  |  | show-word-limit | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | <el-col :span="2"> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="danger" | 
|---|
|  |  |  | icon="el-icon-delete" | 
|---|
|  |  |  | circle | 
|---|
|  |  |  | ></el-button> | 
|---|
|  |  |  | <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-row :gutter="10"> | 
|---|
|  |  |  | <el-col :span="11" | 
|---|
|  |  |  | ><el-form-item label="选中提示"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | placeholder="请输入内容" | 
|---|
|  |  |  | v-model="text" | 
|---|
|  |  |  | maxlength="10" | 
|---|
|  |  |  | show-word-limit | 
|---|
|  |  |  | </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"> | 
|---|
|  |  |  | <div style="width: 40vw"> | 
|---|
|  |  |  | <el-upload | 
|---|
|  |  |  | class="upload-demo" | 
|---|
|  |  |  | :action="uploadImgUrl" | 
|---|
|  |  |  | :headers="headers" | 
|---|
|  |  |  | accept=".jpg,.png,image/*" | 
|---|
|  |  |  | :on-success="handleChangetg" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | <el-col :span="11" | 
|---|
|  |  |  | ><el-form-item label="下题跳转"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | placeholder="请输入题号" | 
|---|
|  |  |  | v-model="text" | 
|---|
|  |  |  | show-word-limit | 
|---|
|  |  |  | <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="topicobj.picturePath" | 
|---|
|  |  |  | :preview-src-list=" | 
|---|
|  |  |  | topicobj.picturePath ? [topicobj.picturePath] : [] | 
|---|
|  |  |  | " | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-image> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </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 | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | </el-card> | 
|---|
|  |  |  | </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="选择指标" | 
|---|
|  |  |  | :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="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> | 
|---|
|  |  |  | <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" | 
|---|
|  |  |  | 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" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="操作" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | fixed="right" | 
|---|
|  |  |  | 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> | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | import { listtag } from "@/api/system/label"; | 
|---|
|  |  |  | import store from "@/store"; | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | gettargetInfo, | 
|---|
|  |  |  | getissuelist, | 
|---|
|  |  |  | issueinfo, | 
|---|
|  |  |  | compileissue, | 
|---|
|  |  |  | delissueinfo, | 
|---|
|  |  |  | Followupinfo, | 
|---|
|  |  |  | getissueclassify, | 
|---|
|  |  |  | deltargetillness, | 
|---|
|  |  |  | addtargetillness, | 
|---|
|  |  |  | getillnesslist, | 
|---|
|  |  |  | illnesslistget, | 
|---|
|  |  |  | getillness, | 
|---|
|  |  |  | } from "@/api/AiCentre/index"; | 
|---|
|  |  |  | import { getToken } from "@/utils/auth"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | topicobj: {}, | 
|---|
|  |  |  | topicobj: { | 
|---|
|  |  |  | svyLibScriptOptions: [], | 
|---|
|  |  |  | svyLibScriptTagList: [], | 
|---|
|  |  |  | suitway: "1", | 
|---|
|  |  |  | scoretype:'4', | 
|---|
|  |  |  | language:'普通话', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | headers: { | 
|---|
|  |  |  | Authorization: "Bearer " + getToken(), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", | 
|---|
|  |  |  | inputVisible: false, | 
|---|
|  |  |  | inputValue: "", | 
|---|
|  |  |  | dynamicTags: ["标签一", "标签二", "标签三"], | 
|---|
|  |  |  | currentInputId: "", | 
|---|
|  |  |  | scriptTypels: "", | 
|---|
|  |  |  | total: 0, | 
|---|
|  |  |  | drawer: false, | 
|---|
|  |  |  | loading: false, | 
|---|
|  |  |  | topicVisible: false, //预览弹框 | 
|---|
|  |  |  | id: [], | 
|---|
|  |  |  | suitwaylist: [], | 
|---|
|  |  |  | targetList: [], | 
|---|
|  |  |  | dynamicTags: [], | 
|---|
|  |  |  | optionsclass: [], | 
|---|
|  |  |  | variablelist: [ | 
|---|
|  |  |  | { variatename: "姓名", variate: "${name}", default: 1 }, | 
|---|
|  |  |  | { variatename: "电话", variate: "${phone}", default: 1 }, | 
|---|
|  |  |  | { variatename: "病情", variate: "${illness}", default: 1 }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg", | 
|---|
|  |  |  | srcList: [ | 
|---|
|  |  |  | "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg", | 
|---|
|  |  |  | "https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg", | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | // 查询参数 | 
|---|
|  |  |  | queryParams: { | 
|---|
|  |  |  | pageNum: 1, | 
|---|
|  |  |  | pageSize: 10, | 
|---|
|  |  |  | isavailable: "", | 
|---|
|  |  |  | scriptType: "", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | Editprogress: 1, | 
|---|
|  |  |  | optionlist: [ | 
|---|
|  |  |  | { value: "topic", table: "topic" }, | 
|---|
|  |  |  | { value: "topic", table: "topic" }, | 
|---|
|  |  |  | { value: "topic", table: "topic" }, | 
|---|
|  |  |  | { value: "scriptTopic", table: "scriptTopic" }, | 
|---|
|  |  |  | { value: "scriptTopic", table: "scriptTopic" }, | 
|---|
|  |  |  | { value: "scriptTopic", table: "scriptTopic" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | options: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "选项1", | 
|---|
|  |  |  | label: "心血管", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "选项2", | 
|---|
|  |  |  | label: "骨科", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "选项3", | 
|---|
|  |  |  | label: "妇科", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | inputValueillness: "", | 
|---|
|  |  |  | testgovalue: "", | 
|---|
|  |  |  | required: [], | 
|---|
|  |  |  | themelist: [], | 
|---|
|  |  |  | languagelist: [], | 
|---|
|  |  |  | courtyardlist: [], | 
|---|
|  |  |  | precedencetype: [], | 
|---|
|  |  |  | inputVisible: false, | 
|---|
|  |  |  | inputVisibleillness: false, | 
|---|
|  |  |  | illnessVisible: false, //指标疾病弹框 | 
|---|
|  |  |  | deptOptions: [], | 
|---|
|  |  |  | qyoptions: [], | 
|---|
|  |  |  | optionsillness: [], | 
|---|
|  |  |  | illnesslistapi: [], | 
|---|
|  |  |  | illnesslist: [], | 
|---|
|  |  |  | classifylist: [], | 
|---|
|  |  |  | appraiselist: [ | 
|---|
|  |  |  | { label: "分数", value: "1" }, | 
|---|
|  |  |  | { label: "ABC等级", value: "2" }, | 
|---|
|  |  |  | { label: "优良等级", value: "3" }, | 
|---|
|  |  |  | { label: "无", value: "4" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | optionstag:[], | 
|---|
|  |  |  | xjxsoptions: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "1", | 
|---|
|  |  |  | label: "单选", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "2", | 
|---|
|  |  |  | label: "多选", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | 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.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: { | 
|---|
|  |  |  | Submittopicobj() {}, | 
|---|
|  |  |  | // 公共方法--------------- | 
|---|
|  |  |  | getIndexInArray(arr, obj) { | 
|---|
|  |  |  | return arr.indexOf(obj); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | processElement(element) { | 
|---|
|  |  |  | return { ...element, isoperation: 1 }; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 递归扁平化 | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 分类 | 
|---|
|  |  |  | getissueclassify({}).then((res) => { | 
|---|
|  |  |  | this.classifylist = res.rows; | 
|---|
|  |  |  | 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]; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | getillnesslist({ | 
|---|
|  |  |  | pageNum: 1, | 
|---|
|  |  |  | pageSize: 100, | 
|---|
|  |  |  | }).then((response) => { | 
|---|
|  |  |  | this.optionsillness = response.rows; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | getillness({ outid: this.id, type: 4 }).then((res) => { | 
|---|
|  |  |  | this.illnesslist = res.rows; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 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.$refs["topicobj"].validate((valid) => { | 
|---|
|  |  |  | if (valid) { | 
|---|
|  |  |  | this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map( | 
|---|
|  |  |  | (item) => { | 
|---|
|  |  |  | if (item.isoperation != 1 && item.isoperation != 3) { | 
|---|
|  |  |  | item.isoperation = 2; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | if (this.id) { | 
|---|
|  |  |  | this.topicobj.isoperation = 2; | 
|---|
|  |  |  | compileissue(this.topicobj).then((res) => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | this.$message({ | 
|---|
|  |  |  | message: "修改成功", | 
|---|
|  |  |  | type: "success", | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.$router.go(-1); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$message({ | 
|---|
|  |  |  | message: "修改失败", | 
|---|
|  |  |  | type: "error", | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.topicobj.isoperation = 1; | 
|---|
|  |  |  | compileissue(this.topicobj).then((res) => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | this.$message({ | 
|---|
|  |  |  | message: "新增成功", | 
|---|
|  |  |  | type: "success", | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.$router.go(-1); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$message({ | 
|---|
|  |  |  | message: "新增失败", | 
|---|
|  |  |  | type: "error", | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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, 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: "选项分值未设置", | 
|---|
|  |  |  | 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; // 如果总分正确,返回 true | 
|---|
|  |  |  | } else if (this.topicobj.scriptType == 4) { | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (isValid) { | 
|---|
|  |  |  | this.compileissue(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | Saveproblem() { | 
|---|
|  |  |  | if (this.topicobj.scoretype == 1) { | 
|---|
|  |  |  | this.Scorejudgment(); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.compileissue(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 判断指标 | 
|---|
|  |  |  | 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 { | 
|---|
|  |  |  | this.topicobj.svyLibScriptOptions.splice(index, 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 新增选项 | 
|---|
|  |  |  | addoption() {}, | 
|---|
|  |  |  | addoption() { | 
|---|
|  |  |  | console.log(this.topicobj, "obj"); | 
|---|
|  |  |  | this.topicobj.svyLibScriptOptions.push({ | 
|---|
|  |  |  | score: "", | 
|---|
|  |  |  | isoperation: 1, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 选择指标 | 
|---|
|  |  |  | selectlabel(row) { | 
|---|
|  |  |  | this.$modal | 
|---|
|  |  |  | .confirm( | 
|---|
|  |  |  | '是否选择标题为"' + | 
|---|
|  |  |  | row.targetname + | 
|---|
|  |  |  | '"的指标并替换填充问题及选项信息?' | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | .then(() => { | 
|---|
|  |  |  | console.log(row); | 
|---|
|  |  |  | // this.topicobj.scriptTopic = row.targetname; | 
|---|
|  |  |  | this.topicobj.valueType = row.valueType; | 
|---|
|  |  |  | 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) => { | 
|---|
|  |  |  | this.topicobj.svyLibScriptOptions.push({ | 
|---|
|  |  |  | optioncontent: item.targetvalue, | 
|---|
|  |  |  | isoperation: 1, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.drawer = false; | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .catch(() => {}); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 标签----------------- | 
|---|
|  |  |  | /** 查询标签列表 */ | 
|---|
|  |  |  | gettabList() { | 
|---|
|  |  |  | const tagqueryParams = { | 
|---|
|  |  |  | pageNum: 1, | 
|---|
|  |  |  | 
|---|
|  |  |  | tagcategoryid: "0", | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | listtag(tagqueryParams).then((response) => { | 
|---|
|  |  |  | console.log(response); | 
|---|
|  |  |  | this.options = response.rows; | 
|---|
|  |  |  | this.optionstag = response.rows; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleClose(tag) { | 
|---|
|  |  |  | handleClosetag(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 inputValue = this.inputValue; | 
|---|
|  |  |  | if (inputValue) { | 
|---|
|  |  |  | this.dynamicTags.push(inputValue); | 
|---|
|  |  |  | let tagvalue = {}; | 
|---|
|  |  |  | let tagname = this.inputValue; | 
|---|
|  |  |  | if (tagname) { | 
|---|
|  |  |  | listtag({ | 
|---|
|  |  |  | pageNum: 1, | 
|---|
|  |  |  | pageSize: 1000, | 
|---|
|  |  |  | tagcategoryid: "0", | 
|---|
|  |  |  | tagname: tagname, | 
|---|
|  |  |  | }).then((res) => { | 
|---|
|  |  |  | if (res.rows[0]) { | 
|---|
|  |  |  | tagvalue = res.rows[0]; | 
|---|
|  |  |  | tagvalue.isoperation = 1; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | tagvalue = { | 
|---|
|  |  |  | tagname: tagname, | 
|---|
|  |  |  | isoperation: 1, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // this.dynamicTags.push(tagvalue); | 
|---|
|  |  |  | this.topicobj.svyLibScriptTagList.push(tagvalue); | 
|---|
|  |  |  | this.dynamicTags.push(tagvalue); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.inputVisible = false; | 
|---|
|  |  |  | this.inputValue = ""; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | remoteMethodtag(query) { | 
|---|
|  |  |  | if (query !== "") { | 
|---|
|  |  |  | this.loading = true; | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | this.loading = false; | 
|---|
|  |  |  | listtag({ tagname: query, tagcategoryid: "0" }).then((res) => { | 
|---|
|  |  |  | this.optionstag = res.rows; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, 200); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.optionstag = []; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | showInput() { | 
|---|
|  |  |  | this.inputVisible = true; | 
|---|
|  |  |  | // 自动获取焦点 | 
|---|
|  |  |  | // this.$nextTick((_) => { | 
|---|
|  |  |  | //   this.$refs.saveTagInput.$refs.input.focus(); | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 疾病----------------------- | 
|---|
|  |  |  |  | 
|---|
|  |  |  | handleCloseillness(tag) { | 
|---|
|  |  |  | this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); | 
|---|
|  |  |  | if (tag.id) { | 
|---|
|  |  |  | this.illnesslistapi.push(tag.id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | remoteMethod(value) { | 
|---|
|  |  |  | console.log(value); | 
|---|
|  |  |  | const illnessqueryParams = { | 
|---|
|  |  |  | pageNum: 1, | 
|---|
|  |  |  | pageSize: 100, | 
|---|
|  |  |  | icdname: value, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | this.loading = true; | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | this.loading = false; | 
|---|
|  |  |  | getillnesslist(illnessqueryParams).then((response) => { | 
|---|
|  |  |  | this.optionsillness = response.rows; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, 200); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | illnessConfirm(item) { | 
|---|
|  |  |  | let opeavalue = {}; | 
|---|
|  |  |  | let tagname = this.inputValueillness; | 
|---|
|  |  |  | illnesslistget(item).then((res) => { | 
|---|
|  |  |  | opeavalue = res.data; | 
|---|
|  |  |  | opeavalue.outid = this.id; | 
|---|
|  |  |  | opeavalue.type = 4; | 
|---|
|  |  |  | opeavalue.icd10id = opeavalue.icdid; | 
|---|
|  |  |  | opeavalue.icd10name = opeavalue.icdname; | 
|---|
|  |  |  | opeavalue.icd10code = opeavalue.icdcode; | 
|---|
|  |  |  | if (tagname) { | 
|---|
|  |  |  | this.illnesslist.push(opeavalue); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | console.log(this.illnesslist); | 
|---|
|  |  |  | 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("编辑成功"); | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | 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(""); | 
|---|
|  |  |  | console.log(2); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //将输入框内容切成数组,方便后续操作 | 
|---|
|  |  |  | // inputValueArr = this.inputValue.split(""); | 
|---|
|  |  |  | // 拿到选中文字的长度(后续可以用来替换选中的文字) | 
|---|
|  |  |  | let selectLength = el.selectionEnd - el.selectionStart; | 
|---|
|  |  |  | // 将要插入/替换的文字插入/替换(value.name是要插入/替换的字符串) | 
|---|
|  |  |  | 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 { | 
|---|
|  |  |  | 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分"); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 选项文件上传 | 
|---|
|  |  |  | handleChange(item, response, file, fileList) { | 
|---|
|  |  |  | console.log(response); | 
|---|
|  |  |  | if (response.code == 200) { | 
|---|
|  |  |  | console.log(item); | 
|---|
|  |  |  | let index = this.topicobj.svyLibScriptOptions.findIndex( | 
|---|
|  |  |  | (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("图片插入失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 题干文件上传 | 
|---|
|  |  |  | handleChangetg(response, file, fileList) { | 
|---|
|  |  |  | if (response.code == 200) { | 
|---|
|  |  |  | this.topicobj.picturePath = response.url; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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: 50%; | 
|---|
|  |  |  | width: 72%; | 
|---|
|  |  |  | background-color: #e2f5fc; | 
|---|
|  |  |  | border-radius: 4px; | 
|---|
|  |  |  | margin-top: 10px; | 
|---|
|  |  |  | padding-left: 10px; | 
|---|
|  |  |  | padding-top: 15px; | 
|---|
|  |  |  | margin-top: 15px; | 
|---|
|  |  |  | margin-left: 10%; | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .xinz-inf { | 
|---|
|  |  |  | font-size: 18px; | 
|---|
|  |  |  | white-space: nowrap; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .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; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | cursor: pointer; | 
|---|
|  |  |  | height: 40px; | 
|---|
|  |  |  | line-height: 40px; | 
|---|
|  |  |  | background: #7799fa; | 
|---|
|  |  |  | color: #ffff; | 
|---|
|  |  |  | font-size: 18px; | 
|---|
|  |  |  | border-radius: 5px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .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; | 
|---|
|  |  |  | 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.ruleFormaa.el-select { | 
|---|
|  |  |  | display: inline-block; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | width: 700px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|