sun-biz 0.0.4-beta.40 → 0.0.4-beta.41

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.
@@ -4750,1052 +4750,501 @@ const default_exports_ = defaultvue_type_script_setup_true_lang_ts;
4750
4750
  });
4751
4751
  const pro_avatar_exports_ = pro_avatarvue_type_script_setup_true_lang_ts;
4752
4752
  /* ESM default export */ const pro_avatar = pro_avatar_exports_;
4753
- /**
4754
- * [1-10473-1]根据条件查询标签分组V1(含标签)
4755
- * @param params
4756
- * @returns
4757
- */ const queryTagGroupByExampleV1 = (params)=>(0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.dictRequest)('/tag/queryTagGroupByExampleV1', params);
4758
- /**
4759
- * ]根据条件查询标签列表
4760
- * @param params
4761
- * @returns
4762
- */ const queryTagListByExample = (params)=>(0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.dictRequest)('/tag/queryTagListByExample', params);
4763
- const BACKGROUND_COLOR = 'BACKGROUND_COLOR';
4764
- const FONT_COLOR = 'FONT_COLOR';
4765
- // 工具函数:将标签信息添加到映射中
4766
- const addTagToMap = (map, tag)=>{
4767
- map.set(tag.tagId, {
4768
- tagNameDisplay: tag.tagNameDisplay,
4769
- background: (tag?.tagCssList || []).find((item)=>item.cssTypeCode === BACKGROUND_COLOR)?.cssValue || '',
4770
- color: (tag?.tagCssList || []).find((item)=>item.cssTypeCode === FONT_COLOR)?.cssValue || ''
4771
- });
4753
+ const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_1 = {
4754
+ class: "border-r border-[#C9C9C9] pr-5 mr-5"
4772
4755
  };
4773
- // 工具函数:将 modelValue 转换为数组
4774
- const getModelValueArray = (value)=>{
4775
- if (!value) return [];
4776
- return Array.isArray(value) ? value : [
4777
- value
4778
- ];
4756
+ const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_2 = {
4757
+ class: "flex min-w-32 items-start justify-start"
4779
4758
  };
4780
- // 工具函数:创建标签映射
4781
- const createTagsMap = (tableData, extraTagIds)=>{
4782
- const map = new Map();
4783
- // 处理分组标签
4784
- tableData.forEach((group)=>{
4785
- group.tagList.forEach((tag)=>{
4786
- addTagToMap(map, tag);
4787
- });
4788
- });
4789
- // 处理额外标签
4790
- extraTagIds.forEach((tag)=>{
4791
- addTagToMap(map, tag);
4792
- });
4793
- return map;
4759
+ const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_3 = {
4760
+ class: "ml-[12px] flex-1"
4794
4761
  };
4795
- // 工具函数:获取选项样式
4796
- const getOptionStyle = (tagId, selectList, allTagsMap)=>selectList.includes(tagId) ? {} : {
4797
- background: allTagsMap.get(tagId)?.background,
4798
- color: allTagsMap.get(tagId)?.color
4799
- };
4800
- // 工具函数:检查选项是否被禁用
4801
- const isOptionDisabled = (tagId, selectList)=>selectList.includes(tagId);
4802
- /* ESM default export */ const SelectDropdownvue_type_script_lang_ts_setup_true = /*@__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
4803
- __name: 'SelectDropdown',
4804
- props: {
4805
- modelValue: {},
4806
- hasSelect: {},
4807
- tableData: {},
4808
- extraTagIds: {},
4809
- allTagsMap: {},
4810
- multiple: {
4811
- type: Boolean
4812
- },
4813
- disabled: {
4814
- type: Boolean
4815
- },
4816
- tagSize: {},
4817
- placeholder: {}
4818
- },
4819
- emits: [
4820
- 'update:modelValue',
4821
- 'change',
4822
- 'blur'
4823
- ],
4824
- setup (__props, { emit: __emit }) {
4825
- const props = __props;
4826
- const emit = __emit;
4827
- const selectList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>getModelValueArray(props.hasSelect));
4828
- const selectClass = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>props.multiple ? 'w-60' : 'w-full');
4829
- const innerValue = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)({
4830
- get: ()=>props.modelValue,
4831
- set: (val)=>emit('update:modelValue', val)
4832
- });
4833
- function handleChange(val) {
4834
- emit('change', val);
4835
- }
4836
- function handleBlur(e) {
4837
- emit('blur', e);
4838
- }
4839
- return (_ctx, _cache)=>{
4840
- const _component_el_option = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-option");
4841
- const _component_el_option_group = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-option-group");
4842
- const _component_el_select = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-select");
4843
- return (0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_select, {
4844
- modelValue: innerValue.value,
4845
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>innerValue.value = $event),
4846
- multiple: props.multiple ?? true,
4847
- filterable: "",
4848
- clearable: "",
4849
- disabled: props.disabled ?? false,
4850
- class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)(selectClass.value),
4851
- placeholder: props.placeholder ?? '请选择',
4852
- onChange: handleChange,
4853
- onBlur: handleBlur,
4854
- "collapse-tags": "",
4855
- "collapse-tags-tooltip": ""
4856
- }, {
4857
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
4858
- ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(_ctx.extraTagIds, (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_option, {
4859
- key: item.tagId,
4860
- style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(getOptionStyle)(item.tagId, selectList.value, props.allTagsMap)),
4861
- disabled: (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(isOptionDisabled)(item.tagId, selectList.value),
4862
- label: item.tagNameDisplay,
4863
- value: item.tagId
4864
- }, null, 8, [
4865
- "style",
4866
- "disabled",
4867
- "label",
4868
- "value"
4869
- ]))), 128)),
4870
- ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(props.tableData, (group)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_option_group, {
4871
- key: group.tagGroupId,
4872
- label: group.tagGroupNameDisplay,
4873
- value: group.tagGroupId
4874
- }, {
4875
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
4876
- ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(group.tagList, (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_option, {
4877
- key: item.tagId,
4878
- style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(getOptionStyle)(item.tagId, selectList.value, props.allTagsMap)),
4879
- disabled: (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(isOptionDisabled)(item.tagId, selectList.value),
4880
- label: item.tagNameDisplay,
4881
- value: item.tagId
4882
- }, null, 8, [
4883
- "style",
4884
- "disabled",
4885
- "label",
4886
- "value"
4887
- ]))), 128))
4888
- ]),
4889
- _: 2
4890
- }, 1032, [
4891
- "label",
4892
- "value"
4893
- ]))), 128))
4894
- ]),
4895
- _: 1
4896
- }, 8, [
4897
- "modelValue",
4898
- "multiple",
4899
- "disabled",
4900
- "class",
4901
- "placeholder"
4902
- ]);
4903
- };
4904
- }
4905
- });
4906
- const SelectDropdown_exports_ = SelectDropdownvue_type_script_lang_ts_setup_true;
4907
- /* ESM default export */ const SelectDropdown = SelectDropdown_exports_;
4908
- const tag_selectvue_type_script_lang_ts_setup_true_hoisted_1 = {
4909
- class: "flex flex-wrap gap-2"
4762
+ const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_4 = {
4763
+ class: "flex-1 flex flex-col gap-3 text-center"
4910
4764
  };
4911
- const SELECT_WIDTH = 15; // rem
4912
- const TAG_MARGIN = 1; // 1rem
4913
- /* ESM default export */ const tag_selectvue_type_script_lang_ts_setup_true = /*@__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
4914
- __name: 'index',
4765
+ const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_5 = {
4766
+ class: "flex-1 text-center leading-[14px]"
4767
+ };
4768
+ const _hoisted_6 = {
4769
+ class: "min-w-7"
4770
+ };
4771
+ const _hoisted_7 = {
4772
+ class: "min-w-7 ml-2"
4773
+ };
4774
+ const _hoisted_8 = {
4775
+ class: "flex justify-center"
4776
+ };
4777
+ const _hoisted_9 = {
4778
+ key: 0,
4779
+ class: "rounded-full bg-[#00AB44] px-1.5 text-center text-white mt-3 flex-1"
4780
+ };
4781
+ const _hoisted_10 = {
4782
+ class: "mr-2"
4783
+ };
4784
+ const _hoisted_11 = {
4785
+ key: 0,
4786
+ class: "w-full flex"
4787
+ };
4788
+ const _hoisted_12 = {
4789
+ class: "el-text text-[#555]"
4790
+ };
4791
+ const _hoisted_13 = {
4792
+ class: "flex flex-1"
4793
+ };
4794
+ const _hoisted_14 = {
4795
+ key: 2
4796
+ };
4797
+ const _hoisted_15 = {
4798
+ class: "text-[#555]"
4799
+ };
4800
+ const _hoisted_16 = {
4801
+ class: "w-full text-[#555]"
4802
+ };
4803
+ // import DefaultPatient from "../patient-access/images/default_patient.vue";
4804
+ // import ManPatient from "../patient-access/images/man_patient.vue";
4805
+ // import WomanPatient from "../patient-access/images/women_patient.vue";
4806
+ // import TagSelect from "../biz-select/tag-select/index.vue";
4807
+ const PERSON = "PERSON"; //应该放到BIZ_ID_TYPE_CODE这个里面
4808
+ /* ESM default export */ const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent = /*@__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
4809
+ __name: 'BannerInfo',
4915
4810
  props: {
4916
- bizIdTypeCode: {
4917
- default: ''
4918
- },
4919
- bizId: {
4920
- default: ''
4921
- },
4922
- class: {
4923
- default: 'w-full'
4924
- },
4925
- queryExtra: {
4926
- type: Boolean
4927
- },
4928
- tagList: {
4929
- default: ()=>[]
4930
- },
4931
- disabled: {
4932
- type: Boolean,
4933
- default: false
4934
- },
4935
- multiple: {
4811
+ code: {},
4812
+ bizId: {},
4813
+ isBg: {
4936
4814
  type: Boolean,
4937
4815
  default: true
4938
4816
  },
4939
- tagSize: {
4940
- default: 'large'
4941
- }
4817
+ menuId: {}
4942
4818
  },
4943
4819
  emits: [
4944
- 'change'
4820
+ "avatarClick"
4945
4821
  ],
4946
- setup (__props, { emit: __emit }) {
4947
- const emit = __emit;
4948
- const attrs = (0, __WEBPACK_EXTERNAL_MODULE_vue__.useAttrs)();
4949
- const loading = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(true);
4950
- const props = __props;
4951
- const tableData = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(props.tagList || []);
4952
- const extraTagIds = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)([]);
4953
- const selectValue = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)('');
4954
- const selectVisible = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
4955
- const SelectRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
4956
- const containerRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
4957
- const moreButtonRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
4958
- const realMaxNum = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(2);
4959
- // 计算rem到px的转换
4960
- const getRemValue = (rem)=>rem * parseFloat(getComputedStyle(document.documentElement).fontSize);
4961
- // 常量定义
4962
- const MORE_BUTTON_WIDTH = 5 + TAG_MARGIN; // rem
4963
- // 计算所有标签的映射,方便通过tagId查找tagNameDisplay
4964
- const allTagsMap = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>createTagsMap(tableData.value, extraTagIds.value));
4965
- const calcMaxNum = (wrapperNode)=>{
4966
- if (!wrapperNode || !attrs.modelValue) return;
4967
- const modelValueArray = getModelValueArray(attrs.modelValue);
4968
- if (!modelValueArray.length) {
4969
- realMaxNum.value = 0;
4970
- return;
4971
- }
4972
- // 计算每个标签的宽度
4973
- const tagWidths = modelValueArray.map((item)=>{
4974
- // 为每个标签创建独立的容器
4975
- const tagContainer = document.createElement('div');
4976
- tagContainer.style.position = 'absolute';
4977
- tagContainer.style.visibility = 'hidden';
4978
- document.body.appendChild(tagContainer);
4979
- const vnode = (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTag, {
4980
- closable: !props.disabled,
4981
- size: props.tagSize,
4982
- disableTransitions: true,
4983
- class: 'mr-4'
4984
- }, ()=>allTagsMap.value.get(item)?.tagNameDisplay || item);
4985
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.render)(vnode, tagContainer);
4986
- const width = tagContainer.firstElementChild?.getBoundingClientRect().width || 0;
4987
- document.body.removeChild(tagContainer);
4988
- return width + getRemValue(TAG_MARGIN);
4989
- });
4990
- // 计算可用宽度
4991
- const availableWidth = wrapperNode.offsetWidth - (props.disabled ? 0 : getRemValue(SELECT_WIDTH));
4992
- const totalWidth = tagWidths.reduce((sum, width)=>sum + width, 0);
4993
- // 如果所有标签都能显示,直接显示所有标签
4994
- if (totalWidth <= availableWidth) {
4995
- realMaxNum.value = modelValueArray.length;
4996
- return;
4997
- }
4998
- // 如果放不下所有标签,需要显示更多按钮
4999
- const availableWidthWithMore = availableWidth - getRemValue(MORE_BUTTON_WIDTH);
5000
- // 计算可以显示多少个标签
5001
- let currentWidth = 0;
5002
- let count = 0;
5003
- for (const width of tagWidths)if (currentWidth + width <= availableWidthWithMore) {
5004
- currentWidth += width;
5005
- count++;
5006
- } else break;
5007
- realMaxNum.value = count;
4822
+ setup (__props, { expose: __expose, emit: __emit }) {
4823
+ const emits = __emit;
4824
+ const BIZ_ID_TYPE_CODE_MAP = {
4825
+ [__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BANNER_CODE.PATIENT]: PERSON,
4826
+ [__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BANNER_CODE.REGISTRATION]: PERSON,
4827
+ [__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BANNER_CODE.CHARGE]: PERSON,
4828
+ [__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BANNER_CODE.HOSPITALIZATION]: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BIZ_ID_TYPE_CODE.IENC_ENCOUNTER
5008
4829
  };
5009
- // Methods
5010
- const handleClose = (bizId)=>{
5011
- const currentArray = getModelValueArray(attrs.modelValue);
5012
- const newModelValue = currentArray.filter((id)=>id !== bizId);
5013
- change(props.multiple ? newModelValue : newModelValue[0] || '');
4830
+ const tagBizIdTypeCode = BIZ_ID_TYPE_CODE_MAP[__props.code];
4831
+ const loading = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
4832
+ const bannerInfo = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
4833
+ const initBannerInfo = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
4834
+ const isTextOverflowing = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
4835
+ const firstDisplayWidthRatio = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(1);
4836
+ const tagBizId = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)("");
4837
+ const tagIds = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)([]);
4838
+ const inEncounterBizTagList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)([]);
4839
+ const personBizTagList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)([]);
4840
+ // const checkPrice = ref(0);
4841
+ const popoverSelector = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
4842
+ // 确保布局列数为有效数字
4843
+ const parseLayoutColumns = (value)=>{
4844
+ const parsed = parseInt(value, 10);
4845
+ if (isNaN(parsed)) return 6;
4846
+ return parsed;
5014
4847
  };
5015
- const showSelect = ()=>{
5016
- selectVisible.value = true;
5017
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
5018
- SelectRef.value?.focus();
4848
+ // 计算实际布局列数
4849
+ const layoutColumns = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>parseLayoutColumns(bannerInfo.value?.layoutTypeCode));
4850
+ // 创建CSS类映射的计算属性
4851
+ const getDynamicCssClasses = (comptControlCssList)=>{
4852
+ if (!comptControlCssList?.length) return "";
4853
+ const classes = [];
4854
+ comptControlCssList.forEach(({ cssTypeCode, cssValue })=>{
4855
+ if ("true" === cssValue) switch(cssTypeCode){
4856
+ case "FONT_BOLD":
4857
+ classes.push("font-bold");
4858
+ break;
4859
+ case "FONT_ITALIC":
4860
+ classes.push("italic");
4861
+ break;
4862
+ case "FONT_UNDERLINE":
4863
+ classes.push("underline");
4864
+ break;
4865
+ case "FONT_LINE_THROUGH":
4866
+ classes.push("line-through");
4867
+ break;
4868
+ }
5019
4869
  });
4870
+ return classes.join(" ");
5020
4871
  };
5021
- const handleSelectConfirm = ()=>{
5022
- if (!selectValue.value) {
5023
- selectVisible.value = false;
5024
- return;
5025
- }
5026
- const currentValues = getModelValueArray(attrs.modelValue);
5027
- if (props.multiple) {
5028
- change([
5029
- ...currentValues,
5030
- ...Array.isArray(selectValue.value) ? selectValue.value : [
5031
- selectValue.value
5032
- ]
5033
- ]);
5034
- selectValue.value = [];
5035
- } else {
5036
- change([
5037
- ...currentValues,
5038
- selectValue.value
5039
- ]);
5040
- selectValue.value = '';
5041
- }
5042
- selectVisible.value = false;
4872
+ // 获取颜色样式
4873
+ const getColorStyle = (comptControlCssList)=>{
4874
+ const colorItem = comptControlCssList?.find((item)=>"FONT_COLOR" === item.cssTypeCode);
4875
+ return colorItem?.cssValue ? {
4876
+ color: colorItem.cssValue
4877
+ } : {};
5043
4878
  };
5044
- async function fetchData() {
5045
- if (!props.bizIdTypeCode) return;
5046
- loading.value = true;
5047
- let [, result] = await queryTagGroupByExampleV1({
5048
- bizIdTypeCode: props.bizIdTypeCode,
5049
- bizId: props.bizId,
5050
- enabledFlag: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES
5051
- });
5052
- loading.value = false;
5053
- if (result?.success) {
5054
- tableData.value = result.data;
5055
- if (props.queryExtra) fetchExtraTag();
5056
- calcMaxNum(containerRef.value);
4879
+ function setBizId(data) {
4880
+ switch(tagBizIdTypeCode){
4881
+ case PERSON:
4882
+ tagBizId.value = data.personId;
4883
+ break;
4884
+ case __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BIZ_ID_TYPE_CODE.IENC_ENCOUNTER:
4885
+ tagBizId.value = data.inEncounterId;
4886
+ break;
4887
+ default:
4888
+ tagBizId.value = data.personId;
5057
4889
  }
5058
4890
  }
5059
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
5060
- fetchData();
5061
- // 等待所有标签渲染完成
5062
- });
5063
- async function fetchExtraTag() {
5064
- const modelValueArray = getModelValueArray(attrs.modelValue);
5065
- if (modelValueArray.length) {
5066
- let otherTagIds = modelValueArray.filter((item)=>!allTagsMap.value.get(item));
5067
- if (otherTagIds.length) {
5068
- let [, result] = await queryTagListByExample({
5069
- tagIds: otherTagIds
5070
- });
5071
- if (result?.success) extraTagIds.value = result.data;
4891
+ /**
4892
+ * 从banner数据中提取业务标签数据
4893
+ */ function extractBizTagIds(bannerItemList) {
4894
+ // 筛选出 bizTagFlag === 1 的项
4895
+ const bizTagItems = bannerItemList.filter((item)=>item?.bizTagFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES);
4896
+ // 重置数组
4897
+ inEncounterBizTagList.value = [];
4898
+ personBizTagList.value = [];
4899
+ bizTagItems.forEach((item)=>{
4900
+ if (!item.dataValue) return;
4901
+ try {
4902
+ // 解析 JSON 字符串
4903
+ const parsedData = JSON.parse(item.dataValue);
4904
+ if (Array.isArray(parsedData) && parsedData.length > 0) {
4905
+ // 根据 bindingFieldNo 分类存储完整的数据
4906
+ if ("inEncounterBizTagList" === item.bindingFieldNo) inEncounterBizTagList.value = parsedData;
4907
+ else if ("personBizTagList" === item.bindingFieldNo) personBizTagList.value = parsedData;
4908
+ }
4909
+ } catch (error) {
4910
+ console.error(`Failed to parse ${item.bindingFieldNo}:`, error);
5072
4911
  }
5073
- }
4912
+ });
4913
+ console.log("inEncounterBizTagList:", inEncounterBizTagList.value);
4914
+ console.log("personBizTagList:", personBizTagList.value);
5074
4915
  }
5075
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.watch)(()=>attrs.modelValue, ()=>{
5076
- if (props.queryExtra && !loading.value) fetchExtraTag();
5077
- if (!props.multiple) {
5078
- selectValue.value = attrs?.modelValue || '';
4916
+ /** 获取banner配置 */ const queryBannerConfig = async ()=>{
4917
+ loading.value = true;
4918
+ if (!__props.bizId && initBannerInfo.value) {
4919
+ bannerInfo.value = initBannerInfo.value;
4920
+ tagIds.value = [];
4921
+ tagBizId.value = "";
4922
+ loading.value = false;
5079
4923
  return;
5080
4924
  }
5081
- const modelValueArray = getModelValueArray(attrs.modelValue);
5082
- if (modelValueArray.length) // 等待所有标签渲染完成
5083
- {
5084
- if (containerRef.value) calcMaxNum(containerRef.value);
4925
+ const [, res] = await getBannerDataByBizId({
4926
+ menuId: __props.menuId,
4927
+ designFlag: __props.bizId ? __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.NO : __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES,
4928
+ bizId: __props.bizId ? __props.bizId : void 0,
4929
+ bizIdTypeCode: BANNER_COMPONENT_CONFIG[__props.code].bizIdTypeCode,
4930
+ componentId: BANNER_COMPONENT_CONFIG[__props.code].componentId
4931
+ });
4932
+ loading.value = false;
4933
+ if (res?.success) {
4934
+ // 提取业务标签ID(bizTagFlag === 1)
4935
+ extractBizTagIds(res?.data?.bannerItemList ?? []);
4936
+ // 保留 displayFlag === 1 或 bizTagFlag === 1 的项用于显示
4937
+ // 如果同时 bizTagFlag === 1 和 displayFlag === 1,bizTagFlag 优先级更高,会按照标签形式显示
4938
+ res.data.bannerItemList = (res?.data?.bannerItemList ?? [])?.filter((item)=>item?.displayFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES || item?.bizTagFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES);
4939
+ setBizId({
4940
+ personId: res.data?.personId || "",
4941
+ inEncounterId: res.data?.inEncounterId || ""
4942
+ });
4943
+ fetchBizTagListByExample();
4944
+ firstDisplayWidthRatio.value = res.data.bannerItemList[0]?.displayWidthRatio || 1;
4945
+ if (!__props.bizId) initBannerInfo.value = res?.data;
4946
+ bannerInfo.value = res?.data;
5085
4947
  }
5086
- }, {
5087
- immediate: true
4948
+ };
4949
+ // 修改检查文字溢出的逻辑
4950
+ const checkTextOverflow = (event)=>{
4951
+ const target = event.currentTarget;
4952
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
4953
+ isTextOverflowing.value = target.offsetWidth < target.scrollWidth;
4954
+ });
4955
+ };
4956
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.watch)(()=>__props.bizId, async ()=>{
4957
+ await queryBannerConfig();
5088
4958
  });
5089
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.watch)(()=>props.tagList, ()=>{
5090
- tableData.value = props.tagList || [];
4959
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(async ()=>{
4960
+ await queryBannerConfig();
5091
4961
  });
5092
4962
  /**
5093
- *
5094
- * @param value 下拉框选择
5095
- */ function change(value) {
5096
- if (attrs['onUpdate:modelValue']) attrs['onUpdate:modelValue'](value);
5097
- emit('change', value);
4963
+ * 获取当前的标签
4964
+ */ async function fetchBizTagListByExample() {
4965
+ if (!tagBizId.value || !tagBizIdTypeCode) {
4966
+ tagIds.value = [];
4967
+ return;
4968
+ }
4969
+ let [, result] = await queryBizTagListByExample({
4970
+ bizIdTypeCode: tagBizIdTypeCode,
4971
+ bizId: tagBizId.value
4972
+ });
4973
+ if (result?.success) tagIds.value = (result.data || []).map((item)=>item.tagId);
5098
4974
  }
5099
- // 计算当前显示的标签数组
5100
- const currentTagsArray = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>getModelValueArray(attrs.modelValue));
4975
+ __expose({
4976
+ refresh: queryBannerConfig,
4977
+ popoverSelector: popoverSelector
4978
+ });
5101
4979
  return (_ctx, _cache)=>{
5102
- const _component_el_button = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-button");
5103
- const _component_el_popover = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-popover");
5104
- const _component_el_icon = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-icon");
5105
- return (0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", {
5106
- ref_key: "containerRef",
5107
- ref: containerRef,
5108
- class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)(props.class)
4980
+ const _component_el_text = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-text");
4981
+ return (0, __WEBPACK_EXTERNAL_MODULE_vue__.withDirectives)(((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", {
4982
+ class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
4983
+ {
4984
+ ['bg-fill-lighter']: _ctx.isBg
4985
+ },
4986
+ "flex px-[10px] py-2 text-base text-black items-center"
4987
+ ]),
4988
+ style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)(_ctx.isBg ? "border-top: 1px solid #dfebff" : '')
5109
4989
  }, [
5110
- props.multiple ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, {
5111
- key: 0
4990
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_1, [
4991
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_2, [
4992
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", {
4993
+ class: "cursor-pointer",
4994
+ ref_key: "popoverSelector",
4995
+ ref: popoverSelector,
4996
+ onClick: _cache[0] || (_cache[0] = ($event)=>emits('avatarClick'))
4997
+ }, [
4998
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(pro_avatar), {
4999
+ class: "h-8 w-8 rounded-full",
5000
+ type: bannerInfo.value?.genderCode === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.SEX_CODE).MAN ? (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(utils_AVATAR_TYPE_CODE).MAN : bannerInfo.value?.genderCode === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.SEX_CODE).WOMAN ? (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(utils_AVATAR_TYPE_CODE).WOMAN : (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(utils_AVATAR_TYPE_CODE).DEFAULT
5001
+ }, null, 8, [
5002
+ "type"
5003
+ ])
5004
+ ], 512),
5005
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_3, [
5006
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_4, [
5007
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", {
5008
+ class: "text-lg w-full font-bold overflow-hidden text-ellipsis whitespace-nowrap leading-7",
5009
+ onMouseenter: checkTextOverflow
5010
+ }, [
5011
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTooltip), {
5012
+ disabled: !isTextOverflowing.value,
5013
+ content: bannerInfo.value?.personName
5014
+ }, {
5015
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5016
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(bannerInfo.value?.personName ?? "--"), 1)
5017
+ ]),
5018
+ _: 1
5019
+ }, 8, [
5020
+ "disabled",
5021
+ "content"
5022
+ ])
5023
+ ], 32),
5024
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_5, [
5025
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_6, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(bannerInfo.value?.age ?? "--"), 1),
5026
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_7, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(bannerInfo.value?.genderDesc ?? "--"), 1)
5027
+ ])
5028
+ ])
5029
+ ])
5030
+ ]),
5031
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", _hoisted_8, [
5032
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(BANNER_COMPONENT_CONFIG)[_ctx.code].bizIdTypeCode === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BIZ_ID_TYPE_CODE).IENC_ENCOUNTER ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", _hoisted_9, [
5033
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_10, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(bannerInfo.value?.inpatientStatusDesc ?? "--"), 1),
5034
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(bannerInfo.value?.inpatientDays ?? "--"), 1)
5035
+ ])) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.createCommentVNode)("", true)
5036
+ ])
5037
+ ]),
5038
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", {
5039
+ class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5040
+ "grid gap-2 flex-1",
5041
+ {
5042
+ [`grid-cols-${layoutColumns.value}`]: true
5043
+ }
5044
+ ])
5112
5045
  }, [
5113
- ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(currentTagsArray.value.slice(0, realMaxNum.value), (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTag), {
5114
- key: item,
5115
- style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)({
5116
- background: allTagsMap.value.get(item)?.background,
5117
- color: allTagsMap.value.get(item)?.color,
5118
- borderColor: allTagsMap.value.get(item)?.color,
5119
- '--el-tag-text-color': allTagsMap.value.get(item)?.color,
5120
- '--el-tag-hover-color': allTagsMap.value.get(item)?.color
5121
- }),
5122
- closable: !props.disabled,
5046
+ ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(bannerInfo.value?.bannerItemList ?? [], (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", {
5047
+ key: item.formDesignDetailId,
5123
5048
  class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5124
- 'mr-4'
5125
- ]),
5126
- size: props.tagSize,
5127
- "disable-transitions": true,
5128
- onClose: ($event)=>handleClose(item)
5129
- }, {
5130
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5131
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(allTagsMap.value.get(item)?.tagNameDisplay || item), 1)
5132
- ]),
5133
- _: 2
5134
- }, 1032, [
5135
- "style",
5136
- "closable",
5137
- "size",
5138
- "onClose"
5139
- ]))), 128)),
5140
- currentTagsArray.value.length > realMaxNum.value ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_popover, {
5141
- key: 0,
5142
- placement: "bottom",
5143
- trigger: "hover"
5144
- }, {
5145
- reference: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5146
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(_component_el_button, {
5147
- ref_key: "moreButtonRef",
5148
- ref: moreButtonRef,
5149
- style: {
5150
- "margin-left": "0"
5151
- },
5152
- class: "mr-4"
5153
- }, {
5154
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5155
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)("更多 +" + (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(currentTagsArray.value.length - realMaxNum.value), 1)
5156
- ]),
5157
- _: 1
5158
- }, 512)
5159
- ]),
5160
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5161
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", tag_selectvue_type_script_lang_ts_setup_true_hoisted_1, [
5162
- ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(currentTagsArray.value.slice(realMaxNum.value), (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTag), {
5163
- key: item,
5164
- style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)({
5165
- background: allTagsMap.value.get(item)?.background,
5166
- color: allTagsMap.value.get(item)?.color,
5167
- borderColor: allTagsMap.value.get(item)?.color,
5168
- '--el-tag-text-color': allTagsMap.value.get(item)?.color,
5169
- '--el-tag-hover-color': allTagsMap.value.get(item)?.color
5170
- }),
5171
- closable: !props.disabled,
5172
- size: props.tagSize,
5173
- "disable-transitions": true,
5174
- onClose: ($event)=>handleClose(item)
5049
+ "min-h-6",
5050
+ {
5051
+ 'col-span-full': item.bizTagFlag === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG).YES,
5052
+ [`col-span-${Math.floor(item.displayWidthRatio * Number(layoutColumns.value))}`]: item.bizTagFlag !== (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG).YES
5053
+ }
5054
+ ])
5055
+ }, [
5056
+ item.bizTagFlag === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG).YES ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", _hoisted_11, [
5057
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_12, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(item.labelNameDisplay) + ":", 1),
5058
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_13, [
5059
+ 'inEncounterBizTagList' === item.bindingFieldNo && inEncounterBizTagList.value.length ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, {
5060
+ key: 0
5061
+ }, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(inEncounterBizTagList.value, (tag)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTag), {
5062
+ key: tag.bizTagId || tag.tagId,
5063
+ class: "mr-2",
5064
+ size: "default"
5175
5065
  }, {
5176
5066
  default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5177
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(allTagsMap.value.get(item)?.tagNameDisplay || item), 1)
5067
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(tag.tagName), 1)
5178
5068
  ]),
