cnhis-design-vue 3.2.14-beta.24 → 3.2.14-beta.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/ai-chat/src/components/ChatMain.js +1 -1
- package/es/components/ai-chat/src/components/ChatPatient.vue2.js +1 -1
- package/es/components/base-search/src/index.vue2.js +1 -1
- package/es/components/big-table/src/BigTable.vue2.js +1 -1
- package/es/components/big-table/src/components/NoData.vue2.js +1 -1
- package/es/components/big-table/src/components/edit-form/edit-input.js +1 -1
- package/es/components/big-table/src/hooks/useNestTable.js +1 -1
- package/es/components/body-select/src/index.vue2.js +1 -1
- package/es/components/button-print/src/ButtonPrint.vue2.js +1 -1
- package/es/components/button-print/src/components/EditFormat.vue2.js +1 -1
- package/es/components/button-print/src/components/IdentityVerification.vue2.js +1 -1
- package/es/components/button-print/src/components/NewPrintComponent.vue2.js +1 -1
- package/es/components/button-print/src/components/OldPrintComponent.vue2.js +1 -1
- package/es/components/button-print/src/components/Preview.vue2.js +1 -1
- package/es/components/button-print/src/utils/dialog.js +1 -1
- package/es/components/button-print/src/utils/print.js +1 -1
- package/es/components/calendar/index.d.ts +4 -4
- package/es/components/calendar/src/Calendar.vue.d.ts +4 -4
- package/es/components/card-reader-sdk/src/components/readCardDialog.vue2.js +1 -1
- package/es/components/card-reader-sdk/src/utils/readHealthCard.js +1 -1
- package/es/components/classification/src/components/search-filter/index.vue2.js +1 -1
- package/es/components/classification/src/components/set-classification/index.vue2.js +1 -1
- package/es/components/classification/src/components/table-modal/index.vue2.js +1 -1
- package/es/components/classification/src/index.vue2.js +1 -1
- package/es/components/default-page/src/constants/index.js +1 -1
- package/es/components/default-page/src/index.vue2.js +1 -1
- package/es/components/expand-field/src/components/FormBatchOptionsModal.vue2.js +1 -1
- package/es/components/expand-field/src/components/FormItemPerson.vue2.js +1 -1
- package/es/components/expand-field/src/components/PersonModal.vue2.js +1 -1
- package/es/components/expand-field/src/components/form.vue2.js +1 -1
- package/es/components/expand-field/src/index.vue2.js +1 -1
- package/es/components/expand-field/src/utils/constant.js +1 -1
- package/es/components/fabric-chart/index.d.ts +6 -4
- package/es/components/fabric-chart/src/FabricChart.vue.d.ts +6 -4
- package/es/components/fabric-chart/src/FabricChart.vue2.js +1 -1
- package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcess.js +1 -1
- package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcessChart.js +1 -1
- package/es/components/fabric-chart/src/hooks/electrocardiogram/hooks/useDetailEvent.js +1 -1
- package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogram.js +1 -1
- package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogramChart.js +1 -1
- package/es/components/fabric-chart/src/hooks/electrocardiogram/useMeasureInstrument.js +1 -1
- package/es/components/fabric-chart/src/hooks/newBirthProcess/useNewBirthProcess.js +1 -1
- package/es/components/fabric-chart/src/hooks/newBirthProcess/useNewBirthProcessChart.js +1 -1
- package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useCenter.js +1 -1
- package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useLeft.js +1 -1
- package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useOther.js +1 -1
- package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useSurgicalAnesthesiaChart.js +1 -1
- package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useTop.js +1 -1
- package/es/components/fabric-chart/src/hooks/temperature/useBottom.js +1 -1
- package/es/components/fabric-chart/src/hooks/temperature/useCenter.js +1 -1
- package/es/components/fabric-chart/src/hooks/temperature/useLeft.js +1 -1
- package/es/components/fabric-chart/src/hooks/temperature/useOther.js +1 -1
- package/es/components/fabric-chart/src/hooks/temperature/useTemperatureChart.js +1 -1
- package/es/components/fabric-chart/src/hooks/temperature/useTop.js +1 -1
- package/es/components/field-set/src/FieldColor.vue2.js +1 -1
- package/es/components/field-set/src/FieldFilter.vue2.js +1 -1
- package/es/components/field-set/src/FieldSet.vue2.js +1 -1
- package/es/components/field-set/src/TableStyle.vue2.js +1 -1
- package/es/components/field-set/src/components/condition.vue2.js +1 -1
- package/es/components/field-set/src/components/edit-dialog.vue2.js +1 -1
- package/es/components/field-set/src/components/edit-filter.vue2.js +1 -1
- package/es/components/field-set/src/components/table-row.vue2.js +1 -1
- package/es/components/field-set/src/constants/filter.js +1 -1
- package/es/components/field-set/src/constants/index.js +1 -1
- package/es/components/form-config/src/components/FormConfigEventSetting.vue2.js +1 -1
- package/es/components/form-config/src/hooks/useLocale.js +1 -1
- package/es/components/form-render/src/components/renderer/remoteSearch.js +1 -1
- package/es/components/form-render/src/components/renderer/switch.js +1 -1
- package/es/components/iho-chat/index.d.ts +23 -2
- package/es/components/iho-chat/src/Index.vue.d.ts +23 -2
- package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatFile.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatHeader.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatSearch.vue.d.ts +40 -19
- package/es/components/iho-chat/src/components/ChatSearch.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatSet.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ContextMenu.js +1 -1
- package/es/components/iho-chat/src/components/MessageTemplate.vue2.js +1 -1
- package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +1 -1
- package/es/components/iho-chat/src/components/SiderList.vue.d.ts +3 -0
- package/es/components/iho-chat/src/components/SiderList.vue2.js +1 -1
- package/es/components/iho-chat/src/components/Video.vue2.js +1 -1
- package/es/components/iho-chat/src/constants/index.d.ts +1 -2
- package/es/components/iho-chat/src/constants/index.js +1 -1
- package/es/components/iho-chat/src/hooks/useData.js +1 -1
- package/es/components/iho-chat/src/hooks/useSearchUserList.js +1 -1
- package/es/components/iho-chat/src/utils/chatSock.js +1 -1
- package/es/components/iho-chat/src/utils/index.d.ts +1 -0
- package/es/components/iho-chat/src/utils/index.js +1 -1
- package/es/components/iho-chat/style/index.css +1 -1
- package/es/components/iho-table/src/plugins/dynamicFilterRenderPlugin/dynamicFilter.vue2.js +1 -1
- package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue2.js +1 -1
- package/es/components/iho-table/src/plugins/filterTextPlugin/filter.vue2.js +1 -1
- package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/numberRendererPlugin.js +1 -1
- package/es/components/index.css +1 -1
- package/es/components/info-header/src/components/patientInfo/index.vue2.js +1 -1
- package/es/components/keyboard/src/components/NumberPanel.vue2.js +1 -1
- package/es/components/map/src/Map.vue2.js +1 -1
- package/es/components/picture-clipper/src/PictureClipper.vue2.js +1 -1
- package/es/components/quick-search/src/index.vue2.js +1 -1
- package/es/components/recommend-search/src/components/BaseSearch.js +1 -1
- package/es/components/recommend-search/src/components/RecommendInput.vue2.js +1 -1
- package/es/components/recommend-search/src/components/RecommendSelect.vue2.js +1 -1
- package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
- package/es/components/scale-view/src/components/NoData.vue2.js +1 -1
- package/es/components/scale-view/src/components/formitem/r-checkbox.js +1 -1
- package/es/components/scale-view/src/components/formitem/r-input.js +1 -1
- package/es/components/scale-view/src/components/formitem/r-radio.js +1 -1
- package/es/components/scale-view/src/components/formitem/r-sign.js +1 -1
- package/es/components/scale-view/src/components/formitem/standard-modal.js +1 -1
- package/es/components/scale-view/src/hooks/scaleview-methods.js +1 -1
- package/es/components/scale-view/src/hooks/scaleview-submit.js +1 -1
- package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
- package/es/components/select-label/src/SelectLabel.vue2.js +1 -1
- package/es/components/select-label/src/components/label-classify.vue2.js +1 -1
- package/es/components/select-label/src/ihoLabel/IhoLabelFormContent.vue2.js +1 -1
- package/es/components/select-label/src/ihoLabel/IhoSelectLabel.vue2.js +1 -1
- package/es/components/select-label/src/ihoLabel/iho-label-classify.vue2.js +1 -1
- package/es/components/select-person/src/SelectPerson.vue2.js +1 -1
- package/es/components/select-person/src/SelectPersonType.vue2.js +1 -1
- package/es/components/select-person/src/components/SearchOrgAndStaff.vue2.js +1 -1
- package/es/components/select-person/src/index.vue2.js +1 -1
- package/es/components/slider-tree/src/index.vue2.js +1 -1
- package/es/components/table-export-field/src/components/ExportModal.vue2.js +1 -1
- package/es/components/table-export-field/src/components/SaveProjectModal.vue2.js +1 -1
- package/es/components/table-export-field/src/index.vue2.js +1 -1
- package/es/components/table-filter/src/components/bi-filter/ValueCfg.vue2.js +1 -1
- package/es/components/table-filter/src/components/bi-filter/helpers/options.js +1 -1
- package/es/components/table-filter/src/components/bi-filter/index.vue2.js +1 -1
- package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue2.js +1 -1
- package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue2.js +1 -1
- package/es/components/table-filter/src/components/classify-filter/components/InputFilter.vue2.js +1 -1
- package/es/components/table-filter/src/components/classify-filter/components/InputNumberGroup.vue2.js +1 -1
- package/es/components/table-filter/src/components/classify-filter/helpers/options.js +1 -1
- package/es/components/table-filter/src/components/classify-filter/hooks/useDisplayCategory.js +1 -1
- package/es/components/table-filter/src/components/classify-filter/index.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/DateInner.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/DateOut.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/DateRangeInner.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/DateRangeOut.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/InputCustom.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/InputNumberGroup.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/LabelInner.vue2.js +1 -1
- 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/helpers/dateExtraMap.js +1 -1
- package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.js +1 -1
- package/es/components/table-filter/src/tool/baseOptions.js +1 -1
- package/es/components/tooth-bitmap/src/ToothBitmap.vue2.js +1 -1
- package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue2.js +1 -1
- package/es/components/vod-chunk-upload/src/vod-upload-modal.js +1 -1
- package/es/shared/package.json.js +1 -1
- package/package.json +76 -76
@@ -187,6 +187,7 @@ declare const IhoChat: SFCWithInstall<import("vue").DefineComponent<{
|
|
187
187
|
unreadTotal: import("vue").ComputedRef<number>;
|
188
188
|
openSession: (item: import("../../shared/types").AnyObject) => Promise<void>;
|
189
189
|
setUpdateSessionItem: (item: import("../../shared/types").AnyObject) => void;
|
190
|
+
setCurrentSessionItem: (item: import("../../shared/types").AnyObject) => void;
|
190
191
|
currentWidth: import("vue").ComputedRef<number>;
|
191
192
|
sessionList: import("vue").ComputedRef<import("../../shared/types").AnyObject[]>;
|
192
193
|
getLabelNum: (session: import("../../shared/types").AnyObject) => number;
|
@@ -241,6 +242,7 @@ declare const IhoChat: SFCWithInstall<import("vue").DefineComponent<{
|
|
241
242
|
beforeUnmount(el: any): void;
|
242
243
|
};
|
243
244
|
formatTime: typeof import("./src/utils").formatTime;
|
245
|
+
STATUS: typeof import("./src/constants").STATUS;
|
244
246
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
245
247
|
ChatHeader: import("vue").DefineComponent<{}, {
|
246
248
|
state: {
|
@@ -1889,13 +1891,32 @@ declare const IhoChat: SFCWithInstall<import("vue").DefineComponent<{
|
|
1889
1891
|
openSession: (item: import("../../shared/types").AnyObject) => Promise<void>;
|
1890
1892
|
userList: import("vue").Ref<import("../../shared/types").AnyObject[]>;
|
1891
1893
|
handleInput: () => void;
|
1894
|
+
currentTabValue: import("vue").Ref<string>;
|
1895
|
+
userItemRender: import("vue").DefineComponent<{
|
1896
|
+
item: {
|
1897
|
+
type: import("vue").PropType<import("../../shared/types").AnyObject>;
|
1898
|
+
default: () => {};
|
1899
|
+
};
|
1900
|
+
}, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
1901
|
+
item: {
|
1902
|
+
type: import("vue").PropType<import("../../shared/types").AnyObject>;
|
1903
|
+
default: () => {};
|
1904
|
+
};
|
1905
|
+
}>>, {
|
1906
|
+
item: import("../../shared/types").AnyObject;
|
1907
|
+
}>;
|
1908
|
+
groupList: import("vue").ComputedRef<import("../../shared/types").AnyObject[]>;
|
1892
1909
|
showNoData: import("vue").ComputedRef<boolean>;
|
1893
|
-
|
1910
|
+
showAllNoData: import("vue").ComputedRef<boolean>;
|
1911
|
+
showGroupNoData: import("vue").ComputedRef<boolean>;
|
1912
|
+
addSession: (id: string) => Promise<void>;
|
1894
1913
|
NPopover: any;
|
1895
1914
|
NButton: any;
|
1896
|
-
NAvatar: any;
|
1897
1915
|
NInput: any;
|
1898
1916
|
NIcon: any;
|
1917
|
+
NTabs: any;
|
1918
|
+
NTabPane: any;
|
1919
|
+
NDivider: any;
|
1899
1920
|
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<{}>>, {}>;
|
1900
1921
|
DefaultPage: SFCWithInstall<import("vue").DefineComponent<{
|
1901
1922
|
type: {
|
@@ -188,6 +188,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
188
188
|
unreadTotal: import("vue").ComputedRef<number>;
|
189
189
|
openSession: (item: AnyObject) => Promise<void>;
|
190
190
|
setUpdateSessionItem: (item: AnyObject) => void;
|
191
|
+
setCurrentSessionItem: (item: AnyObject) => void;
|
191
192
|
currentWidth: import("vue").ComputedRef<number>;
|
192
193
|
sessionList: import("vue").ComputedRef<AnyObject[]>;
|
193
194
|
getLabelNum: (session: AnyObject) => number;
|
@@ -242,6 +243,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
242
243
|
beforeUnmount(el: any): void;
|
243
244
|
};
|
244
245
|
formatTime: typeof import("./utils").formatTime;
|
246
|
+
STATUS: typeof import("./constants").STATUS;
|
245
247
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
246
248
|
ChatHeader: import("vue").DefineComponent<{}, {
|
247
249
|
state: {
|
@@ -1890,13 +1892,32 @@ declare const _default: import("vue").DefineComponent<{
|
|
1890
1892
|
openSession: (item: AnyObject) => Promise<void>;
|
1891
1893
|
userList: import("vue").Ref<AnyObject[]>;
|
1892
1894
|
handleInput: () => void;
|
1895
|
+
currentTabValue: import("vue").Ref<string>;
|
1896
|
+
userItemRender: import("vue").DefineComponent<{
|
1897
|
+
item: {
|
1898
|
+
type: PropType<AnyObject>;
|
1899
|
+
default: () => {};
|
1900
|
+
};
|
1901
|
+
}, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
1902
|
+
item: {
|
1903
|
+
type: PropType<AnyObject>;
|
1904
|
+
default: () => {};
|
1905
|
+
};
|
1906
|
+
}>>, {
|
1907
|
+
item: AnyObject;
|
1908
|
+
}>;
|
1909
|
+
groupList: import("vue").ComputedRef<AnyObject[]>;
|
1893
1910
|
showNoData: import("vue").ComputedRef<boolean>;
|
1894
|
-
|
1911
|
+
showAllNoData: import("vue").ComputedRef<boolean>;
|
1912
|
+
showGroupNoData: import("vue").ComputedRef<boolean>;
|
1913
|
+
addSession: (id: string) => Promise<void>;
|
1895
1914
|
NPopover: any;
|
1896
1915
|
NButton: any;
|
1897
|
-
NAvatar: any;
|
1898
1916
|
NInput: any;
|
1899
1917
|
NIcon: any;
|
1918
|
+
NTabs: any;
|
1919
|
+
NTabPane: any;
|
1920
|
+
NDivider: any;
|
1900
1921
|
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<{}>>, {}>;
|
1901
1922
|
DefaultPage: import("../../../shared/types").SFCWithInstall<import("vue").DefineComponent<{
|
1902
1923
|
type: {
|
@@ -1 +1 @@
|
|
1
|
-
import{
|
1
|
+
import{createElementVNode as e,defineComponent as a,ref as l,computed as o,watch as t,openBlock as i,createElementBlock as n,Fragment as u,createVNode as d,unref as r,withCtx as s,createCommentVNode as v,isRef as c,renderList as p,createBlock as m,toDisplayString as f,createTextVNode as g,normalizeClass as w,renderSlot as h}from"vue";import{NModal as b,NInput as y,NIcon as k,NCheckbox as I,NCheckboxGroup as C,NSpace as _,NAvatar as x,NTag as L,NTooltip as S,NButton as j}from"naive-ui";import{SearchOutline as B,AddOutline as U}from"@vicons/ionicons5";import{useData as R}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as V}from"../constants/index.js";import{groupLeaveApi as A,groupJoinApi as E,groupCreateApi as G}from"../api/index.js";import{listSort as N}from"../utils/index.js";import{union as $,intersection as z,unionBy as D,remove as M,isArray as T,uniqBy as P,cloneDeep as q,trim as F}from"lodash-es";import"trtc-sdk-v5";import{useSearchUserList as H}from"../hooks/useSearchUserList.js";var J,K;const O={class:"iho-chat-dialog__content iho-chat-add-wrapper"},Q={key:0,class:"input-box"},W=e("span",null,(null==(J=window.getLanguageByCode)?void 0:J.call(window,"10010.1.34"))||"群名称:",-1),X={class:"transfer-box"},Y={class:"transfer-box__left"},Z={class:"user-list-box"},ee={key:1,class:"no-data"},ae={class:"transfer-box__right"},le={class:"checked-tag-box"},oe={key:0,class:"input-wrapper"};var te=a({__name:"ChatAdd",props:{title:{type:String,default:(null==(K=window.getLanguageByCode)?void 0:K.call(window,"10010.1.42"))||"添加新成员"},mode:{type:String,default:"select"},options:{type:Array},disabledIds:{type:Array,default:()=>[]},defaultValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["comfirm"],setup(a,{emit:J}){const K=a,{state:te,setCurrentSessionItem:ie}=R(),ne=l(),ue=l(""),de=l(!1),re=l([]),se=l([]),ve=l(""),ce=l([]),pe=l(""),{userList:me,handleInput:fe}=H({wrapperRef:ne,keywordRef:ue,before:()=>{me.value=q(se.value),Ie()},after:()=>{ge.value.length&&me.value.forEach((e=>{var a;e.disabled=null==(a=ge.value)?void 0:a.includes(e.id)})),Ie()}}),ge=o((()=>"relay"===K.mode?[]:$(K.disabledIds,[te.userInfo.id]))),we=o((()=>{var e,a;if(!(null==(e=te.sessionList)?void 0:e.length))return[];const l=N(te.sessionList);return null==(a="relay"===K.mode?l:l.filter((e=>e.chatType===V.SINGLE)))?void 0:a.map((e=>({id:e.receiver,name:e.name,avatar:e.avatar})))})),he=o((()=>re.value.length?re.value.map((e=>e.id)):[])),be=o((()=>"create"===K.mode?he.value.length<3:he.value.length<1)),ye=o({get:()=>ce.value.filter((e=>!ge.value.includes(e))).length===me.value.filter((e=>!e.disabled)).length,set(e){const a=K.defaultValue.map((e=>e.id)),l=z(a,ge.value,me.value.map((e=>e.id))),o=me.value.filter((e=>!e.disabled));ce.value=l.concat(e?o.map((e=>e.id)):[]),e?re.value=D(re.value,o,"id"):M(re.value,(e=>o.map((e=>e.id)).includes(e.id)))}});async function ke(){switch(K.mode){case"create":await G({creator:te.userInfo.id,memberIdSet:he.value,name:F(ve.value),orgId:te.orgId});break;case"join":if(await E({groupId:te.currentSessionItem.receiver,operator:te.userInfo.id,memberIdSet:he.value}),!te.currentSessionItem.defaultName){const e=re.value.map((e=>e.name)).join(",");ie({name:`${te.currentSessionItem.name},${e}`})}te.currentGroupUser.push(...me.value.filter((e=>he.value.includes(e.id))));break;case"remove":if(await A({dissolution:!1,groupId:te.currentSessionItem.receiver,operator:te.userInfo.id,memberIdSet:he.value}),!te.currentSessionItem.defaultName){const e=re.value.map((e=>e.name)).join(","),a=new RegExp(e,"g");ie({name:te.currentSessionItem.name.replace(a,"")})}M(te.currentGroupUser,(e=>he.value.includes(e.id)));break;default:J("comfirm",he.value,pe.value)}de.value=!1}function Ie(){var e,a;ce.value=null!=(a=null==(e=me.value.filter((e=>he.value.includes(e.id))))?void 0:e.map((e=>e.id)))?a:[]}function Ce(e,a){if("check"===a.actionType){const e=me.value.find((e=>e.id===a.value));re.value.push(e)}else M(re.value,(e=>e.id===a.value))}return t((()=>de.value),(e=>{if(!e)return;ue.value="",ve.value="";const a=T(K.options)&&K.options.length?K.options:we.value;se.value=P(a,"id").map((e=>{var a;return{...e,disabled:null==(a=ge.value)?void 0:a.includes(e.id)}})),me.value=q(se.value),T(K.defaultValue)&&K.defaultValue.length?(re.value=q(K.defaultValue),Ie()):(re.value=[],ce.value=[])})),(l,o)=>{var t,R;return i(),n(u,null,[d(r(b),{preset:"dialog",title:a.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:de.value,"onUpdate:show":o[5]||(o[5]=e=>de.value=e),"negative-text":(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.32"))||"取消","positive-text":(null==(R=window.getLanguageByCode)?void 0:R.call(window,"10010.1.33"))||"确定","display-directive":"show","positive-button-props":{disabled:r(be)},onPositiveClick:ke},{default:s((()=>{var l,t,w,h,b,S,j;return[e("div",O,["create"===a.mode?(i(),n("div",Q,[W,d(r(y),{clearable:"",placeholder:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.35"))||"取个群名称方便后续搜索",value:ve.value,"onUpdate:value":o[0]||(o[0]=e=>ve.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),e("div",X,[e("div",Y,[d(r(y),{placeholder:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.36"))||"搜索",clearable:"",value:ue.value,"onUpdate:value":[o[1]||(o[1]=e=>ue.value=e),r(fe)],valueModifiers:{trim:!0}},{prefix:s((()=>[d(r(k),{component:r(B)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),e("div",Z,[r(me).length>0?(i(),n(u,{key:0},[d(r(I),{label:(null==(w=window.getLanguageByCode)?void 0:w.call(window,"10010.1.37"))||"全选",checked:r(ye),"onUpdate:checked":o[2]||(o[2]=e=>c(ye)?ye.value=e:null)},null,8,["checked"]),d(r(C),{ref_key:"listRef",ref:ne,value:ce.value,"onUpdate:value":[o[3]||(o[3]=e=>ce.value=e),Ce]},{default:s((()=>[(i(!0),n(u,null,p(r(me),(a=>(i(),m(r(I),{key:a.id,value:a.id,disabled:a.disabled},{default:s((()=>[d(r(_),{align:"center","wrap-item":!1},{default:s((()=>[d(r(x),{src:a.avatar,round:"",size:32},null,8,["src"]),e("span",null,f(a.name),1)])),_:2},1024)])),_:2},1032,["value","disabled"])))),128))])),_:1},8,["value"])],64)):(i(),n("div",ee,(null==(h=window.getLanguageByCode)?void 0:h.call(window,"10010.1.38"))||"找不到相关结果"))])]),e("div",ae,[e("span",null,((null==(b=window.getLanguageByCode)?void 0:b.call(window,"10010.1.39"))||"已选择")+f(r(he).length)+((null==(S=window.getLanguageByCode)?void 0:S.call(window,"10010.1.40"))||"人"),1),e("div",le,[(i(!0),n(u,null,p(re.value,(e=>(i(),m(r(L),{key:e.id,bordered:!1,closable:"relay"===a.mode||e.id!==r(te).userInfo.id,disabled:r(ge).includes(e.id),onClose:()=>{return a=e.id,M(re.value,(e=>e.id===a)),void M(ce.value,(e=>e===a));var a}},{avatar:s((()=>[d(r(x),{round:"",src:e.avatar},null,8,["src"])])),default:s((()=>[g(" "+f(e.name),1)])),_:2},1032,["closable","disabled","onClose"])))),128))]),"relay"===a.mode?(i(),n("div",oe,[d(r(y),{clearable:"",value:pe.value,"onUpdate:value":o[4]||(o[4]=e=>pe.value=e),type:"textarea",placeholder:(null==(j=window.getLanguageByCode)?void 0:j.call(window,"10010.1.41"))||"留言",autosize:{minRows:2,maxRows:2}},null,8,["value"])])):v("v-if",!0)])])])]})),_:1},8,["title","show","positive-button-props"]),e("span",{class:w(["btn-wrapper",{disabled:a.disabled}]),onClick:o[6]||(o[6]=e=>de.value=!0)},[h(l.$slots,"trigger",{},(()=>[d(r(S),{"show-arrow":!1,placement:"bottom"},{trigger:s((()=>[d(r(j),{color:"#ffffff4D",class:"add-btn"},{icon:s((()=>[d(r(k),{component:r(U),color:"#fff"},null,8,["component"])])),_:1})])),default:s((()=>[g(" "+f(a.title),1)])),_:1})]))],2)],64)}}});export{te as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as t,computed as o,watch as a,openBlock as
|
1
|
+
import{defineComponent as e,ref as t,computed as o,watch as a,openBlock as n,createBlock as i,unref as r,withCtx as s,withDirectives as l,createElementVNode as d,createVNode as c,createElementBlock as m,Fragment as u,renderList as p,toDisplayString as g,vShow as v,normalizeStyle as w,createTextVNode as y}from"vue";import{NModal as f,NImageGroup as h,NImage as k,NInput as C,NIcon as M,NTooltip as b}from"naive-ui";import{SearchOutline as _,OpenOutline as j,DownloadOutline as I}from"@vicons/ionicons5";import{searchChatRecordApi as L}from"../api/index.js";import"../../../../shared/utils/index.js";import{useDebounceFn as T}from"@vueuse/core";import{format as x,isSameWeek as S,isSameMonth as A}from"date-fns";import{last as B}from"lodash-es";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{useScrollLoading as D}from"../../../../shared/hooks/useScrollLoading.js";import{useData as H}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{getFileSize as z,downloadFile as U}from"../utils/index.js";import"trtc-sdk-v5";import E from"./ChatAdd.vue.js";const O={class:"label"},$={class:"image-box"},F={class:"file-type"},P={class:"text"},R={class:"name"},G={class:"detail"},N={class:"opt-box"};var V=e({__name:"ChatFile",props:{type:{type:String,default:"image"},visible:{type:Boolean}},setup(e){const V=e,{cssVars:q,state:J,relayMessage:K}=H(),Q=t([]),W=t([]),X=t(),Y=t(),Z=t(),ee=T(ae,500),te={page:0,hasMore:!0,lastSendTime:x(new Date,"yyyy-MM-dd HH:mm:ss")};async function oe(){var e;try{if(!te.hasMore)return;te.page++;const t=await L({orgId:J.orgId,keyword:Z.value,endTime:"",startTime:"",lastSendTime:te.lastSendTime,memberIdSet:[],page:te.page,recordType:"image"===V.type?"IMAGE":"FILE",receiver:J.currentSessionItem.receiver,userId:J.userInfo.id});Array.isArray(t)&&0!==t.length&&Array.isArray(t[0].recordList)||(te.hasMore=!1);let o=t||[];if(Array.isArray(t)&&t.length>0&&(o=t[0].recordList),te.lastSendTime=null==(e=B(o))?void 0:e.sendTime,"image"===V.type){const e=function(e){const t={};e.forEach((e=>{var o,a;const n=new Date(e.sendTime);let i=x(n,"yyyy年MM月");S(n,new Date)?i=(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.47"))||"本周":A(n,new Date)&&(i=(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.404"))||"本月"),t[i]||(t[i]=[]),t[i].push(e.content.msg)}));return Object.entries(t).map((([e,t])=>({label:e,list:t})))}(o);Q.value=te.page>1?Q.value.concat(e):e}else{const e=o.map((e=>new Promise((async t=>{const o=await z(e.content.fileUrl);t({...e,size:o})})))),t=await Promise.all(e);W.value=te.page>1?W.value.concat(t):t}}catch(e){}}function ae(){Object.assign(te,{page:0,hasMore:!0,lastSendTime:x(new Date,"yyyy-MM-dd HH:mm:ss")}),oe()}D(X,(()=>{oe()})),D(Y,(()=>{oe()}));const ne=o((()=>{var e,t;return"image"===V.type?(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.49"))||"聊天图片":(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.50"))||"聊天文件"}));function ie(e){const{size:t,sendTime:o,senderName:a}=e;return`${t} · ${x(new Date(o),"yyyy/MM/dd HH:mm")} ${a}`}function re(e){var t;const o=(null==(t=e.content)?void 0:t.msg)||"",a=o.lastIndexOf(".");if(-1!==a){return o.charAt(a+1).toUpperCase()}return"?"}return a((()=>V.visible),(e=>{e?ae():Z.value=""})),(t,o)=>(n(),i(r(f),{preset:"dialog",title:r(ne),"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog"},{default:s((()=>{var t;return[l(d("div",{class:"iho-chat-dialog__content iho-chat-image-wrapper",ref_key:"imageRef",ref:X},[c(r(h),{"show-toolbar-tooltip":""},{default:s((()=>[(n(!0),m(u,null,p(Q.value,(e=>(n(),m("div",{class:"image-item",key:e.label},[d("span",O,g(e.label),1),d("div",$,[(n(!0),m(u,null,p(e.list,(e=>(n(),i(r(k),{key:e,width:"80",height:"80",src:e},null,8,["src"])))),128))])])))),128))])),_:1})],512),[[v,"image"===e.type]]),l(d("div",{class:"iho-chat-dialog__content iho-chat-file-wrapper",style:w(r(q))},[c(r(C),{clearable:"",placeholder:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.43"))||"搜索文件",value:Z.value,"onUpdate:value":o[0]||(o[0]=e=>Z.value=e),valueModifiers:{trim:!0},onInput:r(ee)},{prefix:s((()=>[c(r(M),{component:r(_)},null,8,["component"])])),_:1},8,["value","onInput"]),d("div",{class:"file-list-box",ref_key:"fileRef",ref:Y},[(n(!0),m(u,null,p(W.value,((e,t)=>{var o;return n(),m("div",{class:"file-item",key:t},[d("span",F,g(re(e)),1),d("div",P,[d("span",R,g(e.content.msg),1),d("span",G,g(ie(e)),1)]),d("div",N,[c(E,{title:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.70"))||"转发消息",mode:"relay",onComfirm:(t,o)=>r(K)({content:e.content,checkedIds:t,remark:o})},{trigger:s((()=>[c(r(b),{"show-arrow":!1},{trigger:s((()=>[c(r(M),{size:16,component:r(j)},null,8,["component"])])),default:s((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.98"))||"转发")]})),_:1})])),_:2},1032,["onComfirm"]),c(r(b),{"show-arrow":!1},{trigger:s((()=>[c(r(M),{size:16,component:r(I),onClick:()=>r(U)(e.content.fileUr,e.content.msg)},null,8,["component","onClick"])])),default:s((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.102"))||"下载")]})),_:2},1024)])])})),128))],512)],4),[[v,"image"!==e.type]])]})),_:1},8,["title"]))}});export{V as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{createElementVNode as e,defineComponent as n,ref as t,computed as o,watch as i,withDirectives as
|
1
|
+
import{createElementVNode as e,defineComponent as n,ref as t,computed as o,watch as i,withDirectives as a,openBlock as r,createElementBlock as l,normalizeStyle as s,unref as c,toDisplayString as u,createVNode as d,createCommentVNode as g,withCtx as f,Fragment as m,renderList as w,createBlock as p,createTextVNode as y,mergeProps as v,renderSlot as h,vShow as C}from"vue";import{NIcon as M,NTooltip as k,NPopover as _,NButton as E,NUpload as I,NUploadTrigger as L}from"naive-ui";import T from"./ChatAdd.vue.js";import{useData as b}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as x,AV_STATUS as j}from"../constants/index.js";import{uploadFileApi as z}from"../api/index.js";import{simplifyMessage as B,base64ToFile as O}from"../utils/index.js";import{xor as R,uniq as D,trim as q,cloneDeep as $}from"lodash-es";import"trtc-sdk-v5";import{emojis as A}from"../utils/emoji.js";import{CloseCircleOutline as H,CallOutline as J,VideocamOutline as V}from"@vicons/ionicons5";import{uuidGenerator as K}from"../../../../shared/utils/index.js";import{useStorage as F}from"@vueuse/core";var U,G;const N={key:0,class:"reference-content-box"},X={class:"reference-content"},S=["innerHTML"],P={class:"tool-box"},Q=e("i",{class:"chat--iconfont chat--icon-face"},null,-1),W=e("span",null,(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.51"))||"最近使用",-1),Y={class:"list-box",style:{"margin-bottom":"8px"}},Z=["src"],ee=e("span",null,(null==(G=window.getLanguageByCode)?void 0:G.call(window,"10010.1.52"))||"默认表情",-1),ne={class:"list-box"},te=["src"],oe=e("i",{class:"chat--iconfont chat--icon-good"},null,-1),ie=e("i",{class:"chat--iconfont chat--icon-image"},null,-1),ae=e("i",{class:"chat--iconfont chat--icon-folder"},null,-1),re=["contenteditable"],le={class:"btn-box"},se=e("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var ce=n({__name:"ChatFooter",setup(n){const U=t(),{state:G,sendMessage:ce,isGroupChat:ue,isEnded:de}=b(),ge=t(!1),fe=t(""),me=F("commonEmoticons",[]),we=o((()=>({options:G.currentGroupUser,defaultValue:[G.userInfo]}))),pe=o((()=>!fe.value.replace(/( |\s|<br>)+/g,"")));function ye(e,n=[]){const t=K(),o=[],i=n.length>0;G.showVideo||G.showMultipleVideo||(i?(o.push(...R(n,[G.userInfo.id])),Object.assign(G.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:t,chatMessageType:e}),G.showMultipleVideo=!0):ce({content:{chatMessageType:e,msg:"",avStatus:j.IN_CALL}}))}function ve(e){["Enter"].includes(e.key)&&(e.ctrlKey&&(e.preventDefault(),document.execCommand("InsertLineBreak")),function(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}(e)||(e.preventDefault(),_e()))}function he(){var e;fe.value=(null==(e=U.value)?void 0:e.innerHTML)||""}function Ce(e){var n;me.value.unshift(e),me.value=D(me.value).slice(0,26),null==(n=U.value)||n.focus(),document.execCommand("insertHTML",!1,`<img data-msg=${e} data-type=${x.EMOJI} class="emoji--min" src=${A.findEmoji(e)} />`)}async function Me(e){const n=new FormData;return n.append("sender",G.userInfo.id),n.append("file",e),await z(n)}async function ke(e,n){const{file:t,name:o}=e.file,i=await Me(t);if(!i)return console.log("上传失败");Ee({chatMessageType:n,msg:n===x.FILE?o:i,url:i})}async function _e(){const{innerHTML:e="",innerText:n="",outerText:t=""}=U.value||{};if(pe.value)return console.log("请输入内容");let o=x.TEXT,i="";if(e){const t=e.match(/<img[^>]*>/gi),a=(t||[]).length;if(n&&0===a)i=n;else if(n||1!==a){if(o=x.BLEND,i=e,null==t?void 0:t.length)for(let e=0;e<a;e++)if(t[e].includes(`data-type="${x.EMOJI}"`)){const n=t[e].match(/data-msg="(.*?)"/);n&&n.length>1&&(i=i.replace(t[e],`[${n[1]}]`))}else{const n=t[e].match(/src\s*=\s*"([^"]*)"/);if(n&&n.length>1){const e=await O(n[1]);if(e){const t=await Me(e);i=i.replace(n[1],t||"")}}}}else if(e.includes(x.EMOJI)){o=x.EMOJI;const n=e.match(/data-msg\s*=\s*"([^"]*)"/);n&&(i=n[1])}else{o=x.IMAGE;const n=e.match(/src\s*=\s*"([^"]*)"/);if(n){const e=await O(n[1]);if(e){const n=await Me(e);n&&(i=n)}}}}else i=q(n);i&&Ee({msg:i,chatMessageType:o,origin:"btn"})}async function Ee(e){const{chatMessageType:n=x.TEXT,msg:t,url:o,origin:i=""}=e,a={msg:t,chatMessageType:n};n===x.FILE&&(a.fileUrl=o),"btn"===i&&Ie(),G.currentReferenceMsg&&([x.TEXT,x.EMOJI,x.BLEND].includes(n)&&(a.referenceContent=$(G.currentReferenceMsg)),G.currentReferenceMsg=null),ce({content:a})}function Ie(){U.value.innerHTML="",fe.value=""}return i((()=>[G.currentReferenceMsg,G.currentReEditMsg]),(([e,n])=>{var t;if((e||n)&&(null==(t=U.value)||t.focus()),n){const{chatMessageType:e,msg:t}=n.content||{},o=e===x.TEXT?t:`<img data-msg=${t} data-type=${x.EMOJI} class="emoji--min" src=${A.findEmoji(t)} />`;document.execCommand("insertHTML",!1,o),G.currentReEditMsg=null}})),i((()=>G.id),(e=>{e&&Ie()})),(n,t)=>a((r(),l("section",{class:"chat-footer",style:s({cursor:c(G).id?"default":"not-allowed"})},[c(G).currentReferenceMsg?(r(),l("div",N,[e("div",X,[e("span",null,u(c(G).currentReferenceMsg.senderName)+":",1),e("pre",{innerHTML:c(B)(c(G).currentReferenceMsg.content)},null,8,S)]),d(c(M),{component:c(H),onClick:t[0]||(t[0]=()=>c(G).currentReferenceMsg=null)},null,8,["component"])])):g("v-if",!0),e("div",P,[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(_),{"content-class":"emoji-content",class:"emoji-wrapper",show:ge.value,"onUpdate:show":t[1]||(t[1]=e=>ge.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[Q])),_:1})])),default:f((()=>[c(me).length>0?(r(),l(m,{key:0},[W,e("div",Y,[(r(!0),l(m,null,w(c(me),(n=>(r(),p(c(k),{key:n,"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:()=>Ce(n)},{icon:f((()=>[e("img",{src:c(A).findEmoji(n)},null,8,Z)])),_:2},1032,["onClick"])])),default:f((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])],64)):g("v-if",!0),ee,e("div",ne,[(r(!0),l(m,null,w(c(A).default,(([n,t])=>(r(),p(c(k),{key:n,"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:()=>Ce(n)},{icon:f((()=>[e("img",{src:t},null,8,te)])),_:2},1032,["onClick"])])),default:f((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])])),_:1},8,["show"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.53"))||"表情")]})),_:1}),d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[2]||(t[2]=()=>Ee({chatMessageType:c(x).EMOJI,msg:0}))},{icon:f((()=>[oe])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.54"))||"点赞")]})),_:1}),d(c(I),{abstract:"",multiple:"",accept:"image/*",onChange:t[3]||(t[3]=e=>ke(e,c(x).IMAGE))},{default:f((()=>[d(c(L),{abstract:""},{default:f((({handleClick:e})=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:f((()=>[ie])),_:2},1032,["onClick"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.55"))||"上传图片")]})),_:2},1024)])),_:1})])),_:1}),d(c(I),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:t[4]||(t[4]=e=>ke(e,c(x).FILE))},{default:f((()=>[d(c(L),{abstract:""},{default:f((({handleClick:e})=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:f((()=>[ae])),_:2},1032,["onClick"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.56"))||"上传文件")]})),_:2},1024)])),_:1})])),_:1}),c(G).userInfo.sdkAppID?(r(),l(m,{key:0},[c(ue)?(r(),l(m,{key:0},[d(T,v(c(we),{onComfirm:t[5]||(t[5]=e=>ye(c(x).AUDIO,e))}),{trigger:f((()=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[d(c(M),{size:"18",component:c(J)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.57"))||"语音通话")]})),_:1})])),_:1},16),d(T,v(c(we),{onComfirm:t[6]||(t[6]=e=>ye(c(x).VIDEO,e))}),{trigger:f((()=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[d(c(M),{size:"20",component:c(V)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.58"))||"视频会议")]})),_:1})])),_:1},16)],64)):(r(),l(m,{key:1},[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[7]||(t[7]=()=>ye(c(x).AUDIO))},{icon:f((()=>[d(c(M),{size:"18",component:c(J)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.57"))||"语音通话")]})),_:1}),d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[8]||(t[8]=()=>ye(c(x).VIDEO))},{icon:f((()=>[d(c(M),{size:"20",component:c(V)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.59"))||"视频通话")]})),_:1})],64))],64)):g("v-if",!0),h(n.$slots,"footer")]),a(e("div",{ref_key:"inputRef",ref:U,class:"input-box",contenteditable:!c(de),onKeydown:ve,onInput:he},null,40,re),[[C,c(G).id]]),e("div",le,[se,d(c(E),{type:"primary",round:"",disabled:c(pe),onClick:_e},{default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.60"))||"发送")]})),_:1},8,["disabled"])])],4)),[[C,c(G).id]])}});export{ce as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as
|
1
|
+
import{defineComponent as e,ref as o,computed as t,openBlock as i,createElementBlock as a,Fragment as r,unref as n,createElementVNode as s,createVNode as l,withCtx as u,toDisplayString as c,renderSlot as d,createTextVNode as m,normalizeProps as v,guardReactiveProps as w,createBlock as h,createCommentVNode as p}from"vue";import{NAvatar as g,NTooltip as f,NButton as y,NIcon as _,NPopconfirm as C}from"naive-ui";import{useData as b}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{STATUS as j}from"../constants/index.js";import{updateStatusApi as k}from"../api/index.js";import{$message as z}from"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";import I from"./PersonProfile.vue.js";import S from"./ChatSet.vue.js";import q from"./ChatFile.vue.js";import L from"./ChatRecord.vue.js";import x from"./ChatAdd.vue.js";import{PersonAddOutline as B,CloseOutline as D}from"@vicons/ionicons5";const E={key:0,class:"chat-header box-shadow"},U={class:"chat-header__left"},G={class:"name"},P={class:"chat-header__right"},N=s("i",{class:"chat--iconfont chat--icon-image"},null,-1),A=s("i",{class:"chat--iconfont chat--icon-folder"},null,-1),F=s("i",{class:"chat--iconfont chat--icon-list-search"},null,-1),H=s("i",{class:"chat--iconfont chat--icon-set"},null,-1);var R=e({__name:"ChatHeader",setup(e){const{state:R,isGroupChat:V,isGroupLeader:$,isEnded:J,setCurrentSessionItem:K,emit:M}=b(),O=o(!1),Q=o(!1),T=o("image"),W=o(!1),X=t((()=>{const e=R.currentGroupUser.map((e=>e.id));return V.value?{mode:"join",disabledIds:e,disabled:J.value}:{mode:"create",defaultValue:R.currentGroupUser}}));function Y(e){T.value=e,Q.value=!0}async function Z(){try{await k({id:R.currentSessionItem.id,status:j.ENDED}),K({status:j.ENDED}),M("session-close",R.currentSessionItem),z.success("当前会话已结束")}catch(e){console.log(e)}}return(e,o)=>(i(),a(r,null,[n(R).id?(i(),a("section",E,[s("div",U,[l(I,{"user-id":n(R).currentSessionItem.receiver,disabled:n(V),placement:"bottom"},{trigger:u((()=>[l(n(g),{round:"",size:30,src:n(R).currentSessionItem.avatar},null,8,["src"])])),_:1},8,["user-id","disabled"]),s("span",G,c(n(R).currentSessionItem.name),1)]),s("div",P,[d(e.$slots,"header"),l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny",onClick:o[0]||(o[0]=()=>Y("image"))},{icon:u((()=>[N])),_:1})])),default:u((()=>{var e;return[m((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.62"))||"图片")]})),_:1}),l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny",onClick:o[1]||(o[1]=()=>Y("file"))},{icon:u((()=>[A])),_:1})])),default:u((()=>{var e;return[m((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.63"))||"文件")]})),_:1}),l(x,v(w(n(X))),{trigger:u((()=>[l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny"},{icon:u((()=>[l(n(_),{size:"18",component:n(B)},null,8,["component"])])),_:1})])),default:u((()=>{var e;return[m((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.64"))||"添加成员")]})),_:1})])),_:1},16),l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny",onClick:o[2]||(o[2]=()=>W.value=!0)},{icon:u((()=>[F])),_:1})])),default:u((()=>{var e;return[m((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.65"))||"聊天记录")]})),_:1}),l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny",onClick:o[3]||(o[3]=()=>O.value=!0)},{icon:u((()=>[H])),_:1})])),default:u((()=>{var e;return[m((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.66"))||"聊天设置")]})),_:1}),n(V)&&n($)?(i(),h(n(C),{key:0,onPositiveClick:Z},{trigger:u((()=>[l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny"},{icon:u((()=>[l(n(_),{size:"18",component:n(D)},null,8,["component"])])),_:1})])),default:u((()=>[m(" 结束聊天 ")])),_:1})])),default:u((()=>[m(" 是否确认结束群聊? ")])),_:1})):p("v-if",!0)])])):p("v-if",!0),l(S,{show:O.value,"onUpdate:show":o[4]||(o[4]=e=>O.value=e)},null,8,["show"]),l(q,{show:Q.value,"onUpdate:show":o[5]||(o[5]=e=>Q.value=e),type:T.value,visible:Q.value},null,8,["show","type","visible"]),l(L,{show:W.value,"onUpdate:show":o[6]||(o[6]=e=>W.value=e),visible:W.value},null,8,["show","visible"])],64))}});export{R as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as t,computed as n,watch as o,openBlock as s,createElementBlock as i,normalizeClass as r,unref as a,normalizeStyle as l,createVNode as c,withCtx as u,Fragment as m,renderList as d,toDisplayString as p,createCommentVNode as g,createBlock as f,createElementVNode as v,createTextVNode as y,withModifiers as h,nextTick as T}from"vue";import{NImageGroup as M,NButton as w,NAvatar as k,NImage as _,NIcon as C,NSpace as x,NButtonGroup as I,NTooltip as L}from"naive-ui";import{format as j}from"date-fns";import{getHistoryRecordApi as E,readMessageApi as S}from"../api/index.js";import{useData as b}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as A}from"../constants/index.js";import{isAudioOrVideoMessage as z,simplifyMessage as D,getAVTime as H,downloadFile as R}from"../utils/index.js";import{first as N,last as O,toString as B}from"lodash-es";import"trtc-sdk-v5";import P from"./PersonProfile.vue.js";import q from"./MessageTemplate.vue.js";import{emojis as J}from"../utils/emoji.js";import W from"./ContextMenu.js";import U from"./ChatAdd.vue.js";import"../../../../shared/utils/index.js";import"@vueuse/core";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{CallOutline as X,VideocamOutline as F,DocumentSharp as G,ChatbubbleEllipsesOutline as K,EllipsisHorizontal as Y,ArrowDownSharp as $}from"@vicons/ionicons5";import{useScrollLoading as Q}from"../../../../shared/hooks/useScrollLoading.js";const V={key:0,class:"tip-text"},Z={key:1,class:"tip-text"},ee={key:2,class:"message-box"},te={key:0,class:"content-box"},ne={class:"name-box"},oe=["data-time"],se=["onContextmenu"],ie={key:0,class:"reference-content"},re=["innerHTML"],ae=["src"],le=["innerHTML"],ce=["innerHTML"],ue={style:{"margin-left":"8px"}},me={class:"size"};var de=e({__name:"ChatMain",setup(e){const de=t(),{state:pe,setMsgList:ge,relayMessage:fe,setCurrentSessionItem:ve,isGroupChat:ye}=b(),he=t(),Te=t(!1),Me=t({left:0,top:0}),we=t(),ke=t(),_e={page:0,hasMore:!0,lastSendTime:j(new Date,"yyyy-MM-dd HH:mm:ss")},Ce=n((()=>({"--c-tip-top":ye.value?"1px":"-20px","--c-tip-gap":ye.value?"10px":"0px"})));function xe({nodes:e}){var t,n;const{_ctx:o}=null==(t=e.download)?void 0:t.children,s=o?null==(n=null==o?void 0:o.proxy)?void 0:n.previewSrc:"";return[e.prev,e.next,e.rotateCounterclockwise,e.rotateClockwise,e.resizeToOriginalSize,e.zoomOut,e.zoomIn,c(L,null,{trigger:()=>c(C,{style:"cursor: pointer",color:"rgba(255, 255, 255, 0.75",size:24,component:$,onClick:()=>s&&R(s,"img")},null),default:()=>{var e;return(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.46"))||"下载"}}),e.close]}async function Ie(){try{if(!_e.hasMore)return;_e.page++;const e=await E({sessionKey:pe.currentSessionItem.sessionKey,page:_e.page,lastSendTime:_e.lastSendTime});if(!Array.isArray(e)||0===e.length)return _e.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");const t=N(e).id;_e.lastSendTime=O(e).sendTime,ge(_e.page>1?[...pe.msgList,...e]:e),1===_e.page&&pe.currentSessionItem.unreadNum&&(await S({chatType:pe.currentSessionItem.chatType,messageIdSet:[t],receiver:pe.userInfo.id,sender:pe.currentSessionItem.receiver}),ve({unreadNum:0}))}catch(e){console.log(e)}}async function Le(e,t){we.value=t,async function(e){var t,n,o,s,i,r;Te.value=!0,await T();const{clientX:a,clientY:l}=e,{width:c=0,height:u=0,left:m=0,top:d=0}=(null==(t=de.value)?void 0:t.getBoundingClientRect())||{},p=null!=(s=null==(o=null==(n=he.value)?void 0:n.$el)?void 0:o.getBoundingClientRect().height)?s:220,g=null!=(r=null==(i=de.value)?void 0:i.scrollTop)?r:0,f=5,v={};a<=m+c/2?v.left=a-m+f+"px":v.right=m+c-a-f+"px";l-d<p/2?v.top=g+f+"px":d+u-l<=p/2?v.bottom=Math.abs(g)+f+"px":v.top=g+l-d-p/2+"px";Me.value=v}(e)}function je(e){const{chatMessageType:t,messageTemplate:n}=e.content;return t!==A.TEMPLATE||!!n}function Ee(e){const{chatMessageType:t}=e.content;return e.sender===pe.userInfo.id&&Date.now()-new Date(e.sendTime).getTime()<864e5&&[A.TEXT,A.EMOJI].includes(t)}function Se(e){const{chatMessageType:t,msg:n=""}=e.content;if(t===A.BLEND){const e=B(n).match(/<img[^>]*>/gi);return!e||!e.length}return t&&[A.TEXT,A.EMOJI].includes(t)}function be(e){const{chatMessageType:t,msg:n=""}=e.content,o=B(n).match(/<img[^>]*>/gi);return t===A.BLEND&&o&&o.length}function Ae(e,t){var n,o;const{chatMessageType:s,messageTemplate:i}=e.content;if(s===A.TEMPLATE)return"system"===t?2==(null==(n=null==i?void 0:i.setting)?void 0:n.style.id):2!=(null==(o=null==i?void 0:i.setting)?void 0:o.style.id)}function ze(e){var t,n;const{chatMessageType:o,messageTemplate:s}=e;return o===A.TEMPLATE&&3==(null==(n=null==(t=null==s?void 0:s.setting)?void 0:t.style)?void 0:n.id)}function De(e,t){var n;const o=new Date(e.sendTime).getTime(),s=null==(n=pe.msgList[t+1])?void 0:n.sendTime;if(s){return o-new Date(s).getTime()>3e5}return!0}function He(e){pe.currentReferenceMsg=e,pe.currentReferenceMsg.content.referenceContent=null,Object.assign(pe.currentReferenceMsg,{chatType:pe.currentSessionItem.chatType,receiver:pe.currentSessionItem.receiver,receiverAvatar:pe.currentSessionItem.avatar,receiverName:pe.currentSessionItem.name})}function Re(e,t){var n;"reply"!==e?"relay"===e&&(null==(n=ke.value)||n.click()):He(t)}function Ne(e,t){const n=pe.msgList.find((e=>e.id===we.value));fe({checkedIds:e,remark:t,content:n.content})}return Q(de,(()=>{Ie()}),"top",(()=>{Te.value=!1})),o((()=>pe.id),(e=>{e&&(pe.currentReferenceMsg=null,Object.assign(_e,{page:0,hasMore:!0,lastSendTime:j(new Date,"yyyy-MM-dd HH:mm:ss")}),Ie())}),{immediate:!0}),o((()=>pe.isAppendMsg),(e=>{e&&(ge([pe.currentMsg,...pe.msgList]),async function(){var e;null==(e=de.value)||e.scrollTo({top:0,behavior:"auto"})}(),pe.isAppendMsg=!1)}),{immediate:!0}),(e,t)=>{var n;return s(),i("div",{class:r(["chat-main",{"home-bg":!a(pe).id}]),ref_key:"chatMainRef",ref:de,style:l(a(Ce))},[c(a(M),{"show-toolbar-tooltip":"","render-toolbar":xe},{default:u((()=>[(s(!0),i(m,null,d(a(pe).msgList,((e,t)=>{var n,o;return s(),i(m,{key:e.id},[je(e)?(s(),i("div",{key:0,class:r(["message-item",{"message-item--mine":e.sender==a(pe).userInfo.id}])},[De(e,t)?(s(),i("p",V,p(e.__sendTime),1)):g("v-if",!0),Ae(e,"system")||"WITHDRAWN"===e.status?(s(),i(m,{key:1},[Ae(e,"system")?(s(),f(q,{key:0,data:e},null,8,["data"])):g("v-if",!0),"WITHDRAWN"===e.status?(s(),i("p",Z,[v("span",null,p(e.sender==a(pe).userInfo.id?(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.67"))||"你":e.senderName)+((null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.68"))||"撤回了一条消息"),1),Ee(e)?(s(),f(a(w),{key:0,size:"tiny",style:{color:"var(--c-primary-color)","margin-left":"5px"},text:"",onClick:()=>function(e){pe.currentReEditMsg=e}(e)},{default:u((()=>[y(" 重新编辑 ")])),_:2},1032,["onClick"])):g("v-if",!0)])):g("v-if",!0)],64)):(s(),i("div",ee,[c(P,{"user-id":e.sender,placement:e.sender==a(pe).userInfo.id?"left":"right"},{trigger:u((()=>[c(a(k),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-id","placement"]),e.content?(s(),i("div",te,[v("div",ne,[v("span",{class:"name","data-time":e.__time},p(a(ye)?e.senderName:""),9,oe)]),v("div",{class:r(["content",{emoji:e.content.chatMessageType===a(A).EMOJI&&!e.content.referenceContent,template:e.content.chatMessageType===a(A).TEMPLATE,"template--3":ze(e.content),"audio-video":a(z)(e.content),file:e.content.chatMessageType===a(A).FILE}]),onContextmenu:h((t=>Le(t,e.id)),["prevent"])},[Se(e)?(s(),i(m,{key:0},[e.content.referenceContent?(s(),i("div",ie,[v("span",null,p(e.content.referenceContent.senderName)+":",1),v("pre",{innerHTML:a(D)(e.content.referenceContent.content)},null,8,re)])):g("v-if",!0),e.content.chatMessageType===a(A).EMOJI?(s(),i("img",{key:1,class:r([e.content.referenceContent?"emoji--min":"emoji--big"]),src:a(J).findEmoji(e.__content)},null,10,ae)):(s(),i("pre",{key:2,innerHTML:e.__content},null,8,le))],64)):g("v-if",!0),be(e)?(s(),i("pre",{key:1,innerHTML:e.__content},null,8,ce)):g("v-if",!0),Ae(e,"template")?(s(),f(q,{key:2,data:e},null,8,["data"])):g("v-if",!0),e.content.chatMessageType===a(A).IMAGE?(s(),f(a(_),{key:3,width:"240",src:e.__content},null,8,["src"])):g("v-if",!0),a(z)(e.content)?(s(),i(m,{key:4},[c(a(C),{class:r({"is-audio":e.content.chatMessageType===a(A).AUDIO}),component:e.content.chatMessageType===a(A).AUDIO?a(X):a(F)},null,8,["class","component"]),v("span",ue,p(a(H)(e.__content)),1)],64)):g("v-if",!0),e.content.chatMessageType===a(A).FILE?(s(),f(a(x),{key:5,"wrap-item":!1},{default:u((()=>[c(a(C),{class:"icon-file",size:"40",component:a(G)},null,8,["component"]),c(a(x),{"wrap-item":!1,vertical:"",justify:"space-between",style:{"row-gap":"0"}},{default:u((()=>[v("span",null,p(e.__content),1),v("span",me,p(e.__size),1)])),_:2},1024)])),_:2},1024)):g("v-if",!0),c(a(I),{class:"quick-menu"},{default:u((()=>[a(z)(e.content)?g("v-if",!0):(s(),i(m,{key:0},[g(' <n-button quaternary size="tiny">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<template #icon>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<i class="chat--iconfont chat--icon-face" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t\t\t\t</n-button> '),c(a(w),{quaternary:"",size:"tiny",onClick:()=>He(e)},{icon:u((()=>[c(a(C),{size:"17",component:a(K)},null,8,["component"])])),_:2},1032,["onClick"])],64)),c(a(w),{quaternary:"",size:"tiny",onClick:t=>Le(t,e.id)},{icon:u((()=>[c(a(C),{size:"14",component:a(Y)},null,8,["component"])])),_:2},1032,["onClick"])])),_:2},1024)],42,se)])):g("v-if",!0)]))],2)):g("v-if",!0)],64)})),128))])),_:1}),c(a(W),{ref_key:"contextmenuRef",ref:he,show:Te.value,"onUpdate:show":t[0]||(t[0]=e=>Te.value=e),position:Me.value,id:we.value,onSelect:Re},null,8,["show","position","id"]),c(U,{title:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.44"))||"转发消息",mode:"relay",onComfirm:Ne},{trigger:u((()=>{var e;return[v("span",{style:{display:"none"},ref_key:"relayTriggerRef",ref:ke},(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.45"))||"转发",512)]})),_:1})],6)}}});export{de as default};
|
1
|
+
import{defineComponent as e,ref as t,computed as n,watch as o,openBlock as s,createElementBlock as i,normalizeClass as r,unref as a,normalizeStyle as l,createVNode as c,withCtx as u,Fragment as m,renderList as d,toDisplayString as p,createCommentVNode as g,createBlock as f,createElementVNode as v,createTextVNode as y,withModifiers as h,nextTick as T}from"vue";import{NImageGroup as M,NButton as w,NAvatar as k,NImage as _,NIcon as C,NSpace as x,NButtonGroup as I,NTooltip as L}from"naive-ui";import{format as j}from"date-fns";import{getHistoryRecordApi as E,readMessageApi as S}from"../api/index.js";import{useData as b}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as A}from"../constants/index.js";import{isAudioOrVideoMessage as z,simplifyMessage as D,getAVTime as H,downloadFile as R}from"../utils/index.js";import{first as B,last as N,toString as O}from"lodash-es";import"trtc-sdk-v5";import P from"./PersonProfile.vue.js";import q from"./MessageTemplate.vue.js";import{emojis as J}from"../utils/emoji.js";import W from"./ContextMenu.js";import U from"./ChatAdd.vue.js";import"../../../../shared/utils/index.js";import"@vueuse/core";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{CallOutline as X,VideocamOutline as F,DocumentSharp as G,ChatbubbleEllipsesOutline as K,EllipsisHorizontal as Y,ArrowDownSharp as $}from"@vicons/ionicons5";import{useScrollLoading as Q}from"../../../../shared/hooks/useScrollLoading.js";const V={key:0,class:"tip-text"},Z={key:1,class:"tip-text"},ee={key:2,class:"message-box"},te={key:0,class:"content-box"},ne={class:"name-box"},oe=["data-time"],se=["onContextmenu"],ie={key:0,class:"reference-content"},re=["innerHTML"],ae=["src"],le=["innerHTML"],ce=["innerHTML"],ue={style:{"margin-left":"8px"}},me={class:"size"};var de=e({__name:"ChatMain",setup(e){const de=t(),{state:pe,setMsgList:ge,relayMessage:fe,setCurrentSessionItem:ve,isGroupChat:ye}=b(),he=t(),Te=t(!1),Me=t({left:0,top:0}),we=t(),ke=t(),_e={page:0,hasMore:!0,lastSendTime:j(new Date,"yyyy-MM-dd HH:mm:ss")},Ce=n((()=>({"--c-tip-top":ye.value?"1px":"-20px","--c-tip-gap":ye.value?"10px":"0px"})));function xe({nodes:e}){var t,n;const{_ctx:o}=null==(t=e.download)?void 0:t.children,s=o?null==(n=null==o?void 0:o.proxy)?void 0:n.previewSrc:"";return[e.prev,e.next,e.rotateCounterclockwise,e.rotateClockwise,e.resizeToOriginalSize,e.zoomOut,e.zoomIn,c(L,null,{trigger:()=>c(C,{style:"cursor: pointer",color:"rgba(255, 255, 255, 0.75",size:24,component:$,onClick:()=>s&&R(s,"img")},null),default:()=>{var e;return(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.102"))||"下载"}}),e.close]}async function Ie(){try{if(!_e.hasMore)return;_e.page++;const e=await E({sessionKey:pe.currentSessionItem.sessionKey,page:_e.page,lastSendTime:_e.lastSendTime});if(!Array.isArray(e)||0===e.length)return _e.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");const t=B(e).id;_e.lastSendTime=N(e).sendTime,ge(_e.page>1?[...pe.msgList,...e]:e),1===_e.page&&pe.currentSessionItem.unreadNum&&(await S({chatType:pe.currentSessionItem.chatType,messageIdSet:[t],receiver:pe.userInfo.id,sender:pe.currentSessionItem.receiver}),ve({unreadNum:0}))}catch(e){console.log(e)}}async function Le(e,t){we.value=t,async function(e){var t,n,o,s,i,r;Te.value=!0,await T();const{clientX:a,clientY:l}=e,{width:c=0,height:u=0,left:m=0,top:d=0}=(null==(t=de.value)?void 0:t.getBoundingClientRect())||{},p=null!=(s=null==(o=null==(n=he.value)?void 0:n.$el)?void 0:o.getBoundingClientRect().height)?s:220,g=null!=(r=null==(i=de.value)?void 0:i.scrollTop)?r:0,f=5,v={};a<=m+c/2?v.left=a-m+f+"px":v.right=m+c-a-f+"px";l-d<p/2?v.top=g+f+"px":d+u-l<=p/2?v.bottom=Math.abs(g)+f+"px":v.top=g+l-d-p/2+"px";Me.value=v}(e)}function je(e){const{chatMessageType:t,messageTemplate:n}=e.content;return t!==A.TEMPLATE||!!n}function Ee(e){const{chatMessageType:t}=e.content;return e.sender===pe.userInfo.id&&Date.now()-new Date(e.sendTime).getTime()<864e5&&[A.TEXT,A.EMOJI].includes(t)}function Se(e){const{chatMessageType:t,msg:n=""}=e.content;if(t===A.BLEND){const e=O(n).match(/<img[^>]*>/gi);return!e||!e.length}return t&&[A.TEXT,A.EMOJI].includes(t)}function be(e){const{chatMessageType:t,msg:n=""}=e.content,o=O(n).match(/<img[^>]*>/gi);return t===A.BLEND&&o&&o.length}function Ae(e,t){var n,o;const{chatMessageType:s,messageTemplate:i}=e.content;if(s===A.TEMPLATE)return"system"===t?2==(null==(n=null==i?void 0:i.setting)?void 0:n.style.id):2!=(null==(o=null==i?void 0:i.setting)?void 0:o.style.id)}function ze(e){var t,n;const{chatMessageType:o,messageTemplate:s}=e;return o===A.TEMPLATE&&3==(null==(n=null==(t=null==s?void 0:s.setting)?void 0:t.style)?void 0:n.id)}function De(e,t){var n;const o=new Date(e.sendTime).getTime(),s=null==(n=pe.msgList[t+1])?void 0:n.sendTime;if(s){return o-new Date(s).getTime()>3e5}return!0}function He(e){pe.currentReferenceMsg=e,pe.currentReferenceMsg.content.referenceContent=null,Object.assign(pe.currentReferenceMsg,{chatType:pe.currentSessionItem.chatType,receiver:pe.currentSessionItem.receiver,receiverAvatar:pe.currentSessionItem.avatar,receiverName:pe.currentSessionItem.name})}function Re(e,t){var n;"reply"!==e?"relay"===e&&(null==(n=ke.value)||n.click()):He(t)}function Be(e,t){const n=pe.msgList.find((e=>e.id===we.value));fe({checkedIds:e,remark:t,content:n.content})}return Q(de,(()=>{Ie()}),"top",(()=>{Te.value=!1})),o((()=>pe.id),(e=>{e&&(pe.currentReferenceMsg=null,Object.assign(_e,{page:0,hasMore:!0,lastSendTime:j(new Date,"yyyy-MM-dd HH:mm:ss")}),Ie())}),{immediate:!0}),o((()=>pe.isAppendMsg),(e=>{e&&(ge([pe.currentMsg,...pe.msgList]),async function(){var e;null==(e=de.value)||e.scrollTo({top:0,behavior:"auto"})}(),pe.isAppendMsg=!1)}),{immediate:!0}),(e,t)=>{var n;return s(),i("div",{class:r(["chat-main",{"home-bg":!a(pe).id}]),ref_key:"chatMainRef",ref:de,style:l(a(Ce))},[c(a(M),{"show-toolbar-tooltip":"","render-toolbar":xe},{default:u((()=>[(s(!0),i(m,null,d(a(pe).msgList,((e,t)=>{var n,o;return s(),i(m,{key:e.id},[je(e)?(s(),i("div",{key:0,class:r(["message-item",{"message-item--mine":e.sender==a(pe).userInfo.id}])},[De(e,t)?(s(),i("p",V,p(e.__sendTime),1)):g("v-if",!0),Ae(e,"system")||"WITHDRAWN"===e.status?(s(),i(m,{key:1},[Ae(e,"system")?(s(),f(q,{key:0,data:e},null,8,["data"])):g("v-if",!0),"WITHDRAWN"===e.status?(s(),i("p",Z,[v("span",null,p(e.sender==a(pe).userInfo.id?(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.67"))||"你":e.senderName)+((null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.68"))||"撤回了一条消息"),1),Ee(e)?(s(),f(a(w),{key:0,size:"tiny",style:{color:"var(--c-primary-color)","margin-left":"5px"},text:"",onClick:()=>function(e){pe.currentReEditMsg=e}(e)},{default:u((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.69"))||"重新编辑")]})),_:2},1032,["onClick"])):g("v-if",!0)])):g("v-if",!0)],64)):(s(),i("div",ee,[c(P,{"user-id":e.sender,placement:e.sender==a(pe).userInfo.id?"left":"right"},{trigger:u((()=>[c(a(k),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-id","placement"]),e.content?(s(),i("div",te,[v("div",ne,[v("span",{class:"name","data-time":e.__time},p(a(ye)?e.senderName:""),9,oe)]),v("div",{class:r(["content",{emoji:e.content.chatMessageType===a(A).EMOJI&&!e.content.referenceContent,template:e.content.chatMessageType===a(A).TEMPLATE,"template--3":ze(e.content),"audio-video":a(z)(e.content),file:e.content.chatMessageType===a(A).FILE}]),onContextmenu:h((t=>Le(t,e.id)),["prevent"])},[Se(e)?(s(),i(m,{key:0},[e.content.referenceContent?(s(),i("div",ie,[v("span",null,p(e.content.referenceContent.senderName)+":",1),v("pre",{innerHTML:a(D)(e.content.referenceContent.content)},null,8,re)])):g("v-if",!0),e.content.chatMessageType===a(A).EMOJI?(s(),i("img",{key:1,class:r([e.content.referenceContent?"emoji--min":"emoji--big"]),src:a(J).findEmoji(e.__content)},null,10,ae)):(s(),i("pre",{key:2,innerHTML:e.__content},null,8,le))],64)):g("v-if",!0),be(e)?(s(),i("pre",{key:1,innerHTML:e.__content},null,8,ce)):g("v-if",!0),Ae(e,"template")?(s(),f(q,{key:2,data:e},null,8,["data"])):g("v-if",!0),e.content.chatMessageType===a(A).IMAGE?(s(),f(a(_),{key:3,width:"240",src:e.__content},null,8,["src"])):g("v-if",!0),a(z)(e.content)?(s(),i(m,{key:4},[c(a(C),{class:r({"is-audio":e.content.chatMessageType===a(A).AUDIO}),component:e.content.chatMessageType===a(A).AUDIO?a(X):a(F)},null,8,["class","component"]),v("span",ue,p(a(H)(e.__content)),1)],64)):g("v-if",!0),e.content.chatMessageType===a(A).FILE?(s(),f(a(x),{key:5,"wrap-item":!1},{default:u((()=>[c(a(C),{class:"icon-file",size:"40",component:a(G)},null,8,["component"]),c(a(x),{"wrap-item":!1,vertical:"",justify:"space-between",style:{"row-gap":"0"}},{default:u((()=>[v("span",null,p(e.__content),1),v("span",me,p(e.__size),1)])),_:2},1024)])),_:2},1024)):g("v-if",!0),c(a(I),{class:"quick-menu"},{default:u((()=>[a(z)(e.content)?g("v-if",!0):(s(),i(m,{key:0},[g(' <n-button quaternary size="tiny">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<template #icon>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<i class="chat--iconfont chat--icon-face" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t\t\t\t</n-button> '),c(a(w),{quaternary:"",size:"tiny",onClick:()=>He(e)},{icon:u((()=>[c(a(C),{size:"17",component:a(K)},null,8,["component"])])),_:2},1032,["onClick"])],64)),c(a(w),{quaternary:"",size:"tiny",onClick:t=>Le(t,e.id)},{icon:u((()=>[c(a(C),{size:"14",component:a(Y)},null,8,["component"])])),_:2},1032,["onClick"])])),_:2},1024)],42,se)])):g("v-if",!0)]))],2)):g("v-if",!0)],64)})),128))])),_:1}),c(a(W),{ref_key:"contextmenuRef",ref:he,show:Te.value,"onUpdate:show":t[0]||(t[0]=e=>Te.value=e),position:Me.value,id:we.value,onSelect:Re},null,8,["show","position","id"]),c(U,{title:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.70"))||"转发消息",mode:"relay",onComfirm:Be},{trigger:u((()=>{var e;return[v("span",{style:{display:"none"},ref_key:"relayTriggerRef",ref:ke},(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.98"))||"转发",512)]})),_:1})],6)}}});export{de as default};
|
@@ -1,38 +1,59 @@
|
|
1
|
+
import { PropType } from 'vue';
|
2
|
+
import { AnyObject } from '../../../../shared/types';
|
1
3
|
declare const _default: import("vue").DefineComponent<{}, {
|
2
4
|
listRef: import("vue").Ref<any>;
|
3
5
|
inputRef: import("vue").Ref<any>;
|
4
6
|
showSearch: import("vue").Ref<boolean>;
|
5
7
|
keyword: import("vue").Ref<string>;
|
6
|
-
cssVars: import("vue").ComputedRef<
|
8
|
+
cssVars: import("vue").ComputedRef<AnyObject>;
|
7
9
|
state: {
|
8
10
|
orgId: string | number;
|
9
|
-
currentSessionItem:
|
11
|
+
currentSessionItem: AnyObject;
|
10
12
|
id: string;
|
11
|
-
userInfo:
|
12
|
-
msgList:
|
13
|
-
currentMsg:
|
13
|
+
userInfo: AnyObject;
|
14
|
+
msgList: AnyObject[];
|
15
|
+
currentMsg: AnyObject;
|
14
16
|
isAppendMsg: boolean;
|
15
|
-
sessionList:
|
17
|
+
sessionList: AnyObject[];
|
16
18
|
isChangeSession: boolean;
|
17
|
-
updateSessionItem:
|
19
|
+
updateSessionItem: AnyObject;
|
18
20
|
isUpdateSession: boolean;
|
19
|
-
currentReferenceMsg:
|
20
|
-
currentReEditMsg:
|
21
|
+
currentReferenceMsg: AnyObject | null;
|
22
|
+
currentReEditMsg: AnyObject | null;
|
21
23
|
showVideo: boolean;
|
22
|
-
currentAVMsg:
|
23
|
-
currentGroupUser:
|
24
|
+
currentAVMsg: AnyObject;
|
25
|
+
currentGroupUser: AnyObject[];
|
24
26
|
showMultipleVideo: boolean;
|
25
27
|
};
|
26
|
-
openSession: (item:
|
27
|
-
userList: import("vue").Ref<
|
28
|
+
openSession: (item: AnyObject) => Promise<void>;
|
29
|
+
userList: import("vue").Ref<AnyObject[]>;
|
28
30
|
handleInput: () => void;
|
31
|
+
currentTabValue: import("vue").Ref<string>;
|
32
|
+
userItemRender: import("vue").DefineComponent<{
|
33
|
+
item: {
|
34
|
+
type: PropType<AnyObject>;
|
35
|
+
default: () => {};
|
36
|
+
};
|
37
|
+
}, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
38
|
+
item: {
|
39
|
+
type: PropType<AnyObject>;
|
40
|
+
default: () => {};
|
41
|
+
};
|
42
|
+
}>>, {
|
43
|
+
item: AnyObject;
|
44
|
+
}>;
|
45
|
+
groupList: import("vue").ComputedRef<AnyObject[]>;
|
29
46
|
showNoData: import("vue").ComputedRef<boolean>;
|
30
|
-
|
47
|
+
showAllNoData: import("vue").ComputedRef<boolean>;
|
48
|
+
showGroupNoData: import("vue").ComputedRef<boolean>;
|
49
|
+
addSession: (id: string) => Promise<void>;
|
31
50
|
NPopover: any;
|
32
51
|
NButton: any;
|
33
|
-
NAvatar: any;
|
34
52
|
NInput: any;
|
35
53
|
NIcon: any;
|
54
|
+
NTabs: any;
|
55
|
+
NTabPane: any;
|
56
|
+
NDivider: any;
|
36
57
|
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<{}>>, {}>;
|
37
58
|
DefaultPage: import("../../../../shared/types").SFCWithInstall<import("vue").DefineComponent<{
|
38
59
|
type: {
|
@@ -40,7 +61,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
40
61
|
default: string;
|
41
62
|
};
|
42
63
|
config: {
|
43
|
-
type:
|
64
|
+
type: PropType<AnyObject>;
|
44
65
|
default: () => {
|
45
66
|
title: string;
|
46
67
|
content: string;
|
@@ -53,7 +74,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
53
74
|
default: string;
|
54
75
|
};
|
55
76
|
config: {
|
56
|
-
type:
|
77
|
+
type: PropType<AnyObject>;
|
57
78
|
default: () => {
|
58
79
|
title: string;
|
59
80
|
content: string;
|
@@ -77,7 +98,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
77
98
|
default: string;
|
78
99
|
};
|
79
100
|
config: {
|
80
|
-
type:
|
101
|
+
type: PropType<AnyObject>;
|
81
102
|
default: () => {
|
82
103
|
title: string;
|
83
104
|
content: string;
|
@@ -87,7 +108,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
87
108
|
onReloadPage?: ((...args: any[]) => any) | undefined;
|
88
109
|
}, {
|
89
110
|
type: string;
|
90
|
-
config:
|
111
|
+
config: AnyObject;
|
91
112
|
}>>;
|
92
113
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
93
114
|
export default _default;
|
@@ -1 +1 @@
|
|
1
|
-
import{
|
1
|
+
import{createElementVNode as e,defineComponent as l,ref as t,computed as n,watch as a,nextTick as i,openBlock as o,createBlock as s,unref as r,normalizeStyle as u,withCtx as d,createVNode as c,createTextVNode as v,createElementBlock as p,Fragment as f,renderList as g,resolveDynamicComponent as w,normalizeClass as m,createCommentVNode as y,withDirectives as h,vShow as k}from"vue";import{NPopover as L,NButton as C,NIcon as _,NInput as B,NTabs as j,NTabPane as x,NDivider as b,NAvatar as U}from"naive-ui";import{SearchOutline as R}from"@vicons/ionicons5";import{useData as z}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{openSessionApi as I}from"../api/index.js";import{isGroup as S}from"../utils/index.js";import{trim as D}from"lodash-es";import"trtc-sdk-v5";import{useSearchUserList as N}from"../hooks/useSearchUserList.js";import E from"../../../default-page/index.js";var G,O;const T=e("div",{class:"title"},(null==(G=window.getLanguageByCode)?void 0:G.call(window,"10010.1.510"))||"联系人",-1),V=e("div",{class:"title"},(null==(O=window.getLanguageByCode)?void 0:O.call(window,"10010.1.575"))||"我的群组",-1),$={class:"user-list-wrapper"};var q=l({__name:"ChatSearch",setup(G){const O=t(),q=t(),A=t(!1),F=t(""),{cssVars:H,state:J,openSession:K}=z(),{userList:M,handleInput:P}=N({wrapperRef:O,keywordRef:F}),Q=t("all"),W=l({name:"UserItemRender",props:{item:{type:Object,default:()=>({})}},render(){return c("div",{class:"user-item",onClick:()=>async function(e){A.value=!1;const l=J.sessionList.find((l=>e&&[l.receiver,l.id].includes(e)));let t=l;if(!l){t=await I({chatType:"SINGLE",receiver:e,sender:J.userInfo.id})}K(t)}(this.item.id)},[c(U,{round:!0,size:32,src:this.item.avatar},null),c("div",{class:"user-info"},[c("span",null,[this.item.name]),c("span",null,[this.item.deptName]),c("span",null,[this.item.post])])])}}),X=n((()=>(F.value||"").replace(/^\s+|\s+$/g,"")?J.sessionList.filter((e=>S(e)&&(null==e?void 0:e.name.includes(F.value)))):[])),Y=n((()=>!M.value.length&&!!D(F.value||""))),Z=n((()=>!M.value.length&&!X.value.length&&!!D(F.value||""))),ee=n((()=>!X.value.length&&!!D(F.value||"")));return a((()=>A.value),(async e=>{var l;e&&(await i(),null==(l=q.value)||l.focus())})),(l,t)=>(o(),s(r(L),{raw:"","content-class":"search-content",class:"search-wrapper",style:u(r(H)),show:A.value,"onUpdate:show":t[4]||(t[4]=e=>A.value=e),placement:"top",trigger:"click","display-directive":"show","show-arrow":!1,delay:0,overlap:""},{trigger:d((()=>[c(r(C),{color:"#ffffff4D",class:"search-trigger-btn"},{icon:d((()=>[c(r(_),{component:r(R),color:"#ffffff80"},null,8,["component"])])),default:d((()=>{var e;return[v((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.80"))||"搜索联系人")]})),_:1})])),default:d((()=>[c(r(B),{ref_key:"inputRef",ref:q,size:"small",clearable:"",autofocus:"",value:F.value,"onUpdate:value":[t[0]||(t[0]=e=>F.value=e),r(P)]},{prefix:d((()=>[c(r(_),{color:"#ffffff80",component:r(R)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),c(r(j),{type:"line",animated:"",value:Q.value,"onUpdate:value":t[3]||(t[3]=e=>Q.value=e)},{default:d((()=>{var l,n,a;return[c(r(x),{name:"all",tab:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.571"))||"综合","display-directive":"show",style:{padding:"0 10px 10px"}},{default:d((()=>{var e;return[r(M).length>0?(o(),p(f,{key:0},[T,(o(!0),p(f,null,g(r(M),((e,l)=>(o(),p(f,{key:e.id},[l<3?(o(),s(w(r(W)),{key:0,item:e,class:m({last:r(M).length<4?l===r(M).length-1:2===l})},null,8,["item","class"])):y("v-if",!0)],64)))),128)),r(M).length>3?(o(),s(r(C),{key:0,text:"",type:"primary",onClick:t[1]||(t[1]=()=>Q.value="user")},{icon:d((()=>[c(r(_),{component:r(R),size:"16"},null,8,["component"])])),default:d((()=>{var e;return[v((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.573"))||"查看更多联系人")]})),_:1})):y("v-if",!0)],64)):y("v-if",!0),r(M).length&&r(X).length?(o(),s(r(b),{key:1})):y("v-if",!0),r(X).length>0?(o(),p(f,{key:2},[V,(o(!0),p(f,null,g(r(X),((e,l)=>(o(),p(f,{key:e.id},[l<3?(o(),s(w(r(W)),{key:0,item:e,class:m({last:r(X).length<4?l===r(X).length-1:2===l})},null,8,["item","class"])):y("v-if",!0)],64)))),128)),r(X).length>3?(o(),s(r(C),{key:0,text:"",type:"primary",onClick:t[2]||(t[2]=()=>Q.value="group")},{icon:d((()=>[c(r(_),{component:r(R),size:"16"},null,8,["component"])])),default:d((()=>{var e;return[v((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.574"))||"查看更多群组")]})),_:1})):y("v-if",!0)],64)):y("v-if",!0),h(c(r(E),{config:{title:" ",content:(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.81"))||"找不到相关的结果"},type:"5"},null,512),[[k,r(Z)]])]})),_:1}),c(r(x),{name:"user",tab:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.510"))||"联系人","display-directive":"show"},{default:d((()=>{var l;return[e("div",{class:"user-list-wrapper",ref_key:"listRef",ref:O},[(o(!0),p(f,null,g(r(M),(e=>(o(),s(w(r(W)),{key:e.id,item:e},null,8,["item"])))),128)),h(c(r(E),{config:{title:" ",content:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.81"))||"找不到相关的结果"},type:"5"},null,512),[[k,r(Y)]])],512)]})),_:1}),c(r(x),{name:"group",tab:(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.572"))||"群组","display-directive":"show"},{default:d((()=>{var l;return[e("div",$,[(o(!0),p(f,null,g(r(X),(e=>(o(),s(w(r(W)),{key:e.id,item:e},null,8,["item"])))),128)),h(c(r(E),{config:{title:" ",content:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.81"))||"找不到相关的结果"},type:"5"},null,512),[[k,r(ee)]])])]})),_:1})]})),_:1},8,["value"])])),_:1},8,["style","show"]))}});export{q as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{createElementVNode as e,defineComponent as n,useAttrs as
|
1
|
+
import{createElementVNode as e,defineComponent as n,useAttrs as o,ref as t,computed as a,watch as i,openBlock as l,createBlock as s,unref as r,withCtx as c,createVNode as u,createTextVNode as d,createElementBlock as m,Fragment as p,renderList as g,toDisplayString as v,createCommentVNode as w,withKeys as f,nextTick as y}from"vue";import{NDrawer as _,NDrawerContent as k,NButton as C,NIcon as h,NAvatar as b,NUpload as L,NUploadTrigger as I,NInput as B,NSpace as x,NSwitch as S,NPopconfirm as j}from"naive-ui";import{ChevronBackOutline as z,ChevronForwardOutline as U,AddOutline as G,RemoveOutline as P,Pencil as A}from"@vicons/ionicons5";import{useData as D}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{toppingSessionApi as R,groupLeaveApi as F,groupUpdateApi as K}from"../api/index.js";import"../utils/index.js";import{trim as N,isFunction as O}from"lodash-es";import"trtc-sdk-v5";import q from"./PersonProfile.vue.js";import E from"./ChatAdd.vue.js";var H,J,M,Q,T,V,W,X,Y,Z;const $={key:0,class:"chat-set-wrapper"},ee={class:"item"},ne={class:"name"},oe={key:0,class:"item__right",style:{color:"var(--c-primary-color)"}},te={class:"item user-info"},ae={class:"name"},ie={class:"item item-column"},le=e("span",{class:"label"},(null==(H=window.getLanguageByCode)?void 0:H.call(window,"10010.1.85"))||"群成员",-1),se={class:"group-box"},re={class:"group-box__item"},ce={class:"name"},ue={class:"group-box__item"},de=e("span",{class:"name"},(null==(J=window.getLanguageByCode)?void 0:J.call(window,"10010.1.86"))||"添加",-1),me={class:"group-box__item"},pe=e("span",{class:"name"},(null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.88"))||"移除",-1),ge=["onClick"],ve=e("span",{class:"label"},(null==(Q=window.getLanguageByCode)?void 0:Q.call(window,"10010.1.90"))||"群头像",-1),we={class:"item"},fe=e("span",{class:"label"},(null==(T=window.getLanguageByCode)?void 0:T.call(window,"10010.1.91"))||"群名称",-1),ye={class:"item__right"},_e={class:"txt"},ke={class:"item"},Ce=e("span",{class:"label"},(null==(V=window.getLanguageByCode)?void 0:V.call(window,"10010.1.92"))||"置顶聊天",-1),he={class:"item item--red"},be=e("span",{class:"label"},(null==(W=window.getLanguageByCode)?void 0:W.call(window,"10010.1.93"))||"退出群聊",-1),Le=e("p",{style:{width:"230px"}},(null==(X=window.getLanguageByCode)?void 0:X.call(window,"10010.1.94"))||"是否确认退出群聊?",-1),Ie={class:"item item--red"},Be=e("span",{class:"label"},(null==(Y=window.getLanguageByCode)?void 0:Y.call(window,"10010.1.95"))||"解散该群",-1),xe=e("p",{style:{width:"230px"}},(null==(Z=window.getLanguageByCode)?void 0:Z.call(window,"10010.1.96"))||"是否确认解散群聊?",-1);var Se=n({__name:"ChatSet",setup(n){const H=o(),{state:J,setCurrentSessionItem:M,isGroupChat:Q,isGroupLeader:T}=D(),V=t(),W=t(!1),X=t(""),Y=t(!1),Z=a((()=>J.currentGroupUser.map((e=>e.id)))),Se=a((()=>J.currentGroupUser?T.value?J.currentGroupUser.slice(0,6):J.currentGroupUser.slice(0,7):[]));async function je(e){try{await R({id:J.currentSessionItem.id,topping:e}),M({topping:e})}catch(e){}}async function ze(e){await F({dissolution:!!e,groupId:J.currentSessionItem.receiver,operator:J.userInfo.id,memberIdSet:e?Z.value:[J.userInfo.id]})}async function Ue(){var e;X.value=J.currentSessionItem.name,W.value=!0,await y(),null==(e=V.value)||e.select()}async function Ge(e){const n=new FormData,o=Object.assign({id:J.currentSessionItem.receiver},e);for(const e in o)n.append(e,o[e]);await K(n)}async function Pe(){W.value=!1;const e=N(X.value);e&&e!==J.currentSessionItem.name&&(await Ge({name:e}),M({name:e,defaultName:e}))}async function Ae(e){const{file:n}=e.file,o=new FileReader;o.onload=function(e){var n;(null==(n=e.target)?void 0:n.result)&&M({avatar:e.target.result})},o.readAsDataURL(e.file.file),await Ge({file:n})}function De(){O(H["onUpdate:show"])&&H["onUpdate:show"](!1)}return i((()=>J.id),(e=>{De()})),(n,o)=>(l(),s(r(_),{width:320,"trap-focus":!1,"block-scroll":!1,to:".iho-chat",onAfterLeave:o[7]||(o[7]=e=>Y.value=!1)},{default:c((()=>[u(r(k),null,{header:c((()=>{var e,n;return[r(Q)&&Y.value?(l(),s(r(C),{key:0,text:"",color:"#666",onClick:o[0]||(o[0]=e=>Y.value=!1),style:{"font-size":"var(--n-title-font-size)"}},{icon:c((()=>[u(r(h),{size:20,component:r(z)},null,8,["component"])])),default:c((()=>{var e;return[d((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.82"))||"返回")]})),_:1})):r(Q)?(l(),m(p,{key:1},[d((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.83"))||"群设置")],64)):(l(),m(p,{key:2},[d((null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.66"))||"聊天设置")],64))]})),default:c((()=>{var n;return[r(J).id?(l(),m("div",$,[r(Q)&&Y.value?(l(!0),m(p,{key:0},g(r(J).currentGroupUser,((n,o)=>(l(),s(q,{key:n.id,"user-id":n.id,placement:"left"},{trigger:c((()=>{var t;return[e("div",ee,[u(r(b),{round:"",size:40,src:n.avatar},null,8,["src"]),e("span",ne,v(n.name),1),0===o?(l(),m("span",oe,(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.84"))||"群主")):w("v-if",!0)])]})),_:2},1032,["user-id"])))),128)):(l(),m(p,{key:1},[u(q,{"user-id":r(J).currentSessionItem.receiver,onClose:De,disabled:!!r(Q),placement:"bottom-end"},{trigger:c((()=>[e("div",te,[u(r(b),{round:"",size:40,src:r(J).currentSessionItem.avatar},null,8,["src"]),e("span",ae,v(r(J).currentSessionItem.name),1),r(Q)?w("v-if",!0):(l(),s(r(h),{key:0,size:24,component:r(U),class:"item__right"},null,8,["component"]))])])),_:1},8,["user-id","disabled"]),r(Q)?(l(),m(p,{key:0},[e("div",ie,[le,e("div",se,[(l(!0),m(p,null,g(r(Se),(n=>(l(),s(q,{key:n.id,"user-id":n.id,placement:"left-start"},{trigger:c((()=>[e("div",re,[u(r(b),{round:"",size:40,src:n.avatar},null,8,["src"]),e("span",ce,v(n.name),1)])])),_:2},1032,["user-id"])))),128)),u(E,{mode:"join",disabledIds:r(Z)},{trigger:c((()=>[e("div",ue,[u(r(C),{strong:"",secondary:"",circle:""},{icon:c((()=>[u(r(h),{component:r(G)},null,8,["component"])])),_:1}),de])])),_:1},8,["disabledIds"]),r(T)?(l(),s(E,{key:0,title:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.87"))||"移除成员",mode:"remove",options:r(J).currentGroupUser},{trigger:c((()=>[e("div",me,[u(r(C),{strong:"",secondary:"",circle:""},{icon:c((()=>[u(r(h),{component:r(P)},null,8,["component"])])),_:1}),pe])])),_:1},8,["options"])):w("v-if",!0)]),u(r(C),{text:"","icon-placement":"right",color:"#999",onClick:o[1]||(o[1]=e=>Y.value=!0)},{icon:c((()=>[u(r(h),{component:r(U)},null,8,["component"])])),default:c((()=>{var e;return[d((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.89"))||"查看全部群成员")]})),_:1})]),u(r(L),{abstract:"",multiple:"",accept:"image/*",onChange:Ae},{default:c((()=>[u(r(I),{abstract:""},{default:c((({handleClick:n})=>[e("div",{class:"item",onClick:n},[ve,u(r(h),{size:20,component:r(U),class:"item__right"},null,8,["component"])],8,ge)])),_:1})])),_:1}),e("div",we,[fe,e("div",ye,[W.value?(l(),s(r(B),{key:0,ref_key:"inputRef",ref:V,value:X.value,"onUpdate:value":o[2]||(o[2]=e=>X.value=e),onBlur:Pe,onKeydown:o[3]||(o[3]=f((e=>e.target.blur()),["enter"]))},null,8,["value"])):(l(),s(r(x),{key:1,"wrap-item":!1,onClick:Ue,align:"center"},{default:c((()=>[e("span",_e,v(r(J).currentSessionItem.name),1),u(r(C),{text:"",style:{"font-size":"14px","--n-text-color":"#999"}},{default:c((()=>[u(r(h),{component:r(A)},null,8,["component"])])),_:1})])),_:1}))])])],64)):w("v-if",!0),e("div",ke,[Ce,u(r(S),{value:r(J).currentSessionItem.topping,"onUpdate:value":[o[4]||(o[4]=e=>r(J).currentSessionItem.topping=e),je],class:"item__right"},null,8,["value"])]),r(Q)?(l(),m(p,{key:1},[u(r(j),{onPositiveClick:o[5]||(o[5]=()=>ze(!1))},{trigger:c((()=>[e("div",he,[be,u(r(h),{size:20,component:r(U),class:"item__right"},null,8,["component"])])])),default:c((()=>[Le])),_:1}),r(T)?(l(),s(r(j),{key:0,onPositiveClick:o[6]||(o[6]=()=>ze(!0))},{trigger:c((()=>[e("div",Ie,[Be,u(r(h),{size:20,component:r(U),class:"item__right"},null,8,["component"])])])),default:c((()=>[xe])),_:1})):w("v-if",!0)],64)):w("v-if",!0)],64))])):w("v-if",!0)]})),_:1})])),_:1}))}});export{Se as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as t,computed as o,withDirectives as i,createVNode as s,vShow as n,isVNode as a}from"vue";import{NButtonGroup as l,NButton as r,NIcon as d}from"naive-ui";import{CopyOutline as c,OpenOutline as u,ChatbubbleEllipsesOutline as p,ReturnDownBack as m,DownloadOutline as w}from"@vicons/ionicons5";import{onClickOutside as g}from"@vueuse/core";import{useData as y}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as f}from"../constants/index.js";import{recallMessageApi as v}from"../api/index.js";import{isAudioOrVideoMessage as h,$message as T,downloadFile as b}from"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";import{emojis as I}from"../utils/emoji.js";import{format as j}from"date-fns";var k=e({name:"PopupMenu",inheritAttrs:!1,props:{type:{type:String,default:"message"},show:{type:Boolean,default:!1},position:{type:Object},id:{type:String}},emits:["update:show","select"],setup(e,{attrs:k,slots:M,emit:E}){var L,x,S,A,B;const{state:C,setCurrentSessionItem:D}=y(),O=[{icon:c,label:(null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.97"))||"复制",key:"copy"},{icon:u,label:(null==(x=window.getLanguageByCode)?void 0:x.call(window,"10010.1.
|
1
|
+
import{defineComponent as e,ref as t,computed as o,withDirectives as i,createVNode as s,vShow as n,isVNode as a}from"vue";import{NButtonGroup as l,NButton as r,NIcon as d}from"naive-ui";import{CopyOutline as c,OpenOutline as u,ChatbubbleEllipsesOutline as p,ReturnDownBack as m,DownloadOutline as w}from"@vicons/ionicons5";import{onClickOutside as g}from"@vueuse/core";import{useData as y}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as f}from"../constants/index.js";import{recallMessageApi as v}from"../api/index.js";import{isAudioOrVideoMessage as h,$message as T,downloadFile as b}from"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";import{emojis as I}from"../utils/emoji.js";import{format as j}from"date-fns";var k=e({name:"PopupMenu",inheritAttrs:!1,props:{type:{type:String,default:"message"},show:{type:Boolean,default:!1},position:{type:Object},id:{type:String}},emits:["update:show","select"],setup(e,{attrs:k,slots:M,emit:E}){var L,x,S,A,B;const{state:C,setCurrentSessionItem:D}=y(),O=[{icon:c,label:(null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.97"))||"复制",key:"copy"},{icon:u,label:(null==(x=window.getLanguageByCode)?void 0:x.call(window,"10010.1.98"))||"转发",key:"relay"},{icon:p,label:(null==(S=window.getLanguageByCode)?void 0:S.call(window,"10010.1.99"))||"回复",key:"reply"},{icon:m,label:(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.101"))||"撤回",key:"withdraw"},{icon:w,label:(null==(B=window.getLanguageByCode)?void 0:B.call(window,"10010.1.102"))||"下载",key:"download"}],W=[{label:"置顶会话",key:"topping"},{label:"移除会话",key:"remove"}],$=t(null),H=o((()=>("message"===e.type?C.msgList:C.sessionList).find((({id:t})=>t===e.id)))),J=o((()=>{var t;if(!e.id)return[];if(!(null==H?void 0:H.value))return[];if("session"===e.type){const e=[...W];return e[0].label=(null==(t=H.value)?void 0:t.topping)?"取消置顶":"置顶会话",e}const{content:o={},sendTime:i,sender:s}=H.value,{chatMessageType:n}=o,a=[];return(s!==C.userInfo.id||n===f.TEMPLATE||s===C.userInfo.id&&Date.now()-new Date(i).getTime()>2592e5)&&a.push("withdraw"),[f.TEXT,f.EMOJI,f.BLEND].includes(n)?a.push("download"):h(o)?a.push("copy","relay","reply","download"):n===f.FILE?a.push("copy"):[f.FORWARD,f.TEMPLATE].includes(n)&&a.push("copy","download"),a.length?O.filter((e=>!a.includes(e.key))):O}));return g($,(e=>{E("update:show",!1)})),()=>{let t;return e.id&&J.value?i(s("div",{class:"contextmenu-wrapper",ref:$,style:e.position},[s(l,{vertical:!0},(o=t=J.value.map((t=>s(r,{key:t.key,onClick:()=>async function(t){E("update:show",!1);const{content:o={},sendTime:i,sender:s}=H.value||{},{chatMessageType:n}=o;switch(t){case"copy":if(!o.msg)return console.log("复制内容为空!");if(!navigator||!("clipboard"in navigator))return console.log("当前浏览器版本不支持复制!");try{if(n===f.TEXT)await navigator.clipboard.writeText(o.msg);else{let e;if([f.EMOJI,f.IMAGE].includes(n)){const t=n===f.EMOJI?I.findEmoji(o.msg):o.msg;e=`<img data-msg=${o.msg} data-type=${n} class=${n===f.EMOJI?"emoji--min":""} src=${t} />`}else e=o.msg;await navigator.clipboard.write([new window.ClipboardItem({"text/html":new Blob([e],{type:"text/html"})})])}}catch(e){console.log("复制失败!")}return;case"download":{let{fileUrl:e,msg:t}=o;return n===f.IMAGE&&(e=t,t=t.match(/\/([^\/?#]+)$/)[1]),void b(e,t)}case"withdraw":try{const t=C.msgList.findIndex((({id:t})=>t===e.id)),o=0===t;if(await v({chatType:C.currentSessionItem.chatType,messageIdSet:[e.id],receiver:C.currentSessionItem.receiver,sender:C.userInfo.id,isLastMessage:o}),C.msgList[t].status="WITHDRAWN",o){const e=j(new Date,"yyyy-MM-dd HH:mm:ss");D({lastMessageStatus:"WITHDRAWN",lastMessageSendTime:e,sortTime:e,updatedTime:e})}}catch(e){T.error("撤回失败")}return}E("select",t,H.value)}(t.key),quaternary:!0},{default:()=>t.label,icon:()=>t.icon?s(d,{component:t.icon},null):null}))),"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!a(o)?t:{default:()=>[t]}))]),[[n,e.show]]):null;var o}}});export{k as default};
|