<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="compileissue" 
 | 
                >保 存</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="10"> 
 | 
                <el-form-item label="问题分类"> 
 | 
                  <el-select 
 | 
                    v-model="topicobj.categoryid" 
 | 
                    size="medium" 
 | 
                    filterable 
 | 
                    placeholder="请选择分类" 
 | 
                  > 
 | 
                    <el-option-group 
 | 
                      v-for="group in classifylist" 
 | 
                      :key="group.id" 
 | 
                      :label="group.name" 
 | 
                    > 
 | 
                      <el-option 
 | 
                        v-for="item in group.svyLibTopicCategoryList" 
 | 
                        :key="item.id" 
 | 
                        :label="item.name" 
 | 
                        :value="item.id" 
 | 
                      > 
 | 
                      </el-option> 
 | 
                    </el-option-group> 
 | 
                  </el-select> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
              <el-col :span="10"> 
 | 
                <el-form-item label="评价类型"> 
 | 
                  <el-select 
 | 
                    v-model="topicobj.evaluateid" 
 | 
                    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-row> 
 | 
  
 | 
            <el-row :gutter="10"> 
 | 
              <el-col :span="6" 
 | 
                ><el-form-item label="题目标题"> 
 | 
                  <el-input 
 | 
                    v-model="topicobj.topic" 
 | 
                    placeholder="请输入标题" 
 | 
                  ></el-input> </el-form-item 
 | 
              ></el-col> 
 | 
              <el-col :span="6" 
 | 
                ><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="6" 
 | 
                ><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="6" 
 | 
                ><el-form-item label="题目类型"> 
 | 
                  <el-select 
 | 
                    v-model="topicobj.valueType" 
 | 
                    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="topicobj.suitway" 
 | 
                    size="medium" 
 | 
                    filterable 
 | 
                    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="topicContent" 
 | 
                v-model="topicobj.topicContent" 
 | 
                @focus="handleInput('topicContent')" 
 | 
                placeholder="请输入标题" 
 | 
              ></el-input> 
 | 
            </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> 
 | 
            <!-- <el-form-item label="通知变量" prop="name"> 
 | 
              <div style="margin-bottom: 5px" v-for="item in variablelist"> 
 | 
                <el-row> 
 | 
                  <el-col :span="5"> 
 | 
                    <el-input 
 | 
                      v-model="item.variatename" 
 | 
                      placeholder="请输入变量名" 
 | 
                    ></el-input> 
 | 
                  </el-col> 
 | 
                  <el-col :span="8" :offset="1"> 
 | 
                    <el-input 
 | 
                      v-model="item.variate" 
 | 
                      placeholder="请输入变量内容" 
 | 
                    ></el-input> 
 | 
                  </el-col> 
 | 
                  <el-col :span="8" :offset="1"> 
 | 
                    <el-button 
 | 
                      type="success" 
 | 
                      icon="el-icon-plus" 
 | 
                      circle 
 | 
                      @click="addvariable(item)" 
 | 
                    ></el-button> 
 | 
                    <el-button 
 | 
                      v-if="!item.default" 
 | 
                      type="danger" 
 | 
                      icon="el-icon-delete" 
 | 
                      circle 
 | 
                      @click="delvariable(item)" 
 | 
                    ></el-button> 
 | 
                  </el-col> 
 | 
                </el-row> 
 | 
              </div> 
 | 
            </el-form-item> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <div 
 | 
                  style="display: flex; margin-left: 66px; margin-bottom: 10px" 
 | 
                > 
 | 
                  <div 
 | 
                    v-for="item in variablelist" 
 | 
                    class="tsgname" 
 | 
                    @click="tsgnameto(item)" 
 | 
                  > 
 | 
                    {{ item.variatename }} 
 | 
                  </div> 
 | 
                </div> 
 | 
              </el-col></el-row 
 | 
            > --> 
 | 
          </div> 
 | 
          <div v-if="topicobj.valueType == 1"> 
 | 
            <div class="headline"> 
 | 
              选项设置<span style="margin-left: 30px" 
 | 
                ><el-button type="primary" round @click="addoption" 
 | 
                  >+新增</el-button 
 | 
                ></span 
 | 
              > 
 | 
            </div> 
 | 
            <div 
 | 
              class="topicxq" 
 | 
              v-for="item in topicobj.svyLibTopicoptions" 
 | 
              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 label="分值"> 
 | 
                    <el-input 
 | 
                      type="text" 
 | 
                      placeholder="请输入" 
 | 
                      v-model="item.score" 
 | 
                      show-word-limit 
 | 
                    > 
 | 
                    </el-input> </el-form-item 
 | 
                ></el-col> 
 | 
                <el-col :span="2"> 
 | 
                  <el-button 
 | 
                    type="danger" 
 | 
                    icon="el-icon-delete" 
 | 
                    circle 
 | 
                    @click="deletexuanx(item)" 
 | 
                  ></el-button> 
 | 
                </el-col> 
 | 
              </el-row> 
 | 
  
 | 
              <el-row :gutter="10"> 
 | 
                <el-form-item label="选中提示"> 
 | 
                  <el-input 
 | 
                    style="width: 40vw" 
 | 
                    type="textarea" 
 | 
                    autosize 
 | 
                    placeholder="请输入内容" 
 | 
                    v-model="item.prompt" 
 | 
                  > 
 | 
                  </el-input 
 | 
                ></el-form-item> 
 | 
              </el-row> 
 | 
            </div> 
 | 
          </div> 
 | 
        </el-form> 
 | 
      </el-card> 
 | 
    </div> 
 | 
    <el-drawer 
 | 
      title="添加选项" 
 | 
      :visible.sync="drawer" 
 | 
      custom-class="demo-drawer" 
 | 
      width="66%" 
 | 
    > 
 | 
      <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> 
 | 
            <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" 
 | 
            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> 
 | 
  </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"; 
 | 
  
 | 
