cnhis-design-vue 3.2.14-beta.2 → 3.2.14-beta.24
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/ChatCard.js +1 -1
- package/es/components/ai-chat/src/components/ChatFooter.vue2.js +1 -1
- 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/ai-chat/src/components/ChatPrompt.vue2.js +1 -1
- package/es/components/audio-sdk/src/components/recording.vue2.js +1 -1
- package/es/components/big-table/src/BigTable.vue2.js +1 -1
- package/es/components/big-table/src/components/edit-form/edit-date.js +1 -1
- package/es/components/big-table/src/components/edit-form/edit-select.js +1 -1
- package/es/components/big-table/src/components/edit-form/edit-time.js +1 -1
- package/es/components/big-table/src/components/input-button.vue2.js +1 -1
- package/es/components/big-table/src/hooks/useTableParse.js +1 -1
- package/es/components/button-print/index.d.ts +4 -0
- package/es/components/button-print/src/ButtonPrint.vue.d.ts +4 -0
- package/es/components/button-print/src/components/IdentityVerification.vue2.js +1 -1
- package/es/components/button-print/src/components/NewPrintComponent.vue.d.ts +4 -0
- package/es/components/button-print/src/components/NewPrintComponent.vue2.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/expand-field/src/components/FormBatchOptionsModal.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 +19 -2
- package/es/components/fabric-chart/src/FabricChart.vue.d.ts +19 -2
- package/es/components/fabric-chart/src/FabricChart.vue2.js +1 -1
- package/es/components/fabric-chart/src/components/PopupMenu.js +1 -1
- package/es/components/fabric-chart/src/components/PopupTip.vue.d.ts +13 -0
- package/es/components/fabric-chart/src/components/PopupTip.vue2.js +1 -1
- package/es/components/fabric-chart/src/components/useStyle.js +1 -1
- package/es/components/fabric-chart/src/constants/index.js +1 -1
- package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcess.js +1 -1
- package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcessChart.d.ts +1 -0
- 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.d.ts +1 -0
- 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.d.ts +1 -0
- package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useSurgicalAnesthesiaChart.js +1 -1
- package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useTop.d.ts +7 -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.d.ts +1 -0
- 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/fabric-chart/src/hooks/useCommon.js +1 -1
- package/es/components/fabric-chart/src/hooks/useCumputedPoint.js +1 -1
- package/es/components/fabric-chart/src/interface.d.ts +2 -0
- package/es/components/fabric-chart/src/utils/index.d.ts +1 -0
- package/es/components/fabric-chart/src/utils/index.js +1 -1
- package/es/components/field-set/src/FieldColor.vue.d.ts +3 -3
- package/es/components/field-set/src/FieldColor.vue2.js +1 -1
- package/es/components/field-set/src/FieldFilter.vue.d.ts +5 -4
- package/es/components/field-set/src/FieldFilter.vue2.js +1 -1
- package/es/components/field-set/src/FieldSet.vue.d.ts +2 -2
- package/es/components/field-set/src/FieldSet.vue2.js +1 -1
- package/es/components/field-set/src/Index.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.vue.d.ts +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.vue.d.ts +2 -2
- package/es/components/field-set/src/components/table-row.vue2.js +1 -1
- package/es/components/field-set/src/constants/filter.d.ts +21 -12
- 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/field-set/src/types/index.d.ts +1 -1
- package/es/components/form-config/index.d.ts +7 -5
- package/es/components/form-config/index.js +1 -1
- package/es/components/form-config/src/FormConfig.vue.d.ts +7 -5
- package/es/components/form-config/src/FormConfig.vue2.js +1 -1
- package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +2 -0
- package/es/components/form-config/src/components/FormConfigCreator.vue2.js +1 -1
- package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +2 -2
- package/es/components/form-config/src/components/FormConfigEdit.vue2.js +1 -1
- package/es/components/form-config/src/components/FormConfigEventSetting.vue2.js +1 -1
- package/es/components/form-config/src/components/renderer/DefaultNode.vue2.js +1 -1
- package/es/components/form-config/src/constants/index.d.ts +1 -11
- package/es/components/form-config/src/constants/index.js +1 -1
- package/es/components/form-config/src/hooks/useConfigurationField.js +1 -1
- package/es/components/form-config/src/hooks/useLocale.d.ts +52 -0
- package/es/components/form-config/src/hooks/useLocale.js +1 -0
- package/es/components/form-render/index.js +1 -1
- package/es/components/form-render/src/components/renderer/combination/hooks/useCombination.js +1 -1
- package/es/components/form-render/src/components/renderer/combination/jsonCombination.js +1 -1
- package/es/components/form-render/src/components/renderer/combination/tableCombination.js +1 -1
- package/es/components/form-render/src/components/renderer/radio_checkbox.js +1 -1
- package/es/components/form-render/src/components/renderer/switch.js +1 -1
- package/es/components/form-render/src/hooks/useComplexOptions.js +1 -1
- package/es/components/form-render/src/hooks/useFieldListAdaptor.js +1 -1
- package/es/components/form-render/src/hooks/usePresetScope.d.ts +1 -1
- package/es/components/form-render/src/hooks/usePresetScope.js +1 -1
- package/es/components/form-render/src/utils/index.d.ts +1 -0
- package/es/components/form-render/src/utils/index.js +1 -1
- package/es/components/iho-chat/index.d.ts +612 -52
- package/es/components/iho-chat/src/Index.vue.d.ts +615 -59
- package/es/components/iho-chat/src/Index.vue2.js +1 -1
- package/es/components/iho-chat/src/api/index.d.ts +1 -0
- package/es/components/iho-chat/src/api/index.js +1 -1
- package/es/components/iho-chat/src/components/ChatAdd.vue.d.ts +32 -1
- package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatFile.vue.d.ts +52 -3
- package/es/components/iho-chat/src/components/ChatFile.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +52 -2
- package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +221 -11
- package/es/components/iho-chat/src/components/ChatHeader.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +82 -6
- package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatRecord.vue.d.ts +19 -1
- package/es/components/iho-chat/src/components/ChatRecord.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatSearch.vue.d.ts +20 -2
- package/es/components/iho-chat/src/components/ChatSearch.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatSet.vue.d.ts +71 -4
- package/es/components/iho-chat/src/components/ChatSet.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ContextMenu.d.ts +11 -2
- package/es/components/iho-chat/src/components/ContextMenu.js +1 -1
- package/es/components/iho-chat/src/components/MessageTemplate.vue.d.ts +1 -1
- package/es/components/iho-chat/src/components/MessageTemplate.vue2.js +1 -1
- package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +51 -2
- package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +1 -1
- package/es/components/iho-chat/src/components/PersonProfile.vue.d.ts +19 -1
- package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
- package/es/components/iho-chat/src/components/SiderList.vue.d.ts +66 -1
- package/es/components/iho-chat/src/components/SiderList.vue2.js +1 -1
- package/es/components/iho-chat/src/components/Video.vue.d.ts +19 -1
- package/es/components/iho-chat/src/components/Video.vue2.js +1 -1
- package/es/components/iho-chat/src/constants/index.d.ts +13 -3
- package/es/components/iho-chat/src/constants/index.js +1 -1
- package/es/components/iho-chat/src/hooks/index.d.ts +2 -2
- package/es/components/iho-chat/src/hooks/index.js +1 -1
- package/es/components/iho-chat/src/hooks/useData.d.ts +94 -0
- package/es/components/iho-chat/src/hooks/useData.js +1 -0
- package/es/components/iho-chat/src/hooks/useSearchUserList.js +1 -1
- package/es/components/iho-chat/src/hooks/useVideo.d.ts +19 -1
- package/es/components/iho-chat/src/hooks/useVideo.js +1 -1
- package/es/components/iho-chat/src/hooks/useWebSocket.d.ts +3 -0
- package/es/components/iho-chat/src/hooks/useWebSocket.js +1 -0
- package/es/components/iho-chat/src/types/index.d.ts +0 -6
- package/es/components/iho-chat/src/types/index.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/hooks/useColumnConfigAdaptor.js +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/filterRenderPlugin/index.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/selectRendererPlugin/editSelect.js +1 -1
- package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue2.js +1 -1
- package/es/components/iho-table/src/utils/index.js +1 -1
- package/es/components/index.css +1 -1
- package/es/components/index.js +1 -1
- package/es/components/info-header/src/components/patientInfo/index.vue2.js +1 -1
- package/es/components/keyboard/src/Keyboard.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/RecommendSelect.vue2.js +1 -1
- package/es/components/scale-view/index.d.ts +31 -0
- package/es/components/scale-view/src/ScaleView.vue.d.ts +13 -0
- package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
- package/es/components/scale-view/src/components/composables/choose-common.js +1 -1
- package/es/components/scale-view/src/components/formitem/r-cascader.js +1 -1
- package/es/components/scale-view/src/components/formitem/r-checkbox.d.ts +9 -0
- package/es/components/scale-view/src/components/formitem/r-checkbox.js +1 -1
- package/es/components/scale-view/src/components/formitem/r-input.d.ts +9 -0
- package/es/components/scale-view/src/components/formitem/r-input.js +1 -1
- package/es/components/scale-view/src/components/formitem/r-map.js +1 -1
- package/es/components/scale-view/src/components/formitem/r-radio.d.ts +9 -0
- package/es/components/scale-view/src/components/formitem/r-radio.js +1 -1
- package/es/components/scale-view/src/components/formitem/r-select.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-computed.js +1 -1
- package/es/components/scale-view/src/hooks/scaleview-methods.js +1 -1
- package/es/components/scale-view/src/hooks/scaleview-props.d.ts +4 -0
- package/es/components/scale-view/src/hooks/scaleview-props.js +1 -1
- package/es/components/scale-view/src/hooks/scaleview-submit.js +1 -1
- package/es/components/scale-view/src/hooks/scaleview-validate.js +1 -1
- package/es/components/scale-view/src/hooks/use-component.d.ts +72 -0
- package/es/components/scale-view/style/index.css +1 -1
- package/es/components/search-cascader/src/SearchCascader.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-person/src/SelectPerson.vue2.js +1 -1
- package/es/components/select-person/src/SelectPersonType.vue2.js +1 -1
- package/es/components/select-person/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-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/components/Date.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/helpers/options.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/SelectDynamic.vue.d.ts +4 -7
- 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/index.d.ts +4 -7
- package/es/components/table-filter/src/components/render-widget/helpers/dateExtraMap.js +1 -1
- package/es/components/table-filter/src/components/render-widget/helpers/selectExtraMap.js +1 -1
- package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +4 -7
- 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/hooks/upload-computed.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/es/shared/types/index.d.ts +3 -0
- package/es/shared/utils/index.d.ts +1 -0
- package/es/shared/utils/index.js +1 -1
- package/package.json +2 -2
- package/es/components/iho-chat/src/hooks/useSession.d.ts +0 -12
- package/es/components/iho-chat/src/hooks/useSession.js +0 -1
- package/es/components/iho-chat/src/hooks/useState.d.ts +0 -18
- package/es/components/iho-chat/src/hooks/useState.js +0 -1
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as
|
1
|
+
import{defineComponent as e,ref as t,provide as o,openBlock as s,createElementBlock as r,normalizeStyle as a,unref as n,createVNode as i,withCtx as u,createBlock as l,Fragment as d,createElementVNode as m,renderSlot as p,createCommentVNode as c}from"vue";import{NConfigProvider as f,NSpin as h,NLayout as v,NLayoutContent as y}from"naive-ui";import S from"./components/SiderList.vue.js";import g from"./components/ChatHeader.vue.js";import k from"./components/ChatMain.vue.js";import j from"./components/ChatFooter.vue.js";import _ from"./components/ChatSearch.vue.js";import b from"./components/ChatAdd.vue.js";import w from"./components/Video.vue.js";import C from"./components/MultipleVideo.vue.js";import{instanceAxios as x}from"./api/index.js";import{isNumber as I}from"lodash-es";import{initData as L,InjectionIChatData as V}from"./hooks/useData.js";import{useWebSocket as H}from"./hooks/useWebSocket.js";import"trtc-sdk-v5";import"./utils/index.js";const U={key:0,class:"iho-chat__header"},$={class:"toolbar"};var q=e({__name:"Index",props:{token:{type:String,required:!0},orgId:{type:[String,Number],required:!0},userId:{type:String,required:!0},baseURL:{type:String,default:"/fdp-chat"},showHeader:{type:Boolean,default:!0},defaultSessionKey:{type:String},show:{type:Boolean,default:!0},extraParams:{type:Object,default:()=>({})}},emits:["template-click","unread-message-update","session-change","session-close"],setup(e,{expose:q,emit:B}){const M=e;x.defaults.baseURL=M.baseURL,x.defaults.headers.Authorization="bearer "+M.token;const N=t(!1),R=L(M,B);o(V,R),H(M,R);const{cssVars:A,state:D,openSession:F,closeSession:z,getCurrentSession:E,isEnded:K}=R;return q({getUnreadData:function(){return D.sessionList.filter((e=>I(e.unreadNum)&&e.unreadNum>0))},openSession:F,closeSession:z,getCurrentSession:E}),(t,o)=>e.show?(s(),r("div",{key:0,class:"iho-chat",style:a(n(A))},[i(n(f),{abstract:"",namespace:"iho-chat__popover"},{default:u((()=>{var o;return[N.value?(s(),l(n(h),{key:0,stroke:"#5585f5"})):(s(),r(d,{key:1},[e.showHeader?(s(),r("div",U,[i(_),i(b,{title:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.31"))||"发起群聊",mode:"create","default-value":[n(D).userInfo]},null,8,["default-value"]),m("div",$,[p(t.$slots,"toolbar")])])):c("v-if",!0),i(n(v),{class:"iho-chat__body","has-sider":""},{default:u((()=>[i(S),i(n(y),{class:"chat-content",style:a({"--c-pointer-events":n(K)?"none":"unset","--c-cursor":n(K)?"not-allowed":"unset"})},{default:u((()=>[i(g,null,{header:u((()=>[p(t.$slots,"chatHeader",{session:n(D).currentSessionItem})])),_:3}),i(k),i(j,null,{footer:u((()=>[p(t.$slots,"chatFooter",{session:n(D).currentSessionItem})])),_:3})])),_:3},8,["style"]),p(t.$slots,"external")])),_:3}),n(D).showVideo?(s(),l(w,{key:1})):c("v-if",!0),n(D).showMultipleVideo?(s(),l(C,{key:2})):c("v-if",!0)],64))]})),_:3})],4)):c("v-if",!0)}});export{q as default};
|
@@ -15,3 +15,4 @@ export declare function groupJoinApi(params: AnyObject): import("axios").AxiosPr
|
|
15
15
|
export declare function groupLeaveApi(params: AnyObject): import("axios").AxiosPromise<any>;
|
16
16
|
export declare function avFinishApi(params: AnyObject): import("axios").AxiosPromise<any>;
|
17
17
|
export declare function groupUpdateApi(params: FormData): import("axios").AxiosPromise<any>;
|
18
|
+
export declare function updateStatusApi(params: AnyObject): import("axios").AxiosPromise<any>;
|
@@ -1 +1 @@
|
|
1
|
-
import t from"axios";import{createDiscreteApi as e}from"naive-ui";const{message:o}=e(["message"]);function r(t){const e=[];for(const o in t){const r=t[o];Array.isArray(r)?r.forEach((t=>{e.push(`${encodeURIComponent(o)}=${encodeURIComponent(t)}`)})):e.push(`${encodeURIComponent(o)}=${encodeURIComponent(r)}`)}return e.join("&")}const n=t.create({withCredentials:!0,timeout:5e3});function a(t){return n({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"post",url:"/session/openSession",data:r(t)})}function u(t){return n({method:"get",url:"/chat/recordList",params:t})}function s(t){return n({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"post",url:"/session/toppingSession",data:r(t)})}function d(t){return n({headers:{"Content-Type":"multipart/form-data"},method:"post",url:"/chat/uploadFile",data:t})}function i(t){return n({method:"get",url:"/user/listUser",params:t})}function p(t){return n({method:"get",url:"/user/getUserDetail",params:t})}function c(t){return n({method:"post",url:"/chat/readMessage",data:t})}function m(t){return n({method:"post",url:"/chat/recallMessage",data:t})}function l(t){return n({method:"post",url:"/chat/searchChatRecord",data:t})}function h(t){return n({method:"post",url:"/group/create",data:t})}function f(t){return n({method:"get",url:"/group/user",params:t})}function g(t){return n({method:"post",url:"/group/join",data:t})}function C(t){return n({method:"post",url:"/group/leave",data:t})}function
|
1
|
+
import t from"axios";import{createDiscreteApi as e}from"naive-ui";const{message:o}=e(["message"]);function r(t){const e=[];for(const o in t){const r=t[o];Array.isArray(r)?r.forEach((t=>{e.push(`${encodeURIComponent(o)}=${encodeURIComponent(t)}`)})):e.push(`${encodeURIComponent(o)}=${encodeURIComponent(r)}`)}return e.join("&")}const n=t.create({withCredentials:!0,timeout:5e3});function a(t){return n({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"post",url:"/session/openSession",data:r(t)})}function u(t){return n({method:"get",url:"/chat/recordList",params:t})}function s(t){return n({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"post",url:"/session/toppingSession",data:r(t)})}function d(t){return n({headers:{"Content-Type":"multipart/form-data"},method:"post",url:"/chat/uploadFile",data:t})}function i(t){return n({method:"get",url:"/user/listUser",params:t})}function p(t){return n({method:"get",url:"/user/getUserDetail",params:t})}function c(t){return n({method:"post",url:"/chat/readMessage",data:t})}function m(t){return n({method:"post",url:"/chat/recallMessage",data:t})}function l(t){return n({method:"post",url:"/chat/searchChatRecord",data:t})}function h(t){return n({method:"post",url:"/group/create",data:t})}function f(t){return n({method:"get",url:"/group/user",params:t})}function g(t){return n({method:"post",url:"/group/join",data:t})}function C(t){return n({method:"post",url:"/group/leave",data:t})}function w(t){return n({method:"post",url:"/av/finish",data:t})}function v(t){return n({headers:{"Content-Type":"multipart/form-data"},method:"post",url:"/group/update",data:t})}function y(t){return n({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"put",url:"/session/updateStatus",data:r(t)})}n.interceptors.response.use((t=>{var e,r,n;if(null==(e=t.data)?void 0:e.result)return null==(r=t.data)?void 0:r.data;500==(null==(n=t.data)?void 0:n.code)&&t.data.msg&&o.error(t.data.msg)}));export{w as avFinishApi,u as getHistoryRecordApi,p as getUserDetailApi,h as groupCreateApi,g as groupJoinApi,C as groupLeaveApi,v as groupUpdateApi,f as groupUserApi,n as instanceAxios,i as listUserApi,a as openSessionApi,c as readMessageApi,m as recallMessageApi,l as searchChatRecordApi,s as toppingSessionApi,y as updateStatusApi,d as uploadFileApi};
|
@@ -20,6 +20,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
20
20
|
type: PropType<AnyObject[]>;
|
21
21
|
default: () => never[];
|
22
22
|
};
|
23
|
+
disabled: {
|
24
|
+
type: BooleanConstructor;
|
25
|
+
default: boolean;
|
26
|
+
};
|
23
27
|
}, {
|
24
28
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
25
29
|
title: {
|
@@ -41,11 +45,33 @@ declare const _default: import("vue").DefineComponent<{
|
|
41
45
|
type: PropType<AnyObject[]>;
|
42
46
|
default: () => never[];
|
43
47
|
};
|
48
|
+
disabled: {
|
49
|
+
type: BooleanConstructor;
|
50
|
+
default: boolean;
|
51
|
+
};
|
44
52
|
}>> & {
|
45
53
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
46
54
|
}>>;
|
47
55
|
emit: (event: "comfirm", ...args: any[]) => void;
|
48
|
-
state:
|
56
|
+
state: {
|
57
|
+
orgId: string | number;
|
58
|
+
currentSessionItem: AnyObject;
|
59
|
+
id: string;
|
60
|
+
userInfo: AnyObject;
|
61
|
+
msgList: AnyObject[];
|
62
|
+
currentMsg: AnyObject;
|
63
|
+
isAppendMsg: boolean;
|
64
|
+
sessionList: AnyObject[];
|
65
|
+
isChangeSession: boolean;
|
66
|
+
updateSessionItem: AnyObject;
|
67
|
+
isUpdateSession: boolean;
|
68
|
+
currentReferenceMsg: AnyObject | null;
|
69
|
+
currentReEditMsg: AnyObject | null;
|
70
|
+
showVideo: boolean;
|
71
|
+
currentAVMsg: AnyObject;
|
72
|
+
currentGroupUser: AnyObject[];
|
73
|
+
showMultipleVideo: boolean;
|
74
|
+
};
|
49
75
|
setCurrentSessionItem: (item: AnyObject) => void;
|
50
76
|
listRef: import("vue").Ref<any>;
|
51
77
|
keyword: import("vue").Ref<string>;
|
@@ -105,11 +131,16 @@ declare const _default: import("vue").DefineComponent<{
|
|
105
131
|
type: PropType<AnyObject[]>;
|
106
132
|
default: () => never[];
|
107
133
|
};
|
134
|
+
disabled: {
|
135
|
+
type: BooleanConstructor;
|
136
|
+
default: boolean;
|
137
|
+
};
|
108
138
|
}>> & {
|
109
139
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
110
140
|
}, {
|
111
141
|
title: string;
|
112
142
|
defaultValue: AnyObject[];
|
143
|
+
disabled: boolean;
|
113
144
|
mode: string;
|
114
145
|
disabledIds: string[];
|
115
146
|
}>;
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as a,computed as l,watch as t,openBlock as i,createElementBlock as
|
1
|
+
import{defineComponent as e,ref as a,computed as l,watch as t,openBlock as i,createElementBlock as o,Fragment as u,createVNode as n,unref as d,withCtx as r,createElementVNode 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 _,NSpace as x,NAvatar as C,NTag as S,NTooltip as L,NButton as j}from"naive-ui";import{SearchOutline as U,AddOutline as B}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;const K={class:"iho-chat-dialog__content iho-chat-add-wrapper"},O={key:0,class:"input-box"},Q=s("span",null,"群名称:",-1),W={class:"transfer-box"},X={class:"transfer-box__left"},Y={class:"user-list-box"},Z={key:1,class:"no-data"},ee={class:"transfer-box__right"},ae={class:"checked-tag-box"},le={key:0,class:"input-wrapper"};var te=e({__name:"ChatAdd",props:{title:{type:String,default:(null==(J=window.getLanguageByCode)?void 0:J.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(e,{emit:J}){const te=e,{state:ie,setCurrentSessionItem:oe}=R(),ue=a(),ne=a(""),de=a(!1),re=a([]),se=a([]),ve=a(""),ce=a([]),pe=a(""),{userList:me,handleInput:fe}=H({wrapperRef:ue,keywordRef:ne,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=l((()=>"relay"===te.mode?[]:$(te.disabledIds,[ie.userInfo.id]))),we=l((()=>{var e,a;if(!(null==(e=ie.sessionList)?void 0:e.length))return[];const l=N(ie.sessionList);return null==(a="relay"===te.mode?l:l.filter((e=>e.chatType===V.SINGLE)))?void 0:a.map((e=>({id:e.receiver,name:e.name,avatar:e.avatar})))})),he=l((()=>re.value.length?re.value.map((e=>e.id)):[])),be=l((()=>"create"===te.mode?he.value.length<3:he.value.length<1)),ye=l({get:()=>ce.value.filter((e=>!ge.value.includes(e))).length===me.value.filter((e=>!e.disabled)).length,set(e){const a=te.defaultValue.map((e=>e.id)),l=z(a,ge.value,me.value.map((e=>e.id))),t=me.value.filter((e=>!e.disabled));ce.value=l.concat(e?t.map((e=>e.id)):[]),e?re.value=D(re.value,t,"id"):M(re.value,(e=>t.map((e=>e.id)).includes(e.id)))}});async function ke(){switch(te.mode){case"create":await G({creator:ie.userInfo.id,memberIdSet:he.value,name:F(ve.value),orgId:ie.orgId});break;case"join":if(await E({groupId:ie.currentSessionItem.receiver,operator:ie.userInfo.id,memberIdSet:he.value}),!ie.currentSessionItem.defaultName){const e=re.value.map((e=>e.name)).join(",");oe({name:`${ie.currentSessionItem.name},${e}`})}ie.currentGroupUser.push(...me.value.filter((e=>he.value.includes(e.id))));break;case"remove":if(await A({dissolution:!1,groupId:ie.currentSessionItem.receiver,operator:ie.userInfo.id,memberIdSet:he.value}),!ie.currentSessionItem.defaultName){const e=re.value.map((e=>e.name)).join(","),a=new RegExp(e,"g");oe({name:ie.currentSessionItem.name.replace(a,"")})}M(ie.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 _e(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;ne.value="",ve.value="";const a=T(te.options)&&te.options.length?te.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(te.defaultValue)&&te.defaultValue.length?(re.value=q(te.defaultValue),Ie()):(re.value=[],ce.value=[])})),(a,l)=>{var t,R;return i(),o(u,null,[n(d(b),{preset:"dialog",title:e.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:de.value,"onUpdate:show":l[5]||(l[5]=e=>de.value=e),"negative-text":(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.28"))||"取消","positive-text":(null==(R=window.getLanguageByCode)?void 0:R.call(window,"10010.1.27"))||"确定","display-directive":"show","positive-button-props":{disabled:d(be)},onPositiveClick:ke},{default:r((()=>{var a,t,w,h,b;return[s("div",K,["create"===e.mode?(i(),o("div",O,[Q,n(d(y),{clearable:"",placeholder:(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.35"))||"取个群名称方便后续搜索",value:ve.value,"onUpdate:value":l[0]||(l[0]=e=>ve.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),s("div",W,[s("div",X,[n(d(y),{placeholder:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.36"))||"搜索",clearable:"",value:ne.value,"onUpdate:value":[l[1]||(l[1]=e=>ne.value=e),d(fe)],valueModifiers:{trim:!0}},{prefix:r((()=>[n(d(k),{component:d(U)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),s("div",Y,[d(me).length>0?(i(),o(u,{key:0},[n(d(I),{label:(null==(w=window.getLanguageByCode)?void 0:w.call(window,"10010.1.37"))||"全选",checked:d(ye),"onUpdate:checked":l[2]||(l[2]=e=>c(ye)?ye.value=e:null)},null,8,["checked"]),n(d(_),{ref_key:"listRef",ref:ue,value:ce.value,"onUpdate:value":[l[3]||(l[3]=e=>ce.value=e),_e]},{default:r((()=>[(i(!0),o(u,null,p(d(me),(e=>(i(),m(d(I),{key:e.id,value:e.id,disabled:e.disabled},{default:r((()=>[n(d(x),{align:"center","wrap-item":!1},{default:r((()=>[n(d(C),{src:e.avatar,round:"",size:32},null,8,["src"]),s("span",null,f(e.name),1)])),_:2},1024)])),_:2},1032,["value","disabled"])))),128))])),_:1},8,["value"])],64)):(i(),o("div",Z,(null==(h=window.getLanguageByCode)?void 0:h.call(window,"10010.1.38"))||"找不到相关结果"))])]),s("div",ee,[s("span",null,"已选择 "+f(d(he).length)+" 人",1),s("div",ae,[(i(!0),o(u,null,p(re.value,(a=>(i(),m(d(S),{key:a.id,bordered:!1,closable:"relay"===e.mode||a.id!==d(ie).userInfo.id,disabled:d(ge).includes(a.id),onClose:()=>{return e=a.id,M(re.value,(a=>a.id===e)),void M(ce.value,(a=>a===e));var e}},{avatar:r((()=>[n(d(C),{round:"",src:a.avatar},null,8,["src"])])),default:r((()=>[g(" "+f(a.name),1)])),_:2},1032,["closable","disabled","onClose"])))),128))]),"relay"===e.mode?(i(),o("div",le,[n(d(y),{clearable:"",value:pe.value,"onUpdate:value":l[4]||(l[4]=e=>pe.value=e),type:"textarea",placeholder:(null==(b=window.getLanguageByCode)?void 0:b.call(window,"10010.1.41"))||"留言",autosize:{minRows:2,maxRows:2}},null,8,["value"])])):v("v-if",!0)])])])]})),_:1},8,["title","show","positive-button-props"]),s("span",{class:w(["btn-wrapper",{disabled:e.disabled}]),onClick:l[6]||(l[6]=e=>de.value=!0)},[h(a.$slots,"trigger",{},(()=>[n(d(L),{"show-arrow":!1,placement:"bottom"},{trigger:r((()=>[n(d(j),{color:"#ffffff4D",class:"add-btn"},{icon:r((()=>[n(d(k),{component:d(B),color:"#fff"},null,8,["component"])])),_:1})])),default:r((()=>[g(" "+f(e.title),1)])),_:1})]))],2)],64)}}});export{te as default};
|
@@ -10,7 +10,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
10
10
|
type: BooleanConstructor;
|
11
11
|
};
|
12
12
|
}, {
|
13
|
-
cssVars: import("vue").ComputedRef<AnyObject>;
|
14
13
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
15
14
|
type: {
|
16
15
|
type: StringConstructor;
|
@@ -20,7 +19,26 @@ declare const _default: import("vue").DefineComponent<{
|
|
20
19
|
type: BooleanConstructor;
|
21
20
|
};
|
22
21
|
}>> & {}>>;
|
23
|
-
|
22
|
+
cssVars: import("vue").ComputedRef<AnyObject>;
|
23
|
+
state: {
|
24
|
+
orgId: string | number;
|
25
|
+
currentSessionItem: AnyObject;
|
26
|
+
id: string;
|
27
|
+
userInfo: AnyObject;
|
28
|
+
msgList: AnyObject[];
|
29
|
+
currentMsg: AnyObject;
|
30
|
+
isAppendMsg: boolean;
|
31
|
+
sessionList: AnyObject[];
|
32
|
+
isChangeSession: boolean;
|
33
|
+
updateSessionItem: AnyObject;
|
34
|
+
isUpdateSession: boolean;
|
35
|
+
currentReferenceMsg: AnyObject | null;
|
36
|
+
currentReEditMsg: AnyObject | null;
|
37
|
+
showVideo: boolean;
|
38
|
+
currentAVMsg: AnyObject;
|
39
|
+
currentGroupUser: AnyObject[];
|
40
|
+
showMultipleVideo: boolean;
|
41
|
+
};
|
24
42
|
relayMessage: (param: {
|
25
43
|
checkedIds: string[];
|
26
44
|
remark: string;
|
@@ -76,6 +94,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
76
94
|
type: PropType<AnyObject[]>;
|
77
95
|
default: () => never[];
|
78
96
|
};
|
97
|
+
disabled: {
|
98
|
+
type: BooleanConstructor;
|
99
|
+
default: boolean;
|
100
|
+
};
|
79
101
|
}, {
|
80
102
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
81
103
|
title: {
|
@@ -97,11 +119,33 @@ declare const _default: import("vue").DefineComponent<{
|
|
97
119
|
type: PropType<AnyObject[]>;
|
98
120
|
default: () => never[];
|
99
121
|
};
|
122
|
+
disabled: {
|
123
|
+
type: BooleanConstructor;
|
124
|
+
default: boolean;
|
125
|
+
};
|
100
126
|
}>> & {
|
101
127
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
102
128
|
}>>;
|
103
129
|
emit: (event: "comfirm", ...args: any[]) => void;
|
104
|
-
state:
|
130
|
+
state: {
|
131
|
+
orgId: string | number;
|
132
|
+
currentSessionItem: AnyObject;
|
133
|
+
id: string;
|
134
|
+
userInfo: AnyObject;
|
135
|
+
msgList: AnyObject[];
|
136
|
+
currentMsg: AnyObject;
|
137
|
+
isAppendMsg: boolean;
|
138
|
+
sessionList: AnyObject[];
|
139
|
+
isChangeSession: boolean;
|
140
|
+
updateSessionItem: AnyObject;
|
141
|
+
isUpdateSession: boolean;
|
142
|
+
currentReferenceMsg: AnyObject | null;
|
143
|
+
currentReEditMsg: AnyObject | null;
|
144
|
+
showVideo: boolean;
|
145
|
+
currentAVMsg: AnyObject;
|
146
|
+
currentGroupUser: AnyObject[];
|
147
|
+
showMultipleVideo: boolean;
|
148
|
+
};
|
105
149
|
setCurrentSessionItem: (item: AnyObject) => void;
|
106
150
|
listRef: import("vue").Ref<any>;
|
107
151
|
keyword: import("vue").Ref<string>;
|
@@ -161,11 +205,16 @@ declare const _default: import("vue").DefineComponent<{
|
|
161
205
|
type: PropType<AnyObject[]>;
|
162
206
|
default: () => never[];
|
163
207
|
};
|
208
|
+
disabled: {
|
209
|
+
type: BooleanConstructor;
|
210
|
+
default: boolean;
|
211
|
+
};
|
164
212
|
}>> & {
|
165
213
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
166
214
|
}, {
|
167
215
|
title: string;
|
168
216
|
defaultValue: AnyObject[];
|
217
|
+
disabled: boolean;
|
169
218
|
mode: string;
|
170
219
|
disabledIds: string[];
|
171
220
|
}>;
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as t,computed as
|
1
|
+
import{defineComponent as e,ref as t,computed as o,watch as a,openBlock as i,createBlock as n,unref as s,withCtx as r,withDirectives as l,createElementVNode as c,createVNode as d,createElementBlock as m,Fragment as u,renderList as p,toDisplayString as g,vShow as y,normalizeStyle as v,createTextVNode as f}from"vue";import{NModal as w,NImageGroup as h,NImage as k,NInput as M,NIcon as b,NTooltip as C}from"naive-ui";import{SearchOutline as _,OpenOutline as j,DownloadOutline as I}from"@vicons/ionicons5";import{searchChatRecordApi as T}from"../api/index.js";import"../../../../shared/utils/index.js";import{useDebounceFn as x}from"@vueuse/core";import{format as L,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=x(ae,500),te={page:0,hasMore:!0,lastSendTime:L(new Date,"yyyy-MM-dd HH:mm:ss")};async function oe(){var e;try{if(!te.hasMore)return;te.page++;const t=await T({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 i=new Date(e.sendTime);let n=L(i,"yyyy年MM月");S(i,new Date)?n=(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.47"))||"本周":A(i,new Date)&&(n=(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.48"))||"本月"),t[n]||(t[n]=[]),t[n].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:L(new Date,"yyyy-MM-dd HH:mm:ss")}),oe()}D(X,(()=>{oe()})),D(Y,(()=>{oe()}));const ie=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 ne(e){const{size:t,sendTime:o,senderName:a}=e;return`${t} · ${L(new Date(o),"yyyy/MM/dd HH:mm")} ${a}`}function se(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)=>(i(),n(s(w),{preset:"dialog",title:s(ie),"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog"},{default:r((()=>{var t;return[l(c("div",{class:"iho-chat-dialog__content iho-chat-image-wrapper",ref_key:"imageRef",ref:X},[d(s(h),{"show-toolbar-tooltip":""},{default:r((()=>[(i(!0),m(u,null,p(Q.value,(e=>(i(),m("div",{class:"image-item",key:e.label},[c("span",O,g(e.label),1),c("div",$,[(i(!0),m(u,null,p(e.list,(e=>(i(),n(s(k),{key:e,width:"80",height:"80",src:e},null,8,["src"])))),128))])])))),128))])),_:1})],512),[[y,"image"===e.type]]),l(c("div",{class:"iho-chat-dialog__content iho-chat-file-wrapper",style:v(s(q))},[d(s(M),{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:s(ee)},{prefix:r((()=>[d(s(b),{component:s(_)},null,8,["component"])])),_:1},8,["value","onInput"]),c("div",{class:"file-list-box",ref_key:"fileRef",ref:Y},[(i(!0),m(u,null,p(W.value,((e,t)=>{var o;return i(),m("div",{class:"file-item",key:t},[c("span",F,g(se(e)),1),c("div",P,[c("span",R,g(e.content.msg),1),c("span",G,g(ne(e)),1)]),c("div",N,[d(E,{title:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.44"))||"转发消息",mode:"relay",onComfirm:(t,o)=>s(K)({content:e.content,checkedIds:t,remark:o})},{trigger:r((()=>[d(s(C),{"show-arrow":!1},{trigger:r((()=>[d(s(b),{size:16,component:s(j)},null,8,["component"])])),default:r((()=>[f(" 转发 ")])),_:1})])),_:2},1032,["onComfirm"]),d(s(C),{"show-arrow":!1},{trigger:r((()=>[d(s(b),{size:16,component:s(I),onClick:()=>s(U)(e.content.fileUr,e.content.msg)},null,8,["component","onClick"])])),default:r((()=>[f(" 下载 ")])),_:2},1024)])])})),128))],512)],4),[[y,"image"!==e.type]])]})),_:1},8,["title"]))}});export{V as default};
|
@@ -5,13 +5,32 @@ import { simplifyMessage } from '../utils';
|
|
5
5
|
import { FileOptions } from '../types';
|
6
6
|
declare const _default: import("vue").DefineComponent<{}, {
|
7
7
|
inputRef: Ref<HTMLDivElement | undefined>;
|
8
|
-
state:
|
8
|
+
state: {
|
9
|
+
orgId: string | number;
|
10
|
+
currentSessionItem: AnyObject;
|
11
|
+
id: string;
|
12
|
+
userInfo: AnyObject;
|
13
|
+
msgList: AnyObject[];
|
14
|
+
currentMsg: AnyObject;
|
15
|
+
isAppendMsg: boolean;
|
16
|
+
sessionList: AnyObject[];
|
17
|
+
isChangeSession: boolean;
|
18
|
+
updateSessionItem: AnyObject;
|
19
|
+
isUpdateSession: boolean;
|
20
|
+
currentReferenceMsg: AnyObject | null;
|
21
|
+
currentReEditMsg: AnyObject | null;
|
22
|
+
showVideo: boolean;
|
23
|
+
currentAVMsg: AnyObject;
|
24
|
+
currentGroupUser: AnyObject[];
|
25
|
+
showMultipleVideo: boolean;
|
26
|
+
};
|
9
27
|
sendMessage: (message: {
|
10
28
|
chatType?: string | undefined;
|
11
29
|
content: AnyObject;
|
12
30
|
receiver?: string | undefined;
|
13
31
|
}) => Promise<void>;
|
14
32
|
isGroupChat: import("vue").ComputedRef<boolean>;
|
33
|
+
isEnded: import("vue").ComputedRef<boolean>;
|
15
34
|
showEmoji: Ref<boolean>;
|
16
35
|
content: Ref<string>;
|
17
36
|
commonEmoticons: Ref<string[]>;
|
@@ -56,6 +75,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
56
75
|
type: import("vue").PropType<AnyObject[]>;
|
57
76
|
default: () => never[];
|
58
77
|
};
|
78
|
+
disabled: {
|
79
|
+
type: BooleanConstructor;
|
80
|
+
default: boolean;
|
81
|
+
};
|
59
82
|
}, {
|
60
83
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
61
84
|
title: {
|
@@ -77,11 +100,33 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
77
100
|
type: import("vue").PropType<AnyObject[]>;
|
78
101
|
default: () => never[];
|
79
102
|
};
|
103
|
+
disabled: {
|
104
|
+
type: BooleanConstructor;
|
105
|
+
default: boolean;
|
106
|
+
};
|
80
107
|
}>> & {
|
81
108
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
82
109
|
}>>;
|
83
110
|
emit: (event: "comfirm", ...args: any[]) => void;
|
84
|
-
state:
|
111
|
+
state: {
|
112
|
+
orgId: string | number;
|
113
|
+
currentSessionItem: AnyObject;
|
114
|
+
id: string;
|
115
|
+
userInfo: AnyObject;
|
116
|
+
msgList: AnyObject[];
|
117
|
+
currentMsg: AnyObject;
|
118
|
+
isAppendMsg: boolean;
|
119
|
+
sessionList: AnyObject[];
|
120
|
+
isChangeSession: boolean;
|
121
|
+
updateSessionItem: AnyObject;
|
122
|
+
isUpdateSession: boolean;
|
123
|
+
currentReferenceMsg: AnyObject | null;
|
124
|
+
currentReEditMsg: AnyObject | null;
|
125
|
+
showVideo: boolean;
|
126
|
+
currentAVMsg: AnyObject;
|
127
|
+
currentGroupUser: AnyObject[];
|
128
|
+
showMultipleVideo: boolean;
|
129
|
+
};
|
85
130
|
setCurrentSessionItem: (item: AnyObject) => void;
|
86
131
|
listRef: Ref<any>;
|
87
132
|
keyword: Ref<string>;
|
@@ -141,11 +186,16 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
141
186
|
type: import("vue").PropType<AnyObject[]>;
|
142
187
|
default: () => never[];
|
143
188
|
};
|
189
|
+
disabled: {
|
190
|
+
type: BooleanConstructor;
|
191
|
+
default: boolean;
|
192
|
+
};
|
144
193
|
}>> & {
|
145
194
|
onComfirm?: ((...args: any[]) => any) | undefined;
|
146
195
|
}, {
|
147
196
|
title: string;
|
148
197
|
defaultValue: AnyObject[];
|
198
|
+
disabled: boolean;
|
149
199
|
mode: string;
|
150
200
|
disabledIds: string[];
|
151
201
|
}>;
|
@@ -1 +1 @@
|
|
1
|
-
import{
|
1
|
+
import{createElementVNode as e,defineComponent as n,ref as t,computed as o,watch as i,withDirectives as s,openBlock as a,createElementBlock as r,normalizeStyle as c,unref as l,toDisplayString as u,createVNode as d,createCommentVNode as f,withCtx as m,Fragment as g,renderList as p,createBlock as h,createTextVNode as y,mergeProps as w,renderSlot as v,vShow as M}from"vue";import{NIcon as k,NTooltip as _,NPopover as C,NButton as E,NUpload as I,NUploadTrigger as T}from"naive-ui";import b from"./ChatAdd.vue.js";import{useData as x}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as j,AV_STATUS as L}from"../constants/index.js";import{uploadFileApi as z}from"../api/index.js";import{simplifyMessage as O,base64ToFile as R}from"../utils/index.js";import{xor as D,uniq as q,trim as $,cloneDeep as A}from"lodash-es";import"trtc-sdk-v5";import{emojis as H}from"../utils/emoji.js";import{CloseCircleOutline as J,CallOutline as V,VideocamOutline as B}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),se=e("i",{class:"chat--iconfont chat--icon-folder"},null,-1),ae=["contenteditable"],re={class:"btn-box"},ce=e("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var le=n({__name:"ChatFooter",setup(n){const U=t(),{state:G,sendMessage:le,isGroupChat:ue,isEnded:de}=x(),fe=t(!1),me=t(""),ge=F("commonEmoticons",[]),pe=o((()=>({options:G.currentGroupUser,defaultValue:[G.userInfo]}))),he=o((()=>!me.value.replace(/( |\s|<br>)+/g,"")));function ye(e,n=[]){const t=K(),o=[],i=n.length>0;G.showVideo||G.showMultipleVideo||(i?(o.push(...D(n,[G.userInfo.id])),Object.assign(G.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:t,chatMessageType:e}),G.showMultipleVideo=!0):le({content:{chatMessageType:e,msg:"",avStatus:L.IN_CALL}}))}function we(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(),Ce()))}function ve(){var e;me.value=(null==(e=U.value)?void 0:e.innerHTML)||""}function Me(e){var n;ge.value.unshift(e),ge.value=q(ge.value).slice(0,26),null==(n=U.value)||n.focus(),document.execCommand("insertHTML",!1,`<img data-msg=${e} data-type=${j.EMOJI} class="emoji--min" src=${H.findEmoji(e)} />`)}async function ke(e){const n=new FormData;return n.append("sender",G.userInfo.id),n.append("file",e),await z(n)}async function _e(e,n){const{file:t,name:o}=e.file,i=await ke(t);if(!i)return console.log("上传失败");Ee({chatMessageType:n,msg:n===j.FILE?o:i,url:i})}async function Ce(){const{innerHTML:e="",innerText:n="",outerText:t=""}=U.value||{};if(he.value)return console.log("请输入内容");let o=j.TEXT,i="";if(e){const t=e.match(/<img[^>]*>/gi),s=(t||[]).length;if(n&&0===s)i=n;else if(n||1!==s){if(o=j.BLEND,i=e,null==t?void 0:t.length)for(let e=0;e<s;e++)if(t[e].includes(`data-type="${j.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 R(n[1]);if(e){const t=await ke(e);i=i.replace(n[1],t||"")}}}}else if(e.includes(j.EMOJI)){o=j.EMOJI;const n=e.match(/data-msg\s*=\s*"([^"]*)"/);n&&(i=n[1])}else{o=j.IMAGE;const n=e.match(/src\s*=\s*"([^"]*)"/);if(n){const e=await R(n[1]);if(e){const n=await ke(e);n&&(i=n)}}}}else i=$(n);i&&Ee({msg:i,chatMessageType:o,origin:"btn"})}async function Ee(e){const{chatMessageType:n=j.TEXT,msg:t,url:o,origin:i=""}=e,s={msg:t,chatMessageType:n};n===j.FILE&&(s.fileUrl=o),"btn"===i&&Ie(),G.currentReferenceMsg&&([j.TEXT,j.EMOJI,j.BLEND].includes(n)&&(s.referenceContent=A(G.currentReferenceMsg)),G.currentReferenceMsg=null),le({content:s})}function Ie(){U.value.innerHTML="",me.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===j.TEXT?t:`<img data-msg=${t} data-type=${j.EMOJI} class="emoji--min" src=${H.findEmoji(t)} />`;document.execCommand("insertHTML",!1,o),G.currentReEditMsg=null}})),i((()=>G.id),(e=>{e&&Ie()})),(n,t)=>s((a(),r("section",{class:"chat-footer",style:c({cursor:l(G).id?"default":"not-allowed"})},[l(G).currentReferenceMsg?(a(),r("div",N,[e("div",X,[e("span",null,u(l(G).currentReferenceMsg.senderName)+":",1),e("pre",{innerHTML:l(O)(l(G).currentReferenceMsg.content)},null,8,S)]),d(l(k),{component:l(J),onClick:t[0]||(t[0]=()=>l(G).currentReferenceMsg=null)},null,8,["component"])])):f("v-if",!0),e("div",P,[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(C),{"content-class":"emoji-content",class:"emoji-wrapper",show:fe.value,"onUpdate:show":t[1]||(t[1]=e=>fe.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny"},{icon:m((()=>[Q])),_:1})])),default:m((()=>[l(ge).length>0?(a(),r(g,{key:0},[W,e("div",Y,[(a(!0),r(g,null,p(l(ge),(n=>(a(),h(l(_),{key:n,"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:()=>Me(n)},{icon:m((()=>[e("img",{src:l(H).findEmoji(n)},null,8,Z)])),_:2},1032,["onClick"])])),default:m((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])],64)):f("v-if",!0),ee,e("div",ne,[(a(!0),r(g,null,p(l(H).default,(([n,t])=>(a(),h(l(_),{key:n,"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:()=>Me(n)},{icon:m((()=>[e("img",{src:t},null,8,te)])),_:2},1032,["onClick"])])),default:m((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])])),_:1},8,["show"])])),default:m((()=>[y(" 表情 ")])),_:1}),d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:t[2]||(t[2]=()=>Ee({chatMessageType:l(j).EMOJI,msg:0}))},{icon:m((()=>[oe])),_:1})])),default:m((()=>[y(" 点赞 ")])),_:1}),d(l(I),{abstract:"",multiple:"",accept:"image/*",onChange:t[3]||(t[3]=e=>_e(e,l(j).IMAGE))},{default:m((()=>[d(l(T),{abstract:""},{default:m((({handleClick:e})=>[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[ie])),_:2},1032,["onClick"])])),default:m((()=>[y(" 上传图片 ")])),_:2},1024)])),_:1})])),_:1}),d(l(I),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:t[4]||(t[4]=e=>_e(e,l(j).FILE))},{default:m((()=>[d(l(T),{abstract:""},{default:m((({handleClick:e})=>[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[se])),_:2},1032,["onClick"])])),default:m((()=>[y(" 上传文件 ")])),_:2},1024)])),_:1})])),_:1}),l(G).userInfo.sdkAppID?(a(),r(g,{key:0},[l(ue)?(a(),r(g,{key:0},[d(b,w(l(pe),{onComfirm:t[5]||(t[5]=e=>ye(l(j).AUDIO,e))}),{trigger:m((()=>[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny"},{icon:m((()=>[d(l(k),{size:"18",component:l(V)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 语音通话 ")])),_:1})])),_:1},16),d(b,w(l(pe),{onComfirm:t[6]||(t[6]=e=>ye(l(j).VIDEO,e))}),{trigger:m((()=>[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny"},{icon:m((()=>[d(l(k),{size:"20",component:l(B)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 视频会议 ")])),_:1})])),_:1},16)],64)):(a(),r(g,{key:1},[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:t[7]||(t[7]=()=>ye(l(j).AUDIO))},{icon:m((()=>[d(l(k),{size:"18",component:l(V)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 语音通话 ")])),_:1}),d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:t[8]||(t[8]=()=>ye(l(j).VIDEO))},{icon:m((()=>[d(l(k),{size:"20",component:l(B)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 视频通话 ")])),_:1})],64))],64)):f("v-if",!0),v(n.$slots,"footer")]),s(e("div",{ref_key:"inputRef",ref:U,class:"input-box",contenteditable:!l(de),onKeydown:we,onInput:ve},null,40,ae),[[M,l(G).id]]),e("div",re,[ce,d(l(E),{type:"primary",round:"",disabled:l(he),onClick:Ce},{default:m((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.60"))||"发送")]})),_:1},8,["disabled"])])],4)),[[M,l(G).id]])}});export{le as default};
|