From adf7c9495ac348644079592059ea4c4d95b84b99 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期三, 21 八月 2024 14:05:38 +0800 Subject: [PATCH] 测试完成 --- src/views/knowledge/questionnaire/compilequer/index.vue | 629 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 520 insertions(+), 109 deletions(-) diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue index 8100549..97fef32 100644 --- a/src/views/knowledge/questionnaire/compilequer/index.vue +++ b/src/views/knowledge/questionnaire/compilequer/index.vue @@ -413,38 +413,57 @@ </el-form-item> </el-col> </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="棰樼洰鍒嗘暟"> + <el-input + v-model="topicobj.scriptTopic" + 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="topicobj.ismandatory" - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in required" - :key="item.value" - :label="item.label" - :value="item.value" + <el-radio-group v-model="topicobj.ismandatory"> + <el-radio + v-for="(item, index) in required" + :label="item.value" + >{{ item.label }}</el-radio > - </el-option> - </el-select> </el-form-item - ></el-col> + </el-radio-group> + </el-form-item></el-col + > <el-col :span="12" ><el-form-item label="鏄惁鍙敤"> - <el-select - v-model="topicobj.isavailable" - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in usable" - :key="item.value" - :label="item.label" - :value="item.value" + <el-radio-group v-model="topicobj.isavailable"> + <el-radio + v-for="(item, index) in usable" + :label="item.value" + >{{ item.label }}</el-radio > - </el-option> - </el-select> </el-form-item - ></el-col> + </el-radio-group> + </el-form-item></el-col + > </el-row> <el-row> <el-col :span="12"> @@ -465,7 +484,9 @@ <el-radio :label="0">鍚�</el-radio> </el-radio-group> </el-form-item> - <div v-if="topicobj.scriptType != 3"> + <div + v-if="topicobj.scriptType == 1 || topicobj.scriptType == 2" + > <div class="headline">閫夐」璁剧疆</div> <div class="topicxq" @@ -565,7 +586,7 @@ <el-input style="width: 20vw" type="textarea" - autosize + :rows="2" placeholder="姝ゅ鏀剧疆鎮h�呭洖绛�" v-model="topicobj.reply" > @@ -573,6 +594,18 @@ ></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="璇疯緭鍏ラ�夐」鍒嗗��" @@ -673,83 +706,397 @@ custom-class="demo-drawer" size="50%" > - <div class="preview-left"> - <el-form - :model="queryParams" - ref="queryForm" - size="small" - :inline="true" - label-width="98px" - > - <el-form-item label="闂鏍囬" prop="scriptTopic"> - <el-input - v-model="queryParams.scriptTopic" - placeholder="璇疯緭鍏�" - clearable - style="width: 200px" - @keyup.enter.native="getaddtopiclist" - /> - </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 + <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" > - </template> - </el-table-column> - </el-table> - <pagination - v-show="total > 0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getaddtopiclist" - /> + <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" + > + <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="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.isAvailable"> + <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> + <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> + </div> + <div> + <el-form-item label="鎸囨爣鍚嶇О" prop="deptId"> + <el-input + v-model="indexform.targetname" + placeholder="璇疯緭鍏ユ寚鏍囧悕绉�" + maxlength="20" + /> + </el-form-item> + <el-form-item label="鎸囨爣鎻忚堪" prop="deptId"> + <el-input + 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 + 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"> + <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> <!-- 娣诲姞閫傜敤鐤剧梾绐楀彛 --> @@ -807,6 +1154,7 @@ radio: "false", //鍗曢�夐閫変腑 radios: [], //澶氶�夐閫変腑 radioas: "", //濉┖棰樼瓟妗� + activeName: "first", dynamicTags: [], inputVisible: false, dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛 @@ -818,6 +1166,9 @@ svyTemplateLibScripts: [], tempDetpRelevances: [], svyLibTemplateTagList: [], + }, + indexform: { + svyLibTemplateTargetoptions: [], }, rules: {}, rulesa: {}, @@ -998,8 +1349,7 @@ submitForm(formName) { this.$modal.loading("姝e湪涓婁紶鏁版嵁锛岃绋嶅��..."); this.ruleForm.suitway = this.ruleForm.suitway.join(","); - if (condition) { - } + if (this.id) { this.ruleForm.isoperation = 2; compileQtemplate(this.ruleForm).then((res) => { @@ -1014,9 +1364,7 @@ compileQtemplate(this.ruleForm).then((res) => { this.$modal.msgSuccess("鏂板鎴愬姛"); this.confirmillness(res.data); - this.$modal.closeLoading(); - this.$router.go(-1); }); } @@ -1046,7 +1394,6 @@ this.ruleForm.tempDetpRelevances.forEach((item) => { const condition = result.some((obj) => obj === item.deptId); if (!condition) { - console.log(condition); const index = this.ruleForm.tempDetpRelevances.indexOf(item); this.ruleForm.tempDetpRelevances[index].delFlag = 1; } @@ -1158,7 +1505,24 @@ }, // 淇敼棰樼洰淇℃伅 - Submittopicobj() {}, + 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({ @@ -1391,6 +1755,34 @@ console.log(arraysGreaterThan10, "绛涢�夐敊璇矾绾垮ぇ浜�13鍒�"); }, + // 鏂伴棶棰樻柊澧� + 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("鍥剧墖鎻掑叆澶辫触"); + } + }, }, }; </script> @@ -1454,6 +1846,14 @@ margin-bottom: 10px; } } +} +.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; @@ -1534,11 +1934,22 @@ } } } +.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: 40%; + width: 280px; } .el-cascader { -- Gitblit v1.9.3