From 9201094eda93a5429e1e83a73f9d18dd84f74099 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期一, 05 八月 2024 14:23:58 +0800 Subject: [PATCH] 测试完成 --- src/views/repositoryai/verbaltrick/particulars/index.vue | 14 src/views/knowledge/questionbank/particulars/index.vue | 28 src/views/shortmessage/healthinformation/compilequer/video.js | 71 +++ src/views/shortmessage/healthinformation/index.vue | 4 src/views/knowledge/questionnaire/compilequer/index.vue | 7 src/store/getters.js | 38 + src/views/patient/propaganda/particty.vue | 21 src/views/shortmessage/healthinformation/compilequer/index.vue | 1187 +++++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 1,333 insertions(+), 37 deletions(-) diff --git a/src/store/getters.js b/src/store/getters.js index 745f4f7..b25f633 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -542,6 +542,44 @@ }, }, + + ], + // 璇勪环绫诲瀷 + appraiselist:(state) => [ + { + value: "1", + label: "鍒嗘暟", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "2", + label: "ABC绛夌骇", + raw: { + cssClass: "", + listClass: "", + }, + }, + + { + value: "3", + label: "浼樼瓑绾�", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "4", + label: "鏃�", + raw: { + cssClass: "", + listClass: "", + }, + }, + ], // 姝e垯 }; diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue index 8900b8b..0f60b5b 100644 --- a/src/views/knowledge/questionbank/particulars/index.vue +++ b/src/views/knowledge/questionbank/particulars/index.vue @@ -453,14 +453,16 @@ @keyup.enter.native="gettargetInfo" /> </el-form-item> - <el-form-item label="鎸囨爣鏍囩" prop="userName"> - <el-input - v-model="queryParams.tagName" - placeholder="璇疯緭鍏�" - clearable - style="width: 200px" - @keyup.enter.native="gettargetInfo" - /> + <el-form-item label="鎸囨爣绫诲瀷" prop="scriptType"> + <el-select v-model="queryParams.scriptType" placeholder="璇烽�夋嫨"> + <el-option + v-for="(item, index) in qyoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item> <el-form-item> @@ -616,6 +618,7 @@ pageNum: 1, pageSize: 10, isavailable: "", + scriptType: "", }, optionlist: [ { value: "scriptTopic", table: "scriptTopic" }, @@ -632,6 +635,7 @@ inputVisibleillness: false, illnessVisible: false, //鎸囨爣鐤剧梾寮规 deptOptions: [], + qyoptions: [], optionsillness: [], illnesslistapi: [], illnesslist: [], @@ -658,6 +662,7 @@ this.usable = store.getters.usable; this.valuetype = store.getters.askvaluetype; this.required = store.getters.required; + this.qyoptions = store.getters.askvaluetype; }, methods: { @@ -722,7 +727,10 @@ }); return; } - this.queryParams.scriptType = this.topicobj.scriptType; + if (this.topicobj.scriptType) { + this.queryParams.scriptType = this.topicobj.scriptType; + } + this.queryParams.suitWay = 1; gettargetInfo(this.queryParams).then((res) => { this.targetList = res.rows; this.total = res.total; @@ -836,7 +844,7 @@ this.scriptTypels = this.topicobj.scriptType; }) .catch(() => { - this.topicobj.scriptType=this.scriptTypels + this.topicobj.scriptType = this.scriptTypels; }); } }, diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue index 6d5910a..5c71303 100644 --- a/src/views/knowledge/questionnaire/compilequer/index.vue +++ b/src/views/knowledge/questionnaire/compilequer/index.vue @@ -818,11 +818,7 @@ { value: "scriptTopic", table: "scriptTopic" }, ], - appraiselist: [ - { label: "鍒嗘暟", value: "1" }, - { label: "ABC绛夌骇", value: "2" }, - { label: "浼樿壇绛夌骇", value: "3" }, - ], + appraiselist: [], fileList: [ { @@ -918,6 +914,7 @@ this.valuetype = store.getters.valuetype; this.courtyardlist = store.getters.courtyardlist; this.askvaluetype = store.getters.askvaluetype; + this.appraiselist = store.getters.appraiselist; // this.test(); }, diff --git a/src/views/patient/propaganda/particty.vue b/src/views/patient/propaganda/particty.vue index 5e5d0b4..bc7e42a 100644 --- a/src/views/patient/propaganda/particty.vue +++ b/src/views/patient/propaganda/particty.vue @@ -411,26 +411,7 @@ <el-input v-model="patientqueryParams.name"></el-input> </el-form-item> - <!-- <el-form-item label="灏辫瘖绉戝" prop="status"> - <el-select - v-model="patientqueryParams.scriptTopic" - placeholder="璇烽�夋嫨" - > - <el-option-group - v-for="group in topicoptions[0].children" - :key="group.deptName" - :label="group.deptName" - > - <el-option - v-for="item in group.children" - :key="item.deptId" - :label="item.deptName" - :value="item.deptId" - > - </el-option> - </el-option-group> - </el-select> - </el-form-item> --> + <el-form-item> <el-button diff --git a/src/views/repositoryai/verbaltrick/particulars/index.vue b/src/views/repositoryai/verbaltrick/particulars/index.vue index 7c2cdb0..7ced909 100644 --- a/src/views/repositoryai/verbaltrick/particulars/index.vue +++ b/src/views/repositoryai/verbaltrick/particulars/index.vue @@ -598,6 +598,17 @@ @keyup.enter.native="gettargetInfo" /> </el-form-item> + <el-form-item label="鎸囨爣绫诲瀷" prop="scriptType"> + <el-select v-model="queryParams.scriptType" placeholder="璇烽�夋嫨"> + <el-option + v-for="(item, index) in qyoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> <el-form-item> <el-button @@ -728,6 +739,7 @@ addvalue: "娣诲姞棰樼洰", languagelist: [], //璇█鍒楄〃 + qyoptions: [], // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -745,6 +757,7 @@ this.languagelist = store.getters.languagelist; this.usable = store.getters.usable; this.courtyardlist = store.getters.courtyardlist; + this.qyoptions = store.getters.askvaluetype; }, methods: { @@ -863,6 +876,7 @@ .catch(() => {}); }, gettargetInfo() { + this.queryParams.suitWay = 2; gettargetInfo(this.queryParams).then((res) => { console.log(res); this.targetList = res.rows; diff --git a/src/views/shortmessage/healthinformation/compilequer/index.vue b/src/views/shortmessage/healthinformation/compilequer/index.vue new file mode 100644 index 0000000..bc75051 --- /dev/null +++ b/src/views/shortmessage/healthinformation/compilequer/index.vue @@ -0,0 +1,1187 @@ +<template> + <div class="Questionnairemanagement"> + <!-- 宸︿晶鏍� --> + <div class="sidecolumn"> + <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-steps> + </div> + <!-- 鍙充晶鏁版嵁 --> + <div class="leftvlue"> + <!-- 鍩烘湰淇℃伅 --> + <div v-if="Editprogress == 1"> + <div class="leftvlue-jbxx">鍩烘湰淇℃伅</div> + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="100px" + class="demo-ruleForm" + > + <el-form-item label="閫氱煡鍒嗙被" prop="region"> + <el-select + v-model="ruleForm.assortid" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option-group + v-for="group in sortlist" + :key="group.id" + :label="group.assortname" + > + <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-row> + <el-col :span="12"> </el-col> + <el-col :span="12"> </el-col> + </el-row> + <el-form-item label="閫氱煡鏍囬" prop="preachname"> + <div style="width: 30%"> + <el-input + v-model="ruleForm.preachname" + placeholder="璇疯緭鍏ユ爣棰�" + ></el-input> + </div> + </el-form-item> + <el-form-item label="閫氱煡鎻忚堪" 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"> + <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"> + <div style="width: 40%"> + <el-upload + class="upload-demo" + action="https://jsonplaceholder.typicode.com/posts/" + :on-change="handleChange" + :file-list="fileList" + > + <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> + <div slot="tip" class="el-upload__tip"> + 鍙兘涓婁紶jpg/png/xsl鏂囦欢锛屼笖涓嶈秴杩�50mb + </div> + </el-upload> + </div> + </el-form-item> + <el-form-item label="鏍囩" prop="desc"> + <div class="xinz-inf"> + <el-tag + :key="tag.tagname" + type="success" + v-for="tag in dynamicTags" + closable + :disable-transitions="false" + @close="handleClosetag(tag)" + > + {{ tag.tagname }} + </el-tag> + <el-select + v-model="inputValue" + v-if="inputVisible" + @change="handleInputConfirm" + filterable + remote + 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 :gutter="20"> + <el-col :span="6"> + <el-form-item label="鐗堟湰鍙�" prop="name"> + <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.isavailable" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="ruleFormaa" + v-for="item in usable" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + </el-row> + <el-form-item label="閫氱煡鏂瑰紡" prop="region"> + <el-select + v-model="ruleForm.suitway" + size="medium" + multiple + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="ruleFormaa" + v-for="item in mode" + :key="item.label" + :label="item.label" + :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.campus" + size="medium" + multiple + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="ruleFormaa" + v-for="item in courtyardlist" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="閫傜敤绉戝" prop="region"> + <el-cascader + v-model="tempDetpRelevanceslist" + :options="deptList" + :props="props" + :show-all-levels="false" + clearable + > + <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 type="success" @click="Departmenttreatment('ruleForm')" + >淇濆瓨</el-button + > + <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button> + </el-form-item> + </el-form> + </div> + <!-- 閫氱煡鍐呭 --> + <div v-if="Editprogress == 2"> + <el-row :gutter="20"> + <el-col :span="4"><div class="leftvlue-jbxx">閫氱煡鍐呭</div></el-col> + </el-row> + + <div> + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="100px" + class="demo-ruleForm" + > + <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 + class="avatar-uploader" + :action="uploadImgUrl" + :accept="'image/*,video/*'" + :show-file-list="false" + :on-success="uploadEditorSuccess" + :on-error="uploadEditorError" + :before-upload="beforeEditorUpload" + :headers="headers" + > + </el-upload> + <!-- 鍩轰簬elementUi鐨勪笂浼犵粍浠� el-upload end--> + <quill-editor + class="editor" + 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"; +Quill.register(Video, true); +//鑾峰彇鐧诲綍token锛屽紩鍏ユ枃浠讹紝濡傛灉鍙槸绠�鍗曟祴璇曪紝娌℃湁涓婁紶鏂囦欢鏄惁鐧诲綍鐨勯檺鍒剁殑璇濓紝 +//杩欎釜token鍙互涓嶇敤鑾峰彇锛屾枃浠跺彲浠ヤ笉寮曞叆锛屾妸涓婇潰瀵瑰簲鐨勪笂浼犳枃浠舵惡甯﹁姹傚ご :headers="headers" 杩欎釜浠g爜鍒犳帀鍗冲彲 +import { getToken } from "@/utils/auth"; +const toolbarOptions = [ + ["bold", "italic", "underline", "strike"], // toggled buttons + ["blockquote", "code-block"], + + [{ header: 1 }, { header: 2 }], // custom button values + [{ list: "ordered" }, { list: "bullet" }], + [{ script: "sub" }, { script: "super" }], // superscript/subscript + [{ indent: "-1" }, { indent: "+1" }], // outdent/indent + [{ direction: "rtl" }], // text direction + + [{ size: ["small", false, "large", "huge"] }], // custom dropdown + [{ header: [1, 2, 3, 4, 5, 6, false] }], + + [{ color: [] }, { background: [] }], // dropdown with defaults from theme + [{ font: [] }], + [{ align: [] }], + ["link", "image", "video"], + ["clean"], // remove formatting button +]; + +export default { + components: { OptionalForm }, + data() { + return { + headers: { + Authorization: "Bearer " + getToken(), + }, + uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", + uploadImgUrlword: process.env.VUE_APP_BASE_API + "/common/uploadShow", + uploadUrlPath: "娌℃湁鏂囦欢涓婁紶", + quillUpdateImg: false, + fileList: [ + { + name: "food.jpeg", + url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", + }, + { + name: "food2.jpeg", + url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", + }, + ], + content: "", //鏈�缁堜繚瀛樼殑鍐呭 + fileName: "", //鏂囦欢鍚� + dynamicTags: [], + inputVisible: false, + illnessVisible: false, + dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛 + inputValue: "", + // 瀵屾枃鏈� + editorOption: { + placeholder: "浣犳兂璇翠粈涔堬紵", + modules: { + imageResize: { + displayStyles: { + backgroundColor: "black", + border: "none", + color: "white", + }, + modules: ["Resize", "DisplaySize", "Toolbar"], + }, + toolbar: { + container: toolbarOptions, // 宸ュ叿鏍� + handlers: { + image: function (value) { + if (value) { + document + .querySelector("#quillEditorQiniu .avatar-uploader input") + .click(); + } else { + this.quill.format("image", false); + } + }, + video: function (value) { + if (value) { + document + .querySelector("#quillEditorQiniu .avatar-uploader input") + .click(); + } else { + this.quill.format("video", false); + } + }, + }, + }, + }, + }, + + sidecolumnrabs: "left", //鏂瑰悜 + Editprogress: 1, //缂栬緫杩涘害 + currentVersion: "1.2.3", //褰撳墠鐗堟湰 + loading: false, // 閬僵灞� + drawer: false, //鎺у埗灞曞紑 + radio: "false", //鍗曢�夐閫変腑 + radios: [], //澶氶�夐閫変腑 + radioas: "", //濉┖棰樼瓟妗� + // 鎬绘潯鏁� + total: 1, + hetype: "", + id: null, + ruleForm: { + campus: [], + heLibraryTagList: [], + tempDetpRelevances: [], + version: "1.0.1", + }, + rules: {}, + rulesa: {}, + mode: [], + editableTabs: [], + sortlist: [], + usable: [], + courtyardlist: [], + precedencetype: [], + optionsillness: [], + illnesslistapi: [], + illnesslist: [], + options: [], + optionstag: [], + deptList: [], + tempDetpRelevanceslist: [], + props: { multiple: true, value: "deptId", label: "deptName" }, + xjxsoptions: [ + { + value: "1", + label: "鍥炬枃", + }, + { + value: "2", + label: "瑙嗛", + }, + { + value: "3", + label: "闊抽", + }, + ], + valssu: [ + { + idd: 1, + wssd: "浣犳渶杩戞�庝箞鏍�", + sdadd: ["sss", "ssccss", "ssaas", "ss"], + }, + ], + addvalue: "娣诲姞棰樼洰", + + variablelist: [ + { variatename: "濮撳悕", variate: "${name}", default: 1 }, + { variatename: "鐢佃瘽", variate: "${phone}", default: 1 }, + { variatename: "鐥呮儏", variate: "${illness}", default: 1 }, + ], + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + }, + }; + }, + + 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, "A"); + console.log(oldVal, "B"); + }, + }, + + methods: { + 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]; + this.ruleForm.campus = this.ruleForm.campus.split(","); + this.dynamicTags = res.data[0].heLibraryTagList.map( + this.processElement + ); + this.Getmissioncontent(this.ruleForm.richText); + 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; + }); + } + // 閫氱煡鍒嗙被 + getheLibraryAssort({ hetype: 2 }).then((res) => { + this.sortlist = res.rows; + console.log(this.sortlist); + }); + // 閮ㄩ棬 + listDept(this.queryParams).then((response) => { + this.deptList = this.handleTree(response.data, "deptId"); + }); + this.loading = false; + }, + + submitForm(formName) { + let tgs = []; + this.dynamicTags.forEach((item) => { + tgs.push(item.tagname); + }); + 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 = 2; + console.log(22); + this.ruleForm.suitway = + this.ruleForm.suitway.length != 0 + ? this.ruleForm.suitway.join(",") + : ""; + + addrichText({ + content: this.content, + fileName: this.fileName ? this.fileName : "娴嬭瘯.html", + }).then((res) => { + this.ruleForm.richText = res.msg; + if (this.id) { + this.ruleForm.isoperation = 2; + compilelibrary(this.ruleForm).then((res) => { + this.$modal.msgSuccess("缂栬緫鎴愬姛"); + this.confirmillness(); + this.$router.go(-1); + }); + } else { + this.ruleForm.isoperation = 1; + compilelibrary(this.ruleForm).then((res) => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.confirmillness(res.data); + this.$router.go(-1); + }); + } + }); + }, + // 淇濆瓨鐤剧梾 + 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() { + if (this.Editprogress <= 1) { + return this.Editprogress++; + } + }, + // 涓婁竴姝� + laststep() { + this.Editprogress = this.Editprogress - 1; + }, + // 鍏抽棴 + closeFm() { + this.$confirm("閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + this.$router.go(-1); + }) + .catch(() => { + this.$message({ + type: "info", + message: "宸插彇娑�", + }); + }); + }, + // 绉戝澶勭悊 + 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]); + }); + } + }); + // 鏁扮粍瀵硅薄鏌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({ + variatename: "", + variate: "", + }); + }, + // 鍒犻櫎鍙橀噺 + delvariable(item) { + const index = this.variablelist.indexOf(item); + if (index !== -1) { + this.variablelist.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱� + } else { + console.log("鏈壘鍒拌瀵硅薄"); + } + }, + // 鎺у埗鏂囦欢 + handleChange(file, fileList) { + this.fileList = fileList.slice(-3); + }, + // 鏍囩----------------- + 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 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; + }, + // 鐤剧梾----------------------- + 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; + }, + resetForm(formName) { + this.$refs[formName].resetFields(); + }, + + //涓婁紶鍥剧墖涔嬪墠async + beforeEditorUpload(res, file) { + //鏄剧ず涓婁紶鍔ㄧ敾 + this.quillUpdateImg = true; + // const res1 = await uploadImage() + // console.log(res1,'====='); + // this.$emit('before',res, file) + console.log(res); + console.log(file); + }, + // 涓婁紶鍥剧墖鎴愬姛 + uploadEditorSuccess(res, file) { + console.log("涓婁紶鎴愬姛"); + // this.$emit('upload',res, file) + console.log(res, file); + //鎷兼帴鍑轰笂浼犵殑鍥剧墖鍦ㄦ湇鍔″櫒鐨勫畬鏁村湴鍧� + let imgUrl = res.url; + let type = imgUrl.substring(imgUrl.lastIndexOf(".") + 1); + console.log(type); + // 鑾峰彇瀵屾枃鏈粍浠跺疄渚� + let quill = this.$refs.customQuillEditor.quill; + // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃� + let length = quill.getSelection().index; + // 鎻掑叆鍥剧墖||瑙嗛 res.info涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧� + if (type == "mp4" || type == "MP4") { + window.jsValue = imgUrl; + quill.insertEmbed(length, "video", imgUrl); + } else { + quill.insertEmbed(length, "image", imgUrl); + } + // 璋冩暣鍏夋爣鍒版渶鍚� + quill.setSelection(length + 1); + //鍙栨秷涓婁紶鍔ㄧ敾 + 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, "word"); + console.log(file, "word"); + //椤甸潰鎻愮ず + this.$message.error("涓婁紶鍥剧墖澶辫触"); + //鍙栨秷涓婁紶鍔ㄧ敾 + this.quillUpdateImg = false; + }, + //涓婁紶缁勪欢杩斿洖鐨勭粨鏋� + 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); + }, + // 涓婁紶鍥剧墖鎴愬姛 + uploadEditorSuccessword(res, file) { + console.log("涓婁紶鎴愬姛"); + const data = null; + console.log(res, file, "word"); + axios + .get(res.url) + .then((response) => { + console.log(response.data, "鏁版嵁"); // 杈撳嚭鑾峰彇鍒扮殑鏂囦欢鍐呭 + this.content = response.data; + this.texturl = res.url; + this.fileName = this.getFileNameFromPath(res.url); + }) + .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(res.url); + }) + .catch((error) => { + console.error("Failed to fetch file:", error); + }); + }, + }, +}; +</script> + +<style lang="scss" scoped> +.Questionnairemanagement { + // display: flex; +} +.sidecolumn { + // width: 300px; + // min-height: 100vh; + // text-align: center; + // display: flex; + // margin-top: 20px; + margin: 20px; + margin-bottom: 0; + 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; + 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; + font-size: 20px; + margin: 0 20px; + } +} +.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; + } +} +.preview-left { + margin: 20px; + // margin: 20px; + padding: 30px; + background: #ffff; + border: 1px solid #dcdfe6; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), + 0 0 6px 0 rgba(0, 0, 0, 0.04); + .topic-dev { + margin-bottom: 25px; + font-size: 20px !important; + .dev-text { + margin-bottom: 10px; + } + } +} +.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; + padding-left: 5px; + margin: 15px 0; + } + } +} +::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: 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; +// } +::v-deep.el-radio-group { + span { + font-size: 24px; + } +} +::v-deep.el-checkbox-group { + span { + font-size: 24px; + } +} +.editor { + line-height: normal !important; + 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: "淇濆瓨"; + padding-right: 0px; +} + +.ql-snow .ql-tooltip[data-mode="video"]::before { + content: "璇疯緭鍏ヨ棰戝湴鍧�:"; +} + +.ql-snow .ql-picker.ql-size .ql-picker-label::before, +.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"; +} + +.ql-snow .ql-picker.ql-header .ql-picker-label::before, +.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"; +} + +.ql-snow .ql-picker.ql-font .ql-picker-label::before, +.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: "绛夊瀛椾綋"; +} +</style> diff --git a/src/views/shortmessage/healthinformation/compilequer/video.js b/src/views/shortmessage/healthinformation/compilequer/video.js new file mode 100644 index 0000000..16f4978 --- /dev/null +++ b/src/views/shortmessage/healthinformation/compilequer/video.js @@ -0,0 +1,71 @@ +import { Quill } from 'vue-quill-editor' + +// 婧愮爜涓槸import鐩存帴鍊掑叆锛岃繖閲岃鐢≦uill.import寮曞叆 +const BlockEmbed = Quill.import('blots/block/embed') +// const Link = Quill.import('formats/link') + +const ATTRIBUTES = ['height', 'width'] + +class Video extends BlockEmbed { + static create (value) { + const node = super.create(value) + // console.log("js鏂囦欢"+ window.jsValue) + // 娣诲姞video鏍囩鎵�闇�鐨勫睘鎬� + node.setAttribute('controls', 'controls') // 鎺у埗鎾斁鍣� + //鍒犻櫎鍘熺敓video鐨勬帶鍒舵潯鐨勪笅杞芥垨鑰呭叏灞忔寜閽殑鏂规硶 + //<video controls controlsList='nofullscreen nodownload noremote footbar' ></video> + //涓嶇敤鍝釜鍦ㄤ笅闈㈠姞涓婂摢涓� + node.setAttribute('controlsList', 'nofullscreen') // 鎺у埗鍒犻櫎 + node.setAttribute('type', 'video/mp4') + node.setAttribute('style', 'object-fit:fill;width: 100%;') + node.setAttribute('preload', 'auto') // auto - 褰撻〉闈㈠姞杞藉悗杞藉叆鏁翠釜瑙嗛 meta - 褰撻〉闈㈠姞杞藉悗鍙浇鍏ュ厓鏁版嵁 none - 褰撻〉闈㈠姞杞藉悗涓嶈浇鍏ヨ棰� + node.setAttribute('playsinline', 'true') + node.setAttribute('x-webkit-airplay', 'allow') + // node.setAttribute('x5-video-player-type', 'h5') // 鍚敤H5鎾斁鍣�,鏄痺echat瀹夊崜鐗堢壒鎬� + node.setAttribute('x5-video-orientation', 'portraint') // 绔栧睆鎾斁 澹版槑浜唄5鎵嶈兘浣跨敤 鎾斁鍣ㄦ敮浠樼殑鏂瑰悜锛宭andscape妯睆锛宲ortraint绔栧睆锛岄粯璁ゅ�间负绔栧睆 + node.setAttribute('x5-playsinline', 'true') // 鍏煎瀹夊崜 涓嶅叏灞忔挱鏀� + node.setAttribute('x5-video-player-fullscreen', 'true') // 鍏ㄥ睆璁剧疆锛岃缃负 true 鏄槻姝㈡í灞� + node.setAttribute('src', window.jsValue) + return node + } + + static formats (domNode) { + return ATTRIBUTES.reduce((formats, attribute) => { + if (domNode.hasAttribute(attribute)) { + formats[attribute] = domNode.getAttribute(attribute) + } + return formats + }, {}) + } + + // static sanitize (url) { + // + // // eslint-disable-line import/no-named-as-default-member + // } + + static value (domNode) { + return domNode.getAttribute('src') + } + + format (name, value) { + if (ATTRIBUTES.indexOf(name) > -1) { + if (value) { + this.domNode.setAttribute(name, value) + } else { + this.domNode.removeAttribute(name) + } + } else { + super.format(name, value) + } + } + + html () { + const { video } = this.value() + return `<a href="${video}">${video}</a>` + } +} +Video.blotName = 'video' // 杩欓噷涓嶇敤鏀癸紝妤间富涓嶇敤iframe锛岀洿鎺ユ浛鎹㈡帀鍘熸潵锛屽鏋滈渶瑕佷篃鍙互淇濈暀鍘熸潵鐨勶紝杩欓噷鐢ㄤ釜鏂扮殑blot +Video.className = 'ql-video' +Video.tagName = 'video' // 鐢╲ideo鏍囩鏇挎崲iframe + +export default Video diff --git a/src/views/shortmessage/healthinformation/index.vue b/src/views/shortmessage/healthinformation/index.vue index af85a3d..e920c1d 100644 --- a/src/views/shortmessage/healthinformation/index.vue +++ b/src/views/shortmessage/healthinformation/index.vue @@ -641,14 +641,14 @@ /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.$router.push({ - path: "/knowledge/education/compilequer/", + path: "/knowledge/Noticeparticulars", query: { hetype: 2 }, }); }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { this.$router.push({ - path: "/knowledge/education/compilequer/", + path: "/knowledge/Noticeparticulars", query: { id: "1" }, }); }, -- Gitblit v1.9.3