cnhis-design-vue 3.2.7-release.1 → 3.2.7-release.2
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +87 -87
- package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
- package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
- package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
- package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
- package/es/components/button-print/src/components/NewPrintComponent.vue2.js +1 -1
- package/es/components/classification/index.d.ts +60 -5
- package/es/components/classification/src/components/search-filter/index.vue.d.ts +60 -5
- package/es/components/classification/src/components/set-classification/index.vue.d.ts +60 -5
- package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
- package/es/components/classification/src/index.vue.d.ts +60 -5
- package/es/components/date-picker/index.d.ts +13 -0
- package/es/components/date-picker/src/DatePicker.vue.d.ts +13 -0
- package/es/components/date-picker/src/DatePicker.vue2.js +1 -1
- package/es/components/fabric-chart/src/hooks/temperature/useCenter.js +1 -1
- package/es/components/field-set/src/FieldColor.vue.d.ts +26 -0
- package/es/components/field-set/src/components/condition.vue.d.ts +13 -0
- package/es/components/field-set/src/components/edit-dialog.vue.d.ts +26 -0
- package/es/components/field-set/src/components/edit-filter.vue.d.ts +13 -0
- package/es/components/form-config/src/components/FormConfigEdit.vue2.js +1 -1
- package/es/components/form-render/src/hooks/useFieldListAdaptor.js +1 -1
- package/es/components/form-render/src/types/index.d.ts +1 -1
- package/es/components/form-render/src/utils/business.js +1 -1
- package/es/components/form-render/src/utils/schema.d.ts +1 -1
- package/es/components/form-render/src/utils/schema.js +1 -1
- package/es/components/iho-chat/index.d.ts +171 -85
- package/es/components/iho-chat/src/Index.vue.d.ts +171 -85
- package/es/components/iho-chat/src/Index.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatAdd.vue.d.ts +34 -13
- package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +38 -13
- package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +48 -14
- package/es/components/iho-chat/src/components/ChatHeader.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +9 -19
- package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatRecord.vue.d.ts +13 -0
- package/es/components/iho-chat/src/components/ChatSearch.vue.d.ts +3 -10
- package/es/components/iho-chat/src/components/ChatSearch.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ContextMenu.d.ts +5 -5
- package/es/components/iho-chat/src/components/ContextMenu.js +1 -1
- package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +47 -22
- package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +1 -1
- package/es/components/iho-chat/src/hooks/useSearchUserList.d.ts +11 -0
- package/es/components/iho-chat/src/hooks/useSearchUserList.js +1 -0
- package/es/components/iho-chat/src/types/index.d.ts +0 -1
- package/es/components/iho-chat/style/index.css +1 -1
- package/es/components/iho-table/src/plugins/filterDaterangeRenderPlugin/filter.vue.d.ts +13 -0
- package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/editDate.vue.d.ts +13 -0
- package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue.d.ts +20 -2
- package/es/components/index.css +1 -1
- package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
- package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
- package/es/components/table-filter/src/components/bi-filter/ValueCfg.vue.d.ts +13 -0
- package/es/components/table-filter/src/components/bi-filter/components/Date.vue.d.ts +13 -0
- package/es/components/table-filter/src/components/bi-filter/components/index.d.ts +13 -0
- package/es/components/table-filter/src/components/bi-filter/index.vue.d.ts +13 -0
- package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue.d.ts +47 -5
- package/es/components/table-filter/src/components/classify-filter/components/Date.vue.d.ts +13 -0
- package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue.d.ts +13 -0
- package/es/components/table-filter/src/components/classify-filter/components/SelectDynamic.vue.d.ts +37 -19
- package/es/components/table-filter/src/components/classify-filter/components/SelectDynamic.vue2.js +1 -1
- package/es/components/table-filter/src/components/classify-filter/components/index.d.ts +47 -5
- package/es/components/table-filter/src/components/classify-filter/hooks/useFilterConditions.js +1 -1
- package/es/components/table-filter/src/components/classify-filter/index.vue.d.ts +47 -5
- package/es/components/table-filter/src/components/render-widget/components/DateInner.vue.d.ts +13 -0
- package/es/components/table-filter/src/components/render-widget/components/DateOut.vue.d.ts +13 -0
- package/es/components/table-filter/src/components/render-widget/components/DateRangeInner.vue.d.ts +13 -0
- package/es/components/table-filter/src/components/render-widget/components/DateRangeOut.vue.d.ts +13 -0
- package/es/components/table-filter/src/components/render-widget/components/SelectDynamic.vue.d.ts +33 -18
- package/es/components/table-filter/src/components/render-widget/components/SelectDynamic.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/SelectDynamicOption/index.vue.d.ts +13 -0
- package/es/components/table-filter/src/components/render-widget/components/SelectDynamicOption/index.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/index.d.ts +69 -4
- package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +69 -4
- package/es/components/table-filter/src/tool/transformData.js +1 -1
- package/es/components/table-filter/src/types/index.d.ts +1 -0
- package/es/components/time-picker/index.d.ts +20 -2
- package/es/components/time-picker/src/TimePicker.vue.d.ts +21 -2
- package/es/components/time-picker/src/TimePicker.vue2.js +1 -1
- package/es/env.d.ts +25 -25
- package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
- package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
- package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
- package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
- package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
- package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
- package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
- package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
- package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
- package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
- package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
- package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
- package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
- package/es/shared/assets/img/failure.png.js +1 -1
- package/es/shared/assets/img/no-permission.png.js +1 -1
- package/es/shared/assets/img/nodata.png.js +1 -1
- package/es/shared/assets/img/notfound.png.js +1 -1
- package/es/shared/assets/img/qr.png.js +1 -1
- package/es/shared/assets/img/success.png.js +1 -1
- package/es/shared/assets/img/table_style_2.png.js +1 -1
- package/es/shared/assets/img/video.png.js +1 -1
- package/es/shared/assets/img/video_default_cover.png.js +1 -1
- package/es/shared/assets/img/xb_big.png.js +1 -1
- package/es/shared/assets/img/xb_small.png.js +1 -1
- package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
- package/es/shared/package.json.js +1 -1
- package/es/shared/utils/business.js +1 -1
- package/es/shared/utils/fabricjs/index.d.ts +6823 -0
- package/es/shared/utils/tapable/index.d.ts +139 -0
- package/package.json +2 -2
@@ -14,9 +14,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
14
14
|
};
|
15
15
|
disabledIds: {
|
16
16
|
type: PropType<string[]>;
|
17
|
+
default: () => never[];
|
17
18
|
};
|
18
19
|
defaultValue: {
|
19
|
-
type: PropType<
|
20
|
+
type: PropType<AnyObject[]>;
|
20
21
|
};
|
21
22
|
}, {
|
22
23
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
@@ -33,34 +34,52 @@ declare const _default: import("vue").DefineComponent<{
|
|
33
34
|
};
|
34
35
|
disabledIds: {
|
35
36
|
type: PropType<string[]>;
|
37
|
+
default: () => never[];
|
36
38
|
};
|
37
39
|
defaultValue: {
|
38
|
-
type: PropType<
|
40
|
+
type: PropType<AnyObject[]>;
|
39
41
|
};
|
40
42
|
}>> & {
|
41
43
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
42
44
|
}>>;
|
43
45
|
emit: (event: "comfirm", ...args: any[]) => void;
|
44
46
|
state: import("../types").IState;
|
47
|
+
listRef: import("vue").Ref<any>;
|
48
|
+
keyword: import("vue").Ref<any>;
|
45
49
|
showModal: import("vue").Ref<boolean>;
|
46
|
-
|
50
|
+
checkedOptions: import("vue").Ref<AnyObject[]>;
|
47
51
|
options: import("vue").Ref<AnyObject[]>;
|
48
52
|
groupName: import("vue").Ref<string>;
|
53
|
+
checkedSourceIds: import("vue").Ref<(string | number)[]>;
|
54
|
+
userList: import("vue").Ref<AnyObject[]>;
|
55
|
+
handleInput: () => void;
|
56
|
+
_disabledIds: import("vue").ComputedRef<any[]>;
|
57
|
+
defaultOptions: import("vue").ComputedRef<{
|
58
|
+
id: any;
|
59
|
+
name: any;
|
60
|
+
avatar: any;
|
61
|
+
}[]>;
|
62
|
+
checkedIds: import("vue").ComputedRef<any[]>;
|
49
63
|
btnDisabled: import("vue").ComputedRef<boolean>;
|
64
|
+
allChecked: import("vue").WritableComputedRef<boolean>;
|
50
65
|
handlePositiveClick: () => Promise<void>;
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
}) => JSX.Element | null;
|
66
|
+
updateCheckedSourceIds: () => void;
|
67
|
+
handleSourceIdsUpdate: (value: (string | number)[], meta: {
|
68
|
+
actionType: 'check' | 'uncheck';
|
69
|
+
value: string | number;
|
70
|
+
}) => void;
|
71
|
+
closeTag: (id: string) => void;
|
72
|
+
renderTargetList: () => JSX.Element[] | null;
|
59
73
|
NModal: any;
|
60
74
|
NButton: any;
|
61
|
-
|
75
|
+
NSpace: any;
|
76
|
+
NAvatar: any;
|
62
77
|
NIcon: any;
|
78
|
+
NTag: any;
|
63
79
|
NInput: any;
|
80
|
+
NCheckbox: any;
|
81
|
+
NCheckboxGroup: any;
|
82
|
+
SearchOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
64
83
|
AddOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
65
84
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
66
85
|
title: {
|
@@ -76,14 +95,16 @@ declare const _default: import("vue").DefineComponent<{
|
|
76
95
|
};
|
77
96
|
disabledIds: {
|
78
97
|
type: PropType<string[]>;
|
98
|
+
default: () => never[];
|
79
99
|
};
|
80
100
|
defaultValue: {
|
81
|
-
type: PropType<
|
101
|
+
type: PropType<AnyObject[]>;
|
82
102
|
};
|
83
103
|
}>> & {
|
84
104
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
85
105
|
}, {
|
86
106
|
mode: string;
|
87
107
|
title: string;
|
108
|
+
disabledIds: string[];
|
88
109
|
}>;
|
89
110
|
export default _default;
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as
|
1
|
+
import{defineComponent as e,ref as a,computed as l,watch as t,openBlock as i,createElementBlock as u,Fragment as o,createVNode as s,unref as r,withCtx as d,createElementVNode as n,createCommentVNode as v,isRef as c,renderList as p,createBlock as f,toDisplayString as m,createTextVNode as h,renderSlot as b}from"vue";import{NModal as g,NInput as k,NIcon as y,NCheckbox as _,NCheckboxGroup as I,NSpace as x,NAvatar as w,NTag as S,NButton as U}from"naive-ui";import{SearchOutline as j,AddOutline as C}from"@vicons/ionicons5";import{useState as L}from"../hooks/useState.js";import{listSort as A}from"../utils/index.js";import{cloneDeep as V,union as R,unionBy as E,remove as G,isArray as M,uniqBy as T}from"lodash-es";import{CHAT_TYPE as z}from"../constants/index.js";import{groupJoinApi as D,groupCreateApi as N}from"../api/index.js";import"trtc-sdk-v5";import{useSearchUserList as P}from"../hooks/useSearchUserList.js";const $={class:"iho-chat-dialog__content iho-chat-add-wrapper"},q={key:0,class:"input-box"},B=n("span",null,"群名称:",-1),F={class:"transfer-box"},H={class:"transfer-box__left"},J={class:"user-list-box"},K={key:1,class:"no-data"},O={class:"transfer-box__right"},Q={class:"checked-tag-box"};var W=e({__name:"ChatAdd",props:{title:{type:String,default:"添加新成员"},mode:{type:String,default:"select"},options:{type:Array},disabledIds:{type:Array,default:()=>[]},defaultValue:{type:Array}},emits:["comfirm"],setup(e,{emit:W}){const X=e,{state:Y}=L(),Z=a(),ee=a(),ae=a(!1),le=a([]),te=a([]),ie=a(""),ue=a([]),{userList:oe,handleInput:se}=P({wrapperRef:Z,keywordRef:ee,before:()=>{oe.value=V(te.value),fe()},after:()=>{oe.value.forEach((e=>{var a;e.disabled=null==(a=re.value)?void 0:a.includes(e.id)})),fe()}}),re=l((()=>R(X.disabledIds,[Y.userInfo.id]))),de=l((()=>{var e,a;return(null==(e=Y.sessionList)?void 0:e.length)?null==(a=A(Y.sessionList).filter((e=>e.chatType===z.SINGLE)))?void 0:a.map((e=>({id:e.receiver,name:e.name,avatar:e.avatar}))):[]})),ne=l((()=>le.value.length?le.value.map((e=>e.id)):[])),ve=l((()=>"create"===X.mode?ne.value.length<3:ne.value.length<1)),ce=l({get:()=>ue.value.length===oe.value.filter((e=>!e.disabled)).length,set(e){const a=oe.value.filter((e=>!e.disabled));ue.value=e?a.map((e=>e.id)):[],e?le.value=E(le.value,a,"id"):G(le.value,(e=>a.map((e=>e.id)).includes(e.id)))}});async function pe(){switch(X.mode){case"create":await N({creator:Y.userInfo.id,memberIdSet:ne.value,name:ie.value,orgId:Y.orgId});break;case"join":await D({groupId:Y.currentSessionItem.receiver,operator:Y.userInfo.id,memberIdSet:ne.value}),Y.currentGroupUser.push(oe.value.filter((e=>ne.value.includes(e.value))));break;default:W("comfirm",ne.value)}ae.value=!1}function fe(){var e,a;ue.value=null!=(a=null==(e=oe.value.filter((e=>ne.value.includes(e.id))))?void 0:e.map((e=>e.id)))?a:[]}function me(e,a){if("check"===a.actionType){const e=oe.value.find((e=>e.id===a.value));le.value.push(e)}else G(le.value,(e=>e.id===a.value))}return t((()=>ae.value),(e=>{if(!e)return;const a=M(X.options)&&X.options.length?X.options:de.value;te.value=T(a,"id").map((e=>{var a;return{...e,disabled:null==(a=re.value)?void 0:a.includes(e.id)}})),oe.value=V(te.value),M(X.defaultValue)&&X.defaultValue.length?(le.value=V(X.defaultValue),fe()):(le.value=[],ue.value=[])})),(a,l)=>(i(),u(o,null,[s(r(g),{preset:"dialog",title:e.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:ae.value,"onUpdate:show":l[4]||(l[4]=e=>ae.value=e),"negative-text":"取消","positive-text":"确定","positive-button-props":{disabled:r(ve)},onPositiveClick:pe},{default:d((()=>[n("div",$,["create"===e.mode?(i(),u("div",q,[B,s(r(k),{clearable:"",placeholder:"取个群名称方便后续搜索",value:ie.value,"onUpdate:value":l[0]||(l[0]=e=>ie.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),n("div",F,[n("div",H,[s(r(k),{placeholder:"搜索",clearable:"",value:ee.value,"onUpdate:value":[l[1]||(l[1]=e=>ee.value=e),r(se)],valueModifiers:{trim:!0}},{prefix:d((()=>[s(r(y),{component:r(j)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),n("div",J,[r(oe).length>0?(i(),u(o,{key:0},[s(r(_),{label:"全选",checked:r(ce),"onUpdate:checked":l[2]||(l[2]=e=>c(ce)?ce.value=e:null)},null,8,["checked"]),s(r(I),{ref_key:"listRef",ref:Z,value:ue.value,"onUpdate:value":[l[3]||(l[3]=e=>ue.value=e),me]},{default:d((()=>[(i(!0),u(o,null,p(r(oe),(e=>(i(),f(r(_),{key:e.id,value:e.id,disabled:e.disabled},{default:d((()=>[s(r(x),{align:"center","wrap-item":!1},{default:d((()=>[s(r(w),{src:e.avatar,round:"",size:32},null,8,["src"]),n("span",null,m(e.name),1)])),_:2},1024)])),_:2},1032,["value","disabled"])))),128))])),_:1},8,["value"])],64)):(i(),u("div",K,"找不到相关结果"))])]),n("div",O,[n("span",null,"已选择 "+m(r(ne).length)+" 人",1),n("div",Q,[(i(!0),u(o,null,p(le.value,(e=>(i(),f(r(S),{key:e.id,bordered:!1,closable:e.id!==r(Y).userInfo.id,disabled:r(re).includes(e.id),onClose:()=>{return a=e.id,G(le.value,(e=>e.id===a)),void G(ue.value,(e=>e===a));var a}},{avatar:d((()=>[s(r(w),{round:"",src:e.avatar},null,8,["src"])])),default:d((()=>[h(" "+m(e.name),1)])),_:2},1032,["closable","disabled","onClose"])))),128))])])])])])),_:1},8,["title","show","positive-button-props"]),n("span",{class:"btn-wrapper",onClick:l[5]||(l[5]=e=>ae.value=!0)},[b(a.$slots,"trigger",{},(()=>[s(r(U),{color:"#ffffff4D",class:"add-btn"},{icon:d((()=>[s(r(y),{component:r(C),color:"#fff"},null,8,["component"])])),_:1})]))])],64))}});export{W as default};
|
@@ -17,6 +17,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
17
17
|
}) => Promise<void>;
|
18
18
|
isGroupChat: import("vue").ComputedRef<boolean>;
|
19
19
|
showEmoji: import("vue").Ref<boolean>;
|
20
|
+
chatAddProps: import("vue").ComputedRef<{
|
21
|
+
options: AnyObject[];
|
22
|
+
defaultValue: AnyObject[];
|
23
|
+
}>;
|
20
24
|
handleCall: (chatMessageType: string, checkedIds?: never[]) => void;
|
21
25
|
handleKeyDown: (event: KeyboardEvent) => void;
|
22
26
|
isWrap: (event: KeyboardEvent) => boolean;
|
@@ -45,9 +49,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
45
49
|
};
|
46
50
|
disabledIds: {
|
47
51
|
type: import("vue").PropType<string[]>;
|
52
|
+
default: () => never[];
|
48
53
|
};
|
49
54
|
defaultValue: {
|
50
|
-
type: import("vue").PropType<
|
55
|
+
type: import("vue").PropType<AnyObject[]>;
|
51
56
|
};
|
52
57
|
}, {
|
53
58
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
@@ -64,34 +69,52 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
64
69
|
};
|
65
70
|
disabledIds: {
|
66
71
|
type: import("vue").PropType<string[]>;
|
72
|
+
default: () => never[];
|
67
73
|
};
|
68
74
|
defaultValue: {
|
69
|
-
type: import("vue").PropType<
|
75
|
+
type: import("vue").PropType<AnyObject[]>;
|
70
76
|
};
|
71
77
|
}>> & {
|
72
78
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
73
79
|
}>>;
|
74
80
|
emit: (event: "comfirm", ...args: any[]) => void;
|
75
81
|
state: import("../types").IState;
|
82
|
+
listRef: import("vue").Ref<any>;
|
83
|
+
keyword: import("vue").Ref<any>;
|
76
84
|
showModal: import("vue").Ref<boolean>;
|
77
|
-
|
85
|
+
checkedOptions: import("vue").Ref<AnyObject[]>;
|
78
86
|
options: import("vue").Ref<AnyObject[]>;
|
79
87
|
groupName: import("vue").Ref<string>;
|
88
|
+
checkedSourceIds: import("vue").Ref<(string | number)[]>;
|
89
|
+
userList: import("vue").Ref<AnyObject[]>;
|
90
|
+
handleInput: () => void;
|
91
|
+
_disabledIds: import("vue").ComputedRef<any[]>;
|
92
|
+
defaultOptions: import("vue").ComputedRef<{
|
93
|
+
id: any;
|
94
|
+
name: any;
|
95
|
+
avatar: any;
|
96
|
+
}[]>;
|
97
|
+
checkedIds: import("vue").ComputedRef<any[]>;
|
80
98
|
btnDisabled: import("vue").ComputedRef<boolean>;
|
99
|
+
allChecked: import("vue").WritableComputedRef<boolean>;
|
81
100
|
handlePositiveClick: () => Promise<void>;
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
}) => JSX.Element | null;
|
101
|
+
updateCheckedSourceIds: () => void;
|
102
|
+
handleSourceIdsUpdate: (value: (string | number)[], meta: {
|
103
|
+
actionType: "check" | "uncheck";
|
104
|
+
value: string | number;
|
105
|
+
}) => void;
|
106
|
+
closeTag: (id: string) => void;
|
107
|
+
renderTargetList: () => JSX.Element[] | null;
|
90
108
|
NModal: any;
|
91
109
|
NButton: any;
|
92
|
-
|
110
|
+
NSpace: any;
|
111
|
+
NAvatar: any;
|
93
112
|
NIcon: any;
|
113
|
+
NTag: any;
|
94
114
|
NInput: any;
|
115
|
+
NCheckbox: any;
|
116
|
+
NCheckboxGroup: any;
|
117
|
+
SearchOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
95
118
|
AddOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
96
119
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
97
120
|
title: {
|
@@ -107,15 +130,17 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
107
130
|
};
|
108
131
|
disabledIds: {
|
109
132
|
type: import("vue").PropType<string[]>;
|
133
|
+
default: () => never[];
|
110
134
|
};
|
111
135
|
defaultValue: {
|
112
|
-
type: import("vue").PropType<
|
136
|
+
type: import("vue").PropType<AnyObject[]>;
|
113
137
|
};
|
114
138
|
}>> & {
|
115
139
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
116
140
|
}, {
|
117
141
|
mode: string;
|
118
142
|
title: string;
|
143
|
+
disabledIds: string[];
|
119
144
|
}>;
|
120
145
|
emojis: {
|
121
146
|
default: string[][];
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as t,
|
1
|
+
import{defineComponent as e,ref as t,computed as n,watch as o,withDirectives as i,openBlock as s,createElementBlock as r,normalizeStyle as a,unref as c,createElementVNode as l,toDisplayString as u,createVNode as d,createCommentVNode as f,withCtx as m,Fragment as p,renderList as g,createBlock as y,createTextVNode as h,mergeProps as v,vShow as M}from"vue";import{NIcon as k,NPopover as C,NButton as _,NTooltip as x,NUpload as I,NUploadTrigger as b}from"naive-ui";import w from"./ChatAdd.vue.js";import{useState as T}from"../hooks/useState.js";import{useSession as z}from"../hooks/useSession.js";import{MESSAGE_TYPE as E,AV_STATUS as j}from"../constants/index.js";import"trtc-sdk-v5";import{simplifyMessage as R}from"../utils/index.js";import{emojis as q}from"../utils/emoji.js";import{uploadFileApi as L}from"../api/index.js";import{CloseCircleOutline as D,CallOutline as O,VideocamOutline as V}from"@vicons/ionicons5";import{xor as A,cloneDeep as F}from"lodash-es";import{uuidGenerator as K}from"../../../../shared/utils/index.js";const U={key:0,class:"reference-content-box"},S={class:"reference-content"},G=["innerHTML"],H={class:"tool-box"},N=l("i",{class:"chat--iconfont chat--icon-face"},null,-1),J={class:"emoji-box"},X=l("span",null,"默认表情",-1),B={class:"list-box"},P=["src"],Q=l("i",{class:"chat--iconfont chat--icon-good"},null,-1),W=l("i",{class:"chat--iconfont chat--icon-image"},null,-1),Y=l("i",{class:"chat--iconfont chat--icon-folder"},null,-1),Z={class:"btn-box"},$=l("span",{class:"tip"},"Enter 发送, Shift + Enter 换行",-1);var ee=e({__name:"ChatFooter",setup(e){const ee=t(),te=t(""),{state:ne,sendMessage:oe}=T(),{isGroupChat:ie}=z(ne),se=t(!1),re=n((()=>({options:ne.currentGroupUser,defaultValue:[ne.userInfo]})));function ae(e,t=[]){const n=K(),o=[],i=t.length>0;ne.showVideo||ne.showMultipleVideo||(i?(o.push(...A(t,[ne.userInfo.id])),Object.assign(ne.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:n,chatMessageType:e}),ne.showMultipleVideo=!0):oe({content:{chatMessageType:e,msg:"",avStatus:j.IN_CALL}}))}function ce(e){["Enter"].includes(e.key)&&(function(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}(e)||(e.preventDefault(),de()))}function le(){var e,t;te.value=(null==(t=null==(e=ee.value)?void 0:e.innerText)?void 0:t.trim())||""}async function ue(e,t){const{file:n,name:o}=e.file,i=new FormData;i.append("sender",ne.userInfo.id),i.append("file",n);const s=await L(i);if(!s)return console.log("上传失败");fe({chatMessageType:t,msg:t===E.FILE?o:s,url:s})}function de(){if(!(te.value.length>2e3))return te.value?void fe({msg:te.value}):console.log("请输入内容");console.log("请控制在2000字以内")}async function fe(e){const{chatMessageType:t=E.TEXT,msg:n,url:o}=e,i={msg:n,chatMessageType:t};t===E.FILE&&(i.fileUrl=o),[E.TEXT,E.BLEND].includes(t)&&(ee.value.innerHTML="",te.value=""),ne.currentReferenceMsg&&(i.referenceContent=F(ne.currentReferenceMsg),ne.currentReferenceMsg=null),oe({content:i})}return o((()=>ne.currentReferenceMsg),(e=>{var t;e&&(null==(t=ee.value)||t.focus())})),(e,t)=>i((s(),r("section",{class:"chat-footer",style:a({cursor:c(ne).id?"default":"not-allowed"})},[c(ne).currentReferenceMsg?(s(),r("div",U,[l("div",S,[l("span",null,u(c(ne).currentReferenceMsg.senderName)+":",1),l("pre",{innerHTML:c(R)(c(ne).currentReferenceMsg.content)},null,8,G)]),d(c(k),{component:c(D),onClick:t[0]||(t[0]=()=>c(ne).currentReferenceMsg=null)},null,8,["component"])])):f("v-if",!0),l("div",H,[d(c(C),{show:se.value,"onUpdate:show":t[1]||(t[1]=e=>se.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:m((()=>[d(c(_),{quaternary:"",size:"tiny"},{icon:m((()=>[N])),_:1})])),default:m((()=>[l("div",J,[f(' <span>最近使用</span>\n\t\t\t\t\t<div class="list-box">\n\t\t\t\t\t\t<template v-for="(img, index) in images" :key="index">\n\t\t\t\t\t\t\t<i>\n\t\t\t\t\t\t\t\t<img :src="img" />\n\t\t\t\t\t\t\t</i>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div> '),X,l("div",B,[(s(!0),r(p,null,g(c(q).default,(([e,t])=>(s(),y(c(x),{key:e,"show-arrow":!1,trigger:"hover"},{trigger:m((()=>[d(c(_),{quaternary:"",size:"tiny",onClick:()=>function(e){se.value=!1,fe({chatMessageType:E.EMOJI,msg:e})}(e)},{icon:m((()=>[l("img",{src:t},null,8,P)])),_:2},1032,["onClick"])])),default:m((()=>[h(" "+u(e),1)])),_:2},1024)))),128))])])])),_:1},8,["show"]),d(c(_),{quaternary:"",size:"tiny",onClick:t[2]||(t[2]=()=>fe({chatMessageType:c(E).EMOJI,msg:0}))},{icon:m((()=>[Q])),_:1}),d(c(I),{abstract:"",multiple:"",accept:"image/*",onChange:t[3]||(t[3]=e=>ue(e,c(E).IMAGE))},{default:m((()=>[d(c(b),{abstract:""},{default:m((({handleClick:e})=>[d(c(_),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[W])),_:2},1032,["onClick"])])),_:1})])),_:1}),d(c(I),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:t[4]||(t[4]=e=>ue(e,c(E).FILE))},{default:m((()=>[d(c(b),{abstract:""},{default:m((({handleClick:e})=>[d(c(_),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[Y])),_:2},1032,["onClick"])])),_:1})])),_:1}),c(ie)?(s(),r(p,{key:0},[d(w,v(c(re),{onComfirm:t[5]||(t[5]=e=>ae(c(E).AUDIO,e))}),{trigger:m((()=>[d(c(_),{quaternary:"",size:"tiny"},{icon:m((()=>[d(c(k),{size:"18",component:c(O)},null,8,["component"])])),_:1})])),_:1},16),d(w,v(c(re),{onComfirm:t[6]||(t[6]=e=>ae(c(E).VIDEO,e))}),{trigger:m((()=>[d(c(_),{quaternary:"",size:"tiny"},{icon:m((()=>[d(c(k),{size:"20",component:c(V)},null,8,["component"])])),_:1})])),_:1},16)],64)):(s(),r(p,{key:1},[d(c(_),{quaternary:"",size:"tiny",onClick:t[7]||(t[7]=()=>ae(c(E).AUDIO))},{icon:m((()=>[d(c(k),{size:"18",component:c(O)},null,8,["component"])])),_:1}),d(c(_),{quaternary:"",size:"tiny",onClick:t[8]||(t[8]=()=>ae(c(E).VIDEO))},{icon:m((()=>[d(c(k),{size:"20",component:c(V)},null,8,["component"])])),_:1})],64))]),i(l("div",{ref_key:"inputRef",ref:ee,class:"input-box",contenteditable:"",onKeydown:ce,onInput:le},null,544),[[M,c(ne).id]]),l("div",Z,[$,d(c(_),{type:"primary",round:"",disabled:!te.value,onClick:de},{default:m((()=>[h("发送")])),_:1},8,["disabled"])])],4)),[[M,c(ne).id]])}});export{ee as default};
|
@@ -12,7 +12,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
12
12
|
defaultValue?: undefined;
|
13
13
|
} | {
|
14
14
|
mode: string;
|
15
|
-
defaultValue:
|
15
|
+
defaultValue: AnyObject[];
|
16
16
|
disabledIds?: undefined;
|
17
17
|
}>;
|
18
18
|
handleOpenChatFile: (type: string) => void;
|
@@ -294,6 +294,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
294
294
|
allowedInvalidValue: {
|
295
295
|
type: StringConstructor;
|
296
296
|
};
|
297
|
+
to: {
|
298
|
+
type: import("vue").PropType<string | false | HTMLElement>;
|
299
|
+
default: string;
|
300
|
+
};
|
297
301
|
}, {
|
298
302
|
attrs: {
|
299
303
|
[x: string]: unknown;
|
@@ -314,6 +318,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
314
318
|
allowedInvalidValue: {
|
315
319
|
type: StringConstructor;
|
316
320
|
};
|
321
|
+
to: {
|
322
|
+
type: import("vue").PropType<string | false | HTMLElement>;
|
323
|
+
default: string;
|
324
|
+
};
|
317
325
|
}>> & {
|
318
326
|
"onUpdate:formatted-value"?: ((...args: any[]) => any) | undefined;
|
319
327
|
}>>;
|
@@ -350,10 +358,15 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
350
358
|
allowedInvalidValue: {
|
351
359
|
type: StringConstructor;
|
352
360
|
};
|
361
|
+
to: {
|
362
|
+
type: import("vue").PropType<string | false | HTMLElement>;
|
363
|
+
default: string;
|
364
|
+
};
|
353
365
|
}>> & {
|
354
366
|
"onUpdate:formatted-value"?: ((...args: any[]) => any) | undefined;
|
355
367
|
}, {
|
356
368
|
updateUnchangedValue: boolean;
|
369
|
+
to: string | false | HTMLElement;
|
357
370
|
}>>;
|
358
371
|
formatTime: typeof import("../utils").formatTime;
|
359
372
|
MESSAGE_TYPE: typeof import("../constants").MESSAGE_TYPE;
|
@@ -382,9 +395,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
382
395
|
};
|
383
396
|
disabledIds: {
|
384
397
|
type: import("vue").PropType<string[]>;
|
398
|
+
default: () => never[];
|
385
399
|
};
|
386
400
|
defaultValue: {
|
387
|
-
type: import("vue").PropType<
|
401
|
+
type: import("vue").PropType<AnyObject[]>;
|
388
402
|
};
|
389
403
|
}, {
|
390
404
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
@@ -401,34 +415,52 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
401
415
|
};
|
402
416
|
disabledIds: {
|
403
417
|
type: import("vue").PropType<string[]>;
|
418
|
+
default: () => never[];
|
404
419
|
};
|
405
420
|
defaultValue: {
|
406
|
-
type: import("vue").PropType<
|
421
|
+
type: import("vue").PropType<AnyObject[]>;
|
407
422
|
};
|
408
423
|
}>> & {
|
409
424
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
410
425
|
}>>;
|
411
426
|
emit: (event: "comfirm", ...args: any[]) => void;
|
412
427
|
state: import("../types").IState;
|
428
|
+
listRef: import("vue").Ref<any>;
|
429
|
+
keyword: import("vue").Ref<any>;
|
413
430
|
showModal: import("vue").Ref<boolean>;
|
414
|
-
|
431
|
+
checkedOptions: import("vue").Ref<AnyObject[]>;
|
415
432
|
options: import("vue").Ref<AnyObject[]>;
|
416
433
|
groupName: import("vue").Ref<string>;
|
434
|
+
checkedSourceIds: import("vue").Ref<(string | number)[]>;
|
435
|
+
userList: import("vue").Ref<AnyObject[]>;
|
436
|
+
handleInput: () => void;
|
437
|
+
_disabledIds: import("vue").ComputedRef<any[]>;
|
438
|
+
defaultOptions: import("vue").ComputedRef<{
|
439
|
+
id: any;
|
440
|
+
name: any;
|
441
|
+
avatar: any;
|
442
|
+
}[]>;
|
443
|
+
checkedIds: import("vue").ComputedRef<any[]>;
|
417
444
|
btnDisabled: import("vue").ComputedRef<boolean>;
|
445
|
+
allChecked: import("vue").WritableComputedRef<boolean>;
|
418
446
|
handlePositiveClick: () => Promise<void>;
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
}) => JSX.Element | null;
|
447
|
+
updateCheckedSourceIds: () => void;
|
448
|
+
handleSourceIdsUpdate: (value: (string | number)[], meta: {
|
449
|
+
actionType: "check" | "uncheck";
|
450
|
+
value: string | number;
|
451
|
+
}) => void;
|
452
|
+
closeTag: (id: string) => void;
|
453
|
+
renderTargetList: () => JSX.Element[] | null;
|
427
454
|
NModal: any;
|
428
455
|
NButton: any;
|
429
|
-
|
456
|
+
NSpace: any;
|
457
|
+
NAvatar: any;
|
430
458
|
NIcon: any;
|
459
|
+
NTag: any;
|
431
460
|
NInput: any;
|
461
|
+
NCheckbox: any;
|
462
|
+
NCheckboxGroup: any;
|
463
|
+
SearchOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
432
464
|
AddOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
433
465
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
434
466
|
title: {
|
@@ -444,15 +476,17 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
444
476
|
};
|
445
477
|
disabledIds: {
|
446
478
|
type: import("vue").PropType<string[]>;
|
479
|
+
default: () => never[];
|
447
480
|
};
|
448
481
|
defaultValue: {
|
449
|
-
type: import("vue").PropType<
|
482
|
+
type: import("vue").PropType<AnyObject[]>;
|
450
483
|
};
|
451
484
|
}>> & {
|
452
485
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
453
486
|
}, {
|
454
487
|
mode: string;
|
455
488
|
title: string;
|
489
|
+
disabledIds: string[];
|
456
490
|
}>;
|
457
491
|
PersonAddOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
458
492
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as o,computed as i,openBlock as t,createElementBlock as s,Fragment as a,unref as
|
1
|
+
import{defineComponent as e,ref as o,computed as i,openBlock as t,createElementBlock as s,Fragment as a,unref as r,createElementVNode as n,createVNode as l,withCtx as c,toDisplayString as u,normalizeProps as m,guardReactiveProps as h,createCommentVNode as d}from"vue";import{NAvatar as v,NButton as p,NIcon as f}from"naive-ui";import{useState as y}from"../hooks/useState.js";import{useSession as _}from"../hooks/useSession.js";import"trtc-sdk-v5";import"date-fns";import"lodash-es";import"../utils/emoji.js";import j from"./PersonProfile.vue.js";import w from"./ChatSet.vue.js";import C from"./ChatFile.vue.js";import b from"./ChatRecord.vue.js";import g from"./ChatAdd.vue.js";import{PersonAddOutline as k}from"@vicons/ionicons5";const z={key:0,class:"chat-header box-shadow"},S={class:"chat-header__left"},q={class:"name"},U={class:"chat-header__right"},I=n("i",{class:"chat--iconfont chat--icon-image"},null,-1),G=n("i",{class:"chat--iconfont chat--icon-folder"},null,-1),x=n("i",{class:"chat--iconfont chat--icon-list-search"},null,-1),P=n("i",{class:"chat--iconfont chat--icon-set"},null,-1);var A=e({__name:"ChatHeader",setup(e){const{state:A}=y(),{isGroupChat:F}=_(A),H=o(!1),R=o(!1),V=o("image"),B=o(!1),D=i((()=>{const e=A.currentGroupUser.map((e=>e.id));return F.value?{mode:"join",disabledIds:e}:{mode:"create",defaultValue:A.currentGroupUser}}));function E(e){V.value=e,R.value=!0}return(e,o)=>(t(),s(a,null,[r(A).id?(t(),s("section",z,[n("div",S,[l(j,{"user-id":r(A).currentSessionItem.receiver,disabled:r(F)},{trigger:c((()=>[l(r(v),{round:"",size:30,src:r(A).currentSessionItem.avatar},null,8,["src"])])),_:1},8,["user-id","disabled"]),n("span",q,u(r(A).currentSessionItem.name),1)]),n("div",U,[l(r(p),{quaternary:"",size:"tiny",onClick:o[0]||(o[0]=()=>E("image"))},{icon:c((()=>[I])),_:1}),l(r(p),{quaternary:"",size:"tiny",onClick:o[1]||(o[1]=()=>E("file"))},{icon:c((()=>[G])),_:1}),l(g,m(h(r(D))),{trigger:c((()=>[l(r(p),{quaternary:"",size:"tiny"},{icon:c((()=>[l(r(f),{size:"18",component:r(k)},null,8,["component"])])),_:1})])),_:1},16),l(r(p),{quaternary:"",size:"tiny",onClick:o[2]||(o[2]=()=>B.value=!0)},{icon:c((()=>[x])),_:1}),l(r(p),{quaternary:"",size:"tiny",onClick:o[3]||(o[3]=()=>H.value=!0)},{icon:c((()=>[P])),_:1})])])):d("v-if",!0),l(w,{show:H.value,"onUpdate:show":o[4]||(o[4]=e=>H.value=e)},null,8,["show"]),l(C,{show:R.value,"onUpdate:show":o[5]||(o[5]=e=>R.value=e),type:V.value,visible:R.value},null,8,["show","type","visible"]),l(b,{show:B.value,"onUpdate:show":o[6]||(o[6]=e=>B.value=e),visible:B.value},null,8,["show","visible"])],64))}});export{A as default};
|
@@ -10,7 +10,8 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
10
10
|
isGroupChat: import("vue").ComputedRef<boolean>;
|
11
11
|
contextmenuRef: import("vue").Ref<any>;
|
12
12
|
showMenu: import("vue").Ref<boolean>;
|
13
|
-
|
13
|
+
menuPosition: any;
|
14
|
+
menuMsgId: import("vue").Ref<any>;
|
14
15
|
pageInfo: {
|
15
16
|
page: number;
|
16
17
|
hasMore: boolean;
|
@@ -20,19 +21,9 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
20
21
|
'--c-tip-top': string;
|
21
22
|
'--c-tip-gap': string;
|
22
23
|
}>;
|
23
|
-
chatMainBounding: import("vue").ComputedRef<{
|
24
|
-
height: import("vue").Ref<number>;
|
25
|
-
bottom: import("vue").Ref<number>;
|
26
|
-
left: import("vue").Ref<number>;
|
27
|
-
right: import("vue").Ref<number>;
|
28
|
-
top: import("vue").Ref<number>;
|
29
|
-
width: import("vue").Ref<number>;
|
30
|
-
x: import("vue").Ref<number>;
|
31
|
-
y: import("vue").Ref<number>;
|
32
|
-
update: () => void;
|
33
|
-
}>;
|
34
24
|
getHistoryRecord: () => Promise<void>;
|
35
|
-
handleContextmenu: (event: MouseEvent) => Promise<void>;
|
25
|
+
handleContextmenu: (event: MouseEvent, msgId: string) => Promise<void>;
|
26
|
+
setMenuPosition: (event: MouseEvent) => Promise<void>;
|
36
27
|
showMessage: (item: AnyObject) => boolean;
|
37
28
|
showTemplateMsg: (item: AnyObject, type: 'system' | 'template') => boolean | undefined;
|
38
29
|
isTemplate3: (content: AnyObject) => boolean;
|
@@ -206,10 +197,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
206
197
|
position: {
|
207
198
|
type: import("vue").PropType<CSSProperties>;
|
208
199
|
};
|
209
|
-
|
210
|
-
type:
|
200
|
+
msgId: {
|
201
|
+
type: StringConstructor;
|
211
202
|
};
|
212
|
-
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "update:show")[], "select" | "update:show", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
203
|
+
}, () => JSX.Element | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "update:show")[], "select" | "update:show", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
213
204
|
show: {
|
214
205
|
type: BooleanConstructor;
|
215
206
|
default: boolean;
|
@@ -217,8 +208,8 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
217
208
|
position: {
|
218
209
|
type: import("vue").PropType<CSSProperties>;
|
219
210
|
};
|
220
|
-
|
221
|
-
type:
|
211
|
+
msgId: {
|
212
|
+
type: StringConstructor;
|
222
213
|
};
|
223
214
|
}>> & {
|
224
215
|
onSelect?: ((...args: any[]) => any) | undefined;
|
@@ -232,7 +223,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
232
223
|
getAVTime: typeof getAVTime;
|
233
224
|
MESSAGE_TYPE: typeof MESSAGE_TYPE;
|
234
225
|
ChatbubbleEllipsesOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
235
|
-
EllipsisHorizontal: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
236
226
|
CallOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
237
227
|
VideocamOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
238
228
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as t,computed as n,watch as s,openBlock as o,createElementBlock as i,normalizeClass as a,unref as r,normalizeStyle as
|
1
|
+
import{defineComponent as e,ref as t,computed as n,watch as s,openBlock as o,createElementBlock as i,normalizeClass as a,unref as r,normalizeStyle as c,createVNode as l,withCtx as m,Fragment as u,renderList as p,toDisplayString as d,createCommentVNode as f,createBlock as v,createElementVNode as y,withModifiers as g}from"vue";import{NImageGroup as T,NAvatar as h,NImage as M,NIcon as k,NButtonGroup as _,NButton as I}from"naive-ui";import{format as S}from"date-fns";import{getHistoryRecordApi as x,readMessageApi as j}from"../api/index.js";import{useState as E}from"../hooks/useState.js";import{useSession as L}from"../hooks/useSession.js";import{MESSAGE_TYPE as A}from"../constants/index.js";import"trtc-sdk-v5";import{isAudioOrVideoMessage as C,simplifyMessage as b,getAVTime as w,downloadFile as H}from"../utils/index.js";import{first as z,last as D}from"lodash-es";import O from"./PersonProfile.vue.js";import P from"./MessageTemplate.vue.js";import{emojis as N}from"../utils/emoji.js";import U from"./ContextMenu.js";import{useScrollLoading as q}from"../hooks/useScrollLoading.js";import{CallOutline as R,VideocamOutline as G,ChatbubbleEllipsesOutline as J}from"@vicons/ionicons5";const K={key:0,class:"time"},F={key:2,class:"message-box"},X={key:0,class:"content-box"},B={class:"name-box"},Q=["data-time"],V=["onContextmenu"],W={key:0,class:"reference-content"},Y=["innerHTML"],Z=["innerHTML"],$=["src"],ee={style:{"margin-left":"8px"}},te=["href","onClick"];var ne=e({__name:"ChatMain",setup(e){const ne=t(),{state:se,setMsgList:oe}=E(),{setCurrentSessionItem:ie,isGroupChat:ae}=L(se),re=t(),ce=t(!1),le=t({left:0,top:0}),me=t(),ue={page:0,hasMore:!0,lastSendTime:S(new Date,"yyyy-MM-dd HH:mm:ss")},pe=n((()=>({"--c-tip-top":ae.value?"1px":"-20px","--c-tip-gap":ae.value?"10px":"0px"})));async function de(){try{if(!ue.hasMore)return;ue.page++;const e=await x({sessionKey:se.currentSessionItem.sessionKey,page:ue.page,lastSendTime:ue.lastSendTime});if(!Array.isArray(e)||0===e.length)return ue.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");const t=z(e).id;ue.lastSendTime=D(e).sendTime,oe(ue.page>1?[...e,...se.msgList]:e),1===ue.page&&se.currentSessionItem.unreadNum&&(await j({chatType:se.currentSessionItem.chatType,messageIdSet:[t],receiver:se.userInfo.id,sender:se.currentSessionItem.receiver}),ie({unreadNum:0}))}catch(e){console.log(e)}}function fe(e){const{chatMessageType:t,messageTemplate:n}=e.content;return t!==A.TEMPLATE||!!n}function ve(e,t){var n,s;const{chatMessageType:o,messageTemplate:i}=e.content;if(o===A.TEMPLATE)return"system"===t?2==(null==(n=null==i?void 0:i.setting)?void 0:n.style.id):2!=(null==(s=null==i?void 0:i.setting)?void 0:s.style.id)}function ye(e){var t,n;const{chatMessageType:s,messageTemplate:o}=e;return s===A.TEMPLATE&&3==(null==(n=null==(t=null==o?void 0:o.setting)?void 0:t.style)?void 0:n.id)}function ge(e,t){var n;const s=new Date(e.sendTime).getTime(),o=null==(n=se.msgList[t+1])?void 0:n.sendTime;if(o){return s-new Date(o).getTime()>3e5}return!0}return q(ne,(()=>{de()}),"top",(()=>{ce.value=!1})),s((()=>se.id),(e=>{e&&(Object.assign(ue,{page:0,hasMore:!0,lastSendTime:S(new Date,"yyyy-MM-dd HH:mm:ss")}),de())}),{immediate:!0}),s((()=>se.isAppendMsg),(e=>{e&&(oe([...se.msgList,se.currentMsg]),se.isAppendMsg=!1,async function(){var e,t,n;const s=null!=(t=null==(e=ne.value)?void 0:e.scrollHeight)?t:0;null==(n=ne.value)||n.scrollTo({top:s,behavior:"auto"})}())}),{immediate:!0}),(e,t)=>(o(),i("div",{class:a(["chat-main",{"home-bg":!r(se).id}]),ref_key:"chatMainRef",ref:ne,style:c(r(pe))},[l(r(T),{"show-toolbar-tooltip":""},{default:m((()=>[(o(!0),i(u,null,p(r(se).msgList,((e,t)=>(o(),i(u,{key:e.id},[fe(e)?(o(),i("div",{key:0,class:a(["message-item",{"message-item--mine":e.sender==r(se).userInfo.id}])},[ge(e,t)?(o(),i("p",K,d(e.__sendTime),1)):f("v-if",!0),ve(e,"system")?(o(),v(P,{key:1,data:e},null,8,["data"])):(o(),i("div",F,[l(O,{"user-id":e.sender},{trigger:m((()=>[l(r(h),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-id"]),e.content?(o(),i("div",X,[y("div",B,[y("span",{class:"name","data-time":e.__time},d(r(ae)?e.senderName:""),9,Q)]),y("div",{class:a(["content",{emoji:e.content.chatMessageType===r(A).EMOJI,template:e.content.chatMessageType===r(A).TEMPLATE,"template--3":ye(e.content),"audio-video":r(C)(e.content)}]),onContextmenu:g((t=>async function(e,t){}(0,e.id)),["prevent"])},[e.content.chatMessageType===r(A).TEXT?(o(),i(u,{key:0},[e.content.referenceContent?(o(),i("div",W,[y("span",null,d(e.content.referenceContent.senderName)+":",1),y("pre",{innerHTML:r(b)(e.content.referenceContent.content)},null,8,Y)])):f("v-if",!0),y("pre",{innerHTML:e.__content},null,8,Z)],64)):f("v-if",!0),e.content.chatMessageType===r(A).EMOJI?(o(),i("img",{key:1,src:r(N).findEmoji(e.__content)},null,8,$)):f("v-if",!0),ve(e,"template")?(o(),v(P,{key:2,data:e},null,8,["data"])):f("v-if",!0),e.content.chatMessageType===r(A).IMAGE?(o(),v(r(M),{key:3,width:"240",src:e.__content},null,8,["src"])):f("v-if",!0),r(C)(e.content)?(o(),i(u,{key:4},[l(r(k),{class:a({"is-audio":e.content.chatMessageType===r(A).AUDIO}),component:e.content.chatMessageType===r(A).AUDIO?r(R):r(G)},null,8,["class","component"]),y("span",ee,d(r(w)(e.__content)),1)],64)):f("v-if",!0),e.content.chatMessageType===r(A).FILE?(o(),i("a",{key:5,href:e.content.fileUrl,onClick:g((()=>r(H)(e.content.fileUrl,e.__content)),["prevent"])},d(e.__content),9,te)):f("v-if",!0),l(r(_),{class:"quick-menu"},{default:m((()=>[f(' <n-button quaternary size="tiny">\n\t\t\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t\t\t<i class="chat--iconfont chat--icon-face" />\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t</n-button> '),l(r(I),{quaternary:"",size:"tiny",onClick:()=>{return t=e,se.currentReferenceMsg=t,void Object.assign(se.currentReferenceMsg,{chatType:se.currentSessionItem.chatType,receiver:se.currentSessionItem.receiver,receiverAvatar:se.currentSessionItem.avatar,receiverName:se.currentSessionItem.name});var t}},{icon:m((()=>[l(r(k),{size:"17",component:r(J)},null,8,["component"])])),_:2},1032,["onClick"]),f(' <n-button quaternary size="tiny">\n\t\t\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t\t\t<n-icon :component="EllipsisHorizontal" />\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t</n-button> ')])),_:2},1024)],42,V)])):f("v-if",!0)]))],2)):f("v-if",!0)],64)))),128))])),_:1}),l(r(U),{ref_key:"contextmenuRef",ref:re,show:ce.value,"onUpdate:show":t[0]||(t[0]=e=>ce.value=e),position:le.value,"msg-id":me.value},null,8,["show","position","msg-id"])],6))}});export{ne as default};
|
@@ -60,6 +60,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
60
60
|
allowedInvalidValue: {
|
61
61
|
type: StringConstructor;
|
62
62
|
};
|
63
|
+
to: {
|
64
|
+
type: PropType<string | false | HTMLElement>;
|
65
|
+
default: string;
|
66
|
+
};
|
63
67
|
}, {
|
64
68
|
attrs: {
|
65
69
|
[x: string]: unknown;
|
@@ -80,6 +84,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
80
84
|
allowedInvalidValue: {
|
81
85
|
type: StringConstructor;
|
82
86
|
};
|
87
|
+
to: {
|
88
|
+
type: PropType<string | false | HTMLElement>;
|
89
|
+
default: string;
|
90
|
+
};
|
83
91
|
}>> & {
|
84
92
|
"onUpdate:formatted-value"?: ((...args: any[]) => any) | undefined;
|
85
93
|
}>>;
|
@@ -116,10 +124,15 @@ declare const _default: import("vue").DefineComponent<{
|
|
116
124
|
allowedInvalidValue: {
|
117
125
|
type: StringConstructor;
|
118
126
|
};
|
127
|
+
to: {
|
128
|
+
type: PropType<string | false | HTMLElement>;
|
129
|
+
default: string;
|
130
|
+
};
|
119
131
|
}>> & {
|
120
132
|
"onUpdate:formatted-value"?: ((...args: any[]) => any) | undefined;
|
121
133
|
}, {
|
122
134
|
updateUnchangedValue: boolean;
|
135
|
+
to: string | false | HTMLElement;
|
123
136
|
}>>;
|
124
137
|
formatTime: typeof formatTime;
|
125
138
|
MESSAGE_TYPE: typeof MESSAGE_TYPE;
|
@@ -1,20 +1,13 @@
|
|
1
|
-
import { AnyObject } from '../../../../shared/types';
|
2
1
|
declare const _default: import("vue").DefineComponent<{}, {
|
3
|
-
cssVars: import("vue").ComputedRef<AnyObject>;
|
2
|
+
cssVars: import("vue").ComputedRef<import("../../../../shared/types").AnyObject>;
|
4
3
|
listRef: import("vue").Ref<any>;
|
5
4
|
inputRef: import("vue").Ref<any>;
|
6
5
|
showSearch: import("vue").Ref<boolean>;
|
7
6
|
keyword: import("vue").Ref<any>;
|
8
|
-
userList: import("vue").Ref<any>;
|
9
7
|
state: import("../types").IState;
|
10
|
-
openSession: (item: AnyObject) => Promise<void>;
|
11
|
-
|
12
|
-
page: number;
|
13
|
-
hasMore: boolean;
|
14
|
-
};
|
8
|
+
openSession: (item: import("../../../../shared/types").AnyObject) => Promise<void>;
|
9
|
+
userList: import("vue").Ref<import("../../../../shared/types").AnyObject[]>;
|
15
10
|
handleInput: () => void;
|
16
|
-
handleSearch: () => Promise<void>;
|
17
|
-
resetAndSearch: () => void;
|
18
11
|
addSession: (userId: string) => Promise<void>;
|
19
12
|
NPopover: any;
|
20
13
|
NButton: any;
|