cnhis-design-vue 3.1.1 → 3.1.4

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.
Files changed (216) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/env.d.ts +8 -4
  3. package/es/packages/big-table/index.d.ts +2038 -0
  4. package/es/packages/big-table/index.mjs +1 -0
  5. package/es/packages/big-table/index2.mjs +14 -0
  6. package/es/packages/big-table/src/BigTable.mjs +2 -0
  7. package/es/packages/big-table/src/BigTable.vue.d.ts +2052 -0
  8. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.mjs +2315 -0
  9. package/es/packages/big-table/src/BigTable2.mjs +4 -0
  10. package/es/packages/big-table/src/bigTableEmits.d.ts +2 -0
  11. package/es/packages/big-table/src/bigTableEmits.mjs +1 -0
  12. package/{packages/big-table/src/bigTableEmits.ts → es/packages/big-table/src/bigTableEmits2.mjs} +48 -48
  13. package/es/packages/big-table/src/bigTableProps.d.ts +194 -0
  14. package/es/packages/big-table/src/bigTableProps.mjs +1 -0
  15. package/{packages/big-table/src/bigTableProps.ts → es/packages/big-table/src/bigTableProps2.mjs} +116 -125
  16. package/es/packages/big-table/src/bigTableState.d.ts +55 -0
  17. package/es/packages/big-table/src/bigTableState.mjs +1 -0
  18. package/es/packages/big-table/src/bigTableState2.mjs +51 -0
  19. package/es/packages/big-table/src/components/NoData.mjs +2 -0
  20. package/es/packages/big-table/src/components/NoData.vue.d.ts +51 -0
  21. package/es/packages/big-table/src/components/NoData.vue_vue_type_script_setup_true_lang.mjs +72 -0
  22. package/es/packages/big-table/src/components/NoData2.mjs +4 -0
  23. package/es/packages/big-table/src/components/SvgIcon.mjs +2 -0
  24. package/es/packages/big-table/src/components/SvgIcon.vue.d.ts +43 -0
  25. package/es/packages/big-table/src/components/SvgIcon.vue_vue_type_script_setup_true_lang.mjs +34 -0
  26. package/es/packages/big-table/src/components/SvgIcon2.mjs +4 -0
  27. package/es/packages/big-table/src/components/TextOverTooltip.mjs +2 -0
  28. package/es/packages/big-table/src/components/TextOverTooltip.vue.d.ts +560 -0
  29. package/es/packages/big-table/src/components/TextOverTooltip.vue_vue_type_script_setup_true_lang.mjs +74 -0
  30. package/es/packages/big-table/src/components/TextOverTooltip2.mjs +4 -0
  31. package/es/packages/big-table/src/components/edit-form/edit-date.d.ts +34 -0
  32. package/es/packages/big-table/src/components/edit-form/edit-date.mjs +88 -0
  33. package/es/packages/big-table/src/components/edit-form/edit-input.d.ts +43 -0
  34. package/es/packages/big-table/src/components/edit-form/edit-input.mjs +51 -0
  35. package/es/packages/big-table/src/components/edit-form/edit-select-table.d.ts +35 -0
  36. package/es/packages/big-table/src/components/edit-form/edit-select.d.ts +35 -0
  37. package/es/packages/big-table/src/components/edit-form/edit-select.mjs +89 -0
  38. package/es/packages/big-table/src/hooks/useBatchEditing.d.ts +17 -0
  39. package/es/packages/big-table/src/hooks/useBatchEditing.mjs +1 -0
  40. package/es/packages/big-table/src/hooks/useBatchEditing2.mjs +284 -0
  41. package/es/packages/big-table/src/hooks/useEdit.d.ts +171 -0
  42. package/es/packages/big-table/src/hooks/useEdit.mjs +1 -0
  43. package/es/packages/big-table/src/hooks/useEdit2.mjs +108 -0
  44. package/es/packages/big-table/src/hooks/useFormat.d.ts +29 -0
  45. package/es/packages/big-table/src/hooks/useFormat.mjs +1 -0
  46. package/{packages/big-table/src/hooks/useFormat.ts → es/packages/big-table/src/hooks/useFormat2.mjs} +480 -612
  47. package/es/packages/big-table/src/hooks/useNestTable.d.ts +8 -0
  48. package/es/packages/big-table/src/hooks/useNestTable.mjs +1 -0
  49. package/{packages/big-table/src/hooks/useNestTable.ts → es/packages/big-table/src/hooks/useNestTable2.mjs} +84 -109
  50. package/es/packages/big-table/src/hooks/useTableParse.d.ts +6 -0
  51. package/es/packages/big-table/src/hooks/useTableParse.mjs +1 -0
  52. package/es/packages/big-table/src/hooks/useTableParse2.mjs +135 -0
  53. package/es/packages/big-table/src/utils.d.ts +54 -0
  54. package/es/packages/big-table/src/utils.mjs +1 -0
  55. package/{packages/big-table/src/utils.ts → es/packages/big-table/src/utils2.mjs} +597 -705
  56. package/es/packages/big-table/style/index.css +448 -0
  57. package/{packages/big-table/src/assets/style/table-base.less → es/packages/big-table/style/index.less} +292 -10
  58. package/es/packages/button-print/index.d.ts +7373 -0
  59. package/es/packages/button-print/index.mjs +1 -0
  60. package/es/packages/button-print/index2.mjs +11 -0
  61. package/es/packages/button-print/src/ButtonPrint.mjs +2 -0
  62. package/es/packages/button-print/src/ButtonPrint.vue.d.ts +7372 -0
  63. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.mjs +452 -0
  64. package/es/packages/button-print/src/ButtonPrint2.mjs +4 -0
  65. package/es/packages/button-print/src/components/IdentityVerification.mjs +2 -0
  66. package/es/packages/button-print/src/components/IdentityVerification.vue.d.ts +4785 -0
  67. package/es/packages/button-print/src/components/IdentityVerification.vue_vue_type_script_setup_true_lang.mjs +126 -0
  68. package/es/packages/button-print/src/components/IdentityVerification2.mjs +4 -0
  69. package/es/packages/button-print/src/utils/print.es.min.d.ts +2 -0
  70. package/es/packages/button-print/src/utils/print.es.min.mjs +1 -0
  71. package/es/packages/button-print/src/utils/print.es.min2.mjs +2080 -0
  72. package/es/packages/button-print/style/index.css +26 -0
  73. package/es/packages/button-print/style/index.less +32 -0
  74. package/es/packages/drag-layout/index.d.ts +20061 -0
  75. package/es/packages/drag-layout/index.mjs +1 -0
  76. package/es/packages/drag-layout/index2.mjs +11 -0
  77. package/es/packages/drag-layout/src/DragFormLeftItem.mjs +2 -0
  78. package/es/packages/drag-layout/src/DragFormLeftItem.vue.d.ts +7959 -0
  79. package/es/packages/drag-layout/src/DragFormLeftItem.vue_vue_type_script_setup_true_lang.mjs +122 -0
  80. package/es/packages/drag-layout/src/DragFormLeftItem2.mjs +4 -0
  81. package/es/packages/drag-layout/src/DragFormRightItem.mjs +2 -0
  82. package/es/packages/drag-layout/src/DragFormRightItem.vue.d.ts +3213 -0
  83. package/es/packages/drag-layout/src/DragFormRightItem.vue_vue_type_script_setup_true_lang.mjs +267 -0
  84. package/es/packages/drag-layout/src/DragFormRightItem2.mjs +4 -0
  85. package/es/packages/drag-layout/src/DragLayout.mjs +2 -0
  86. package/es/packages/drag-layout/src/DragLayout.vue.d.ts +20069 -0
  87. package/es/packages/drag-layout/src/DragLayout.vue_vue_type_script_setup_true_lang.mjs +657 -0
  88. package/es/packages/drag-layout/src/DragLayout2.mjs +4 -0
  89. package/es/packages/drag-layout/style/index.css +175 -0
  90. package/es/packages/drag-layout/style/index.less +208 -0
  91. package/es/packages/field-set/index.d.ts +2647 -0
  92. package/es/packages/field-set/index.mjs +1 -0
  93. package/es/packages/field-set/index2.mjs +11 -0
  94. package/es/packages/field-set/src/FieldSet.mjs +2 -0
  95. package/es/packages/field-set/src/FieldSet.vue.d.ts +2599 -0
  96. package/es/packages/field-set/src/FieldSet.vue_vue_type_script_setup_true_lang.mjs +330 -0
  97. package/es/packages/field-set/src/FieldSet2.mjs +4 -0
  98. package/es/packages/field-set/style/index.css +162 -0
  99. package/es/packages/field-set/style/index.less +172 -0
  100. package/es/packages/grid/index.d.ts +3 -0
  101. package/es/packages/grid/index.mjs +1 -0
  102. package/es/packages/grid/index2.mjs +11 -0
  103. package/es/packages/grid/src/Grid.d.ts +2 -0
  104. package/es/packages/grid/src/Grid.mjs +28 -0
  105. package/es/packages/grid/src/hooks.d.ts +1 -0
  106. package/es/packages/grid/src/hooks.mjs +1 -0
  107. package/es/packages/grid/src/hooks2.mjs +165 -0
  108. package/es/packages/grid/style/index.css +0 -0
  109. package/es/packages/grid/style/index.less +1 -0
  110. package/es/packages/index.css +1004 -0
  111. package/es/packages/index.d.ts +35622 -0
  112. package/es/packages/index.less +1205 -0
  113. package/es/packages/index.mjs +7 -0
  114. package/es/packages/index2.mjs +37 -0
  115. package/es/packages/select-person/index.d.ts +3500 -0
  116. package/es/packages/select-person/index.mjs +1 -0
  117. package/es/packages/select-person/index2.mjs +11 -0
  118. package/es/packages/select-person/src/SearchTree.mjs +2 -0
  119. package/es/packages/select-person/src/SearchTree.vue.d.ts +344 -0
  120. package/es/packages/select-person/src/SearchTree.vue_vue_type_script_setup_true_lang.mjs +231 -0
  121. package/es/packages/select-person/src/SearchTree2.mjs +4 -0
  122. package/es/packages/select-person/src/SelectPerson.mjs +2 -0
  123. package/es/packages/select-person/src/SelectPerson.vue.d.ts +3501 -0
  124. package/es/packages/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.mjs +892 -0
  125. package/es/packages/select-person/src/SelectPerson2.mjs +4 -0
  126. package/es/packages/select-person/src/utils/index.d.ts +12 -0
  127. package/es/packages/select-person/src/utils/index.mjs +1 -0
  128. package/{packages/select-person/src/utils/index.js → es/packages/select-person/src/utils/index2.mjs} +57 -66
  129. package/es/packages/select-person/style/index.css +193 -0
  130. package/es/packages/select-person/style/index.less +229 -0
  131. package/{packages/big-table → es}/src/assets/iconfont/iconfont.ttf +0 -0
  132. package/{packages/big-table → es}/src/assets/img/failure.png +0 -0
  133. package/{packages/big-table → es}/src/assets/img/icon-asc.png +0 -0
  134. package/{packages/big-table → es}/src/assets/img/icon-desc.png +0 -0
  135. package/{packages/big-table → es}/src/assets/img/no-permission.png +0 -0
  136. package/{packages/big-table → es}/src/assets/img/nodata.png +0 -0
  137. package/{packages/big-table → es}/src/assets/img/notfound.png +0 -0
  138. package/{packages/big-table → es}/src/assets/img/qr.png +0 -0
  139. package/{packages/big-table → es}/src/assets/img/video_default_cover.png +0 -0
  140. package/{packages/big-table → es}/src/assets/img/xb_big.png +0 -0
  141. package/{packages/big-table → es}/src/assets/img/xb_small.png +0 -0
  142. package/es/src/core/create.d.ts +1 -0
  143. package/es/src/core/create.mjs +1 -0
  144. package/es/src/core/create2.mjs +8 -0
  145. package/es/src/global/variable.d.ts +2 -0
  146. package/es/src/global/variable.mjs +1 -0
  147. package/es/src/global/variable2.mjs +4 -0
  148. package/es/src/types/index.d.ts +4 -0
  149. package/es/src/types/index.mjs +1 -0
  150. package/es/src/utils/clickoutside.d.ts +18 -0
  151. package/es/src/utils/clickoutside.mjs +1 -0
  152. package/es/src/utils/clickoutside2.mjs +48 -0
  153. package/es/src/utils/crypto.d.ts +7 -0
  154. package/es/src/utils/crypto.mjs +1 -0
  155. package/{src/utils/crypto.js → es/src/utils/crypto2.mjs} +25 -25
  156. package/es/src/utils/index.d.ts +4 -0
  157. package/es/src/utils/index.mjs +1 -0
  158. package/es/src/utils/index2.mjs +27 -0
  159. package/es/src/utils/vexutils.d.ts +5 -0
  160. package/es/src/utils/vexutils.mjs +3 -0
  161. package/es/src/utils/vexutils2.mjs +729 -0
  162. package/global.d.ts +8 -0
  163. package/package.json +54 -21
  164. package/yarn-error.log +122 -0
  165. package/es/big-table/index.css +0 -587
  166. package/es/big-table/index.js +0 -41710
  167. package/es/button-print/index.css +0 -617
  168. package/es/button-print/index.js +0 -8363
  169. package/es/drag-layout/index.css +0 -850
  170. package/es/drag-layout/index.js +0 -13104
  171. package/es/field-set/index.css +0 -1048
  172. package/es/field-set/index.js +0 -351
  173. package/es/grid/index.css +0 -1049
  174. package/es/grid/index.js +0 -30819
  175. package/es/index.css +0 -1323
  176. package/es/index.js +0 -46945
  177. package/es/select-person/index.css +0 -1323
  178. package/es/select-person/index.js +0 -13191
  179. package/packages/big-table/index.ts +0 -17
  180. package/packages/big-table/src/BigTable.vue +0 -2598
  181. package/packages/big-table/src/assets/iconfont/iconfont.less +0 -22
  182. package/packages/big-table/src/assets/style/table-global.less +0 -171
  183. package/packages/big-table/src/bigTableState.ts +0 -63
  184. package/packages/big-table/src/components/NoData.vue +0 -90
  185. package/packages/big-table/src/components/TextOverTooltip.vue +0 -110
  186. package/packages/big-table/src/components/edit-form/edit-date.vue +0 -75
  187. package/packages/big-table/src/components/edit-form/edit-input.vue +0 -39
  188. package/packages/big-table/src/components/edit-form/edit-select-table.vue +0 -133
  189. package/packages/big-table/src/components/edit-form/edit-select.vue +0 -96
  190. package/packages/big-table/src/hooks/useBatchEditing.ts +0 -574
  191. package/packages/big-table/src/hooks/useEdit.ts +0 -131
  192. package/packages/big-table/src/hooks/useTableParse.ts +0 -169
  193. package/packages/button-print/index.ts +0 -15
  194. package/packages/button-print/src/ButtonPrint.vue +0 -488
  195. package/packages/button-print/src/components/IdentityVerification.vue +0 -120
  196. package/packages/button-print/src/interfaces.ts +0 -19
  197. package/packages/button-print/src/utils/print.es.min.js +0 -1
  198. package/packages/drag-layout/index.ts +0 -15
  199. package/packages/drag-layout/src/DragFormLeftItem.vue +0 -131
  200. package/packages/drag-layout/src/DragFormRightItem.vue +0 -277
  201. package/packages/drag-layout/src/DragLayout.vue +0 -712
  202. package/packages/field-set/index.ts +0 -15
  203. package/packages/field-set/src/FieldSet.vue +0 -471
  204. package/packages/grid/index.ts +0 -20
  205. package/packages/grid/src/Grid.tsx +0 -18
  206. package/packages/grid/src/hooks.ts +0 -167
  207. package/packages/index.ts +0 -41
  208. package/packages/select-person/index.ts +0 -11
  209. package/packages/select-person/src/SelectPerson.vue +0 -1104
  210. package/packages/select-person/src/search-tree.vue +0 -326
  211. package/src/component/svg/index.vue +0 -49
  212. package/src/core/create.js +0 -5
  213. package/src/global/variable.ts +0 -2
  214. package/src/utils/clickoutside.ts +0 -80
  215. package/src/utils/vexutils.js +0 -811
  216. package/tsconfig.node.json +0 -8