export default { 
 | 
  data() { 
 | 
    return { 
 | 
      topicobj: { 
 | 
        svyLibTopicoptions: [], 
 | 
      }, 
 | 
      inputVisible: false, 
 | 
      inputValue: "", 
 | 
      currentInputId: "", 
 | 
      total: 0, 
 | 
      drawer: false, 
 | 
      loading: false, 
 | 
      id: [], 
 | 
      targetList: [], 
 | 
      dynamicTags: [], 
 | 
      optionsclass: [], 
 | 
      variablelist: [ 
 | 
        { variatename: "姓名", variate: "${name}", default: 1 }, 
 | 
        { variatename: "电话", variate: "${phone}", default: 1 }, 
 | 
        { variatename: "病情", variate: "${illness}", default: 1 }, 
 | 
      ], 
 | 
      // 查询参数 
 | 
      queryParams: { 
 | 
        pageNum: 1, 
 | 
        pageSize: 10, 
 | 
        isavailable: "", 
 | 
      }, 
 | 
      optionlist: [ 
 | 
        { value: "topic", table: "topic" }, 
 | 
        { value: "topic", table: "topic" }, 
 | 
        { value: "topic", table: "topic" }, 
 | 
      ], 
 | 
      inputValueillness: "", 
 | 
      required: [], 
 | 
      themelist: [], 
 | 
      languagelist: [], 
 | 
      courtyardlist: [], 
 | 
      precedencetype: [], 
 | 
      inputVisible: false, 
 | 
      inputVisibleillness: false, 
 | 
      illnessVisible: false, //指标疾病弹框 
 | 
      deptOptions: [], 
 | 
      optionsillness: [], 
 | 
      illnesslistapi: [], 
 | 
      illnesslist: [], 
 | 
      classifylist: [], 
 | 
      appraiselist: [ 
 | 
        { label: "分数", value: 1 }, 
 | 
        { label: "ABC等级", value: 2 }, 
 | 
        { label: "优良等级", value: 3 }, 
 | 
      ], 
 | 
      optionstag: [], 
 | 
      valuetype: [], 
 | 
      usable: [], 
 | 
      mode: [], //方式 
 | 
    }; 
 | 
  }, 
 | 
  
 | 
  created() { 
 | 
    this.gettabList(); 
 | 
    this.getissueinfo(); 
 | 
    this.gettargetInfo(); 
 | 
    this.mode = store.getters.mode; 
 | 
    this.languagelist = store.getters.languagelist; 
 | 
    this.usable = store.getters.usable; 
 | 
    this.valuetype = store.getters.valuetype; 
 | 
    this.required = store.getters.required; 
 | 
  }, 
 | 
  
 | 
  methods: { 
 | 
    // 公共方法--------------- 
 | 
    getIndexInArray(arr, obj) { 
 | 
      return arr.indexOf(obj); 
 | 
    }, 
 | 
    // 递归扁平化 
 | 
    flattenArray(arr) { 
 | 
      let result = []; 
 | 
      arr.forEach((item) => { 
 | 
        result.push(item); 
 | 
        if (item.svyLibTopicCategoryList) { 
 | 
          console.log(2); 
 | 
          result = result.concat( 
 | 
            this.flattenArray(item.svyLibTopicCategoryList) 
 | 
          ); 
 | 
          delete item.svyLibTopicCategoryList; 
 | 
        } 
 | 
      }); 
 | 
      return result; 
 | 
    }, 
 | 
    // ----------------------------- 
 | 
    // 获取数据 
 | 
    getissueinfo() { 
 | 
      this.id = this.$route.query.id; 
 | 
      // 分类 
 | 
      getissueclassify({}).then((res) => { 
 | 
        this.classifylist = res.rows; 
 | 
      }); 
 | 
      if (!this.id) { 
 | 
        return; 
 | 
      } 
 | 
      getissuelist({ topicid: this.id }).then((res) => { 
 | 
        this.topicobj = res.rows[0]; 
 | 
        this.dynamicTags = this.topicobj.tag.split(","); 
 | 
        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() { 
 | 
      gettargetInfo(this.queryParams).then((res) => { 
 | 
        this.targetList = res.rows; 
 | 
        this.total = res.total; 
 | 
      }); 
 | 
    }, 
 | 
    // 新增或修改详情 
 | 
    compileissue() { 
 | 
      this.topicobj.svyLibTopicoptions = this.topicobj.svyLibTopicoptions.map( 
 | 
        (item) => { 
 | 
          if (item.isoperation != 1 && item.isoperation != 3) { 
 | 
            item.isoperation = 2; 
 | 
          } 
 | 
          return item; 
 | 
        } 
 | 
      ); 
 | 
      this.topicobj.otherdata = JSON.stringify(this.variablelist); 
 | 
      this.topicobj.tag = this.dynamicTags.join(","); 
 | 
      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) => {}); 
 | 
      } 
 | 
    }, 
 | 
    // 删除选项 
 | 
    deletexuanx(row) { 
 | 
      const index = this.getIndexInArray(this.topicobj.svyLibTopicoptions, row); 
 | 
      if (this.topicobj.svyLibTopicoptions[index].topicid) { 
 | 
        this.topicobj.svyLibTopicoptions[index].isoperation = 3; 
 | 
      } else { 
 | 
        this.topicobj.svyLibTopicoptions.splice(index, 1); 
 | 
      } 
 | 
    }, 
 | 
    // 新增选项 
 | 
    addoption() { 
 | 
      this.topicobj.svyLibTopicoptions.push({ 
 | 
        score: "", 
 | 
        isoperation: 1, 
 | 
      }); 
 | 
    }, 
 | 
    // 选择指标 
 | 
    selectlabel(row) { 
 | 
      this.$modal 
 | 
        .confirm( 
 | 
          '是否选择标题为"' + row.targetname + '"的指标并替换填充问题信息?' 
 | 
        ) 
 | 
        .then(() => { 
 | 
          console.log(row); 
 | 
          console.log(this.topicobj); 
 | 
          this.topicobj.topic = row.targetname; 
 | 
          this.topicobj.valueType = row.valueType; 
 | 
          this.topicobj.topicContent = row.targetdesc; 
 | 
          this.topicobj.isavailable = "0"; 
 | 
          this.topicobj.language = "普通话"; 
 | 
          this.topicobj.svyLibTopicoptions = []; 
 | 
          const labellist = row.targetoptionList; 
 | 
          labellist.forEach((item) => { 
 | 
            this.topicobj.svyLibTopicoptions.push({ 
 | 
              optioncontent: item.targetvalue, 
 | 
              isoperation: 1, 
 | 
            }); 
 | 
          }); 
 | 
          this.drawer = false; 
 | 
        }) 
 | 
        .catch(() => {}); 
 | 
    }, 
 | 
  
 | 
    // 标签----------------- 
 | 
    gettabList() { 
 | 
      const tagqueryParams = { 
 | 
        pageNum: 1, 
 | 
        pageSize: 1000, 
 | 
        tagcategoryid: "0", 
 | 
      }; 
 | 
      listtag(tagqueryParams).then((response) => { 
 | 
        console.log(response); 
 | 
        this.optionstag = response.rows; 
 | 
      }); 
 | 
    }, 
 | 
    handleClosetag(tag) { 
 | 
      console.log(tag); 
 | 
      console.log(this.dynamicTags.indexOf(tag)); 
 | 
      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); 
 | 
    }, 
 | 
    handleInputConfirm() { 
 | 
      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.dynamicTags.push(tagvalue.tagname); 
 | 
        }); 
 | 
      } 
 | 
      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; 
 | 
    }, 
 | 
    // 疾病----------------------- 
 | 
  
 | 
    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() {}, 
 | 
    // 便捷标签 
 | 
    tsgnameto(row) { 
 | 
      let inputValueArr = ""; 
 | 
      let el = document.querySelector("#" + this.currentInputId); 
 | 
      //el.selectionStart; 这就是当前光标所在的位置(字符串中字符的index) 
 | 
      if (this.currentInputId == "topicContent") { 
 | 
        inputValueArr = this.topicobj.topicContent.split(""); 
 | 
        console.log(123); 
 | 
      } else if (this.currentInputId == "nomatchtext") { 
 | 
        inputValueArr = this.topicobj.nomatchtext.split(""); 
 | 
      } else if (this.currentInputId == "sliencetext") { 
 | 
        inputValueArr = this.topicobj.sliencetext.split(""); 
 | 
      } else if (this.currentInputId == "noclearlytext") { 
 | 
        inputValueArr = this.topicobj.noclearlytext.split(""); 
 | 
      } else if (this.currentInputId == "submoduletext") { 
 | 
        inputValueArr = this.topicobj.submoduletext.split(""); 
 | 
      } else { 
 | 
        return; 
 | 
      } 
 | 
      //将输入框内容切成数组,方便后续操作 
 | 
      // inputValueArr = this.inputValue.split(""); 
 | 
      // 拿到选中文字的长度(后续可以用来替换选中的文字) 
 | 
      let selectLength = el.selectionEnd - el.selectionStart; 
 | 
      // 将要插入/替换的文字插入/替换(value.name是要插入/替换的字符串) 
 | 
      inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`); 
 | 
      // 把数组重新转换为字符串并赋值 
 | 
      inputValueArr = inputValueArr.join(""); 
 | 
      console.log(inputValueArr); 
 | 
      if (this.currentInputId == "topicContent") { 
 | 
        this.topicobj.topicContent = inputValueArr; 
 | 
      } else if (this.currentInputId == "nomatchtext") { 
 | 
        this.topicobj.nomatchtext = inputValueArr; 
 | 
      } else if (this.currentInputId == "sliencetext") { 
 | 
        this.topicobj.sliencetext = inputValueArr; 
 | 
      } else if (this.currentInputId == "noclearlytext") { 
 | 
        this.topicobj.noclearlytext = inputValueArr; 
 | 
      } else if (this.currentInputId == "submoduletext") { 
 | 
        this.topicobj.submoduletext = inputValueArr; 
 | 
      } else { 
 | 
        return; 
 | 
      } 
 | 
    }, 
 | 
  
 | 
    // 新增变量 
 | 
    addvariable() { 
 | 
      this.variablelist.push({ 
 | 
        variatename: "", 
 | 
        variate: "", 
 | 
      }); 
 | 
    }, 
 | 
    // 删除变量 
 | 
    delvariable(item) { 
 | 
      const index = this.variablelist.indexOf(item); 
 | 
      if (index !== -1) { 
 | 
        this.variablelist.splice(index, 1); // 从索引位置删除一个元素 
 | 
      } else { 
 | 
        console.log("未找到该对象"); 
 | 
      } 
 | 
    }, 
 | 
    // 输入获取id 
 | 
    handleInput(id) { 
 | 
      this.currentInputId = id; 
 | 
      console.log("输入框的值已更新:", this.currentInputId); 
 | 
      // 在这里执行更新数据的逻辑 
 | 
    }, 
 | 
  }, 
 | 
}; 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
.presentation-right { 
 | 
  margin-top: 20px; 
 | 
  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%; 
 | 
    background-color: #e2f5fc; 
 | 
    border-radius: 4px; 
 | 
    margin-top: 15px; 
 | 
    margin-left: 10%; 
 | 
    padding-left: 10px; 
 | 
    padding-top: 15px; 
 | 
    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; 
 | 
    overflow: hidden; 
 | 
    text-overflow: ellipsis; 
 | 
    line-height: 48px; 
 | 
  
 | 
    .el-tag + .el-tag { 
 | 
      margin-left: 10px; 
 | 
    } 
 | 
    .button-new-tag { 
 | 
      margin-left: 10px; 
 | 
      height: 32px; 
 | 
      line-height: 30px; 
 | 
      padding-top: 0; 
 | 
      padding-bottom: 0; 
 | 
    } 
 | 
    .input-new-tag { 
 | 
      width: 90px; 
 | 
      margin-left: 10px; 
 | 
      vertical-align: bottom; 
 | 
    } 
 | 
  } 
 | 
} 
 | 
.tsgname { 
 | 
  width: 90px; 
 | 
  margin-right: 10px; 
 | 
  text-align: center; 
 | 
  cursor: pointer; 
 | 
  height: 40px; 
 | 
  line-height: 40px; 
 | 
  background: #7799fa; 
 | 
  color: #ffff; 
 | 
  font-size: 18px; 
 | 
  border-radius: 5px; 
 | 
} 
 | 
.tsgname:hover { 
 | 
  background: #3366f5; 
 | 
} 
 | 
.preview-left { 
 | 
  margin: 20px; 
 | 
  //   margin: 20px; 
 | 
  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); 
 | 
  .topic-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> 
 |