5179
5069
  _: 2
5180
- }, 1032, [
5181
- "style",
5182
- "closable",
5183
- "size",
5184
- "onClose"
5185
- ]))), 128))
5070
+ }, 1024))), 128)) : 'personBizTagList' === item.bindingFieldNo && personBizTagList.value.length ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, {
5071
+ key: 1
5072
+ }, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(personBizTagList.value, (tag)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTag), {
5073
+ key: tag.bizTagId || tag.tagId,
5074
+ class: "mr-2",
5075
+ size: "default"
5076
+ }, {
5077
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5078
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(tag.tagName), 1)
5079
+ ]),
5080
+ _: 2
5081
+ }, 1024))), 128)) : ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("span", _hoisted_14, "--"))
5186
5082
  ])
5187
- ]),
5188
- _: 1
5189
- })) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.createCommentVNode)("", true),
5190
- selectVisible.value && !props.disabled ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(SelectDropdown, {
5191
- key: 1,
5192
- modelValue: selectValue.value,
5193
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>selectValue.value = $event),
5194
- "table-data": tableData.value,
5195
- extraTagIds: extraTagIds.value,
5196
- "all-tags-map": allTagsMap.value,
5197
- multiple: true,
5198
- disabled: props.disabled,
5199
- "tag-size": props.tagSize,
5200
- "has-select": currentTagsArray.value,
5201
- placeholder: "请选择",
5202
- onChange: _cache[1] || (_cache[1] = ()=>{
5203
- if (!props.multiple) handleSelectConfirm();
5204
- }),
5205
- onBlur: handleSelectConfirm
5206
- }, null, 8, [
5207
- "modelValue",
5208
- "table-data",
5209
- "extraTagIds",
5210
- "all-tags-map",
5211
- "disabled",
5212
- "tag-size",
5213
- "has-select"
5214
- ])) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.createCommentVNode)("", true),
5215
- selectVisible.value || props.disabled ? (0, __WEBPACK_EXTERNAL_MODULE_vue__.createCommentVNode)("", true) : ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_button, {
5216
- key: 2,
5217
- style: {
5218
- "margin-left": "0"
5219
- },
5220
- class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5221
- "!border-primary",
5222
- {
5223
- 'pointer-events-none': props.disabled
5224
- }
5225
- ]),
5226
- onClick: showSelect
5227
- }, {
5228
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5229
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(_component_el_icon, null, {
5230
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5231
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__element_sun_icons_vue__.Plus), {
5232
- class: "text-primary"
5233
- })
5083
+ ])) : ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", {
5084
+ key: 1,
5085
+ class: "w-full overflow-hidden text-ellipsis whitespace-nowrap",
5086
+ onMouseenter: checkTextOverflow
5087
+ }, [
5088
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_15, [
5089
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(_component_el_text, {
5090
+ class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5091
+ 'text-[#555]',
5092
+ getDynamicCssClasses(item.comptControlCssList)
5234
5093
  ]),
5235
- _: 1
5236
- })
5237
- ]),
5238
- _: 1
5239
- }, 8, [
5240
- "class"
5241
- ]))
5242
- ], 64)) : ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(SelectDropdown, {
5243
- key: 1,
5244
- modelValue: selectValue.value,
5245
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event)=>selectValue.value = $event),
5246
- "table-data": tableData.value,
5247
- extraTagIds: extraTagIds.value,
5248
- "all-tags-map": allTagsMap.value,
5249
- multiple: false,
5250
- disabled: props.disabled,
5251
- "tag-size": props.tagSize,
5252
- placeholder: "请选择标签",
5253
- "has-select": (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).modelValue,
5254
- onChange: change
5255
- }, null, 8, [
5256
- "modelValue",
5257
- "table-data",
5258
- "extraTagIds",
5259
- "all-tags-map",
5260
- "disabled",
5261
- "tag-size",
5262
- "has-select"
5263
- ]))
5264
- ], 2);
5094
+ style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)(getColorStyle(item.comptControlCssList)),
5095
+ type: ""
5096
+ }, {
5097
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5098
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(item.labelNameDisplay) + ":", 1)
5099
+ ]),
5100
+ _: 2
5101
+ }, 1032, [
5102
+ "class",
5103
+ "style"
5104
+ ])
5105
+ ]),
5106
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTooltip), {
5107
+ disabled: !isTextOverflowing.value,
5108
+ content: item.dataValue
5109
+ }, {
5110
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5111
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_16, [
5112
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(_component_el_text, {
5113
+ class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5114
+ 'text-[#555]',
5115
+ getDynamicCssClasses(item.comptControlCssList)
5116
+ ]),
5117
+ style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)(getColorStyle(item.comptControlCssList)),
5118
+ type: ""
5119
+ }, {
5120
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5121
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(item.dataValue || "--"), 1)
5122
+ ]),
5123
+ _: 2
5124
+ }, 1032, [
5125
+ "class",
5126
+ "style"
5127
+ ])
5128
+ ])
5129
+ ]),
5130
+ _: 2
5131
+ }, 1032, [
5132
+ "disabled",
5133
+ "content"
5134
+ ])
5135
+ ], 32))
5136
+ ], 2))), 128))
5137
+ ], 2)
5138
+ ], 6)), [
5139
+ [
5140
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.vLoading),
5141
+ loading.value
5142
+ ]
5143
+ ]);
5265
5144
  };
