cnhis-design-vue 3.1.1 → 3.1.4-beta.1

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 +46 -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
@@ -1,96 +0,0 @@
1
- <script lang="tsx">
2
- import { defineComponent, ref, reactive } from 'vue'
3
- import { NSelect } from 'naive-ui'
4
- import vexutils from '@/utils/vexutils.js'
5
-
6
- export default defineComponent({
7
- name: 'EditSelect',
8
- inheritAttrs: false,
9
- components: {
10
- NSelect
11
- },
12
- props: {
13
- col: {
14
- type: Object,
15
- default: () => ({})
16
- },
17
- row: {
18
- type: Object,
19
- default: () => ({})
20
- },
21
- index: {
22
- type: [Number, Object],
23
- default: 0
24
- }
25
- },
26
- emits: ['setOptions', 'formChange'],
27
- setup (props, { attrs, slots, emit }) {
28
-
29
- const state = reactive({
30
- options: [] as any,
31
- loading: false,
32
- keyword: '',
33
- config: {} as any
34
- })
35
-
36
- const setOptions = async () => {
37
- if (props.col.options) {
38
- state.options = JSON.parse(JSON.stringify(props.col.options))
39
- } else {
40
- // 此处需要缓存第一次请求到的options,不需要每次都请求,
41
- // 此处的row参数应当是selectTable的row
42
- const optionsName = `${props.col.columnName}_options`
43
- const obj = {
44
- keyword: state.keyword,
45
- row: props.row,
46
- column: props.col,
47
- index: props.index
48
- }
49
- // state.options = props.row[optionsName] || await props.col.queryOptions(obj)
50
- state.options = await props.col.queryOptions(obj)
51
- state.loading = false
52
- // if (!props.row[optionsName]) {
53
- emit('setOptions', state.options)
54
- // }
55
- }
56
- }
57
-
58
- let selectSearch = (value: string) => {
59
- state.keyword = value
60
- state.loading = true
61
- setOptions()
62
- }
63
- selectSearch = vexutils.debounce(selectSearch, 800)
64
- const onUpdateValue = (value: any[] | string | number | null) => {
65
- emit('formChange', { value, row: props.row, column: props.col, index: props.index })
66
- }
67
-
68
- const init = () => {
69
- if (props.col.options) {
70
- setOptions()
71
- } else {
72
- state.config.remote = true
73
- state.config.onSearch = selectSearch
74
- // 初始化搜索
75
- selectSearch('')
76
- }
77
- }
78
- init()
79
- return () => [
80
- <NSelect
81
- {...attrs}
82
- {...state.config}
83
- options={state.options}
84
- consistentMenuWidth={false}
85
- clearable
86
- filterable
87
- to={false}
88
- placeholder="请选择"
89
- loading={state.loading}
90
- onUpdateValue={onUpdateValue}
91
- />
92
- ]
93
- }
94
- })
95
- </script>
96
- <style lang="less" scoped></style>
@@ -1,574 +0,0 @@
1
- import { computed, ref, reactive, watch, onMounted } from 'vue'
2
- // import axios from 'axios'
3
-
4
- export const useBatchEditing = (props: any, state: any, emit: any, xGrid: any) => {
5
-
6
- let _batchFieldList: any[] = []
7
- let _fieldLength: number = 0
8
-
9
- const allSelectedLength = computed(() => {
10
- return state.checkedRows?.length;
11
- })
12
-
13
- /**
14
- * 编辑
15
- */
16
- watch(
17
- () => props.isBatchEditing,
18
- val => {
19
- if (!val || props.isNestTable) return false;
20
- if (state.isTree != 0 || !props.isMatchComponent) return false;
21
- if (!checkOperateCurrentTable()) {
22
- resetBatchOperationRowStatus();
23
- return false;
24
- }
25
- hideSelectCloumns();
26
- handleClickBatchEditBtnByInline();
27
- }
28
- )
29
- /**
30
- * 保存
31
- */
32
- watch(
33
- () => props.isBatchSave,
34
- val => {
35
- if (!val || props.isNestTable) return false;
36
- if (state.isTree != 0 || !props.isMatchComponent) return false;
37
- if (!checkOperateCurrentTable()) return false;
38
- handleClickBatchSaveBtnByInline();
39
- }
40
- )
41
- /**
42
- * 取消
43
- */
44
- watch(
45
- () => props.isBatchCancel,
46
- val => {
47
- if (!val || props.isNestTable) return false;
48
- if (state.isTree != 0 || !props.isMatchComponent) return false;
49
- if (!checkOperateCurrentTable()) return false;
50
- handleClickBatchCancelBtnByInline();
51
- }
52
- )
53
-
54
- /**
55
- * 取消
56
- */
57
- watch(
58
- () => props.isBatchCancel,
59
- val => {
60
- if (!val || props.isNestTable) return false;
61
- if (state.isTree != 0 || !props.isMatchComponent) return false;
62
- if (!checkOperateCurrentTable()) return false;
63
- handleClickBatchCancelBtnByInline();
64
- }
65
- )
66
-
67
- /**
68
- * 校验提交
69
- */
70
- // watch(
71
- // () => props.batchEditDoneNumber,
72
- // obj => {
73
- // if (!obj || !Object.keys(obj).length || props.isNestTable) return;
74
- // if (state.isTree != 0 || !props.isMatchComponent) return false;
75
- // if (!checkOperateCurrentTable()) return false;
76
- // submitBatchInlineForm(obj);
77
- // }
78
- // )
79
-
80
- const checkOperateCurrentTable = () => {
81
- if (props.isNestTable) return false;
82
- let id = props.inlineEditCurrentOperateBtnId;
83
- let find = props.btnList?.find((item: any) => {
84
- return item?.settingObj?.[0]?.obj_id === id;
85
- });
86
- return !!find;
87
- };
88
-
89
- const setRowStatus = (vxeTable: any, rowIndex: number, value: any) => {
90
- if (!vxeTable) return false;
91
-
92
- let tableWrap = [
93
- vxeTable.querySelector('.vxe-table--main-wrapper'),
94
- vxeTable.querySelector('.vxe-table--fixed-left-wrapper'),
95
- vxeTable.querySelector('.vxe-table--fixed-right-wrapper'),
96
- vxeTable.querySelector('.vxe-table--body-wrapper')
97
- ].filter(item => item);
98
-
99
- let rowWrap: any[] = [];
100
- tableWrap.forEach(table => {
101
- let row = [...table.querySelectorAll('.vxe-body--row')];
102
- rowWrap.push(row[rowIndex]);
103
- });
104
-
105
- rowWrap = rowWrap.filter(item => item);
106
-
107
- let height = value ? `${value}px` : value;
108
- let lineHeight = value ? `${value - 10}px` : value;
109
-
110
- rowWrap.forEach(wrap => {
111
- let rowItemWrap = [...wrap.querySelectorAll('.vxe-cell')];
112
- rowItemWrap.push(...[...wrap.querySelectorAll('.vxe-body--column')]);
113
- rowItemWrap.forEach(dom => {
114
- dom.style.setProperty('height', height, 'important');
115
- dom.style.lineHeight = lineHeight;
116
- if (height) {
117
- dom.style.backgroundColor = '#EFF5FF';
118
- setTimeout(() => {
119
- dom.title = '';
120
- }, 1000);
121
- } else {
122
- dom.style.backgroundColor = null;
123
- }
124
- });
125
- });
126
- }
127
-
128
- /**
129
- * 重置样式
130
- * @param {*} isCancel 保存之后
131
- * @returns
132
- */
133
- const resetBatchOperationRowStatus = () => {
134
- if (state.isTree != 0) return false;
135
-
136
- const vxeTable = xGrid.value;
137
- let { tableData } = vxeTable.getTableData();
138
- vxeTable.clearActived();
139
- vxeTable.resetColumn();
140
- tableData.forEach((row: any, index: number) => {
141
- // row && vxeTable.revertData(row);
142
- setRowStatus(vxeTable.$el, index, null);
143
- row['__isInlineEditing'] = false;
144
- row['__isDisableInlineEdit'] = false;
145
- });
146
- }
147
-
148
- const hideSelectCloumns = () => {
149
- const vxeTable = xGrid.value
150
- let findSelectCloumns = vxeTable.getColumns()?.find((item: any) => item.type === state.selectType);
151
- findSelectCloumns && vxeTable.hideColumn(findSelectCloumns);
152
- }
153
-
154
- const checkListFormUnionSettingParamsList = () => {
155
- if (!props.listFormUnionSetting?.paramsList?.length) {
156
- (window as any).$message.warning('可编辑行需要设置关联表单字段,设置后请重试!');
157
- emit('resetInlineEditAll', false);
158
- emit('triggerSpinning', false);
159
- return false;
160
- }
161
- let find = props.fieldListOriginal?.find((item: any) => item.isEdit == 1);
162
- if (!find) {
163
- (window as any).$message.warning('没有设置可编辑字段,请联系管理员');
164
- emit('resetInlineEditAll', false);
165
- emit('triggerSpinning', false);
166
- return false;
167
- }
168
- return true;
169
- }
170
-
171
- const resetStoreInlineOperationStatus = () => {
172
- if (state.isTree != 0) return false;
173
- state.isSaveForm = false;
174
- }
175
-
176
- const getInlineOpreateRow = () => {
177
- const vxeTable = xGrid.value
178
- if (props.isInlineAdding) {
179
- let { tableData } = vxeTable.getTableData();
180
- return {
181
- row: tableData[0],
182
- rowIndex: 0
183
- };
184
- }
185
-
186
- if (state.showButtonTop == 0) {
187
- let { row, index: rowIndex } = state.currentClickBtnInfo || {};
188
- return {
189
- row,
190
- rowIndex
191
- };
192
- }
193
-
194
- let row = props.clickRowData;
195
- for (var i = 0; i < props.oldtableData.length; i++) {
196
- let item = props.oldtableData[i];
197
- if (item[props.primaryKey] === row[props.primaryKey]) break;
198
- }
199
-
200
- return {
201
- row,
202
- rowIndex: i
203
- };
204
- }
205
-
206
- const setAllRowInlineStatus = (disabled: boolean = false) => {
207
- const vxeTable = xGrid.value
208
- let { tableData } = vxeTable.getTableData();
209
- tableData.forEach((row : any) => {
210
- row['__isInlineEditing'] = false
211
- row['__isDisableInlineEdit'] = disabled
212
- });
213
- }
214
-
215
- const recordClickBtnInfo = (row?: any, index?: number) => {
216
- state.currentClickBtnInfo = {
217
- row,
218
- index
219
- };
220
- }
221
-
222
- const resetOperationRowStatus = () => {
223
- if (state.isTree != 0) return false;
224
- const vxeTable = xGrid.value
225
- let { row, rowIndex } = getInlineOpreateRow();
226
- if (!row) return false;
227
- if (row?.__isInsertRow) {
228
- vxeTable.remove(row);
229
- }
230
- vxeTable.clearActived().then(() => {
231
- row && vxeTable.revertData(row);
232
- setRowStatus(vxeTable.$el, rowIndex, null);
233
- vxeTable.resetColumn();
234
- setAllRowInlineStatus();
235
- recordClickBtnInfo();
236
- });
237
- }
238
-
239
- const handleClickCancelBtnByInline = async () => {
240
- const vxeTable = xGrid.value
241
- setRowStatus(vxeTable.$el, 0, null);
242
- resetStoreInlineOperationStatus();
243
- await vxeTable.reloadData(state.originFormatList);
244
- resetOperationRowStatus();
245
- emit('handleClickBtnByInline', {
246
- type: 'CANCEL'
247
- });
248
- }
249
-
250
- /**
251
- * 设置row 为编辑样式
252
- */
253
- const getBatchOpreateRows = () => {
254
- const vxeTable = xGrid.value
255
- let arr = state.checkedRows;
256
- let { tableData } = vxeTable.getTableData();
257
- // 全部行编辑
258
- if (props.isEditAllRow) {
259
- arr = tableData;
260
- }
261
- // 重置状态时使用
262
-
263
- arr.forEach((item: any, i: number) => {
264
- let rowIndex = i;
265
- if (!props.isEditAllRow) {
266
- let matchIndex = tableData.findIndex((v: any) => v[props.primaryKey] == item[props.primaryKey]);
267
- if (matchIndex > -1) {
268
- rowIndex = matchIndex;
269
- }
270
- }
271
- setRowStatus(vxeTable.$el, rowIndex, '66');
272
- item['__isInlineEditing'] = true
273
- });
274
- }
275
-
276
- /**
277
- * 批量编辑
278
- */
279
- const handleClickBatchEditBtnByInline = async() => {
280
- if (!checkListFormUnionSettingParamsList()) {
281
- handleClickCancelBtnByInline();
282
- return false;
283
- }
284
-
285
- let arr = state.checkedRows;
286
- const vxeTable = xGrid.value
287
- let { tableData } = vxeTable.getTableData();
288
- // 全部行编辑
289
- if (props.isEditAllRow) {
290
- arr = tableData;
291
- }
292
- await vxeTable.loadData(arr);
293
-
294
- await props.resetInlineBatchEdit();
295
-
296
- setAllRowInlineStatus(true);
297
-
298
- getBatchOpreateRows();
299
- }
300
-
301
- /**
302
- * 处理需要submit的form个数
303
- */
304
- const handleEditFormLength = () => {
305
- let fieldLength = _batchFieldList.length;
306
- if (!fieldLength) return;
307
- // 新增
308
- if (props.isInlineAdding) {
309
- return fieldLength;
310
- }
311
- let rowLen: number | any = allSelectedLength.value;
312
- const vxeTable = xGrid.value
313
- let { tableData } = vxeTable.getTableData();
314
- // 全部行
315
- if (props.isEditAllRow) {
316
- rowLen = tableData.length;
317
- }
318
- if (!rowLen) return;
319
- return fieldLength * rowLen;
320
- }
321
-
322
- /**
323
- * 批量保存
324
- */
325
- const handleClickBatchSaveBtnByInline = () => {
326
- if (props.spinning) return false;
327
- emit('resetBatchEditDoneStatus');
328
-
329
- let formDom: any = document.querySelectorAll('.js-inlineEditForm');
330
- let sliceLen = handleEditFormLength();
331
- // HACK: vxeTable行内编辑时复制的DOM节点,无需触发提交
332
- formDom = [...formDom].slice(0, sliceLen);
333
- formDom.forEach((item: any) => {
334
- item.__vue__.handleSubmitForm();
335
- });
336
- }
337
-
338
- /**
339
- * 批量取消
340
- */
341
- const handleClickBatchCancelBtnByInline = async () => {
342
- state.isSaveForm = false;
343
- emit('resetInlineEditAll', false);
344
- const vxeTable = xGrid.value
345
- await vxeTable.reloadData(state.originFormatList);
346
- resetBatchOperationRowStatus();
347
- }
348
-
349
- /**
350
- * 判断每个表单是否校验过
351
- * @param {*} obj
352
- * @returns
353
- */
354
- const handleIsBatchDoneAll = (obj: any) => {
355
- let fieldLength = _fieldLength;
356
- if (!fieldLength) return false;
357
- for (let key in obj) {
358
- if (obj[key] < fieldLength) return false;
359
- }
360
- return true;
361
- }
362
-
363
- /**
364
- * 处理form
365
- * @param {*} batchFormData
366
- * @returns
367
- */
368
- const handleSubmitParams = (batchFormData: any) => {
369
- let arr = [];
370
- for (let key in batchFormData) {
371
- // v[this.primaryKey] 可能为数字
372
- // key 为字符串 用全等匹配不到 改为 ==
373
- let matchItem = props.oldtableData.find((v: any) => v[props.primaryKey] == key);
374
- let obj = batchFormData[key];
375
- if (matchItem) {
376
- obj = Object.assign({}, obj, {
377
- [props.primaryKey]: matchItem[props.primaryKey]
378
- });
379
- }
380
- arr.push(obj);
381
- }
382
- return arr;
383
- }
384
-
385
- // const savaForm = (formId: any, params: any) => {
386
- // let url = `/form/editRows/update/${formId}`;
387
- // return axios({
388
- // method: 'post',
389
- // url,
390
- // headers: { 'Content-Type': 'application/json; charset=utf-8' },
391
- // data: params
392
- // });
393
- // }
394
-
395
- /**
396
- * 批量提交form
397
- * @param {*} obj
398
- * @returns
399
- */
400
- // const submitBatchInlineForm = (obj: any) => {
401
- // if (props.batchError) {
402
- // props.resetBatchEditRowStatus();
403
- // emit('triggerSpinning', false);
404
- // return;
405
- // }
406
- // let isBatchDoneAll = handleIsBatchDoneAll(obj);
407
- // if (!isBatchDoneAll) {
408
- // props.resetBatchEditRowStatus();
409
- // emit('triggerSpinning', false);
410
- // return;
411
- // }
412
- // let { formId } = props.listFormUnionSetting;
413
- // let params = handleSubmitParams(props.batchFormData);
414
- // if (!formId || !params) {
415
- // props.resetBatchEditRowStatus();
416
- // emit('triggerSpinning', false);
417
- // return;
418
- // }
419
- // if (state.isSaveForm) return false;
420
- // state.isSaveForm = true;
421
- // savaForm(formId, params)
422
- // .then(async ({ data }) => {
423
- // emit('triggerSpinning', false);
424
- // if (data.result !== 'SUCCESS') {
425
- // state.isSaveForm = false;
426
- // (window as any).$message.error(data.resultMsg);
427
- // props.resetBatchEditRowStatus();
428
- // return false;
429
- // }
430
-
431
- // await props.resetInlineBatchEdit();
432
- // handleClickBatchCancelBtnByInline();
433
- // emit('pubTableReload');
434
- // })
435
- // .finally(() => {
436
- // state.isSaveForm = false;
437
- // emit('triggerSpinning', false);
438
- // props.resetBatchEditRowStatus();
439
- // });
440
- // }
441
-
442
- const formatFieldItem = (fieldItem: any) => {
443
- return Object.assign({}, fieldItem, {
444
- elem_width: '12',
445
- is_show: '1'
446
- });
447
- }
448
-
449
- const handleColumnMap = (batchFieldList: any, paramsList: any) => {
450
- let { fieldList = [] } = props.columnConfig;
451
- let editColumnMap: any = {};
452
- fieldList.forEach((item: any) => {
453
- if (item.isShow != 1 || item.isEdit != 1) return;
454
- let matchItem = paramsList.find((v: any) => v.tableField === item.columnName);
455
- if (!matchItem) return;
456
- let fieldItem = batchFieldList?.find((field: any) => {
457
- return field.val_key === matchItem.tableField;
458
- });
459
- if (!fieldItem) return;
460
- fieldItem = formatFieldItem(fieldItem);
461
- let obj = {
462
- columnName: item.columnName,
463
- matchItem,
464
- fieldItem
465
- };
466
- editColumnMap[item.columnName] = obj;
467
- });
468
- return editColumnMap;
469
- }
470
-
471
- const handleFieldLength = () => {
472
- let { fieldList = [] } = props.columnConfig;
473
- let fieldLength = 0;
474
- fieldList.forEach((item: any) => {
475
- // table中有column隐藏
476
- if (item.isShow == 1 && item.isEdit == 1) {
477
- let matchItem = _batchFieldList.find(v => v.val_key === item.columnName);
478
- if (matchItem) {
479
- fieldLength++;
480
- }
481
- }
482
- });
483
- return fieldLength;
484
- }
485
-
486
- // const handleRequestedUniqueKey = (id: any) => {
487
- // return axios
488
- // .get('tableList/getPrimaryKey', { params: { tableId: id } })
489
- // .then(({ data }) => {
490
- // let result;
491
- // if (data.result == 'SUCCESS') {
492
- // const { map = {} } = data;
493
- // result = map.primaryKey || undefined;
494
- // } else {
495
- // result = undefined;
496
- // }
497
- // state.cacheUniqueKey[id] = { value: result, status: true };
498
- // return result;
499
- // })
500
- // .catch(err => {
501
- // console.log(err);
502
- // state.cacheUniqueKey[id] = { value: undefined, status: true };
503
- // return undefined;
504
- // });
505
- // }
506
-
507
- /**
508
- * 获取编辑的field
509
- */
510
- // const handleFieldTheUniqueKey = () => {
511
- // return new Promise<void>((resolve, reject) => {
512
- // let { paramsList = [] } = props.listFormUnionSetting || {};
513
- // let { fieldList = [] } = props.inlineEditFormConfig;
514
- // fieldList = JSON.parse(JSON.stringify(fieldList));
515
- // _batchFieldList = [];
516
- // let batchFieldList = fieldList
517
- // .map((item: any) => {
518
- // let matchItem = paramsList.find((v: any) => item.val_key === v.tableField);
519
- // if (matchItem) {
520
- // let NOWORDBOOK = item.wordbook && (item?.wordbook?.type || '') != 'WORDBOOK';
521
- // let id = item.wordbook?.id;
522
- // if (NOWORDBOOK && id && !state.theUniqueKeyListObj[id]) {
523
- // state.theUniqueKeyListObj[id] = id;
524
- // }
525
- // return item;
526
- // }
527
- // return null;
528
- // })
529
- // .filter(Boolean);
530
- // if (!batchFieldList || !batchFieldList.length) return resolve();
531
- // // 缓存行编辑需要的column配置
532
- // state.editColumnMap = handleColumnMap(batchFieldList, paramsList);
533
- // _batchFieldList = batchFieldList;
534
- // _fieldLength = handleFieldLength();
535
- // let keyList = Object.keys(state.theUniqueKeyListObj || {});
536
- // if (!keyList.length) return resolve();
537
- // keyList.forEach(async item => {
538
- // await handleRequestedUniqueKey(item);
539
- // });
540
- // resolve();
541
- // });
542
- // }
543
-
544
- /**
545
- * 避免每次点击都查询
546
- * 初始化查一次 行编辑 表单search用
547
- */
548
- // 避免每次点击都查询
549
- // const handleFormTheUniqueKey = async () => {
550
- // emit('initInlineEditFormConfig', { listFormUnionSetting: props.listFormUnionSetting, inlineEditFormConfig: props.inlineEditFormConfig });
551
- // let hasEditRow = props.btnList?.find((item: any) => {
552
- // let trigger_type = item.settingObj && item.settingObj[0]?.trigger_type;
553
- // if (item.isShow == 1 && trigger_type == 'EDIT_ROW') return true;
554
- // return false;
555
- // });
556
- // if (!hasEditRow) return;
557
- // await handleFieldTheUniqueKey();
558
- // }
559
-
560
- return {
561
- allSelectedLength,
562
- checkOperateCurrentTable,
563
- setRowStatus,
564
- resetBatchOperationRowStatus,
565
- checkListFormUnionSettingParamsList,
566
- handleClickCancelBtnByInline,
567
- setAllRowInlineStatus,
568
- hideSelectCloumns,
569
- handleEditFormLength,
570
- getInlineOpreateRow,
571
- resetOperationRowStatus,
572
- recordClickBtnInfo
573
- };
574
- }