sun-biz 0.0.4-beta.31 → 0.0.4-beta.33

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.
@@ -361,7 +361,7 @@ function _isSlot(s) {
361
361
  return 'function' == typeof s || '[object Object]' === Object.prototype.toString.call(s) && !(0, __WEBPACK_EXTERNAL_MODULE_vue__.isVNode)(s);
362
362
  }
363
363
  const TableColumn = (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
364
- name: 'TableColumn',
364
+ name: "TableColumn",
365
365
  props: {
366
366
  column: {
367
367
  required: true,
@@ -369,13 +369,13 @@ const TableColumn = (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
369
369
  }
370
370
  },
371
371
  setup (props, { slots }) {
372
- const enumMap = (0, __WEBPACK_EXTERNAL_MODULE_vue__.inject)('enumMap', (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(new Map())); // 注入数据(带默认值)
373
- const hiddenDefaultText = (0, __WEBPACK_EXTERNAL_MODULE_vue__.inject)('hiddenDefaultText'); // 渲染表格数据
372
+ const enumMap = (0, __WEBPACK_EXTERNAL_MODULE_vue__.inject)("enumMap", (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(new Map())); // 注入数据(带默认值)
373
+ const hiddenDefaultText = (0, __WEBPACK_EXTERNAL_MODULE_vue__.inject)("hiddenDefaultText"); // 渲染表格数据
374
374
  const renderCellData = (item, scope)=>{
375
375
  const rawValue = handleRowAccordingToProp(scope.row, item.prop);
376
376
  let result = enumMap.value.get(item.prop) && item.isFilterEnum ? filterEnum(rawValue, enumMap.value.get(item.prop), item.fieldNames) : formatValue(rawValue);
377
- if (item?.autoFormatterNumber) result = formatDecimalNumber(result) ?? '--';
378
- if (hiddenDefaultText && '--' === result) result = ' ';
377
+ if (item?.autoFormatterNumber) result = formatDecimalNumber(result) ?? "--";
378
+ if (hiddenDefaultText && "--" === result) result = " ";
379
379
  return item?.supportCopyAndTips ? (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(copy_text_with_tooltip, {
380
380
  supportTextCopy: item?.supportTextCopy,
381
381
  align: "text-center",
@@ -387,12 +387,12 @@ const TableColumn = (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
387
387
  result
388
388
  ]);
389
389
  }; // 获取 tag 类型
390
- const getTagType = (item, scope)=>filterEnum(handleRowAccordingToProp(scope.row, item.prop), enumMap.value.get(item.prop), item.fieldNames, 'tag') || 'primary';
390
+ const getTagType = (item, scope)=>filterEnum(handleRowAccordingToProp(scope.row, item.prop), enumMap.value.get(item.prop), item.fieldNames, "tag") || "primary";
391
391
  const renderColumn = (column)=>{
392
392
  const { label, ...restColumn } = column;
393
393
  const columnProps = {
394
394
  ...restColumn,
395
- align: column.align ?? 'center',
395
+ align: column.align ?? "center",
396
396
  fixed: column.fixed ?? false,
397
397
  showOverflowTooltip: column.showOverflowTooltip ?? column.prop !== OPERATION
398
398
  };
@@ -412,41 +412,56 @@ const TableColumn = (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
412
412
  }, [
413
413
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)("*")
414
414
  ]),
415
- 'function' == typeof column.label ? column.label() : column.label
415
+ "function" == typeof column.label ? column.label() : column.label
416
416
  ], 2)
417
417
  ];
418
418
  };
419
419
  const renderDefault = (scope)=>{
420
- if (column._children?.length) return column._children.map((child)=>renderColumn(child));
421
- // 自定义 render 函数
422
- if (column.render) {
420
+ if (Array.isArray(column._children) && column._children.length > 0) return column._children.map((child)=>renderColumn(child));
421
+ // Handle custom render function
422
+ if ("function" == typeof column.render) {
423
423
  if (column.editable && scope.row.editable) {
424
- let _slot;
424
+ let _slot; // 计算 propPath
425
+ const getPropPath = ()=>{
426
+ const indexPath = scope.row.indexPath;
427
+ if (!indexPath) return "";
428
+ const parts = indexPath.split("-");
429
+ if (parts.length > 1) return `tableData.${parts[0]}.${scope._self.props.treeProps.children}.${scope.$index}.${column.prop}`;
430
+ // normal table
431
+ return `tableData.${parts[1]}.${column.prop}`;
432
+ }; // 获取校验规则
433
+ const getRules = ()=>{
434
+ if (!column.rules) return [];
435
+ return "function" == typeof column.rules ? column.rules(scope.row) : column.rules;
436
+ };
425
437
  return [
426
438
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-form-item"), {
427
439
  style: {
428
- marginBottom: '0'
440
+ marginBottom: "0"
429
441
  },
430
- prop: `tableData.${scope.$index}.${column.prop}`,
431
- rules: column.rules ? 'function' == typeof column.rules ? column.rules(scope.row) : column.rules : []
442
+ prop: getPropPath(),
443
+ rules: getRules()
432
444
  }, _isSlot(_slot = column.render(scope.row, scope.$index)) ? _slot : {
433
445
  default: ()=>[
434
446
  _slot
435
447
  ],
436
448
  _: 1
437
449
  }, 8, [
450
+ "prop",
438
451
  "rules"
439
452
  ])
440
453
  ];
441
- }
454
+ } // Non-editable custom render
442
455
  return [
443
456
  column.render(scope.row, scope.$index)
444
457
  ];
445
- } // 插槽内容
446
- if (column.prop && slots?.[handleProp(column.prop)]) return [
447
- slots[handleProp(column.prop)](scope)
448
- ];
449
- // Tag 类型
458
+ } // Handle slot content
459
+ if (column.prop) {
460
+ const slotName = handleProp(column.prop);
461
+ if (slots?.[slotName]) return [
462
+ slots[slotName](scope)
463
+ ];
464
+ } // Handle tag type
450
465
  if (column.tag) {
451
466
  let _slot2;
452
467
  return [
@@ -461,7 +476,7 @@ const TableColumn = (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
461
476
  "type"
462
477
  ])
463
478
  ];
464
- } // 默认渲染
479
+ } // Default render
465
480
  return [
466
481
  renderCellData(column, scope)
467
482
  ];