5266
5145
  }
5267
5146
  });
5268
- const tag_select_exports_ = tag_selectvue_type_script_lang_ts_setup_true;
5269
- /* ESM default export */ const tag_select = tag_select_exports_;
5270
- const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_1 = {
5271
- class: "border-r border-[#C9C9C9] pr-5 mr-5"
5272
- };
5273
- const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_2 = {
5274
- class: "flex min-w-32 items-start justify-start"
5275
- };
5276
- const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_3 = {
5277
- class: "ml-[12px] flex-1"
5278
- };
5279
- const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_4 = {
5280
- class: "flex-1 flex flex-col gap-3 text-center"
5281
- };
5282
- const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_5 = {
5283
- class: "flex-1 text-center leading-[14px]"
5284
- };
5285
- const _hoisted_6 = {
5286
- class: "min-w-7"
5287
- };
5288
- const _hoisted_7 = {
5289
- class: "min-w-7 ml-2"
5290
- };
5291
- const _hoisted_8 = {
5292
- class: "flex justify-center"
5293
- };
5294
- const _hoisted_9 = {
5295
- key: 0,
5296
- class: "rounded-full bg-[#00AB44] px-1.5 text-center text-white mt-3 flex-1"
5297
- };
5298
- const _hoisted_10 = {
5299
- class: "mr-2"
5300
- };
5301
- const _hoisted_11 = {
5302
- key: 0,
5303
- class: "w-full flex"
5304
- };
5305
- const _hoisted_12 = {
5306
- class: "text-[#555]"
5307
- };
5308
- const _hoisted_13 = {
5309
- class: "flex flex-1"
5310
- };
5311
- const _hoisted_14 = {
5312
- key: 2
5313
- };
5314
- const _hoisted_15 = {
5315
- class: "text-[#555]"
5316
- };
5317
- const _hoisted_16 = {
5318
- class: "w-full text-[#555]"
5319
- };
5320
- const _hoisted_17 = {
5321
- class: "w-full flex"
5322
- };
5323
- const _hoisted_18 = {
5324
- class: "el-text text-[#555]"
5325
- };
5326
- const _hoisted_19 = {
5327
- class: "flex flex-1"
5328
- };
5329
- const _hoisted_20 = {
5330
- key: 1
5331
- };
5332
- // import DefaultPatient from "../patient-access/images/default_patient.vue";
5333
- // import ManPatient from "../patient-access/images/man_patient.vue";
5334
- // import WomanPatient from "../patient-access/images/women_patient.vue";
5335
- const PERSON = "PERSON"; //应该放到BIZ_ID_TYPE_CODE这个里面
5336
- /* ESM default export */ const BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent = /*@__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
5337
- __name: 'BannerInfo',
5147
+ const BannerInfo_exports_ = BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent;
5148
+ /* ESM default export */ const BannerInfo = BannerInfo_exports_;
5149
+ /* ESM default export */ const printTemplatevue_type_script_lang_ts_setup_true_name_printDialog = /*@__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
5150
+ __name: 'printTemplate',
5338
5151
  props: {
5339
- code: {},
5340
- bizId: {},
5341
- isBg: {
5342
- type: Boolean,
5343
- default: true
5344
- },
5345
- menuId: {}
5152
+ printTemplateList: {},
5153
+ onTemplateConfirm: {
5154
+ type: Function
5155
+ }
5346
5156
  },
5347
- emits: [
5348
- "avatarClick"
5349
- ],
5350
- setup (__props, { expose: __expose, emit: __emit }) {
5351
- const emits = __emit;
5352
- const BIZ_ID_TYPE_CODE_MAP = {
5353
- [__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BANNER_CODE.PATIENT]: PERSON,
5354
- [__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BANNER_CODE.REGISTRATION]: PERSON,
5355
- [__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BANNER_CODE.CHARGE]: PERSON,
5356
- [__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BANNER_CODE.HOSPITALIZATION]: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BIZ_ID_TYPE_CODE.IENC_ENCOUNTER
5357
- };
5358
- const tagBizIdTypeCode = BIZ_ID_TYPE_CODE_MAP[__props.code];
5359
- const loading = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
5360
- const bannerInfo = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
5361
- const initBannerInfo = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
5362
- const isTextOverflowing = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
5363
- const firstDisplayWidthRatio = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(1);
5364
- const tagBizId = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)("");
5365
- const tagIds = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)([]);
5366
- const inEncounterBizTagList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)([]);
5367
- const personBizTagList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)([]);
5368
- // const checkPrice = ref(0);
5369
- const popoverSelector = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
5370
- // 确保布局列数为有效数字
5371
- const parseLayoutColumns = (value)=>{
5372
- const parsed = parseInt(value, 10);
5373
- if (isNaN(parsed)) return 6;
5374
- return parsed;
5375
- };
5376
- // 计算实际布局列数
5377
- const layoutColumns = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>parseLayoutColumns(bannerInfo.value?.layoutTypeCode));
5378
- // 创建CSS类映射的计算属性
5379
- const getDynamicCssClasses = (comptControlCssList)=>{
5380
- if (!comptControlCssList?.length) return "";
5381
- const classes = [];
5382
- comptControlCssList.forEach(({ cssTypeCode, cssValue })=>{
5383
- if ("true" === cssValue) switch(cssTypeCode){
5384
- case "FONT_BOLD":
5385
- classes.push("font-bold");
5386
- break;
5387
- case "FONT_ITALIC":
5388
- classes.push("italic");
5389
- break;
5390
- case "FONT_UNDERLINE":
5391
- classes.push("underline");
5392
- break;
5393
- case "FONT_LINE_THROUGH":
5394
- classes.push("line-through");
5395
- break;
5157
+ setup (__props, { expose: __expose }) {
5158
+ const props = __props;
5159
+ const templateModel = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)({
5160
+ templateId: ""
5161
+ });
5162
+ const operation = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)("");
5163
+ const rules = (0, __WEBPACK_EXTERNAL_MODULE_vue__.reactive)({
5164
+ templateId: [
5165
+ {
5166
+ required: true,
5167
+ message: "请选择打印模板",
5168
+ trigger: [
5169
+ "blur",
5170
+ "change"
5171
+ ]
5396
5172
  }
5173
+ ]
5174
+ });
5175
+ const dialogRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
5176
+ const formRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
5177
+ const printTemplateList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>props.printTemplateList ?? []);
5178
+ // 打开弹窗
5179
+ const openDialog = async ()=>{
5180
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
5181
+ templateModel.value.templateId = printTemplateList.value?.find((item)=>1 === item.defaultFlag)?.receiptTemplateRuleId ?? "";
5182
+ dialogRef.value?.open();
5397
5183
  });
5398
- return classes.join(" ");
5399
5184
  };
5400
- // 获取颜色样式
5401
- const getColorStyle = (comptControlCssList)=>{
5402
- const colorItem = comptControlCssList?.find((item)=>"FONT_COLOR" === item.cssTypeCode);
5403
- return colorItem?.cssValue ? {
5404
- color: colorItem.cssValue
5405
- } : {};
5185
+ // 提交
5186
+ const handleConfirmSubmit = async ()=>{
5187
+ operation.value = "";
5188
+ await formRef.value?.validate();
5189
+ const printTemplate = printTemplateList.value.find((item)=>item.receiptTemplateRuleId === templateModel.value.templateId);
5190
+ await props.onTemplateConfirm(printTemplate);
5191
+ operation.value = "confirm";
5192
+ return [];
5406
5193
  };
5407
- function setBizId(data) {
5408
- switch(tagBizIdTypeCode){
5409
- case PERSON:
5410
- tagBizId.value = data.personId;
5411
- break;
5412
- case __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BIZ_ID_TYPE_CODE.IENC_ENCOUNTER:
5413
- tagBizId.value = data.inEncounterId;
5414
- break;
5415
- default:
5416
- tagBizId.value = data.personId;
5417
- }
5418
- }
5419
- /**
5420
- * 从banner数据中提取业务标签数据
5421
- */ function extractBizTagIds(bannerItemList) {
5422
- // 筛选出 bizTagFlag === 1 的项
5423
- const bizTagItems = bannerItemList.filter((item)=>item?.bizTagFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES);
5424
- // 重置数组
5425
- inEncounterBizTagList.value = [];
5426
- personBizTagList.value = [];
5427
- bizTagItems.forEach((item)=>{
5428
- if (!item.dataValue) return;
5429
- try {
5430
- // 解析 JSON 字符串
5431
- const parsedData = JSON.parse(item.dataValue);
5432
- if (Array.isArray(parsedData) && parsedData.length > 0) {
5433
- // 根据 bindingFieldNo 分类存储完整的数据
5434
- if ("inEncounterBizTagList" === item.bindingFieldNo) inEncounterBizTagList.value = parsedData;
5435
- else if ("personBizTagList" === item.bindingFieldNo) personBizTagList.value = parsedData;
5436
- }
5437
- } catch (error) {
5438
- console.error(`Failed to parse ${item.bindingFieldNo}:`, error);
5439
- }
5440
- });
5441
- console.log("inEncounterBizTagList:", inEncounterBizTagList.value);
5442
- console.log("personBizTagList:", personBizTagList.value);
5443
- }
5444
- /** 获取banner配置 */ const queryBannerConfig = async ()=>{
5445
- loading.value = true;
5446
- if (!__props.bizId && initBannerInfo.value) {
5447
- bannerInfo.value = initBannerInfo.value;
5448
- tagIds.value = [];
5449
- tagBizId.value = "";
5450
- loading.value = false;
5451
- return;
5452
- }
5453
- const [, res] = await getBannerDataByBizId({
5454
- menuId: __props.menuId,
5455
- designFlag: __props.bizId ? __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.NO : __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES,
5456
- bizId: __props.bizId ? __props.bizId : void 0,
5457
- bizIdTypeCode: BANNER_COMPONENT_CONFIG[__props.code].bizIdTypeCode,
5458
- componentId: BANNER_COMPONENT_CONFIG[__props.code].componentId
5459
- });
5460
- loading.value = false;
5461
- if (res?.success) {
5462
- // 提取业务标签ID(bizTagFlag === 1)
5463
- extractBizTagIds(res?.data?.bannerItemList ?? []);
5464
- // 保留 displayFlag === 1 或 bizTagFlag === 1 的项用于显示
5465
- res.data.bannerItemList = (res?.data?.bannerItemList ?? [])?.filter((item)=>item?.displayFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES || item?.bizTagFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES);
5466
- setBizId({
5467
- personId: res.data?.personId || "",
5468
- inEncounterId: res.data?.inEncounterId || ""
5469
- });
5470
- fetchBizTagListByExample();
5471
- firstDisplayWidthRatio.value = res.data.bannerItemList[0]?.displayWidthRatio || 1;
5472
- if (!__props.bizId) initBannerInfo.value = res?.data;
5473
- bannerInfo.value = res?.data;
5474
- }
5475
- };
5476
- // 修改检查文字溢出的逻辑
5477
- const checkTextOverflow = (event)=>{
5478
- const target = event.currentTarget;
5479
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
5480
- isTextOverflowing.value = target.offsetWidth < target.scrollWidth;
5481
- });
5482
- };
5483
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.watch)(()=>__props.bizId, async ()=>{
5484
- await queryBannerConfig();
5485
- });
5486
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(async ()=>{
5487
- await queryBannerConfig();
5194
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
5195
+ openDialog();
5488
5196
  });
