cnhis-design-vue 3.2.7-beta.21 → 3.2.7-beta.23
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/README.md +87 -87
- package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
- package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
- package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
- package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
- package/es/components/callback/src/components/render/popupMaps.d.ts +14 -0
- package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
- package/es/components/form-config/index.d.ts +34 -0
- package/es/components/form-config/src/FormConfig.vue.d.ts +34 -0
- package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +14 -0
- package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +17 -0
- package/es/components/form-render/index.d.ts +14 -0
- package/es/components/form-render/src/FormRender.vue.d.ts +14 -0
- package/es/components/form-render/src/FormRender.vue2.js +1 -1
- package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +14 -0
- package/es/components/form-render/src/components/renderer/formItem.js +1 -1
- package/es/components/form-render/src/components/renderer/lineBar/FormCollapse.vue.d.ts +1 -0
- package/es/components/form-render/src/components/renderer/lineBar/index.d.ts +1 -0
- package/es/components/form-render/src/hooks/useFieldNormalize.d.ts +2 -0
- package/es/components/form-render/src/types/index.d.ts +1 -0
- package/es/components/iho-chat/index.d.ts +1 -1
- package/es/components/iho-chat/src/Index.vue.d.ts +1 -1
- package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +1 -1
- package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
- package/es/components/info-header/index.d.ts +33 -0
- package/es/components/info-header/src/InfoHeader.vue.d.ts +33 -0
- package/es/components/info-header/src/components/infoDescription/DescriptionItem.vue.d.ts +1 -0
- package/es/components/info-header/src/components/infoDescription/DescriptionList.vue.d.ts +1 -0
- package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +15 -0
- package/es/components/info-header/src/components/infoDescription/index.vue2.js +1 -1
- package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +14 -0
- package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
- package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
- package/es/components/shortcut-setter/index.d.ts +14 -0
- package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +14 -0
- package/es/env.d.ts +25 -25
- package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
- package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
- package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
- package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
- package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
- package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
- package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
- package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
- package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
- package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
- package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
- package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
- package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
- package/es/shared/assets/img/failure.png.js +1 -1
- package/es/shared/assets/img/no-permission.png.js +1 -1
- package/es/shared/assets/img/nodata.png.js +1 -1
- package/es/shared/assets/img/notfound.png.js +1 -1
- package/es/shared/assets/img/qr.png.js +1 -1
- package/es/shared/assets/img/success.png.js +1 -1
- package/es/shared/assets/img/table_style_2.png.js +1 -1
- package/es/shared/assets/img/video.png.js +1 -1
- package/es/shared/assets/img/video_default_cover.png.js +1 -1
- package/es/shared/assets/img/xb_big.png.js +1 -1
- package/es/shared/assets/img/xb_small.png.js +1 -1
- package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
- package/es/shared/package.json.js +1 -1
- package/es/shared/utils/fabricjs/index.d.ts +6823 -0
- package/es/shared/utils/tapable/index.d.ts +139 -0
- package/package.json +2 -2
@@ -202,6 +202,10 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{}, {
|
|
202
202
|
type: BooleanConstructor;
|
203
203
|
default: boolean;
|
204
204
|
};
|
205
|
+
feedbackType: {
|
206
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
207
|
+
default: string;
|
208
|
+
};
|
205
209
|
}, {
|
206
210
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
207
211
|
fieldList: {
|
@@ -397,6 +401,10 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{}, {
|
|
397
401
|
type: BooleanConstructor;
|
398
402
|
default: boolean;
|
399
403
|
};
|
404
|
+
feedbackType: {
|
405
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
406
|
+
default: string;
|
407
|
+
};
|
400
408
|
}>> & {
|
401
409
|
onFormChange?: ((...args: any[]) => any) | undefined;
|
402
410
|
onScroll?: ((...args: any[]) => any) | undefined;
|
@@ -569,6 +577,7 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{}, {
|
|
569
577
|
linebarDirection: "horizontal" | "vertical";
|
570
578
|
linebarTextDirection: "horizontal" | "vertical";
|
571
579
|
autoWidth: number | boolean;
|
580
|
+
feedbackType: "default" | "tooltip";
|
572
581
|
}>) => Record<string, import("@formily/json-schema").Stringify<{
|
573
582
|
[key: symbol]: any;
|
574
583
|
[key: `x-${string}`]: any;
|
@@ -948,6 +957,10 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{}, {
|
|
948
957
|
type: BooleanConstructor;
|
949
958
|
default: boolean;
|
950
959
|
};
|
960
|
+
feedbackType: {
|
961
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
962
|
+
default: string;
|
963
|
+
};
|
951
964
|
}>> & {
|
952
965
|
onFormChange?: ((...args: any[]) => any) | undefined;
|
953
966
|
onScroll?: ((...args: any[]) => any) | undefined;
|
@@ -978,6 +991,7 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{}, {
|
|
978
991
|
linebarDirection: "horizontal" | "vertical";
|
979
992
|
linebarTextDirection: "horizontal" | "vertical";
|
980
993
|
autoWidth: number | boolean;
|
994
|
+
feedbackType: "default" | "tooltip";
|
981
995
|
operationalFormInit: boolean;
|
982
996
|
incrementalRender: boolean;
|
983
997
|
}>;
|
@@ -197,6 +197,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
197
197
|
type: BooleanConstructor;
|
198
198
|
default: boolean;
|
199
199
|
};
|
200
|
+
feedbackType: {
|
201
|
+
type: PropType<"default" | "tooltip">;
|
202
|
+
default: string;
|
203
|
+
};
|
200
204
|
}, {
|
201
205
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
202
206
|
fieldList: {
|
@@ -392,6 +396,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
392
396
|
type: BooleanConstructor;
|
393
397
|
default: boolean;
|
394
398
|
};
|
399
|
+
feedbackType: {
|
400
|
+
type: PropType<"default" | "tooltip">;
|
401
|
+
default: string;
|
402
|
+
};
|
395
403
|
}>> & {
|
396
404
|
onFormChange?: ((...args: any[]) => any) | undefined;
|
397
405
|
onScroll?: ((...args: any[]) => any) | undefined;
|
@@ -564,6 +572,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
564
572
|
linebarDirection: "horizontal" | "vertical";
|
565
573
|
linebarTextDirection: "horizontal" | "vertical";
|
566
574
|
autoWidth: number | boolean;
|
575
|
+
feedbackType: "default" | "tooltip";
|
567
576
|
}>) => Record<string, import("@formily/vue").Stringify<{
|
568
577
|
[key: symbol]: any;
|
569
578
|
[key: `x-${string}`]: any;
|
@@ -943,6 +952,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
943
952
|
type: BooleanConstructor;
|
944
953
|
default: boolean;
|
945
954
|
};
|
955
|
+
feedbackType: {
|
956
|
+
type: PropType<"default" | "tooltip">;
|
957
|
+
default: string;
|
958
|
+
};
|
946
959
|
}>> & {
|
947
960
|
onFormChange?: ((...args: any[]) => any) | undefined;
|
948
961
|
onScroll?: ((...args: any[]) => any) | undefined;
|
@@ -973,6 +986,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
973
986
|
linebarDirection: "horizontal" | "vertical";
|
974
987
|
linebarTextDirection: "horizontal" | "vertical";
|
975
988
|
autoWidth: number | boolean;
|
989
|
+
feedbackType: "default" | "tooltip";
|
976
990
|
operationalFormInit: boolean;
|
977
991
|
incrementalRender: boolean;
|
978
992
|
}>;
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as o,provide as t,computed as r,nextTick as a,onUnmounted as s,openBlock as i,createBlock as l,unref as n,mergeProps as m,withCtx as p,createElementBlock as
|
1
|
+
import{defineComponent as e,ref as o,provide as t,computed as r,nextTick as a,onUnmounted as s,openBlock as i,createBlock as l,unref as n,mergeProps as m,withCtx as p,createElementBlock as d,createVNode as u,isRef as c,Fragment as f,renderList as h,createCommentVNode as y,createElementVNode as g,normalizeStyle as v,toDisplayString as b,renderSlot as j}from"vue";import{useTheme as k}from"../../../shared/hooks/useTheme.js";import{useElementSize as C}from"@vueuse/core";import"date-fns";import{isNumber as F,cloneDeep as S}from"lodash-es";import"@vue/shared";import"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{NForm as w,NTabs as x,NTabPane as B,NConfigProvider as A}from"naive-ui";import{useVersion as L}from"../../../shared/hooks/useVersion.js";import{createForm as R,onFormMount as H,onFieldValueChange as O,onFieldMount as T,onFieldUnmount as I,onFieldReact as V}from"@formily/core";import{Path as N}from"@formily/path";import{FormProvider as _,FormConsumer as D}from"@formily/vue";import{InjectionFormColumnWidth as W,InjectionFormLifeCycleCaller as U,InjectionFormGraph as E}from"./constants/index.js";import{createObjSchema as q}from"./utils/schema.js";import{useAnchor as P}from"./hooks/useAnchor.js";import"../index.js";import{useComplexOptionsSpan as G}from"./hooks/useComplexOptions.js";import{useFieldListAdaptor as M}from"./hooks/useFieldListAdaptor.js";import"../../../shared/utils/tapable/SyncHook.js";import"../../../shared/utils/tapable/SyncBailHook.js";import"../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../shared/utils/tapable/SyncLoopHook.js";import"../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import{useFieldVisitor as K}from"./hooks/useFieldVisitor.js";import{useFormContext as z}from"./hooks/useFormContext.js";import{useFormDomEvent as J,useFormExposeEvent as Q}from"./hooks/useFormEvent.js";import{useFormGraph as $}from"./hooks/useFormGraph.js";import{useFormRenderLifeCycle as X}from"./hooks/useFormRenderLifeCycle.js";import{validateMessageLocale as Y}from"./hooks/useFormValidator.js";import{useLowCodeEvent as Z}from"./hooks/useLowCodeEvent.js";import{useLowCodeReactions as ee}from"./hooks/useLowCodeReactions.js";import{useNuiThemeOverrides as oe}from"./hooks/useNuiThemeOverrides.js";import{useOperationalForm as te}from"./hooks/useOperationalForm.js";import{useWordbookSetting as re}from"./hooks/useWordbookSetting.js";import{useNewLowCodeReactions as ae}from"./hooks/useNewLowCodeReactions.js";const se={key:0,style:{height:"54px"}},ie={style:{"white-space":"pre"}};var le=e({__name:"FormRender",props:{fieldList:{type:Array},initialData:{type:Object,default:()=>({})},fieldVisitor:{type:Object},column:{type:Number,default:24},maxHeight:{type:[Number,String],default:""},anchor:{type:Boolean,default:!1},parallelism:{type:Number,default:5},businessFormatter:{type:Function},schema:{type:Object},components:{type:Object,default:()=>({})},scope:{type:Object,default:()=>({})},annotation:{type:Object},annotationShortcuts:{type:Array},consumer:{type:Boolean,default:!1},uuid:{type:String},lifeCycle:{type:Object},requestInstance:{type:Object},enterToNextWidget:{type:[Boolean,Function],default:!0},autoExpand:Boolean,lowCodeReactions:{type:Array},newLowCodeReactions:{type:Array},operationalForm:{type:Array},dateOperationalForm:{type:Object},operationalFormInit:{type:Boolean,default:!0},linebarAutoHidden:{type:Boolean},bordered:{type:[Boolean,String],default:!0},labelPlacementOverwrite:Boolean,outBordered:{type:Boolean,default:!1},uniqueCacheData:{type:Boolean,default:!1},forceClearable:Boolean,wordSplitFilter:{type:Boolean,default:!0},selectMode:Boolean,selectedFields:{type:Array},linebarDirection:{type:String,default:"vertical"},linebarTextDirection:{type:String,default:"horizontal"},linebarWidth:{type:[Number,String],default:120},autoWidth:{type:[Boolean,Number],default:!1},incrementalRender:{type:Boolean,default:!1},feedbackType:{type:String,default:"default"}},emits:["formChange","annotationChange","scroll","update:selectedFields","linebarChange","ready"],setup(e,{expose:le,emit:ne}){const me=e,pe=k(),{nuiThemeOverrides:de}=oe();Y();const ue=o(),{width:ce}=C(ue);t(W,r((()=>ce.value?(ce.value-16*(me.column-1))/24:0)));const fe=r((()=>F(me.maxHeight)?me.maxHeight+"px":me.maxHeight)),{SchemaField:he,businessCollector:ye,formItemDepsCollector:ge,changeContextCollector:ve,asyncQueue:be,formUUID:je}=z(me,ne),{anchorBarRef:ke,currentAnchor:Ce,updateAnchorList:Fe,anchorIdList:Se,onScroll:we}=P(me,ne,ue,ge),{callLifeCycle:xe}=X(me);t(U,xe),xe("onSetup");const{observeFormGraph:Be,setGraph:Ae,removeGraph:Le}=$();t(E,Be);const{lowCodeEventTrigger:Re}=Z(),He=o(!0),Oe=R({initialValues:me.initialData,effects(e){const o={};H((()=>{Object.assign(o,S(e.values))})),O("*",(t=>{const r=N.getIn(o,t.path);N.setIn(o,t.path,t.value);const a=t.props.name.toString();ye.trigger(e,a),ge.trigger(t.path),He.value&&ne("formChange",{fieldInstance:t,fieldKey:a,oldValue:r,fieldName:t.title,value:t.value,context:ve.getContext(a,t.value)}),Re(t),Te(a),Ie(a),Ve.trigger(a),Ne.trigger(a,t.value)})),T("*",Ae),T("*",(e=>{const o=e.props.name.toString();Te(o),Ie(o),me.operationalFormInit&&Ve.trigger(o)})),I("*",Le),me.anchor&&V("*",Fe)}}),{lowCodeReactionsHandler:Te}=ee(r((()=>me.lowCodeReactions)),Oe),{newLowCodeReactionsHandler:Ie}=ae(r((()=>me.newLowCodeReactions)),Oe),Ve=te(me,Oe),Ne=re().create(Oe,ve),{schemaAdaptor:_e}=M(ye,me.lifeCycle);let De=me.fieldList||[],We=[];const Ue=r((()=>{let e=!1;const o=me.schema?me.schema:me.fieldList?(De!==me.fieldList&&0!==De.length||(e=!0),De=K().traverse(S(me.fieldList),me.fieldVisitor),q(_e(De,me))):q({});return me.incrementalRender&&e&&(We=[],Object.values(o.properties).forEach((e=>{var o;"visible"===e["x-display"]&&"LINEBAR"===e["x-component"]&&!1!==(null==(o=e["x-component-props"])?void 0:o.show)&&(We.push(e),e["x-component-props"].show=!1)})),Ee()),o}));function Ee(){We.length&&setTimeout((()=>{const e=We.shift();e&&(ge.trigger(N.parse(e.name),!0),Oe.setFieldState(e.name,(e=>{e.componentProps.show=!0})),We.length?Ee():a().then((()=>{ne("ready")})))}),300)}const{onKeydown:qe}=J({formModel:Oe,formRenderRef:ue,props:me,formUUID:je}),{clearSpan:Pe}=G();s((()=>Pe(je)));const Ge=Q({formModel:Oe,formRenderRef:ue,formItemDepsCollector:ge,businessCollector:ye,wordbookSettingHandler:Ne,operationalFormHandler:Ve,getFieldList:()=>De,formUUID:je,changeContextCollector:ve,emitFormChange:He});return le({formModel:Oe,validate:(e="*",o={})=>Ge.validate(e,o),getFormValues:(e=!0)=>Ge.getFormValues(e),setFormValues:async(e,o={})=>Ge.setFormValues(e,o),setFieldState(e,o){Ge.setFieldState(e,o)},resetFields(e="*"){Ge.resetFields(e)},queryWidget:async e=>Ge.queryWidget(e),getFieldList:()=>De,applySelectedSetting:e=>Ge.applySelectedSetting(e),async reload(){console.error("reload function is abstract,it should be overwrite!")},async optionInited(e={}){if(await a(),be.activeTasks)return new Promise((o=>{var t;const r=()=>{o(),be.onActiveTaskChange=null};be.onActiveTaskChange=()=>{be.activeTasks||r()},setTimeout(r,null!=(t=e.timeout)?t:5e3)}))},getTextFormValues:()=>Ge.getTextFormValues()}),(o,t)=>(i(),l(n(w),m({class:["form-render",{"form-render--out-border":e.outBordered}],"require-mark-placement":"left",style:n(pe)},n(L)(),{uuid:n(je)}),{default:p((()=>[e.anchor?(i(),d("section",se,[u(n(x),{value:n(Ce),"onUpdate:value":t[0]||(t[0]=e=>c(Ce)?Ce.value=e:null),type:"line",ref_key:"anchorBarRef",ref:ke},{default:p((()=>[(i(!0),d(f,null,h(n(Se),(e=>(i(),l(n(B),{name:e.name,tab:e.title,key:e.name},null,8,["name","tab"])))),128))])),_:1},8,["value"])])):y("v-if",!0),u(n(A),{"theme-overrides":n(de)},{default:p((()=>[g("section",{class:"form-render__wrapper",style:v({"--column":e.column,"--form-height":n(fe)}),ref_key:"formRenderRef",ref:ue,onScroll:t[1]||(t[1]=(...e)=>n(we)&&n(we)(...e)),onKeydownCapture:t[2]||(t[2]=(...e)=>n(qe)&&n(qe)(...e))},[u(n(_),{form:n(Oe)},{default:p((()=>[u(n(he),{schema:n(Ue)},null,8,["schema"]),e.consumer?(i(),l(n(D),{key:0},{default:p((({form:e})=>[g("div",ie,b(JSON.stringify(e.values,null,2)),1)])),_:1})):y("v-if",!0),j(o.$slots,"default")])),_:3},8,["form"])],36)])),_:3},8,["theme-overrides"])])),_:3},16,["class","style","uuid"]))}});export{le as default};
|
@@ -200,6 +200,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
200
200
|
type: BooleanConstructor;
|
201
201
|
default: boolean;
|
202
202
|
};
|
203
|
+
feedbackType: {
|
204
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
205
|
+
default: string;
|
206
|
+
};
|
203
207
|
}, {
|
204
208
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
205
209
|
fieldList: {
|
@@ -395,6 +399,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
395
399
|
type: BooleanConstructor;
|
396
400
|
default: boolean;
|
397
401
|
};
|
402
|
+
feedbackType: {
|
403
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
404
|
+
default: string;
|
405
|
+
};
|
398
406
|
}>> & {
|
399
407
|
onFormChange?: ((...args: any[]) => any) | undefined;
|
400
408
|
onScroll?: ((...args: any[]) => any) | undefined;
|
@@ -567,6 +575,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
567
575
|
linebarDirection: "horizontal" | "vertical";
|
568
576
|
linebarTextDirection: "horizontal" | "vertical";
|
569
577
|
autoWidth: number | boolean;
|
578
|
+
feedbackType: "default" | "tooltip";
|
570
579
|
}>) => Record<string, import("@formily/json-schema").Stringify<{
|
571
580
|
[key: symbol]: any;
|
572
581
|
[key: `x-${string}`]: any;
|
@@ -946,6 +955,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
946
955
|
type: BooleanConstructor;
|
947
956
|
default: boolean;
|
948
957
|
};
|
958
|
+
feedbackType: {
|
959
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
960
|
+
default: string;
|
961
|
+
};
|
949
962
|
}>> & {
|
950
963
|
onFormChange?: ((...args: any[]) => any) | undefined;
|
951
964
|
onScroll?: ((...args: any[]) => any) | undefined;
|
@@ -976,6 +989,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
976
989
|
linebarDirection: "horizontal" | "vertical";
|
977
990
|
linebarTextDirection: "horizontal" | "vertical";
|
978
991
|
autoWidth: number | boolean;
|
992
|
+
feedbackType: "default" | "tooltip";
|
979
993
|
operationalFormInit: boolean;
|
980
994
|
incrementalRender: boolean;
|
981
995
|
}>;
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,inject as l,computed as t,ref as r,onUnmounted as o,createVNode as n,mergeProps as a,
|
1
|
+
import{defineComponent as e,inject as l,computed as t,ref as r,onUnmounted as o,createVNode as n,mergeProps as a,unref as i,withModifiers as d,createTextVNode as u}from"vue";import{arrayed as s,getStringWidth as m,widthAppend as f}from"../../../../../shared/utils/index.js";import{isVoidField as v}from"@formily/core";import{observe as c,autorun as p}from"@formily/reactive";import{connect as b,mapProps as h}from"@formily/vue";import{useDebounceFn as y}from"@vueuse/core";import{isString as g,isArray as _,isObject as k,isNumber as x,isFunction as I,uniq as F}from"lodash-es";import{NFormItem as w,NTooltip as R,NButton as j}from"naive-ui";import M from"../../../../annotation-edit/index.js";import"../../../index.js";import P from"../tooltipMessage.vue.js";import{InjectionFormGlobalProps as O,InjectionFormGlobalEmit as S,InjectionFormUUID as E,InjectionFormGraph as L,InjectionAnnotation as T,InjectionAnnotationShortcuts as C,InjectionFormColumnWidth as W}from"../../constants/index.js";import{useComplexOptionsSpan as A}from"../../hooks/useComplexOptions.js";import{validateMessageParser as N,editorUnescape as U}from"../../utils/index.js";import{dotEscape as q,createFieldAddressId as B}from"../../utils/schema.js";import{useFormField as K}from"../../hooks/useFormField.js";const D=b(e({name:"FormRenderItem",props:{label:String,propertyKey:String,remark:String,span:{type:Number,default:6},suffixFields:{type:Array},labelRender:Function,annotation:{},isOptionChildField:Boolean,feedback:String,showFeedback:{type:Boolean,default:void 0},fieldItem:{type:Object}},setup(e,{slots:s,attrs:b}){const h=l(O),N=l(S),{field:D,fieldKey:G,fieldAddress:H}=K(),V=l(E),$=t((()=>q(`${V}-${H.value}`))),z=r(!1);if(v(D.value)&&_(e.suffixFields)){const t=l(L);o(c(t,y((()=>{v(D.value)&&_(e.suffixFields)&&(z.value=e.suffixFields.some((e=>{const l=D.value.form.query(e).take();return l&&Reflect.get(l,"required")})))}),100)))}else o(p((()=>{z.value=Reflect.get(D.value,"required")})));const Y=l(T),J=t({get(){var l,t;return null!=(t=null==(l=Y.value)?void 0:l[e.propertyKey])?t:""},set(l){Y.value={property:e.propertyKey,value:l}}}),Q=l(C);const X=t((()=>{var l;const t={color:null==(l=e.fieldItem)?void 0:l.labelColor};return k(b.labelStyle)&&Object.assign(t,b.labelStyle),t})),Z=t((()=>Y.value&&!1!==e.annotation)),ee=t((()=>{var l,t;return g(null==(l=e.fieldItem)?void 0:l.editor_title)&&e.fieldItem.editor_title&&"POPUP_ALERT"===(null==(t=e.fieldItem)?void 0:t.editor_title_mode)})),le=r(!1);const te=t((()=>e.label&&" "!==e.label)),re=t((()=>{let l=0;return Z.value&&(l+=18),e.remark&&(l+=18),ee.value&&(l+=32),l})),oe=l(O,{}),ne=t((()=>{var l;const t=null==(l=e.fieldItem)?void 0:l.bordered;return null==t?oe.bordered:t})),ae=l("n-form",{}),ie=t((()=>{var e,l,t,r;if("left"!==(null!=(l=b.labelPlacement)?l:null==(e=ae.props)?void 0:e.labelPlacement))return"";let o=null!=(r=b.labelWidth)?r:null==(t=ae.props)?void 0:t.labelWidth;return o&&"auto"!==o?(o=parseInt(o+""),isNaN(o)||!x(o)?"":o-12-re.value-(z.value?11:0)):""})),de=t((()=>I(e.labelRender)?"":g(e.label)?e.label:""));function ue(){return te.value?n("section",{class:"form-render__formItemLabel"},[n("span",{class:"form-render__formItemLabel--text",style:{marginRight:f(re.value),maxWidth:f(ie.value)},title:de.value},[I(e.labelRender)?e.labelRender(e.label):e.label]),re.value?n("section",{class:"form-render__formItemLabel--operation"},[e.remark?n("div",{class:"form-render__formItemLabel--tooltip"},[n(P,{message:e.remark},null)]):null,Z.value?n(M,{class:"form-render__formItemLabel--annotation",modelValue:J.value,"onUpdate:modelValue":e=>J.value=e,shortcuts:i(Q)},null):null,ee.value?n(R,{zIndex:3e3,raw:!0,showArrow:!1,trigger:"manual",placement:"top-start",show:le.value,contentStyle:"background-color:white;color:rgb(51, 54, 57);padding:8px;position:relative;"},{trigger:()=>n(j,{onClick:d((()=>le.value=!le.value),["stop","prev"]),text:!0,type:"primary"},{default:()=>[n("span",{style:"display:inline-block;margin-left:4px"},[u("提示")])]}),default:()=>{var l,t;return[n("div",{innerHTML:U(null!=(t=null==(l=e.fieldItem)?void 0:l.editor_title)?t:"")},null),n(j,{text:!0,onClick:()=>le.value=!le.value,style:"position:absolute;right:2px;top:2px;line-height:1;height:12px;transform:scaleY(0.9)"},{default:()=>[u("x")]})]}}):null]):null]):null}const se=t((()=>{let l=re.value;return z.value&&(l+=11),g(e.label)&&(l+=ie.value||m(e.label)),l})),me=l(W),{getSpan:fe}=A();function ve(){var l,t,r,o,n,a,d;const u="inner"===(null==(l=e.fieldItem)?void 0:l.childWidthMode)?e.span:fe(V,D.value.address,!1)+e.span;if("left"!==(null!=(r=b.labelPlacement)?r:null==(t=ae.props)?void 0:t.labelPlacement)||!i(me)||!(null==h?void 0:h.autoWidth)||"INPUT_GROUP"===(null==(n=null==(o=D.value.parent)?void 0:o.component)?void 0:n[0]))return u;if("INPUT_GROUP"===(null==(d=null==(a=D.value.parent)?void 0:a.component)?void 0:d[0]))return u;const s=16+me.value;let m=u*s-16-se.value;const f=x(null==h?void 0:h.autoWidth)?h.autoWidth:120;let v=u;for(;m<f&&v<12;)v++,m+=s;return v}function ce(){var l;return"tooltip"!==(null==h?void 0:h.feedbackType)?null==(l=s.default)?void 0:l.call(s):n(R,{to:"body",trigger:"manual",show:!!e.feedback,raw:!0,showArrow:!1,placement:"top-start",contentStyle:"background-color:#e88080;color:white;padding:8px;border-radius:4px"},{trigger(){var e;return null==(e=s.default)?void 0:e.call(s)},default:()=>e.feedback})}function pe(){var l,t,r;const o=null==(l=e.fieldItem)?void 0:l.editor_title,a=!(null==(t=e.fieldItem)?void 0:t.editor_title_mode)||"EMBEDDED_FORM"===(null==(r=e.fieldItem)?void 0:r.editor_title_mode);return g(o)&&o&&a?n("section",{style:"display:flex;flex-direction:column;gap:4px"},[ce(),n("div",{innerHTML:U(o)},null)]):ce()}function be(){const e=[D.value.path+""];return D.value.form.query("*").forEach((l=>{(l.address+"").includes(D.value.address+"")&&((l.path+"").includes(D.value.path+"")||e.push(l.path+""))})),e}const he=t({get:()=>!(!(null==h?void 0:h.selectMode)||!_(null==h?void 0:h.selectedFields))&&h.selectedFields.includes(D.value.path+""),set(e){if(!_(null==h?void 0:h.selectedFields))return;let l=[...h.selectedFields];e?(l.push(...be()),l=F(l)):be().forEach((e=>{const t=l.indexOf(e);t>-1&&l.splice(t,1)})),null==N||N("update:selectedFields",l)}}),ye=t((()=>(null==h?void 0:h.selectMode)&&!(D.value.parent&&"LINEBAR"!==D.value.parent.componentType)));function ge(){(null==h?void 0:h.selectMode)&&(he.value=!he.value)}const _e=t((()=>e.isOptionChildField?!!e.feedback&&" "!==e.feedback&&e.showFeedback:e.showFeedback));return()=>n(w,a({class:["form-render__formItem",{"form-render--no-border":!ne.value,"form-render--underline":"underline"===ne.value,"form-render__formItemMask":ye.value,"form-render__formItemMask--selected":ye.value&&he.value}],style:{"--form-item-column":ve()},showFeedback:_e.value,feedback:"tooltip"===(null==h?void 0:h.feedbackType)?"":e.feedback,labelStyle:X.value},{id:$.value,uuid:V,onClick:ge,"widget-type":D.value.componentType,"field-key":q(G.value),"field-address":B(H.value),required:z.value}),{...s,default:pe,label:ue})}}),h({title:"label"},((e,l)=>{const t=v(l)?void 0:s(l.selfErrors).length?function(e,l){if(!g(l.defined_error_msg)||!l.defined_error_msg)return e.map((e=>N(e,l))).join(",");return N(l.defined_error_msg,l)}(s(l.selfErrors),e.fieldItem):void 0;return{...e,fieldItem:void 0,feedback:t,"validation-status":t?"error":void 0}})));export{D as FORM_ITEM};
|
@@ -156,6 +156,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
156
156
|
linebarDirection: "horizontal" | "vertical";
|
157
157
|
linebarTextDirection: "horizontal" | "vertical";
|
158
158
|
autoWidth: number | boolean;
|
159
|
+
feedbackType: "default" | "tooltip";
|
159
160
|
}>>;
|
160
161
|
isVerticalLinebar: import("vue").ComputedRef<boolean>;
|
161
162
|
wrapperClass: import("vue").ComputedRef<string[] | "">;
|
@@ -155,6 +155,7 @@ export declare const LINEBAR: import("@vue/runtime-core").DefineComponent<{
|
|
155
155
|
linebarDirection: "horizontal" | "vertical";
|
156
156
|
linebarTextDirection: "horizontal" | "vertical";
|
157
157
|
autoWidth: number | boolean;
|
158
|
+
feedbackType: "default" | "tooltip";
|
158
159
|
}>>;
|
159
160
|
isVerticalLinebar: import("vue").ComputedRef<boolean>;
|
160
161
|
wrapperClass: import("vue").ComputedRef<string[] | "">;
|
@@ -104,6 +104,7 @@ export declare function useFieldNormalize(): {
|
|
104
104
|
linebarDirection: "horizontal" | "vertical";
|
105
105
|
linebarTextDirection: "horizontal" | "vertical";
|
106
106
|
autoWidth: number | boolean;
|
107
|
+
feedbackType: "default" | "tooltip";
|
107
108
|
}>], import("../../../../shared/utils/tapable").UnsetAdditionalOptions>;
|
108
109
|
FieldListNormalizeWaterfallHook: SyncWaterfallHook<[FieldItem[], Partial<{
|
109
110
|
fieldList: FieldItem[];
|
@@ -208,5 +209,6 @@ export declare function useFieldNormalize(): {
|
|
208
209
|
linebarDirection: "horizontal" | "vertical";
|
209
210
|
linebarTextDirection: "horizontal" | "vertical";
|
210
211
|
autoWidth: number | boolean;
|
212
|
+
feedbackType: "default" | "tooltip";
|
211
213
|
}>], import("../../../../shared/utils/tapable").UnsetAdditionalOptions>;
|
212
214
|
};
|
@@ -170,6 +170,7 @@ export type FormRenderProps = Partial<{
|
|
170
170
|
linebarDirection: 'vertical' | 'horizontal';
|
171
171
|
linebarTextDirection: 'vertical' | 'horizontal';
|
172
172
|
autoWidth: boolean | number;
|
173
|
+
feedbackType: 'tooltip' | 'default';
|
173
174
|
}>;
|
174
175
|
export type FormBusinessFormatter = (payload: {
|
175
176
|
fieldKey: string;
|
@@ -659,7 +659,7 @@ declare const IhoChat: SFCWithInstall<import("vue").DefineComponent<{
|
|
659
659
|
NIcon: any;
|
660
660
|
NButtonGroup: any;
|
661
661
|
NButton: any;
|
662
|
-
|
662
|
+
NSpace: any;
|
663
663
|
PersonProfile: import("vue").DefineComponent<{
|
664
664
|
userId: {
|
665
665
|
type: StringConstructor;
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as t,computed as n,watch as o,withDirectives as i,openBlock as s,createElementBlock as r,normalizeStyle as c,unref as a,createElementVNode as l,toDisplayString as u,createVNode as m,createCommentVNode as d,withCtx as f,Fragment as p,renderList as g,createBlock as h,createTextVNode as y,mergeProps as v,vShow as M}from"vue";import{NIcon as k,NPopover as C,NButton as _,NTooltip as I,NUpload as x,NUploadTrigger as T}from"naive-ui";import b from"./ChatAdd.vue.js";import{useState as E}from"../hooks/useState.js";import{useSession as w}from"../hooks/useSession.js";import{MESSAGE_TYPE as z,AV_STATUS as L}from"../constants/index.js";import"trtc-sdk-v5";import{simplifyMessage as j}from"../utils/index.js";import{emojis as R}from"../utils/emoji.js";import{uploadFileApi as q}from"../api/index.js";import{CloseCircleOutline as O,CallOutline as D,VideocamOutline as A}from"@vicons/ionicons5";import{xor as V,cloneDeep as K}from"lodash-es";import{uuidGenerator as F}from"../../../../shared/utils/index.js";const H={key:0,class:"reference-content-box"},U={class:"reference-content"},G=["innerHTML"],J={class:"tool-box"},N=l("i",{class:"chat--iconfont chat--icon-face"},null,-1),S={class:"emoji-box"},X=l("span",null,"默认表情",-1),B={class:"list-box"},$=["src"],P=l("i",{class:"chat--iconfont chat--icon-good"},null,-1),Q=l("i",{class:"chat--iconfont chat--icon-image"},null,-1),W=l("i",{class:"chat--iconfont chat--icon-folder"},null,-1),Y={class:"btn-box"},Z=l("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var ee=e({__name:"ChatFooter",setup(e){const ee=t(),{state:te,sendMessage:ne}=E(),{isGroupChat:oe}=w(te),ie=t(!1),se=t(""),re=n((()=>({options:te.currentGroupUser,defaultValue:[te.userInfo]})));function ce(e,t=[]){const n=F(),o=[],i=t.length>0;te.showVideo||te.showMultipleVideo||(i?(o.push(...V(t,[te.userInfo.id])),Object.assign(te.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:n,chatMessageType:e}),te.showMultipleVideo=!0):ne({content:{chatMessageType:e,msg:"",avStatus:L.IN_CALL}}))}function ae(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(),me()))}function le(){var e;se.value=(null==(e=ee.value)?void 0:e.innerHTML)||""}async function ue(e,t){const{file:n,name:o}=e.file,i=new FormData;i.append("sender",te.userInfo.id),i.append("file",n);const s=await q(i);if(!s)return console.log("上传失败");de({chatMessageType:t,msg:t===z.FILE?o:s,url:s})}function me(){const{innerHTML:e="",innerText:t=""}=ee.value||{};if(se.value.trim().length>2e3)return void console.log("请控制在2000字以内");if(!se.value)return console.log("请输入内容");const n=e.split(t).find((e=>!!e));let o=z.TEXT,i="";if(n){if(t.replace(/\n$/,"")||(e.match(/<img[^>]*>/gi)||[]).length>1)o=z.BLEND,i=e;else if(e.includes(z.EMOJI)){o=z.EMOJI;const t=e.match(/data-msg\s*=\s*"([^"]*)"/);t&&(i=t[1])}else{o=z.IMAGE;const t=e.match(/src\s*=\s*"([^"]*)"/);t&&(i=t[1])}}else i=t.trim();i&&de({msg:i,chatMessageType:o,origin:"btn"})}async function de(e){const{chatMessageType:t=z.TEXT,msg:n,url:o,origin:i=""}=e,s={msg:n,chatMessageType:t};t===z.FILE&&(s.fileUrl=o),"btn"===i&&(ee.value.innerHTML="",se.value=""),te.currentReferenceMsg&&(t===z.TEXT&&(s.referenceContent=K(te.currentReferenceMsg)),te.currentReferenceMsg=null),ne({content:s})}return o((()=>te.currentReferenceMsg),(e=>{var t;e&&(null==(t=ee.value)||t.focus())})),(e,t)=>i((s(),r("section",{class:"chat-footer",style:c({cursor:a(te).id?"default":"not-allowed"})},[a(te).currentReferenceMsg?(s(),r("div",H,[l("div",U,[l("span",null,u(a(te).currentReferenceMsg.senderName)+":",1),l("pre",{innerHTML:a(j)(a(te).currentReferenceMsg.content)},null,8,G)]),m(a(k),{component:a(O),onClick:t[0]||(t[0]=()=>a(te).currentReferenceMsg=null)},null,8,["component"])])):d("v-if",!0),l("div",J,[m(a(C),{show:ie.value,"onUpdate:show":t[1]||(t[1]=e=>ie.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:f((()=>[m(a(_),{quaternary:"",size:"tiny"},{icon:f((()=>[N])),_:1})])),default:f((()=>[l("div",S,[d(' <span>最近使用</span>\
|
1
|
+
import{defineComponent as e,ref as t,computed as n,watch as o,withDirectives as i,openBlock as s,createElementBlock as r,normalizeStyle as c,unref as a,createElementVNode as l,toDisplayString as u,createVNode as m,createCommentVNode as d,withCtx as f,Fragment as p,renderList as g,createBlock as h,createTextVNode as y,mergeProps as v,vShow as M}from"vue";import{NIcon as k,NPopover as C,NButton as _,NTooltip as I,NUpload as x,NUploadTrigger as T}from"naive-ui";import b from"./ChatAdd.vue.js";import{useState as E}from"../hooks/useState.js";import{useSession as w}from"../hooks/useSession.js";import{MESSAGE_TYPE as z,AV_STATUS as L}from"../constants/index.js";import"trtc-sdk-v5";import{simplifyMessage as j}from"../utils/index.js";import{emojis as R}from"../utils/emoji.js";import{uploadFileApi as q}from"../api/index.js";import{CloseCircleOutline as O,CallOutline as D,VideocamOutline as A}from"@vicons/ionicons5";import{xor as V,cloneDeep as K}from"lodash-es";import{uuidGenerator as F}from"../../../../shared/utils/index.js";const H={key:0,class:"reference-content-box"},U={class:"reference-content"},G=["innerHTML"],J={class:"tool-box"},N=l("i",{class:"chat--iconfont chat--icon-face"},null,-1),S={class:"emoji-box"},X=l("span",null,"默认表情",-1),B={class:"list-box"},$=["src"],P=l("i",{class:"chat--iconfont chat--icon-good"},null,-1),Q=l("i",{class:"chat--iconfont chat--icon-image"},null,-1),W=l("i",{class:"chat--iconfont chat--icon-folder"},null,-1),Y={class:"btn-box"},Z=l("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var ee=e({__name:"ChatFooter",setup(e){const ee=t(),{state:te,sendMessage:ne}=E(),{isGroupChat:oe}=w(te),ie=t(!1),se=t(""),re=n((()=>({options:te.currentGroupUser,defaultValue:[te.userInfo]})));function ce(e,t=[]){const n=F(),o=[],i=t.length>0;te.showVideo||te.showMultipleVideo||(i?(o.push(...V(t,[te.userInfo.id])),Object.assign(te.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:n,chatMessageType:e}),te.showMultipleVideo=!0):ne({content:{chatMessageType:e,msg:"",avStatus:L.IN_CALL}}))}function ae(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(),me()))}function le(){var e;se.value=(null==(e=ee.value)?void 0:e.innerHTML)||""}async function ue(e,t){const{file:n,name:o}=e.file,i=new FormData;i.append("sender",te.userInfo.id),i.append("file",n);const s=await q(i);if(!s)return console.log("上传失败");de({chatMessageType:t,msg:t===z.FILE?o:s,url:s})}function me(){const{innerHTML:e="",innerText:t=""}=ee.value||{};if(se.value.trim().length>2e3)return void console.log("请控制在2000字以内");if(!se.value)return console.log("请输入内容");const n=e.split(t).find((e=>!!e));let o=z.TEXT,i="";if(n){if(t.replace(/\n$/,"")||(e.match(/<img[^>]*>/gi)||[]).length>1)o=z.BLEND,i=e;else if(e.includes(z.EMOJI)){o=z.EMOJI;const t=e.match(/data-msg\s*=\s*"([^"]*)"/);t&&(i=t[1])}else{o=z.IMAGE;const t=e.match(/src\s*=\s*"([^"]*)"/);t&&(i=t[1])}}else i=t.trim();i&&de({msg:i,chatMessageType:o,origin:"btn"})}async function de(e){const{chatMessageType:t=z.TEXT,msg:n,url:o,origin:i=""}=e,s={msg:n,chatMessageType:t};t===z.FILE&&(s.fileUrl=o),"btn"===i&&(ee.value.innerHTML="",se.value=""),te.currentReferenceMsg&&(t===z.TEXT&&(s.referenceContent=K(te.currentReferenceMsg)),te.currentReferenceMsg=null),ne({content:s})}return o((()=>te.currentReferenceMsg),(e=>{var t;e&&(null==(t=ee.value)||t.focus())})),(e,t)=>i((s(),r("section",{class:"chat-footer",style:c({cursor:a(te).id?"default":"not-allowed"})},[a(te).currentReferenceMsg?(s(),r("div",H,[l("div",U,[l("span",null,u(a(te).currentReferenceMsg.senderName)+":",1),l("pre",{innerHTML:a(j)(a(te).currentReferenceMsg.content)},null,8,G)]),m(a(k),{component:a(O),onClick:t[0]||(t[0]=()=>a(te).currentReferenceMsg=null)},null,8,["component"])])):d("v-if",!0),l("div",J,[m(a(C),{show:ie.value,"onUpdate:show":t[1]||(t[1]=e=>ie.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:f((()=>[m(a(_),{quaternary:"",size:"tiny"},{icon:f((()=>[N])),_:1})])),default:f((()=>[l("div",S,[d(' <span>最近使用</span>\n\t\t\t\t\t<div class="list-box">\n\t\t\t\t\t\t<template v-for="(img, index) in images" :key="index">\n\t\t\t\t\t\t\t<i>\n\t\t\t\t\t\t\t\t<img :src="img" />\n\t\t\t\t\t\t\t</i>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div> '),X,l("div",B,[(s(!0),r(p,null,g(a(R).default,(([e,t])=>(s(),h(a(I),{key:e,"show-arrow":!1,trigger:"hover"},{trigger:f((()=>[m(a(_),{quaternary:"",size:"tiny",onClick:()=>function(e){ie.value=!1,de({chatMessageType:z.EMOJI,msg:e})}(e)},{icon:f((()=>[l("img",{src:t},null,8,$)])),_:2},1032,["onClick"])])),default:f((()=>[y(" "+u(e),1)])),_:2},1024)))),128))])])])),_:1},8,["show"]),m(a(_),{quaternary:"",size:"tiny",onClick:t[2]||(t[2]=()=>de({chatMessageType:a(z).EMOJI,msg:0}))},{icon:f((()=>[P])),_:1}),m(a(x),{abstract:"",multiple:"",accept:"image/*",onChange:t[3]||(t[3]=e=>ue(e,a(z).IMAGE))},{default:f((()=>[m(a(T),{abstract:""},{default:f((({handleClick:e})=>[m(a(_),{quaternary:"",size:"tiny",onClick:e},{icon:f((()=>[Q])),_:2},1032,["onClick"])])),_:1})])),_:1}),m(a(x),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:t[4]||(t[4]=e=>ue(e,a(z).FILE))},{default:f((()=>[m(a(T),{abstract:""},{default:f((({handleClick:e})=>[m(a(_),{quaternary:"",size:"tiny",onClick:e},{icon:f((()=>[W])),_:2},1032,["onClick"])])),_:1})])),_:1}),a(oe)?(s(),r(p,{key:0},[m(b,v(a(re),{onComfirm:t[5]||(t[5]=e=>ce(a(z).AUDIO,e))}),{trigger:f((()=>[m(a(_),{quaternary:"",size:"tiny"},{icon:f((()=>[m(a(k),{size:"18",component:a(D)},null,8,["component"])])),_:1})])),_:1},16),m(b,v(a(re),{onComfirm:t[6]||(t[6]=e=>ce(a(z).VIDEO,e))}),{trigger:f((()=>[m(a(_),{quaternary:"",size:"tiny"},{icon:f((()=>[m(a(k),{size:"20",component:a(A)},null,8,["component"])])),_:1})])),_:1},16)],64)):(s(),r(p,{key:1},[m(a(_),{quaternary:"",size:"tiny",onClick:t[7]||(t[7]=()=>ce(a(z).AUDIO))},{icon:f((()=>[m(a(k),{size:"18",component:a(D)},null,8,["component"])])),_:1}),m(a(_),{quaternary:"",size:"tiny",onClick:t[8]||(t[8]=()=>ce(a(z).VIDEO))},{icon:f((()=>[m(a(k),{size:"20",component:a(A)},null,8,["component"])])),_:1})],64))]),i(l("div",{ref_key:"inputRef",ref:ee,class:"input-box",contenteditable:"",onKeydown:ae,onInput:le},null,544),[[M,a(te).id]]),l("div",Y,[Z,m(a(_),{type:"primary",round:"",disabled:!se.value,onClick:me},{default:f((()=>[y("发送")])),_:1},8,["disabled"])])],4)),[[M,a(te).id]])}});export{ee as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as t,computed as n,watch as s,openBlock as o,createElementBlock as i,normalizeClass as a,unref as r,normalizeStyle as c,createVNode as l,withCtx as u,Fragment as m,renderList as p,toDisplayString as d,createCommentVNode as f,createBlock as v,createElementVNode as g,withModifiers as y,nextTick as h}from"vue";import{NImageGroup as T,NAvatar as M,NImage as _,NIcon as k,
|
1
|
+
import{defineComponent as e,ref as t,computed as n,watch as s,openBlock as o,createElementBlock as i,normalizeClass as a,unref as r,normalizeStyle as c,createVNode as l,withCtx as u,Fragment as m,renderList as p,toDisplayString as d,createCommentVNode as f,createBlock as v,createElementVNode as g,withModifiers as y,nextTick as h}from"vue";import{NImageGroup as T,NAvatar as M,NImage as _,NIcon as k,NSpace as x,NButtonGroup as I,NButton as S}from"naive-ui";import{format as w}from"date-fns";import{getHistoryRecordApi as L,readMessageApi as j}from"../api/index.js";import{useState as E}from"../hooks/useState.js";import{useSession as C}from"../hooks/useSession.js";import{MESSAGE_TYPE as b}from"../constants/index.js";import"trtc-sdk-v5";import{isAudioOrVideoMessage as A,simplifyMessage as z,getAVTime as H}from"../utils/index.js";import{first as D,last as R}from"lodash-es";import N from"./PersonProfile.vue.js";import O from"./MessageTemplate.vue.js";import{emojis as P}from"../utils/emoji.js";import q from"./ContextMenu.js";import{useScrollLoading as B}from"../hooks/useScrollLoading.js";import{CallOutline as U,VideocamOutline as F,DocumentSharp as G,ChatbubbleEllipsesOutline as J,EllipsisHorizontal as K}from"@vicons/ionicons5";const X={key:0,class:"time"},Y={key:2,class:"message-box"},$={key:0,class:"content-box"},Q={class:"name-box"},V=["data-time"],W=["onContextmenu"],Z={key:0,class:"reference-content"},ee=["innerHTML"],te=["innerHTML"],ne=["src"],se={style:{"margin-left":"8px"}},oe={class:"size"};var ie=e({__name:"ChatMain",setup(e){const ie=t(),{state:ae,setMsgList:re}=E(),{setCurrentSessionItem:ce,isGroupChat:le}=C(ae),ue=t(),me=t(!1),pe=t({left:0,top:0}),de=t(),fe={page:0,hasMore:!0,lastSendTime:w(new Date,"yyyy-MM-dd HH:mm:ss")},ve=n((()=>({"--c-tip-top":le.value?"1px":"-20px","--c-tip-gap":le.value?"10px":"0px"})));async function ge(){try{if(!fe.hasMore)return;fe.page++;const e=await L({sessionKey:ae.currentSessionItem.sessionKey,page:fe.page,lastSendTime:fe.lastSendTime});if(!Array.isArray(e)||0===e.length)return fe.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");const t=D(e).id;fe.lastSendTime=R(e).sendTime,re(fe.page>1?[...e,...ae.msgList]:e),1===fe.page&&ae.currentSessionItem.unreadNum&&(await j({chatType:ae.currentSessionItem.chatType,messageIdSet:[t],receiver:ae.userInfo.id,sender:ae.currentSessionItem.receiver}),ce({unreadNum:0}))}catch(e){console.log(e)}}async function ye(e,t){de.value=t,async function(e){var t,n,s,o,i,a;me.value=!0,await h();const{clientX:r,clientY:c}=e,{width:l=0,height:u=0,left:m=0,top:p=0}=(null==(t=ie.value)?void 0:t.getBoundingClientRect())||{},d=null!=(o=null==(s=null==(n=ue.value)?void 0:n.$el)?void 0:s.getBoundingClientRect().height)?o:220,f=null!=(a=null==(i=ie.value)?void 0:i.scrollTop)?a:0,v=5,g={};r<=m+l/2?g.left=r-m+v+"px":g.right=m+l-r-v+"px";c-p<d/2?g.top=f+v+"px":p+u-c<=d/2?g.bottom=Math.abs(f)+v+"px":g.top=f+c-p-d/2+"px";pe.value=g}(e)}function he(e){const{chatMessageType:t,messageTemplate:n}=e.content;return t!==b.TEMPLATE||!!n}function Te(e,t){var n,s;const{chatMessageType:o,messageTemplate:i}=e.content;if(o===b.TEMPLATE)return"system"===t?2==(null==(n=null==i?void 0:i.setting)?void 0:n.style.id):2!=(null==(s=null==i?void 0:i.setting)?void 0:s.style.id)}function Me(e){var t,n;const{chatMessageType:s,messageTemplate:o}=e;return s===b.TEMPLATE&&3==(null==(n=null==(t=null==o?void 0:o.setting)?void 0:t.style)?void 0:n.id)}function _e(e,t){var n;const s=new Date(e.sendTime).getTime(),o=null==(n=ae.msgList[t+1])?void 0:n.sendTime;if(o){return s-new Date(o).getTime()>3e5}return!0}function ke(e){ae.currentReferenceMsg=e,Object.assign(ae.currentReferenceMsg,{chatType:ae.currentSessionItem.chatType,receiver:ae.currentSessionItem.receiver,receiverAvatar:ae.currentSessionItem.avatar,receiverName:ae.currentSessionItem.name})}function xe(e,t){"reply"===e&&ke(t)}return B(ie,(()=>{ge()}),"top",(()=>{me.value=!1})),s((()=>ae.id),(e=>{e&&(ae.currentReferenceMsg=null,Object.assign(fe,{page:0,hasMore:!0,lastSendTime:w(new Date,"yyyy-MM-dd HH:mm:ss")}),ge())}),{immediate:!0}),s((()=>ae.isAppendMsg),(e=>{e&&(re([...ae.msgList,ae.currentMsg]),ae.isAppendMsg=!1,async function(){var e,t,n;const s=null!=(t=null==(e=ie.value)?void 0:e.scrollHeight)?t:0;null==(n=ie.value)||n.scrollTo({top:s,behavior:"auto"})}())}),{immediate:!0}),(e,t)=>(o(),i("div",{class:a(["chat-main",{"home-bg":!r(ae).id}]),ref_key:"chatMainRef",ref:ie,style:c(r(ve))},[l(r(T),{"show-toolbar-tooltip":""},{default:u((()=>[(o(!0),i(m,null,p(r(ae).msgList,((e,t)=>(o(),i(m,{key:e.id},[he(e)?(o(),i("div",{key:0,class:a(["message-item",{"message-item--mine":e.sender==r(ae).userInfo.id}])},[_e(e,t)?(o(),i("p",X,d(e.__sendTime),1)):f("v-if",!0),Te(e,"system")?(o(),v(O,{key:1,data:e},null,8,["data"])):(o(),i("div",Y,[l(N,{"user-id":e.sender},{trigger:u((()=>[l(r(M),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-id"]),e.content?(o(),i("div",$,[g("div",Q,[g("span",{class:"name","data-time":e.__time},d(r(le)?e.senderName:""),9,V)]),g("div",{class:a(["content",{emoji:e.content.chatMessageType===r(b).EMOJI,template:e.content.chatMessageType===r(b).TEMPLATE,"template--3":Me(e.content),"audio-video":r(A)(e.content),file:e.content.chatMessageType===r(b).FILE}]),onContextmenu:y((t=>ye(t,e.id)),["prevent"])},[e.content.chatMessageType===r(b).TEXT?(o(),i(m,{key:0},[e.content.referenceContent?(o(),i("div",Z,[g("span",null,d(e.content.referenceContent.senderName)+":",1),g("pre",{innerHTML:r(z)(e.content.referenceContent.content)},null,8,ee)])):f("v-if",!0),g("pre",null,d(e.__content),1)],64)):f("v-if",!0),e.content.chatMessageType===r(b).BLEND?(o(),i("pre",{key:1,innerHTML:e.__content},null,8,te)):f("v-if",!0),e.content.chatMessageType===r(b).EMOJI?(o(),i("img",{key:2,src:r(P).findEmoji(e.__content)},null,8,ne)):f("v-if",!0),Te(e,"template")?(o(),v(O,{key:3,data:e},null,8,["data"])):f("v-if",!0),e.content.chatMessageType===r(b).IMAGE?(o(),v(r(_),{key:4,width:"240",src:e.__content},null,8,["src"])):f("v-if",!0),r(A)(e.content)?(o(),i(m,{key:5},[l(r(k),{class:a({"is-audio":e.content.chatMessageType===r(b).AUDIO}),component:e.content.chatMessageType===r(b).AUDIO?r(U):r(F)},null,8,["class","component"]),g("span",se,d(r(H)(e.__content)),1)],64)):f("v-if",!0),e.content.chatMessageType===r(b).FILE?(o(),v(r(x),{key:6,"wrap-item":!1},{default:u((()=>[l(r(k),{class:"icon-file",size:"40",component:r(G)},null,8,["component"]),l(r(x),{"wrap-item":!1,vertical:"",justify:"space-between",style:{"row-gap":"0"}},{default:u((()=>[g("span",null,d(e.__content),1),g("span",oe,d(e.__size),1)])),_:2},1024)])),_:2},1024)):f("v-if",!0),l(r(I),{class:"quick-menu"},{default:u((()=>[r(A)(e.content)?f("v-if",!0):(o(),i(m,{key:0},[f(' <n-button quaternary size="tiny">\n\t\t\t\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<i class="chat--iconfont chat--icon-face" />\n\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t</n-button> '),l(r(S),{quaternary:"",size:"tiny",onClick:()=>ke(e)},{icon:u((()=>[l(r(k),{size:"17",component:r(J)},null,8,["component"])])),_:2},1032,["onClick"])],64)),l(r(S),{quaternary:"",size:"tiny",onClick:t=>ye(t,e.id)},{icon:u((()=>[l(r(k),{size:"14",component:r(K)},null,8,["component"])])),_:2},1032,["onClick"])])),_:2},1024)],42,W)])):f("v-if",!0)]))],2)):f("v-if",!0)],64)))),128))])),_:1}),l(r(q),{ref_key:"contextmenuRef",ref:ue,show:me.value,"onUpdate:show":t[0]||(t[0]=e=>me.value=e),position:pe.value,"msg-id":de.value,onSelect:xe},null,8,["show","position","msg-id"])],6))}});export{ie as default};
|
@@ -174,6 +174,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
174
174
|
linebarDirection: "horizontal" | "vertical";
|
175
175
|
linebarTextDirection: "horizontal" | "vertical";
|
176
176
|
autoWidth: number | boolean;
|
177
|
+
feedbackType: "default" | "tooltip";
|
177
178
|
}>>>;
|
178
179
|
};
|
179
180
|
encrypted: {
|
@@ -356,6 +357,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
356
357
|
linebarDirection: "horizontal" | "vertical";
|
357
358
|
linebarTextDirection: "horizontal" | "vertical";
|
358
359
|
autoWidth: number | boolean;
|
360
|
+
feedbackType: "default" | "tooltip";
|
359
361
|
}>>>;
|
360
362
|
};
|
361
363
|
encrypted: {
|
@@ -549,6 +551,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
549
551
|
linebarDirection: "horizontal" | "vertical";
|
550
552
|
linebarTextDirection: "horizontal" | "vertical";
|
551
553
|
autoWidth: number | boolean;
|
554
|
+
feedbackType: "default" | "tooltip";
|
552
555
|
}>>;
|
553
556
|
encrypted: boolean;
|
554
557
|
};
|
@@ -799,6 +802,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
799
802
|
linebarDirection: "horizontal" | "vertical";
|
800
803
|
linebarTextDirection: "horizontal" | "vertical";
|
801
804
|
autoWidth: number | boolean;
|
805
|
+
feedbackType: "default" | "tooltip";
|
802
806
|
}>) => Record<string, import("@formily/json-schema").Stringify<{
|
803
807
|
[key: symbol]: any;
|
804
808
|
[key: `x-${string}`]: any;
|
@@ -1343,6 +1347,10 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
1343
1347
|
type: BooleanConstructor;
|
1344
1348
|
default: boolean;
|
1345
1349
|
};
|
1350
|
+
feedbackType: {
|
1351
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
1352
|
+
default: string;
|
1353
|
+
};
|
1346
1354
|
}, {
|
1347
1355
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
1348
1356
|
fieldList: {
|
@@ -1538,6 +1546,10 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
1538
1546
|
type: BooleanConstructor;
|
1539
1547
|
default: boolean;
|
1540
1548
|
};
|
1549
|
+
feedbackType: {
|
1550
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
1551
|
+
default: string;
|
1552
|
+
};
|
1541
1553
|
}>> & {
|
1542
1554
|
onFormChange?: ((...args: any[]) => any) | undefined;
|
1543
1555
|
onScroll?: ((...args: any[]) => any) | undefined;
|
@@ -1710,6 +1722,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
1710
1722
|
linebarDirection: "horizontal" | "vertical";
|
1711
1723
|
linebarTextDirection: "horizontal" | "vertical";
|
1712
1724
|
autoWidth: number | boolean;
|
1725
|
+
feedbackType: "default" | "tooltip";
|
1713
1726
|
}>) => Record<string, import("@formily/json-schema").Stringify<{
|
1714
1727
|
[key: symbol]: any;
|
1715
1728
|
[key: `x-${string}`]: any;
|
@@ -2089,6 +2102,10 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
2089
2102
|
type: BooleanConstructor;
|
2090
2103
|
default: boolean;
|
2091
2104
|
};
|
2105
|
+
feedbackType: {
|
2106
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
2107
|
+
default: string;
|
2108
|
+
};
|
2092
2109
|
}>> & {
|
2093
2110
|
onFormChange?: ((...args: any[]) => any) | undefined;
|
2094
2111
|
onScroll?: ((...args: any[]) => any) | undefined;
|
@@ -2119,6 +2136,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
2119
2136
|
linebarDirection: "horizontal" | "vertical";
|
2120
2137
|
linebarTextDirection: "horizontal" | "vertical";
|
2121
2138
|
autoWidth: number | boolean;
|
2139
|
+
feedbackType: "default" | "tooltip";
|
2122
2140
|
operationalFormInit: boolean;
|
2123
2141
|
incrementalRender: boolean;
|
2124
2142
|
}>;
|
@@ -2442,6 +2460,10 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
2442
2460
|
type: BooleanConstructor;
|
2443
2461
|
default: boolean;
|
2444
2462
|
};
|
2463
|
+
feedbackType: {
|
2464
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
2465
|
+
default: string;
|
2466
|
+
};
|
2445
2467
|
}, {
|
2446
2468
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
2447
2469
|
fieldList: {
|
@@ -2637,6 +2659,10 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
2637
2659
|
type: BooleanConstructor;
|
2638
2660
|
default: boolean;
|
2639
2661
|
};
|
2662
|
+
feedbackType: {
|
2663
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
2664
|
+
default: string;
|
2665
|
+
};
|
2640
2666
|
}>> & {
|
2641
2667
|
onFormChange?: ((...args: any[]) => any) | undefined;
|
2642
2668
|
onScroll?: ((...args: any[]) => any) | undefined;
|
@@ -2809,6 +2835,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
2809
2835
|
linebarDirection: "horizontal" | "vertical";
|
2810
2836
|
linebarTextDirection: "horizontal" | "vertical";
|
2811
2837
|
autoWidth: number | boolean;
|
2838
|
+
feedbackType: "default" | "tooltip";
|
2812
2839
|
}>) => Record<string, import("@formily/json-schema").Stringify<{
|
2813
2840
|
[key: symbol]: any;
|
2814
2841
|
[key: `x-${string}`]: any;
|
@@ -3188,6 +3215,10 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
3188
3215
|
type: BooleanConstructor;
|
3189
3216
|
default: boolean;
|
3190
3217
|
};
|
3218
|
+
feedbackType: {
|
3219
|
+
type: import("vue").PropType<"default" | "tooltip">;
|
3220
|
+
default: string;
|
3221
|
+
};
|
3191
3222
|
}>> & {
|
3192
3223
|
onFormChange?: ((...args: any[]) => any) | undefined;
|
3193
3224
|
onScroll?: ((...args: any[]) => any) | undefined;
|
@@ -3218,6 +3249,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
3218
3249
|
linebarDirection: "horizontal" | "vertical";
|
3219
3250
|
linebarTextDirection: "horizontal" | "vertical";
|
3220
3251
|
autoWidth: number | boolean;
|
3252
|
+
feedbackType: "default" | "tooltip";
|
3221
3253
|
operationalFormInit: boolean;
|
3222
3254
|
incrementalRender: boolean;
|
3223
3255
|
}>;
|
@@ -3410,6 +3442,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
3410
3442
|
linebarDirection: "horizontal" | "vertical";
|
3411
3443
|
linebarTextDirection: "horizontal" | "vertical";
|
3412
3444
|
autoWidth: number | boolean;
|
3445
|
+
feedbackType: "default" | "tooltip";
|
3413
3446
|
}>>>;
|
3414
3447
|
};
|
3415
3448
|
encrypted: {
|