From b27571cf78742a5de2e1d43c4af5f8cc436860e2 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 12 四月 2024 15:51:02 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/system/threshold/index.vue | 16 ++- src/views/system/point/index.vue | 2 src/main.js | 1 src/views/system/equipment/index.vue | 76 ++++--------------- src/components/Editor/index.vue | 96 +++++++++++++++++------ src/views/system/report/index.vue | 8 +- src/views/system/work-order/index.vue | 4 7 files changed, 104 insertions(+), 99 deletions(-) diff --git a/src/components/Editor/index.vue b/src/components/Editor/index.vue index 8981d76..692d899 100644 --- a/src/components/Editor/index.vue +++ b/src/components/Editor/index.vue @@ -1,19 +1,10 @@ <template> <div> - <el-upload - :action="uploadUrl" - :before-upload="handleBeforeUpload" - :on-success="handleUploadSuccess" - :on-error="handleUploadError" - name="file" - :show-file-list="false" - :headers="headers" - style="display: none" - ref="upload" - v-if="this.type == 'url'" - > + <el-upload :action="uploadUrl" :before-upload="handleBeforeUpload" :on-success="handleUploadSuccess" + :on-error="handleUploadError" name="file" :show-file-list="false" :headers="headers" style="display: none" + ref="upload" v-if="this.type == 'url'"> </el-upload> - <div class="editor" ref="editor" :style="styles"></div> + <div class="editor" ref="editor" :style="styles" @paste="onPaste($event)"></div> </div> </template> @@ -23,6 +14,8 @@ import "quill/dist/quill.snow.css"; import "quill/dist/quill.bubble.css"; import { getToken } from "@/utils/auth"; +import request from '@/utils/request'; + export default { name: "Editor", @@ -47,7 +40,7 @@ type: Boolean, default: false, }, - /* 涓婁紶鏂囦欢澶у皬闄愬埗(MB) */ + // 涓婁紶鏂囦欢澶у皬闄愬埗(MB) fileSize: { type: Number, default: 5, @@ -122,6 +115,45 @@ this.Quill = null; }, methods: { + /**鐩戝惉瀵屾枃鏈紪杈戝櫒鐨勭矘璐翠簨浠� 閽堝鍥剧墖杩涜鎿嶄綔 */ + onPaste(evt) { + // 鑾峰彇瑙f瀽 绮樿创鐨勫唴瀹� + //鍏堝垽鏂矘璐寸殑鍐呭鏄惁鏄浘鐗� + if ( + evt.clipboardData && + evt.clipboardData.files && + evt.clipboardData.files.length + ) { + evt.preventDefault(); + [].forEach.call(evt.clipboardData.files, (file) => { + if (!file.type.match(/^image\/(gif|jpe?g|a?png|bmp)/i)) { + return; + } + const formData = new FormData(); + formData.append("file", file); + //甯﹁姹傚ご杩囬獙璇� + const config = { + headers: { + "Authorization": "Bearer " + getToken() + } + }; + request.post("/common/upload", formData, config).then( + res => { + if (res.code == 200) { + let length = this.Quill.getSelection().index; //鍏夋爣浣嶇疆 + // 鎻掑叆鍥剧墖鍦板潃 + this.Quill.insertEmbed(length, "image", 'https://s.rongeying.cn/' + res.fileName); + // 鍏夋爣鍚庣Щ涓�浣� + this.Quill.setSelection(length + 1); + } else { + this.$message.error("鍥剧墖鎻掑叆澶辫触"); + } + }) + }); + } + + }, + init() { const editor = this.$refs.editor; this.Quill = new Quill(editor, this.options); @@ -129,6 +161,7 @@ if (this.type == 'url') { let toolbar = this.Quill.getModule("toolbar"); toolbar.addHandler("image", (value) => { + this.uploadType = "image"; if (value) { this.$refs.upload.$children[0].$refs.input.click(); } else { @@ -157,13 +190,6 @@ }, // 涓婁紶鍓嶆牎妫�鏍煎紡鍜屽ぇ灏� handleBeforeUpload(file) { - const type = ["image/jpeg", "image/jpg", "image/png", "image/svg"]; - const isJPG = type.includes(file.type); - // 妫�楠屾枃浠舵牸寮� - if (!isJPG) { - this.$message.error(`鍥剧墖鏍煎紡閿欒!`); - return false; - } // 鏍℃鏂囦欢澶у皬 if (this.fileSize) { const isLt = file.size / 1024 / 1024 < this.fileSize; @@ -175,14 +201,15 @@ return true; }, handleUploadSuccess(res, file) { + // 鑾峰彇瀵屾枃鏈粍浠跺疄渚� + let quill = this.Quill; // 濡傛灉涓婁紶鎴愬姛 if (res.code == 200) { - // 鑾峰彇瀵屾枃鏈粍浠跺疄渚� - let quill = this.Quill; // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃� let length = quill.getSelection().index; // 鎻掑叆鍥剧墖 res.url涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧� - quill.insertEmbed(length, "image", process.env.VUE_APP_BASE_API + res.fileName); + // quill.insertEmbed(length, "image", 'https://rongeying.cn/ronge/' + res.fileName); + quill.insertEmbed(length, "image", 'https://s.rongeying.cn/' + res.fileName); // 璋冩暣鍏夋爣鍒版渶鍚� quill.setSelection(length + 1); } else { @@ -197,76 +224,95 @@ </script> <style> -.editor, .ql-toolbar { +.editor, +.ql-toolbar { white-space: pre-wrap !important; line-height: normal !important; } + .quill-img { display: none; } + .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: "绛夊瀛椾綋"; diff --git a/src/main.js b/src/main.js index 7944e09..ba602b0 100644 --- a/src/main.js +++ b/src/main.js @@ -58,6 +58,7 @@ Vue.prototype.download = download Vue.prototype.handleTree = handleTree Vue.prototype.getToken = getToken +Vue.prototype.$uploadUrl = process.env.VUE_APP_BASE_API + "/common/upload" // 鍏ㄥ眬缁勪欢鎸傝浇 Vue.component('DictTag', DictTag) diff --git a/src/views/system/equipment/index.vue b/src/views/system/equipment/index.vue index ada2e73..1b6dd83 100644 --- a/src/views/system/equipment/index.vue +++ b/src/views/system/equipment/index.vue @@ -16,28 +16,24 @@ <p>璁惧鎬绘暟</p > </div> <div class="dashboard-item"> + <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3> + <p>浜鸿劯璁惧鏁�</p > + </div> + <div class="dashboard-item"> + <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3> + <p>杞﹁締璁惧鏁�</p > + </div> + <div class="dashboard-item"> + <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3> + <p>瑙嗛璁惧鏁�</p > + </div> + <div class="dashboard-item"> <h3 style="color: #3eba45">{{ count.totalMembers }}</h3> <p>姝e父鏁�</p > </div> <div class="dashboard-item"> <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3> <p>寮傚父鏁�</p > - </div> - <div class="dashboard-item"> - <h3>{{ count.totalViews }}</h3> - <p>鐢熸垚寮傚父宸ュ崟鏁�</p > - </div> - <div class="dashboard-item"> - <h3>{{ count.noStore }}</h3> - <p>鏃犲瓨鍌�</p > - </div> - <div class="dashboard-item"> - <h3>{{ count.partStore }}</h3> - <p>閮ㄥ垎瀛樺偍</p > - </div> - <div class="dashboard-item"> - <h3>{{ count.viewsPercentage }}%</h3> - <p>璁惧杩愯鐜�</p > </div> </div> </el-col> @@ -84,21 +80,6 @@ /> </el-select> </el-form-item> - <el-form-item label="鏄惁鐢熸垚寮傚父宸ュ崟" prop="defaultOrder" label-width="130px"> - <el-select - v-model="queryParams.defaultOrder" - placeholder="鏄惁鐢熸垚寮傚父宸ュ崟" - clearable - style="width: 170px" - > - <el-option - v-for="dict in dict.type.platform_yes_no" - :key="dict.value" - :label="dict.label" - :value="dict.value" - /> - </el-select> - </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> @@ -130,16 +111,8 @@ <dict-tag :options="dict.type.camera_state" :value="scope.row.onState"/> </template> </el-table-column> - <el-table-column label="鏄惁鐢熸垚寮傚父宸ュ崟" align="center" prop="defaultOrder" width="180" v-if="columns[3].visible"> - <template slot-scope="scope"> - <dict-tag :options="dict.type.platform_yes_no" :value="scope.row.defaultOrder"/> - </template> - </el-table-column> - <el-table-column label="鏁版嵁鏃堕棿" align="center" prop="installedTime" width="180" v-if="columns[4].visible"/> - <el-table-column label="绠$悊鍗曚綅" align="center" prop="managementUnit" width="180" v-if="columns[5].visible"/> - <el-table-column label="淇′护鏃跺欢(ms)" align="center" prop="sipDelay" width="180" v-if="columns[6].visible"/> - <el-table-column label="瑙嗛鏃跺欢(ms)" align="center" prop="videoDelay" width="180" v-if="columns[7].visible"/> - <el-table-column label="鍏抽敭甯ф椂寤�(ms)" align="center" prop="iframeDelay" width="180" v-if="columns[8].visible"/> + <el-table-column label="鏁版嵁鏃堕棿" align="center" prop="installedTime" width="180" v-if="columns[3].visible"/> + <el-table-column label="绠$悊鍗曚綅" align="center" prop="managementUnit" width="180" v-if="columns[4].visible"/> <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" fixed="right"> <template slot-scope="scope"> <el-button @@ -176,25 +149,12 @@ </el-col> <el-col :span="24"> <el-form-item label="鍦板潃锛�">{{ form.address }}</el-form-item> - <el-form-item label="鏄惁鐢熸垚寮傚父宸ュ崟锛�"> - <div v-if="form.defaultOrder === 1">鏄�</div> - <div v-else-if="form.defaultOrder === 2">鍚�</div> - </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="瀹夎鏃堕棿锛�">{{ form.installedTime }}</el-form-item> </el-col> <el-col :span="24"> <el-form-item label="绠$悊鍗曚綅锛�">{{ form.managementUnit }}</el-form-item> - </el-col> - <el-col :span="24"> - <el-form-item label="淇′护鏃跺欢(ms)锛�"></el-form-item> - </el-col> - <el-col :span="24"> - <el-form-item label="瑙嗛鏃跺欢(ms)锛�"></el-form-item> - </el-col> - <el-col :span="24"> - <el-form-item label="鍏抽敭甯ф椂寤�(ms)锛�"></el-form-item> </el-col> </el-row> </el-form> @@ -217,12 +177,8 @@ { key: 0, label: `鏍囩`, visible: true }, { key: 1, label: `鍖哄煙`, visible: true }, { key: 2, label: `璁惧鐘舵�乣, visible: true }, - { key: 3, label: `鏄惁鐢熸垚寮傚父宸ュ崟`, visible: true }, - { key: 4, label: `鏁版嵁鏃堕棿`, visible: true }, - { key: 5, label: `绠$悊鍗曚綅`, visible: true }, - { key: 6, label: `淇′护鏃跺欢`, visible: true }, - { key: 7, label: `瑙嗛鏃跺欢`, visible: true }, - { key: 8, label: `鍏抽敭甯ф椂寤禶, visible: true } + { key: 3, label: `鏁版嵁鏃堕棿`, visible: true }, + { key: 4, label: `绠$悊鍗曚綅`, visible: true }, ], count: { totalPosts: 0, diff --git a/src/views/system/point/index.vue b/src/views/system/point/index.vue index 5a84703..578d5c0 100644 --- a/src/views/system/point/index.vue +++ b/src/views/system/point/index.vue @@ -84,7 +84,7 @@ <el-table v-loading="loading" :data="pointList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="鐐逛綅鍚嶇О" align="center" prop="pointName" /> + <el-table-column label="鐐逛綅绫诲瀷" align="center" prop="pointType" /> <el-table-column label="鏍囩" align="center" prop="tag" > <span>{{important}}</span> </el-table-column> diff --git a/src/views/system/report/index.vue b/src/views/system/report/index.vue index f58d886..b302426 100644 --- a/src/views/system/report/index.vue +++ b/src/views/system/report/index.vue @@ -173,15 +173,15 @@ <el-option label="璁惧閬楀け" value="璁惧閬楀け"/> </el-select> </el-form-item> - <el-form-item label="鏈夋晥鏃堕棿"> + <el-form-item label="鎶ュ鏃堕棿" prop="expirTime"> <el-date-picker v-model="expirTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" - start-placeholder="鐢熸晥鏃ユ湡" - end-placeholder="澶辨晥鏃ユ湡" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" ></el-date-picker> </el-form-item> <el-form-item label="鎶ュ鍐呭" prop="reportContent"> @@ -332,7 +332,7 @@ { required: true, message: "璇烽�夋嫨鏁呴殰绫诲瀷", trigger: "blur" } ], expirTime: [ - { required: true, message: "璇烽�夋嫨鏈夋晥鏃堕棿", trigger: "blur" } + { required: true, message: "璇烽�夋嫨鎶ュ鏃堕棿", trigger: "blur" } ], } }; diff --git a/src/views/system/threshold/index.vue b/src/views/system/threshold/index.vue index 5b536ca..8b6e629 100644 --- a/src/views/system/threshold/index.vue +++ b/src/views/system/threshold/index.vue @@ -26,15 +26,17 @@ <el-table-column label="瓒呮椂澶╂暟" align="center" prop="timeout"/> <el-table-column label="宸ュ崟闃堝��" align="center" prop="indicator"> <template slot-scope="scope"> - <div v-for="item in JSON.parse(scope.row.indicator)" :key="item"> - {{ item.label }}锛歿{ item.value }} + <div v-for="item in JSON.parse(scope.row.indicator)" :key="item" style="display: flex;flex-direction: row"> + <div style="width: 120px;text-align: right">{{ item.label }}</div> + <div style="width: 60px;text-align: right">{{ item.value}}</div> </div> </template> </el-table-column> <el-table-column label="涓嬪彂闃堝��" align="center" prop="indicator"> <template slot-scope="scope"> - <div v-for="item in JSON.parse(scope.row.indicator)" :key="item"> - {{ item.label }}锛歿{ item.value2 }} + <div v-for="item in JSON.parse(scope.row.indicator)" :key="item" style="display: flex;flex-direction: row"> + <div style="width: 120px;text-align: right">{{ item.label }}</div> + <div style="width: 60px;text-align: right">{{ item.value2}}</div> </div> </template> </el-table-column> @@ -334,7 +336,7 @@ } </script> <style> -.el-input-half-width { - width: calc(50% - 6px); /* 鍑忓幓涓�浜涢棿闅� */ +.el-input-half-width { + width: calc(50% - 6px); /* 鍑忓幓涓�浜涢棿闅� */ } -</style> \ No newline at end of file +</style> diff --git a/src/views/system/work-order/index.vue b/src/views/system/work-order/index.vue index ad79c56..db3ec0d 100644 --- a/src/views/system/work-order/index.vue +++ b/src/views/system/work-order/index.vue @@ -170,7 +170,7 @@ <el-form-item label="鐜板満鍥剧墖" prop="picture"> <el-upload class="avatar-uploader" - action="/dev-api/common/upload" + :action="this.$uploadUrl" name="file" :headers="{'Authorization': 'Bearer ' + getToken()}" :on-success="pictureUploadSuccess" @@ -184,7 +184,7 @@ <el-form-item label="浣愯瘉鏉愭枡" prop="certificates"> <el-upload class="avatar-uploader" - action="/dev-api/common/upload" + :action="this.$uploadUrl" name="file" :headers="{'Authorization': 'Bearer ' + getToken()}" :on-success="certificateUploadSuccess" -- Gitblit v1.8.0