5489
- /**
5490
- * 获取当前的标签
5491
- */ async function fetchBizTagListByExample() {
5492
- if (!tagBizId.value || !tagBizIdTypeCode) {
5493
- tagIds.value = [];
5494
- return;
5495
- }
5496
- let [, result] = await queryBizTagListByExample({
5497
- bizIdTypeCode: tagBizIdTypeCode,
5498
- bizId: tagBizId.value
5499
- });
5500
- if (result?.success) tagIds.value = (result.data || []).map((item)=>item.tagId);
5501
- }
5502
5197
  __expose({
5503
- refresh: queryBannerConfig,
5504
- popoverSelector: popoverSelector
5198
+ open: openDialog
5505
5199
  });
5506
- return (_ctx, _cache)=>{
5507
- const _component_el_text = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-text");
5508
- return (0, __WEBPACK_EXTERNAL_MODULE_vue__.withDirectives)(((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", {
5509
- class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5510
- {
5511
- ['bg-fill-lighter']: _ctx.isBg
5512
- },
5513
- "flex px-[10px] py-2 text-base text-black items-center"
5514
- ]),
5515
- style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)(_ctx.isBg ? "border-top: 1px solid #dfebff" : '')
5516
- }, [
5517
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_1, [
5518
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_2, [
5519
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", {
5520
- class: "cursor-pointer",
5521
- ref_key: "popoverSelector",
5522
- ref: popoverSelector,
5523
- onClick: _cache[0] || (_cache[0] = ($event)=>emits('avatarClick'))
5524
- }, [
5525
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(pro_avatar), {
5526
- class: "h-8 w-8 rounded-full",
5527
- type: bannerInfo.value?.genderCode === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.SEX_CODE).MAN ? (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(utils_AVATAR_TYPE_CODE).MAN : bannerInfo.value?.genderCode === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.SEX_CODE).WOMAN ? (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(utils_AVATAR_TYPE_CODE).WOMAN : (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(utils_AVATAR_TYPE_CODE).DEFAULT
5528
- }, null, 8, [
5529
- "type"
5530
- ])
5531
- ], 512),
5532
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_3, [
5533
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_4, [
5534
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", {
5535
- class: "text-lg w-full font-bold overflow-hidden text-ellipsis whitespace-nowrap leading-7",
5536
- onMouseenter: checkTextOverflow
5537
- }, [
5538
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTooltip), {
5539
- disabled: !isTextOverflowing.value,
5540
- content: bannerInfo.value?.personName
5541
- }, {
5542
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5543
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(bannerInfo.value?.personName ?? "--"), 1)
5544
- ]),
5545
- _: 1
5546
- }, 8, [
5547
- "disabled",
5548
- "content"
5549
- ])
5550
- ], 32),
5551
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent_hoisted_5, [
5552
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_6, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(bannerInfo.value?.age ?? "--"), 1),
5553
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_7, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(bannerInfo.value?.genderDesc ?? "--"), 1)
5554
- ])
5555
- ])
5556
- ])
5557
- ]),
5558
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", _hoisted_8, [
5559
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(BANNER_COMPONENT_CONFIG)[_ctx.code].bizIdTypeCode === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.BIZ_ID_TYPE_CODE).IENC_ENCOUNTER ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", _hoisted_9, [
5560
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_10, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(bannerInfo.value?.inpatientStatusDesc ?? "--"), 1),
5561
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(bannerInfo.value?.inpatientDays ?? "--"), 1)
5562
- ])) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.createCommentVNode)("", true)
5563
- ])
5564
- ]),
5565
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", {
5566
- class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5567
- "grid gap-2 flex-1",
5568
- {
5569
- [`grid-cols-${layoutColumns.value}`]: true
5570
- }
5571
- ])
5572
- }, [
5573
- ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(bannerInfo.value?.bannerItemList ?? [], (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", {
5574
- key: item.formDesignDetailId,
5575
- class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5576
- "min-h-6",
5577
- {
5578
- [`col-span-${Math.floor(item.displayWidthRatio * Number(layoutColumns.value))}`]: true
5579
- }
5580
- ])
5581
- }, [
5582
- item.bizTagFlag === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG).YES ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", _hoisted_11, [
5583
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_12, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(item.labelNameDisplay) + ":", 1),
5584
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_13, [
5585
- 'inEncounterBizTagList' === item.bindingFieldNo && inEncounterBizTagList.value.length ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, {
5586
- key: 0
5587
- }, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(inEncounterBizTagList.value, (tag)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTag), {
5588
- key: tag.bizTagId || tag.tagId,
5589
- class: "mr-2",
5590
- size: "default"
5591
- }, {
5592
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5593
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(tag.tagName), 1)
5594
- ]),
5595
- _: 2
5596
- }, 1024))), 128)) : 'personBizTagList' === item.bindingFieldNo && personBizTagList.value.length ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, {
5597
- key: 1
5598
- }, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(personBizTagList.value, (tag)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTag), {
5599
- key: tag.bizTagId || tag.tagId,
5600
- class: "mr-2",
5601
- size: "default"
5602
- }, {
5603
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5604
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(tag.tagName), 1)
5605
- ]),
5606
- _: 2
5607
- }, 1024))), 128)) : ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("span", _hoisted_14, "--"))
5608
- ])
5609
- ])) : ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", {
5610
- key: 1,
5611
- class: "w-full overflow-hidden text-ellipsis whitespace-nowrap",
5612
- onMouseenter: checkTextOverflow
5613
- }, [
5614
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_15, [
5615
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(_component_el_text, {
5616
- class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5617
- 'text-[#555]',
5618
- getDynamicCssClasses(item.comptControlCssList)
5619
- ]),
5620
- style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)(getColorStyle(item.comptControlCssList)),
5621
- type: ""
5200
+ return (_ctx, _cache)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(pro_dialog), {
5201
+ class: "w-2/5",
5202
+ ref_key: "dialogRef",
5203
+ ref: dialogRef,
5204
+ title: "打印模板",
5205
+ "close-on-click-modal": false,
5206
+ "destroy-on-close": true,
5207
+ "confirm-fn": ()=>handleConfirmSubmit(),
5208
+ "align-center": true,
5209
+ onClose: _cache[1] || (_cache[1] = async ()=>{
5210
+ if (!operation.value || 'cancel' === operation.value) await props.onTemplateConfirm(void 0, 'cancel');
5211
+ }),
5212
+ onCancel: _cache[2] || (_cache[2] = ($event)=>operation.value = 'cancel')
5213
+ }, {
5214
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5215
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElForm), {
5216
+ ref_key: "formRef",
5217
+ ref: formRef,
5218
+ model: templateModel.value,
5219
+ rules: rules,
5220
+ "label-width": "100px"
5221
+ }, {
5222
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5223
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElFormItem), {
5224
+ label: "打印模板",
5225
+ prop: "templateId",
5226
+ required: ""
5622
5227
  }, {
5623
5228
  default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5624
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(item.labelNameDisplay) + ":", 1)
5625
- ]),
5626
- _: 2
5627
- }, 1032, [
5628
- "class",
5629
- "style"
5630
- ])
5631
- ]),
5632
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTooltip), {
5633
- disabled: !isTextOverflowing.value,
5634
- content: item.dataValue
5635
- }, {
5636
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5637
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_16, [
5638
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(_component_el_text, {
5639
- class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5640
- 'text-[#555]',
5641
- getDynamicCssClasses(item.comptControlCssList)
5642
- ]),
5643
- style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)(getColorStyle(item.comptControlCssList)),
5644
- type: ""
5229
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElSelect), {
5230
+ class: "w-64",
5231
+ placeholder: "请选择打印模板",
5232
+ modelValue: templateModel.value.templateId,
5233
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>templateModel.value.templateId = $event)
5645
5234
  }, {
5646
5235
  default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5647
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(item.dataValue || "--"), 1)
5236
+ ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(printTemplateList.value, (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElOption), {
5237
+ key: item.receiptTemplateRuleId,
5238
+ label: item.receiptTemplateName,
5239
+ value: item.receiptTemplateRuleId
5240
+ }, null, 8, [
5241
+ "label",
5242
+ "value"
5243
+ ]))), 128))
5648
5244
  ]),