@@ -0,0 +1,2315 @@
1
+ import { defineComponent, ref, reactive, useAttrs, computed, onMounted, onUnmounted, onActivated, createVNode, h, resolveComponent, createTextVNode, isVNode, nextTick, watch, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, createCommentVNode, withDirectives, toDisplayString, unref, vShow, Fragment, mergeProps, withCtx, createBlock, renderSlot } from 'vue';
2
+ import bigTableState from './bigTableState2.mjs';
3
+ import bigTableProps from './bigTableProps2.mjs';
4
+ import bigTableEmits from './bigTableEmits2.mjs';
5
+ import { useFormat } from './hooks/useFormat2.mjs';
6
+ import { useTableParse } from './hooks/useTableParse2.mjs';
7
+ import { useBatchEditing } from './hooks/useBatchEditing2.mjs';
8
+ import { useNestTable } from './hooks/useNestTable2.mjs';
9
+ import { useEdit, comps } from './hooks/useEdit2.mjs';
10
+ import { SettingsSharp, CaretDown, CaretForward, CopyOutline, SyncOutline } from '@vicons/ionicons5';
11
+ import './components/NoData2.mjs';
12
+ import './components/TextOverTooltip2.mjs';
13
+ import './components/SvgIcon2.mjs';
14
+ import { useMessage, NIcon, NTooltip, NPopconfirm, NButton, NInputGroup, NInput, NCheckbox, NCheckboxGroup, NSpace, NProgress, NDropdown, NSwitch, NPopover } from 'naive-ui';
15
+ import CGrid from 'cnhis-design-vue/es/packages/grid';
16
+ import vexutils from 'cnhis-design-vue/es/src/utils/vexutils';
17
+ import { handleTableHeight, setTableConfig, handleGroupColums, checkMethod, setTreeGroupTitle, handleName, generateEditRender, handlerInitSearchItem, getEvaluate, getMapVal, getCandidateComponents, getageShowType, isLink, showFilter, reScrollFilterWrap, hideFilterWrap, mergeConObjFn, setDefaultFormData, handleImgArr, handleImgSrc, modalDetailImage, handleQrCodeContent, getInlineEditBtn, isCopy, setVisibleCheckAllWrap, setFilterStatus, handleTableImageSize, getRowStyle, getFooterGroup, flattenRow, intersectRow, removeCheckedDisabledRows } from './utils2.mjs';
18
+ import xb_big from 'cnhis-design-vue/es/src/assets/img/xb_big.png';
19
+ import qr from 'cnhis-design-vue/es/src/assets/img/qr.png';
20
+ import script$1 from './components/TextOverTooltip.vue_vue_type_script_setup_true_lang.mjs';
21
+ import script$2 from './components/SvgIcon.vue_vue_type_script_setup_true_lang.mjs';
22
+ import script$3 from './components/NoData.vue_vue_type_script_setup_true_lang.mjs';
23
+
24
+ const _hoisted_1 = {
25
+ key: 0,
26
+ class: "check-wrap"
27
+ };
28
+ const _hoisted_2 = /* @__PURE__ */ createElementVNode("span", null, "\u7CFB\u7EDF\u68C0\u6D4B\u5230\u6709\u6570\u636E\u66F4\u65B0,", -1);
29
+ const _hoisted_3 = {
30
+ class: "check-wrap"
31
+ };
32
+ const _hoisted_4 = {
33
+ class: "check-wrap-title"
34
+ };
35
+ const _hoisted_5 = {
36
+ key: 0
37
+ };
38
+ const _hoisted_6 = {
39
+ key: 1
40
+ };
41
+ const _hoisted_7 = {
42
+ class: "check-wrap"
43
+ };
44
+ const _hoisted_8 = {
45
+ class: "check-wrap-title"
46
+ };
47
+ const _hoisted_9 = {
48
+ key: 0
49
+ };
50
+ const _hoisted_10 = /* @__PURE__ */ createElementVNode("i", {
51
+ class: "disabled-checked-tips"
52
+ }, null, -1);
53
+ const _hoisted_11 = ["innerHTML"];
54
+ const _hoisted_12 = ["innerHTML"];
55
+ const _hoisted_13 = {
56
+ class: "refresh-row"
57
+ };
58
+ function _isSlot(s) {
59
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
60
+ }
61
+ var script = /* @__PURE__ */ defineComponent({
62
+ name: "BigTable",
63
+ props: bigTableProps,
64
+ emits: bigTableEmits,
65
+ setup(__props, {
66
+ expose,
67
+ emit
68
+ }) {
69
+ const props = __props;
70
+ let _hideAllWrap = null;
71
+ let _beforeSearchConvert = [];
72
+ let addInlineEditPrimaryKey = "";
73
+ const GROUP_TITLE_KEY = "group-show-title";
74
+ useMessage();
75
+ const xGrid = ref(null);
76
+ const copyState = vexutils.clone(bigTableState, true);
77
+ const state = reactive(copyState);
78
+ const {
79
+ formatData,
80
+ htmlToText,
81
+ getBtnStyle
82
+ } = useFormat(state);
83
+ const {
84
+ imgs2imgArr,
85
+ parseDurationValue,
86
+ parseCombinationValue,
87
+ formatFieldText
88
+ } = useTableParse(formatData);
89
+ const {
90
+ allSelectedLength,
91
+ checkOperateCurrentTable,
92
+ setRowStatus,
93
+ resetBatchOperationRowStatus,
94
+ checkListFormUnionSettingParamsList,
95
+ handleClickCancelBtnByInline,
96
+ setAllRowInlineStatus,
97
+ hideSelectCloumns,
98
+ handleEditFormLength,
99
+ resetOperationRowStatus,
100
+ recordClickBtnInfo,
101
+ getInlineOpreateRow
102
+ } = useBatchEditing(props, state, emit, xGrid);
103
+ const {
104
+ initEditTable,
105
+ activeMethod,
106
+ deleteRow,
107
+ onClickSelectTable,
108
+ onFormChange,
109
+ getDefaultValue
110
+ } = useEdit(props, state, emit, xGrid);
111
+ const {
112
+ isAboutNestTable,
113
+ isExpandTable,
114
+ handleRowId,
115
+ toggleExpandMethod,
116
+ loadExpandMethod,
117
+ nestHandleClickRow
118
+ } = useNestTable(props, state, emit);
119
+ const attr = useAttrs();
120
+ const currentCheckedKeys = computed(() => {
121
+ return state.checkedRows?.map((row) => row[props.primaryKey]) || [];
122
+ });
123
+ const visibleCancelCheckAllBtn = computed(() => {
124
+ let isCurrentPageAllCheck = state.currentPageSelectedLength === state.curAbleCheckedLen;
125
+ let isMaxChecked = currentCheckedKeys.value.length === props.maxCheckSize;
126
+ let isCheckedTotal = currentCheckedKeys.value.length === props.pageVO.total;
127
+ return isMaxChecked || !isCurrentPageAllCheck || isCheckedTotal;
128
+ });
129
+ const singleCheckedKey = computed(() => {
130
+ const checkedKeys = currentCheckedKeys.value || [];
131
+ return checkedKeys.length == 1 ? checkedKeys[0] : "";
132
+ });
133
+ const tableNoSetting = computed(() => {
134
+ let {
135
+ noSetting
136
+ } = getOtherConfigInit() || {};
137
+ return noSetting || props.showSettings?.hideSettingBtn == 1;
138
+ });
139
+ const isScanMultiTable = computed(() => {
140
+ return props.columnConfig?.isScanMultiTable;
141
+ });
142
+ const configuration = computed(() => {
143
+ return {
144
+ userInfo: props.userInfo || {},
145
+ sysImageSize: props.sysImageSize || {}
146
+ };
147
+ });
148
+ const handlePrimaryKey = computed(() => {
149
+ return state.isTree > 0 ? props.primaryKey || "theUniqueKey" : "theUniqueKey";
150
+ });
151
+ const handleSeqConfig = computed(() => {
152
+ if (props.isNestTable)
153
+ return {
154
+ startIndex: 0
155
+ };
156
+ if (props.isBatchEditing) {
157
+ return {
158
+ startIndex: 0
159
+ };
160
+ }
161
+ let startIndex = (props.pageVO.pageIndex - 1) * props.pageVO.pageSize;
162
+ return {
163
+ startIndex: startIndex < 0 ? 0 : startIndex
164
+ };
165
+ });
166
+ const treeConfig = computed(() => {
167
+ let result = null;
168
+ switch (Number(state.isTree)) {
169
+ case 1:
170
+ case 3:
171
+ result = {
172
+ children: "childrenList",
173
+ accordion: state.openOnly > 0,
174
+ reserve: true
175
+ };
176
+ break;
177
+ case 2:
178
+ result = {
179
+ lazy: true,
180
+ reserve: true,
181
+ children: "childrenList",
182
+ hasChild: "hasChildren",
183
+ loadMethod: loadChildrenMethod,
184
+ accordion: state.openOnly > 0
185
+ };
186
+ break;
187
+ }
188
+ return result;
189
+ });
190
+ const hideAllWrap = (e) => {
191
+ const path = e.path || e.composedPath && e.composedPath();
192
+ const noWrap = (className) => {
193
+ return !path.some((p) => {
194
+ return p.className && p.className.includes && p.className.includes(className);
195
+ });
196
+ };
197
+ let notFilterWrap = noWrap("big-table-filter-wrap");
198
+ if (notFilterWrap) {
199
+ hideFilterWrap(state, props);
200
+ }
201
+ };
202
+ const bindDocumentClick = () => {
203
+ _hideAllWrap = hideAllWrap.bind(this);
204
+ window.document.addEventListener("click", _hideAllWrap, true);
205
+ };
206
+ const unBindDocumentClick = () => {
207
+ window.document.removeEventListener("click", _hideAllWrap, true);
208
+ };
209
+ onMounted(() => {
210
+ bindDocumentClick();
211
+ state.tableHeight = handleTableHeight(state, props) || "auto";
212
+ if (!props.isNestTable)
213
+ return;
214
+ loadColumn(props.columnConfig);
215
+ loadData(props.data);
216
+ });
217
+ onUnmounted(() => {
218
+ unBindDocumentClick();
219
+ });
220
+ onActivated(() => {
221
+ removeInsert();
222
+ });
223
+ const removeInsert = async () => {
224
+ if (state.isTree != 0)
225
+ return false;
226
+ const vxeTable = xGrid.value;
227
+ let {
228
+ tableData
229
+ } = vxeTable.getTableData();
230
+ if (tableData && tableData.length) {
231
+ tableData.forEach((row) => {
232
+ if (row?.__isInsertRow) {
233
+ vxeTable.remove(row);
234
+ }
235
+ });
236
+ }
237
+ if (!state.originFormatList?.length)
238
+ return;
239
+ await vxeTable.loadData(state.originFormatList);
240
+ resetBatchOperationRowStatus();
241
+ };
242
+ const loadColumn = (config) => {
243
+ setTableConfig(config, state);
244
+ let columns = formatColumns(config);
245
+ columns = handleGroupColums(columns, props);
246
+ xGrid.value && xGrid.value.reloadColumn(columns);
247
+ setGroupTreeExpand();
248
+ resetTableInlineEditStatus();
249
+ };
250
+ const loadData = async (data) => {
251
+ state.isShowEmpty = !data?.length;
252
+ const list = JSON.parse(JSON.stringify(data));
253
+ let table = xGrid.value;
254
+ if (!table)
255
+ return;
256
+ state.checkedRows = [];
257
+ let formatList = setChecklist(list);
258
+ state.originFormatList = formatList;
259
+ setGroupTitleToFristColumnFieldData(formatList);
260
+ state.curAbleCheckedLen = list.filter((item) => checkMethod({
261
+ row: item
262
+ })).length;
263
+ if (!props.isNestTable) {
264
+ await handleFormTheUniqueKey();
265
+ }
266
+ formatList = formatList.map((v) => {
267
+ return {
268
+ ...v,
269
+ selectTableShow: false,
270
+ selectTableDisable: false
271
+ };
272
+ });
273
+ await table.loadData(formatList);
274
+ table.setCurrentRow({});
275
+ setCurrentPageRowChecked();
276
+ setGroupTreeExpand();
277
+ resetTableInlineEditStatus();
278
+ };
279
+ const setGroupTitleToFristColumnFieldData = (formatList) => {
280
+ if (state.isTree != 3)
281
+ return;
282
+ let table = xGrid.value;
283
+ let key = table.getTableColumn().tableColumn?.find((column) => {
284
+ return !!column.property;
285
+ }).property;
286
+ setTreeGroupTitle(formatList, key, GROUP_TITLE_KEY);
287
+ };
288
+ const setCurrentPageRowChecked = () => {
289
+ let table = xGrid.value;
290
+ if (!table)
291
+ return;
292
+ let currentPageTableData = table.getTableData()?.tableData;
293
+ let currentPageSelectedRows = currentPageTableData.filter((row) => {
294
+ if (props.primaryKey) {
295
+ return currentCheckedKeys.value.includes(row[props.primaryKey]);
296
+ }
297
+ return row.checked;
298
+ });
299
+ setCurrentCheckedLength();
300
+ if (!currentPageSelectedRows || !currentPageSelectedRows.length) {
301
+ table.setAllCheckboxRow(false);
302
+ return;
303
+ }
304
+ table.setCheckboxRow(currentPageSelectedRows, true);
305
+ };
306
+ const setCurrentCheckedLength = () => {
307
+ let table = xGrid.value;
308
+ let currentPageTableData = table.getTableData().fullData;
309
+ let currentPageSelectedRows = currentPageTableData.filter((row) => {
310
+ return currentCheckedKeys.value.includes(row[props.primaryKey]) || row.checked;
311
+ });
312
+ state.currentPageSelectedLength = currentPageSelectedRows.length;
313
+ };
314
+ const formatColumns = (map) => {
315
+ let {
316
+ selectType
317
+ } = getOtherConfigInit() || {};
318
+ let {
319
+ isBatchSelect,
320
+ fieldList = [],
321
+ showButtonTop,
322
+ isScanMultiTable: isScanMultiTable2,
323
+ isEdit = false,
324
+ editConfig = {}
325
+ } = map;
326
+ if (isEdit) {
327
+ state.editConfig = Object.assign(state.editConfig, editConfig, {});
328
+ }
329
+ if (selectType) {
330
+ isBatchSelect = 1;
331
+ }
332
+ selectType = selectType || "checkbox";
333
+ let {
334
+ listType
335
+ } = props.tableOptions;
336
+ if (listType == "scanList") {
337
+ selectType = "radio";
338
+ }
339
+ state.selectType = selectType;
340
+ let tableHeight = props.styleSetting?.tableHeight || "table-simple";
341
+ let checkMinWidth = state.checkWidth[tableHeight] || "30";
342
+ const checkboxSlot = {
343
+ default: (data) => {
344
+ return checkMethod(data) ? null : createVNode(NTooltip, {
345
+ "placement": "right",
346
+ "trigger": "hover"
347
+ }, {
348
+ default: () => data.row.forbiddenBatchSelectReason,
349
+ trigger: () => createVNode("i", {
350
+ "class": "disabled-checked-tips"
351
+ }, null)
352
+ });
353
+ }
354
+ };
355
+ let checkVisible = isBatchSelect == 1 && !props.isNestTable && !isScanMultiTable2 || false;
356
+ let columns = [{
357
+ fixed: "left",
358
+ align: "center",
359
+ visible: isScanMultiTable2 || false,
360
+ width: "60",
361
+ slots: {
362
+ header: () => "\u64CD\u4F5C",
363
+ default: scanMultiOperate
364
+ }
365
+ }, {
366
+ type: "seq",
367
+ fixed: props.isNestTable ? "" : "left",
368
+ align: "center",
369
+ resizable: true,
370
+ width: "34",
371
+ showOverflow: true,
372
+ slots: {
373
+ header: () => {
374
+ return [tableNoSetting.value ? null : createVNode(NIcon, {
375
+ "size": "14",
376
+ "color": "#777",
377
+ "component": SettingsSharp,
378
+ "onClick": () => showDrawer()
379
+ }, null)];
380
+ }
381
+ }
382
+ }, {
383
+ type: selectType,
384
+ fixed: props.isNestTable ? "" : "left",
385
+ align: "center",
386
+ visible: checkVisible,
387
+ resizable: false,
388
+ width: checkMinWidth,
389
+ slots: selectType === "checkbox" ? checkboxSlot : null,
390
+ showOverflow: true
391
+ }];
392
+ const currentColumns = fieldList.map((item, index) => {
393
+ let filterField = item?.fieldSetting?.mapping?.type === "manual" && item.isMerge != 1;
394
+ let notParticipatingSort = item?.fieldSetting?.notParticipatingSort || "";
395
+ let fixed = isAboutNestTable.value ? "" : item.isFixed ? item.isFixed == 1 ? "left" : "right" : "";
396
+ let sortable = props.isNestTable ? false : !filterField && item.isSort == 1 && notParticipatingSort != 1 && item.isMerge != 1;
397
+ let treeNode = props.isNestTable ? false : state.isTree != 0 ? index === 0 : false;
398
+ let type = index === 0 && props.showNestTable ? "expand" : "";
399
+ if (isScanMultiTable2) {
400
+ fixed = "";
401
+ sortable = false;
402
+ treeNode = false;
403
+ type = "";
404
+ }
405
+ const col = Object.assign(item, {
406
+ visible: item.columnName == "operatorColumn" ? showButtonTop == 0 : item.isShow == 1,
407
+ field: item.columnName,
408
+ title: handleName(item, "title"),
409
+ minWidth: item.colWidth,
410
+ fixed,
411
+ sortable,
412
+ headerClassName: "mycolumn",
413
+ showOverflow: "title",
414
+ treeNode,
415
+ type,
416
+ slots: {
417
+ edit: (params) => {
418
+ if (isEdit && item.isEdit && item.columnName !== "operatorColumn") {
419
+ return formatterEdit(params, item);
420
+ } else {
421
+ return createVNode("span", null, [params.row[item.columnName]]);
422
+ }
423
+ },
424
+ default: (params) => {
425
+ if (!isEdit || item.columnName === "operatorColumn" || !item.isEdit) {
426
+ return formatter(params, item);
427
+ } else if (isEdit && item.isEdit && item.checkEditStatus && item.checkEditStatus(params)) {
428
+ return formatterEdit(params, item);
429
+ } else {
430
+ return createVNode("span", null, [getDefaultValue(params, item)]);
431
+ }
432
+ }
433
+ },
434
+ editRender: isEdit ? {} : generateEditRender(item)
435
+ });
436
+ if (filterField && !props.isNestTable && !isScanMultiTable2) {
437
+ state.filterFields[item.columnName] = Object.assign({}, vexutils.clone(item, true), {
438
+ visible: false,
439
+ left: "initial",
440
+ right: "initial",
441
+ top: "initial",
442
+ indeterminate: false,
443
+ checkAll: false,
444
+ searchFilterText: "",
445
+ searchFilterCONVERT: [],
446
+ filterSort: ""
447
+ });
448
+ let field = state.filterFields[item.columnName];
449
+ handlerInitSearchItem([field]);
450
+ col.slots.header = formatterHeader(item);
451
+ } else {
452
+ col.slots.header = toolTipTitle(item);
453
+ }
454
+ if (!isScanMultiTable2) {
455
+ col.slots.footer = "tooltip_footer";
456
+ }
457
+ if (props.showNestTable && state.isTree == 0 && props.curNestColumnConfig?.isTree == 0) {
458
+ col.slots.content = "nest_table_content";
459
+ }
460
+ return col;
461
+ });
462
+ columns.push(...currentColumns);
463
+ state.columnLen = currentColumns.filter((item) => item.visible).length;
464
+ return columns;
465
+ };
466
+ const formatterEdit = (params, col) => {
467
+ let {
468
+ row,
469
+ column,
470
+ $rowIndex,
471
+ rowIndex
472
+ } = params;
473
+ let formType = column.formType || col.formType || "";
474
+ let formatMap = column.formatMap || col.formatMap || null;
475
+ if (!formType)
476
+ return null;
477
+ if (formType === "custom") {
478
+ return col.slotFn(params);
479
+ }
480
+ const Comp = comps[formType] || "";
481
+ if (!Comp)
482
+ return null;
483
+ const propsData = {
484
+ col,
485
+ row,
486
+ index: $rowIndex,
487
+ type: formType,
488
+ onFormChange
489
+ };
490
+ if (formType === "date") {
491
+ propsData.formattedValue = row[col.columnName];
492
+ } else if (formatMap) {
493
+ propsData.value = row[formatMap.value];
494
+ } else {
495
+ propsData.value = row[col.columnName];
496
+ }
497
+ if (formType === "select") {
498
+ propsData.onSetOptions = (options) => row[`${col.columnName}_options`] = options;
499
+ }
500
+ return h(Comp, propsData);
501
+ };
502
+ const getEditBtn = (row, col, index) => {
503
+ return col.tileBtnList?.map((btn) => {
504
+ if (btn.settingObj[0].trigger_type === "DELETE") {
505
+ return createVNode(NPopconfirm, {
506
+ "onPositiveClick": () => deleteRow(row, col, index)
507
+ }, {
508
+ trigger: () => createVNode(NButton, {
509
+ "color": btn.settingObj[0].color || "#999",
510
+ "text": true
511
+ }, {
512
+ default: () => [btn.name]
513
+ }),
514
+ default: () => "\u662F\u5426\u786E\u8BA4\u5220\u9664\uFF1F"
515
+ });
516
+ } else {
517
+ return null;
518
+ }
519
+ });
520
+ };
521
+ const formatter = (params, col) => {
522
+ let {
523
+ row,
524
+ column,
525
+ $rowIndex
526
+ } = params;
527
+ let own = column?._own || column?.own || col;
528
+ let attrType = own?.attrType || "";
529
+ let formUnionItem = showEditForm(row, column, $rowIndex);
530
+ if (formUnionItem) {
531
+ let dynamicProps = initBatchDynamicProps(formUnionItem, row, column);
532
+ if (dynamicProps) {
533
+ emit("setWaitEditKeys", column.property);
534
+ return null;
535
+ }
536
+ }
537
+ if (vexutils.has(row, GROUP_TITLE_KEY)) {
538
+ return row[GROUP_TITLE_KEY];
539
+ }
540
+ if (attrType == "PICTURE" || attrType == "HEADPORTRAIT") {
541
+ return getPicture(row, own, attrType);
542
+ }
543
+ if (attrType == "COLOR") {
544
+ return getColor(row, own);
545
+ }
546
+ if (attrType == "EVALUATE") {
547
+ return getEvaluate(row, own);
548
+ }
549
+ if (attrType == "MAP") {
550
+ return getMapVal(row, own);
551
+ }
552
+ if (attrType == "DATE" || attrType == "TASKDATE") {
553
+ return getDate(row, own);
554
+ }
555
+ if (attrType == "PERCENTAGE") {
556
+ return getPercentage(row, own);
557
+ }
558
+ if (attrType == "VIDEO") {
559
+ return getvideoList(row, own);
560
+ }
561
+ if (attrType == "CANDIDATE_COMPONENTS") {
562
+ return getCandidateComponents(row, own);
563
+ }
564
+ if (attrType == "AGE") {
565
+ return getageShowType(row, own);
566
+ }
567
+ if (attrType === "COUNTDOWN") {
568
+ return createVNode(NTooltip, null, {
569
+ trigger: () => createVNode("span", {
570
+ "innerHTML": row[own.columnName + "_countdown"] || ""
571
+ }, null),
572
+ default: () => row[own.columnName + "_countdownTip"]
573
+ });
574
+ }
575
+ if (attrType === "DURATION") {
576
+ const value = row[own.columnName];
577
+ const duration = own?.fieldSetting?.duration;
578
+ return parseDurationValue(value, duration);
579
+ }
580
+ if (attrType === "COMBINATION") {
581
+ const value = row[own.columnName];
582
+ const params2 = own.fieldSetting || {};
583
+ const data = parseCombinationValue(value, params2);
584
+ return data ? [createVNode("span", {
585
+ "title": data
586
+ }, [data])] : "";
587
+ }
588
+ if (attrType === "PASSWORD") {
589
+ const value = row[own.columnName];
590
+ return [createVNode(resolveComponent("password-com"), {
591
+ "value": value,
592
+ "styleSetting": props.styleSetting
593
+ }, null)];
594
+ }
595
+ if (attrType === "QR_CODE") {
596
+ return getOrCode(row, own);
597
+ }
598
+ if (column.property === "operatorColumn") {
599
+ if (props.columnConfig.isEdit && !row.initRow) {
600
+ return getEditBtn(row, col, $rowIndex);
601
+ }
602
+ if (state.showButtonTop != 0 || props.isBatchEditing)
603
+ return;
604
+ const inlineBtnList = generateInlineBtnList(row);
605
+ const tileBtnList = getTileBtnList(row, $rowIndex);
606
+ const foldBtnList = getFoldBtnList(row, $rowIndex);
607
+ return [createVNode("span", null, [tileBtnList, foldBtnList, inlineBtnList])];
608
+ }
609
+ if (isLink(props, own, row) && !isScanMultiTable.value) {
610
+ if (own.btnLinkSwitch) {
611
+ let disabled = false;
612
+ let curBtn = row.btnList?.find((v) => v.name == own.columnName);
613
+ if (curBtn && "authorizedMark" in curBtn) {
614
+ if (!curBtn.authorizedMark) {
615
+ disabled = true;
616
+ }
617
+ }
618
+ return getBtnLinkSwitch(row, own, disabled, $rowIndex);
619
+ } else {
620
+ return getField(row, own, $rowIndex, true);
621
+ }
622
+ } else {
623
+ return getField(row, own, $rowIndex, false);
624
+ }
625
+ };
626
+ const formatterHeader = (item) => {
627
+ let field = state.filterFields[item.columnName];
628
+ return () => {
629
+ let _slot, _slot2;
630
+ return [createVNode("div", {
631
+ "class": "filter-box"
632
+ }, [toolTipTitle(item, "format"), createVNode("i", {
633
+ "class": ["vxe-filter--icon", "vxe-filter--btn", "vxe-icon--funnel", {
634
+ active: field.visible || field.filterSort
635
+ }, {
636
+ checked: field.CONVERT?.length
637
+ }],
638
+ "onClick": (event) => showFilter(field, item.columnName, event, props, state)
639
+ }, null), field.visible ? createVNode(resolveComponent("teleport"), {
640
+ "to": props.filterDomPortal
641
+ }, {
642
+ default: () => [createVNode("div", {
643
+ "class": "big-table-filter-wrap",
644
+ "style": {
645
+ left: field.left,
646
+ right: field.right,
647
+ top: field.top,
648
+ width: state.filterWidth + state.distance + "px"
649
+ }
650
+ }, [createVNode("div", {
651
+ "class": "sort-list",
652
+ "style": {
653
+ display: field.isSort ? "block" : "none"
654
+ }
655
+ }, [createVNode("div", {
656
+ "class": ["sort-item", {
657
+ active: field.filterSort === "asc"
658
+ }],
659
+ "onClick": () => handlefilterBoxClickSort("asc", field)
660
+ }, [createVNode("i", {
661
+ "class": "sort-icon sort-icon-asc"
662
+ }, null), createVNode("span", {
663
+ "class": "sort-text"
664
+ }, [createTextVNode("\u5347\u5E8F A to Z")])]), createVNode("div", {
665
+ "class": ["sort-item", {
666
+ active: field.filterSort === "desc"
667
+ }],
668
+ "onClick": () => handlefilterBoxClickSort("desc", field)
669
+ }, [createVNode("i", {
670
+ "class": "sort-icon sort-icon-asc"
671
+ }, null), createVNode("span", {
672
+ "class": "sort-text"
673
+ }, [createTextVNode("\u964D\u5E8F Z to A")])])]), createVNode("div", {
674
+ "class": "filter-header"
675
+ }, [createVNode("i", {
676
+ "class": "filter-header-icon vxe-filter--btn vxe-icon--funnel"
677
+ }, null), createVNode("span", {
678
+ "class": "filter-header-text"
679
+ }, [createTextVNode("\u7B5B\u9009")])]), field.setting.showSetting.length > 5 ? createVNode("div", {
680
+ "class": "checkbox-wrap checkbox-wrap--search"
681
+ }, [createVNode("div", {
682
+ "class": "check-search-wrap"
683
+ }, [createVNode(NInputGroup, null, {
684
+ default: () => [createVNode(NInput, {
685
+ "style": {
686
+ width: "50%"
687
+ },
688
+ "placeholder": "\u5B57\u6BB5\u641C\u7D22",
689
+ "class": "check-seach-input"
690
+ }, null), createVNode(NButton, {
691
+ "type": "primary",
692
+ "onClick": (val) => {
693
+ handleFilterSeach(val, field);
694
+ }
695
+ }, {
696
+ default: () => [createTextVNode("\u641C\u7D22")]
697
+ })]
698
+ })])]) : "", createVNode("div", {
699
+ "class": "checkbox-box"
700
+ }, [createVNode("div", {
701
+ "class": "checkbox-wrap js-checkbox-wrap",
702
+ "style": {
703
+ height: state.filterHeight + state.distance + "px"
704
+ }
705
+ }, [!field.searchFilterText ? createVNode("div", {
706
+ "class": "ant-checkbox-group"
707
+ }, [createVNode(NCheckbox, {
708
+ "indeterminate": field.indeterminate,
709
+ "checked": field.checkAll,
710
+ "onUpdateChecked": (val) => {
711
+ handleFilterChangeAll(val, field);
712
+ }
713
+ }, {
714
+ default: () => [createTextVNode("\u5168\u9009")]
715
+ })]) : "", !field.searchFilterText ? createVNode(NCheckboxGroup, {
716
+ "value": field.CONVERT,
717
+ "onUpdateValue": (val) => handleFilterChange(val, item.columnName, field)
718
+ }, {
719
+ default: () => [createVNode(NSpace, {
720
+ "item-style": "display: flex;"
721
+ }, _isSlot(_slot = field.setting.showSetting.map((item2) => {
722
+ return createVNode(NCheckbox, {
723
+ "value": item2.value,
724
+ "label": item2.label
725
+ }, null);
726
+ })) ? _slot : {
727
+ default: () => [_slot]
728
+ })]
729
+ }) : createVNode(NCheckboxGroup, {
730
+ "value": field.searchFilterCONVERT,
731
+ "onUpdateValue": (val) => handleFilterSearchChange(val, item.columnName, field)
732
+ }, {
733
+ default: () => [createVNode(NSpace, {
734
+ "item-style": "display: flex;"
735
+ }, _isSlot(_slot2 = field.setting.showSetting.filter((item2) => {
736
+ if (!field.searchFilterText)
737
+ return item2;
738
+ let reg = new RegExp(field.searchFilterText);
739
+ return reg.test(item2.label);
740
+ }).map((item2) => {
741
+ return createVNode(NCheckbox, {
742
+ "value": item2.value,
743
+ "label": item2.label
744
+ }, null);
745
+ })) ? _slot2 : {
746
+ default: () => [_slot2]
747
+ })]
748
+ })])]), createVNode("div", {
749
+ "class": "checkbox-btn-wrap",
750
+ "style": {
751
+ justifyContent: field.CONVERT.length ? "space-between" : "flex-end"
752
+ }
753
+ }, [field.CONVERT.length ? createVNode("div", {
754
+ "class": "checkbox-btn-status"
755
+ }, [createVNode("span", null, [createTextVNode("\u5DF2\u9009\u62E9"), field.CONVERT.length, createTextVNode("\u9879")]), createVNode(NButton, {
756
+ "class": "checkbox-btn checkbox-btn-clear",
757
+ "text": true,
758
+ "onClick": () => handleFilterClearAll(field)
759
+ }, {
760
+ default: () => [createTextVNode("\u6E05\u7A7A")]
761
+ })]) : null, createVNode("div", null, [createVNode(NButton, {
762
+ "class": "checkbox-btn",
763
+ "onClick": () => handleCancelFilter()
764
+ }, {
765
+ default: () => [createTextVNode("\u53D6\u6D88")]
766
+ }), createVNode(NButton, {
767
+ "class": "checkbox-btn",
768
+ "type": "primary",
769
+ "onClick": () => handleFilter(field)
770
+ }, {
771
+ default: () => [createTextVNode("\u786E\u5B9A")]
772
+ })])]), createVNode("div", {
773
+ "class": "arrows-icon"
774
+ }, null)])]
775
+ }) : ""])];
776
+ };
777
+ };
778
+ const handlefilterBoxClickSort = (sort, field) => {
779
+ if (field.filterSort === sort) {
780
+ sort = null;
781
+ } else {
782
+ xGrid.value.clearSort();
783
+ }
784
+ field.filterSort = sort;
785
+ emit("sortChange", {
786
+ prop: field.columnName,
787
+ order: sort
788
+ });
789
+ };
790
+ const handleFilterSeach = (val, field) => {
791
+ field.searchFilterText = val;
792
+ if (val === "") {
793
+ field.checkAll = field.CONVERT.length === field.setting.showSetting.length;
794
+ field.indeterminate = !!field.CONVERT.length && field.CONVERT.length !== field.setting.showSetting.length;
795
+ return;
796
+ }
797
+ field.searchFilterCONVERT = field.setting.showSetting.filter((item) => {
798
+ return field.searchFilterText === item.label && field.CONVERT.includes(item.value);
799
+ }).map((item) => item.value);
800
+ _beforeSearchConvert = field.searchFilterCONVERT;
801
+ };
802
+ const handleFilterChangeAll = (e, field) => {
803
+ reScrollFilterWrap();
804
+ let checked = e.target.checked;
805
+ field.indeterminate = false;
806
+ field.checkAll = checked;
807
+ state.filterFields[field.columnName].CONVERT = checked ? field.setting.showSetting.map((item) => {
808
+ return item.value;
809
+ }) : [];
810
+ };
811
+ const handleFilterChange = (value, name, field) => {
812
+ reScrollFilterWrap();
813
+ state.filterFields[name].CONVERT = value;
814
+ field.checkAll = value.length === field.setting.showSetting.length;
815
+ field.indeterminate = !!value.length && value.length !== field.setting.showSetting.length;
816
+ };
817
+ const handleFilterSearchChange = (value, columnName, field) => {
818
+ reScrollFilterWrap();
819
+ let isAdd = _beforeSearchConvert.length < value.length;
820
+ if (isAdd) {
821
+ let addItems = value.filter((item) => {
822
+ return !_beforeSearchConvert.includes(item);
823
+ });
824
+ state.filterFields[columnName].CONVERT.push(...addItems);
825
+ } else {
826
+ let removeItems = _beforeSearchConvert.filter((item) => {
827
+ return !value.includes(item);
828
+ });
829
+ state.filterFields[columnName].CONVERT = state.filterFields[columnName].CONVERT.filter((item) => {
830
+ return !removeItems.includes(item);
831
+ });
832
+ }
833
+ field.searchFilterCONVERT = value;
834
+ _beforeSearchConvert = vexutils.clone(value, true);
835
+ };
836
+ const handleFilterClearAll = (field) => {
837
+ field.indeterminate = false;
838
+ field.checkAll = false;
839
+ state.filterFields[field.columnName].CONVERT = [];
840
+ if (field.searchFilterCONVERT) {
841
+ state.filterFields[field.columnName].searchFilterCONVERT = [];
842
+ }
843
+ handleFilter(field);
844
+ };
845
+ const handleCancelFilter = () => {
846
+ hideFilterWrap(state, props);
847
+ };
848
+ const handleFilter = (field) => {
849
+ let conObj = mergeConObjFn(state, props);
850
+ emit("onSave", conObj, false, [], [], {
851
+ isBigTable: true
852
+ });
853
+ field.visible = false;
854
+ };
855
+ const setGroupTreeExpand = () => {
856
+ let isExpand = state.isTree == 1 && state.isExpand == 1 && state.total < 1001;
857
+ if (state.isTree == 3 || isExpand) {
858
+ let table = xGrid.value;
859
+ nextTick(() => {
860
+ table.setAllTreeExpand(true);
861
+ });
862
+ }
863
+ };
864
+ const resetTableInlineEditStatus = () => {
865
+ if (!checkOperateCurrentTable())
866
+ return false;
867
+ handleClickCancelBtnByInline();
868
+ };
869
+ const toolTipTitle = (item, type) => {
870
+ let name = item.formTitle || item.alias || item.title;
871
+ let tooltipTitle = item.alias;
872
+ let isAlias = false;
873
+ if (props.tableOptions?.dataSourceType == "guage") {
874
+ tooltipTitle = item.alias || item.title;
875
+ }
876
+ if (name && tooltipTitle && name !== tooltipTitle) {
877
+ isAlias = !!tooltipTitle;
878
+ }
879
+ if (type === "format")
880
+ return createVNode(script$1, {
881
+ "tooltipTitle": tooltipTitle,
882
+ "content": name,
883
+ "isAlias": isAlias
884
+ }, null);
885
+ return () => {
886
+ return [createVNode(script$1, {
887
+ "tooltipTitle": tooltipTitle,
888
+ "content": name,
889
+ "isAlias": isAlias
890
+ }, {
891
+ default: () => [item.treeNode && state.isTree == 1 ? createVNode(NIcon, {
892
+ "component": state.isExpand && state.total < 1001 ? CaretDown : CaretForward,
893
+ "onClick": (e) => triggerExpand(e, state.isExpand)
894
+ }, null) : ""]
895
+ })];
896
+ };
897
+ };
898
+ const triggerExpand = (e, isExpand) => {
899
+ e.preventDefault();
900
+ e.stopPropagation();
901
+ let table = xGrid.value;
902
+ if (state.total > 1e3) {
903
+ window.$message.warning("\u5F53\u524D\u6570\u636E\u91CF\u8D85\u8FC71000\u6761\uFF0C\u65E0\u6CD5\u5168\u90E8\u5C55\u5F00\uFF01");
904
+ } else {
905
+ state.isExpand = !isExpand;
906
+ if (isExpand) {
907
+ table.clearTreeExpand();
908
+ } else {
909
+ emit("triggerSpinning", true);
910
+ setTimeout(() => {
911
+ table.setAllTreeExpand(true).then(() => {
912
+ emit("triggerSpinning", false);
913
+ });
914
+ }, 100);
915
+ }
916
+ }
917
+ };
918
+ const getOtherConfigInit = () => {
919
+ let tableOptions = attr?.tableOptions || props.tableOptions || {};
920
+ const config = tableOptions?.config || {};
921
+ return config || void 0;
922
+ };
923
+ const refreshTable = () => {
924
+ state.hasRefresh = false;
925
+ emit("refreshTable");
926
+ };
927
+ const handleCheckAll = () => {
928
+ if (props.pageVO.total > props.maxCheckSize) {
929
+ let text = `\u5F53\u524D\u5217\u8868\u5171${props.pageVO.total}\u6761\u6570\u636E\uFF0C\u4E3A\u4E86\u786E\u4FDD\u7CFB\u7EDF\u5B89\u5168\uFF0C\u53EA\u80FD\u5355\u6B21\u64CD\u4F5C${props.maxCheckSize}\u6761\uFF0C\u4F60\u53EF\u4EE5\u901A\u8FC7\u9AD8\u7EA7\u7B5B\u9009\u8FC7\u6EE4\u518D\u6B21\u5C1D\u8BD5`;
930
+ window.$message.warning(text);
931
+ }
932
+ emit("selectionChangeAll");
933
+ };
934
+ const handleCancelAllCheck = () => {
935
+ emit("selectionChangeAllCancel");
936
+ };
937
+ const getRowClassName = () => {
938
+ return state.selectType === "checkbox" ? ({
939
+ row
940
+ }) => {
941
+ const k = singleCheckedKey.value;
942
+ return k && k === row[props.primaryKey] ? "single--checked" : "";
943
+ } : () => {
944
+ };
945
+ };
946
+ const footerMethod = ({
947
+ columns,
948
+ data
949
+ }) => {
950
+ if (!props.groupCountFields || !props.groupCountFields.length) {
951
+ return [columns.map((column, index) => {
952
+ if (index === 0) {
953
+ return null;
954
+ }
955
+ return null;
956
+ })];
957
+ }
958
+ let groupText = getFooterGroup(columns, data, props);
959
+ let groupColumns = columns.map((column, index) => {
960
+ if (index === 0) {
961
+ return null;
962
+ } else if (index === 1) {
963
+ return groupText;
964
+ }
965
+ return null;
966
+ });
967
+ emit("setGroupText", groupText);
968
+ state.groupText = groupText;
969
+ return [groupColumns];
970
+ };
971
+ const loadChildrenMethod = ({
972
+ row
973
+ }) => {
974
+ const fixCheckedStatus = (children) => {
975
+ const needFix = state.selectType == "checkbox" && row.checked && children.findIndex((item) => !checkMethod({
976
+ row: item
977
+ })) >= 0;
978
+ if (needFix) {
979
+ needFix && (row.checked = false);
980
+ setTimeout(() => {
981
+ xGrid.value?.setCheckboxRow(row, true);
982
+ }, 0);
983
+ }
984
+ };
985
+ if (state.isTree == 2) {
986
+ const {
987
+ tableId,
988
+ page,
989
+ pageSize,
990
+ autograph,
991
+ isTreeOrList
992
+ } = props.tableParams;
993
+ ({
994
+ levelLazyLoadPrimaryKeyValue: row[props.primaryKey],
995
+ tableId,
996
+ page,
997
+ pageSize,
998
+ autograph,
999
+ isTreeOrList
1000
+ });
1001
+ return getAsyncTableData().then(({
1002
+ data
1003
+ }) => {
1004
+ if (data.result == "SUCCESS") {
1005
+ let cloneRows = JSON.parse(JSON.stringify(data.map.rows));
1006
+ let {
1007
+ fieldList,
1008
+ btnList,
1009
+ showButtonTop
1010
+ } = props.columnConfig;
1011
+ let rowNodes = formatData({
1012
+ tableList: data.map.rows,
1013
+ fieldList,
1014
+ btnList,
1015
+ oldtableData: cloneRows,
1016
+ showButtonTop
1017
+ });
1018
+ rowNodes = setChecklist(rowNodes);
1019
+ emit("refreshOldTableData", cloneRows);
1020
+ fixCheckedStatus(rowNodes);
1021
+ return rowNodes;
1022
+ }
1023
+ });
1024
+ } else {
1025
+ fixCheckedStatus(row.childrenList);
1026
+ return Promise.resolve(row.childrenList);
1027
+ }
1028
+ };
1029
+ const getAsyncTableData = (params) => {
1030
+ return Promise.resolve();
1031
+ };
1032
+ const setChecklist = (list) => {
1033
+ return list.map((i) => {
1034
+ i["checked"] = i.checked || false;
1035
+ if (state.isTree == 2) {
1036
+ const treeNodeKey = state.levelLazyLoadSetting.childCountKey;
1037
+ const {
1038
+ isTreeOrList = ""
1039
+ } = props.tableParams;
1040
+ if (treeNodeKey && Number(i[treeNodeKey]) > 0) {
1041
+ isTreeOrList != "LIST" && (i["hasChildren"] = true);
1042
+ }
1043
+ }
1044
+ if (i.childrenList && i.childrenList.length) {
1045
+ i.childrenList = setChecklist(i.childrenList);
1046
+ }
1047
+ Object.keys(i).map((item) => {
1048
+ if (i[item] && typeof i[item] == "string" && i[item].indexOf("<p") !== -1 && item.indexOf("_temp_" + i.id) === -1) {
1049
+ i[item + "_temp_" + i.id] = i[item] || "";
1050
+ i[item] = htmlToText(i[item]);
1051
+ }
1052
+ });
1053
+ i.checked && state.checkedRows.push(i);
1054
+ return {
1055
+ ...i
1056
+ };
1057
+ });
1058
+ };
1059
+ const colspanMethod = ({
1060
+ row,
1061
+ column,
1062
+ _rowIndex,
1063
+ _columnIndex
1064
+ }) => {
1065
+ if (state.isTree != 3) {
1066
+ return {
1067
+ rowspan: 1,
1068
+ colspan: 1
1069
+ };
1070
+ }
1071
+ let xTree = xGrid.value;
1072
+ let fristKeyIndex = xTree.getTableColumn().tableColumn.findIndex((column2) => {
1073
+ return !!column2.property;
1074
+ });
1075
+ let colspan = xTree.getTableColumn().tableColumn.length - fristKeyIndex;
1076
+ if (row.childrenList && row.childrenList.length && xTree) {
1077
+ if (column.treeNode) {
1078
+ return {
1079
+ rowspan: 1,
1080
+ colspan
1081
+ };
1082
+ } else if (!column.property) {
1083
+ return {
1084
+ rowspan: 1,
1085
+ colspan: 1
1086
+ };
1087
+ } else {
1088
+ return {
1089
+ rowspan: 0,
1090
+ colspan: 0
1091
+ };
1092
+ }
1093
+ }
1094
+ };
1095
+ const footerRowspanMethod = (obj) => {
1096
+ if (!props.groupCountFields || !props.groupCountFields.length)
1097
+ return {
1098
+ rowspan: 1,
1099
+ colspan: 1
1100
+ };
1101
+ let {
1102
+ $rowIndex,
1103
+ _columnIndex,
1104
+ column
1105
+ } = obj;
1106
+ let len = state.columnLen || 99;
1107
+ let {
1108
+ isBatchSelect
1109
+ } = props.columnConfig;
1110
+ if ($rowIndex === 0) {
1111
+ if (isBatchSelect == 1) {
1112
+ if (_columnIndex === 0) {
1113
+ return {
1114
+ rowspan: 1,
1115
+ colspan: 2
1116
+ };
1117
+ } else if (_columnIndex === 1) {
1118
+ return {
1119
+ rowspan: 1,
1120
+ colspan: 0
1121
+ };
1122
+ } else if (_columnIndex === 2) {
1123
+ return {
1124
+ rowspan: 1,
1125
+ colspan: len
1126
+ };
1127
+ }
1128
+ return {
1129
+ rowspan: 1,
1130
+ colspan: 0
1131
+ };
1132
+ }
1133
+ if (_columnIndex === 0) {
1134
+ return {
1135
+ rowspan: 1,
1136
+ colspan: 1
1137
+ };
1138
+ } else if (_columnIndex === 1) {
1139
+ return {
1140
+ rowspan: 1,
1141
+ colspan: len
1142
+ };
1143
+ }
1144
+ return {
1145
+ rowspan: 1,
1146
+ colspan: 0
1147
+ };
1148
+ }
1149
+ };
1150
+ const rowdblclick = ({
1151
+ row,
1152
+ column
1153
+ }) => {
1154
+ if (isScanMultiTable.value || !!props.isInlineOperating)
1155
+ return false;
1156
+ if (vexutils.has(row, GROUP_TITLE_KEY))
1157
+ return false;
1158
+ emit("setNestTableClick", props.isNestTable);
1159
+ emit("rowdblclick", row, column, true, true);
1160
+ };
1161
+ const pubCheckChange = (rows = []) => {
1162
+ state.treeTableLength = rows.filter((item) => {
1163
+ let isGroupRow = vexutils.has(item, GROUP_TITLE_KEY);
1164
+ return !isGroupRow;
1165
+ }).length;
1166
+ state.visibleTreeCheck = rows.length > 1;
1167
+ emit("selectionChange", rows);
1168
+ };
1169
+ const updateAddCheckedRows = (rows, isTree = false) => {
1170
+ let obj = {
1171
+ isUpdate: true,
1172
+ updateRows: rows,
1173
+ isTree
1174
+ };
1175
+ if (isTree) {
1176
+ Object.assign(obj, {
1177
+ isTree,
1178
+ isCheckedChange: true,
1179
+ checkedRows: state.checkedRows
1180
+ });
1181
+ }
1182
+ emit("selectionChangeLocal", obj);
1183
+ };
1184
+ const removeCheckedRows = (rows, isCheckedChange) => {
1185
+ removeCheckedDisabledRows(state);
1186
+ let checkedRows = state.checkedRows;
1187
+ let needRemoveIndexs = [];
1188
+ for (let i = 0; i < rows.length; i++) {
1189
+ let row = rows[i];
1190
+ let removeIndex = currentCheckedKeys.value.findIndex((item) => {
1191
+ return item === row[props.primaryKey];
1192
+ });
1193
+ removeIndex >= 0 && needRemoveIndexs.push(removeIndex);
1194
+ }
1195
+ needRemoveIndexs.sort((a, b) => b - a);
1196
+ emit("selectionChangeLocal", {
1197
+ isAdd: false,
1198
+ isCheckedChange,
1199
+ needRemoveIndexs,
1200
+ newCheckedRows: [],
1201
+ checkedRows
1202
+ });
1203
+ };
1204
+ const setCheckedMehod = (setChecked, row) => {
1205
+ if (setChecked) {
1206
+ updateAddCheckedRows(row);
1207
+ return;
1208
+ }
1209
+ if (props.pageVO.pageIndex != state.lastPageIndex) {
1210
+ updateAddCheckedRows(row);
1211
+ return;
1212
+ }
1213
+ if (currentCheckedKeys.value.includes(row[props.primaryKey])) {
1214
+ removeCheckedRows([row]);
1215
+ return;
1216
+ }
1217
+ updateAddCheckedRows(row);
1218
+ };
1219
+ const handlerClickRow = (data) => {
1220
+ if (isScanMultiTable.value || props.isInlineOperating)
1221
+ return false;
1222
+ if (vexutils.has(data?.row, GROUP_TITLE_KEY))
1223
+ return false;
1224
+ if (state.isTriggerSelectionChange && state.isTree == 0)
1225
+ return false;
1226
+ let table = xGrid.value;
1227
+ isAboutNestTable.value && emit("resetNestLastClickTable", table);
1228
+ let {
1229
+ row,
1230
+ $event = {},
1231
+ $rowIndex
1232
+ } = data;
1233
+ let {
1234
+ className
1235
+ } = $event.target || {};
1236
+ if (className && vexutils.isString(className) && className.includes("vxe-table--expand-btn"))
1237
+ return;
1238
+ isAboutNestTable.value && emit("setNestLastClickTable", table, props.isNestTable, row[handleRowId.value], row);
1239
+ emit("setNestTableClick", false);
1240
+ if (props.isNestTable) {
1241
+ table?.setAllCheckboxRow(false);
1242
+ nestHandleClickRow(table, data);
1243
+ return;
1244
+ }
1245
+ let forbiddenBatchSelect = !checkMethod(data);
1246
+ if (state.selectType == "checkbox" && forbiddenBatchSelect) {
1247
+ table?.setAllCheckboxRow(false);
1248
+ const value = getRowClassName()({
1249
+ row
1250
+ }) == "single--checked" ? [] : [row];
1251
+ state.checkedRows = value;
1252
+ pubCheckChange(value);
1253
+ emit("handlerClickRow", row, $rowIndex);
1254
+ return;
1255
+ }
1256
+ state.visibleCheckAllWrap = false;
1257
+ state.visibleCheckAllWrapMore = false;
1258
+ let checked = false;
1259
+ if (state.selectType == "radio") {
1260
+ checked = table.isCheckedByRadioRow(row);
1261
+ } else {
1262
+ checked = table.isCheckedByCheckboxRow(row);
1263
+ }
1264
+ if (state.isradioChange) {
1265
+ checked = false;
1266
+ state.isradioChange = false;
1267
+ }
1268
+ let checkedRow = table.getCheckboxRecords();
1269
+ let rowLen = state.checkedRows.filter((item) => !vexutils.has(item, GROUP_TITLE_KEY)).length;
1270
+ let newRow = [];
1271
+ if (state.isTree != 0) {
1272
+ let {
1273
+ className: className2
1274
+ } = $event.target || {};
1275
+ if (className2 && className2.includes("vxe-tree--node-btn"))
1276
+ return;
1277
+ if (state.selectType === "checkbox") {
1278
+ let rowVal = {};
1279
+ if (!state.isTriggerSelectionChange) {
1280
+ table.setAllCheckboxRow(false);
1281
+ state.checkedRows = [row];
1282
+ pubCheckChange([row]);
1283
+ rowVal = row;
1284
+ } else {
1285
+ if (checkedRow.length > 1)
1286
+ return false;
1287
+ rowVal = checked || checkedRow.length === 1 && !checked ? checkedRow[0] : {};
1288
+ state.checkedRows = [rowVal];
1289
+ }
1290
+ updateAddCheckedRows(rowVal, true);
1291
+ emit("handlerClickRow", rowVal);
1292
+ return;
1293
+ }
1294
+ let newTheUniqueKeyArr = [];
1295
+ flattenRow(row, newRow, newTheUniqueKeyArr, handleRowId.value);
1296
+ let res = intersectRow(checkedRow, newTheUniqueKeyArr, handleRowId.value);
1297
+ if (!res) {
1298
+ rowLen = 1;
1299
+ } else {
1300
+ rowLen = checkedRow.filter((item) => !vexutils.has(item, GROUP_TITLE_KEY)).length;
1301
+ }
1302
+ }
1303
+ table.setAllCheckboxRow(false);
1304
+ let setChecked = checked;
1305
+ if (rowLen > 1) {
1306
+ state.selectType != "radio" && table.setCheckboxRow([row], true);
1307
+ state.isTree != 0 && state.selectType != "radio" && pubCheckChange(newRow);
1308
+ state.selectType != "radio" && emit("handlerClickRow", row, $rowIndex);
1309
+ } else {
1310
+ setChecked = !setChecked;
1311
+ if (!setChecked) {
1312
+ table.clearCurrentRow();
1313
+ state.selectType == "radio" && table.clearRadioRow();
1314
+ state.isTree != 0 && state.selectType != "radio" && pubCheckChange([]);
1315
+ } else {
1316
+ state.selectType == "radio" && table.setRadioRow(row);
1317
+ state.isTree != 0 && state.selectType != "radio" && pubCheckChange(newRow);
1318
+ }
1319
+ state.selectType != "radio" && table.setCheckboxRow([row], setChecked);
1320
+ }
1321
+ if (state.isTree != 0) {
1322
+ setChecked && emit("handlerClickRow", row, $rowIndex);
1323
+ return;
1324
+ }
1325
+ setCheckedMehod(setChecked, row);
1326
+ if (setChecked || rowLen > 1 || !rowLen) {
1327
+ state.checkedRows = [row];
1328
+ }
1329
+ if (!setChecked && rowLen === 1) {
1330
+ state.checkedRows = [];
1331
+ }
1332
+ setCurrentCheckedLength();
1333
+ state.lastPageIndex = props.pageVO.pageIndex;
1334
+ setChecked && emit("handlerClickRow", row, $rowIndex);
1335
+ };
1336
+ const addCheckedRows = (rows) => {
1337
+ removeCheckedDisabledRows(state);
1338
+ let checkedRows = state.checkedRows;
1339
+ if (currentCheckedKeys.value.length + rows.length > props.maxCheckSize) {
1340
+ window.$message.warning(`\u4E3A\u4E86\u4FDD\u8BC1\u7CFB\u7EDF\u5B89\u5168\uFF0C\u5355\u6B21\u64CD\u4F5C\u6570\u636E\u91CF\u9650\u989D\u4E3A${props.maxCheckSize}\u6761\uFF0C\u4F60\u53EF\u4EE5\u901A\u8FC7\u9AD8\u7EA7\u7B5B\u9009\u8FC7\u6EE4\u540E\u518D\u6B21\u5C1D\u8BD5`);
1341
+ return false;
1342
+ }
1343
+ let newCheckedRows = rows.filter((row) => {
1344
+ return !currentCheckedKeys.value.includes(row[props.primaryKey]);
1345
+ });
1346
+ checkedRows.push(...newCheckedRows);
1347
+ emit("selectionChangeLocal", {
1348
+ isAdd: true,
1349
+ isCheckedChange: true,
1350
+ newCheckedRows,
1351
+ checkedRows
1352
+ });
1353
+ };
1354
+ const treeTableSelectionChange = (records) => {
1355
+ if (state.isTree == 0) {
1356
+ return false;
1357
+ }
1358
+ pubCheckChange(records);
1359
+ return true;
1360
+ };
1361
+ const selectionChange = ({
1362
+ checked,
1363
+ row,
1364
+ records
1365
+ }) => {
1366
+ let table = xGrid.value;
1367
+ table.clearCurrentRow();
1368
+ state.isTriggerSelectionChange = true;
1369
+ setTimeout(() => {
1370
+ state.isTriggerSelectionChange = false;
1371
+ }, 0);
1372
+ if (treeTableSelectionChange(records))
1373
+ return;
1374
+ if (checked) {
1375
+ addCheckedRows([row]);
1376
+ } else {
1377
+ removeCheckedRows([row], true);
1378
+ }
1379
+ setCurrentCheckedLength();
1380
+ };
1381
+ const selectionChangeAll = ({
1382
+ checked,
1383
+ records
1384
+ }) => {
1385
+ if (treeTableSelectionChange(records))
1386
+ return;
1387
+ if (checked) {
1388
+ addCheckedRows(records);
1389
+ } else {
1390
+ removeCheckedRows(props.data);
1391
+ }
1392
+ setCurrentCheckedLength();
1393
+ };
1394
+ const radioOnChange = (rowData = {}) => {
1395
+ let {
1396
+ data,
1397
+ row,
1398
+ $rowIndex
1399
+ } = rowData;
1400
+ emit("selectionChange", [{
1401
+ ...row
1402
+ }]);
1403
+ };
1404
+ const sortChange = ({
1405
+ property,
1406
+ order
1407
+ }) => {
1408
+ if (props.isInlineOperating)
1409
+ return false;
1410
+ Object.values(state.filterFields).forEach((item) => item.filterSort = null);
1411
+ emit("sortChange", {
1412
+ prop: property,
1413
+ order
1414
+ });
1415
+ };
1416
+ const showDrawer = () => {
1417
+ const theads = xGrid.value.$el.childNodes[0].childNodes[1].childNodes[0].getElementsByClassName("mycolumn");
1418
+ emit("setNestTableClickSetting", props.isNestTable);
1419
+ emit("showDrawer", theads);
1420
+ };
1421
+ let scrollEvent = (params) => {
1422
+ emit("scroll", params);
1423
+ };
1424
+ const initScroll = () => {
1425
+ const {
1426
+ throttle = false,
1427
+ throttleTime = 800,
1428
+ throttleOptions = {}
1429
+ } = props.columnConfig?.scrollConfig || {};
1430
+ if (throttle) {
1431
+ scrollEvent = vexutils.throttle(scrollEvent, throttleTime, throttleOptions);
1432
+ }
1433
+ };
1434
+ initScroll();
1435
+ const handlerScroll = (params) => {
1436
+ if (params.isX) {
1437
+ hideFilterWrap(state, props);
1438
+ }
1439
+ scrollEvent(params);
1440
+ };
1441
+ const handleCellMouseenter = ({
1442
+ column,
1443
+ $event
1444
+ }) => {
1445
+ if (column.showOverflow === "title") {
1446
+ const target = $event?.currentTarget;
1447
+ const cls = target?.className;
1448
+ const bodyCls = " vxe-body--column ";
1449
+ if (cls && ` ${cls} `.includes(bodyCls) && target && target.hasAttribute("title")) {
1450
+ const cellElem = target.querySelector(".vxe-cell");
1451
+ if (cellElem && cellElem.hasAttribute("title")) {
1452
+ cellElem.removeAttribute("title");
1453
+ }
1454
+ if (props.isInlineOperating) {
1455
+ if (target && target.hasAttribute("title")) {
1456
+ target.removeAttribute("title");
1457
+ }
1458
+ }
1459
+ }
1460
+ }
1461
+ };
1462
+ const getFooterTooltipTitle = (column) => {
1463
+ let t = "";
1464
+ if (vexutils.has(props.sumData, column.property)) {
1465
+ t += `<p class="table-footer-tooltip-label-wrap">
1466
+ <span class="table-footer-tooltip-label">\u6C42\u548C\uFF1A</span>
1467
+ ${vexutils.round(Number(props.sumData[column.property]), 4)}
1468
+ </p>`;
1469
+ }
1470
+ if (vexutils.has(props.avgData, column.property)) {
1471
+ t += `<p class="table-footer-tooltip-label-wrap">
1472
+ <span class="table-footer-tooltip-label">\u5E73\u5747\u503C\uFF1A</span>
1473
+ ${vexutils.round(Number(props.avgData[column.property]), 4)}</p>`;
1474
+ }
1475
+ return t;
1476
+ };
1477
+ const getFooterTitle = (column) => {
1478
+ if (vexutils.has(props.sumData, column.property)) {
1479
+ return vexutils.round(Number(props.sumData[column.property]), 2);
1480
+ }
1481
+ if (vexutils.has(props.avgData, column.property)) {
1482
+ return vexutils.round(Number(props.avgData[column.property]), 2);
1483
+ }
1484
+ };
1485
+ const hanldeClickRefresh = () => {
1486
+ emit("pubTableRefresh");
1487
+ };
1488
+ const confirmScanMulti = (params) => {
1489
+ let {
1490
+ row,
1491
+ $rowIndex
1492
+ } = params || {};
1493
+ if (!row)
1494
+ return;
1495
+ emit("scanMultiRemove", $rowIndex, params);
1496
+ let vxeTable = xGrid.value;
1497
+ vxeTable.remove(row);
1498
+ };
1499
+ const scanMultiOperate = (params) => {
1500
+ return createVNode(NPopconfirm, {
1501
+ "onPositiveClick": () => confirmScanMulti(params)
1502
+ }, {
1503
+ trigger: () => createVNode(script$2, {
1504
+ "class": "scan-multi-delete",
1505
+ "iconClass": "shanchu"
1506
+ }, null),
1507
+ default: () => "\u662F\u5426\u786E\u8BA4\u5220\u9664\uFF1F"
1508
+ });
1509
+ };
1510
+ const showEditForm = (row, column, $rowIndex) => {
1511
+ if (!props.isMatchComponent || props.isNestTable || isScanMultiTable.value)
1512
+ return false;
1513
+ if (props.isBatchEditing || props.isInlineEditing || props.isInlineAdding) {
1514
+ let matchObj = state.editColumnMap[column.property];
1515
+ if (!matchObj || !matchObj.matchItem || !matchObj.fieldItem)
1516
+ return false;
1517
+ if (props.isBatchEditing && !props.isEditAllRow) {
1518
+ let matchIndex = state.checkedRows.findIndex((v) => v[props.primaryKey] == row[props.primaryKey]);
1519
+ if (matchIndex < 0)
1520
+ return false;
1521
+ }
1522
+ if (props.isInlineEditing || props.isInlineAdding) {
1523
+ if ($rowIndex !== 0)
1524
+ return false;
1525
+ }
1526
+ return matchObj.matchItem;
1527
+ }
1528
+ return false;
1529
+ };
1530
+ const initBatchDynamicProps = (unionItem, row, column, $rowIndex) => {
1531
+ let id = row[props.primaryKey];
1532
+ let dynamicPropsCache = props.batchDynamicPropsCache[id];
1533
+ if (dynamicPropsCache && dynamicPropsCache[unionItem.tableField]) {
1534
+ return dynamicPropsCache[unionItem.tableField];
1535
+ }
1536
+ let matchObj = state.editColumnMap[column.property];
1537
+ let {
1538
+ fieldItem = {}
1539
+ } = matchObj || {};
1540
+ let defaultCombinationForm = {};
1541
+ if (!props.isInlineAdding) {
1542
+ let originalRow = props.pageIndexOldtableData.find((item) => item[props.primaryKey] == row[props.primaryKey]);
1543
+ defaultCombinationForm = setDefaultFormData(column.property, fieldItem, originalRow);
1544
+ }
1545
+ let tempFieldItem = JSON.parse(JSON.stringify(fieldItem));
1546
+ let defaultForm = {
1547
+ fieldList: [tempFieldItem],
1548
+ defaultCombinationForm
1549
+ };
1550
+ let dynamicProps = {
1551
+ props: {
1552
+ formPrimaryKey: id,
1553
+ defaultForm,
1554
+ banRequest: true,
1555
+ propsFormBtn: true,
1556
+ propsDelSetting: true,
1557
+ parentConfig: {
1558
+ is_edit: "1"
1559
+ },
1560
+ configuration: configuration.value,
1561
+ isPure: true,
1562
+ isOpenShortcut: false,
1563
+ cacheUniqueKey: state.cacheUniqueKey,
1564
+ styleSetting: {}
1565
+ },
1566
+ on: {
1567
+ handleSubmit: handleSubmitEditForm,
1568
+ banSubmit
1569
+ }
1570
+ };
1571
+ emit("setBatchDynamicPropsCache", {
1572
+ primaryKey: row[props.primaryKey],
1573
+ tableField: unionItem.tableField,
1574
+ dynamicProps
1575
+ });
1576
+ return dynamicProps;
1577
+ };
1578
+ const handleSubmitEditForm = (obj = {}) => {
1579
+ if (props.isInlineEditing || props.isInlineAdding) {
1580
+ emit("submitEditFormSuccess", obj);
1581
+ return;
1582
+ }
1583
+ if (props.isBatchEditing) {
1584
+ emit("submitEditFormSuccessBatch", obj);
1585
+ return;
1586
+ }
1587
+ };
1588
+ const banSubmit = (obj) => {
1589
+ if (props.isInlineEditing || props.isInlineAdding) {
1590
+ emit("submitEditFormError");
1591
+ return;
1592
+ }
1593
+ if (props.isBatchEditing) {
1594
+ emit("submitEditFormErrorBatch", obj);
1595
+ return;
1596
+ }
1597
+ };
1598
+ const handleFormTheUniqueKey = async () => {
1599
+ emit("initInlineEditFormConfig", {
1600
+ listFormUnionSetting: props.listFormUnionSetting,
1601
+ inlineEditFormConfig: props.inlineEditFormConfig
1602
+ });
1603
+ let hasEditRow = props.btnList?.find((item) => {
1604
+ let trigger_type = item.settingObj && item.settingObj[0]?.trigger_type;
1605
+ if (item.isShow == 1 && trigger_type == "EDIT_ROW")
1606
+ return true;
1607
+ return false;
1608
+ });
1609
+ if (!hasEditRow)
1610
+ return;
1611
+ };
1612
+ const handlePreView = (data, i, e) => {
1613
+ e.preventDefault();
1614
+ e.stopPropagation();
1615
+ if (!data)
1616
+ data = xb_big;
1617
+ emit("handlePreView", data, i);
1618
+ };
1619
+ const getPicture = (row, item, type) => {
1620
+ return [createVNode("div", {
1621
+ "class": ["img-wrap", type === "HEADPORTRAIT" ? "img-circle" : ""]
1622
+ }, [handleImgArr(row[item.columnName], type, imgs2imgArr).map((v, i) => createVNode("img", {
1623
+ "key": i,
1624
+ "src": handleImgSrc(v, props.sysImageSize, "LIST_FIELD_SMALL"),
1625
+ "style": modalDetailImage(props.sysImageSize, "LIST_FIELD_SMALL", "36px"),
1626
+ "onClick": (e) => handlePreView(row[item.columnName], i, e)
1627
+ }, null))])];
1628
+ };
1629
+ const getColor = (row, item) => {
1630
+ let color = row[item.columnName];
1631
+ if (color?.includes("-")) {
1632
+ let colorName = color.split("-")[1];
1633
+ color = vexutils.oldColorMap(colorName);
1634
+ }
1635
+ return [createVNode("div", {
1636
+ "class": "color-wrap",
1637
+ "style": "height: 100%; padding: 4px;"
1638
+ }, [createVNode("div", {
1639
+ "style": {
1640
+ background: color,
1641
+ height: "100%"
1642
+ }
1643
+ }, null)])];
1644
+ };
1645
+ const getDate = (row, item) => {
1646
+ let obj = row[item.columnName] || "";
1647
+ if (!vexutils.isEmpty(obj)) {
1648
+ if (vexutils.isObject(obj) && "tooltip" in obj) {
1649
+ return [createVNode(resolveComponent("n-tooltip"), null, {
1650
+ default: () => [{
1651
+ trigger: () => createVNode("span", null, [obj.value])
1652
+ }, createVNode("span", {
1653
+ "innerHTML": obj.tooltip
1654
+ }, null)]
1655
+ })];
1656
+ }
1657
+ }
1658
+ return [createVNode("span", {
1659
+ "innerHTML": obj
1660
+ }, null)];
1661
+ };
1662
+ const getPercentage = (row, item) => {
1663
+ let value = row[item.columnName];
1664
+ if (!value && value !== 0)
1665
+ return;
1666
+ let percentValue = value;
1667
+ let SPANTAG_REGEXP = /<\/?span.*?>/g;
1668
+ if (SPANTAG_REGEXP.test(value)) {
1669
+ let d = document.createElement("span");
1670
+ d.innerHTML = value;
1671
+ value = d.textContent;
1672
+ percentValue = value;
1673
+ }
1674
+ if (value && vexutils.isString(value) && value.includes("%")) {
1675
+ percentValue = Number(value.replace("%", ""));
1676
+ }
1677
+ let strokeColor = "#52c41a";
1678
+ if (percentValue < 15) {
1679
+ strokeColor = "#ff5500";
1680
+ } else if (percentValue < 50) {
1681
+ strokeColor = "#ff8b01";
1682
+ } else if (percentValue < 90) {
1683
+ strokeColor = "#1890ff";
1684
+ }
1685
+ if (percentValue > 100) {
1686
+ percentValue = 100;
1687
+ } else if (percentValue < 0) {
1688
+ percentValue = 0;
1689
+ }
1690
+ return [createVNode("div", {
1691
+ "class": "percent-wrap"
1692
+ }, [createVNode("span", {
1693
+ "class": "percent-value"
1694
+ }, [percentValue, createTextVNode("%")]), createVNode(NProgress, {
1695
+ "percentage": percentValue,
1696
+ "showIndicator": false,
1697
+ "color": strokeColor
1698
+ }, null)])];
1699
+ };
1700
+ const getvideoList = (row, item) => {
1701
+ let res = row[item.columnName];
1702
+ if (Array.isArray(res)) {
1703
+ res = JSON.stringify(res);
1704
+ }
1705
+ return null;
1706
+ };
1707
+ const getOrCode = (row, item, type) => {
1708
+ let src = qr;
1709
+ return [createVNode("span", {
1710
+ "class": "bigTable-qr-span",
1711
+ "onClick": (e) => qrCodeEvent(e, row, item)
1712
+ }, [createVNode("img", {
1713
+ "class": "bigTable-qr-img",
1714
+ "src": src
1715
+ }, null), createVNode("span", null, [createVNode(script$2, {
1716
+ "iconClass": "fangda"
1717
+ }, null)])])];
1718
+ };
1719
+ const qrCodeEvent = (e, row, item) => {
1720
+ e.preventDefault();
1721
+ e.stopPropagation();
1722
+ let data = handleQrCodeContent(row, item);
1723
+ emit("qrCodeEvent", data);
1724
+ };
1725
+ const generateInlineBtnList = (row, index) => {
1726
+ if (props.isNestTable)
1727
+ return;
1728
+ let inlineEditBtnList = [];
1729
+ inlineEditBtnList.push(...getInlineEditBtn(row, "tileBtnList"));
1730
+ inlineEditBtnList.push(...getInlineEditBtn(row, "foldBtnList"));
1731
+ if (!inlineEditBtnList?.length)
1732
+ return;
1733
+ return [createVNode("span", null, [createVNode(NButton, {
1734
+ "style": {
1735
+ display: row.__isInlineEditing ? "inline-block" : "none"
1736
+ },
1737
+ "onClick": (e) => {
1738
+ e.stopPropagation();
1739
+ emit("SET_SAVE_ROW_STATUS", true);
1740
+ },
1741
+ "class": "btn-custom-class row-btn",
1742
+ "size": "small",
1743
+ "text": true
1744
+ }, {
1745
+ default: () => "\u4FDD\u5B58"
1746
+ }), createVNode(NButton, {
1747
+ "style": {
1748
+ display: row.__isInlineEditing ? "inline-block" : "none"
1749
+ },
1750
+ "onClick": (e) => {
1751
+ e.stopPropagation();
1752
+ emit("SET_CANCEL_ROW_STATUS", true);
1753
+ },
1754
+ "class": "btn-custom-class row-btn",
1755
+ "size": "small",
1756
+ "text": true
1757
+ }, {
1758
+ default: () => "\u53D6\u6D88"
1759
+ })])];
1760
+ };
1761
+ const getTileBtnList = (row, index) => {
1762
+ return [row.tileBtnList?.length && row.tileBtnList.map((btn, j) => {
1763
+ return btn.isShow == "1" && btn.type != "LINK" && createVNode(NButton, {
1764
+ "key": btn.sid,
1765
+ "onClick": (e) => clickBtn(row, btn, index, e),
1766
+ "class": "btn-custom-class row-btn",
1767
+ "style": {
1768
+ ...getBtnStyle(btn),
1769
+ ...{
1770
+ display: !row.__isInlineEditing ? "inline-block" : "none"
1771
+ }
1772
+ },
1773
+ "disabled": row.__isDisableInlineEdit,
1774
+ "ghost": btn.showStyle == "white_bg",
1775
+ "size": "small"
1776
+ }, {
1777
+ default: () => [getBtnIcon(btn), btn.showStyle === "only_icon" ? "" : handleName(btn)]
1778
+ });
1779
+ }) || ""];
1780
+ };
1781
+ const clickBtn = (row, btn, index, e, j) => {
1782
+ e.preventDefault();
1783
+ e.stopPropagation();
1784
+ recordClickBtnInfo(row, index);
1785
+ emit("setNestTableClick", props.isNestTable);
1786
+ emit("setCurRowIndex", index);
1787
+ emit("clickBtn", row, btn, row[handlePrimaryKey.value], index);
1788
+ };
1789
+ const getBtnIcon = (btn, mr = "8px") => {
1790
+ let icon;
1791
+ if (btn.icon) {
1792
+ if (state.btnIcons[btn.icon]) {
1793
+ icon = createVNode(resolveComponent("a-icon"), {
1794
+ "type": state.btnIcons[btn.icon]
1795
+ }, null);
1796
+ } else {
1797
+ icon = createVNode(NTooltip, null, {
1798
+ trigger: () => createVNode(script$2, {
1799
+ "iconClass": btn.icon,
1800
+ "style": {
1801
+ marginRight: mr
1802
+ }
1803
+ }, null),
1804
+ default: () => handleName(btn)
1805
+ });
1806
+ }
1807
+ } else if (btn.iconSetting) {
1808
+ icon = createVNode(script$2, {
1809
+ "iconClass": JSON.parse(btn.iconSetting).icon,
1810
+ "style": {
1811
+ marginRight: mr
1812
+ }
1813
+ }, null);
1814
+ }
1815
+ return [icon];
1816
+ };
1817
+ const getFoldBtnList = (row, index) => {
1818
+ const getOptions = () => {
1819
+ return row.foldBtnList.map((b, j) => {
1820
+ return {
1821
+ label: `${handleName(b)}${getBtnIcon(b, "0")}`,
1822
+ key: b.sid,
1823
+ props: {
1824
+ onClick: (e) => {
1825
+ clickBtn(row, b, index, e.domEvent);
1826
+ }
1827
+ }
1828
+ };
1829
+ });
1830
+ };
1831
+ return [row.foldBtnList?.length && createVNode(NDropdown, {
1832
+ "style": {
1833
+ display: !row.__isInlineEditing ? "inline-block" : "none"
1834
+ },
1835
+ "disabled": props.isInlineOperating,
1836
+ "options": getOptions()
1837
+ }, {
1838
+ default: () => [createVNode(NButton, {
1839
+ "size": "small",
1840
+ "style": "margin-left: 8px"
1841
+ }, {
1842
+ default: () => "\u66F4\u591A ..."
1843
+ })]
1844
+ }) || ""];
1845
+ };
1846
+ const switchBtnOnChange = (e, r, i, index) => {
1847
+ emit("switchBtnOnChange", e, r, i, index);
1848
+ };
1849
+ const getBtnLinkSwitch = (row, item, disabled, index) => {
1850
+ let cur = state.isTree !== 0 ? row : props.oldtableData[index];
1851
+ let key = cur[item.columnName];
1852
+ if (typeof key === "string") {
1853
+ if (key && key.startsWith("###{")) {
1854
+ let temp = JSON.parse(key.replace("###", ""));
1855
+ key = temp.tooltip || temp.value;
1856
+ }
1857
+ }
1858
+ return [createVNode(NSwitch, {
1859
+ "value": key == item.btnLinkSwitchDefVal,
1860
+ "disabled": disabled,
1861
+ "onUpdateValue": (e) => switchBtnOnChange(e, row, item, index)
1862
+ }, null)];
1863
+ };
1864
+ const getField = (row, item, index, isLink2) => {
1865
+ const html = formatFieldText(row, item, props.columnConfig.fieldList, props.fieldListOriginal);
1866
+ const content = [isLink2 && html ? createVNode("a", {
1867
+ "onClick": (e) => linkDetail(row, item, index, e),
1868
+ "innerHTML": html
1869
+ }, null) : createVNode("span", {
1870
+ "class": "domPropsInnerHTML-span",
1871
+ "innerHTML": html
1872
+ }, null)];
1873
+ if (isCopy(item, row)) {
1874
+ return [createVNode(NPopover, {
1875
+ "placement": "right",
1876
+ "trigger": "hover",
1877
+ "arrowPointToCenter": true
1878
+ }, {
1879
+ default: () => [{
1880
+ trigger: () => content
1881
+ }, createVNode(NIcon, {
1882
+ "component": CopyOutline,
1883
+ "onClick": (e) => hanldeCopyContent(e, row[item.columnName])
1884
+ }, null)]
1885
+ })];
1886
+ } else {
1887
+ return [content];
1888
+ }
1889
+ };
1890
+ const linkDetail = (row, col, index, e) => {
1891
+ if (props.isInlineOperating)
1892
+ return false;
1893
+ let vxeTable = xGrid.value;
1894
+ e.preventDefault();
1895
+ let isCheckedByCheckboxRow = vxeTable.isCheckedByCheckboxRow(row);
1896
+ if (isCheckedByCheckboxRow) {
1897
+ e.stopPropagation();
1898
+ }
1899
+ vxeTable.setCurrentRow(row);
1900
+ emit("setNestTableClick", props.isNestTable);
1901
+ emit("setCurRowIndex", index);
1902
+ emit("linkDetail", row, col, row[handlePrimaryKey.value], null, false, index);
1903
+ };
1904
+ const hanldeCopyContent = (e, value) => {
1905
+ e.preventDefault();
1906
+ e.stopPropagation();
1907
+ emit("hanldeCopyContent", e, value);
1908
+ };
1909
+ const setAllCheckedRows = (rows) => {
1910
+ if (props.isNestTable)
1911
+ return;
1912
+ if (rows && rows.length) {
1913
+ const copy = vexutils.handleBigArrayCopy(rows);
1914
+ state.checkedRows = Object.freeze(copy);
1915
+ let table = xGrid.value;
1916
+ table.setAllCheckboxRow(true);
1917
+ }
1918
+ };
1919
+ const setTalbeScrollTo = () => {
1920
+ let table = xGrid.value;
1921
+ if (!table)
1922
+ return;
1923
+ table.scrollTo(table.getScroll().scrollLeft, 0);
1924
+ };
1925
+ const submitInlineForm = () => {
1926
+ let error = props.inlineError;
1927
+ if (error) {
1928
+ props.resetEditRowStatus();
1929
+ emit("triggerSpinning", false);
1930
+ return false;
1931
+ }
1932
+ let {
1933
+ formId
1934
+ } = props.listFormUnionSetting;
1935
+ let {
1936
+ id
1937
+ } = props.inlineOriginalTableRow;
1938
+ if (!formId) {
1939
+ console.log("\u7F3A\u5C11formId");
1940
+ emit("triggerSpinning", false);
1941
+ return;
1942
+ }
1943
+ if (state.isSaveForm)
1944
+ return false;
1945
+ state.isSaveForm = true;
1946
+ let params = Object.assign({}, props.inlineFormData, {
1947
+ formId,
1948
+ id,
1949
+ editMode: "row"
1950
+ });
1951
+ params = JSON.parse(JSON.stringify(params));
1952
+ let noChangePrimaryKey = params[handleRowId.value] === addInlineEditPrimaryKey;
1953
+ if (props.isInlineAdding && noChangePrimaryKey) {
1954
+ delete params[handleRowId.value];
1955
+ }
1956
+ props.submitForm(params).then(async ({
1957
+ data
1958
+ }) => {
1959
+ emit("triggerSpinning", false);
1960
+ if (data.result !== "SUCCESS") {
1961
+ state.isSaveForm = false;
1962
+ window.$message.error(data.resultMsg);
1963
+ props.resetEditRowStatus();
1964
+ return false;
1965
+ }
1966
+ await props.resetInlineEdit();
1967
+ resetOperationRowStatus();
1968
+ emit("pubTableReload");
1969
+ }).finally(() => {
1970
+ state.isSaveForm = false;
1971
+ emit("triggerSpinning", false);
1972
+ props.resetEditRowStatus();
1973
+ });
1974
+ };
1975
+ const handleClickAddBtnByInline = async () => {
1976
+ if (!checkListFormUnionSettingParamsList()) {
1977
+ handleClickCancelBtnByInline();
1978
+ return false;
1979
+ }
1980
+ await props.resetInlineEdit();
1981
+ emit("handleClickBtnByInline", {
1982
+ type: "ADD",
1983
+ listFormUnionSetting: props.listFormUnionSetting,
1984
+ inlineEditFormConfig: props.inlineEditFormConfig
1985
+ });
1986
+ addInlineEditPrimaryKey = Date.now();
1987
+ let formData = {
1988
+ [handleRowId.value]: addInlineEditPrimaryKey,
1989
+ __isInsertRow: true
1990
+ };
1991
+ let {
1992
+ paramsList
1993
+ } = props.listFormUnionSetting;
1994
+ paramsList.forEach((item) => {
1995
+ formData[item.tableField] = void 0;
1996
+ });
1997
+ let vxeTable = xGrid.value;
1998
+ await vxeTable.insert(formData);
1999
+ await vxeTable.loadData([formData]);
2000
+ setAllRowInlineStatus(true);
2001
+ setRowStatus(vxeTable.$el, 0, "66");
2002
+ };
2003
+ const handleClickSaveBtnByInline = () => {
2004
+ if (props.spinning)
2005
+ return false;
2006
+ emit("handleClickBtnByInline", {
2007
+ type: "SAVE"
2008
+ });
2009
+ let formDom = document.querySelectorAll(".js-inlineEditForm");
2010
+ let sliceLen = handleEditFormLength();
2011
+ formDom = [...formDom].slice(0, sliceLen);
2012
+ formDom.forEach((item) => {
2013
+ item.__vue__.handleSubmitForm();
2014
+ });
2015
+ };
2016
+ const removeInlineAddRow = () => {
2017
+ if (!props.isInlineAdding)
2018
+ return false;
2019
+ const vxeTable = xGrid.value;
2020
+ let {
2021
+ tableData
2022
+ } = vxeTable.getTableData();
2023
+ vxeTable.remove(tableData[0]);
2024
+ };
2025
+ watch(() => props.columnConfig, (config) => {
2026
+ nextTick(() => {
2027
+ if (!config || !Object.keys(config).length)
2028
+ return;
2029
+ loadColumn(config);
2030
+ });
2031
+ }, {
2032
+ immediate: true
2033
+ });
2034
+ watch(() => props.data, (value) => {
2035
+ nextTick(() => {
2036
+ loadData(value);
2037
+ });
2038
+ }, {
2039
+ immediate: true,
2040
+ deep: true
2041
+ });
2042
+ watch(() => currentCheckedKeys, (val) => {
2043
+ setVisibleCheckAllWrap(state, props, currentCheckedKeys.value);
2044
+ });
2045
+ watch(() => props.quickSearchConfig, (val) => {
2046
+ setFilterStatus(state, props);
2047
+ }, {
2048
+ deep: true
2049
+ });
2050
+ watch(() => props.tableDataCache, (val) => {
2051
+ setAllCheckedRows(val);
2052
+ }, {
2053
+ deep: true
2054
+ });
2055
+ watch(() => props.pageVO.pageSize, (val) => {
2056
+ if (props.isNestTable)
2057
+ return;
2058
+ setVisibleCheckAllWrap(state, props, currentCheckedKeys.value);
2059
+ resetTableInlineEditStatus();
2060
+ });
2061
+ watch(() => props.pageVO.pageIndex, (val) => {
2062
+ if (props.isNestTable)
2063
+ return;
2064
+ setTalbeScrollTo();
2065
+ resetTableInlineEditStatus();
2066
+ });
2067
+ watch(() => props.styleSetting.tableHeight, (val) => {
2068
+ if (props.isNestTable)
2069
+ return;
2070
+ if (Object.keys(props.columnConfig).length > 0) {
2071
+ loadColumn(props.columnConfig);
2072
+ loadData(props.data);
2073
+ setTalbeScrollTo();
2074
+ }
2075
+ });
2076
+ watch(() => props.sysImageSize, (val) => {
2077
+ const v = props.styleSetting?.tableHeight === "table-simple" ? "26" : "22";
2078
+ nextTick(() => {
2079
+ handleTableImageSize(val, "LIST_FIELD_SMALL", v + "px");
2080
+ });
2081
+ }, {
2082
+ deep: true,
2083
+ immediate: true
2084
+ });
2085
+ watch(() => props.inlineEditFormSubmitDone, (val) => {
2086
+ if (!val || props.isNestTable)
2087
+ return;
2088
+ if (state.isTree != 0 || !props.isMatchComponent)
2089
+ return false;
2090
+ if (!checkOperateCurrentTable())
2091
+ return false;
2092
+ submitInlineForm();
2093
+ });
2094
+ watch(() => props.isInlineEditing, (val) => {
2095
+ if (!val || props.isNestTable)
2096
+ return;
2097
+ if (state.isTree != 0 || !props.isMatchComponent)
2098
+ return false;
2099
+ if (!checkOperateCurrentTable())
2100
+ return false;
2101
+ submitInlineForm();
2102
+ });
2103
+ watch(() => props.isInlineAdding, (val) => {
2104
+ if (!val || props.isNestTable)
2105
+ return false;
2106
+ if (state.isTree != 0 || !props.isMatchComponent)
2107
+ return false;
2108
+ if (!checkOperateCurrentTable()) {
2109
+ resetOperationRowStatus();
2110
+ return false;
2111
+ }
2112
+ hideSelectCloumns();
2113
+ handleClickAddBtnByInline();
2114
+ });
2115
+ watch(() => props.isInlineSave, (val) => {
2116
+ if (!val || props.isNestTable)
2117
+ return false;
2118
+ if (state.isTree != 0 || !props.isMatchComponent)
2119
+ return false;
2120
+ if (!checkOperateCurrentTable())
2121
+ return false;
2122
+ handleClickSaveBtnByInline();
2123
+ });
2124
+ watch(() => props.isInlineCancel, (val) => {
2125
+ if (!val || props.isNestTable)
2126
+ return false;
2127
+ if (state.isTree != 0 || !props.isMatchComponent)
2128
+ return false;
2129
+ if (!checkOperateCurrentTable())
2130
+ return false;
2131
+ removeInlineAddRow();
2132
+ handleClickCancelBtnByInline();
2133
+ });
2134
+ watch(() => props.tableRefreshCache, (val, oldVal) => {
2135
+ if (props.isNestTable)
2136
+ return;
2137
+ const {
2138
+ orgId
2139
+ } = props?.userInfo?.map?.sysParams || {};
2140
+ if (val != oldVal && props.tableParams && val[props.tableParams.tableId] && orgId == val[props.tableParams.tableId]) {
2141
+ state.hasRefresh = true;
2142
+ }
2143
+ }, {
2144
+ immediate: true,
2145
+ deep: true
2146
+ });
2147
+ watch(() => props.tableParams.tableId, (val) => {
2148
+ nextTick(() => {
2149
+ if (val && props.tableRefreshCache[val]) {
2150
+ state.hasRefresh = true;
2151
+ }
2152
+ });
2153
+ });
2154
+ expose({
2155
+ formatData,
2156
+ xGrid
2157
+ });
2158
+ return (_ctx, _cache) => {
2159
+ return openBlock(), createElementBlock("div", {
2160
+ class: normalizeClass(["big-table custom-big-table", {
2161
+ mt: state.visibleCheckAllWrap || state.visibleTreeCheck || state.hasRefresh,
2162
+ "expand-padding": !props.isNestTable
2163
+ }]),
2164
+ style: normalizeStyle({
2165
+ height: state.tableHeight
2166
+ })
2167
+ }, [state.hasRefresh && !props.isNestTable ? (openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("p", {
2168
+ class: "check-wrap-title"
2169
+ }, [_hoisted_2, createElementVNode("span", {
2170
+ class: "check-wrap-btn",
2171
+ onClick: refreshTable
2172
+ }, "\u70B9\u51FB\u67E5\u770B")])])) : createCommentVNode("v-if", true), createCommentVNode(" \u5168\u9009 \u9009\u62E9\u6846 "), withDirectives(createElementVNode("div", _hoisted_3, [createElementVNode("p", _hoisted_4, [createElementVNode("span", null, "\u5DF2\u52FE\u9009\u6570\u636E\u5171" + toDisplayString(unref(allSelectedLength)) + "\u6761", 1), withDirectives(createElementVNode("span", null, " \uFF08\u5F53\u524D\u9875" + toDisplayString(state.currentPageSelectedLength) + "\u6761\uFF09 ", 513), [[vShow, state.visibleCheckAllWrapMore]])]), state.visibleCheckAllWrapMore && !props.asyncCount ? (openBlock(), createElementBlock(Fragment, {
2173
+ key: 0
2174
+ }, [!unref(visibleCancelCheckAllBtn) ? (openBlock(), createElementBlock("p", {
2175
+ key: 0,
2176
+ class: "check-wrap-btn",
2177
+ onClick: handleCheckAll
2178
+ }, [_ctx.pageVO.total > _ctx.maxCheckSize ? (openBlock(), createElementBlock("span", _hoisted_5, [createCommentVNode(" {{ `\u6700\u5927\u52FE\u9009\u201C${tableName}\u201D ${maxCheckSize}\u6761\u6570\u636E` }} "), createTextVNode(toDisplayString(`\u52FE\u9009\u5168\u90E8\u9875 ${_ctx.maxCheckSize}\u6761\u6570\u636E`), 1)])) : (openBlock(), createElementBlock("span", _hoisted_6, [createCommentVNode(' {{ $t("1.9.598", { name: tableName, total }) }} '), createTextVNode(toDisplayString(`\u52FE\u9009\u5168\u90E8\u9875 ${_ctx.pageVO.total}\u6761\u6570\u636E`), 1)]))])) : (openBlock(), createElementBlock("p", {
2179
+ key: 1,
2180
+ class: "check-wrap-btn",
2181
+ onClick: handleCancelAllCheck
2182
+ }, "\u53D6\u6D88\u5168\u90E8\u52FE\u9009"))], 64)) : createCommentVNode("v-if", true)], 512), [[vShow, state.visibleCheckAllWrap && !props.isInlineOperating && !props.isNestTable]]), createCommentVNode(" \u6811\u72B6\u8868\u683C\u5DF2\u9009 "), withDirectives(createElementVNode("div", _hoisted_7, [createElementVNode("p", _hoisted_8, [createElementVNode("span", null, "\u5DF2\u52FE\u9009\u6570\u636E\u5171" + toDisplayString(state.treeTableLength) + "\u6761", 1)])], 512), [[vShow, state.visibleTreeCheck && !props.isInlineOperating && !props.isNestTable]]), createVNode(unref(CGrid), mergeProps({
2183
+ ref_key: "xGrid",
2184
+ ref: xGrid,
2185
+ border: "",
2186
+ "show-overflow": "",
2187
+ "show-header-overflow": "",
2188
+ "highlight-hover-row": "",
2189
+ "highlight-current-row": "",
2190
+ "show-footer-overflow": "title",
2191
+ "keep-source": "",
2192
+ resizable: "",
2193
+ "auto-resize": ""
2194
+ }, props.height ? {
2195
+ height: "auto"
2196
+ } : {}, {
2197
+ "seq-config": unref(handleSeqConfig),
2198
+ "tree-config": unref(treeConfig),
2199
+ "row-id": unref(handleRowId),
2200
+ "row-class-name": getRowClassName,
2201
+ "show-footer": _ctx.showFooter && !props.isInlineOperating,
2202
+ "footer-method": footerMethod,
2203
+ "sort-config": {
2204
+ trigger: "cell",
2205
+ remote: true
2206
+ },
2207
+ "span-method": colspanMethod,
2208
+ "footer-span-method": footerRowspanMethod,
2209
+ "tooltip-config": {
2210
+ enterable: false
2211
+ },
2212
+ "checkbox-config": {
2213
+ checkField: "checked",
2214
+ labelField: "checked",
2215
+ checkMethod: unref(checkMethod),
2216
+ trigger: "cell",
2217
+ reserve: true,
2218
+ highlight: true
2219
+ },
2220
+ "radio-config": {
2221
+ checkField: "checked",
2222
+ trigger: "cell",
2223
+ reserve: true,
2224
+ highlight: true
2225
+ },
2226
+ "scroll-x": {
2227
+ enabled: false
2228
+ },
2229
+ "scroll-y": {
2230
+ gt: 50
2231
+ },
2232
+ "row-style": unref(getRowStyle),
2233
+ "edit-config": state.editConfig,
2234
+ "expand-config": {
2235
+ lazy: true,
2236
+ accordion: _ctx.columnConfig && _ctx.columnConfig.accordion,
2237
+ loadMethod: unref(loadExpandMethod),
2238
+ toggleMethod: unref(toggleExpandMethod),
2239
+ iconOpen: "iconfont icon-a-xitongtubiaozhediejian",
2240
+ iconClose: "iconfont icon-a-xitongtubiaotianjia"
2241
+ },
2242
+ "keyboard-config": _ctx.columnConfig.keyboardConfig || {},
2243
+ "edit-rules": _ctx.columnConfig.editRules || {},
2244
+ onCellDblclick: rowdblclick,
2245
+ onCellClick: handlerClickRow,
2246
+ onCheckboxChange: selectionChange,
2247
+ onCheckboxAll: selectionChangeAll,
2248
+ onRadioChange: radioOnChange,
2249
+ onSortChange: sortChange,
2250
+ onScroll: handlerScroll,
2251
+ onCellMouseenter: handleCellMouseenter
2252
+ }), {
2253
+ empty: withCtx(() => [state.isShowEmpty ? (openBlock(), createElementBlock("div", _hoisted_9, [createVNode(script$3, {
2254
+ "no-data-img": props.emptyItems.noDataImg,
2255
+ "no-data-tip": props.emptyItems.noDataTip,
2256
+ "show-img": !props.isNestTable
2257
+ }, null, 8, ["no-data-img", "no-data-tip", "show-img"])])) : createCommentVNode("v-if", true)]),
2258
+ tooltip_checkbox: withCtx(({
2259
+ row,
2260
+ checked
2261
+ }) => [row.forbiddenBatchSelect ? (openBlock(), createBlock(unref(NTooltip), {
2262
+ key: 0,
2263
+ trigger: "hover",
2264
+ placement: "right"
2265
+ }, {
2266
+ trigger: withCtx(() => [_hoisted_10]),
2267
+ default: withCtx(() => [createTextVNode(" " + toDisplayString(row.forbiddenBatchSelectReason), 1)]),
2268
+ _: 2
2269
+ }, 1024)) : (openBlock(), createBlock(unref(NCheckbox), {
2270
+ key: 1,
2271
+ class: "tooltip-checkbox-item",
2272
+ checked
2273
+ }, null, 8, ["checked"]))]),
2274
+ tooltip_footer: withCtx(({
2275
+ column
2276
+ }) => [createCommentVNode(" \u5206\u7EC4\u7EDF\u8BA1 "), _ctx.groupCountFields && _ctx.groupCountFields.length ? (openBlock(), createElementBlock("span", {
2277
+ key: 0,
2278
+ innerHTML: state.groupText
2279
+ }, null, 8, _hoisted_11)) : (openBlock(), createElementBlock(Fragment, {
2280
+ key: 1
2281
+ }, [createCommentVNode(" \u4E00\u822C\u7EDF\u8BA1 "), createVNode(unref(NTooltip), {
2282
+ trigger: "hover"
2283
+ }, {
2284
+ trigger: withCtx(() => [createTextVNode(toDisplayString(getFooterTitle(column)), 1)]),
2285
+ default: withCtx(() => [createElementVNode("div", {
2286
+ innerHTML: getFooterTooltipTitle(column)
2287
+ }, null, 8, _hoisted_12)]),
2288
+ _: 2
2289
+ }, 1024)], 2112))]),
2290
+ nest_table_content: withCtx(({
2291
+ row,
2292
+ rowIndex,
2293
+ $rowIndex,
2294
+ column
2295
+ }) => [renderSlot(_ctx.$slots, "content", {
2296
+ data: {
2297
+ row,
2298
+ rowIndex,
2299
+ $rowIndex,
2300
+ column
2301
+ }
2302
+ })]),
2303
+ _: 3
2304
+ }, 16, ["seq-config", "tree-config", "row-id", "show-footer", "checkbox-config", "row-style", "edit-config", "expand-config", "keyboard-config", "edit-rules"]), createCommentVNode(" `${refreshRow}\u6761\u66F4\u65B0` "), withDirectives(createElementVNode("div", {
2305
+ class: "refresh",
2306
+ onClick: hanldeClickRefresh
2307
+ }, [createVNode(unref(NIcon), {
2308
+ size: "14",
2309
+ component: unref(SyncOutline)
2310
+ }, null, 8, ["component"]), createElementVNode("p", _hoisted_13, toDisplayString(_ctx.refreshRow) + "\u6761\u66F4\u65B0", 1)], 512), [[vShow, props.refreshRow > 0 && !props.isNestTable]])], 6);
2311
+ };
2312
+ }
2313
+ });
2314
+
2315
+ export { script as default };