From 09a1bd58e04706d7e1d6e1543b990c08a4b8f97c Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 16 一月 2025 13:57:03 +0800 Subject: [PATCH] 测试完成 --- src/views/knowledge/education/compilequer/index.vue | 982 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 681 insertions(+), 301 deletions(-) diff --git a/src/views/knowledge/education/compilequer/index.vue b/src/views/knowledge/education/compilequer/index.vue index c78fba9..be12c5b 100644 --- a/src/views/knowledge/education/compilequer/index.vue +++ b/src/views/knowledge/education/compilequer/index.vue @@ -2,20 +2,28 @@ <div class="Questionnairemanagement"> <!-- 宸︿晶鏍� --> <div class="sidecolumn"> - <div style="height: 200px"> - <el-steps direction="vertical" :active="Editprogress"> - <el-step title="鍩虹淇℃伅璁剧疆"></el-step> - <el-step title="瀹f暀鍐呭"></el-step> - </el-steps> - </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" + >瀹f暀鍐呭</span + > + </template> + </el-step> + </el-steps> </div> <!-- 鍙充晶鏁版嵁 --> <div class="leftvlue"> <!-- 鍩烘湰淇℃伅 --> <div v-if="Editprogress == 1"> - <div class="leftvlue-jbxx"> - 鍩烘湰淇℃伅<span>褰撳墠鐗堟湰:{{ currentVersion }}</span> - </div> + <div class="leftvlue-jbxx">鍩烘湰淇℃伅</div> <el-form :model="ruleForm" :rules="rules" @@ -25,50 +33,80 @@ > <el-form-item label="瀹f暀鍒嗙被" prop="region"> <el-select - v-model="ruleForm.classify" + v-model="ruleForm.assortid" size="medium" - multiple filterable placeholder="璇烽�夋嫨鍒嗙被" > - <el-option - class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + <el-option-group + v-for="group in sortlist" + :key="group.id" + :label="group.assortname" > - </el-option> + <el-option + v-for="item in group.heLibraryAssortList" + :key="item.id" + :label="item.assortname" + :value="item.id" + > + </el-option> + </el-option-group> </el-select> </el-form-item> - <el-form-item label="瀹f暀鏍囬" prop="name"> + <el-row> + <el-col :span="12"> </el-col> + <el-col :span="12"> </el-col> + </el-row> + <el-form-item label="瀹f暀鏍囬" prop="preachname"> <div style="width: 30%"> - <el-input v-model="ruleForm.name"></el-input> + <el-input + v-model="ruleForm.preachname" + placeholder="璇疯緭鍏ユ爣棰�" + ></el-input> + </div> + </el-form-item> + <el-form-item label="瀹f暀鎻忚堪" prop="preachcontent"> + <div style="width: 60%"> + <el-input + type="textarea" + :rows="2" + v-model="ruleForm.preachcontent" + placeholder="璇疯緭鍏ユ弿杩�" + ></el-input> </div> </el-form-item> <el-form-item label="閫氱煡鍙橀噺" prop="name"> - <el-row v-for="item in variablelist"> - <el-col :span="4"> - <el-input v-model="item.variable"></el-input> - </el-col> - <el-col :span="8" :offset="1"> - <el-input v-model="item.value"></el-input> - </el-col> - <el-col :span="4" :offset="1"> - <el-button - type="success" - icon="el-icon-plus" - circle - @click="addvariable(item)" - ></el-button> - <el-button - type="danger" - icon="el-icon-delete" - circle - @click="delvariable(item)" - ></el-button> - </el-col> - </el-row> + <div style="margin-bottom: 5px" v-for="item in variablelist"> + <el-row> + <el-col :span="5"> + <el-input + v-model="item.variatename" + placeholder="璇疯緭鍏ュ彉閲忓悕" + ></el-input> + </el-col> + <el-col :span="8" :offset="1"> + <el-input + v-model="item.variate" + placeholder="璇疯緭鍏ュ彉閲忓唴瀹�" + ></el-input> + </el-col> + <el-col :span="8" :offset="1"> + <el-button + type="success" + icon="el-icon-plus" + circle + @click="addvariable(item)" + ></el-button> + <el-button + v-if="!item.default" + type="danger" + icon="el-icon-delete" + circle + @click="delvariable(item)" + ></el-button> + </el-col> + </el-row> + </div> </el-form-item> <el-form-item label="鏂囦欢" prop="sickness"> @@ -89,27 +127,33 @@ <el-form-item label="鏍囩" prop="desc"> <div class="xinz-inf"> <el-tag - :key="tag" + :key="tag.tagname" type="success" v-for="tag in dynamicTags" closable :disable-transitions="false" - @close="handleClose(tag)" + @close="handleClosetag(tag)" > - {{ 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 options" - :key="item.label" - :label="item.label" - :value="item.label" + v-for="item in optionstag" + :key="item.tagid" + :label="item.tagname" + :value="item.tagname" > </el-option> </el-select> @@ -125,31 +169,26 @@ <el-row :gutter="20"> <el-col :span="6"> <el-form-item label="鐗堟湰鍙�" prop="name"> - <el-input v-model="currentVersion"></el-input> </el-form-item + <el-input + v-model="ruleForm.version" + placeholder="榛樿1.0.1" + ></el-input> </el-form-item ></el-col> <el-col :span="9"> <el-form-item label="鍙敤鐘舵��" prop="region"> - <el-select - v-model="ruleForm.classify" - size="medium" - multiple - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + <el-radio-group v-model="ruleForm.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-form-item label="瀹f暀鏂瑰紡" prop="region"> <el-select - v-model="ruleForm.way" + v-model="ruleForm.suitway" size="medium" multiple filterable @@ -157,17 +196,22 @@ > <el-option class="ruleFormaa" - v-for="item in xjxsoptions" - :key="item.value" + v-for="item in mode" + :key="item.label" :label="item.label" - :value="item.value" + :value="item.label" > </el-option> </el-select> </el-form-item> <el-form-item label="閫傜敤鐤剧梾" prop="region"> + <el-button type="warning" @click="$refs.child.handleAddpatient()" + >娣诲姞鐤剧梾</el-button + > + </el-form-item> + <el-form-item label="閫傜敤闄㈠尯" prop="region"> <el-select - v-model="ruleForm.illness" + v-model="ruleForm.campus" size="medium" multiple filterable @@ -175,24 +219,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - </el-form-item> - <el-form-item label="浣跨敤闄㈠尯" prop="region"> - <el-select - v-model="ruleForm.courtyard" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="ruleFormaa" - v-for="item in options" + v-for="item in courtyardlist" :key="item.value" :label="item.label" :value="item.value" @@ -201,52 +228,36 @@ </el-select> </el-form-item> <el-form-item label="閫傜敤绉戝" prop="region"> - <el-select - v-model="ruleForm.administrative" - size="medium" - multiple - filterable - placeholder="璇烽�夋嫨鍒嗙被" + <el-cascader + v-model="tempDetpRelevanceslist" + :options="deptList" + :props="props" + :show-all-levels="false" + clearable > - <el-option - class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> + <template slot-scope="{ node, data }"> + <span>{{ data.deptName }}</span> + <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> + </template> + </el-cascader> </el-form-item> <el-form-item> <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 type="success" @click="Departmenttreatment('ruleForm')" + >淇濆瓨</el-button + > + <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button> </el-form-item> </el-form> </div> <!-- 瀹f暀鍐呭 --> <div v-if="Editprogress == 2"> <el-row :gutter="20"> - <el-col :span="4"><div class="leftvlue-jbxx">瀹f暀鍐呭</div></el-col> - <el-col :span="12"> - <div> - <el-button @click="laststep('ruleForm')">涓婁竴姝�</el-button> - <el-button type="success" @click="submitForm('ruleForm')" - >淇濆瓨</el-button - > - <el-button type="warning" @click="submitForm('ruleForm')" - >鍙﹀瓨鏂扮増鏈�</el-button - > - <el-button type="info" @click="closeFm('ruleForm')" - >鍏抽棴</el-button - > - </div></el-col - > + <el-col :span="4"> + <div class="leftvlue-jbxx">瀹f暀鍐呭</div> + </el-col> </el-row> <div> @@ -257,20 +268,55 @@ label-width="100px" class="demo-ruleForm" > - <el-form-item label="璧勬枡褰㈠紡" prop="region"> - <el-select v-model="ruleForm.shape" placeholder="璇烽�夋嫨鍐呭褰㈠紡"> - <el-option - v-for="item in xjxsoptions" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - </el-form-item> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="璧勬枡褰㈠紡" prop="region"> + <el-select + v-model="ruleForm.shape" + placeholder="璇烽�夋嫨鍐呭褰㈠紡" + > + <el-option + v-for="item in xjxsoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <div> + <el-button @click="laststep('ruleForm')">涓婁竴姝�</el-button> + <el-button + type="success" + @click="Departmenttreatment('ruleForm')" + >淇濆瓨</el-button + > + <el-button + type="warning" + @click="Departmenttreatment('ruleForm')" + >鍙﹀瓨鏂扮増鏈�</el-button + > + <el-button type="info" @click="closeFm('ruleForm')" + >鍏抽棴</el-button + > + </div> + </el-col> + </el-row> </el-form> </div> <div> + <el-upload + class="upload-demo" + :action="uploadImgUrlword" + :on-success="uploadEditorSuccessword" + :on-error="uploadEditorErrorword" + :before-upload="beforeEditorUploadword" + :headers="headers" + > + <el-button size="small" type="primary">word鏂囦欢涓婁紶</el-button> + </el-upload> <div id="quillEditorQiniu"> <!-- 鍩轰簬elementUi鐨勪笂浼犵粍浠� el-upload begin--> <el-upload @@ -290,19 +336,52 @@ v-model="content" ref="customQuillEditor" :options="editorOption" + @blur="onEditorBlur" + @focus="onEditorFocus" + @change="onEditorChange" > </quill-editor> </div> </div> </div> </div> + <!-- 娣诲姞閫傜敤鐤剧梾绐楀彛 --> + <Optional-Form + ref="child" + :dialogVisiblepatient="dialogVisiblepatient" + :overallCase="illnesslist" + @addoption="dialogVisiblepatient = false" + @kkoption="dialogVisiblepatient = true" + /> </div> </template> <script> import { quillEditor } from "vue-quill-editor"; +import axios from "axios"; + +import { + getheLibraryAssort, + delheLibraryAssort, + addheLibraryAssort, + addtargetillness, + getlibrarylist, + dellibraryinfo, + deltargetillness, + compilelibrary, + addrichText, + getlibraryinfo, + getillnesslist, + illnesslistget, + getillness, +} from "@/api/AiCentre/index"; +import OptionalForm from "@/components/OptionalForm"; //姝e垯缁勪欢 + +import { listDept } from "@/api/system/dept"; // import * as Quill from "quill"; import Quill from "quill"; +import { listtag } from "@/api/system/label"; +import store from "@/store"; // 杩欓噷寮曞叆淇敼杩囩殑video妯″潡骞舵敞鍐� import Video from "./video"; @@ -331,12 +410,15 @@ ]; export default { + name: "aEducationinfo", + components: { OptionalForm }, data() { return { headers: { Authorization: "Bearer " + getToken(), }, - uploadImgUrl: "/v1/admin/common/upload", + uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", + uploadImgUrlword: process.env.VUE_APP_BASE_API + "/common/uploadShow", uploadUrlPath: "娌℃湁鏂囦欢涓婁紶", quillUpdateImg: false, fileList: [ @@ -349,9 +431,12 @@ url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", }, ], - content: "", //鏈�缁堜繚瀛樼殑鍐呭 - dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"], + content: `<p>娴嬭瘯</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://218.108.11.22:8093/profile-api/upload/vadio/钀ュ吇娉垫搷浣滆鑼�.mp4"></video><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://218.108.11.22:8093/profile-api/upload/vadio/娉ㄥ皠鍣ㄦ帹娉�.mp4"></video><p>321</p>"`, //鏈�缁堜繚瀛樼殑鍐呭 + fileName: "", //鏂囦欢鍚� + dynamicTags: [], inputVisible: false, + illnessVisible: false, + dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛 inputValue: "", // 瀵屾枃鏈� editorOption: { @@ -401,87 +486,48 @@ radioas: "", //濉┖棰樼瓟妗� // 鎬绘潯鏁� total: 1, + hetype: "", + id: null, ruleForm: { - name: "", - shape: "", - classify: "", - region: "", - date1: "", - date2: "", - delivery: false, - type: [], - resource: "", - desc: "", - templatevalue: "", - data2: "", + campus: [], + heLibraryTagList: [], + tempDetpRelevances: [], + version: "1.0.1", }, 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" }], - }, - options: [ - { - value: "閫夐」1", - label: "鐤剧梾瀹f暀", - }, - { - value: "閫夐」2", - label: "鍏ラ櫌瀹f暀", - }, - { - value: "閫夐」3", - label: "鎵嬫湳瀹f暀", - }, - { - value: "閫夐」4", - label: "鎶ょ悊瀹f暀", - }, - ], + rulesa: {}, + mode: [], + editableTabs: [], + sortlist: [], + usable: [], + courtyardlist: [], + precedencetype: [], + optionsillness: [], + illnesslistapi: [], + illnesslist: [], + options: [], + optionstag: [], + deptList: [], + tempDetpRelevanceslist: [], + props: { multiple: true, value: "deptId", label: "deptName" }, + // 鍐呯綉鐨勯儴鍒嗭紙鏂囦欢锛� + oldPattern: "http://192.168.191.181:8095/profile/upload", + // 鍐呯綉鐨勯儴鍒嗭紙鏂囦欢锛� + oldPatternhtml: "/http:\/\/192\.168\.191\.181:8095\/profile\/upload\//g", + // 澶栫綉閮ㄥ垎锛堟枃浠讹級 + newPattern: "http://218.108.11.22:8093/profile-api/upload", + xjxsoptions: [ { - value: "閫夐」1", + value: "1", label: "鍥炬枃", }, { - value: "閫夐」2", + value: "2", label: "瑙嗛", }, { - value: "閫夐」3", + value: "3", label: "闊抽", }, ], @@ -493,66 +539,214 @@ }, ], addvalue: "娣诲姞棰樼洰", - // 棰樼洰琛ㄦ牸鏁版嵁 - userList: [ - { - userid: "1", - userName: "涓�鍙峰鏁�", - }, - { - userid: "2", - userName: "浜屽彿瀹f暀", - }, - { - userid: "3", - userName: "涓夊彿瀹f暀", - }, - { - userid: "4", - userName: "鍥涘彿瀹f暀", - }, - ], + variablelist: [ - { - variable: "paitent", - value: "琛ㄧず鎮h�呯殑鏍囪瘑", - }, + { variatename: "濮撳悕", variate: "${name}", default: 1 }, + { variatename: "鐢佃瘽", variate: "${phone}", default: 1 }, + { variatename: "鐥呮儏", variate: "${illness}", default: 1 }, ], // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, pageSize: 10, - userName: undefined, - phonenumber: undefined, - status: undefined, - deptId: undefined, - IDnumber: undefined, }, }; }, + activated() { + if (this.id != this.$route.query.id) { + this.gettabList(); + this.getList(); + this.illnessUpdate(); + } + }, - created() {}, + created() { + this.gettabList(); + this.getList(); + this.illnessUpdate(); + this.mode = store.getters.mode; + this.editableTabs = store.getters.editableTabs; + this.usable = store.getters.usable; + this.precedencetype = store.getters.precedencetype; + this.courtyardlist = store.getters.courtyardlist; + }, watch: { content(newVal, oldVal) { //this.$emit('input', newVal); - console.log(newVal); - console.log(oldVal); + console.log(newVal, "A"); + console.log(oldVal, "B"); }, }, methods: { - // 瀹屾垚 - submitForm(formName) { - this.rules = this.rulesa; - // 鎻愪氦 - this.$refs[formName].validate((valid) => { - if (valid) { - alert("submit!"); - } else { - console.log("error submit!!"); - return false; + processElement(element) { + return { ...element, isoperation: null }; + }, + // 鑾峰彇椤甸潰鏁版嵁 + getList() { + this.loading = true; + this.id = this.$route.query.id; + this.hetype = this.$route.query.hetype; + if (this.id) { + getlibraryinfo({ id: this.id }).then((res) => { + this.ruleForm = res.data[0]; + if (this.ruleForm.campus) + this.ruleForm.campus = this.ruleForm.campus.split(","); + this.dynamicTags = res.data[0].heLibraryTagList.map( + this.processElement + ); + if (this.ruleForm.htmlRichText) { + this.Getmissioncontent(this.ruleForm.htmlRichText); + } + if (this.ruleForm.deptNames) { + this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); + } + if (this.ruleForm.suitway) { + this.ruleForm.suitway = this.ruleForm.suitway.split(","); + } + this.variablelist = this.ruleForm.otherdata + ? JSON.parse(this.ruleForm.otherdata) + : this.variablelist; + }); + } + // 瀹f暀鍒嗙被 + getheLibraryAssort({}).then((res) => { + this.sortlist = res.rows; + console.log(this.sortlist); + }); + // 閮ㄩ棬 + listDept(this.queryParams).then((response) => { + this.deptList = this.handleTree(response.data, "deptId"); + }); + + // ------------------ + + // let html = + // '<p>娴嬭瘯</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://192.168.191.181:8095/profile/upload/vadio/钀ュ吇娉典粙缁�.mp4"></video><p>娴嬭瘯111</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://192.168.191.181:8095/profile/upload/vadio/娉ㄥ皠鍣ㄦ帹娉�.mp4"></video><p><br></p>'; + // // html = html.parserdom(this.oldPattern, this.newPattern); + // html = this.parserdom(html); + // console.log(html, "html"); + + // this.loading = false; + }, + // parser + parserdom(html) { + // 鍒涘缓涓�涓柊鐨凞OM瑙f瀽鍣� + var parser = new DOMParser(); + // 灏嗗瓧绗︿覆瑙f瀽涓烘枃妗e璞� + var doc = parser.parseFromString(html, "text/html"); + + // 瀹氫箟瑕佹浛鎹㈢殑鏂版棫URL + var oldUrlBase = "http://192.168.191.181:8095/profile/upload"; + var newUrlBase = "http://218.108.11.22:8093/profile-api/upload"; + + // 鑾峰彇鎵�鏈夌殑video鍏冪礌 + var videos = doc.querySelectorAll("video"); + + // 閬嶅巻鎵�鏈夌殑video鍏冪礌骞舵浛鎹rc灞炴�� + videos.forEach(function (video) { + var src = video.getAttribute("src"); + if (src.startsWith(oldUrlBase)) { + video.setAttribute("src", src.replace(oldUrlBase, newUrlBase)); } }); + + // 灏嗕慨鏀瑰悗鐨勬枃妗h浆鎹㈠洖瀛楃涓� + var newContent = doc.body.innerHTML; + return newContent; + }, + submitForm(formName) { + let tgs = []; + this.dynamicTags.forEach((item) => { + tgs.push(item.tagname); + }); + if (this.ruleForm.campus) { + this.ruleForm.campus = this.ruleForm.campus.join(","); + } + this.ruleForm.labelInfo = tgs.length != 0 ? tgs.join(", ") : ""; + this.ruleForm.otherdata = JSON.stringify(this.variablelist); + this.ruleForm.hetype = 1; + console.log(22); + this.ruleForm.suitway = + this.ruleForm.suitway.length != 0 + ? this.ruleForm.suitway.join(",") + : ""; + + addrichText({ + content: this.parserdom(this.content), + fileName: this.generateRandomHtmlFilename(), + }).then((res) => { + this.ruleForm.richText = res.msg; + console.log(this.ruleForm.richText, "this.ruleForm.richText"); + // 澶勭悊鍐呯綉html + addrichText({ + content: this.content, + fileName: this.generateRandomHtmlFilename(), + }).then((resf) => { + this.ruleForm.htmlRichText = resf.msg.replace( + this.newPattern, + this.oldPattern + ); + console.log(this.ruleForm.htmlRichText, "this.ruleForm.htmlRichText"); + + if (this.id) { + this.ruleForm.isoperation = 2; + compilelibrary(this.ruleForm).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("缂栬緫鎴愬姛"); + this.confirmillness(); + this.$router.go(-1); + } + }); + } else { + this.ruleForm.isoperation = 1; + compilelibrary(this.ruleForm).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.confirmillness(res.data); + this.$router.go(-1); + } + }); + } + }); + }); + }, + + generateRandomHtmlFilename() { + // 鐢熸垚涓�涓�0鍒�1涔嬮棿鐨勯殢鏈烘暟锛屽苟灏嗗叾杞崲涓哄瓧绗︿覆 + let randomNumber = Math.random().toString(); + // 绉婚櫎鍓嶉潰鐨�0鍜屽皬鏁扮偣 + randomNumber = randomNumber.substring(6); + // 纭繚鐢熸垚鐨勯殢鏈烘暟鏄竴瀹氶暱搴︾殑锛屼緥濡�8浣� + while (randomNumber.length < 8) { + randomNumber = "0" + randomNumber; + } + // 鎷兼帴涓�.html鍚庣紑 + return randomNumber + ".html"; + }, + + // 淇濆瓨鐤剧梾 + confirmillness(guid) { + this.illnesslist.forEach((item, index) => { + if (guid) { + item.outid = guid; + } else { + console.log(this.ruleForm); + item.outid = this.ruleForm.id; + } + item.icd10name = item.icdname; + item.icd10code = item.icdcode; + item.type = 6; + if (!item.id) { + addtargetillness(item).then((res) => {}); + } + }); + this.illnessVisible = false; + this.$modal.msgSuccess("缂栬緫鎴愬姛"); + }, + getFileNameFromPath(path) { + const parts = path.split("/"); + return parts[parts.length - 1]; }, // 涓嬩竴姝� nextstep() { @@ -565,41 +759,63 @@ this.Editprogress = this.Editprogress - 1; }, // 鍏抽棴 - closeFm(){ - this.$confirm('閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - this.$router.go(-1) - }).catch(() => { + closeFm() { + this.$confirm("閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + this.$router.go(-1); + }) + .catch(() => { this.$message({ - type: 'info', - message: '宸插彇娑�' - }); + type: "info", + message: "宸插彇娑�", + }); }); }, - // 淇濆瓨棰樼洰淇℃伅 - Saveproblem(){}, - /** 鏌ヨ棰樼洰鍒楄〃 */ - getList() { - // this.loading = true; - listUser().then((response) => { - console.log(response); - // this.userList = response.data; - // this.total = response.total; - // this.loading = false; - console.log(this.userList); + // 绉戝澶勭悊 + Departmenttreatment() { + this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); + const result = this.tempDetpRelevanceslist.map( + (subArr) => subArr[subArr.length - 1] + ); + // id鏁扮粍鏌ユ暟缁勫璞� + result.forEach((item) => { + const condition = this.ruleForm.tempDetpRelevances.some( + (obj) => obj.deptId === item + ); + if (!condition) { + listDept({ deptId: item }).then((res) => { + console.log("dept"); + res.data[0].type = 2; + this.ruleForm.tempDetpRelevances.push(res.data[0]); + }); + } }); - // const { rows } = await listUser(); - // console.log(rows); - // this.list = rows; + // 鏁扮粍瀵硅薄鏌d鏁扮粍 + this.ruleForm.tempDetpRelevances.forEach((item) => { + const condition = result.some((obj) => obj === item.deptId); + if (!condition) { + const index = this.ruleForm.tempDetpRelevances.indexOf(item); + this.ruleForm.tempDetpRelevances[index].delFlag = 1; + } + }); + setTimeout(() => { + this.submitForm(); + }, 1000); + // this.submitForm(); }, + // 淇濆瓨棰樼洰淇℃伅 + Saveproblem() {}, + /** 鏌ヨ棰樼洰鍒楄〃 */ + // 鏂板鍙橀噺 addvariable() { this.variablelist.push({ - variable: "", - value: "", + variatename: "", + variate: "", }); }, // 鍒犻櫎鍙橀噺 @@ -616,27 +832,82 @@ this.fileList = fileList.slice(-3); }, // 鏍囩----------------- - handleClose(tag) { + gettabList() { + const tagqueryParams = { + pageNum: 1, + pageSize: 1000, + tagcategoryid: "0", + }; + listtag(tagqueryParams).then((response) => { + this.optionstag = response.rows; + }); + }, + handleClosetag(tag) { + console.log(tag); + const lindex = this.ruleForm.heLibraryTagList.findIndex( + (item) => item.tagname == tag.tagname + ); + console.log(lindex); this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); + this.ruleForm.heLibraryTagList[lindex].isoperation = 3; }, handleInputConfirm() { - let inputValue = this.inputValue; - if (inputValue) { - this.dynamicTags.push(inputValue); + let tagvalue = {}; + let tagname = this.inputValue; + if (tagname) { + listtag({ + pageNum: 1, + pageSize: 1000, + tagcategoryid: "0", + tagname: tagname, + }).then((res) => { + if (res.rows[0]) { + tagvalue = res.rows[0]; + tagvalue.isoperation = 1; + } else { + tagvalue = { + tagname: tagname, + isoperation: 1, + }; + } + this.ruleForm.heLibraryTagList.push(tagvalue); + this.dynamicTags.push(tagvalue); + }); } this.inputVisible = false; this.inputValue = ""; }, + remoteMethodtag(query) { + if (query !== "") { + this.loading = true; + setTimeout(() => { + this.loading = false; + listtag({ tagname: query, tagcategoryid: "0" }).then((res) => { + this.optionstag = res.rows; + }); + }, 200); + } else { + this.optionstag = []; + } + }, showInput() { this.inputVisible = true; - // 鑷姩鑾峰彇鐒︾偣 - // this.$nextTick((_) => { - // this.$refs.saveTagInput.$refs.input.focus(); - // }); }, + // 鐤剧梾----------------------- + illnessUpdate() { + if (this.id) { + getillness({ outid: this.$route.query.id, type: 6 }).then((res) => { + this.illnesslist = res.rows; + this.illnesslist.forEach((item) => { + item.icdname = item.icd10name; + }); + }); + } + }, + // -------------------------- - // 棰勮妯$増 + // 棰勮妯℃澘 PreviewTemplate() { this.drawer = true; }, @@ -657,18 +928,22 @@ // 涓婁紶鍥剧墖鎴愬姛 uploadEditorSuccess(res, file) { console.log("涓婁紶鎴愬姛"); - // this.$emit('upload',res, file) - console.log(res, file); //鎷兼帴鍑轰笂浼犵殑鍥剧墖鍦ㄦ湇鍔″櫒鐨勫畬鏁村湴鍧� - let imgUrl = res.data.url; + let imgUrl = res.url; + console.log(res.url); + + imgUrl = imgUrl.replace(this.newPattern, this.oldPattern); + console.log(imgUrl, "imgUrl"); + let type = imgUrl.substring(imgUrl.lastIndexOf(".") + 1); - console.log(type); + this.fileName = this.getFileNameFromPath(res.url); + // 鑾峰彇瀵屾枃鏈粍浠跺疄渚� let quill = this.$refs.customQuillEditor.quill; // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃� let length = quill.getSelection().index; // 鎻掑叆鍥剧墖||瑙嗛 res.info涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧� - if (type == "mp4" || type == "MP4") { + if (type == "mp4" || type == "MP4"|| type == "avi"|| type == "AVI") { window.jsValue = imgUrl; quill.insertEmbed(length, "video", imgUrl); } else { @@ -679,10 +954,22 @@ //鍙栨秷涓婁紶鍔ㄧ敾 this.quillUpdateImg = false; }, + // 澶卞幓鐒︾偣浜嬩欢 + onEditorBlur(e) { + console.log("onEditorBlur: ", e); + }, + // 鑾峰緱鐒︾偣浜嬩欢 + onEditorFocus(e) { + console.log("onEditorFocus: ", e); + }, + // 鍐呭鏀瑰彉浜嬩欢 + onEditorChange(e) { + console.log("onEditorChange: ", e); + }, // 涓婁紶(鏂囦欢)鍥剧墖澶辫触 uploadEditorError(res, file) { - console.log(res); - console.log(file); + console.log(res, "word"); + console.log(file, "word"); //椤甸潰鎻愮ず this.$message.error("涓婁紶鍥剧墖澶辫触"); //鍙栨秷涓婁紶鍔ㄧ敾 @@ -692,53 +979,110 @@ uploadResult: function (res) { this.uploadUrlPath = res; }, + // 涓婁紶(鏂囦欢)鍥剧墖澶辫触 + uploadEditorErrorword(res, file) { + console.log(res); + console.log(file); + //椤甸潰鎻愮ず + this.$message.error("涓婁紶鍥剧墖澶辫触"); + //鍙栨秷涓婁紶鍔ㄧ敾 + this.quillUpdateImg = false; + }, + //涓婁紶鍥剧墖涔嬪墠async + beforeEditorUploadword(res, file) { + //鏄剧ず涓婁紶鍔ㄧ敾 + this.quillUpdateImg = true; + // const res1 = await uploadImage() + // console.log(res1,'====='); + // this.$emit('before',res, file) + console.log(res); + console.log(file); + }, + // 涓婁紶word鎴愬姛 + uploadEditorSuccessword(res, file) { + console.log("涓婁紶word鏂囦欢鎴愬姛"); + console.log(res, file, "word"); + let fileurl = res.url.replace(this.newPattern, this.oldPattern); + axios + .get(fileurl) + .then((response) => { + console.log(response.data, "鏁版嵁"); // 杈撳嚭鑾峰彇鍒扮殑鏂囦欢鍐呭 + this.$nextTick(() => { + this.content = response.data; + }); + this.fileName = this.getFileNameFromPath(response.url); + console.log(this.fileName, "this.fileName"); + }) + .catch((error) => { + console.error("Failed to fetch file:", error); + }); + }, + Getmissioncontent(url) { + axios + .get(url) + .then((response) => { + console.log(response.data, "鏁版嵁"); // 杈撳嚭鑾峰彇鍒扮殑鏂囦欢鍐呭 + this.content = response.data; + this.fileName = this.getFileNameFromPath(response.url); + console.log(this.fileName, "this.fileName"); + }) + .catch((error) => { + console.error("Failed to fetch file:", error); + }); + }, + // 澶勭悊url }, }; </script> <style lang="scss" scoped> .Questionnairemanagement { - display: flex; + // display: flex; } + .sidecolumn { - width: 300px; - min-height: 100vh; - text-align: center; + // width: 300px; + // min-height: 100vh; + // text-align: center; // display: flex; // margin-top: 20px; margin: 20px; margin-bottom: 0; - padding: 30px; + 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; + margin: 20px; padding: 30px; background: #ffff; border: 1px solid #dcdfe6; -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); + .mulsz { font-size: 20px; } + .leftvlue-jbxx { margin-bottom: 50px; font-size: 20px; + span { position: absolute; right: 80px; } } + .demo-cascader { margin-right: 20px; } + .PreviewTemplate { color: #02a7f0; cursor: pointer; @@ -746,6 +1090,7 @@ margin: 0 20px; } } + .xinz-inf { font-size: 18px; white-space: nowrap; @@ -757,6 +1102,7 @@ .el-tag + .el-tag { margin-left: 10px; } + .button-new-tag { margin-left: 10px; height: 32px; @@ -764,12 +1110,14 @@ padding-top: 0; padding-bottom: 0; } + .input-new-tag { width: 90px; margin-left: 10px; vertical-align: bottom; } } + .preview-left { margin: 20px; // margin: 20px; @@ -778,41 +1126,51 @@ border: 1px solid #dcdfe6; -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); + .topic-dev { margin-bottom: 25px; font-size: 20px !important; + .dev-text { margin-bottom: 10px; } } } + .addtopic { margin-top: 30px; } + .presentation { margin: 20px 0; display: flex; + .presentation-left { width: 50%; height: 500px; + .button-textxg { color: #024df0; } + .button-textsc { color: #f52727; } } + .presentation-right { width: 50%; height: 500px; padding: 20px; font-size: 18px; border: 1px solid #909091; + span { padding: 0 35px; margin-right: 10px; border-bottom: 1px solid #909091; } + .headline { font-size: 20px; border-left: 3px solid #41a1be; @@ -821,6 +1179,7 @@ } } } + ::v-deep .addtopic-input { input { background: #02a7f0; @@ -828,25 +1187,31 @@ width: 150px; } } + ::v-deep.el-step.is-vertical .el-step__title { font-size: 25px; } + ::v-deep.el-input--medium { font-size: 18px !important; } + ::v-deep.ruleFormaa.el-select { display: inline-block; position: relative; width: 700px; } + .el-select__tags { font-size: 20px; max-width: 888px !important; } + ::v-deep.el-radio__inner { width: 22px; height: 22px; } + // ::v-deep.topic-dev.el-radio__label { // font-size: 24px; // } @@ -855,19 +1220,23 @@ font-size: 24px; } } + ::v-deep.el-checkbox-group { span { font-size: 24px; } } + .editor { line-height: normal !important; - height: 400px; - margin-bottom: 50px; + height: 600px; + margin-bottom: 80px; } + .ql-snow .ql-tooltip[data-mode="link"]::before { content: "璇疯緭鍏ラ摼鎺ュ湴鍧�:"; } + .ql-snow .ql-tooltip.ql-editing a.ql-action::after { border-right: 0px; content: "淇濆瓨"; @@ -882,14 +1251,17 @@ .ql-snow .ql-picker.ql-size .ql-picker-item::before { content: "14px"; } + .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before { content: "10px"; } + .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before { content: "18px"; } + .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before { content: "32px"; @@ -899,26 +1271,32 @@ .ql-snow .ql-picker.ql-header .ql-picker-item::before { content: "鏂囨湰"; } + .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { content: "鏍囬1"; } + .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { content: "鏍囬2"; } + .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { content: "鏍囬3"; } + .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { content: "鏍囬4"; } + .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { content: "鏍囬5"; } + .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { content: "鏍囬6"; @@ -928,10 +1306,12 @@ .ql-snow .ql-picker.ql-font .ql-picker-item::before { content: "鏍囧噯瀛椾綋"; } + .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before { content: "琛嚎瀛椾綋"; } + .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before { content: "绛夊瀛椾綋"; -- Gitblit v1.9.3