-
');
- $text = preg_replace_callback("/\<(blockquote|strong|pre|ol|ul|li|em|p|s|u)(.*?)\>/is", function (array $match) { // 不用去除a标签,上面已经处理过了
+ $text = preg_replace_callback("/\<(blockquote|strong|pre|ol|ul|em|p|s|u)(.*?)\>/is", function (array $match) { // 不用去除 li 和 a 标签,上面已经处理过了
preg_match("/<[^>]*?style=([\"'])(.*?)\\1[^>]*?>/is", $match[0], $matchs);
$attach = '';
if ($matchs) {
diff --git a/resources/assets/js/pages/manage/components/ChatInput/index.vue b/resources/assets/js/pages/manage/components/ChatInput/index.vue
index c9cf8b33e..0854212e5 100755
--- a/resources/assets/js/pages/manage/components/ChatInput/index.vue
+++ b/resources/assets/js/pages/manage/components/ChatInput/index.vue
@@ -273,7 +273,7 @@ export default {
toolbar: {
type: Array,
default: () => {
- return ['bold', 'strike', 'italic', 'underline', 'blockquote', {'list': 'ordered'}, {'list': 'bullet'}]
+ return ['bold', 'strike', 'italic', 'underline', 'blockquote', {'list': 'ordered'}, {'list': 'bullet'}, {'list': 'check'}]
},
},
maxlength: {
diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue
index 8f1ba1cd6..abee46341 100644
--- a/resources/assets/js/pages/manage/components/DialogWrapper.vue
+++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue
@@ -3051,6 +3051,9 @@ export default {
// 打开审批详情
let approveElement = target;
while (approveElement) {
+ if (approveElement.classList.contains('dialog-scroller')) {
+ break;
+ }
if (approveElement.classList.contains('open-approve-details')) {
const dataId = approveElement.getAttribute("data-id")
if (window.innerWidth < 426) {
@@ -3061,15 +3064,13 @@ export default {
this.approveDetails = {id: dataId};
})
}
- break;
- }
- if (approveElement.classList.contains('dialog-item')) {
- break;
+ return;
}
approveElement = approveElement.parentElement;
}
switch (target.nodeName) {
+ // 打开图片
case "IMG":
if (target.classList.contains('browse')) {
this.onViewPicture(target.currentSrc);
@@ -3080,6 +3081,7 @@ export default {
}
break;
+ // 打开任务、打开OKR
case "SPAN":
if (target.classList.contains('mention') && target.classList.contains('task')) {
this.$store.dispatch("openTask", $A.runNum(target.getAttribute("data-id")));
@@ -3089,6 +3091,48 @@ export default {
}
break;
+ // 更新待办列表
+ case "LI":
+ const dataClass = target.getAttribute('data-list')
+ if (['checked', 'unchecked'].includes(dataClass)) {
+ let listElement = el.parentElement;
+ while (listElement) {
+ if (listElement.classList.contains('dialog-scroller')) {
+ break;
+ }
+ if (listElement.classList.contains('dialog-view')) {
+ const dataId = listElement.getAttribute("data-id")
+ const dataIndex = [].indexOf.call(el.querySelectorAll(target.tagName), target);
+ if (dataClass === 'checked') {
+ target.setAttribute('data-list', 'unchecked')
+ } else {
+ target.setAttribute('data-list', 'checked')
+ }
+ this.$store.dispatch("setLoad", {
+ key: `msg-${dataId}`,
+ delay: 600
+ })
+ this.$store.dispatch("call", {
+ url: 'dialog/msg/checked',
+ data: {
+ dialog_id: this.dialogId,
+ msg_id: dataId,
+ index: dataIndex,
+ checked: dataClass === 'checked' ? 0 : 1
+ },
+ }).then(({data}) => {
+ this.$store.dispatch("saveDialogMsg", data);
+ }).catch(({msg}) => {
+ $A.modalError(msg);
+ }).finally(_ => {
+ this.$store.dispatch("cancelLoad", `msg-${dataId}`)
+ });
+ break;
+ }
+ listElement = listElement.parentElement;
+ }
+ }
+ break;
}
},
diff --git a/resources/assets/sass/pages/components/chat-input.scss b/resources/assets/sass/pages/components/chat-input.scss
index 4264458ed..3996f7844 100755
--- a/resources/assets/sass/pages/components/chat-input.scss
+++ b/resources/assets/sass/pages/components/chat-input.scss
@@ -176,6 +176,22 @@
width: auto;
min-width: 1.2em;
}
+ &[data-list=checked],
+ &[data-list=unchecked] {
+ > .ql-ui:before {
+ font-family: "taskfont", "serif" !important;
+ font-size: 14px;
+ content: "\e6ed";
+ font-weight: normal;
+ transform: scale(1.12);
+ }
+ }
+
+ &[data-list=unchecked] {
+ > .ql-ui:before {
+ content: "\e6f1";
+ }
+ }
}
}
diff --git a/resources/assets/sass/pages/components/dialog-wrapper.scss b/resources/assets/sass/pages/components/dialog-wrapper.scss
index e824a37a1..2c763417d 100644
--- a/resources/assets/sass/pages/components/dialog-wrapper.scss
+++ b/resources/assets/sass/pages/components/dialog-wrapper.scss
@@ -830,6 +830,31 @@
min-width: 1.2em;
content: counter(list-0, decimal) '. ';
}
+
+ &[data-list=bullet] {
+ &:before {
+ content: '\2022';
+ font-weight: 900;
+ text-align: center;
+ }
+ }
+
+ &[data-list=checked],
+ &[data-list=unchecked] {
+ &:before {
+ font-family: "taskfont", "serif" !important;
+ font-size: 14px;
+ content: "\e6ed";
+ font-weight: normal;
+ transform: scale(1.12);
+ }
+ }
+
+ &[data-list=unchecked] {
+ &:before {
+ content: "\e6f1";
+ }
+ }
}
}