¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="ordered-checkbox-container"> |
| | | <!-- 横åæåçå¤éæ¡ç» --> |
| | | <el-checkbox-group |
| | | v-model="checkedValues" |
| | | class="horizontal-checkbox-group" |
| | | > |
| | | <el-checkbox |
| | | v-for="option in options" |
| | | :key="getValue(option)" |
| | | :label="getValue(option)" |
| | | > |
| | | {{ getLabel(option) }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | |
| | | <!-- éä¸é¡ºåºå±ç¤ºåºå --> |
| | | <div v-if="selectedOrder.length > 0" class="selection-order-display"> |
| | | <span class="order-label">æå¡æ§è¡é¡ºåºï¼</span> |
| | | <span |
| | | v-for="(value, index) in selectedOrder" |
| | | :key="value" |
| | | class="order-item" |
| | | > |
| | | {{ getSelectedIndex(index) }}.{{ getLabelByValue(value) }} |
| | | <span v-if="index < selectedOrder.length - 1">ã</span> |
| | | </span> |
| | | </div> |
| | | <div v-else class="selection-order-display"> |
| | | <span class="order-label">ææ éä¸é¡¹</span> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "OrderedCheckboxGroup", |
| | | props: { |
| | | options: { |
| | | type: Array, |
| | | default: () => [], |
| | | }, |
| | | value: { |
| | | type: Array, |
| | | default: () => [], |
| | | }, |
| | | valueKey: { |
| | | type: String, |
| | | default: "value", |
| | | }, |
| | | labelKey: { |
| | | type: String, |
| | | default: "label", |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | checkedValues: [], |
| | | selectedOrder: [], |
| | | }; |
| | | }, |
| | | watch: { |
| | | value: { |
| | | immediate: true, |
| | | handler(newVal) { |
| | | if (JSON.stringify(newVal) !== JSON.stringify(this.checkedValues)) { |
| | | this.checkedValues = [...newVal]; |
| | | this.selectedOrder = [...newVal]; |
| | | } |
| | | }, |
| | | }, |
| | | checkedValues(newVal, oldVal) { |
| | | const added = newVal.filter((item) => !oldVal.includes(item)); |
| | | const removed = oldVal.filter((item) => !newVal.includes(item)); |
| | | |
| | | added.forEach((value) => { |
| | | if (!this.selectedOrder.includes(value)) { |
| | | this.selectedOrder.push(value); |
| | | } |
| | | }); |
| | | |
| | | removed.forEach((value) => { |
| | | const index = this.selectedOrder.indexOf(value); |
| | | if (index > -1) { |
| | | this.selectedOrder.splice(index, 1); |
| | | } |
| | | }); |
| | | |
| | | this.$emit("input", [...newVal]); |
| | | this.$emit("change", [...newVal], [...this.selectedOrder]); |
| | | }, |
| | | }, |
| | | methods: { |
| | | getValue(option) { |
| | | return typeof option === "object" ? option[this.valueKey] : option; |
| | | }, |
| | | getLabel(option) { |
| | | return typeof option === "object" ? option[this.labelKey] : option; |
| | | }, |
| | | getLabelByValue(value) { |
| | | const option = this.options.find( |
| | | (opt) => this.getValue(opt) === value |
| | | ); |
| | | return option ? this.getLabel(option) : value; |
| | | }, |
| | | getSelectedIndex(index) { |
| | | if (index < 20) { |
| | | return String.fromCharCode(0x2460 + index); |
| | | } else { |
| | | return `(${index + 1})`; |
| | | } |
| | | }, |
| | | getSelectionOrder() { |
| | | return [...this.selectedOrder]; |
| | | }, |
| | | setSelectionOrder(orderedValues) { |
| | | this.selectedOrder = [...orderedValues]; |
| | | this.checkedValues = [...orderedValues]; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .ordered-checkbox-container { |
| | | display: flex; |
| | | flex-direction: column; |
| | | gap: 16px; |
| | | } |
| | | |
| | | .horizontal-checkbox-group { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | gap: 20px; |
| | | } |
| | | |
| | | .selection-order-display { |
| | | padding: 12px; |
| | | background-color: #f5f7fa; |
| | | border-radius: 4px; |
| | | border: 1px solid #ebeef5; |
| | | } |
| | | |
| | | .order-label { |
| | | font-weight: bold; |
| | | color: #606266; |
| | | margin-right: 8px; |
| | | } |
| | | |
| | | .order-item { |
| | | color: #409eff; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | /* ååºå¼è®¾è®¡ï¼å°å±å¹æ¶æ¢è¡ */ |
| | | @media (max-width: 768px) { |
| | | .horizontal-checkbox-group { |
| | | gap: 12px; |
| | | } |
| | | |
| | | .selection-order-display { |
| | | padding: 8px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | sessionTimersExpires: 300, |
| | | extraHeaders: [ |
| | | "Min-SE: 120", |
| | | "Route: <sip:@192.168.100.6>", |
| | | "Route: <sip:@192.168.10.124>", |
| | | "Accept: application/sdp", |
| | | "Supported: replaces, timer", |
| | | "Allow: INVITE, ACK, BYE, CANCEL, OPTIONS", |
| | |
| | | }; |
| | | |
| | | this.currentSession = this.ua.call( |
| | | `sip:${targetNumber}@192.168.100.6`, |
| | | `sip:${targetNumber}@192.168.10.124`, |
| | | options |
| | | ); |
| | | // å¨ä¼è¯å建åä¿®æ¹ SDP |
| | |
| | | .call(pc, offerOptions) |
| | | .then((offer) => { |
| | | const modifiedSdp = offer.sdp |
| | | .replace(/c=IN IP4 192\.168\.100\.10/g, "c=IN IP4 192.168.100.6") |
| | | .replace(/c=IN IP4 192\.168\.100\.10/g, "c=IN IP4 192.168.10.124") |
| | | .replace(/m=audio \d+ RTP\/AVP.*/, "m=audio 7078 RTP/AVP 0 8"); |
| | | return new RTCSessionDescription({ |
| | | type: "offer", |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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-divider></el-divider> |
| | | <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 |
| | | 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 :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-radio-group v-model="ruleForm.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-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-col :offset="16" :span="4"> |
| | | <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> |
| | | </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"> --> |
| | | |
| | | <!-- </el-col> |
| | | </el-row> --> |
| | | </el-form> |
| | | </div> |
| | | <!-- <div> |
| | | <div id="quillEditorQiniu"> |
| | | <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> |
| | | <quill-editor |
| | | class="editor" |
| | | v-model="content" |
| | | ref="customQuillEditor" |
| | | :options="editorOption" |
| | | @blur="onEditorBlur" |
| | | @focus="onEditorFocus" |
| | | @change="onEditorChange" |
| | | > |
| | | </quill-editor> |
| | | </div> |
| | | </div> --> |
| | | <!-- æ°ç»ä»¶ --> |
| | | <div style="border: 1px solid #ccc; margin: 10px"> |
| | | <Toolbar |
| | | style="border-bottom: 1px solid #ccc" |
| | | :editor="editor" |
| | | :defaultConfig="toolbarConfig" |
| | | :mode="modes" |
| | | /> |
| | | <Editor |
| | | style="height: 500px; overflow-y: hidden" |
| | | v-model="content" |
| | | :defaultConfig="editorConfig" |
| | | :mode="modes" |
| | | @onCreated="onCreated" |
| | | /> |
| | | </div> |
| | | <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> |
| | | </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 { Editor, Toolbar } from "@wangeditor/editor-for-vue"; |
| | | 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"; //æ£åç»ä»¶ |
| | | |
| | | 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" è¿ä¸ªä»£ç å æå³å¯ |
| | | 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 { |
| | | name: "aEducationinfo", |
| | | components: { OptionalForm, Editor, Toolbar }, |
| | | data() { |
| | | return { |
| | | editor: null, |
| | | content: "<p>hello</p>", |
| | | toolbarConfig: {}, |
| | | editorConfig: { |
| | | placeholder: "请è¾å
¥å
容...", |
| | | menus: [ |
| | | "head", |
| | | "bold", |
| | | "italic", |
| | | "underline", |
| | | "image", |
| | | "link", |
| | | "list", |
| | | "undo", |
| | | "redo", |
| | | "file", // æ·»å èªå®ä¹æä»¶ä¸ä¼ èå |
| | | ], |
| | | uploadImgServer: process.env.VUE_APP_BASE_API + "/common/uploadSort", // å¾çä¸ä¼ æ¥å£ |
| | | uploadImgHeaders: { |
| | | Authorization: "Bearer " + getToken(), |
| | | }, // èªå®ä¹ä¸ä¼ ç headers |
| | | uploadImgParams: { key: "value" }, // èªå®ä¹ä¸ä¼ çåæ° |
| | | uploadImgMaxSize: 2 * 1024 * 1024, // å¾çæå¤§å¤§å°ï¼åä½ Byte |
| | | uploadImgMaxLength: 1, // 䏿¬¡æå¤ä¸ä¼ å¾çæ°é |
| | | uploadImgTimeout: 3 * 60 * 1000, // è¶
æ¶æ¶é´ï¼åä½ ms |
| | | uploadImgHooks: { |
| | | customInsert: (insertImgFn, result) => { |
| | | const url = result.url; // è·åå¾çå°å |
| | | insertImgFn(url); // æå
¥å¾ç |
| | | }, |
| | | }, |
| | | customMenus: { |
| | | file: { |
| | | tip: "ä¸ä¼ æä»¶", |
| | | click: (editor) => { |
| | | const input = document.createElement("input"); |
| | | input.type = "file"; |
| | | input.accept = |
| | | "application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"; // æ¯æçæä»¶ç±»å |
| | | input.onchange = (e) => { |
| | | const file = e.target.files[0]; |
| | | if (!file) return; |
| | | const formData = new FormData(); |
| | | formData.append("file", file); |
| | | |
| | | // ç¡®ä¿ process.env.VUE_APP_BASE_API æ¯æ£ç¡®ç |
| | | const uploadUrl = |
| | | process.env.VUE_APP_BASE_API + "/common/uploadSort"; |
| | | axios |
| | | .post(uploadUrl, formData, { |
| | | headers: { |
| | | Authorization: "Bearer " + getToken(), |
| | | }, |
| | | }) |
| | | .then((res) => { |
| | | const url = res.data.url; // è·åæä»¶å°å |
| | | // æå
¥æä»¶é¾æ¥ä½ä¸ºæ®éææ¬ |
| | | editor.txt.append(url + " "); |
| | | // æè
æå
¥æä»¶é¾æ¥ä½ä¸ºè¶
龿¥ |
| | | // editor.cmd.do('insertLink', { name: 'æä»¶é¾æ¥', url: url }); |
| | | }) |
| | | .catch((err) => { |
| | | console.error("æä»¶ä¸ä¼ 失败", err); |
| | | }); |
| | | }; |
| | | input.click(); |
| | | }, |
| | | }, |
| | | }, |
| | | }, |
| | | modes: "default", // or 'simple' |
| | | headers: { |
| | | Authorization: "Bearer " + getToken(), |
| | | }, |
| | | uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", |
| | | 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: `<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: { |
| | | 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" }, |
| | | // å
ç½çé¨åï¼æä»¶ï¼ |
| | | 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", |
| | | 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, |
| | | }, |
| | | }; |
| | | }, |
| | | activated() { |
| | | if (this.id != this.$route.query.id) { |
| | | this.gettabList(); |
| | | this.getList(); |
| | | this.illnessUpdate(); |
| | | } |
| | | }, |
| | | |
| | | 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"); |
| | | }, |
| | | }, |
| | | beforeDestroy() { |
| | | const editor = this.editor; |
| | | if (editor == null) return; |
| | | editor.destroy(); // ç»ä»¶éæ¯æ¶ï¼åæ¶éæ¯ç¼è¾å¨ |
| | | }, |
| | | methods: { |
| | | onCreated(editor) { |
| | | this.editor = Object.seal(editor); // ä¸å®è¦ç¨ Object.seal()ï¼å¦å伿¥é |
| | | }, |
| | | |
| | | // --------------------------------- |
| | | 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; |
| | | }); |
| | | } |
| | | // 宣æåç±» |
| | | getheLibraryAssort({ hetype: 1 }).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) { |
| | | // å建ä¸ä¸ªæ°çDOMè§£æå¨ |
| | | var parser = new DOMParser(); |
| | | // å°å符串解æä¸ºææ¡£å¯¹è±¡ |
| | | 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å
ç´ å¹¶æ¿æ¢src屿§ |
| | | videos.forEach(function (video) { |
| | | var src = video.getAttribute("src"); |
| | | if (src.startsWith(oldUrlBase)) { |
| | | video.setAttribute("src", src.replace(oldUrlBase, newUrlBase)); |
| | | } |
| | | }); |
| | | |
| | | // å°ä¿®æ¹åçææ¡£è½¬æ¢åå符串 |
| | | 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() { |
| | | 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]); |
| | | }); |
| | | } |
| | | }); |
| | | // æ°ç»å¯¹è±¡æ¥idæ°ç» |
| | | 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("ä¸ä¼ æå"); |
| | | //æ¼æ¥åºä¸ä¼ çå¾ç卿å¡å¨ç宿´å°å |
| | | 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); |
| | | this.fileName = this.getFileNameFromPath(res.url); |
| | | |
| | | // è·å坿æ¬ç»ä»¶å®ä¾ |
| | | let quill = this.$refs.customQuillEditor.quill; |
| | | // è·åå
æ æå¨ä½ç½® |
| | | let length = quill.getSelection().index; |
| | | // æå
¥å¾ç||è§é¢ res.info为æå¡å¨è¿åçå¾çå°å |
| | | if (type == "mp4" || type == "MP4" || type == "avi" || type == "AVI") { |
| | | 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); |
| | | }, |
| | | // ä¸ä¼ 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 src="@wangeditor/editor/dist/css/style.css"></style> |
| | | <style src="@/assets/styles/global.css"></style> |
| | | <style lang="scss" scoped> |
| | | .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 { |
| | | font-size: 24px; |
| | | height: 30px; |
| | | border-left: 3px solid #41a1be; |
| | | padding-left: 3px; |
| | | |
| | | 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; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- 宣æå
容 --> |
| | | <!-- 宣æå
容 --> |
| | | <div v-if="Editprogress == 2"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4"> |
| | |
| | | </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"> --> |
| | | |
| | | <!-- </el-col> |
| | | </el-row> --> |
| | | </el-form> |
| | | </div> |
| | | <!-- <div> |
| | | <div id="quillEditorQiniu"> |
| | | <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> |
| | | <quill-editor |
| | | class="editor" |
| | | v-model="content" |
| | | ref="customQuillEditor" |
| | | :options="editorOption" |
| | | @blur="onEditorBlur" |
| | | @focus="onEditorFocus" |
| | | @change="onEditorChange" |
| | | > |
| | | </quill-editor> |
| | | </div> |
| | | </div> --> |
| | | <!-- æ°ç»ä»¶ --> |
| | | <!-- WangEditor 坿æ¬ç¼è¾å¨ --> |
| | | <div style="border: 1px solid #ccc; margin: 10px"> |
| | | <Toolbar |
| | | style="border-bottom: 1px solid #ccc" |
| | | :editor="editor" |
| | | :editor="editorRef" |
| | | :defaultConfig="toolbarConfig" |
| | | :mode="modes" |
| | | :mode="mode" |
| | | /> |
| | | <Editor |
| | | style="height: 500px; overflow-y: hidden" |
| | | v-model="content" |
| | | style="height: 800px; overflow-y: hidden" |
| | | v-model:html="content" |
| | | :defaultConfig="editorConfig" |
| | | :mode="modes" |
| | | @onCreated="onCreated" |
| | | :mode="mode" |
| | | @onCreated="handleEditorCreated" |
| | | /> |
| | | </div> |
| | | |
| | | <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="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> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { quillEditor } from "vue-quill-editor"; |
| | | import { Editor, Toolbar } from "@wangeditor/editor-for-vue"; |
| | | import '@wangeditor/editor/dist/css/style.css'; |
| | | import axios from "axios"; |
| | | import { getToken } from "@/utils/auth"; |
| | | |
| | | import { |
| | | getheLibraryAssort, |
| | | delheLibraryAssort, |
| | | addheLibraryAssort, |
| | | addtargetillness, |
| | | getlibrarylist, |
| | | dellibraryinfo, |
| | | deltargetillness, |
| | | compilelibrary, |
| | | addrichText, |
| | | getlibraryinfo, |
| | | getillnesslist, |
| | | illnesslistget, |
| | | getillness, |
| | | } from "@/api/AiCentre/index"; |
| | | import OptionalForm from "@/components/OptionalForm"; //æ£åç»ä»¶ |
| | | |
| | | import OptionalForm from "@/components/OptionalForm"; |
| | | 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" è¿ä¸ªä»£ç å æå³å¯ |
| | | 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 { |
| | | name: "aEducationinfo", |
| | | components: { OptionalForm, Editor, Toolbar }, |
| | | data() { |
| | | return { |
| | | editor: null, |
| | | content: "<p>hello</p>", |
| | | toolbarConfig: {}, |
| | | // ç¼è¾å¨å®ä¾ |
| | | editorRef: null, |
| | | |
| | | // ç¼è¾å¨å
容 |
| | | content: "<p>æµè¯</p>", |
| | | |
| | | // ç¼è¾å¨æ¨¡å¼ |
| | | mode: "default", |
| | | |
| | | // å·¥å
·æ é
ç½® |
| | | toolbarConfig: { |
| | | excludeKeys: [ |
| | | "group-video", |
| | | "insertVideo", |
| | | "uploadVideo", |
| | | "emotion", |
| | | "codeBlock", |
| | | ] |
| | | }, |
| | | |
| | | // ç¼è¾å¨é
ç½® |
| | | editorConfig: { |
| | | placeholder: "请è¾å
¥å
容...", |
| | | menus: [ |
| | | "head", |
| | | "bold", |
| | | "italic", |
| | | "underline", |
| | | "image", |
| | | "link", |
| | | "list", |
| | | "undo", |
| | | "redo", |
| | | "file", // æ·»å èªå®ä¹æä»¶ä¸ä¼ èå |
| | | ], |
| | | uploadImgServer: process.env.VUE_APP_BASE_API + "/common/uploadSort", // å¾çä¸ä¼ æ¥å£ |
| | | uploadImgHeaders: { |
| | | Authorization: "Bearer " + getToken(), |
| | | }, // èªå®ä¹ä¸ä¼ ç headers |
| | | uploadImgParams: { key: "value" }, // èªå®ä¹ä¸ä¼ çåæ° |
| | | uploadImgMaxSize: 2 * 1024 * 1024, // å¾çæå¤§å¤§å°ï¼åä½ Byte |
| | | uploadImgMaxLength: 1, // 䏿¬¡æå¤ä¸ä¼ å¾çæ°é |
| | | uploadImgTimeout: 3 * 60 * 1000, // è¶
æ¶æ¶é´ï¼åä½ ms |
| | | uploadImgHooks: { |
| | | customInsert: (insertImgFn, result) => { |
| | | const url = result.url; // è·åå¾çå°å |
| | | insertImgFn(url); // æå
¥å¾ç |
| | | }, |
| | | }, |
| | | customMenus: { |
| | | file: { |
| | | tip: "ä¸ä¼ æä»¶", |
| | | click: (editor) => { |
| | | const input = document.createElement("input"); |
| | | input.type = "file"; |
| | | input.accept = |
| | | "application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"; // æ¯æçæä»¶ç±»å |
| | | input.onchange = (e) => { |
| | | const file = e.target.files[0]; |
| | | if (!file) return; |
| | | placeholder: "请è¾å
¥å®£æå
容...", |
| | | MENU_CONF: { |
| | | uploadImage: { |
| | | server: process.env.VUE_APP_BASE_API + "/common/uploadSort", |
| | | fieldName: "file", |
| | | maxFileSize: 2 * 1024 * 1024, |
| | | maxNumberOfFiles: 1, |
| | | allowedFileTypes: ["image/*"], |
| | | headers: { |
| | | Authorization: "Bearer " + getToken() |
| | | }, |
| | | customUpload: async (file, insertFn) => { |
| | | try { |
| | | const formData = new FormData(); |
| | | formData.append("file", file); |
| | | |
| | | // ç¡®ä¿ process.env.VUE_APP_BASE_API æ¯æ£ç¡®ç |
| | | const uploadUrl = |
| | | process.env.VUE_APP_BASE_API + "/common/uploadSort"; |
| | | axios |
| | | .post(uploadUrl, formData, { |
| | | const response = await axios.post( |
| | | process.env.VUE_APP_BASE_API + "/common/uploadSort", |
| | | formData, |
| | | { |
| | | headers: { |
| | | Authorization: "Bearer " + getToken(), |
| | | }, |
| | | }) |
| | | .then((res) => { |
| | | const url = res.data.url; // è·åæä»¶å°å |
| | | // æå
¥æä»¶é¾æ¥ä½ä¸ºæ®éææ¬ |
| | | editor.txt.append(url + " "); |
| | | // æè
æå
¥æä»¶é¾æ¥ä½ä¸ºè¶
龿¥ |
| | | // editor.cmd.do('insertLink', { name: 'æä»¶é¾æ¥', url: url }); |
| | | }) |
| | | .catch((err) => { |
| | | console.error("æä»¶ä¸ä¼ 失败", err); |
| | | }); |
| | | }; |
| | | input.click(); |
| | | }, |
| | | }, |
| | | }, |
| | | "Content-Type": "multipart/form-data", |
| | | Authorization: "Bearer " + getToken() |
| | | } |
| | | } |
| | | ); |
| | | |
| | | if (response.data && response.data.url) { |
| | | let imgUrl = response.data.url; |
| | | imgUrl = imgUrl.replace( |
| | | "http://218.108.11.22:8093/profile-api/upload", |
| | | "http://192.168.191.181:8095/profile/upload" |
| | | ); |
| | | insertFn(imgUrl); |
| | | } |
| | | } catch (error) { |
| | | console.error("å¾çä¸ä¼ 失败", error); |
| | | this.$message.error("å¾çä¸ä¼ 失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | modes: "default", // or 'simple' |
| | | // ä¸ä¼ é
ç½® |
| | | headers: { |
| | | Authorization: "Bearer " + getToken(), |
| | | Authorization: "Bearer " + getToken() |
| | | }, |
| | | uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", |
| | | 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: `<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: "", //æä»¶å |
| | | |
| | | // 页é¢ç¶æ |
| | | Editprogress: 1, |
| | | loading: false, |
| | | |
| | | // è¡¨åæ°æ® |
| | | ruleForm: { |
| | | campus: [], |
| | | heLibraryTagList: [], |
| | | tempDetpRelevances: [], |
| | | version: "1.0.1", |
| | | preachname: "", |
| | | preachcontent: "", |
| | | isAvailable: "", |
| | | suitway: [] |
| | | }, |
| | | |
| | | // å
¶ä»æ°æ® |
| | | dynamicTags: [], |
| | | sortlist: [], |
| | | courtyardlist: [], |
| | | illnesslist: [], |
| | | deptList: [], |
| | | tempDetpRelevanceslist: [], |
| | | variablelist: [ |
| | | { variatename: "å§å", variate: "${name}", default: 1 }, |
| | | { variatename: "çµè¯", variate: "${phone}", default: 1 }, |
| | | { variatename: "ç
æ
", variate: "${illness}", default: 1 } |
| | | ], |
| | | |
| | | props: { |
| | | multiple: true, |
| | | value: "deptId", |
| | | label: "deptName" |
| | | }, |
| | | fileName: "", //æä»¶å |
| | | 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: [], //å¤éé¢éä¸ |
| | |
| | | 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" }, |
| | | // å
ç½çé¨åï¼æä»¶ï¼ |
| | | oldPattern: "http://192.168.191.181:8095/profile/upload", |
| | | // å
ç½çé¨åï¼æä»¶ï¼ |
| | |
| | | ], |
| | | addvalue: "æ·»å é¢ç®", |
| | | |
| | | variablelist: [ |
| | | { variatename: "å§å", variate: "${name}", default: 1 }, |
| | | { variatename: "çµè¯", variate: "${phone}", default: 1 }, |
| | | { variatename: "ç
æ
", variate: "${illness}", default: 1 }, |
| | | ], |
| | | |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | |
| | | this.courtyardlist = store.getters.courtyardlist; |
| | | }, |
| | | watch: { |
| | | content(newVal, oldVal) { |
| | | //this.$emit('input', newVal); |
| | | console.log(newVal, "A"); |
| | | console.log(oldVal, "B"); |
| | | }, |
| | | // content(newVal, oldVal) { |
| | | // //this.$emit('input', newVal); |
| | | // console.log(newVal, "A"); |
| | | // console.log(oldVal, "B"); |
| | | // }, |
| | | content(newVal) { |
| | | // å
容ååæ¶è§¦åï¼å¯ä»¥å¨è¿éå¤çèªå¨ä¿åçé»è¾ |
| | | this.$emit('content-change', newVal) |
| | | } |
| | | }, |
| | | beforeDestroy() { |
| | | const editor = this.editor; |
| | |
| | | onCreated(editor) { |
| | | this.editor = Object.seal(editor); // ä¸å®è¦ç¨ Object.seal()ï¼å¦å伿¥é |
| | | }, |
| | | // ç¼è¾å¨å建åè° |
| | | handleEditorCreated(editor) { |
| | | this.editorRef = editor; |
| | | console.log("ç¼è¾å¨å·²å建", editor); |
| | | }, |
| | | |
| | | // 鿝ç¼è¾å¨ |
| | | destroyEditor() { |
| | | if (this.editorRef) { |
| | | this.editorRef.destroy(); |
| | | this.editorRef = null; |
| | | } |
| | | }, |
| | | |
| | | // è·åå
容HTML |
| | | getEditorContent() { |
| | | return this.content; |
| | | }, |
| | | // --------------------------------- |
| | | processElement(element) { |
| | | return { ...element, isoperation: null }; |
| | |
| | | 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); |
| | | // }); |
| | | // }, |
| | | // è·åè¿ç¨å
容 |
| | | Getmissioncontent(url) { |
| | | axios |
| | | .get(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); |
| | | console.error("è·åå
容失败:", error); |
| | | }); |
| | | }, |
| | | // å¤çurl |
| | | }, |
| | | // çå½å¨æé©å |
| | | beforeUnmount() { |
| | | this.destroyEditor() |
| | | }, |
| | | }; |
| | | </script> |
| | | <style src="@wangeditor/editor/dist/css/style.css"></style> |
| | | <style src="@/assets/styles/global.css"></style> |
| | | <style src="@wangeditor/editor/dist/css/style.css"></style> |
| | | <style lang="scss" scoped> |
| | | .sidecolumn { |
| | | // width: 300px; |
| | |
| | | > |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="æå¡å½¢å¼"> |
| | | <SortCheckbox |
| | | v-model="checkList" |
| | | :options="checkboxlist" |
| | | value-key="value" |
| | | label-key="label" |
| | | @change="checkSelectionChange" |
| | | /> |
| | | </el-form-item> --> |
| | | <el-form-item label="æ§è¡å¨æ" prop="longTask"> |
| | | <el-radio-group v-model="form.longTask"> |
| | | <el-radio :label="0">èªå®ä¹å¨æ</el-radio> |
| | |
| | | } from "@/api/AiCentre/index"; |
| | | import OptionalForm from "@/components/OptionalForm"; //ç¾ç
æ·»å ç»ä»¶ |
| | | import SFtable from "@/components/SFtable"; //è¡¨æ ¼ç»ä»¶ |
| | | import SortCheckbox from "@/components/SortCheckbox"; //è¡¨æ ¼ç»ä»¶ |
| | | import { MessageBox } from "element-ui"; |
| | | |
| | | export default { |
| | |
| | | pageNum: 1, // |
| | | pageSize: 10, |
| | | }, |
| | | checkList: "", |
| | | checkList: '', |
| | | selectedOrder: [], |
| | | deliverytopqueryParams: { |
| | | pageNum: 1, // |
| | | pageSize: 10, |
| | |
| | | serviceType: null, |
| | | }; |
| | | }, |
| | | components: { SFtable, OptionalForm }, |
| | | components: { SFtable, OptionalForm, SortCheckbox }, |
| | | |
| | | created() { |
| | | this.appraiselist = store.getters.appraiselist; |
| | |
| | | } |
| | | }); |
| | | }, |
| | | checkSelectionChange(selectedValues, selectedOrder) { |
| | | this.selectedOrder = selectedOrder; |
| | | console.log("å½åéä¸:", selectedValues); |
| | | console.log("éä¸é¡ºåº:", selectedOrder); |
| | | }, |
| | | getillness(id) { |
| | | if (id) { |
| | | getillness({ outid: id, type: 5 }).then((res) => { |