@@ -1830,7 +1845,7 @@ function dbgrid_component_settingvue_type_script_setup_true_lang_tsx_isSlot(s) {
1830
1845
  const dbgrid_component_setting_exports_ = /*#__PURE__*/ (0, exportHelper["default"])(dbgrid_component_settingvue_type_script_setup_true_lang_tsx, [
1831
1846
  [
1832
1847
  '__scopeId',
1833
- "data-v-c49e91ea"
1848
+ "data-v-00469ccc"
1834
1849
  ]
1835
1850
  ]);
1836
1851
  /* ESM default export */ const dbgrid_component_setting = dbgrid_component_setting_exports_;
@@ -2181,9 +2196,9 @@ const Tablevue_type_script_setup_true_lang_tsx_name_Table_hoisted_1 = {
2181
2196
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderSlot)(_ctx.$slots, "empty")
2182
2197
  ]),
2183
2198
  default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
2184
- ((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.tableColumns, (item, index)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(RenderColumn, {
2199
+ ((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.tableColumns, (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(RenderColumn, {
2185
2200
  "column-obj": item,
2186
- key: index
2201
+ key: item.prop
2187
2202
  }, (0, __WEBPACK_EXTERNAL_MODULE_vue__.createSlots)({
2188
2203
  _: 2
2189
2204
  }, [
@@ -2402,6 +2417,12 @@ const SELECTION = 'selection';
2402
2417
  dragTipsClassName: {
2403
2418
  default: ''
2404
2419
  },
2420
+ settingIconWidth: {
2421
+ default: 36
2422
+ },
2423
+ columnsConfig: {
2424
+ default: ()=>[]
2425
+ },
2405
2426
  scrollLoad: {
2406
2427
  type: Function,
2407
2428
  default: void 0
@@ -2412,7 +2433,8 @@ const SELECTION = 'selection';
2412
2433
  "size-page-change",
2413
2434
  "current-page-change",
2414
2435
  "sort-change",
2415
- "scroll"
2436
+ "scroll",
2437
+ "columns-config-change"
2416
2438
  ],
2417
2439
  setup (__props, { expose: __expose, emit: __emit }) {
2418
2440
  const props = __props;
@@ -2657,6 +2679,7 @@ const SELECTION = 'selection';
2657
2679
  }));
2658
2680
  proTableRef.value?.clearSort();
2659
2681
  serveColumns.value = column;
2682
+ emit('columns-config-change', column);
2660
2683
  } catch (error) {
2661
2684
  console.log(error);
2662
2685
  }
@@ -2785,7 +2808,7 @@ const SELECTION = 'selection';
2785
2808
  ...item
2786
2809
  };
2787
2810
  });
2788
- if (!props.componentNo) return propsColumns;
2811
+ if (!(props.componentNo || serveColumns.value?.length)) return propsColumns;
2789
2812
  {
2790
2813
  let result = propsColumns.map((cur)=>({
2791
2814
  displayFlag: cur.isHidden || cur.defaultDisplayFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.ENABLED_FLAG.NO ? __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.ENABLED_FLAG.NO : __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.ENABLED_FLAG.YES,
@@ -2819,7 +2842,9 @@ const SELECTION = 'selection';
2819
2842
  const clientHeight = document.querySelector(`#${uuid.value} .el-table__body-wrapper`)?.clientHeight;
2820
2843
  const scrollHeight = document.querySelector(`#${uuid.value} .el-table__body`)?.scrollHeight;
2821
2844
  const threshold = props.scrollThreshold; // 距离底部80px时触发加载
2822
- if (scrollHeight - event.scrollTop - clientHeight < threshold && event.scrollTop > oldScrollTop) {
2845
+ const bottomOffset = scrollHeight - event.scrollTop - clientHeight;
2846
+ if (event.scrollTop < oldScrollTop && 0 === bottomOffset) proTableRef.value.setScrollTop(0);
2847
+ if (bottomOffset < threshold && event.scrollTop > oldScrollTop) {
2823
2848
  console.log('触发加载更多数据');
2824
2849
  props.scrollLoad();
2825
2850
  }
@@ -2835,7 +2860,7 @@ const SELECTION = 'selection';
2835
2860
  if (props.componentNo) {
2836
2861
  result = result.map((item, index)=>({
2837
2862
  ...item,
2838
- minWidth: 0 === index ? (item.minWidth || 40) + 40 : item.minWidth
2863
+ minWidth: 0 === index ? (item.minWidth || props.settingIconWidth) + props.settingIconWidth : item.minWidth
2839
2864
  }));
2840
2865
  if (exportFileFlag.value && !result.find((cur)=>cur.type === SELECTION)) result = [
2841
2866
  {
@@ -2849,6 +2874,12 @@ const SELECTION = 'selection';
2849
2874
  }
2850
2875
  return result.filter((item)=>!item.isHidden && !(props.componentNo && !serveColumns.value?.length && item.defaultDisplayFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.ENABLED_FLAG.NO));
2851
2876
  });
2877
+ // 当 componentNo 存在时,监听 tableColumns 变化,触发 columns-change 事件
2878
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.watch)(()=>props.columnsConfig, (newColumnsConfig)=>{
2879
+ if (!props.componentNo && newColumnsConfig?.length) serveColumns.value = newColumnsConfig;
2880
+ }, {
2881
+ immediate: true
2882
+ });
2852
2883
  /**
2853
2884
  *
2854
2885
  * 是否展示当前拖拽提示
@@ -6988,7 +7019,8 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
6988
7019
  multiSelectFlag: {
6989
7020
  type: Boolean
6990
7021
  },
6991
- defaultValue: {}
7022
+ defaultValue: {},
7023
+ selectProps: {}
6992
7024
  },
6993
7025
  emits: [
6994
7026
  'change'
@@ -7002,6 +7034,7 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7002
7034
  const filterKeyWord = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(''); // 检索值
7003
7035
  const userList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)([]);
7004
7036
  const defaultValueInserted = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
7037
+ const selectProps = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(props.selectProps || {});
7005
7038
  const getUserList = async (data)=>{
7006
7039
  loading.value = true;
7007
7040
  const [, res] = await api_queryUserList({
@@ -7028,13 +7061,11 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7028
7061
  label: item.userName,
7029
7062
  value: item.userId
7030
7063
  }));
7031
- if (defaultList.length) {
7032
- list = (0, __WEBPACK_EXTERNAL_MODULE_lodash__.uniqBy)([
7033
- ...list,
7034
- ...defaultList
7035
- ], 'orgId');
7036
- defaultValueInserted.value = true;
7037
- }
7064
+ if (defaultList.length) list = (0, __WEBPACK_EXTERNAL_MODULE_lodash__.uniqBy)([
7065
+ ...list,
7066
+ ...defaultList
7067
+ ], 'userId');
7068
+ defaultValueInserted.value = true;
7038
7069
  userList.value = list.map((item)=>({
7039
7070
  ...item,
7040
7071
  label: item.userNo ? `${item.label || item.userName}|${item.userNo}` : item.label || item.userName
@@ -7049,6 +7080,12 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7049
7080
  deep: true,
7050
7081
  immediate: true
7051
7082
  });
7083
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.watch)(()=>props.selectProps, ()=>{
7084
+ selectProps.value = props.selectProps || {};
7085
+ }, {
7086
+ deep: true,
7087
+ immediate: true
7088
+ });
7052
7089
  const onChange = (value)=>{
7053
7090
  if (attrs['onUpdate:modelValue']) attrs['onUpdate:modelValue'](value);
7054
7091
  if (props.multiSelectFlag) emit('change', value);
@@ -7069,8 +7106,11 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7069
7106
  loading.value = false;
7070
7107
  }
7071
7108
  };
7109
+ const fetchData = async ()=>{
7110
+ await getUserList();
7111
+ };
7072
7112
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
7073
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
7113
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(async ()=>{
7074
7114
  if (props.keyWord && selectRef.value) {
7075
7115
  const inputEl = selectRef.value?.$el.querySelector('input');
7076
7116
  if (inputEl) {
@@ -7082,17 +7122,19 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7082
7122
  inputEl.dispatchEvent(event);
7083
7123
  }
7084
7124
  }
7125
+ await fetchData();
7085
7126
  });
7086
7127
  });
7087
7128
  __expose({
7088
7129
  selectRef,
7089
7130
  defaultValueInserted,
7090
- userList
7131
+ userList,
7132
+ fetchData
7091
7133
  });
7092
7134
  return (_ctx, _cache)=>{
7093
7135
  const _component_el_option = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-option");
7094
7136
  const _component_el_select = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-select");
7095
- return (0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_select, {
7137
+ return (0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_select, (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
7096
7138
  ref_key: "selectRef",
7097
7139
  ref: selectRef,
7098
7140
  remote: "",
@@ -7103,7 +7145,7 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7103
7145
  "remote-method": handelRemoteMethod,
7104
7146
  onClear: _cache[0] || (_cache[0] = ($event)=>userList.value = []),
7105
7147
  onChange: onChange
7106
- }, {
7148
+ }, selectProps.value), {
7107
7149
  label: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(({ label })=>[
7108
7150
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(label?.split('|')?.[0]), 1)
7109
7151
  ]),
@@ -7118,7 +7160,7 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7118
7160
  ]))), 128))
7119
7161
  ]),
7120
7162
  _: 1
7121
- }, 8, [
7163
+ }, 16, [
7122
7164
  "loading",
7123
7165
  "multiple"
7124
7166
  ]);
@@ -7431,8 +7473,11 @@ const user_select_exports_ = user_selectvue_type_script_setup_true_lang_ts_name_
7431
7473
  document.removeEventListener('keydown', handleKeydown, true);
7432
7474
  if (props.multiSelectFlag) document.removeEventListener('click', handleClickOutside);
7433
7475
  });
7476
+ const fetchData = async ()=>{
7477
+ await getBizUnitList();
7478
+ };
7434
7479
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
7435
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
7480
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(async ()=>{
7436
7481
  if (attrs.modelValue && Array.isArray(props.defaultValue) && props.defaultValue?.length) {
7437
7482
  if (props.multiSelectFlag) selectedValue.value = props.defaultValue.map((item)=>item.label || item.orgNameDisplay);
7438
7483
  else {
@@ -7455,6 +7500,23 @@ const user_select_exports_ = user_selectvue_type_script_setup_true_lang_ts_name_
7455
7500
  inputEl.dispatchEvent(event);
7456
7501
  }
7457
7502
  }
7503
+ await fetchData();
7504
+ if (attrs?.modelValue && (!props.defaultValue || Array.isArray(props.defaultValue) && !props.defaultValue.length)) {
7505
+ if (props.multiSelectFlag) {
7506
+ const items = bizUnitList.value.filter((item)=>attrs.modelValue?.includes(item.value));
7507
+ selectedValue.value = items.map((item)=>item.label || item.orgNameDisplay);
7508
+ selectedRows.value = items;
7509
+ } else {
7510
+ const item = bizUnitList.value.find((item)=>item.value === attrs?.modelValue);
7511
+ if (item?.label && selectedValue.value !== item.label) {
7512
+ selectedValue.value = item.label;
7513
+ selectedRows.value = [
7514
+ item
7515
+ ];
7516
+ }
7517
+ }
7518
+ defaultSetTableSelected.value = false;
7519
+ }
7458
7520
  });
7459
7521
  });
7460
7522
  __expose({
@@ -7463,7 +7525,8 @@ const user_select_exports_ = user_selectvue_type_script_setup_true_lang_ts_name_
7463
7525
  selectRef,
7464
7526
  popoverVisible,
7465
7527
  defaultSetTableSelected,
7466
- bizUnitList
7528
+ bizUnitList,
7529
+ fetchData
7467
7530
  });
7468
7531
  return (_ctx, _cache)=>{
7469
7532
  const _component_el_select = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-select");
@@ -7842,8 +7905,11 @@ const biz_unit_select_exports_ = biz_unit_selectvue_type_script_setup_true_lang_
7842
7905
  document.removeEventListener('keydown', handleKeydown, true);
7843
7906
  if (props.multiSelectFlag) document.removeEventListener('click', handleClickOutside);
7844
7907
  });
7908
+ const fetchData = async ()=>{
7909
+ await getDepartmentList();
7910
+ };
7845
7911
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
7846
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
7912
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(async ()=>{
7847
7913
  if (attrs.modelValue && Array.isArray(props.defaultValue) && props.defaultValue?.length) {
7848
7914
  if (props.multiSelectFlag) selectedValue.value = props.defaultValue.map((item)=>item.label || item.orgName);
7849
7915
  else {
@@ -7866,6 +7932,23 @@ const biz_unit_select_exports_ = biz_unit_selectvue_type_script_setup_true_lang_
7866
7932
  inputEl.dispatchEvent(event);
7867
7933
  }
7868
7934
  }
7935
+ await fetchData();
7936
+ if (attrs?.modelValue && (!props.defaultValue || Array.isArray(props.defaultValue) && !props.defaultValue.length)) {
7937
+ if (props.multiSelectFlag) {
7938
+ const items = departmentList.value.filter((item)=>attrs.modelValue?.includes(item.value));
7939
+ selectedValue.value = items.map((item)=>item.label || item.orgName);
7940
+ selectedRows.value = items;
7941
+ } else {
7942
+ const item = departmentList.value.find((item)=>item.value === attrs?.modelValue);
7943
+ if (item?.label && selectedValue.value !== item.label) {
7944
+ selectedValue.value = item.label;
7945
+ selectedRows.value = [
7946
+ item
7947
+ ];
7948
+ }
7949
+ }
7950
+ defaultSetTableSelected.value = false;
7951
+ }
7869
7952
  });
7870
7953
  });
7871
7954
  __expose({
@@ -7874,7 +7957,8 @@ const biz_unit_select_exports_ = biz_unit_selectvue_type_script_setup_true_lang_
7874
7957
  selectRef,
7875
7958
  popoverVisible,
7876
7959
  defaultSetTableSelected,
7877
- departmentList
7960
+ departmentList,
7961
+ fetchData
7878
7962
  });
7879
7963
  return (_ctx, _cache)=>{
7880
7964
  const _component_el_select = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-select");
@@ -8246,8 +8330,11 @@ const department_select_exports_ = department_selectvue_type_script_setup_true_l
8246
8330
  document.removeEventListener('keydown', handleKeydown, true);
8247
8331
  if (props.multiSelectFlag) document.removeEventListener('click', handleClickOutside);
8248
8332
  });
8333
+ const fetchData = async ()=>{
8334
+ await getWardList();
8335
+ };
8249
8336
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
8250
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
8337
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(async ()=>{
8251
8338
  if (attrs.modelValue && Array.isArray(props.defaultValue) && props.defaultValue?.length) {
8252
8339
  if (props.multiSelectFlag) selectedValue.value = props.defaultValue.map((item)=>item.label || item.orgName);
8253
8340
  else {
@@ -8270,6 +8357,23 @@ const department_select_exports_ = department_selectvue_type_script_setup_true_l
8270
8357
  inputEl.dispatchEvent(event);
8271
8358
  }
8272
8359
  }
8360
+ await fetchData();
8361
+ if (attrs?.modelValue && (!props.defaultValue || Array.isArray(props.defaultValue) && !props.defaultValue.length)) {
8362
+ if (props.multiSelectFlag) {
8363
+ const items = wardList.value.filter((item)=>attrs.modelValue?.includes(item.value));
8364
+ selectedValue.value = items.map((item)=>item.label || item.orgName);
8365
+ selectedRows.value = items;
8366
+ } else {
8367
+ const item = wardList.value.find((item)=>item.value === attrs?.modelValue);
8368
+ if (item?.label && selectedValue.value !== item.label) {
8369
+ selectedValue.value = item.label;
8370
+ selectedRows.value = [
8371
+ item
8372
+ ];
8373
+ }
8374
+ }
8375
+ defaultSetTableSelected.value = false;
8376
+ }
8273
8377
  });
8274
8378
  });
8275
8379
  __expose({
@@ -8278,7 +8382,8 @@ const department_select_exports_ = department_selectvue_type_script_setup_true_l
8278
8382
  selectRef,
8279
8383
  popoverVisible,
8280
8384
  defaultSetTableSelected,
8281
- wardList
8385
+ wardList,
8386
+ fetchData
8282
8387
  });
8283
8388
  return (_ctx, _cache)=>{
8284
8389
  const _component_el_select = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-select");
@@ -8547,27 +8652,35 @@ const DICT_SELECT = 'dictSelect';
8547
8652
  }, {
8548
8653
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs),
8549
8654
  bizIdTypeCode: __WEBPACK_EXTERNAL_MODULE_vue__.unref(attrs)?.extraProps?.bizIdTypeCode
8550
- }), null, 16)) : 'userSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(user_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
8551
- key: 4
8655
+ }), null, 16)) : 'userSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(user_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
8656
+ key: 4,
8657
+ ref_key: "componentRef",
8658
+ ref: componentRef
8552
8659
  }, {
8553
8660
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs),
8554
8661
  hospitalId: __WEBPACK_EXTERNAL_MODULE_vue__.unref(attrs)?.extraProps?.hospitalId
8555
- })), null, 16)) : 'bizUnitSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(biz_unit_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
8556
- key: 5
8662
+ }), null, 16)) : 'bizUnitSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(biz_unit_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
8663
+ key: 5,
8664
+ ref_key: "componentRef",
8665
+ ref: componentRef
8557
8666
  }, {
8558
8667
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs),
8559
8668
  hospitalId: __WEBPACK_EXTERNAL_MODULE_vue__.unref(attrs)?.extraProps?.hospitalId
8560
- })), null, 16)) : 'departmentSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(department_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
8561
- key: 6
8669
+ }), null, 16)) : 'departmentSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(department_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
8670
+ key: 6,
8671
+ ref_key: "componentRef",
8672
+ ref: componentRef
8562
8673
  }, {
8563
8674
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs),
8564
8675
  hospitalId: __WEBPACK_EXTERNAL_MODULE_vue__.unref(attrs)?.extraProps?.hospitalId
8565
- })), null, 16)) : 'wardSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(ward_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
8566
- key: 7
8676
+ }), null, 16)) : 'wardSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(ward_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
8677
+ key: 7,
8678
+ ref_key: "componentRef",
8679
+ ref: componentRef
8567
8680
  }, {
8568
8681
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs),
8569
8682
  hospitalId: __WEBPACK_EXTERNAL_MODULE_vue__.unref(attrs)?.extraProps?.hospitalId
8570
- })), null, 16)) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component === DICT_SELECT ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(dict_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
8683
+ }), null, 16)) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component === DICT_SELECT ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(dict_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
8571
8684
  key: 8
8572
8685
  }, {
8573
8686
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs)
package/dist/index.js CHANGED
@@ -361,7 +361,7 @@ function _isSlot(s) {
361
361
  return 'function' == typeof s || '[object Object]' === Object.prototype.toString.call(s) && !(0, __WEBPACK_EXTERNAL_MODULE_vue__.isVNode)(s);
362
362
  }
363
363
  const TableColumn = (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
364
- name: 'TableColumn',
364
+ name: "TableColumn",
365
365
  props: {
366
366
  column: {
367
367
  required: true,
@@ -369,13 +369,13 @@ const TableColumn = (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
369
369
  }
370
370
  },
371
371
  setup (props, { slots }) {
372
- const enumMap = (0, __WEBPACK_EXTERNAL_MODULE_vue__.inject)('enumMap', (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(new Map())); // 注入数据(带默认值)
373
- const hiddenDefaultText = (0, __WEBPACK_EXTERNAL_MODULE_vue__.inject)('hiddenDefaultText'); // 渲染表格数据
372
+ const enumMap = (0, __WEBPACK_EXTERNAL_MODULE_vue__.inject)("enumMap", (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(new Map())); // 注入数据(带默认值)
373
+ const hiddenDefaultText = (0, __WEBPACK_EXTERNAL_MODULE_vue__.inject)("hiddenDefaultText"); // 渲染表格数据
374
374
  const renderCellData = (item, scope)=>{
375
375
  const rawValue = handleRowAccordingToProp(scope.row, item.prop);
376
376
  let result = enumMap.value.get(item.prop) && item.isFilterEnum ? filterEnum(rawValue, enumMap.value.get(item.prop), item.fieldNames) : formatValue(rawValue);
377
- if (item?.autoFormatterNumber) result = formatDecimalNumber(result) ?? '--';
378
- if (hiddenDefaultText && '--' === result) result = ' ';
377
+ if (item?.autoFormatterNumber) result = formatDecimalNumber(result) ?? "--";
378
+ if (hiddenDefaultText && "--" === result) result = " ";
379
379
  return item?.supportCopyAndTips ? (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)(copy_text_with_tooltip, {
380
380
  supportTextCopy: item?.supportTextCopy,
381
381
  align: "text-center",
@@ -387,12 +387,12 @@ const TableColumn = (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
387
387
  result
388
388
  ]);
389
389
  }; // 获取 tag 类型
390
- const getTagType = (item, scope)=>filterEnum(handleRowAccordingToProp(scope.row, item.prop), enumMap.value.get(item.prop), item.fieldNames, 'tag') || 'primary';
390
+ const getTagType = (item, scope)=>filterEnum(handleRowAccordingToProp(scope.row, item.prop), enumMap.value.get(item.prop), item.fieldNames, "tag") || "primary";
391
391
  const renderColumn = (column)=>{
392
392
  const { label, ...restColumn } = column;
393
393
  const columnProps = {
394
394
  ...restColumn,
395
- align: column.align ?? 'center',
395
+ align: column.align ?? "center",
396
396
  fixed: column.fixed ?? false,
397
397
  showOverflowTooltip: column.showOverflowTooltip ?? column.prop !== OPERATION
398
398
  };
@@ -412,41 +412,56 @@ const TableColumn = (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
412
412
  }, [
413
413
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode)("*")
414
414
  ]),
415
- 'function' == typeof column.label ? column.label() : column.label
415
+ "function" == typeof column.label ? column.label() : column.label
416
416
  ], 2)
417
417
  ];
418
418
  };
419
419
  const renderDefault = (scope)=>{
420
- if (column._children?.length) return column._children.map((child)=>renderColumn(child));
421
- // 自定义 render 函数
422
- if (column.render) {
420
+ if (Array.isArray(column._children) && column._children.length > 0) return column._children.map((child)=>renderColumn(child));
421
+ // Handle custom render function
422
+ if ("function" == typeof column.render) {
423
423
  if (column.editable && scope.row.editable) {
424
- let _slot;
424
+ let _slot; // 计算 propPath
425
+ const getPropPath = ()=>{
426
+ const indexPath = scope.row.indexPath;
427
+ if (!indexPath) return "";
428
+ const parts = indexPath.split("-");
429
+ if (parts.length > 1) return `tableData.${parts[0]}.${scope._self.props.treeProps.children}.${scope.$index}.${column.prop}`;
430
+ // normal table
431
+ return `tableData.${parts[1]}.${column.prop}`;
432
+ }; // 获取校验规则
433
+ const getRules = ()=>{
434
+ if (!column.rules) return [];
435
+ return "function" == typeof column.rules ? column.rules(scope.row) : column.rules;
436
+ };
425
437
  return [
426
438
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.createVNode)((0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-form-item"), {
427
439
  style: {
428
- marginBottom: '0'
440
+ marginBottom: "0"
429
441
  },
430
- prop: `tableData.${scope.$index}.${column.prop}`,
431
- rules: column.rules ? 'function' == typeof column.rules ? column.rules(scope.row) : column.rules : []
442
+ prop: getPropPath(),
443
+ rules: getRules()
432
444
  }, _isSlot(_slot = column.render(scope.row, scope.$index)) ? _slot : {
433
445
  default: ()=>[
434
446
  _slot
435
447
  ],
436
448
  _: 1
437
449
  }, 8, [
450
+ "prop",
438
451
  "rules"
439
452
  ])
440
453
  ];
441
- }
454
+ } // Non-editable custom render
442
455
  return [
443
456
  column.render(scope.row, scope.$index)
444
457
  ];
445
- } // 插槽内容
446
- if (column.prop && slots?.[handleProp(column.prop)]) return [
447
- slots[handleProp(column.prop)](scope)
448
- ];
449
- // Tag 类型
458
+ } // Handle slot content
459
+ if (column.prop) {
460
+ const slotName = handleProp(column.prop);
461
+ if (slots?.[slotName]) return [
462
+ slots[slotName](scope)
463
+ ];
464
+ } // Handle tag type
450
465
  if (column.tag) {
451
466
  let _slot2;
452
467
  return [
@@ -461,7 +476,7 @@ const TableColumn = (0, __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent)({
461
476
  "type"
462
477
  ])
463
478
  ];
464
- } // 默认渲染
479
+ } // Default render
465
480
  return [
466
481
  renderCellData(column, scope)
467
482
  ];
@@ -1866,7 +1881,7 @@ function dbgrid_component_settingvue_type_script_setup_true_lang_tsx_isSlot(s) {
1866
1881
  const dbgrid_component_setting_exports_ = /*#__PURE__*/ (0, exportHelper["default"])(dbgrid_component_settingvue_type_script_setup_true_lang_tsx, [
1867
1882
  [
1868
1883
  '__scopeId',
1869
- "data-v-c49e91ea"
1884
+ "data-v-00469ccc"
1870
1885
  ]
1871
1886
  ]);
1872
1887
  /* ESM default export */ const dbgrid_component_setting = dbgrid_component_setting_exports_;
@@ -2217,9 +2232,9 @@ const Tablevue_type_script_setup_true_lang_tsx_name_Table_hoisted_1 = {
2217
2232
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.renderSlot)(_ctx.$slots, "empty")
2218
2233
  ]),
2219
2234
  default: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(()=>[
2220
- ((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.tableColumns, (item, index)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(RenderColumn, {
2235
+ ((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.tableColumns, (item)=>((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(RenderColumn, {
2221
2236
  "column-obj": item,
2222
- key: index
2237
+ key: item.prop
2223
2238
  }, (0, __WEBPACK_EXTERNAL_MODULE_vue__.createSlots)({
2224
2239
  _: 2
2225
2240
  }, [
@@ -2438,6 +2453,12 @@ const SELECTION = 'selection';
2438
2453
  dragTipsClassName: {
2439
2454
  default: ''
2440
2455
  },
2456
+ settingIconWidth: {
2457
+ default: 36
2458
+ },
2459
+ columnsConfig: {
2460
+ default: ()=>[]
2461
+ },
2441
2462
  scrollLoad: {
2442
2463
  type: Function,
2443
2464
  default: void 0
@@ -2448,7 +2469,8 @@ const SELECTION = 'selection';
2448
2469
  "size-page-change",
2449
2470
  "current-page-change",
2450
2471
  "sort-change",
2451
- "scroll"
2472
+ "scroll",
2473
+ "columns-config-change"
2452
2474
  ],
2453
2475
  setup (__props, { expose: __expose, emit: __emit }) {
2454
2476
  const props = __props;
@@ -2693,6 +2715,7 @@ const SELECTION = 'selection';
2693
2715
  }));
2694
2716
  proTableRef.value?.clearSort();
2695
2717
  serveColumns.value = column;
2718
+ emit('columns-config-change', column);
2696
2719
  } catch (error) {
2697
2720
  console.log(error);
2698
2721
  }
@@ -2821,7 +2844,7 @@ const SELECTION = 'selection';
2821
2844
  ...item
2822
2845
  };
2823
2846
  });
2824
- if (!props.componentNo) return propsColumns;
2847
+ if (!(props.componentNo || serveColumns.value?.length)) return propsColumns;
2825
2848
  {
2826
2849
  let result = propsColumns.map((cur)=>({
2827
2850
  displayFlag: cur.isHidden || cur.defaultDisplayFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.ENABLED_FLAG.NO ? __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.ENABLED_FLAG.NO : __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.ENABLED_FLAG.YES,
@@ -2855,7 +2878,9 @@ const SELECTION = 'selection';
2855
2878
  const clientHeight = document.querySelector(`#${uuid.value} .el-table__body-wrapper`)?.clientHeight;
2856
2879
  const scrollHeight = document.querySelector(`#${uuid.value} .el-table__body`)?.scrollHeight;
2857
2880
  const threshold = props.scrollThreshold; // 距离底部80px时触发加载
2858
- if (scrollHeight - event.scrollTop - clientHeight < threshold && event.scrollTop > oldScrollTop) {
2881
+ const bottomOffset = scrollHeight - event.scrollTop - clientHeight;
2882
+ if (event.scrollTop < oldScrollTop && 0 === bottomOffset) proTableRef.value.setScrollTop(0);
2883
+ if (bottomOffset < threshold && event.scrollTop > oldScrollTop) {
2859
2884
  console.log('触发加载更多数据');
2860
2885
  props.scrollLoad();
2861
2886
  }
@@ -2871,7 +2896,7 @@ const SELECTION = 'selection';
2871
2896
  if (props.componentNo) {
2872
2897
  result = result.map((item, index)=>({
2873
2898
  ...item,
2874
- minWidth: 0 === index ? (item.minWidth || 40) + 40 : item.minWidth
2899
+ minWidth: 0 === index ? (item.minWidth || props.settingIconWidth) + props.settingIconWidth : item.minWidth
2875
2900
  }));
2876
2901
  if (exportFileFlag.value && !result.find((cur)=>cur.type === SELECTION)) result = [
2877
2902
  {
@@ -2885,6 +2910,12 @@ const SELECTION = 'selection';
2885
2910
  }
2886
2911
  return result.filter((item)=>!item.isHidden && !(props.componentNo && !serveColumns.value?.length && item.defaultDisplayFlag === __WEBPACK_EXTERNAL_MODULE__sun_toolkit_enums__.ENABLED_FLAG.NO));
2887
2912
  });
2913
+ // 当 componentNo 存在时,监听 tableColumns 变化,触发 columns-change 事件
2914
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.watch)(()=>props.columnsConfig, (newColumnsConfig)=>{
2915
+ if (!props.componentNo && newColumnsConfig?.length) serveColumns.value = newColumnsConfig;
2916
+ }, {
2917
+ immediate: true
2918
+ });
2888
2919
  /**
2889
2920
  *
2890
2921
  * 是否展示当前拖拽提示
@@ -7759,7 +7790,8 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7759
7790
  multiSelectFlag: {
7760
7791
  type: Boolean
7761
7792
  },
7762
- defaultValue: {}
7793
+ defaultValue: {},
7794
+ selectProps: {}
7763
7795
  },
7764
7796
  emits: [
7765
7797
  'change'
@@ -7773,6 +7805,7 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7773
7805
  const filterKeyWord = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(''); // 检索值
7774
7806
  const userList = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)([]);
7775
7807
  const defaultValueInserted = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(false);
7808
+ const selectProps = (0, __WEBPACK_EXTERNAL_MODULE_vue__.ref)(props.selectProps || {});
7776
7809
  const getUserList = async (data)=>{
7777
7810
  loading.value = true;
7778
7811
  const [, res] = await api_queryUserList({
@@ -7799,13 +7832,11 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7799
7832
  label: item.userName,
7800
7833
  value: item.userId
7801
7834
  }));
7802
- if (defaultList.length) {
7803
- list = (0, __WEBPACK_EXTERNAL_MODULE_lodash__.uniqBy)([
7804
- ...list,
7805
- ...defaultList
7806
- ], 'orgId');
7807
- defaultValueInserted.value = true;
7808
- }
7835
+ if (defaultList.length) list = (0, __WEBPACK_EXTERNAL_MODULE_lodash__.uniqBy)([
7836
+ ...list,
7837
+ ...defaultList
7838
+ ], 'userId');
7839
+ defaultValueInserted.value = true;
7809
7840
  userList.value = list.map((item)=>({
7810
7841
  ...item,
7811
7842
  label: item.userNo ? `${item.label || item.userName}|${item.userNo}` : item.label || item.userName
@@ -7820,6 +7851,12 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7820
7851
  deep: true,
7821
7852
  immediate: true
7822
7853
  });
7854
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.watch)(()=>props.selectProps, ()=>{
7855
+ selectProps.value = props.selectProps || {};
7856
+ }, {
7857
+ deep: true,
7858
+ immediate: true
7859
+ });
7823
7860
  const onChange = (value)=>{
7824
7861
  if (attrs['onUpdate:modelValue']) attrs['onUpdate:modelValue'](value);
7825
7862
  if (props.multiSelectFlag) emit('change', value);
@@ -7840,8 +7877,11 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7840
7877
  loading.value = false;
7841
7878
  }
7842
7879
  };
7880
+ const fetchData = async ()=>{
7881
+ await getUserList();
7882
+ };
7843
7883
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
7844
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
7884
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(async ()=>{
7845
7885
  if (props.keyWord && selectRef.value) {
7846
7886
  const inputEl = selectRef.value?.$el.querySelector('input');
7847
7887
  if (inputEl) {
@@ -7853,17 +7893,19 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7853
7893
  inputEl.dispatchEvent(event);
7854
7894
  }
7855
7895
  }
7896
+ await fetchData();
7856
7897
  });
7857
7898
  });
7858
7899
  __expose({
7859
7900
  selectRef,
7860
7901
  defaultValueInserted,
7861
- userList
7902
+ userList,
7903
+ fetchData
7862
7904
  });
7863
7905
  return (_ctx, _cache)=>{
7864
7906
  const _component_el_option = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-option");
7865
7907
  const _component_el_select = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-select");
7866
- return (0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_select, {
7908
+ return (0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)(_component_el_select, (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
7867
7909
  ref_key: "selectRef",
7868
7910
  ref: selectRef,
7869
7911
  remote: "",
@@ -7874,7 +7916,7 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7874
7916
  "remote-method": handelRemoteMethod,
7875
7917
  onClear: _cache[0] || (_cache[0] = ($event)=>userList.value = []),
7876
7918
  onChange: onChange
7877
- }, {
7919
+ }, selectProps.value), {
7878
7920
  label: (0, __WEBPACK_EXTERNAL_MODULE_vue__.withCtx)(({ label })=>[
7879
7921
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.createElementVNode)("span", null, (0, __WEBPACK_EXTERNAL_MODULE_vue__.toDisplayString)(label?.split('|')?.[0]), 1)
7880
7922
  ]),
@@ -7889,7 +7931,7 @@ const hospital_select_exports_ = hospital_selectvue_type_script_setup_true_lang_
7889
7931
  ]))), 128))
7890
7932
  ]),
7891
7933
  _: 1
7892
- }, 8, [
7934
+ }, 16, [
7893
7935
  "loading",
7894
7936
  "multiple"
7895
7937
  ]);
@@ -8202,8 +8244,11 @@ const user_select_exports_ = user_selectvue_type_script_setup_true_lang_ts_name_
8202
8244
  document.removeEventListener('keydown', handleKeydown, true);
8203
8245
  if (props.multiSelectFlag) document.removeEventListener('click', handleClickOutside);
8204
8246
  });
8247
+ const fetchData = async ()=>{
8248
+ await getBizUnitList();
8249
+ };
8205
8250
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
8206
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
8251
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(async ()=>{
8207
8252
  if (attrs.modelValue && Array.isArray(props.defaultValue) && props.defaultValue?.length) {
8208
8253
  if (props.multiSelectFlag) selectedValue.value = props.defaultValue.map((item)=>item.label || item.orgNameDisplay);
8209
8254
  else {
@@ -8226,6 +8271,23 @@ const user_select_exports_ = user_selectvue_type_script_setup_true_lang_ts_name_
8226
8271
  inputEl.dispatchEvent(event);
8227
8272
  }
8228
8273
  }
8274
+ await fetchData();
8275
+ if (attrs?.modelValue && (!props.defaultValue || Array.isArray(props.defaultValue) && !props.defaultValue.length)) {
8276
+ if (props.multiSelectFlag) {
8277
+ const items = bizUnitList.value.filter((item)=>attrs.modelValue?.includes(item.value));
8278
+ selectedValue.value = items.map((item)=>item.label || item.orgNameDisplay);
8279
+ selectedRows.value = items;
8280
+ } else {
8281
+ const item = bizUnitList.value.find((item)=>item.value === attrs?.modelValue);
8282
+ if (item?.label && selectedValue.value !== item.label) {
8283
+ selectedValue.value = item.label;
8284
+ selectedRows.value = [
8285
+ item
8286
+ ];
8287
+ }
8288
+ }
8289
+ defaultSetTableSelected.value = false;
8290
+ }
8229
8291
  });
8230
8292
  });
8231
8293
  __expose({
@@ -8234,7 +8296,8 @@ const user_select_exports_ = user_selectvue_type_script_setup_true_lang_ts_name_
8234
8296
  selectRef,
8235
8297
  popoverVisible,
8236
8298
  defaultSetTableSelected,
8237
- bizUnitList
8299
+ bizUnitList,
8300
+ fetchData
8238
8301
  });
8239
8302
  return (_ctx, _cache)=>{
8240
8303
  const _component_el_select = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-select");
@@ -8613,8 +8676,11 @@ const biz_unit_select_exports_ = biz_unit_selectvue_type_script_setup_true_lang_
8613
8676
  document.removeEventListener('keydown', handleKeydown, true);
8614
8677
  if (props.multiSelectFlag) document.removeEventListener('click', handleClickOutside);
8615
8678
  });
8679
+ const fetchData = async ()=>{
8680
+ await getDepartmentList();
8681
+ };
8616
8682
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
8617
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
8683
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(async ()=>{
8618
8684
  if (attrs.modelValue && Array.isArray(props.defaultValue) && props.defaultValue?.length) {
8619
8685
  if (props.multiSelectFlag) selectedValue.value = props.defaultValue.map((item)=>item.label || item.orgName);
8620
8686
  else {
@@ -8637,6 +8703,23 @@ const biz_unit_select_exports_ = biz_unit_selectvue_type_script_setup_true_lang_
8637
8703
  inputEl.dispatchEvent(event);
8638
8704
  }
8639
8705
  }
8706
+ await fetchData();
8707
+ if (attrs?.modelValue && (!props.defaultValue || Array.isArray(props.defaultValue) && !props.defaultValue.length)) {
8708
+ if (props.multiSelectFlag) {
8709
+ const items = departmentList.value.filter((item)=>attrs.modelValue?.includes(item.value));
8710
+ selectedValue.value = items.map((item)=>item.label || item.orgName);
8711
+ selectedRows.value = items;
8712
+ } else {
8713
+ const item = departmentList.value.find((item)=>item.value === attrs?.modelValue);
8714
+ if (item?.label && selectedValue.value !== item.label) {
8715
+ selectedValue.value = item.label;
8716
+ selectedRows.value = [
8717
+ item
8718
+ ];
8719
+ }
8720
+ }
8721
+ defaultSetTableSelected.value = false;
8722
+ }
8640
8723
  });
8641
8724
  });
8642
8725
  __expose({
@@ -8645,7 +8728,8 @@ const biz_unit_select_exports_ = biz_unit_selectvue_type_script_setup_true_lang_
8645
8728
  selectRef,
8646
8729
  popoverVisible,
8647
8730
  defaultSetTableSelected,
8648
- departmentList
8731
+ departmentList,
8732
+ fetchData
8649
8733
  });
8650
8734
  return (_ctx, _cache)=>{
8651
8735
  const _component_el_select = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-select");
@@ -9017,8 +9101,11 @@ const department_select_exports_ = department_selectvue_type_script_setup_true_l
9017
9101
  document.removeEventListener('keydown', handleKeydown, true);
9018
9102
  if (props.multiSelectFlag) document.removeEventListener('click', handleClickOutside);
9019
9103
  });
9104
+ const fetchData = async ()=>{
9105
+ await getWardList();
9106
+ };
9020
9107
  (0, __WEBPACK_EXTERNAL_MODULE_vue__.onMounted)(()=>{
9021
- (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(()=>{
9108
+ (0, __WEBPACK_EXTERNAL_MODULE_vue__.nextTick)(async ()=>{
9022
9109
  if (attrs.modelValue && Array.isArray(props.defaultValue) && props.defaultValue?.length) {
9023
9110
  if (props.multiSelectFlag) selectedValue.value = props.defaultValue.map((item)=>item.label || item.orgName);
9024
9111
  else {
@@ -9041,6 +9128,23 @@ const department_select_exports_ = department_selectvue_type_script_setup_true_l
9041
9128
  inputEl.dispatchEvent(event);
9042
9129
  }
9043
9130
  }
9131
+ await fetchData();
9132
+ if (attrs?.modelValue && (!props.defaultValue || Array.isArray(props.defaultValue) && !props.defaultValue.length)) {
9133
+ if (props.multiSelectFlag) {
9134
+ const items = wardList.value.filter((item)=>attrs.modelValue?.includes(item.value));
9135
+ selectedValue.value = items.map((item)=>item.label || item.orgName);
9136
+ selectedRows.value = items;
9137
+ } else {
9138
+ const item = wardList.value.find((item)=>item.value === attrs?.modelValue);
9139
+ if (item?.label && selectedValue.value !== item.label) {
9140
+ selectedValue.value = item.label;
9141
+ selectedRows.value = [
9142
+ item
9143
+ ];
9144
+ }
9145
+ }
9146
+ defaultSetTableSelected.value = false;
9147
+ }
9044
9148
  });
9045
9149
  });
9046
9150
  __expose({
@@ -9049,7 +9153,8 @@ const department_select_exports_ = department_selectvue_type_script_setup_true_l
9049
9153
  selectRef,
9050
9154
  popoverVisible,
9051
9155
  defaultSetTableSelected,
9052
- wardList
9156
+ wardList,
9157
+ fetchData
9053
9158
  });
9054
9159
  return (_ctx, _cache)=>{
9055
9160
  const _component_el_select = (0, __WEBPACK_EXTERNAL_MODULE_vue__.resolveComponent)("el-select");
@@ -9210,27 +9315,35 @@ const DICT_SELECT = 'dictSelect';
9210
9315
  }, {
9211
9316
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs),
9212
9317
  bizIdTypeCode: __WEBPACK_EXTERNAL_MODULE_vue__.unref(attrs)?.extraProps?.bizIdTypeCode
9213
- }), null, 16)) : 'userSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(user_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
9214
- key: 4
9318
+ }), null, 16)) : 'userSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(user_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
9319
+ key: 4,
9320
+ ref_key: "componentRef",
9321
+ ref: componentRef
9215
9322
  }, {
9216
9323
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs),
9217
9324
  hospitalId: __WEBPACK_EXTERNAL_MODULE_vue__.unref(attrs)?.extraProps?.hospitalId
9218
- })), null, 16)) : 'bizUnitSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(biz_unit_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
9219
- key: 5
9325
+ }), null, 16)) : 'bizUnitSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(biz_unit_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
9326
+ key: 5,
9327
+ ref_key: "componentRef",
9328
+ ref: componentRef
9220
9329
  }, {
9221
9330
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs),
9222
9331
  hospitalId: __WEBPACK_EXTERNAL_MODULE_vue__.unref(attrs)?.extraProps?.hospitalId
9223
- })), null, 16)) : 'departmentSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(department_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
9224
- key: 6
9332
+ }), null, 16)) : 'departmentSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(department_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
9333
+ key: 6,
9334
+ ref_key: "componentRef",
9335
+ ref: componentRef
9225
9336
  }, {
9226
9337
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs),
9227
9338
  hospitalId: __WEBPACK_EXTERNAL_MODULE_vue__.unref(attrs)?.extraProps?.hospitalId
9228
- })), null, 16)) : 'wardSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(ward_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
9229
- key: 7
9339
+ }), null, 16)) : 'wardSelect' === (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(ward_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
9340
+ key: 7,
9341
+ ref_key: "componentRef",
9342
+ ref: componentRef
9230
9343
  }, {
9231
9344
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs),
9232
9345
  hospitalId: __WEBPACK_EXTERNAL_MODULE_vue__.unref(attrs)?.extraProps?.hospitalId
9233
- })), null, 16)) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component === DICT_SELECT ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(dict_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
9346
+ }), null, 16)) : (0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs).component === DICT_SELECT ? ((0, __WEBPACK_EXTERNAL_MODULE_vue__.openBlock)(), (0, __WEBPACK_EXTERNAL_MODULE_vue__.createBlock)((0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(dict_select), (0, __WEBPACK_EXTERNAL_MODULE_vue__.normalizeProps)((0, __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps)({
9234
9347
  key: 8
9235
9348
  }, {
9236
9349
  ...(0, __WEBPACK_EXTERNAL_MODULE_vue__.unref)(attrs)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sun-biz",
3
- "version": "0.0.4-beta.31",
3
+ "version": "0.0.4-beta.33",
4
4
  "type": "module",
5
5
  "workspaces": [
6
6
  "src/*",