5649
- _: 2
5650
- }, 1032, [
5651
- "class",
5652
- "style"
5653
- ])
5654
- ])
5655
- ]),
5656
- _: 2
5657
- }, 1032, [
5658
- "disabled",
5659
- "content"
5660
- ])
5661
- ], 32))
5662
- ], 2))), 128)),
5663
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", {
5664
- class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
5665
- "min-h-6",
5666
- {
5667
- [`col-span-${Number(layoutColumns.value)}`]: true
5668
- }
5669
- ])
5670
- }, [
5671
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", _hoisted_17, [
5672
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_18, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(tagBizIdTypeCode) === PERSON ? "患者标签:" : "就诊标签:"), 1),
5673
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", _hoisted_19, [
5674
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(tagBizIdTypeCode) && tagIds.value.length ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(tag_select, {
5675
- key: 0,
5676
- modelValue: tagIds.value,
5677
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>tagIds.value = $event),
5678
- tagSize: "default",
5679
- bizIdTypeCode: (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(tagBizIdTypeCode),
5680
- disabled: true
5681
- }, null, 8, [
5682
- "modelValue",
5683
- "bizIdTypeCode"
5684
- ])) : ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("span", _hoisted_20, "--"))
5685
- ])
5686
- ])
5687
- ], 2)
5688
- ], 2)
5689
- ], 6)), [
5690
- [
5691
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.vLoading),
5692
- loading.value
5693
- ]
5694
- ]);
5695
- };
5696
- }
5697
- });
5698
- const BannerInfo_exports_ = BannerInfovue_type_script_setup_true_lang_ts_name_bannerComponent;
5699
- /* ESM default export */ const BannerInfo = BannerInfo_exports_;
5700
- /* ESM default export */ const printTemplatevue_type_script_lang_ts_setup_true_name_printDialog = /*@__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
5701
- __name: 'printTemplate',
5702
- props: {
5703
- printTemplateList: {},
5704
- onTemplateConfirm: {
5705
- type: Function
5706
- }
5707
- },
5708
- setup (__props, { expose: __expose }) {
5709
- const props = __props;
5710
- const templateModel = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)({
5711
- templateId: ""
5712
- });
5713
- const operation = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)("");
5714
- const rules = (0, __WEBPACK_EXTERNAL_MODULE_vue__.reactive)({
5715
- templateId: [
5716
- {
5717
- required: true,
5718
- message: "请选择打印模板",
5719
- trigger: [
5720
- "blur",
5721
- "change"
5722
- ]
5723
- }
5724
- ]
5725
- });
5726
- const dialogRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
5727
- const formRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
5728
- const printTemplateList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>props.printTemplateList ?? []);
5729
- // 打开弹窗
5730
- const openDialog = async ()=>{
5731
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
5732
- templateModel.value.templateId = printTemplateList.value?.find((item)=>1 === item.defaultFlag)?.receiptTemplateRuleId ?? "";
5733
- dialogRef.value?.open();
5734
- });
5735
- };
5736
- // 提交
5737
- const handleConfirmSubmit = async ()=>{
5738
- operation.value = "";
5739
- await formRef.value?.validate();
5740
- const printTemplate = printTemplateList.value.find((item)=>item.receiptTemplateRuleId === templateModel.value.templateId);
5741
- await props.onTemplateConfirm(printTemplate);
5742
- operation.value = "confirm";
5743
- return [];
5744
- };
5745
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
5746
- openDialog();
5747
- });
5748
- __expose({
5749
- open: openDialog
5750
- });
5751
- return (_ctx, _cache)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(pro_dialog), {
5752
- class: "w-2/5",
5753
- ref_key: "dialogRef",
5754
- ref: dialogRef,
5755
- title: "打印模板",
5756
- "close-on-click-modal": false,
5757
- "destroy-on-close": true,
5758
- "confirm-fn": ()=>handleConfirmSubmit(),
5759
- "align-center": true,
5760
- onClose: _cache[1] || (_cache[1] = async ()=>{
5761
- if (!operation.value || 'cancel' === operation.value) await props.onTemplateConfirm(void 0, 'cancel');
5762
- }),
5763
- onCancel: _cache[2] || (_cache[2] = ($event)=>operation.value = 'cancel')
5764
- }, {
5765
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5766
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElForm), {
5767
- ref_key: "formRef",
5768
- ref: formRef,
5769
- model: templateModel.value,
5770
- rules: rules,
5771
- "label-width": "100px"
5772
- }, {
5773
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5774
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElFormItem), {
5775
- label: "打印模板",
5776
- prop: "templateId",
5777
- required: ""
5778
- }, {
5779
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5780
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElSelect), {
5781
- class: "w-64",
5782
- placeholder: "请选择打印模板",
5783
- modelValue: templateModel.value.templateId,
5784
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>templateModel.value.templateId = $event)
5785
- }, {
5786
- default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
5787
- ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(printTemplateList.value, (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElOption), {
5788
- key: item.receiptTemplateRuleId,
5789
- label: item.receiptTemplateName,
5790
- value: item.receiptTemplateRuleId
5791
- }, null, 8, [
5792
- "label",
5793
- "value"
5794
- ]))), 128))
5795
- ]),
5796
- _: 1
5797
- }, 8, [
5798
- "modelValue"
5245
+ _: 1
5246
+ }, 8, [
5247
+ "modelValue"
5799
5248
  ])
5800
5249
  ]),
5801
5250
  _: 1
@@ -7201,6 +6650,523 @@ const hospital_selectvue_type_script_setup_true_lang_tsx_name_HospitalSelect_hoi
7201
6650
  });
7202
6651
  const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_tsx_name_HospitalSelect;
7203
6652
  /* ESM default export */ const hospital_select = hospital_select_exports_;
