|  |  |  | 
|---|
|  |  |  | <div class="Questionnairemanagement"> | 
|---|
|  |  |  | <!-- 左侧栏 --> | 
|---|
|  |  |  | <div class="sidecolumn"> | 
|---|
|  |  |  | <div style="height: 400px"> | 
|---|
|  |  |  | <el-steps direction="vertical" :active="Editprogress"> | 
|---|
|  |  |  | <el-step title="基础信息设置"></el-step> | 
|---|
|  |  |  | <el-step title="问卷设置"></el-step> | 
|---|
|  |  |  | <el-step | 
|---|
|  |  |  | title="问卷预览" | 
|---|
|  |  |  | description="这是一段很长很长很长的描述性文字" | 
|---|
|  |  |  | ></el-step> | 
|---|
|  |  |  | <el-step | 
|---|
|  |  |  | title="结果反馈" | 
|---|
|  |  |  | description="这是一段很长很长很长的描述性文字" | 
|---|
|  |  |  | ></el-step> | 
|---|
|  |  |  | <div> | 
|---|
|  |  |  | <el-steps finish-status="success" :active="Editprogress" simple> | 
|---|
|  |  |  | <el-step> | 
|---|
|  |  |  | <template slot="title"> | 
|---|
|  |  |  | <span style="cursor: pointer" @click="Editprogress = 1" | 
|---|
|  |  |  | >基础信息</span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-step> | 
|---|
|  |  |  | <el-step> | 
|---|
|  |  |  | <template slot="title"> | 
|---|
|  |  |  | <span style="cursor: pointer" @click="Editprogress = 2" | 
|---|
|  |  |  | >问卷问题</span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-step> | 
|---|
|  |  |  | <el-step description="查看问卷预览,可导出PDF"> | 
|---|
|  |  |  | <span slot="title" style="cursor: pointer" @click="Editprogress = 3" | 
|---|
|  |  |  | >问卷预览</span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-step> | 
|---|
|  |  |  | </el-steps> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | 
|---|
|  |  |  | <div class="leftvlue"> | 
|---|
|  |  |  | <!-- 基本信息 --> | 
|---|
|  |  |  | <div v-if="Editprogress == 1"> | 
|---|
|  |  |  | <div class="leftvlue-jbxx"> | 
|---|
|  |  |  | 基本信息<span>当前版本:{{ currentVersion }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="leftvlue-jbxx">基本信息</div> | 
|---|
|  |  |  | <el-divider></el-divider> | 
|---|
|  |  |  | <el-form | 
|---|
|  |  |  | :model="ruleForm" | 
|---|
|  |  |  | :rules="rules" | 
|---|
|  |  |  | ref="ruleForm" | 
|---|
|  |  |  | label-width="100px" | 
|---|
|  |  |  | label-width="180px" | 
|---|
|  |  |  | class="demo-ruleForm" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-form-item label="活动名称" prop="name"> | 
|---|
|  |  |  | <el-input v-model="ruleForm.name"></el-input> | 
|---|
|  |  |  | <el-form-item label="问卷名称" prop="svyname"> | 
|---|
|  |  |  | <div style="width: 55vw"> | 
|---|
|  |  |  | <el-input v-model="ruleForm.svyname"></el-input> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="活动区域" prop="region"> | 
|---|
|  |  |  | <el-form-item label="问卷描述" prop="description"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 55vw" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | :rows="2" | 
|---|
|  |  |  | placeholder="请输入内容" | 
|---|
|  |  |  | v-model="ruleForm.description" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input | 
|---|
|  |  |  | ></el-form-item> | 
|---|
|  |  |  | <el-row :gutter="20"> | 
|---|
|  |  |  | <el-col :span="10"> | 
|---|
|  |  |  | <el-form-item label="问卷分类" prop="categoryid"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="ruleForm.categoryid" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择分类" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option-group | 
|---|
|  |  |  | v-for="group in optionsclass" | 
|---|
|  |  |  | :key="group.id" | 
|---|
|  |  |  | :label="group.name" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="item in group.svyLibTemplateCategoryList" | 
|---|
|  |  |  | :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="ruleForm.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-row> | 
|---|
|  |  |  | <el-row :gutter="20"> | 
|---|
|  |  |  | <el-col :span="10"> | 
|---|
|  |  |  | <el-form-item label="可用状态" prop="isenable"> | 
|---|
|  |  |  | <el-radio-group v-model="ruleForm.isenable"> | 
|---|
|  |  |  | <el-radio | 
|---|
|  |  |  | 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="name"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="ruleForm.version" | 
|---|
|  |  |  | placeholder="默认1.0" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <!-- <el-row :gutter="20"> | 
|---|
|  |  |  | <el-col :span="10"> | 
|---|
|  |  |  | <el-form-item label="长期任务" prop="longTemp"> | 
|---|
|  |  |  | <el-radio-group v-model="ruleForm.longTemp"> | 
|---|
|  |  |  | <el-radio | 
|---|
|  |  |  | v-for="(item, index) in longtype" | 
|---|
|  |  |  | :label="item.value" | 
|---|
|  |  |  | >{{ item.label }}</el-radio | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | <el-col :span="8" v-if="ruleForm.longTemp"> | 
|---|
|  |  |  | <el-form-item label="任务周期(几天后)" prop="name"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="ruleForm.sendDay" | 
|---|
|  |  |  | placeholder="默认5天后" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> --> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-form-item prop="dynamicTags"> | 
|---|
|  |  |  | <template #label> | 
|---|
|  |  |  | 标签 | 
|---|
|  |  |  | <el-tooltip | 
|---|
|  |  |  | class="item" | 
|---|
|  |  |  | effect="light" | 
|---|
|  |  |  | content="准确、扼要、多重的标签,可以让您在系统使用中方便的查找到该模版。" | 
|---|
|  |  |  | placement="top-start" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <i class="el-icon-warning-outline"></i> | 
|---|
|  |  |  | </el-tooltip> | 
|---|
|  |  |  | <!-- 在标签后插入红色星号 --> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | <div class="xinz-infs"> | 
|---|
|  |  |  | <el-form-item> | 
|---|
|  |  |  | <template #label> | 
|---|
|  |  |  | 适用疾病 | 
|---|
|  |  |  | <el-tooltip | 
|---|
|  |  |  | class="item" | 
|---|
|  |  |  | effect="light" | 
|---|
|  |  |  | content="选择好适用疾病后,可以方便您通过疾病诊断查找到对应的病人!" | 
|---|
|  |  |  | placement="top-start" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <i class="el-icon-warning-outline"></i> | 
|---|
|  |  |  | </el-tooltip> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | <div style="margin-bottom: 10px"> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="warning" | 
|---|
|  |  |  | @click="$refs.child.handleAddpatient()" | 
|---|
|  |  |  | >添加疾病诊断</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <el-tag | 
|---|
|  |  |  | v-for="tag in displayedTags" | 
|---|
|  |  |  | :key="tag.icdid" | 
|---|
|  |  |  | type="warning" | 
|---|
|  |  |  | :disable-transitions="false" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | {{ tag.icdname }} | 
|---|
|  |  |  | </el-tag> | 
|---|
|  |  |  | <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-form-item label="问卷方式" prop="suitway"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="ruleForm.region" | 
|---|
|  |  |  | v-model="ruleForm.suitway" | 
|---|
|  |  |  | style="width: 55vw" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | multiple | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择活动区域" | 
|---|
|  |  |  | placeholder="请选择分类" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | class="ruleFormaa" | 
|---|
|  |  |  | v-for="item in options" | 
|---|
|  |  |  | v-for="item in mode" | 
|---|
|  |  |  | :key="item.value" | 
|---|
|  |  |  | :label="item.label" | 
|---|
|  |  |  | :value="item.value" | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="活动形式" prop="desc"> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-col :span="20" | 
|---|
|  |  |  | ><el-form-item label="适用科室" prop="region"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="tempDetpRelevanceslist" | 
|---|
|  |  |  | @remove-tag="removetag" | 
|---|
|  |  |  | style="width: 55vw" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | multiple | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择科室" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | class="ruleFormaa" | 
|---|
|  |  |  | v-for="item in flatArray" | 
|---|
|  |  |  | :key="item.deptCode" | 
|---|
|  |  |  | :label="item.label" | 
|---|
|  |  |  | :value="item.deptCode" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-col :span="20" | 
|---|
|  |  |  | ><el-form-item label="适用病区" prop="region"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="tempbelongWards" | 
|---|
|  |  |  | @remove-tag="removehpsp" | 
|---|
|  |  |  | style="width: 55vw" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | multiple | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择病区" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | class="ruleFormaa" | 
|---|
|  |  |  | v-for="item in flatArray" | 
|---|
|  |  |  | :key="item.deptCode" | 
|---|
|  |  |  | :label="item.label" | 
|---|
|  |  |  | :value="item.deptCode" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-form-item label="结束语" prop="conclusion"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | :rows="4" | 
|---|
|  |  |  | style="width: 55vw; line-height: 80px" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | v-model="ruleForm.desc" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | :rows="5" | 
|---|
|  |  |  | autosize | 
|---|
|  |  |  | placeholder="请输入内容" | 
|---|
|  |  |  | v-model="ruleForm.conclusion" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input | 
|---|
|  |  |  | ></el-form-item> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-form-item> | 
|---|
|  |  |  | <el-button type="success" @click="submitForm('ruleForm')" | 
|---|
|  |  |  | <el-button type="success" @click="nextstep('ruleForm')" | 
|---|
|  |  |  | >下一步</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button @click="resetForm('ruleForm')">重置</el-button> | 
|---|
|  |  |  | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> | 
|---|
|  |  |  | <el-button @click="Departmenttreatment('ruleForm')" | 
|---|
|  |  |  | >保存问卷基础信息</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 问卷设置 --> | 
|---|
|  |  |  | <div v-if="Editprogress == 2"> | 
|---|
|  |  |  | <div class="leftvlue-jbxx">问卷设置</div> | 
|---|
|  |  |  | <el-form | 
|---|
|  |  |  | :model="ruleForm" | 
|---|
|  |  |  | :rules="rules" | 
|---|
|  |  |  | ref="ruleForm" | 
|---|
|  |  |  | label-width="100px" | 
|---|
|  |  |  | class="demo-ruleForm" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-form-item label="问卷介绍" prop="desc"> | 
|---|
|  |  |  | <el-cascader | 
|---|
|  |  |  | class="demo-cascader" | 
|---|
|  |  |  | v-model="ruleForm.templatevalue" | 
|---|
|  |  |  | :options="options" | 
|---|
|  |  |  | :props="{ expandTrigger: 'hover' }" | 
|---|
|  |  |  | @change="handleChange" | 
|---|
|  |  |  | ></el-cascader> | 
|---|
|  |  |  | <el-select v-model="ruleForm.data2" placeholder="提交提示"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="item in options" | 
|---|
|  |  |  | :key="item.value" | 
|---|
|  |  |  | :label="item.label" | 
|---|
|  |  |  | :value="item.value" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | <dev class="PreviewTemplate" @click="PreviewTemplate()" | 
|---|
|  |  |  | >预览模版</dev | 
|---|
|  |  |  | <div class="leftvlue-jbxx"> | 
|---|
|  |  |  | 问卷问题设置 | 
|---|
|  |  |  | <span style="" | 
|---|
|  |  |  | ><el-button | 
|---|
|  |  |  | type="warning" | 
|---|
|  |  |  | icon="el-icon-finished" | 
|---|
|  |  |  | round | 
|---|
|  |  |  | @click="test" | 
|---|
|  |  |  | >问题规则效验</el-button | 
|---|
|  |  |  | ></span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <el-divider></el-divider> | 
|---|
|  |  |  | <div style="display: flex; justify-content: space-between"> | 
|---|
|  |  |  | <div> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | icon="el-icon-plus" | 
|---|
|  |  |  | round | 
|---|
|  |  |  | @click="getaddtopiclist" | 
|---|
|  |  |  | >添加问题</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button type="primary">确认引用</el-button> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="活动形式" prop="desc"> | 
|---|
|  |  |  | <el-input type="textarea" v-model="ruleForm.desc"></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="活动形式" prop="desc"> | 
|---|
|  |  |  | <el-input type="textarea" v-model="ruleForm.desc"></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item> | 
|---|
|  |  |  | <el-button type="success" @click="submitForm('ruleForm')" | 
|---|
|  |  |  | >下一步</el-button | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="success" | 
|---|
|  |  |  | icon="el-icon-edit-outline" | 
|---|
|  |  |  | round | 
|---|
|  |  |  | @click="Operateit = !Operateit" | 
|---|
|  |  |  | >{{ !Operateit ? "编辑问题" : "完整信息展示" }}</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button type="primary" @click="laststep()">上一步</el-button> | 
|---|
|  |  |  | <el-button @click="resetForm('ruleForm')">重置</el-button> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 问卷预览 --> | 
|---|
|  |  |  | <div v-if="Editprogress == 3"> | 
|---|
|  |  |  | <div class="preview-left"> | 
|---|
|  |  |  | <!-- 单选 --> | 
|---|
|  |  |  | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> | 
|---|
|  |  |  | <div class="dev-text"> | 
|---|
|  |  |  | {{ item.idd }}、[单选]<span>{{ item.wssd }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="dev-xx"> | 
|---|
|  |  |  | <el-radio-group v-model="radio"> | 
|---|
|  |  |  | <el-radio | 
|---|
|  |  |  | v-for="(items, index) in item.sdadd" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="index" | 
|---|
|  |  |  | >{{ items }}</el-radio | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 多选 --> | 
|---|
|  |  |  | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> | 
|---|
|  |  |  | <div class="dev-text"> | 
|---|
|  |  |  | {{ item.idd }}、[多选]<span>{{ item.wssd }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="dev-xx"> | 
|---|
|  |  |  | <el-checkbox-group v-model="radios"> | 
|---|
|  |  |  | <el-checkbox | 
|---|
|  |  |  | v-for="(items, index) in item.sdadd" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="index" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | {{ items }} | 
|---|
|  |  |  | </el-checkbox> | 
|---|
|  |  |  | </el-checkbox-group> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 填空 --> | 
|---|
|  |  |  | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> | 
|---|
|  |  |  | <div class="dev-text"> | 
|---|
|  |  |  | {{ item.idd }}、[填空]<span>{{ item.wssd }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="dev-xx"> | 
|---|
|  |  |  | <el-input placeholder="请输入答案" v-model="radioas" clearable> | 
|---|
|  |  |  | </el-input> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div style="display: flex" v-if="ruleForm.scoreType == 1"> | 
|---|
|  |  |  | <span | 
|---|
|  |  |  | style=" | 
|---|
|  |  |  | width: 180px; | 
|---|
|  |  |  | font-size: 20px; | 
|---|
|  |  |  | font-weight: normal; | 
|---|
|  |  |  | color: red; | 
|---|
|  |  |  | " | 
|---|
|  |  |  | >问卷总分:</span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="ruleForm.scriptScore" | 
|---|
|  |  |  | placeholder="请输入分数" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <el-button type="success" @click="submitForm('ruleForm')" | 
|---|
|  |  |  | <div class="presentation"> | 
|---|
|  |  |  | <div :class="Operateit ? 'presentation-left' : 'spresentation-left'"> | 
|---|
|  |  |  | <el-card class="box-card" style="min-height: 688px"> | 
|---|
|  |  |  | <el-table | 
|---|
|  |  |  | v-loading="loading" | 
|---|
|  |  |  | :data="ruleForm.svyTemplateLibScripts" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="序号" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="sort" | 
|---|
|  |  |  | prop="sort" | 
|---|
|  |  |  | width="50" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="问题主题" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="scriptTopic" | 
|---|
|  |  |  | prop="scriptTopic" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="题型" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="scriptType" | 
|---|
|  |  |  | prop="scriptType" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <dict-tag | 
|---|
|  |  |  | :options="askvaluetype" | 
|---|
|  |  |  | :value="scope.row.scriptType" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | v-if="!Operateit" | 
|---|
|  |  |  | label="问题内容" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="scriptContent" | 
|---|
|  |  |  | prop="scriptContent" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | v-if="!Operateit" | 
|---|
|  |  |  | label="指标名称" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="targetname" | 
|---|
|  |  |  | prop="targetname" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | v-if="!Operateit" | 
|---|
|  |  |  | label="是否必填" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="ismandatory" | 
|---|
|  |  |  | prop="ismandatory" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <dict-tag | 
|---|
|  |  |  | :options="required" | 
|---|
|  |  |  | :value="scope.row.ismandatory" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="下题跳转" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="nextScriptno" | 
|---|
|  |  |  | prop="nextScriptno" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <span>{{ | 
|---|
|  |  |  | scope.row.nextScriptno == 0 | 
|---|
|  |  |  | ? "已是最后一题" | 
|---|
|  |  |  | : scope.row.nextScriptno | 
|---|
|  |  |  | }}</span> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | v-if="Operateit" | 
|---|
|  |  |  | label="操作" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | width="250" | 
|---|
|  |  |  | class-name="small-padding fixed-width" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | icon="el-icon-edit" | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | circle | 
|---|
|  |  |  | @click="handleUpdate(scope.row)" | 
|---|
|  |  |  | ></el-button> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="danger" | 
|---|
|  |  |  | icon="el-icon-delete" | 
|---|
|  |  |  | circle | 
|---|
|  |  |  | @click="handleDelete(scope.row)" | 
|---|
|  |  |  | ></el-button> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | @click="syioption(scope.row)" | 
|---|
|  |  |  | type="success" | 
|---|
|  |  |  | icon="el-icon-top" | 
|---|
|  |  |  | circle | 
|---|
|  |  |  | ></el-button> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | @click="xiayioption(scope.row)" | 
|---|
|  |  |  | type="success" | 
|---|
|  |  |  | icon="el-icon-bottom" | 
|---|
|  |  |  | circle | 
|---|
|  |  |  | ></el-button> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | </el-table> | 
|---|
|  |  |  | </el-card> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="presentation-right" v-if="Operateit"> | 
|---|
|  |  |  | <el-card class="box-card"> | 
|---|
|  |  |  | <el-form | 
|---|
|  |  |  | :inline="true" | 
|---|
|  |  |  | :model="topicobj" | 
|---|
|  |  |  | class="demo-form-inline" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div class="headline">问题设置详情</div> | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-col :span="12"> | 
|---|
|  |  |  | <el-form-item label="问题主题"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="topicobj.scriptTopic" | 
|---|
|  |  |  | placeholder="请输入标题" | 
|---|
|  |  |  | ></el-input> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | <el-col :span="12"> | 
|---|
|  |  |  | <el-form-item label="下题跳转"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="topicobj.nextScriptno" | 
|---|
|  |  |  | placeholder="请输入题号" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-form-item label="问题内容"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 600px" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | :rows="2" | 
|---|
|  |  |  | autosize | 
|---|
|  |  |  | placeholder="请输入问题内容" | 
|---|
|  |  |  | v-model="topicobj.scriptContent" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input | 
|---|
|  |  |  | ></el-form-item> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-col :span="12" | 
|---|
|  |  |  | ><el-form-item label="问题类型"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="topicobj.scriptType" | 
|---|
|  |  |  | disabled | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择分类" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | class="topicobjaa" | 
|---|
|  |  |  | v-for="item in askvaluetype" | 
|---|
|  |  |  | :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="问题分值" | 
|---|
|  |  |  | v-if="ruleForm.scoreType == 1" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="topicobj.score" | 
|---|
|  |  |  | placeholder="请输入题号" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-col :span="12" | 
|---|
|  |  |  | ><el-form-item label="是否必填"> | 
|---|
|  |  |  | <el-radio-group v-model="topicobj.ismandatory"> | 
|---|
|  |  |  | <el-radio | 
|---|
|  |  |  | v-for="(item, index) in required" | 
|---|
|  |  |  | :label="item.value" | 
|---|
|  |  |  | >{{ item.label }}</el-radio | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item></el-col | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-col :span="12" | 
|---|
|  |  |  | ><el-form-item label="是否可用"> | 
|---|
|  |  |  | <el-radio-group v-model="topicobj.isenable"> | 
|---|
|  |  |  | <el-radio | 
|---|
|  |  |  | v-for="(item, index) in usable" | 
|---|
|  |  |  | :label="item.value" | 
|---|
|  |  |  | >{{ item.label }}</el-radio | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item></el-col | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-form-item | 
|---|
|  |  |  | label="是否由选项配置跳转" | 
|---|
|  |  |  | v-if="topicobj.scriptType == 1" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-radio-group v-model="topicobj.branchFlag"> | 
|---|
|  |  |  | <el-radio :label="1">是</el-radio> | 
|---|
|  |  |  | <el-radio :label="0">否</el-radio> | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="选中提示" v-if="topicobj.scriptType != 1"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 24vw" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | autosize | 
|---|
|  |  |  | placeholder="请输入内容" | 
|---|
|  |  |  | v-model="topicobj.prompt" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input | 
|---|
|  |  |  | ></el-form-item> | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | v-if="topicobj.scriptType == 1 || topicobj.scriptType == 2" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div class="headline">选项设置</div> | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | class="topicxq" | 
|---|
|  |  |  | v-for="item in topicobj.svyLibTemplateTargetoptions" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-row :gutter="5"> | 
|---|
|  |  |  | <el-col :span="12" | 
|---|
|  |  |  | ><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="12"> | 
|---|
|  |  |  | <el-form-item | 
|---|
|  |  |  | v-if="ruleForm.scoreType == 1" | 
|---|
|  |  |  | label="选项分值" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | class="custom-width" | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | placeholder="请输入选项分值" | 
|---|
|  |  |  | v-model="item.score" | 
|---|
|  |  |  | show-word-limit | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item | 
|---|
|  |  |  | v-else-if="ruleForm.scoreType == 2" | 
|---|
|  |  |  | label="ABC等级" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-radio-group v-model="item.score"> | 
|---|
|  |  |  | <el-radio label="A">A</el-radio> | 
|---|
|  |  |  | <el-radio label="B">B</el-radio> | 
|---|
|  |  |  | <el-radio label="C">C</el-radio> | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item | 
|---|
|  |  |  | v-else-if="ruleForm.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-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" v-if="topicobj.branchFlag == 1"> | 
|---|
|  |  |  | <el-col :span="20" | 
|---|
|  |  |  | ><el-form-item label="下题跳转(序号)"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | @blur="branchFlagfn" | 
|---|
|  |  |  | placeholder="请输入题号" | 
|---|
|  |  |  | v-model="item.nextQuestion" | 
|---|
|  |  |  | show-word-limit | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row :gutter="10" v-if="topicobj.scriptType == 1"> | 
|---|
|  |  |  | <el-form-item label="选中提示"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 24vw" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | autosize | 
|---|
|  |  |  | placeholder="请输入内容" | 
|---|
|  |  |  | v-model="item.prompt" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input | 
|---|
|  |  |  | ></el-form-item> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-form-item label="选项文件" prop="sickness"> | 
|---|
|  |  |  | <div style="width: 40vw"> | 
|---|
|  |  |  | <div style="margin: 20px"> | 
|---|
|  |  |  | <el-image | 
|---|
|  |  |  | style="width: 100px; height: 100px" | 
|---|
|  |  |  | :src="item.picturePath" | 
|---|
|  |  |  | :preview-src-list="[...item.picturePath]" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-image> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-else> | 
|---|
|  |  |  | <div class="topicxq"> | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-form-item label="答案"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 20vw" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | :rows="2" | 
|---|
|  |  |  | placeholder="此处放置患者回答" | 
|---|
|  |  |  | v-model="topicobj.reply" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input | 
|---|
|  |  |  | ></el-form-item> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-form-item label="分值"> | 
|---|
|  |  |  | <template #label> | 
|---|
|  |  |  | 分值 | 
|---|
|  |  |  | <el-tooltip | 
|---|
|  |  |  | class="item" | 
|---|
|  |  |  | effect="light" | 
|---|
|  |  |  | content="填空题分数值由负责人员在问卷手机后手动评价。" | 
|---|
|  |  |  | placement="top-start" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <i class="el-icon-warning-outline"></i> | 
|---|
|  |  |  | </el-tooltip> | 
|---|
|  |  |  | <!-- 在标签后插入红色星号 --> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | placeholder="请输入选项分值" | 
|---|
|  |  |  | v-model="topicobj.score" | 
|---|
|  |  |  | show-word-limit | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | </el-card> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-button type="success" @click="nextstep('ruleForm')" | 
|---|
|  |  |  | >下一步</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button type="primary" @click="laststep()">上一步</el-button> | 
|---|
|  |  |  | <!-- <el-button @click="resetForm('ruleForm')">重置</el-button> --> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-if="Editprogress == 4"> | 
|---|
|  |  |  | <el-form | 
|---|
|  |  |  | :model="ruleForm" | 
|---|
|  |  |  | :rules="rules" | 
|---|
|  |  |  | ref="ruleForm" | 
|---|
|  |  |  | label-width="100px" | 
|---|
|  |  |  | class="demo-ruleForm" | 
|---|
|  |  |  | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> | 
|---|
|  |  |  | <el-button @click="Departmenttreatment('ruleForm')" | 
|---|
|  |  |  | >保存问题数据</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-form-item label="活动名称" prop="name"> | 
|---|
|  |  |  | <el-input v-model="ruleForm.name"></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="活动区域" prop="region"> | 
|---|
|  |  |  | <el-select v-model="ruleForm.region" placeholder="请选择活动区域"> | 
|---|
|  |  |  | <el-option label="区域一" value="shanghai"></el-option> | 
|---|
|  |  |  | <el-option label="区域二" value="beijing"></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="活动时间" required> | 
|---|
|  |  |  | <el-col :span="11"> | 
|---|
|  |  |  | <el-form-item prop="date1"> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | type="date" | 
|---|
|  |  |  | placeholder="选择日期" | 
|---|
|  |  |  | v-model="ruleForm.date1" | 
|---|
|  |  |  | style="width: 100%" | 
|---|
|  |  |  | ></el-date-picker> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | <el-col class="line" :span="2">-</el-col> | 
|---|
|  |  |  | <el-col :span="11"> | 
|---|
|  |  |  | <el-form-item prop="date2"> | 
|---|
|  |  |  | <el-time-picker | 
|---|
|  |  |  | placeholder="选择时间" | 
|---|
|  |  |  | v-model="ruleForm.date2" | 
|---|
|  |  |  | style="width: 100%" | 
|---|
|  |  |  | ></el-time-picker> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="即时配送" prop="delivery"> | 
|---|
|  |  |  | <el-switch v-model="ruleForm.delivery"></el-switch> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="活动性质" prop="type"> | 
|---|
|  |  |  | <el-checkbox-group v-model="ruleForm.type"> | 
|---|
|  |  |  | <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox> | 
|---|
|  |  |  | <el-checkbox label="地推活动" name="type"></el-checkbox> | 
|---|
|  |  |  | <el-checkbox label="线下主题活动" name="type"></el-checkbox> | 
|---|
|  |  |  | <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox> | 
|---|
|  |  |  | </el-checkbox-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="特殊资源" prop="resource"> | 
|---|
|  |  |  | <el-radio-group v-model="ruleForm.resource"> | 
|---|
|  |  |  | <el-radio label="线上品牌商赞助"></el-radio> | 
|---|
|  |  |  | <el-radio label="线下场地免费"></el-radio> | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="活动形式" prop="desc"> | 
|---|
|  |  |  | <el-input type="textarea" v-model="ruleForm.desc"></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item> | 
|---|
|  |  |  | <el-button type="success" @click="submitForm('ruleForm')" | 
|---|
|  |  |  | >立即创建</el-button | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 问卷预览 --> | 
|---|
|  |  |  | <div v-if="Editprogress == 3"> | 
|---|
|  |  |  | <div class="leftvlue-jbxx">问卷预览</div> | 
|---|
|  |  |  | <el-divider></el-divider> | 
|---|
|  |  |  | <div class="preview-left"> | 
|---|
|  |  |  | <div v-for="item in ruleForm.svyTemplateLibScripts"> | 
|---|
|  |  |  | <!-- 单选 --> | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | class="scriptTopic-dev" | 
|---|
|  |  |  | :key="item.sort" | 
|---|
|  |  |  | v-if="item.scriptType == 1" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button type="primary" @click="laststep()">上一步</el-button> | 
|---|
|  |  |  | <el-button @click="resetForm('ruleForm')">重置</el-button> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | <div class="dev-text"> | 
|---|
|  |  |  | {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="dev-xx"> | 
|---|
|  |  |  | <el-radio-group v-model="item.remark"> | 
|---|
|  |  |  | <el-radio | 
|---|
|  |  |  | v-for="(items, index) in item.svyLibTemplateTargetoptions" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="index" | 
|---|
|  |  |  | >{{ items.optioncontent }}</el-radio | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 多选 --> | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | class="scriptTopic-dev" | 
|---|
|  |  |  | :key="item.sort" | 
|---|
|  |  |  | v-if="item.scriptType == 2" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div class="dev-text"> | 
|---|
|  |  |  | {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="dev-xx"> | 
|---|
|  |  |  | <el-checkbox-group v-model="qremark"> | 
|---|
|  |  |  | <el-checkbox | 
|---|
|  |  |  | v-for="(items, index) in item.svyLibTemplateTargetoptions" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="index" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | {{ items.optioncontent }} | 
|---|
|  |  |  | </el-checkbox> | 
|---|
|  |  |  | </el-checkbox-group> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 填空 --> | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | class="scriptTopic-dev" | 
|---|
|  |  |  | :key="item.sort" | 
|---|
|  |  |  | v-if="item.scriptType == 4" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div class="dev-text"> | 
|---|
|  |  |  | {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="dev-xx"> | 
|---|
|  |  |  | <el-input placeholder="请输入答案" v-model="radioas" clearable> | 
|---|
|  |  |  | </el-input> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> | 
|---|
|  |  |  | <el-button>导出为pdf</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="laststep()">上一步</el-button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 添加问题弹窗 --> | 
|---|
|  |  |  | <el-drawer | 
|---|
|  |  |  | title="问卷预览" | 
|---|
|  |  |  | title="添加问题" | 
|---|
|  |  |  | :visible.sync="drawer" | 
|---|
|  |  |  | custom-class="demo-drawer" | 
|---|
|  |  |  | width="50%" | 
|---|
|  |  |  | size="50%" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div class="preview-left"> | 
|---|
|  |  |  | <!-- 单选 --> | 
|---|
|  |  |  | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> | 
|---|
|  |  |  | <div class="dev-text"> | 
|---|
|  |  |  | {{ item.idd }}、[单选]  <span>{{ item.wssd }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="dev-xx"> | 
|---|
|  |  |  | <el-radio-group v-model="radio"> | 
|---|
|  |  |  | <el-radio | 
|---|
|  |  |  | v-for="(items, index) in item.sdadd" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="index" | 
|---|
|  |  |  | >{{ items }}</el-radio | 
|---|
|  |  |  | <div style="margin: 0 25px"> | 
|---|
|  |  |  | <el-tabs v-model="activeName"> | 
|---|
|  |  |  | <el-tab-pane label="题库选取" name="first"> | 
|---|
|  |  |  | <div class="preview-left"> | 
|---|
|  |  |  | <el-form | 
|---|
|  |  |  | :model="queryParams" | 
|---|
|  |  |  | ref="queryForm" | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | :inline="true" | 
|---|
|  |  |  | label-width="98px" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 多选 --> | 
|---|
|  |  |  | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> | 
|---|
|  |  |  | <div class="dev-text"> | 
|---|
|  |  |  | {{ item.idd }}、[多选]  <span>{{ item.wssd }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="dev-xx"> | 
|---|
|  |  |  | <el-checkbox-group v-model="radios"> | 
|---|
|  |  |  | <el-checkbox | 
|---|
|  |  |  | v-for="(items, index) in item.sdadd" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="index" | 
|---|
|  |  |  | <el-form-item label="问题标题" prop="scriptTopic"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="queryParams.scriptTopic" | 
|---|
|  |  |  | placeholder="请输入" | 
|---|
|  |  |  | clearable | 
|---|
|  |  |  | style="width: 200px" | 
|---|
|  |  |  | @keyup.enter.native="getaddtopiclist" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="问题类型" prop="scriptTopic"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="queryParams.scriptType" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择分类" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | class="topicobjaa" | 
|---|
|  |  |  | v-for="item in askvaluetype" | 
|---|
|  |  |  | :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="getaddtopiclist" | 
|---|
|  |  |  | >搜索</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="userList"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="标题" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="scriptTopic" | 
|---|
|  |  |  | prop="scriptTopic" | 
|---|
|  |  |  | width="100" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="问题内容" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="scriptContent" | 
|---|
|  |  |  | prop="scriptContent" | 
|---|
|  |  |  | width="200" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="选项内容" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="targetoptions" | 
|---|
|  |  |  | prop="targetoptions" | 
|---|
|  |  |  | 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="addtopic(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="getaddtopiclist" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-tab-pane> | 
|---|
|  |  |  | <el-tab-pane label="手动配置" name="second"> | 
|---|
|  |  |  | <div class="preview-left"> | 
|---|
|  |  |  | <el-form | 
|---|
|  |  |  | :inline="true" | 
|---|
|  |  |  | :model="indexform" | 
|---|
|  |  |  | class="demo-form-inline" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | {{ items }} | 
|---|
|  |  |  | </el-checkbox> | 
|---|
|  |  |  | </el-checkbox-group> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 填空 --> | 
|---|
|  |  |  | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> | 
|---|
|  |  |  | <div class="dev-text"> | 
|---|
|  |  |  | {{ item.idd }}、[填空]  <span>{{ item.wssd }}</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="dev-xx"> | 
|---|
|  |  |  | <el-input placeholder="请输入答案" v-model="radioas" clearable> | 
|---|
|  |  |  | </el-input> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="headline"> | 
|---|
|  |  |  | 问题设置详情 | 
|---|
|  |  |  | <span style="margin-left: 30px" | 
|---|
|  |  |  | ><el-button type="primary" @click="Submittopicobj" | 
|---|
|  |  |  | >保存新增</el-button | 
|---|
|  |  |  | ></span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <el-divider></el-divider> | 
|---|
|  |  |  | <div> | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-col :span="18" | 
|---|
|  |  |  | ><el-form-item label="问题内容"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 400px" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | v-model="indexform.scriptContent" | 
|---|
|  |  |  | placeholder="请输入问题内容" | 
|---|
|  |  |  | ></el-input> </el-form-item | 
|---|
|  |  |  | ></el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-col :span="12"> | 
|---|
|  |  |  | <el-form-item label="问题主题"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="indexform.scriptTopic" | 
|---|
|  |  |  | placeholder="请输入问题主题" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | <el-col :span="12"> | 
|---|
|  |  |  | <el-form-item label="问题得分"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="indexform.score" | 
|---|
|  |  |  | placeholder="请输入分数" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-col :span="12"> | 
|---|
|  |  |  | <el-form-item label="评价类型"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="indexform.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="12"> | 
|---|
|  |  |  | <el-form-item label="语言"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="indexform.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="12"> | 
|---|
|  |  |  | <el-form-item label="是否可用"> | 
|---|
|  |  |  | <el-radio-group v-model="indexform.isenable"> | 
|---|
|  |  |  | <el-radio | 
|---|
|  |  |  | v-for="(item, index) in usable" | 
|---|
|  |  |  | :label="item.value" | 
|---|
|  |  |  | >{{ item.label }}</el-radio | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | <el-col :span="12"> | 
|---|
|  |  |  | <el-form-item label="是否必填"> | 
|---|
|  |  |  | <el-radio-group v-model="indexform.ismandatory"> | 
|---|
|  |  |  | <el-radio | 
|---|
|  |  |  | v-for="(item, index) in required" | 
|---|
|  |  |  | :label="item.value" | 
|---|
|  |  |  | >{{ item.label }}</el-radio | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div> | 
|---|
|  |  |  | <el-form-item label="指标名称" prop="deptId"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 250px" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | :rows="2" | 
|---|
|  |  |  | v-model="indexform.targetname" | 
|---|
|  |  |  | placeholder="请输入指标名称" | 
|---|
|  |  |  | maxlength="20" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="指标描述" prop="deptId"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 250px" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | :rows="2" | 
|---|
|  |  |  | v-model="indexform.targetdesc" | 
|---|
|  |  |  | placeholder="请输入指标描述" | 
|---|
|  |  |  | maxlength="60" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-col :span="20"> | 
|---|
|  |  |  | <el-form-item label="结果类型"> | 
|---|
|  |  |  | <el-radio-group v-model="indexform.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-row> | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-col :span="20"> | 
|---|
|  |  |  | <el-form-item label="问题类型"> | 
|---|
|  |  |  | <el-radio-group v-model="indexform.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> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="topicxq" v-if="indexform.scriptType == 4"> | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-col :span="20"> | 
|---|
|  |  |  | <el-form-item label="收集内容"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 400px" | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | v-model="indexform.value" | 
|---|
|  |  |  | placeholder="问题收集内容" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <div v-else> | 
|---|
|  |  |  | <div class="headline"> | 
|---|
|  |  |  | <div class="basics"> | 
|---|
|  |  |  | 选项设置 | 
|---|
|  |  |  | <span style="margin-left: 30px" | 
|---|
|  |  |  | ><el-button type="primary" round @click="addoption" | 
|---|
|  |  |  | >+新增</el-button | 
|---|
|  |  |  | ></span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <el-divider></el-divider> | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | class="topicxq" | 
|---|
|  |  |  | v-for="item in indexform.svyLibTemplateTargetoptions" | 
|---|
|  |  |  | v-if="item.isoperation != 3" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-col :span="11" | 
|---|
|  |  |  | ><el-form-item label="选项名称"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 400px" | 
|---|
|  |  |  | 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="indexform.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="indexform.scoreType == 2" | 
|---|
|  |  |  | label="ABC等级" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-radio-group v-model="item.score"> | 
|---|
|  |  |  | <el-radio label="A">A</el-radio> | 
|---|
|  |  |  | <el-radio label="B">B</el-radio> | 
|---|
|  |  |  | <el-radio label="C">C</el-radio> | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item | 
|---|
|  |  |  | v-else-if="indexform.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="indexform.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" v-if="item.scriptType == 1"> | 
|---|
|  |  |  | <el-form-item label="选中提示"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 400px" | 
|---|
|  |  |  | 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]" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-image> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-tab-pane> | 
|---|
|  |  |  | </el-tabs> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-drawer> | 
|---|
|  |  |  | <!-- 添加适用疾病窗口 --> | 
|---|
|  |  |  | <Optional-Form | 
|---|
|  |  |  | ref="child" | 
|---|
|  |  |  | :dialogVisiblepatient="dialogVisiblepatient" | 
|---|
|  |  |  | :overallCase="illnesslist" | 
|---|
|  |  |  | @addoption="dialogVisiblepatient = false" | 
|---|
|  |  |  | @kkoption="dialogVisiblepatient = true" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | import { listtag } from "@/api/system/label"; | 
|---|
|  |  |  | import { listDept } from "@/api/system/dept"; | 
|---|
|  |  |  | import store from "@/store"; | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | getQtemplateclassify, | 
|---|
|  |  |  | depthospgetson, | 
|---|
|  |  |  | depthospgetsonlist, | 
|---|
|  |  |  | getQtemplateobj, | 
|---|
|  |  |  | compileQtemplate, | 
|---|
|  |  |  | Qtemplateinfo, | 
|---|
|  |  |  | compileissue, | 
|---|
|  |  |  | delQtemplateinfo, | 
|---|
|  |  |  | Followupinfo, | 
|---|
|  |  |  | issueinfo, | 
|---|
|  |  |  | getissuelist, | 
|---|
|  |  |  | depthospgetsondel, | 
|---|
|  |  |  | deltargetillness, | 
|---|
|  |  |  | addtargetillness, | 
|---|
|  |  |  | getillnesslist, | 
|---|
|  |  |  | illnesslistget, | 
|---|
|  |  |  | getillness, | 
|---|
|  |  |  | } from "@/api/AiCentre/index"; | 
|---|
|  |  |  | import OptionalForm from "@/components/OptionalForm"; //正则组件 | 
|---|
|  |  |  | import { getToken } from "@/utils/auth"; | 
|---|
|  |  |  | import { deptTreeSelect } from "@/api/system/user"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: "Questionnaireinfo", | 
|---|
|  |  |  |  | 
|---|
|  |  |  | components: { OptionalForm }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | headers: { | 
|---|
|  |  |  | Authorization: "Bearer " + getToken(), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", | 
|---|
|  |  |  | sidecolumnrabs: "left", //方向 | 
|---|
|  |  |  | Editprogress: 1, //编辑进度 | 
|---|
|  |  |  | currentVersion: "1.2.3", //当前版本 | 
|---|
|  |  |  | loading: false, // 遮罩层 | 
|---|
|  |  |  | drawer: false, //控制展开 | 
|---|
|  |  |  | radio: "false", //单选题选中 | 
|---|
|  |  |  | radios: [], //多选题选中 | 
|---|
|  |  |  | radioas: "", //填空题答案 | 
|---|
|  |  |  | activeName: "first", | 
|---|
|  |  |  | dynamicTags: [], | 
|---|
|  |  |  | inputVisible: false, | 
|---|
|  |  |  | dialogVisiblepatient: false, //适用疾病窗口 | 
|---|
|  |  |  | inputValue: "", | 
|---|
|  |  |  | topicobj: {}, | 
|---|
|  |  |  | // 总条数 | 
|---|
|  |  |  | total: 1, | 
|---|
|  |  |  | ruleForm: { | 
|---|
|  |  |  | name: "", | 
|---|
|  |  |  | region: "", | 
|---|
|  |  |  | date1: "", | 
|---|
|  |  |  | date2: "", | 
|---|
|  |  |  | delivery: false, | 
|---|
|  |  |  | type: [], | 
|---|
|  |  |  | resource: "", | 
|---|
|  |  |  | desc: "", | 
|---|
|  |  |  | templatevalue: "", | 
|---|
|  |  |  | data2: "", | 
|---|
|  |  |  | svyTemplateLibScripts: [], | 
|---|
|  |  |  | tempDetpRelevances: [], | 
|---|
|  |  |  | svyLibTemplateTagList: [], | 
|---|
|  |  |  | scoreType: "4", | 
|---|
|  |  |  | isenable: "0", | 
|---|
|  |  |  | longTemp: "0", | 
|---|
|  |  |  | sendDay: "5", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | rules: {}, | 
|---|
|  |  |  | rulesa: { | 
|---|
|  |  |  | name: [ | 
|---|
|  |  |  | { required: true, message: "请输入活动名称", trigger: "blur" }, | 
|---|
|  |  |  | { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | region: [ | 
|---|
|  |  |  | { required: true, message: "请选择活动区域", trigger: "change" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | date1: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | type: "date", | 
|---|
|  |  |  | required: true, | 
|---|
|  |  |  | message: "请选择日期", | 
|---|
|  |  |  | trigger: "change", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | date2: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | type: "date", | 
|---|
|  |  |  | required: true, | 
|---|
|  |  |  | message: "请选择时间", | 
|---|
|  |  |  | trigger: "change", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | type: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | type: "array", | 
|---|
|  |  |  | required: true, | 
|---|
|  |  |  | message: "请至少选择一个活动性质", | 
|---|
|  |  |  | trigger: "change", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | resource: [ | 
|---|
|  |  |  | { required: true, message: "请选择活动资源", trigger: "change" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | desc: [{ required: true, message: "请填写活动形式", trigger: "blur" }], | 
|---|
|  |  |  | indexform: { | 
|---|
|  |  |  | svyLibTemplateTargetoptions: [], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | options: [ | 
|---|
|  |  |  | // 表单校验 | 
|---|
|  |  |  | rules: { | 
|---|
|  |  |  | categoryid: [ | 
|---|
|  |  |  | { required: true, message: "问卷分类不能为空", trigger: "blur" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | scoreType: [ | 
|---|
|  |  |  | { required: true, message: "评价类型不能为空", trigger: "blur" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | svyname: [ | 
|---|
|  |  |  | { required: true, message: "问卷名称不能为空", trigger: "blur" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | isenable: [ | 
|---|
|  |  |  | { 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" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | conclusion: [ | 
|---|
|  |  |  | { required: true, message: "问卷结束语不能为空", trigger: "blur" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | rulesa: {}, | 
|---|
|  |  |  | optionsclass: [], //分类列表 | 
|---|
|  |  |  | optionlist: [ | 
|---|
|  |  |  | { value: "scriptTopic", table: "scriptTopic" }, | 
|---|
|  |  |  | { value: "scriptTopic", table: "scriptTopic" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  |  | 
|---|
|  |  |  | appraiselist: [], | 
|---|
|  |  |  |  | 
|---|
|  |  |  | fileList: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "选项1", | 
|---|
|  |  |  | label: "黄金糕", | 
|---|
|  |  |  | name: "food.jpeg", | 
|---|
|  |  |  | url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "选项2", | 
|---|
|  |  |  | label: "双皮奶", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "选项3", | 
|---|
|  |  |  | label: "蚵仔煎", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "选项4", | 
|---|
|  |  |  | label: "龙须面", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "选项5", | 
|---|
|  |  |  | label: "北京烤鸭", | 
|---|
|  |  |  | name: "food2.jpeg", | 
|---|
|  |  |  | url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | options: [ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | variablelist: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "zhinan", | 
|---|
|  |  |  | label: "指南", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "shejiyuanze", | 
|---|
|  |  |  | label: "设计原则", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "yizhi", | 
|---|
|  |  |  | label: "一致", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "fankui", | 
|---|
|  |  |  | label: "反馈", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "xiaolv", | 
|---|
|  |  |  | label: "效率", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "kekong", | 
|---|
|  |  |  | label: "可控", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "daohang", | 
|---|
|  |  |  | label: "导航", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "cexiangdaohang", | 
|---|
|  |  |  | label: "侧向导航", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "dingbudaohang", | 
|---|
|  |  |  | label: "顶部导航", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "zujian", | 
|---|
|  |  |  | label: "组件", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "basic", | 
|---|
|  |  |  | label: "Basic", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "layout", | 
|---|
|  |  |  | label: "Layout 布局", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "color", | 
|---|
|  |  |  | label: "Color 色彩", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "typography", | 
|---|
|  |  |  | label: "Typography 字体", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "icon", | 
|---|
|  |  |  | label: "Icon 图标", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "button", | 
|---|
|  |  |  | label: "Button 按钮", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "form", | 
|---|
|  |  |  | label: "Form", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "radio", | 
|---|
|  |  |  | label: "Radio 单选框", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "checkbox", | 
|---|
|  |  |  | label: "Checkbox 多选框", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "input", | 
|---|
|  |  |  | label: "Input 输入框", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "input-number", | 
|---|
|  |  |  | label: "InputNumber 计数器", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "select", | 
|---|
|  |  |  | label: "Select 选择器", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "cascader", | 
|---|
|  |  |  | label: "Cascader 级联选择器", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "switch", | 
|---|
|  |  |  | label: "Switch 开关", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "slider", | 
|---|
|  |  |  | label: "Slider 滑块", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "time-picker", | 
|---|
|  |  |  | label: "TimePicker 时间选择器", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "date-picker", | 
|---|
|  |  |  | label: "DatePicker 日期选择器", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "datetime-picker", | 
|---|
|  |  |  | label: "DateTimePicker 日期时间选择器", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "upload", | 
|---|
|  |  |  | label: "Upload 上传", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "rate", | 
|---|
|  |  |  | label: "Rate 评分", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "form", | 
|---|
|  |  |  | label: "Form 表单", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "data", | 
|---|
|  |  |  | label: "Data", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "table", | 
|---|
|  |  |  | label: "Table 表格", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "tag", | 
|---|
|  |  |  | label: "Tag 标签", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "progress", | 
|---|
|  |  |  | label: "Progress 进度条", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "tree", | 
|---|
|  |  |  | label: "Tree 树形控件", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "pagination", | 
|---|
|  |  |  | label: "Pagination 分页", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "badge", | 
|---|
|  |  |  | label: "Badge 标记", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "notice", | 
|---|
|  |  |  | label: "Notice", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "alert", | 
|---|
|  |  |  | label: "Alert 警告", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "loading", | 
|---|
|  |  |  | label: "Loading 加载", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "message", | 
|---|
|  |  |  | label: "Message 消息提示", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "message-box", | 
|---|
|  |  |  | label: "MessageBox 弹框", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "notification", | 
|---|
|  |  |  | label: "Notification 通知", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "navigation", | 
|---|
|  |  |  | label: "Navigation", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "menu", | 
|---|
|  |  |  | label: "NavMenu 导航菜单", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "tabs", | 
|---|
|  |  |  | label: "Tabs 标签页", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "breadcrumb", | 
|---|
|  |  |  | label: "Breadcrumb 面包屑", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "dropdown", | 
|---|
|  |  |  | label: "Dropdown 下拉菜单", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "steps", | 
|---|
|  |  |  | label: "Steps 步骤条", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "others", | 
|---|
|  |  |  | label: "Others", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "dialog", | 
|---|
|  |  |  | label: "Dialog 对话框", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "tooltip", | 
|---|
|  |  |  | label: "Tooltip 文字提示", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "popover", | 
|---|
|  |  |  | label: "Popover 弹出框", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "card", | 
|---|
|  |  |  | label: "Card 卡片", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "carousel", | 
|---|
|  |  |  | label: "Carousel 走马灯", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "collapse", | 
|---|
|  |  |  | label: "Collapse 折叠面板", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "ziyuan", | 
|---|
|  |  |  | label: "资源", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "axure", | 
|---|
|  |  |  | label: "Axure Components", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "sketch", | 
|---|
|  |  |  | label: "Sketch Templates", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "jiaohu", | 
|---|
|  |  |  | label: "组件交互文档", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | variable: "paitent", | 
|---|
|  |  |  | value: "表示患者的标识", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  |  | 
|---|
|  |  |  | valssu: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | idd: 1, | 
|---|
|  |  |  | 
|---|
|  |  |  | sdadd: ["sss", "ssccss", "ssaas", "ss"], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | addvalue: "添加问题", | 
|---|
|  |  |  | // 问题表格数据 | 
|---|
|  |  |  | userList: [], | 
|---|
|  |  |  | deptList: [], | 
|---|
|  |  |  | props: { multiple: true, value: "deptId", label: "deptName" }, | 
|---|
|  |  |  | themelist: [], | 
|---|
|  |  |  | languagelist: [], | 
|---|
|  |  |  | courtyardlist: [], | 
|---|
|  |  |  | askvaluetype: [], | 
|---|
|  |  |  | precedencetype: [], | 
|---|
|  |  |  | inputValueillness: "", | 
|---|
|  |  |  | inputVisible: false, | 
|---|
|  |  |  | inputVisibleillness: false, | 
|---|
|  |  |  | illnessVisible: false, //指标疾病弹框 | 
|---|
|  |  |  | Operateit: true, | 
|---|
|  |  |  | deptOptions: [], | 
|---|
|  |  |  | flatArray: [], | 
|---|
|  |  |  | optionsillness: [], | 
|---|
|  |  |  | delScriptVOList: [], | 
|---|
|  |  |  | illnesslistapi: [], | 
|---|
|  |  |  | illnesslist: [], | 
|---|
|  |  |  | tempDetpRelevanceslist: [], //科室数据 | 
|---|
|  |  |  | tempDetpRelevanceslistform: [], //科室数据 | 
|---|
|  |  |  | tempbelongWards: [], //病区数据 | 
|---|
|  |  |  | tempbelongWardsform: [], //病区数据 | 
|---|
|  |  |  | optionstag: [], | 
|---|
|  |  |  | valuetype: [], | 
|---|
|  |  |  | qremark: [], | 
|---|
|  |  |  | hosplist: [], | 
|---|
|  |  |  | usable: [ | 
|---|
|  |  |  | { value: "0", label: "可用" }, | 
|---|
|  |  |  | { value: "1", label: "停用" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | longtype: [ | 
|---|
|  |  |  | { value: "0", label: "普通任务" }, | 
|---|
|  |  |  | { value: "1", label: "长期任务" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | required: [ | 
|---|
|  |  |  | { value: "1", label: "必填" }, | 
|---|
|  |  |  | { value: "2", label: "不必填" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | mode: [], //方式 | 
|---|
|  |  |  | // 查询参数 | 
|---|
|  |  |  | queryParams: { | 
|---|
|  |  |  | pageNum: 1, | 
|---|
|  |  |  | pageSize: 10, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | belongWards: [], | 
|---|
|  |  |  | belongDepts: [], | 
|---|
|  |  |  | queryParamsdept: { | 
|---|
|  |  |  | tempid: "", | 
|---|
|  |  |  | type: 1, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | activated() { | 
|---|
|  |  |  | if (this.id != this.$route.query.id) { | 
|---|
|  |  |  | this.getissueinfo(); | 
|---|
|  |  |  | this.gettabList(); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts = | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts.filter( | 
|---|
|  |  |  | (item) => item.isoperation != 3 | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | this.ruleForm.svyLibTemplateTagList = | 
|---|
|  |  |  | this.ruleForm.svyLibTemplateTagList.filter( | 
|---|
|  |  |  | (item) => item.isoperation != 3 | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if (this.ruleForm.suitway) | 
|---|
|  |  |  | this.ruleForm.suitway = this.ruleForm.suitway.split(","); | 
|---|
|  |  |  | this.delScriptVOList = []; | 
|---|
|  |  |  | this.tempDetpRelevanceslistform = []; | 
|---|
|  |  |  | this.tempbelongWardsform = []; | 
|---|
|  |  |  | this.$forceUpdate(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | created() { | 
|---|
|  |  |  | this.getissueinfo(); | 
|---|
|  |  |  | this.gettabList(); | 
|---|
|  |  |  | this.getDeptTree(); | 
|---|
|  |  |  | this.mode = store.getters.Askmode; | 
|---|
|  |  |  | this.languagelist = store.getters.languagelist; | 
|---|
|  |  |  | this.usable = store.getters.usable; | 
|---|
|  |  |  | this.required = store.getters.required; | 
|---|
|  |  |  | this.valuetype = store.getters.valuetype; | 
|---|
|  |  |  | this.courtyardlist = store.getters.courtyardlist; | 
|---|
|  |  |  | this.askvaluetype = store.getters.askvaluetype; | 
|---|
|  |  |  | this.appraiselist = store.getters.appraiselist; | 
|---|
|  |  |  | this.belongWards = store.getters.belongWards; | 
|---|
|  |  |  | this.belongDepts = store.getters.belongDepts; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | created() {}, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // this.test(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | computed: { | 
|---|
|  |  |  | displayedTags() { | 
|---|
|  |  |  | // 返回前10个tag | 
|---|
|  |  |  | return this.illnesslist.slice(0, 10); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | hasMore() { | 
|---|
|  |  |  | // 判断是否有更多的tag | 
|---|
|  |  |  | return this.illnesslist.length > 10; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | remaining() { | 
|---|
|  |  |  | // 计算剩余的tag数量 | 
|---|
|  |  |  | return this.illnesslist.length - 10; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | submitForm(formName) { | 
|---|
|  |  |  | if (this.Editprogress <= 3) { | 
|---|
|  |  |  | return this.Editprogress++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.rules = this.rulesa; | 
|---|
|  |  |  | //   提交 | 
|---|
|  |  |  | this.$refs[formName].validate((valid) => { | 
|---|
|  |  |  | if (valid) { | 
|---|
|  |  |  | alert("submit!"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | console.log("error submit!!"); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | // 公共方法--------------- | 
|---|
|  |  |  | 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.svyLibTemplateCategoryList) { | 
|---|
|  |  |  | result = result.concat( | 
|---|
|  |  |  | this.flattenArray(item.svyLibTemplateCategoryList) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | delete item.svyLibTemplateCategoryList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 预览模版 | 
|---|
|  |  |  | PreviewTemplate() { | 
|---|
|  |  |  | this.drawer = true; | 
|---|
|  |  |  | // ----------------------------- | 
|---|
|  |  |  | // 获取数据 | 
|---|
|  |  |  | getissueinfo() { | 
|---|
|  |  |  | this.id = this.$route.query.id; | 
|---|
|  |  |  | this.queryParamsdept.tempid = this.id; | 
|---|
|  |  |  | this.ruleForm = { | 
|---|
|  |  |  | svyTemplateLibScripts: [], | 
|---|
|  |  |  | tempDetpRelevances: [], | 
|---|
|  |  |  | svyLibTemplateTagList: [], | 
|---|
|  |  |  | scoreType: "4", | 
|---|
|  |  |  | isenable: "0", | 
|---|
|  |  |  | longTemp: "0", | 
|---|
|  |  |  | sendDay: "5", | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | this.topicobj = {}; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (this.id) { | 
|---|
|  |  |  | getQtemplateobj({ svyid: this.id }).then((res) => { | 
|---|
|  |  |  | this.ruleForm = res.rows[0]; | 
|---|
|  |  |  | this.dynamicTags = this.ruleForm.svyLibTemplateTagList.map( | 
|---|
|  |  |  | this.processElement | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | console.log(this.dynamicTags, "this.dynamicTags"); | 
|---|
|  |  |  | if (this.ruleForm.suitway) | 
|---|
|  |  |  | this.ruleForm.suitway = this.ruleForm.suitway.split(","); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | getillness({ outid: this.id, type: 5 }).then((res) => { | 
|---|
|  |  |  | this.illnesslist = res.rows; | 
|---|
|  |  |  | this.illnesslist.forEach((item) => { | 
|---|
|  |  |  | item.icdname = item.icd10name; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.ruleForm.isenable = "1"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 分类 | 
|---|
|  |  |  | getQtemplateclassify({}).then((res) => { | 
|---|
|  |  |  | this.optionsclass = res.rows; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.tempDetpRelevanceslist = []; | 
|---|
|  |  |  | this.tempbelongWards = []; | 
|---|
|  |  |  | if (this.queryParamsdept.tempid) { | 
|---|
|  |  |  | depthospgetsonlist(this.queryParamsdept).then((res) => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | let arr = res.rows; | 
|---|
|  |  |  | arr.forEach((item) => { | 
|---|
|  |  |  | if (item.deptType == 1) { | 
|---|
|  |  |  | this.deptlist.push(item); | 
|---|
|  |  |  | this.tempDetpRelevanceslist.push(item.deptCode); | 
|---|
|  |  |  | } else if (item.deptType == 2) { | 
|---|
|  |  |  | this.hosplist.push(item); | 
|---|
|  |  |  | this.tempbelongWards.push(item.deptCode); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 获取科室树 | 
|---|
|  |  |  | getDeptTree() { | 
|---|
|  |  |  | // 科室列表 | 
|---|
|  |  |  | deptTreeSelect().then((response) => { | 
|---|
|  |  |  | this.deptOptions = response.data; | 
|---|
|  |  |  | this.flatArray = this.flattenArray(response.data); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | flattenArray(multiArray) { | 
|---|
|  |  |  | let result = []; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 递归函数,用于将多级数组转换为一维数组,只包含最底层的元素 | 
|---|
|  |  |  | function flatten(element) { | 
|---|
|  |  |  | // 如果当前元素有子元素,继续递归 | 
|---|
|  |  |  | if (element.children && element.children.length > 0) { | 
|---|
|  |  |  | element.children.forEach((child) => flatten(child)); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // 克隆元素以避免修改原始数据 | 
|---|
|  |  |  | let item = JSON.parse(JSON.stringify(element)); | 
|---|
|  |  |  | result.push(item); // 将最底层的元素添加到结果数组 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 从顶层元素开始递归 | 
|---|
|  |  |  | multiArray.forEach((element) => flatten(element)); | 
|---|
|  |  |  | return result; // 返回只包含最底层元素的一维数组 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | submitForm(formName) { | 
|---|
|  |  |  | this.$modal.loading("正在修正保存数据,请稍候..."); | 
|---|
|  |  |  | if (Array.isArray(this.ruleForm.suitway)) { | 
|---|
|  |  |  | this.ruleForm.suitway = this.ruleForm.suitway.join(","); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!this.ruleForm.categoryid) { | 
|---|
|  |  |  | this.ruleForm.categoryid = -1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 题目保存处理 | 
|---|
|  |  |  | //   提交 | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts.forEach((res) => { | 
|---|
|  |  |  | if (!res.isoperation) { | 
|---|
|  |  |  | res.isoperation = 2; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | res.ivrLibaScriptTargetoptionList = res.svyLibTemplateTargetoptions.map( | 
|---|
|  |  |  | (item) => { | 
|---|
|  |  |  | if (!item.isoperation) { | 
|---|
|  |  |  | item.isoperation = 2; | 
|---|
|  |  |  | item.templateID = this.ruleForm.id; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return item; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.delScriptVOList.forEach((item) => { | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts.push(item); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if (this.id) { | 
|---|
|  |  |  | this.ruleForm.isoperation = 2; | 
|---|
|  |  |  | this.ruleForm.tempDetpRelevances = null; | 
|---|
|  |  |  | compileQtemplate(this.ruleForm).then((res) => { | 
|---|
|  |  |  | this.$modal.msgSuccess("修改成功"); | 
|---|
|  |  |  | this.confirmillness(); | 
|---|
|  |  |  | this.putbelongDepts(); | 
|---|
|  |  |  | this.$modal.closeLoading(); | 
|---|
|  |  |  | // this.$router.go(-1); | 
|---|
|  |  |  | window.location.reload(); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.ruleForm.isoperation = 1; | 
|---|
|  |  |  | this.ruleForm.version = this.ruleForm.version | 
|---|
|  |  |  | ? this.ruleForm.version | 
|---|
|  |  |  | : "1.0"; | 
|---|
|  |  |  | this.ruleForm.tempDetpRelevances = null; | 
|---|
|  |  |  | compileQtemplate(this.ruleForm).then((res) => { | 
|---|
|  |  |  | this.$modal.msgSuccess("新增成功"); | 
|---|
|  |  |  | this.confirmillness(res.data); | 
|---|
|  |  |  | this.putbelongDepts(res.data); | 
|---|
|  |  |  | this.$modal.closeLoading(); | 
|---|
|  |  |  | this.$router.go(-1); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 科室/院区处理 | 
|---|
|  |  |  | Departmenttreatment() { | 
|---|
|  |  |  | this.tempDetpRelevanceslist.forEach((item) => { | 
|---|
|  |  |  | console.log(item); | 
|---|
|  |  |  | let result = this.deptlist.some((obj) => obj.deptCode == item); | 
|---|
|  |  |  | console.log(this.result, "result"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!result) { | 
|---|
|  |  |  | this.tempDetpRelevanceslistform.push({ | 
|---|
|  |  |  | deptType: 1, | 
|---|
|  |  |  | longTemp: this.ruleForm.longTemp, | 
|---|
|  |  |  | deptCode: item, | 
|---|
|  |  |  | tempid: this.id, | 
|---|
|  |  |  | type: 1, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.tempbelongWards.forEach((item) => { | 
|---|
|  |  |  | let result = this.hosplist.some((obj) => obj.deptCode == item); | 
|---|
|  |  |  | if (!result) { | 
|---|
|  |  |  | this.tempbelongWardsform.push({ | 
|---|
|  |  |  | deptType: 2, | 
|---|
|  |  |  | longTemp: this.ruleForm.longTemp, | 
|---|
|  |  |  | deptCode: item, | 
|---|
|  |  |  | tempid: this.id, | 
|---|
|  |  |  | type: 1, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // return | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | this.submitForm(); | 
|---|
|  |  |  | }, 500); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 科室删除触发 | 
|---|
|  |  |  | removetag(row) { | 
|---|
|  |  |  | let result = this.deptlist | 
|---|
|  |  |  | .filter((item) => item.deptCode == row) | 
|---|
|  |  |  | .map((item) => item.id); | 
|---|
|  |  |  | if (result.length) { | 
|---|
|  |  |  | depthospgetsondel(result).then((res) => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | this.$modal.msgSuccess("删除科室成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 删除病区触发 | 
|---|
|  |  |  | removehpsp(row) { | 
|---|
|  |  |  | let result = this.hosplist | 
|---|
|  |  |  | .filter((item) => item.deptCode == row) | 
|---|
|  |  |  | .map((item) => item.id); | 
|---|
|  |  |  | if (result.length) { | 
|---|
|  |  |  | depthospgetsondel(result).then((res) => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | this.$modal.msgSuccess("删除病区成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 下一步 | 
|---|
|  |  |  | nextstep() { | 
|---|
|  |  |  | if (this.Editprogress <= 2) { | 
|---|
|  |  |  | return this.Editprogress++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 上一步 | 
|---|
|  |  |  | laststep() { | 
|---|
|  |  |  | this.Editprogress--; | 
|---|
|  |  |  | this.Editprogress = this.Editprogress - 1; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | resetForm(formName) { | 
|---|
|  |  |  | this.$refs[formName].resetFields(); | 
|---|
|  |  |  | // 关闭 | 
|---|
|  |  |  | closeFm() { | 
|---|
|  |  |  | this.$confirm("退出不会保留页面内容更改, 是否继续?", "提示", { | 
|---|
|  |  |  | confirmButtonText: "确定", | 
|---|
|  |  |  | cancelButtonText: "取消", | 
|---|
|  |  |  | type: "warning", | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .then(() => { | 
|---|
|  |  |  | this.$router.go(-1); | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .catch(() => { | 
|---|
|  |  |  | this.$message({ | 
|---|
|  |  |  | type: "info", | 
|---|
|  |  |  | message: "已取消", | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 获取问题列表 | 
|---|
|  |  |  | getaddtopiclist() { | 
|---|
|  |  |  | this.drawer = true; | 
|---|
|  |  |  | this.queryParams.scoreType = this.ruleForm.scoreType; | 
|---|
|  |  |  | getissuelist(this.queryParams).then((res) => { | 
|---|
|  |  |  | this.loading = false; | 
|---|
|  |  |  | this.userList = res.rows; | 
|---|
|  |  |  | this.total = res.total; | 
|---|
|  |  |  | console.log(this.userList); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 新增问题 | 
|---|
|  |  |  | addtopic(row) { | 
|---|
|  |  |  | row.isoperation = 1; | 
|---|
|  |  |  | row.svyLibScriptOptions.forEach((item) => { | 
|---|
|  |  |  | item.isoperation = 1; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | row.svyLibTemplateTargetoptions = row.svyLibScriptOptions; | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts.push(row); | 
|---|
|  |  |  | this.sortFn(); | 
|---|
|  |  |  | this.$modal.msgSuccess("新增成功"); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleDelete(row) { | 
|---|
|  |  |  | let index = this.ruleForm.svyTemplateLibScripts.indexOf(row); | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts.splice(index, 1); | 
|---|
|  |  |  | row.isoperation = 3; | 
|---|
|  |  |  | this.delScriptVOList.push(row); | 
|---|
|  |  |  | this.sortFn(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleUpdate(row) { | 
|---|
|  |  |  | this.topicobj = row; | 
|---|
|  |  |  | this.radioas = ""; | 
|---|
|  |  |  | // getissuelist({ svyid: row.svyid }).then((res) => { | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | syioption(row) { | 
|---|
|  |  |  | const index = this.getIndexInArray( | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts, | 
|---|
|  |  |  | row | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | const item = this.ruleForm.svyTemplateLibScripts.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 | 
|---|
|  |  |  | this.sortFn(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | xiayioption(row) { | 
|---|
|  |  |  | const index = this.getIndexInArray( | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts, | 
|---|
|  |  |  | row | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | const item = this.ruleForm.svyTemplateLibScripts.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts.splice(index + 1, 0, item); // 将item插入到索引位置的前一位 | 
|---|
|  |  |  | this.sortFn(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | sortFn() { | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts.forEach((item, index) => { | 
|---|
|  |  |  | item.sort = Number(index) + 1; | 
|---|
|  |  |  | if (item.sort == this.ruleForm.svyTemplateLibScripts.length) { | 
|---|
|  |  |  | item.nextScriptno = 0; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | item.nextScriptno = item.sort + 1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (item.svyLibTemplateTargetoptions) { | 
|---|
|  |  |  | item.svyLibTemplateTargetoptions.forEach((items) => { | 
|---|
|  |  |  | items.nextQuestion = Number(item.sort) + 1; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | console.log(this.ruleForm.svyTemplateLibScripts); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 修改问题信息 | 
|---|
|  |  |  | Submittopicobj() { | 
|---|
|  |  |  | this.$modal | 
|---|
|  |  |  | .confirm( | 
|---|
|  |  |  | '是否确认新增名称为"' + this.indexform.scriptTopic + '"的问题数据?' | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | .then(() => { | 
|---|
|  |  |  | this.indexform.isoperation = 1; | 
|---|
|  |  |  | this.indexform.svyLibTemplateTargetoptions.forEach((item) => { | 
|---|
|  |  |  | item.isoperation = 1; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts.push(this.indexform); | 
|---|
|  |  |  | this.indexform = { svyTemplateLibScripts: [] }; | 
|---|
|  |  |  | this.drawer = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.sortFn(); | 
|---|
|  |  |  | this.$modal.msgSuccess("问题新增成功,保存模板失效"); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 新增变量 | 
|---|
|  |  |  | addvariable() { | 
|---|
|  |  |  | this.variablelist.push({ | 
|---|
|  |  |  | variable: "", | 
|---|
|  |  |  | value: "", | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 删除变量 | 
|---|
|  |  |  | delvariable(item) { | 
|---|
|  |  |  | const index = this.variablelist.indexOf(item); | 
|---|
|  |  |  | if (index !== -1) { | 
|---|
|  |  |  | this.variablelist.splice(index, 1); // 从索引位置删除一个元素 | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | console.log("未找到该对象"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 标签----------------- | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | const lindex = this.dynamicTags.indexOf(tag); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); | 
|---|
|  |  |  | this.ruleForm.svyLibTemplateTagList[lindex].delFlag = 1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 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.ruleForm.svyLibTemplateTagList.push(tagvalue); | 
|---|
|  |  |  | // this.dynamicTags.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; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 保存疾病 | 
|---|
|  |  |  | confirmillness(guid) { | 
|---|
|  |  |  | this.illnesslist.forEach((item, index) => { | 
|---|
|  |  |  | if (guid) { | 
|---|
|  |  |  | item.outid = guid; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | console.log(this.ruleForm); | 
|---|
|  |  |  | item.outid = this.ruleForm.svyid; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | item.icd10name = item.icdname; | 
|---|
|  |  |  | item.icd10code = item.icdcode; | 
|---|
|  |  |  | item.type = 5; | 
|---|
|  |  |  | if (!item.id) { | 
|---|
|  |  |  | addtargetillness(item).then((res) => {}); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.illnessVisible = false; | 
|---|
|  |  |  | this.$modal.msgSuccess("编辑成功"); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 保存科室/病区 | 
|---|
|  |  |  | putbelongDepts(id) { | 
|---|
|  |  |  | this.tempDetpRelevanceslistform.forEach((item) => { | 
|---|
|  |  |  | if (!item.tempid) item.tempid = id; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.tempbelongWardsform.forEach((item) => { | 
|---|
|  |  |  | if (!item.tempid) item.tempid = id; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if (this.tempDetpRelevanceslistform.length > 0) { | 
|---|
|  |  |  | depthospgetson(this.tempDetpRelevanceslistform).then((res) => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | this.$modal.msgSuccess("科室新增成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.tempbelongWardsform.length > 0) { | 
|---|
|  |  |  | depthospgetson(this.tempbelongWardsform).then((res) => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | this.$modal.msgSuccess("院区新增成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | resetQuery() { | 
|---|
|  |  |  | this.queryParams = { pageNum: 1, pageSize: 10 }; | 
|---|
|  |  |  | this.getaddtopiclist(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // -------------------------- | 
|---|
|  |  |  | // 问卷分数限制算法 | 
|---|
|  |  |  | // 混合路线 | 
|---|
|  |  |  | 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() { | 
|---|
|  |  |  | console.log(this.ruleForm.svyTemplateLibScripts); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const arraysa = [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: 1, | 
|---|
|  |  |  | Topicjump: "2", | 
|---|
|  |  |  | branchFlag: "0", | 
|---|
|  |  |  | arr: [ | 
|---|
|  |  |  | { name: "不错", skip: 2 }, | 
|---|
|  |  |  | { name: "一般", skip: 2 }, | 
|---|
|  |  |  | { name: "还不错", skip: 2 }, | 
|---|
|  |  |  | { name: "很棒", skip: 3 }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: 2, | 
|---|
|  |  |  | Topicjump: "4", | 
|---|
|  |  |  | branchFlag: "1", | 
|---|
|  |  |  | arr: [ | 
|---|
|  |  |  | { name: "优秀", skip: 4 }, | 
|---|
|  |  |  | { name: "良好", skip: 3 }, | 
|---|
|  |  |  | { name: "一般", skip: 3 }, | 
|---|
|  |  |  | { name: "较差", skip: 3 }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: 3, | 
|---|
|  |  |  | Topicjump: "4", | 
|---|
|  |  |  | branchFlag: "1", | 
|---|
|  |  |  | arr: [ | 
|---|
|  |  |  | { name: "是的", skip: 4 }, | 
|---|
|  |  |  | { name: "不清楚", skip: 5 }, | 
|---|
|  |  |  | { name: "还可", skip: 4 }, | 
|---|
|  |  |  | { name: "一般", skip: 4 }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: 4, | 
|---|
|  |  |  | Topicjump: "5", | 
|---|
|  |  |  | branchFlag: "0", | 
|---|
|  |  |  | bac: null, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: 5, | 
|---|
|  |  |  | Topicjump: "0", | 
|---|
|  |  |  | branchFlag: "0", | 
|---|
|  |  |  | arr: [ | 
|---|
|  |  |  | { name: "真不错", skip: 0 }, | 
|---|
|  |  |  | { name: "还可以", skip: 0 }, | 
|---|
|  |  |  | { name: "一般般", skip: 0 }, | 
|---|
|  |  |  | { name: "不清楚", skip: 0 }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ]; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const csnewMixArray = this.csgetExecutionOrders(arraysa); | 
|---|
|  |  |  | console.log(csnewMixArray, "测试全部路线"); | 
|---|
|  |  |  | const newMixArray = this.getExecutionOrders( | 
|---|
|  |  |  | this.ruleForm.svyTemplateLibScripts | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | console.log(newMixArray, "全部路线"); | 
|---|
|  |  |  | this.sumArray(newMixArray); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 遍历方法 | 
|---|
|  |  |  | csgetExecutionOrders(arrays) { | 
|---|
|  |  |  | const allPaths = []; | 
|---|
|  |  |  | const findPath = (currentId, path) => { | 
|---|
|  |  |  | const current = arrays.find((item) => item.id.toString() === currentId); | 
|---|
|  |  |  | if (!current) return; | 
|---|
|  |  |  | path.push(current); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (current.branchFlag === "1") { | 
|---|
|  |  |  | current.arr.forEach((option) => { | 
|---|
|  |  |  | findPath(option.skip.toString(), path.slice()); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | const nextId = parseInt(current.Topicjump); | 
|---|
|  |  |  | if (nextId !== 0) { | 
|---|
|  |  |  | findPath(nextId.toString(), path.slice()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | allPaths.push(path.slice()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | findPath("1", []); | 
|---|
|  |  |  | return allPaths; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 遍历方法 | 
|---|
|  |  |  | getExecutionOrders(arrays) { | 
|---|
|  |  |  | const allPaths = []; | 
|---|
|  |  |  | const findPath = (currentId, path) => { | 
|---|
|  |  |  | const current = arrays.find( | 
|---|
|  |  |  | (item) => item.sort.toString() === currentId | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if (!current) return; | 
|---|
|  |  |  | path.push(current); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (current.branchFlag == "1") { | 
|---|
|  |  |  | current.svyLibTemplateTargetoptions.forEach((option) => { | 
|---|
|  |  |  | findPath(option.nextQuestion.toString(), path.slice()); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | const nextId = parseInt(current.nextScriptno); | 
|---|
|  |  |  | if (nextId !== 0) { | 
|---|
|  |  |  | findPath(nextId.toString(), path.slice()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | allPaths.push(path.slice()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | findPath("1", []); | 
|---|
|  |  |  | return allPaths; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 数组求和 | 
|---|
|  |  |  | sumArray(arr) { | 
|---|
|  |  |  | // const arrsum = arr; | 
|---|
|  |  |  | // arrsum.forEach((item) => { | 
|---|
|  |  |  | //   // 判断问题和模板层级 | 
|---|
|  |  |  | //   console.log(item, "一条链路"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //   const totalScore = item.reduce((accumulator, current) => { | 
|---|
|  |  |  | //     return accumulator + Number(current.score); | 
|---|
|  |  |  | //   }, 0); | 
|---|
|  |  |  | //   console.log(totalScore); | 
|---|
|  |  |  | //   console.log(this.ruleForm.scriptScore); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //   if (totalScore == this.ruleForm.scriptScore) { | 
|---|
|  |  |  | //     this.ClaimNofn(arr); | 
|---|
|  |  |  | //     this.$modal.msgSuccess("分数核验成功"); | 
|---|
|  |  |  | //   } | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const allGreaterThanTen = arr.every((array) => { | 
|---|
|  |  |  | const totalScore = array.reduce((accumulator, current) => { | 
|---|
|  |  |  | return accumulator + Number(current.score); | 
|---|
|  |  |  | }, 0); | 
|---|
|  |  |  | console.log(totalScore); | 
|---|
|  |  |  | console.log(this.ruleForm.scriptScore); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return totalScore == this.ruleForm.scriptScore; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if (allGreaterThanTen) { | 
|---|
|  |  |  | this.$modal.msgSuccess("分值校验成功"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$modal.msgError("问题分值累加和模板分值不符"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 遍历是否重复是否都用上 | 
|---|
|  |  |  | ClaimNofn(arr) { | 
|---|
|  |  |  | arr.forEach((item) => { | 
|---|
|  |  |  | const Aarr = item; | 
|---|
|  |  |  | const Barr = this.ruleForm.svyTemplateLibScripts; | 
|---|
|  |  |  | const notInB = A.filter( | 
|---|
|  |  |  | (itemA) => !B.some((itemB) => itemB.id === itemA.id) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (notInB.length) { | 
|---|
|  |  |  | this.$modal.msgError("问题未全部使用"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$modal.msgSuccess("问题全部使用"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | arr.forEach((item) => { | 
|---|
|  |  |  | const idCount = arr.reduce((acc, item) => { | 
|---|
|  |  |  | acc[item.id] = (acc[item.id] || 0) + 1; | 
|---|
|  |  |  | return acc; | 
|---|
|  |  |  | }, {}); | 
|---|
|  |  |  | const whether = item.values(idCount).some((count) => count > 1); // 如果有任何 id 的计数大于 1 就返回 true | 
|---|
|  |  |  | if (!whether) this.$modal.msgError("配置项有问题重复"); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 问题和选项间的分值判断 | 
|---|
|  |  |  | Scorejudgment() { | 
|---|
|  |  |  | let scorearr = this.topicobj.svyLibScriptOptions; | 
|---|
|  |  |  | let isValid = scorearr.every((score, index) => { | 
|---|
|  |  |  | if (this.topicobj.scriptType == 1) { | 
|---|
|  |  |  | if (score.score) { | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // --------------------------------------------------------- | 
|---|
|  |  |  | // 新问题新增 | 
|---|
|  |  |  | addoption() { | 
|---|
|  |  |  | if (!this.indexform.svyLibTemplateTargetoptions) { | 
|---|
|  |  |  | this.indexform.svyLibTemplateTargetoptions = []; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.indexform.svyLibTemplateTargetoptions.push({ | 
|---|
|  |  |  | score: "", | 
|---|
|  |  |  | isoperation: 1, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | console.log(this.indexform.svyLibTemplateTargetoptions); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 选项文件上传 | 
|---|
|  |  |  | handleChange(item, response, file, fileList) { | 
|---|
|  |  |  | console.log(response); | 
|---|
|  |  |  | if (response.code == 200) { | 
|---|
|  |  |  | console.log(item); | 
|---|
|  |  |  | let index = this.indexform.svyLibTemplateTargetoptions.findIndex( | 
|---|
|  |  |  | (obj) => obj.optioncontent == item.optioncontent | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | console.log(index); | 
|---|
|  |  |  | this.indexform.svyLibTemplateTargetoptions[index].picturePath = | 
|---|
|  |  |  | response.url; | 
|---|
|  |  |  | console.log(this.indexform.svyLibTemplateTargetoptions[index]); | 
|---|
|  |  |  | this.$forceUpdate(); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$message.error("图片插入失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | branchFlagfn(row) { | 
|---|
|  |  |  | console.log(row); | 
|---|
|  |  |  | if (this.topicobj.branchFlag == 1 && this.topicobj.nextScriptno != 0) { | 
|---|
|  |  |  | this.topicobj.nextScriptno = | 
|---|
|  |  |  | this.topicobj.svyLibTemplateTargetoptions[0].nextQuestion; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style lang="scss" scoped> | 
|---|
|  |  |  | .Questionnairemanagement { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | // display: flex; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .sidecolumn { | 
|---|
|  |  |  | width: 300px; | 
|---|
|  |  |  | min-height: 100vh; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | //   display: flex; | 
|---|
|  |  |  | //   margin-top: 20px; | 
|---|
|  |  |  | margin: 20px; | 
|---|
|  |  |  | margin-bottom: 0; | 
|---|
|  |  |  | padding: 30px; | 
|---|
|  |  |  | margin: 10px 20px 0 20px; | 
|---|
|  |  |  | padding: 20px; | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .leftvlue { | 
|---|
|  |  |  | //   display: flex; | 
|---|
|  |  |  | //   flex: 1; | 
|---|
|  |  |  | width: 80%; | 
|---|
|  |  |  | margin-top: 20px; | 
|---|
|  |  |  | //   margin: 20px; | 
|---|
|  |  |  | // //   display: flex; | 
|---|
|  |  |  | // //   flex: 1; | 
|---|
|  |  |  | // width: 80%; | 
|---|
|  |  |  | // margin-top: 20px; | 
|---|
|  |  |  | margin: 20px; | 
|---|
|  |  |  | padding: 30px; | 
|---|
|  |  |  | padding-top: 5px; | 
|---|
|  |  |  | margin-top: 10px; | 
|---|
|  |  |  | background: #ffff; | 
|---|
|  |  |  | border: 1px solid #dcdfe6; | 
|---|
|  |  |  | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
|---|
|  |  |  | 
|---|
|  |  |  | font-size: 20px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .leftvlue-jbxx { | 
|---|
|  |  |  | margin-bottom: 50px; | 
|---|
|  |  |  | font-size: 20px; | 
|---|
|  |  |  | span { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: 80px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | display: flex; /* 使用 Flexbox 布局 */ | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | font-size: 24px; | 
|---|
|  |  |  | border-left: 5px solid #41a1be; | 
|---|
|  |  |  | padding-left: 5px; | 
|---|
|  |  |  | margin: 15px 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .demo-cascader { | 
|---|
|  |  |  | margin-right: 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); | 
|---|
|  |  |  | .topic-dev { | 
|---|
|  |  |  | .scriptTopic-dev { | 
|---|
|  |  |  | margin-bottom: 25px; | 
|---|
|  |  |  | font-size: 20px !important; | 
|---|
|  |  |  | .dev-text { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .headline { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | font-size: 20px; | 
|---|
|  |  |  | border-left: 3px solid #41a1be; | 
|---|
|  |  |  | padding-left: 5px; | 
|---|
|  |  |  | margin: 15px 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .xinz-infs { | 
|---|
|  |  |  | font-size: 18px; | 
|---|
|  |  |  | line-height: 48px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .el-tag + .el-tag { | 
|---|
|  |  |  | margin-left: 10px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .addtopic { | 
|---|
|  |  |  | margin-top: 30px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .presentation { | 
|---|
|  |  |  | margin: 20px 0; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | .presentation-left { | 
|---|
|  |  |  | width: 45%; | 
|---|
|  |  |  | // height: 500px; | 
|---|
|  |  |  | .button-textxg { | 
|---|
|  |  |  | color: #024df0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .button-textsc { | 
|---|
|  |  |  | color: #f52727; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .spresentation-left { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | // height: 500px; | 
|---|
|  |  |  | .button-textxg { | 
|---|
|  |  |  | color: #024df0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .button-textsc { | 
|---|
|  |  |  | color: #f52727; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .presentation-right { | 
|---|
|  |  |  | width: 55%; | 
|---|
|  |  |  | max-height: 688px; | 
|---|
|  |  |  | padding: 0 20px; | 
|---|
|  |  |  | font-size: 18px; | 
|---|
|  |  |  | overflow: auto; | 
|---|
|  |  |  | .headline { | 
|---|
|  |  |  | font-size: 20px; | 
|---|
|  |  |  | border-left: 3px solid #41a1be; | 
|---|
|  |  |  | padding-left: 5px; | 
|---|
|  |  |  | margin: 15px 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .topicxq { | 
|---|
|  |  |  | background-color: #e2f5fc; | 
|---|
|  |  |  | border-radius: 4px; | 
|---|
|  |  |  | margin-top: 10px; | 
|---|
|  |  |  | padding-left: 10px; | 
|---|
|  |  |  | padding-top: 15px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .topicxq { | 
|---|
|  |  |  | background-color: #e2f5fc; | 
|---|
|  |  |  | border-radius: 4px; | 
|---|
|  |  |  | margin-top: 15px; | 
|---|
|  |  |  | margin-left: 10%; | 
|---|
|  |  |  | padding-left: 20px; | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .custom-width { | 
|---|
|  |  |  | width: 100px; /* 设置宽度样式 */ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .el-select { | 
|---|
|  |  |  | width: 280px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .el-cascader { | 
|---|
|  |  |  | width: 40%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ::v-deep .addtopic-input { | 
|---|
|  |  |  | input { | 
|---|
|  |  |  | background: #02a7f0; | 
|---|
|  |  |  | color: #edf1f7; | 
|---|
|  |  |  | width: 150px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ::v-deep.el-step.is-vertical .el-step__title { | 
|---|
|  |  |  | font-size: 25px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ::v-deep.el-input--medium { | 
|---|
|  |  |  | font-size: 24px !important; | 
|---|
|  |  |  | font-size: 18px !important; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ::v-deep.ruleFormaa.el-select { | 
|---|
|  |  |  | display: inline-block; | 
|---|
|  |  |  | 
|---|
|  |  |  | width: 22px; | 
|---|
|  |  |  | height: 22px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // ::v-deep.topic-dev.el-radio__label { | 
|---|
|  |  |  | // ::v-deep.scriptTopic-dev.el-radio__label { | 
|---|
|  |  |  | //   font-size: 24px; | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | ::v-deep.el-radio-group { | 
|---|
|  |  |  | 
|---|
|  |  |  | font-size: 24px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // ::v-deep.el-form-item--medium .el-form-item__content { | 
|---|
|  |  |  | //   line-height: 36px; | 
|---|
|  |  |  | //   display: flex; | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | </style> | 
|---|