From e9717d6ebed478c4ff7ddbf539d1a591bbf5185a Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期三, 12 六月 2024 10:49:24 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
---
admin/src/components/common/RichEditor.vue | 395 ++++++++++++++++++++++++-----------
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java | 47 ++--
admin/src/views/task/index.vue | 14
admin/src/components/common/ImageCropper.vue | 15
admin/src/api/business/approve.js | 3
admin/src/filters/index.js | 6
admin/src/components/system/dict/DictDataManagerWindow.vue | 68 ++++-
admin/src/components/system/dict/OperaDictDataWindow.vue | 92 ++------
admin/src/views/meeting/rooms.vue | 2
9 files changed, 400 insertions(+), 242 deletions(-)
diff --git a/admin/src/api/business/approve.js b/admin/src/api/business/approve.js
index 4c96cf1..879f69b 100644
--- a/admin/src/api/business/approve.js
+++ b/admin/src/api/business/approve.js
@@ -12,6 +12,9 @@
}
})
}
+export function taskCenterHeadPC (data) {
+ return request.get('/visitsAdmin/cloudService/business/staging/taskCenterHeadPC', data)
+}
// 浠诲姟涓績 鍒楄〃
export function taskCenterPage (data) {
return request.post('/visitsAdmin/cloudService/business/staging/taskPage', data)
diff --git a/admin/src/components/common/ImageCropper.vue b/admin/src/components/common/ImageCropper.vue
index 7929744..d15179c 100644
--- a/admin/src/components/common/ImageCropper.vue
+++ b/admin/src/components/common/ImageCropper.vue
@@ -6,9 +6,12 @@
<vue-cropper
ref="cropper"
:img="imgSrc"
+ :width="options.width"
+ :height="options.height"
:canScale="options.canScale"
:autoCrop="options.autoCrop"
:canMove="options.canMove"
+ :output-size="options.outputSize"
:centerBox="options.centerBox"
:autoCropWidth="options.autoCropWidth"
:autoCropHeight="options.autoCropHeight"
@@ -17,11 +20,6 @@
</div>
<div class="previews">
<img style="width: 100px;height: 100px;border-radius: 50%;object-fit: cover" :src="cutImgSrc" alt="鍥剧墖">
- <!-- <el-image-->
- <!-- v-if="cutImgSrc"-->
- <!-- style="width: 100px; height: 100px;vertical-align: middle;border-radius: 50%;"-->
- <!-- :src="cutImgSrc"-->
- <!-- fit="fill"></el-image>-->
</div>
</div>
</div>
@@ -76,8 +74,11 @@
autoCrop: true,
canMove: false,
centerBox: true,
- autoCropWidth: 200,
- autoCropHeight: 200,
+ height: 300,
+ width: 300,
+ outputSize:{width: 300, height: 300},
+ autoCropWidth: 300,
+ autoCropHeight: 300,
fixed: true,
fixedNumber: [1, 1]
},
diff --git a/admin/src/components/common/RichEditor.vue b/admin/src/components/common/RichEditor.vue
index 7ed7fdc..bdcf1bf 100644
--- a/admin/src/components/common/RichEditor.vue
+++ b/admin/src/components/common/RichEditor.vue
@@ -1,162 +1,315 @@
<template>
- <div class="wang_editor">
- <Toolbar
- style="border-bottom: 1px solid #ccc"
- :editor="editor"
- :default-config="toolbarConfig"
- :mode="mode"
- />
- <Editor
- v-model="html"
- style="min-height: 200px"
- :default-config="editorConfig"
- :mode="mode"
- @onCreated="onCreated"
- />
+ <div :style="styleEditor">
+ <Toolbar style="border-bottom: 1px solid #ccc" :editor="editor" :defaultConfig="toolbarConfig" :mode="mode" />
+ <Editor style="height: 300px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode"
+ @onCreated="onCreated" @onChange="onChange" />
</div>
</template>
-
+<style src="@wangeditor/editor/dist/css/style.css"></style>
<script>
+import Vue from 'vue'
import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
-import '@wangeditor/editor/dist/css/style.css'
-import axios from 'axios'
-
-import { uploadFile } from '@/api'
-
-const uploadConfig = {
- action: uploadFile, // 蹇呭~鍙傛暟 鍥剧墖涓婁紶鍦板潃
- methods: 'POST', // 蹇呭~鍙傛暟 鍥剧墖涓婁紶鏂瑰紡
- token: '', // 鍙�夊弬鏁� 濡傛灉闇�瑕乼oken楠岃瘉锛屽亣璁句綘鐨則oken鏈夊瓨鏀惧湪sessionStorage
- name: 'file', // 蹇呭~鍙傛暟 鏂囦欢鐨勫弬鏁板悕
- size: 500, // 鍙�夊弬鏁� 鍥剧墖澶у皬锛屽崟浣嶄负Kb, 1M = 1024Kb
- accept: 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon' // 鍙�� 鍙笂浼犵殑鍥剧墖鏍煎紡
-}
-export default {
- components: {
- Editor,
- Toolbar
- },
+import { Loading } from 'element-ui';
+export default Vue.extend({
props: {
- info: {
+ richData: { // 鐖剁粍浠朵紶閫掔殑鏁版嵁
type: String,
default: ''
},
- default: {
- type: String,
- default: ''
- },
- placeholder: {
- type: String,
- default: '璇疯緭鍏ュ唴瀹�...'
- }
+ styleEditor: '',
+ readonly: false, // 鏄惁鍙互杈撳叆
},
- data () {
+ name:'RichEditor',
+ components: { Editor, Toolbar },
+ data() {
return {
editor: null,
- toolbarConfig: {},
- editorConfig: {
- placeholder: this.placeholder,
+ html: '',
+ toolbarConfig: { // 宸ュ叿鏍忛厤缃�
+ toolbarKeys: this.readonly ? ["fullScreen"]: [ // 鏄剧ず鎸囧畾鐨勮彍鍗曢」
+ "bold", // 绮椾綋
+ "underline", // 涓嬪垝绾�
+ "italic", // 鏂滀綋
+ "through", // 鍒犻櫎绾�
+ "code", // 琛屽唴浠g爜
+ "sub", // 涓嬫爣
+ "sup", // 涓婃爣
+ "clearStyle", // 娓呴櫎鏍煎紡
+ "color", // 瀛椾綋棰滆壊
+ "bgColor", // 鑳屾櫙鑹�
+ "fontSize", // 瀛楀彿
+ "fontFamily", // 瀛椾綋
+ "indent", // 澧炲姞缂╄繘
+ "delIndent", // 鍑忓皯缂╄繘
+ "justifyLeft", // 宸﹀榻�
+ "justifyRight", // 鍙冲榻�
+ "justifyCenter", // 灞呬腑瀵归綈
+ "justifyJustify", // 涓ょ瀵归綈
+ "lineHeight", // 琛岄珮
+ // "viewImageLink", // 鏌ョ湅閾炬帴
+ "divider", // 鍒嗗壊绾�
+ "emotion", // 琛ㄦ儏
+ "insertLink", // 鎻掑叆閾炬帴
+ // "editLink", // 淇敼閾炬帴
+ // "unLink", // 鍙栨秷閾炬帴
+ // "viewLink", // 鏌ョ湅閾炬帴
+ "codeBlock", // 浠g爜鍧�
+ "blockquote", // 寮曠敤
+ "headerSelect", // 鏍囬
+ // "header1", // 鏍囬1
+ // "header2", // 鏍囬2
+ // "header3", // 鏍囬3
+ // "header4", // 鏍囬4
+ // "header5", // 鏍囬5
+ // "todo", // 寰呭姙
+ "redo", // 閲嶅仛
+ "undo", // 鎾ら攢
+ // "enter", // 鍥炶溅
+ // "bulletedList", // 鏃犲簭鍒楄〃
+ // "numberedList", // 鏈夊簭鍒楄〃
+ // "codeSelectLang" // 閫夋嫨璇█
+ // 琛ㄦ牸鍔熻兘鍒嗙粍
+ /* {
+ key: 'table-style', // 蹇呭~锛岃浠� group 寮�澶�
+ title: '琛ㄦ牸', // 蹇呭~
+ // iconSvg: '<svg>....</svg>', // 鍙��
+ menuKeys: [
+ "insertTable", // 鎻掑叆琛ㄦ牸
+ "deleteTable", // 鍒犻櫎琛ㄦ牸
+ "insertTableRow", // 鎻掑叆琛�
+ "deleteTableRow", // 鍒犻櫎琛�
+ "insertTableCol", // 鎻掑叆鍒�
+ "deleteTableCol", // 鍒犻櫎鍒�
+ "tableHeader", // 琛ㄥご
+ "tableFullWidth", // 瀹藉害鑷�傚簲
+ ] // 涓嬬骇鑿滃崟 key 锛屽繀濉�
+ },*/
+ // 涓婁紶鍥剧墖鍒嗙粍
+ /* {
+ key: 'img-style', // 蹇呭~锛岃浠� group 寮�澶�
+ title: '鍥剧墖', // 蹇呭~
+ // iconSvg: '<svg>....</svg>', // 鍙��
+ menuKeys: [
+ "uploadImage", // 涓婁紶鍥剧墖
+ "insertImage", // 缃戠粶鍥剧墖
+ "deleteImage", // 鍒犻櫎鍥剧墖
+ "editImage", // 缂栬緫鍥剧墖
+ "imageWidth30", // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮30
+ "imageWidth50", // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮50
+ "imageWidth100", // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮100
+ ] // 涓嬬骇鑿滃崟 key 锛屽繀濉�
+ },*/
+ // 瑙嗛鍒嗙粍
+ /* {
+ key: 'video-style', // 蹇呭~锛岃浠� group 寮�澶�
+ title: '瑙嗛', // 蹇呭~
+ // iconSvg: '<svg>....</svg>', // 鍙��
+ menuKeys: [
+ "insertVideo", // 鎻掑叆缃戠粶瑙嗛
+ "uploadVideo", // 涓婁紶瑙嗛
+ "editVideoSize", // 淇敼瑙嗛灏哄
+ ] // 涓嬬骇鑿滃崟 key 锛屽繀濉�
+ },*/
+ "fullScreen", // 鍏ㄥ睆
+ ],
+ excludeKeys: [ // 闅愯棌鎸囧畾鐨勮彍鍗曢」
+ // 'headerSelect',
+ // 'video-style'
+ // 鎺掗櫎鑿滃崟缁勶紝鍐欒彍鍗曠粍 key 鐨勫�煎嵆鍙�
+ ],
+
+ },
+ editorConfig: { // 缂栬緫鍣ㄩ厤缃�
+ placeholder: '璇疯緭鍏ュ唴瀹�...',
+ readOnly: this.readonly, // 鏄惁鍙锛岄粯璁alse
+ autoFocus: false, // 鏄惁鑷姩focus锛岄粯璁や负true
+ scroll: true, // 閰嶇疆缂栬緫鍣ㄦ槸鍚︽敮鎸佹粴鍔紝榛樿涓� true 銆傛敞鎰忥紝姝ゆ椂涓嶈鍥哄畾 editor-container 鐨勯珮搴︼紝璁剧疆涓�涓� min-height 鍗冲彲銆�
+ maxLength: 20000, // 鏈�澶ч檺鍒讹紝閬垮厤鍐呭杩囧鍗¢】
MENU_CONF: {
+ // 鍥剧墖涓婁紶
uploadImage: {
- html: this.info,
- server: uploadFile,
+ server: process.env.VUE_APP_BASE_API + "/common/upload",
+ fieldName: 'file',
// 鍗曚釜鏂囦欢鐨勬渶澶т綋绉檺鍒讹紝榛樿涓� 2M
- maxFileSize: 5 * 1024 * 1024, // 1M
+ maxFileSize: 10 * 1024 * 1024, // 10M
+ // 鏈�澶氬彲涓婁紶鍑犱釜鏂囦欢锛岄粯璁や负 100
+ maxNumberOfFiles: 10,
// 閫夋嫨鏂囦欢鏃剁殑绫诲瀷闄愬埗锛岄粯璁や负 ['image/*'] 銆傚涓嶆兂闄愬埗锛屽垯璁剧疆涓� []
allowedFileTypes: ['image/*'],
- // 鑷畾涔変笂浼犲弬鏁帮紝渚嬪浼犻�掗獙璇佺殑 token 绛夈�傚弬鏁颁細琚坊鍔犲埌 formData 涓紝涓�璧蜂笂浼犲埌鏈嶅姟绔�
+ // 鑷畾涔変笂浼犲弬鏁帮紝渚嬪浼犻�掗獙璇佺殑 token 绛夈�傚弬鏁颁細琚坊鍔犲埌 formData 涓紝涓�璧蜂笂浼犲埌鏈嶅姟绔��
meta: {
- token: '',
- otherKey: '',
- folder: 'COURSE_IMG'
},
+ // 灏� meta 鎷兼帴鍒� url 鍙傛暟涓紝榛樿 false
+ metaWithUrl: false,
+ // 鑷畾涔夊鍔� http header
+ // headers: { Authorization: "Bearer " + getToken() },
+ // 璺ㄥ煙鏄惁浼犻�� cookie 锛岄粯璁や负 false
+ withCredentials: true,
+ // 瓒呮椂鏃堕棿锛岄粯璁や负 10 绉�
+ timeout: 10 * 1000, //10 绉�
+ // 涓婁紶鍓�
+ onBeforeUpload(files) {
+ Loading.service({
+ lock: true,
+ text: '涓婁紶涓�...',
+ spinner: 'el-icon-loading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ });
+ return files;
+ },
+ // 鑷畾涔夋彃鍏ュ浘鐗�
+ customInsert(res, insertFn) {
+ console.log(res);
+ // 鍥犱负鑷畾涔夋彃鍏ュ鑷磑nSuccess涓巓nFailed鍥炶皟鍑芥暟涓嶈捣浣滅敤,鑷繁鎵嬪姩澶勭悊
+ // 鍏堝叧闂瓑寰呯殑Message
+ Loading.service({
+ lock: true,
+ text: '涓婁紶涓�...',
+ spinner: 'el-icon-loading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ }).close();
+ if (res.code === 200) {
+ // Message.success({
+ // message: `${res.data.originalName} 涓婁紶鎴愬姛`
+ // });
+ } else {
+ // Message.error({
+ // message: `${res.data.originalName} 涓婁紶澶辫触锛岃閲嶆柊灏濊瘯`
+ // });
+ }
+ insertFn(res.url, res.originalFilename, res.newFileName);
+ },
+
+ // 鍗曚釜鏂囦欢涓婁紶鎴愬姛涔嬪悗
+ onSuccess(file, res) {
+ console.log(`${file.originalFilename} 涓婁紶鎴愬姛`, res);
+ },
+ // 鍗曚釜鏂囦欢涓婁紶澶辫触
+ onFailed(file, res) {
+ console.log(`${file.originalFilename} 涓婁紶澶辫触`, res);
+ },
+ // 涓婁紶杩涘害鐨勫洖璋冨嚱鏁�
+ onProgress(progress) {
+ console.log('progress', progress);
+ // progress 鏄� 0-100 鐨勬暟瀛�
+ },
+ // 涓婁紶閿欒锛屾垨鑰呰Е鍙� timeout 瓒呮椂
+ onError(file, err, res) {
+ console.log(`${file.originalFilename} 涓婁紶鍑洪敊`, err, res);
+ }
+ },
+ // 瑙嗛涓婁紶
+ uploadVideo: {
+ fieldName: 'file',
+ server: process.env.VUE_APP_BASE_API + "/common/upload",
+ // 鍗曚釜鏂囦欢鐨勬渶澶т綋绉檺鍒讹紝榛樿涓� 10M
+ maxFileSize: 50 * 1024 * 1024, // 50M
+ // 鏈�澶氬彲涓婁紶鍑犱釜鏂囦欢锛岄粯璁や负 5
+ maxNumberOfFiles: 3,
+ // 閫夋嫨鏂囦欢鏃剁殑绫诲瀷闄愬埗锛岄粯璁や负 ['video/*'] 銆傚涓嶆兂闄愬埗锛屽垯璁剧疆涓� []
+ allowedFileTypes: ['video/*'],
+ // 鑷畾涔変笂浼犲弬鏁帮紝渚嬪浼犻�掗獙璇佺殑 token 绛夈�傚弬鏁颁細琚坊鍔犲埌 formData 涓紝涓�璧蜂笂浼犲埌鏈嶅姟绔��
+ meta: {
+ // token: 'xxx',
+ // otherKey: 'yyy'
+ },
+ // 灏� meta 鎷兼帴鍒� url 鍙傛暟涓紝榛樿 false
+ metaWithUrl: false,
+
// 鑷畾涔夊鍔� http header
headers: {
- token: localStorage.getItem('token') || ''
- // Accept: 'text/x-json',
+ // Authorization: "Bearer " + getToken()
// otherKey: 'xxx'
},
// 璺ㄥ煙鏄惁浼犻�� cookie 锛岄粯璁や负 false
withCredentials: true,
- // 瓒呮椂鏃堕棿锛岄粯璁や负 10 绉�
- timeout: 5 * 1000, // 5 绉�
- onSuccess (file, res) { // TS 璇硶
- // onSuccess(file, res) { // JS 璇硶
- console.log(`${file.name} 涓婁紶鎴愬姛`, res)
+ // 瓒呮椂鏃堕棿锛岄粯璁や负 30 绉�
+ timeout: 1000 * 1000, // 1000 绉�,
+ // 涓婁紶涔嬪墠瑙﹀彂
+ onBeforeUpload(file) {
+ return file;
},
- customUpload (file, insertFn) { // TS 璇硶
- // file 鍗抽�変腑鐨勬枃浠�
- // 鑷繁瀹炵幇涓婁紶锛屽苟寰楀埌鍥剧墖 url alt href
- // var form = new FormData()
- // form.append('image', file)
- // form.append('folder', 'COURSE_IMG')
- var formData = new FormData()
- formData.append(file.name, file)
- formData.append('image', file)
- formData.append('folder', 'member')
- // formData.append('type', '')
-
- var xhr = new XMLHttpRequest()
- xhr.open(uploadConfig.methods, uploadConfig.action, true)
- // 涓婁紶鏁版嵁鎴愬姛锛屼細瑙﹀彂
- xhr.send(formData)
- xhr.onreadystatechange = () => {
- // 鑻ュ搷搴斿畬鎴愪笖璇锋眰鎴愬姛
- if (xhr.readyState === 4 && xhr.status === 200) {
- const result = JSON.parse(xhr.responseText)
- console.log('result', result);
- insertFn(result.data.url, '', result.data.url)
- }
+ // 鑷畾涔夋彃鍏ヨ棰�
+ customInsert(res, insertFn) {
+ // 鍥犱负鑷畾涔夋彃鍏ュ鑷磑nSuccess涓巓nFailed鍥炶皟鍑芥暟涓嶈捣浣滅敤,鑷繁鎵嬪姩澶勭悊
+ // 鍏堝叧闂瓑寰呯殑Message
+ // Message.closeAll();
+ if (res.code === 200) {
+ // Message.success({
+ // message: `${res.data.originalName} 涓婁紶鎴愬姛`
+ // });
+ } else {
+ // Message.error({
+ // message: `${res.data.originalName} 涓婁紶澶辫触锛岃閲嶆柊灏濊瘯`
+ // });
}
+ insertFn(res.data.link, res.data.link);
},
- customInsert (res, insertFn) { // TS 璇硶
- // customInsert(res, insertFn) { // JS 璇硶
- // res 鍗虫湇鍔$鐨勮繑鍥炵粨鏋�
- console.log(res.data.url)
- // 浠� res 涓壘鍒� url alt href 锛岀劧鍚庢彃鍏ュ浘鐗�
- insertFn(res.url)
+ // 涓婁紶杩涘害鐨勫洖璋冨嚱鏁�
+ onProgress(progress) {
+ console.log(progress);
+ // onProgress(progress) { // JS 璇硶
+ // progress 鏄� 0-100 鐨勬暟瀛�
+ },
+ // // 鍗曚釜鏂囦欢涓婁紶鎴愬姛涔嬪悗
+ // onSuccess(file, res) {
+ // console.log(`${file.name} 涓婁紶鎴愬姛`, res);
+ // this.successMsg(file);
+ // },
+ // // 鍗曚釜鏂囦欢涓婁紶澶辫触
+ // onFailed(file, res) {
+ // console.log(`${file.name} 涓婁紶澶辫触`, res);
+ // this.errorMsg(file);
+ // },
+ // 涓婁紶閿欒锛屾垨鑰呰Е鍙� timeout 瓒呮椂
+ onError(file, err, res) {
+ console.log(`${file.name} 涓婁紶鍑洪敊`, err, res);
+ // Notification.error({
+ // title: '閿欒',
+ // message: `${file.name} 涓婁紶澶辫触锛岃閲嶆柊灏濊瘯`
+ // });
}
}
}
},
- mode: 'default' // or 'simple'
+ mode: 'default', // or 'simple'
}
},
- emits: ['input'],
- computed: {
- html: {
- get () {
- return this.info || ''
- },
- set (newValue) {
- this.$emit('input', newValue)
- }
- }
+ watch: {
+ richData: function (value) {
+ this.html = value
+ },
+ readonly: function (value) {
+ this.readonly = value
+ },
+ styleEditor: function (value) {
+ this.styleEditor = value
+ },
},
- mounted () {
- setTimeout(() => {
- this.info = this.default
- }, 1200)
+ mounted() {
+ // 闇�瑕佸湪缂栬緫鍣ㄥ垱寤哄畬姣曞悗鍦ㄨ祴鍊�
+ this.$nextTick(()=>{
+ this.html = this.richData
+ })
},
- beforeDestroy () {
+ methods: {
+ // 缂栬緫鍣ㄥ垱寤哄畬姣曟椂鐨勫洖璋冨嚱鏁�
+ onCreated(editor) {
+ this.editor = Object.seal(editor) // 涓�瀹氳鐢� Object.seal() 锛屽惁鍒欎細鎶ラ敊
+ },
+ // 缂栬緫鍣ㄥ唴瀹广�侀�夊尯鍙樺寲鏃剁殑鍥炶皟鍑芥暟
+ onChange(editor) {
+ this.$emit('getWangedditor', editor.getHtml())
+ console.log("onChange", editor.getHtml()); // onChange 鏃惰幏鍙栫紪杈戝櫒鏈�鏂板唴瀹�
+ },
+ },
+ beforeDestroy() {
+ // 缂栬緫鍣ㄩ攢姣佹椂鐨勫洖璋冨嚱鏁般�傝皟鐢� editor.destroy() 鍗冲彲閿�姣佺紪杈戝櫒
const editor = this.editor
if (editor == null) return
editor.destroy() // 缁勪欢閿�姣佹椂锛屽強鏃堕攢姣佺紪杈戝櫒
- },
- methods: {
- onCreated (editor) {
- this.editor = Object.seal(editor) // 涓�瀹氳鐢� Object.seal() 锛屽惁鍒欎細鎶ラ敊
- this.$emit('input', '123123')
- },
- test () {
- console.log(this.info)
- }
}
-}
+})
</script>
-
-<style lang="scss" scoped>
-.wang_editor {
- border: 1px solid;
-}
-</style>
+<style lang="scss">
+</style>>
diff --git a/admin/src/components/system/dict/DictDataManagerWindow.vue b/admin/src/components/system/dict/DictDataManagerWindow.vue
index 29ead03..47040b9 100644
--- a/admin/src/components/system/dict/DictDataManagerWindow.vue
+++ b/admin/src/components/system/dict/DictDataManagerWindow.vue
@@ -1,9 +1,9 @@
<template>
<GlobalWindow
- :title="dictName + '鏁版嵁绠$悊'"
- width="78%"
- :visible.sync="visible"
- :with-footer="false"
+ :title="dictName + '鏁版嵁绠$悊'"
+ width="78%"
+ :visible.sync="visible"
+ :with-footer="false"
>
<TableLayout :with-breadcrumb="false">
<!-- 琛ㄦ牸鍜屽垎椤� -->
@@ -13,14 +13,21 @@
<li><el-button @click="deleteByIdInBatch" icon="el-icon-delete">鍒犻櫎</el-button></li>
</ul>
<el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="label" label="鏁版嵁鏍囩" min-width="100px"></el-table-column>
- <el-table-column prop="code" label="鏁版嵁鍊�" min-width="100px" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="code" label="鏁版嵁鍊�" min-width="100px">
+ <template slot-scope="{row}">
+ <div v-if="row.code || row.code.length>500" >
+ <el-button type="text" @click="showCode(row)" >鐐瑰嚮鏌ョ湅</el-button>
+ </div>
+ <div v-else>{{row.code}}</div>
+ </template>
+ </el-table-column>
<el-table-column prop="disabled" label="鐘舵��" min-width="100px">
<template slot-scope="{row}">{{row.disabled | disabledText}}</template>
</el-table-column>
@@ -33,24 +40,40 @@
<el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
<el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
<el-table-column
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaDictDataWindow.open('缂栬緫瀛楀吀鏁版嵁', dictId, row)" icon="el-icon-edit">缂栬緫</el-button>
+ <el-button type="text" @click="$refs.operaDictDataWindow.open('缂栬緫瀛楀吀鏁版嵁', searchForm.dictId, row)" icon="el-icon-edit">缂栬緫</el-button>
<el-button type="text" @click="deleteById(row)" icon="el-icon-delete">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
<pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
></pagination>
</template>
<!-- 鏂板缓/淇敼 -->
<OperaDictDataWindow ref="operaDictDataWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
+
+ <el-dialog
+ class="center-title"
+ title="瀛楀吀鍊�"
+ width="70%"
+ height="70%"
+ text="瀛楀吀鍊�"
+ :visible.sync="visible1"
+ append-to-body
+ >
+ <div class="agree-list" v-html="agreement">
+ </div>
+ <template v-slot:footer>
+ <el-button @click="visible1=false">杩斿洖</el-button>
+ </template>
+ </el-dialog>
</TableLayout>
</GlobalWindow>
</template>
@@ -68,6 +91,8 @@
data () {
return {
visible: false,
+ visible1: false,
+ agreement: '',
searchForm: {
// 瀛楀吀ID
dictId: null
@@ -83,6 +108,10 @@
this.dictName = dictName
this.visible = true
this.search()
+ },
+ showCode(row){
+ this.agreement=row.code
+ this.visible1=true
}
},
created () {
@@ -95,6 +124,12 @@
</script>
<style scoped lang="scss">
+.agree-list{
+ height: 550px;
+ //max-height: 50%;
+ overflow: auto;
+}
+
/deep/ .window__body {
.table-content {
padding: 0;
@@ -102,5 +137,6 @@
padding-top: 0;
}
}
+
}
</style>
diff --git a/admin/src/components/system/dict/OperaDictDataWindow.vue b/admin/src/components/system/dict/OperaDictDataWindow.vue
index b9ebd40..c544b59 100644
--- a/admin/src/components/system/dict/OperaDictDataWindow.vue
+++ b/admin/src/components/system/dict/OperaDictDataWindow.vue
@@ -1,21 +1,21 @@
<template>
<GlobalWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking.create"
- @confirm="confirm"
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking.create"
+ @confirm="confirm"
>
<el-form :model="form" ref="form" :rules="rules">
<el-form-item label="鏁版嵁鏍囩" prop="label" required>
<el-input v-model="form.label" placeholder="璇疯緭鍏ユ暟鎹爣绛�" v-trim maxlength="50"/>
</el-form-item>
+ <el-form-item label="鏄惁瀵屾枃鏈�" prop="istext" >
+ <el-switch v-model="form.istext" :active-value="true" :inactive-value="false"/>
+ <span class="status-text">{{form.istext | disabledText1}}</span>
+ </el-form-item>
<el-form-item label="鏁版嵁鍊�" prop="code" required>
- <el-tiptap
- v-if="[175].includes(form.id)"
- v-model="form.code"
- :extensions="extensions"
- />
- <el-input v-else v-model="form.code" placeholder="璇疯緭鍏ユ暟鎹��" v-trim />
+ <el-input v-if="!form.istext" v-model="form.code" placeholder="璇疯緭鍏ユ暟鎹��" v-trim maxlength="50"/>
+ <RichEditor v-else :richData="form.code" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/>
</el-form-item>
<el-form-item label="鐘舵��" prop="disabled" required class="form-item-status">
<el-switch v-model="form.disabled" :active-value="false" :inactive-value="true"/>
@@ -28,44 +28,22 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
-import { upload } from '@/api/system/common'
-import {
- // necessary extensions
- Doc,
- Text,
- Paragraph,
- Heading,
- Bold,
- Underline,
- Italic,
- Strike,
- ListItem,
- BulletList,
- OrderedList,
- Image,
- Blockquote,
- TextAlign,
- Indent,
- Table,
- TableHeader,
- TableCell,
- TableRow,
- TextColor,
- HorizontalRule
-} from 'element-tiptap'
+import RichEditor from '@/components/common/RichEditor'
export default {
name: 'OperaDictDataWindow',
extends: BaseOpera,
- components: { GlobalWindow },
+ components: { GlobalWindow,RichEditor },
data () {
return {
// 琛ㄥ崟鏁版嵁
+ styleEditor:'border: 1px solid #ccc;display: inline-block;',
form: {
id: null,
dictId: null,
code: '',
label: '',
- disabled: false
+ disabled: false,
+ istext: false
},
// 楠岃瘉瑙勫垯
rules: {
@@ -75,42 +53,13 @@
code: [
{ required: true, message: '璇疯緭鍏ユ暟鎹��' }
]
- },
- extensions: [
- new Doc(),
- new Text(),
- new Paragraph(),
- new Heading({ level: 5 }),
- new Bold({ bubble: true }),
- new Underline({ bubble: true, menubar: false }),
- new Italic(),
- new Strike(),
- new ListItem(),
- new BulletList(),
- new OrderedList(),
- new Image({
- uploadRequest (file) {
- const fd = new FormData()
- fd.append('folder', 'visit')
- fd.append('file', file)
- return upload(fd).then(res => {
- return res.url
- })
- }
- }),
- new Blockquote(),
- new TextAlign(),
- new Indent(),
- new Table(),
- new TableHeader(),
- new TableCell(),
- new TableRow(),
- new HorizontalRule(),
- new TextColor()
- ]
+ }
}
},
methods: {
+ getWangedditor(val){
+ this.form.code =val
+ },
/**
* @title 绐楀彛鏍囬
* @dict 鎵�灞炲瓧鍏窱D
@@ -125,6 +74,7 @@
this.$refs.form.resetFields()
this.form.id = null
this.form.dictId = dictId
+ this.form.istext=false
})
return
}
@@ -132,6 +82,8 @@
this.$nextTick(() => {
for (const key in this.form) {
this.form[key] = target[key]
+ this.form.dictId = dictId
+ this.form.istext=false
}
})
}
diff --git a/admin/src/filters/index.js b/admin/src/filters/index.js
index e854f1e..77559ba 100644
--- a/admin/src/filters/index.js
+++ b/admin/src/filters/index.js
@@ -17,5 +17,11 @@
}
return '鍚敤'
})
+ Vue.filter('disabledText1', (value) => {
+ if (value) {
+ return '鏅�氭枃鏈�'
+ }
+ return '瀵屾枃鏈�'
+ })
}
}
diff --git a/admin/src/views/meeting/rooms.vue b/admin/src/views/meeting/rooms.vue
index b29a7c0..0b49a6c 100644
--- a/admin/src/views/meeting/rooms.vue
+++ b/admin/src/views/meeting/rooms.vue
@@ -68,7 +68,7 @@
</el-table-column>
<el-table-column prop="limitNum" label="鍙�夋湇鍔¢」" align="center" min-width="140px" show-overflow-tooltip>
<template slot-scope="{row}">
- <div class="long-title-style">{{ row.projectList.map(item => item.projectName).join('|') }}</div>
+ <div class="long-title-style">{{ row.projectList.map(item => item.projectName).join(' | ') }}</div>
</template>
</el-table-column>
diff --git a/admin/src/views/task/index.vue b/admin/src/views/task/index.vue
index 86f5e2f..d4a61d0 100644
--- a/admin/src/views/task/index.vue
+++ b/admin/src/views/task/index.vue
@@ -120,7 +120,7 @@
import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow'
import dayjs from 'dayjs'
import {
- taskCenterHead,
+ taskCenterHeadPC,
taskCenterPage
} from '@/api'
export default {
@@ -260,9 +260,15 @@
})
},
getHeadData () {
- taskCenterHead({
- isDetail: '1'
- }).then(res => {
+ const {filters} = this
+ if (filters.selTime && filters.selTime.length > 0) {
+ filters.startDate = filters.selTime[0]
+ filters.endDate = filters.selTime[1]
+ } else {
+ filters.startDate = null
+ filters.endDate = null
+ }
+ taskCenterHeadPC({ ...filters, queryType: Number(filters.queryType), isDetail: '1' }).then(res => {
this.headData = res
})
},
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
index 619f502..c3c2cfa 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -290,34 +290,35 @@
selectList(new QueryWrapper<Notices>().lambda()
.ge(noticesDTO.getStartDate() != null, Notices::getCreateDate, Utils.Date.getStart(noticesDTO.getStartDate() ))
.le(noticesDTO.getEndDate() != null, Notices::getCreateDate, Utils.Date.getEnd(noticesDTO.getEndDate() ))
+ .eq(noticesDTO.getType() != null, Notices::getType, noticesDTO.getType())
.eq(Notices::getUserId,noticesDTO.getMemberId()).orderByDesc(Notices::getCreateDate)
);
internalHomeVO.setTaskNum(noticesList.size());
- if(CollectionUtils.isNotEmpty(noticesList)){
- //寰呮垜澶勭悊鐨勬暟鎹�
- internalHomeVO.setNoticeWaitNum(
- noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),noticesDTO.getMemberId())
- &&Constants.equalsInteger(i.getStatus(),Constants.ZERO)
- &&Constants.equalsInteger(i.getSendacopy(),Constants.ZERO)
- ).count()
- );
- internalHomeVO.setNoticeDealNum(
- noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),noticesDTO.getMemberId())
- &&Constants.equalsInteger(i.getStatus(),Constants.ONE)
- &&Constants.equalsInteger(i.getSendacopy(),Constants.ZERO)
- ).count()
- );
+ if(CollectionUtils.isNotEmpty(noticesList)){
+ //寰呮垜澶勭悊鐨勬暟鎹�
+ internalHomeVO.setNoticeWaitNum(
+ noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),noticesDTO.getMemberId())
+ &&Constants.equalsInteger(i.getStatus(),Constants.ZERO)
+ &&Constants.equalsInteger(i.getSendacopy(),Constants.ZERO)
+ ).count()
+ );
+ internalHomeVO.setNoticeDealNum(
+ noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),noticesDTO.getMemberId())
+ &&Constants.equalsInteger(i.getStatus(),Constants.ONE)
+ &&Constants.equalsInteger(i.getSendacopy(),Constants.ZERO)
+ ).count()
+ );
- internalHomeVO.setNoticeCreateNum(
- noticesJoinMapper.selectCount(new QueryWrapper<Notices>().lambda().eq(Notices::getParam3,noticesDTO.getMemberId()))
- );
+ internalHomeVO.setNoticeCreateNum(
+ noticesJoinMapper.selectCount(new QueryWrapper<Notices>().lambda().eq(Notices::getParam3,noticesDTO.getMemberId()))
+ );
- internalHomeVO.setNoticeCopyNum(
- noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),noticesDTO.getMemberId())
- &&Constants.equalsInteger(i.getSendacopy(),Constants.ONE)
- ).count()
- );
- }
+ internalHomeVO.setNoticeCopyNum(
+ noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),noticesDTO.getMemberId())
+ &&Constants.equalsInteger(i.getSendacopy(),Constants.ONE)
+ ).count()
+ );
+ }
return internalHomeVO;
}
--
Gitblit v1.9.3