6653
+ /**
6654
+ * [1-10473-1]根据条件查询标签分组V1(含标签)
6655
+ * @param params
6656
+ * @returns
6657
+ */ const queryTagGroupByExampleV1 = (params)=>(0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.dictRequest)('/tag/queryTagGroupByExampleV1', params);
6658
+ /**
6659
+ * ]根据条件查询标签列表
6660
+ * @param params
6661
+ * @returns
6662
+ */ const queryTagListByExample = (params)=>(0, __WEBPACK_EXTERNAL_MODULE__sun_toolkit_request__.dictRequest)('/tag/queryTagListByExample', params);
6663
+ const BACKGROUND_COLOR = 'BACKGROUND_COLOR';
6664
+ const FONT_COLOR = 'FONT_COLOR';
6665
+ // 工具函数:将标签信息添加到映射中
6666
+ const addTagToMap = (map, tag)=>{
6667
+ map.set(tag.tagId, {
6668
+ tagNameDisplay: tag.tagNameDisplay,
6669
+ background: (tag?.tagCssList || []).find((item)=>item.cssTypeCode === BACKGROUND_COLOR)?.cssValue || '',
6670
+ color: (tag?.tagCssList || []).find((item)=>item.cssTypeCode === FONT_COLOR)?.cssValue || ''
6671
+ });
6672
+ };
6673
+ // 工具函数:将 modelValue 转换为数组
6674
+ const getModelValueArray = (value)=>{
6675
+ if (!value) return [];
6676
+ return Array.isArray(value) ? value : [
6677
+ value
6678
+ ];
6679
+ };
6680
+ // 工具函数:创建标签映射
6681
+ const createTagsMap = (tableData, extraTagIds)=>{
6682
+ const map = new Map();
6683
+ // 处理分组标签
6684
+ tableData.forEach((group)=>{
6685
+ group.tagList.forEach((tag)=>{
6686
+ addTagToMap(map, tag);
6687
+ });
6688
+ });
6689
+ // 处理额外标签
6690
+ extraTagIds.forEach((tag)=>{
6691
+ addTagToMap(map, tag);
6692
+ });
6693
+ return map;
6694
+ };
6695
+ // 工具函数:获取选项样式
6696
+ const getOptionStyle = (tagId, selectList, allTagsMap)=>selectList.includes(tagId) ? {} : {
6697
+ background: allTagsMap.get(tagId)?.background,
6698
+ color: allTagsMap.get(tagId)?.color
6699
+ };
6700
+ // 工具函数:检查选项是否被禁用
6701
+ const isOptionDisabled = (tagId, selectList)=>selectList.includes(tagId);
6702
+ /* ESM default export */ const SelectDropdownvue_type_script_lang_ts_setup_true = /*@__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
6703
+ __name: 'SelectDropdown',
6704
+ props: {
6705
+ modelValue: {},
6706
+ hasSelect: {},
6707
+ tableData: {},
6708
+ extraTagIds: {},
6709
+ allTagsMap: {},
6710
+ multiple: {
6711
+ type: Boolean
6712
+ },
6713
+ disabled: {
6714
+ type: Boolean
6715
+ },
6716
+ tagSize: {},
6717
+ placeholder: {}
6718
+ },
6719
+ emits: [
6720
+ 'update:modelValue',
6721
+ 'change',
6722
+ 'blur'
6723
+ ],
6724
+ setup (__props, { emit: __emit }) {
6725
+ const props = __props;
6726
+ const emit = __emit;
6727
+ const selectList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>getModelValueArray(props.hasSelect));
6728
+ const selectClass = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>props.multiple ? 'w-60' : 'w-full');
6729
+ const innerValue = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)({
6730
+ get: ()=>props.modelValue,
6731
+ set: (val)=>emit('update:modelValue', val)
6732
+ });
6733
+ function handleChange(val) {
6734
+ emit('change', val);
6735
+ }
6736
+ function handleBlur(e) {
6737
+ emit('blur', e);
6738
+ }
6739
+ return (_ctx, _cache)=>{
6740
+ const _component_el_option = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-option");
6741
+ const _component_el_option_group = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-option-group");
6742
+ const _component_el_select = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-select");
6743
+ return (0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_select, {
6744
+ modelValue: innerValue.value,
6745
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>innerValue.value = $event),
6746
+ multiple: props.multiple ?? true,
6747
+ filterable: "",
6748
+ clearable: "",
6749
+ disabled: props.disabled ?? false,
6750
+ class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)(selectClass.value),
6751
+ placeholder: props.placeholder ?? '请选择',
6752
+ onChange: handleChange,
6753
+ onBlur: handleBlur,
6754
+ "collapse-tags": "",
6755
+ "collapse-tags-tooltip": ""
6756
+ }, {
6757
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
6758
+ ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(_ctx.extraTagIds, (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_option, {
6759
+ key: item.tagId,
6760
+ style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(getOptionStyle)(item.tagId, selectList.value, props.allTagsMap)),
6761
+ disabled: (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(isOptionDisabled)(item.tagId, selectList.value),
6762
+ label: item.tagNameDisplay,
6763
+ value: item.tagId
6764
+ }, null, 8, [
6765
+ "style",
6766
+ "disabled",
6767
+ "label",
6768
+ "value"
6769
+ ]))), 128)),
6770
+ ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(props.tableData, (group)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_option_group, {
6771
+ key: group.tagGroupId,
6772
+ label: group.tagGroupNameDisplay,
6773
+ value: group.tagGroupId
6774
+ }, {
6775
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
6776
+ ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(group.tagList, (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_option, {
6777
+ key: item.tagId,
6778
+ style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(getOptionStyle)(item.tagId, selectList.value, props.allTagsMap)),
6779
+ disabled: (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(isOptionDisabled)(item.tagId, selectList.value),
6780
+ label: item.tagNameDisplay,
6781
+ value: item.tagId
6782
+ }, null, 8, [
6783
+ "style",
6784
+ "disabled",
6785
+ "label",
6786
+ "value"
6787
+ ]))), 128))
6788
+ ]),
6789
+ _: 2
6790
+ }, 1032, [
6791
+ "label",
6792
+ "value"
6793
+ ]))), 128))
6794
+ ]),
6795
+ _: 1
6796
+ }, 8, [
6797
+ "modelValue",
6798
+ "multiple",
6799
+ "disabled",
6800
+ "class",
6801
+ "placeholder"
6802
+ ]);
6803
+ };
6804
+ }
6805
+ });
6806
+ const SelectDropdown_exports_ = SelectDropdownvue_type_script_lang_ts_setup_true;
6807
+ /* ESM default export */ const SelectDropdown = SelectDropdown_exports_;
6808
+ const tag_selectvue_type_script_lang_ts_setup_true_hoisted_1 = {
6809
+ class: "flex flex-wrap gap-2"
6810
+ };
6811
+ const SELECT_WIDTH = 15; // rem
6812
+ const TAG_MARGIN = 1; // 1rem
6813
+ /* ESM default export */ const tag_selectvue_type_script_lang_ts_setup_true = /*@__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
6814
+ __name: 'index',
6815
+ props: {
6816
+ bizIdTypeCode: {
6817
+ default: ''
6818
+ },
6819
+ bizId: {
6820
+ default: ''
6821
+ },
6822
+ class: {
6823
+ default: 'w-full'
6824
+ },
6825
+ queryExtra: {
6826
+ type: Boolean
6827
+ },
6828
+ tagList: {
6829
+ default: ()=>[]
6830
+ },
6831
+ disabled: {
6832
+ type: Boolean,
6833
+ default: false
6834
+ },
6835
+ multiple: {
6836
+ type: Boolean,
6837
+ default: true
6838
+ },
6839
+ tagSize: {
6840
+ default: 'large'
6841
+ }
6842
+ },
6843
+ emits: [
6844
+ 'change'
6845
+ ],
6846
+ setup (__props, { emit: __emit }) {
6847
+ const emit = __emit;
6848
+ const attrs = (0, __WEBPACK_EXTERNAL_MODULE_vue__.useAttrs)();
6849
+ const loading = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(true);
6850
+ const props = __props;
6851
+ const tableData = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(props.tagList || []);
6852
+ const extraTagIds = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)([]);
6853
+ const selectValue = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)('');
6854
+ const selectVisible = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
6855
+ const SelectRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
6856
+ const containerRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
6857
+ const moreButtonRef = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)();
6858
+ const realMaxNum = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(2);
6859
+ // 计算rem到px的转换
6860
+ const getRemValue = (rem)=>rem * parseFloat(getComputedStyle(document.documentElement).fontSize);
6861
+ // 常量定义
6862
+ const MORE_BUTTON_WIDTH = 5 + TAG_MARGIN; // rem
6863
+ // 计算所有标签的映射,方便通过tagId查找tagNameDisplay
6864
+ const allTagsMap = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>createTagsMap(tableData.value, extraTagIds.value));
6865
+ const calcMaxNum = (wrapperNode)=>{
6866
+ if (!wrapperNode || !attrs.modelValue) return;
6867
+ const modelValueArray = getModelValueArray(attrs.modelValue);
6868
+ if (!modelValueArray.length) {
6869
+ realMaxNum.value = 0;
6870
+ return;
6871
+ }
6872
+ // 计算每个标签的宽度
6873
+ const tagWidths = modelValueArray.map((item)=>{
6874
+ // 为每个标签创建独立的容器
6875
+ const tagContainer = document.createElement('div');
6876
+ tagContainer.style.position = 'absolute';
6877
+ tagContainer.style.visibility = 'hidden';
6878
+ document.body.appendChild(tagContainer);
6879
+ const vnode = (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTag, {
6880
+ closable: !props.disabled,
6881
+ size: props.tagSize,
6882
+ disableTransitions: true,
6883
+ class: 'mr-4'
6884
+ }, ()=>allTagsMap.value.get(item)?.tagNameDisplay || item);
6885
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.render)(vnode, tagContainer);
6886
+ const width = tagContainer.firstElementChild?.getBoundingClientRect().width || 0;
6887
+ document.body.removeChild(tagContainer);
6888
+ return width + getRemValue(TAG_MARGIN);
6889
+ });
6890
+ // 计算可用宽度
6891
+ const availableWidth = wrapperNode.offsetWidth - (props.disabled ? 0 : getRemValue(SELECT_WIDTH));
6892
+ const totalWidth = tagWidths.reduce((sum, width)=>sum + width, 0);
6893
+ // 如果所有标签都能显示,直接显示所有标签
6894
+ if (totalWidth <= availableWidth) {
6895
+ realMaxNum.value = modelValueArray.length;
6896
+ return;
6897
+ }
6898
+ // 如果放不下所有标签,需要显示更多按钮
6899
+ const availableWidthWithMore = availableWidth - getRemValue(MORE_BUTTON_WIDTH);
6900
+ // 计算可以显示多少个标签
6901
+ let currentWidth = 0;
6902
+ let count = 0;
6903
+ for (const width of tagWidths)if (currentWidth + width <= availableWidthWithMore) {
6904
+ currentWidth += width;
6905
+ count++;
6906
+ } else break;
6907
+ realMaxNum.value = count;
6908
+ };
6909
+ // Methods
6910
+ const handleClose = (bizId)=>{
6911
+ const currentArray = getModelValueArray(attrs.modelValue);
6912
+ const newModelValue = currentArray.filter((id)=>id !== bizId);
6913
+ change(props.multiple ? newModelValue : newModelValue[0] || '');
6914
+ };
6915
+ const showSelect = ()=>{
6916
+ selectVisible.value = true;
6917
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
6918
+ SelectRef.value?.focus();
6919
+ });
6920
+ };
6921
+ const handleSelectConfirm = ()=>{
6922
+ if (!selectValue.value) {
6923
+ selectVisible.value = false;
6924
+ return;
6925
+ }
6926
+ const currentValues = getModelValueArray(attrs.modelValue);
6927
+ if (props.multiple) {
6928
+ change([
6929
+ ...currentValues,
6930
+ ...Array.isArray(selectValue.value) ? selectValue.value : [
6931
+ selectValue.value
6932
+ ]
6933
+ ]);
6934
+ selectValue.value = [];
6935
+ } else {
6936
+ change([
6937
+ ...currentValues,
6938
+ selectValue.value
6939
+ ]);
6940
+ selectValue.value = '';
6941
+ }
6942
+ selectVisible.value = false;
6943
+ };
6944
+ async function fetchData() {
6945
+ if (!props.bizIdTypeCode) return;
6946
+ loading.value = true;
6947
+ let [, result] = await queryTagGroupByExampleV1({
6948
+ bizIdTypeCode: props.bizIdTypeCode,
6949
+ bizId: props.bizId,
6950
+ enabledFlag: __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.FLAG.YES
6951
+ });
6952
+ loading.value = false;
6953
+ if (result?.success) {
6954
+ tableData.value = result.data;
6955
+ if (props.queryExtra) fetchExtraTag();
6956
+ calcMaxNum(containerRef.value);
6957
+ }
6958
+ }
6959
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
6960
+ fetchData();
6961
+ // 等待所有标签渲染完成
6962
+ });
6963
+ async function fetchExtraTag() {
6964
+ const modelValueArray = getModelValueArray(attrs.modelValue);
6965
+ if (modelValueArray.length) {
6966
+ let otherTagIds = modelValueArray.filter((item)=>!allTagsMap.value.get(item));
6967
+ if (otherTagIds.length) {
6968
+ let [, result] = await queryTagListByExample({
6969
+ tagIds: otherTagIds
6970
+ });
6971
+ if (result?.success) extraTagIds.value = result.data;
6972
+ }
6973
+ }
6974
+ }
6975
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.watch)(()=>attrs.modelValue, ()=>{
6976
+ if (props.queryExtra && !loading.value) fetchExtraTag();
6977
+ if (!props.multiple) {
6978
+ selectValue.value = attrs?.modelValue || '';
6979
+ return;
6980
+ }
6981
+ const modelValueArray = getModelValueArray(attrs.modelValue);
6982
+ if (modelValueArray.length) // 等待所有标签渲染完成
6983
+ {
6984
+ if (containerRef.value) calcMaxNum(containerRef.value);
6985
+ }
6986
+ }, {
6987
+ immediate: true
6988
+ });
6989
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.watch)(()=>props.tagList, ()=>{
6990
+ tableData.value = props.tagList || [];
6991
+ });
6992
+ /**
6993
+ *
6994
+ * @param value 下拉框选择
6995
+ */ function change(value) {
6996
+ if (attrs['onUpdate:modelValue']) attrs['onUpdate:modelValue'](value);
6997
+ emit('change', value);
6998
+ }
6999
+ // 计算当前显示的标签数组
7000
+ const currentTagsArray = (0, __WEBPACK_EXTERNAL_MODULE_vue__.computed)(()=>getModelValueArray(attrs.modelValue));
7001
+ return (_ctx, _cache)=>{
7002
+ const _component_el_button = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-button");
7003
+ const _component_el_popover = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-popover");
7004
+ const _component_el_icon = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-icon");
7005
+ return (0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)("div", {
7006
+ ref_key: "containerRef",
7007
+ ref: containerRef,
7008
+ class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)(props.class)
7009
+ }, [
7010
+ props.multiple ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, {
7011
+ key: 0
7012
+ }, [
7013
+ ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(currentTagsArray.value.slice(0, realMaxNum.value), (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTag), {
7014
+ key: item,
7015
+ style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)({
7016
+ background: allTagsMap.value.get(item)?.background,
7017
+ color: allTagsMap.value.get(item)?.color,
7018
+ borderColor: allTagsMap.value.get(item)?.color,
7019
+ '--el-tag-text-color': allTagsMap.value.get(item)?.color,
7020
+ '--el-tag-hover-color': allTagsMap.value.get(item)?.color
7021
+ }),
7022
+ closable: !props.disabled,
7023
+ class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
7024
+ 'mr-4'
7025
+ ]),
7026
+ size: props.tagSize,
7027
+ "disable-transitions": true,
7028
+ onClose: ($event)=>handleClose(item)
7029
+ }, {
7030
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
7031
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(allTagsMap.value.get(item)?.tagNameDisplay || item), 1)
7032
+ ]),
7033
+ _: 2
7034
+ }, 1032, [
7035
+ "style",
7036
+ "closable",
7037
+ "size",
7038
+ "onClose"
7039
+ ]))), 128)),
7040
+ currentTagsArray.value.length > realMaxNum.value ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_popover, {
7041
+ key: 0,
7042
+ placement: "bottom",
7043
+ trigger: "hover"
7044
+ }, {
7045
+ reference: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
7046
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(_component_el_button, {
7047
+ ref_key: "moreButtonRef",
7048
+ ref: moreButtonRef,
7049
+ style: {
7050
+ "margin-left": "0"
7051
+ },
7052
+ class: "mr-4"
7053
+ }, {
7054
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
7055
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)("更多 +" + (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(currentTagsArray.value.length - realMaxNum.value), 1)
7056
+ ]),
7057
+ _: 1
7058
+ }, 512)
7059
+ ]),
7060
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
7061
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("div", tag_selectvue_type_script_lang_ts_setup_true_hoisted_1, [
7062
+ ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(true), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementBlock)(__WEBPACK_EXTERNAL_MODULE_vue__.Fragment, null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderList)(currentTagsArray.value.slice(realMaxNum.value), (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE_element_sun__.ElTag), {
7063
+ key: item,
7064
+ style: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeStyle)({
7065
+ background: allTagsMap.value.get(item)?.background,
7066
+ color: allTagsMap.value.get(item)?.color,
7067
+ borderColor: allTagsMap.value.get(item)?.color,
7068
+ '--el-tag-text-color': allTagsMap.value.get(item)?.color,
7069
+ '--el-tag-hover-color': allTagsMap.value.get(item)?.color
7070
+ }),
7071
+ closable: !props.disabled,
7072
+ size: props.tagSize,
7073
+ "disable-transitions": true,
7074
+ onClose: ($event)=>handleClose(item)
7075
+ }, {
7076
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
7077
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(allTagsMap.value.get(item)?.tagNameDisplay || item), 1)
7078
+ ]),
7079
+ _: 2
7080
+ }, 1032, [
7081
+ "style",
7082
+ "closable",
7083
+ "size",
7084
+ "onClose"
7085
+ ]))), 128))
7086
+ ])
7087
+ ]),
7088
+ _: 1
7089
+ })) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.createCommentVNode)("", true),
7090
+ selectVisible.value && !props.disabled ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(SelectDropdown, {
7091
+ key: 1,
7092
+ modelValue: selectValue.value,
7093
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>selectValue.value = $event),
7094
+ "table-data": tableData.value,
7095
+ extraTagIds: extraTagIds.value,
7096
+ "all-tags-map": allTagsMap.value,
7097
+ multiple: true,
7098
+ disabled: props.disabled,
7099
+ "tag-size": props.tagSize,
7100
+ "has-select": currentTagsArray.value,
7101
+ placeholder: "请选择",
7102
+ onChange: _cache[1] || (_cache[1] = ()=>{
7103
+ if (!props.multiple) handleSelectConfirm();
7104
+ }),
7105
+ onBlur: handleSelectConfirm
7106
+ }, null, 8, [
7107
+ "modelValue",
7108
+ "table-data",
7109
+ "extraTagIds",
7110
+ "all-tags-map",
7111
+ "disabled",
7112
+ "tag-size",
7113
+ "has-select"
7114
+ ])) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.createCommentVNode)("", true),
7115
+ selectVisible.value || props.disabled ? (0, __WEBPACK_EXTERNAL_MODULE_vue__.createCommentVNode)("", true) : ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_button, {
7116
+ key: 2,
7117
+ style: {
7118
+ "margin-left": "0"
7119
+ },
7120
+ class: (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeClass)([
7121
+ "!border-primary",
7122
+ {
7123
+ 'pointer-events-none': props.disabled
7124
+ }
7125
+ ]),
7126
+ onClick: showSelect
7127
+ }, {
7128
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
7129
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(_component_el_icon, null, {
7130
+ default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
7131
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(__WEBPACK_EXTERNAL_MODULE__element_sun_icons_vue__.Plus), {
7132
+ class: "text-primary"
7133
+ })
7134
+ ]),
7135
+ _: 1
7136
+ })
7137
+ ]),
7138
+ _: 1
7139
+ }, 8, [
7140
+ "class"
7141
+ ]))
7142
+ ], 64)) : ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(SelectDropdown, {
7143
+ key: 1,
7144
+ modelValue: selectValue.value,
7145
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event)=>selectValue.value = $event),
7146
+ "table-data": tableData.value,
7147
+ extraTagIds: extraTagIds.value,
7148
+ "all-tags-map": allTagsMap.value,
7149
+ multiple: false,
7150
+ disabled: props.disabled,
7151
+ "tag-size": props.tagSize,
7152
+ placeholder: "请选择标签",
7153
+ "has-select": (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).modelValue,
7154
+ onChange: change
7155
+ }, null, 8, [
7156
+ "modelValue",
7157
+ "table-data",
7158
+ "extraTagIds",
7159
+ "all-tags-map",
7160
+ "disabled",
7161
+ "tag-size",
7162
+ "has-select"
7163
+ ]))
7164
+ ], 2);
7165
+ };
7166
+ }
7167
+ });
7168
+ const tag_select_exports_ = tag_selectvue_type_script_lang_ts_setup_true;
7169
+ /* ESM default export */ const tag_select = tag_select_exports_;
7204
7170
  /**
7205
7171
  * [1-10013-1]根据条件查询用户列表
7206
7172
  * @param params