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
@@ -1,488 +0,0 @@
1
- <template>
2
- <span @click="handleClickWrap">
3
- <NDropdown
4
- class="rowFoldHideBtnList-dropdown"
5
- placement="bottom-start"
6
- :show="state.visible"
7
- @clickoutside="handleClickOutside"
8
- :options="options"
9
- @select="handleSelect"
10
- :render-label="renderLabel"
11
- >
12
- <slot
13
- name="button"
14
- :handleClickPrintBtn="handleClickBtn"
15
- :printSpinning="state.spinning"
16
- :printbtnText="btnText"
17
- :printVisible="state.visible"
18
- >
19
- <NButton class="dropdown-button" style="margin: 0 8px 8px 0" @click.stop="handleClickBtn">
20
- <NIcon v-if="state.spinning" :component="Reload" style="line-height: 10px" />
21
- {{ btnText }}
22
- <NIcon :component="ChevronDown" />
23
- </NButton>
24
- </slot>
25
- </NDropdown>
26
-
27
- <IdentityVerification
28
- v-model="state.identityVerification.visible"
29
- v-bind="$attrs"
30
- @success="verifiySuccess"
31
- ></IdentityVerification>
32
- </span>
33
- </template>
34
-
35
- <script lang="tsx">
36
- import create from '@/core/create.js';
37
- export default create({
38
- name: "ButtonPrint"
39
- })
40
- </script>
41
-
42
- <script setup lang="tsx">
43
- import { ref, reactive, computed, watch, onMounted, nextTick } from 'vue'
44
- import { NDropdown, NButton, NIcon } from 'naive-ui'
45
- import { ChevronDown, Reload } from "@vicons/ionicons5";
46
- import { useMessage } from 'naive-ui'
47
- import type { DropdownOption } from 'naive-ui'
48
- import Print from './utils/print.es.min.js';
49
- import IdentityVerification from './components/IdentityVerification.vue';
50
- import moment from 'moment';
51
- // const Print:any = import.meta.globEager('./utils/print.es.min.js')['./utils/print.es.min.js'].default;
52
-
53
- (window as any).$message = useMessage()
54
- let printInstance: any = null;
55
-
56
- // 在.vue文件中使用导入的interface会报错,提示要使用字面量类型,当前在github上vue的issue已经有这个问题了,目前还没解决
57
- interface Props {
58
- btnText?: string
59
- printText?: string
60
- previewText?: string
61
- formatEditText?: string
62
- identityVerificationTitle?: string
63
- params?: any[],
64
- prevFn?: Function
65
- verifyUser?: Function
66
- queryPrintFormatByNumber: Function
67
- queryTemplateParams?: Function
68
- strategy?: string
69
- printParams?: any[]
70
- }
71
- const props = withDefaults(defineProps<Props>(), {
72
- params: () => ([]),
73
- btnText: '打印',
74
- printText: '直接打印',
75
- previewText: '打印预览',
76
- formatEditText: '格式编辑',
77
- identityVerificationTitle: '打印服务身份校验',
78
- prevFn: () => Promise.resolve(),
79
- verifyUser: () => Promise.resolve(),
80
- queryPrintFormatByNumber: () => Promise.resolve({}),
81
- queryTemplateParams: () => Promise.resolve({}),
82
- strategy: 'MULTI',
83
- });
84
- const emit = defineEmits(['success', 'error']);
85
-
86
- const state = reactive({
87
- spinning: false,
88
- visible: false,
89
- formatList: [],
90
- templateParams: {},
91
- printParams: [],
92
- currentFormatId: '',
93
- identityVerification: {
94
- visible: false
95
- },
96
- isInited: false,
97
- watchPrintParamsReformatFn: null,
98
- spinTimer: null
99
- });
100
- const options: Array<DropdownOption> = reactive([
101
- {
102
- label: props.printText,
103
- key: 'printText'
104
- },
105
- {
106
- label: props.previewText,
107
- key: 'previewText'
108
- },
109
- {
110
- label: props.formatEditText,
111
- key: 'formatEditText'
112
- }
113
- ]);
114
-
115
- const currentFormatItem = computed(() => {
116
- if (!state.currentFormatId) return {};
117
- let id = state.currentFormatId;
118
- return state.formatList.find((item: any) => item.id === id);
119
- })
120
- const formatTitle = computed(() => (currentFormatItem.value as any).name || '格式选择')
121
-
122
- const renderLabel = (option: DropdownOption) => {
123
- return <span class={{'active': option.key === state.currentFormatId}}>{option.label}</span>
124
- }
125
- const getTemplateIdByFormatId = (id: string | number) => {
126
- let find: any = state.formatList.find((item: any) => item.id === id);
127
- return find.templateId;
128
- }
129
- const callLocalServicesSuccessCb = (res: any, type: any) => {
130
- let info = {
131
- type,
132
- formatId: state.currentFormatId,
133
- templateId: getTemplateIdByFormatId(state.currentFormatId)
134
- };
135
- emit('success', res, info);
136
- }
137
- const callLocalServicesErrorCb = (res: any) => {
138
- emit('error', res);
139
- }
140
- const prevFnError = () => {
141
- let error = {
142
- message: '前置条件执行错误'
143
- };
144
- emit('error', error);
145
- }
146
- const getPrintParams = (index: number = 0) => {
147
- const params = props.printParams?.length ? props.printParams[index] : state.printParams[index];
148
- return JSON.stringify(params);
149
- }
150
- const getOnceParams = () => {
151
- // 聚合一条
152
- let params = {};
153
- let obj: any = {};
154
- if ((state.templateParams as any).customizeDataset?.length) {
155
- // 有模板数据
156
- const key = Object.keys((state.printParams[0] as any).datasetData || {})?.[0] || '';
157
- const datasetDataKeyVal = JSON.stringify(state.printParams.map((v: any) => JSON.parse(v.datasetData[key])));
158
- obj = {
159
- datasetData: {}
160
- };
161
- obj.datasetData[key] = datasetDataKeyVal;
162
- } else {
163
- // 无模板数据
164
- Object.keys(state.printParams[0]).forEach(v => {
165
- obj[v] = [];
166
- state.printParams.forEach(k => {
167
- obj[v].push(k[v]);
168
- });
169
- obj[v] = obj[v].join(',');
170
- });
171
- }
172
- params = Object.assign({}, JSON.parse(getPrintParams(0)), obj);
173
- return JSON.stringify(params);
174
- }
175
- const handleClickPrint = () => {
176
- let len = state.printParams.length;
177
- const callLocalServicesSuccessCbTmp = async (data: any) => {
178
- try {
179
- if (--len <= 0) {
180
- callLocalServicesSuccessCb(data, 'print');
181
- }
182
- } catch (error) {
183
- console.log('error', error);
184
- }
185
- };
186
-
187
- props.prevFn()
188
- .catch(() => {
189
- prevFnError();
190
- return Promise.reject();
191
- })
192
- .then(() => {
193
- if (props.strategy === 'MULTI') {
194
- // 循环多条
195
- for (let i = 0; i < state.printParams.length; i++) {
196
- const queryParams = {
197
- formatId: state.currentFormatId,
198
- templateId: getTemplateIdByFormatId(state.currentFormatId),
199
- params: getPrintParams(i)
200
- };
201
- printInstance.printDirect(queryParams, callLocalServicesSuccessCbTmp, callLocalServicesErrorCb);
202
- }
203
- } else {
204
- // 聚合一条
205
- const queryParams = {
206
- formatId: state.currentFormatId,
207
- templateId: getTemplateIdByFormatId(state.currentFormatId),
208
- params: getOnceParams()
209
- };
210
- printInstance.printDirect(
211
- queryParams,
212
- (res: any) => {
213
- callLocalServicesSuccessCb(res, 'print');
214
- },
215
- callLocalServicesErrorCb
216
- );
217
- }
218
- })
219
- .finally(() => {
220
- state.visible = false;
221
- });
222
- }
223
- const handleClickPreview = async () => {
224
- props.prevFn()
225
- .catch(() => {
226
- prevFnError();
227
- return Promise.reject();
228
- })
229
- .then(() => {
230
- const params = props.strategy === 'MULTI' ? getPrintParams() : getOnceParams();
231
- const queryParams = {
232
- formatId: state.currentFormatId,
233
- templateId: getTemplateIdByFormatId(state.currentFormatId),
234
- params
235
- };
236
- printInstance.preview(
237
- queryParams,
238
- (res: any) => {
239
- callLocalServicesSuccessCb(res, 'preview');
240
- },
241
- callLocalServicesErrorCb
242
- );
243
- })
244
- .finally(() => {
245
- state.visible = false;
246
- });
247
- }
248
- const handleClickEdit = () => {
249
- props.prevFn()
250
- .catch(() => {
251
- prevFnError();
252
- return Promise.reject();
253
- })
254
- .then(() => {
255
- state.identityVerification.visible = true;
256
- })
257
- .finally(() => {
258
- state.visible = false;
259
- });
260
- }
261
- const handleSelect = (key: string) => {
262
- switch(key) {
263
- case 'printText':
264
- handleClickPrint();
265
- break;
266
- case 'previewText':
267
- handleClickPreview();
268
- break;
269
- case 'formatEditText':
270
- handleClickEdit();
271
- break;
272
- default:
273
- state.currentFormatId = key;
274
- state.visible = false
275
- break;
276
- }
277
- }
278
- const handleClickOutside = () => {
279
- state.visible = false;
280
- }
281
- const handleClickWrap = () => {
282
- setTimeout(() => {
283
- state.visible = true;
284
- }, 0);
285
- }
286
- const setTimeoutSpin = () => {
287
- (state as any).spinTimer = setTimeout(() => {
288
- state.spinning = true;
289
- }, 1500);
290
- }
291
- const instantiatePrintSDK = () => {
292
- if (printInstance) return false;
293
- printInstance = new Print();
294
- }
295
- const getDefaultFormatId = (list: any[], key: string | number) => {
296
- if (!list?.length) return '';
297
- let findDefault = list.find(item => item[key] == 1);
298
- return findDefault?.id || list[0].id;
299
- }
300
- const setOptions = () => {
301
- const children = state.formatList.map((v: any): DropdownOption => {
302
- return {
303
- label: v.name,
304
- key: v.id
305
- }
306
- })
307
- options.unshift({
308
- label: formatTitle.value,
309
- key: 'format',
310
- children
311
- })
312
- }
313
- const formatFormatList = (list: any[]): any => {
314
- let formatList: any[] = [];
315
-
316
- list.forEach(item => {
317
- if (!item.format) return false;
318
- formatList.push(...item.format);
319
- });
320
-
321
- return formatList;
322
- }
323
- const setLoaded = () => {
324
- state.spinning = false;
325
- if (!state.spinTimer) return false;
326
- clearTimeout(state.spinTimer);
327
- state.spinTimer = null;
328
- }
329
- const requestError = () => {
330
- state.isInited = false;
331
- setLoaded();
332
- setTimeout(() => {
333
- state.visible = false;
334
- }, 0);
335
-
336
- return false;
337
- }
338
- const formatDefaultVal = (i: any, tableVal?: any) => {
339
- let val = i.defaultValue || '';
340
- let tVal = tableVal;
341
- if (i.type === 'NUMBER') {
342
- tVal = Number(tableVal) || 0;
343
- }
344
- if (i.type === 'DATE') {
345
- tVal = tableVal ? moment(tableVal).format('YYYY-MM-DD') : '';
346
- }
347
- if (i.type === 'DATETIME') {
348
- tVal = tableVal ? moment(tableVal).format('YYYY-MM-DD HH:mm:ss') : '';
349
- }
350
-
351
- return val ? val : tVal;
352
- }
353
- const formatPrintParams = (paramObj: any, fieldList: any[], keyName: string) => {
354
- const obj: any = {};
355
- fieldList.forEach((i: any) => {
356
- let defaultVal = formatDefaultVal(i, paramObj[i[keyName]]);
357
- if (paramObj[i[keyName]] && defaultVal) {
358
- obj[i[keyName]] = defaultVal;
359
- }
360
- });
361
-
362
- return obj;
363
- }
364
- const formatParams = ({ customizeDataset = [], param = [] }, params: any[] = []): any => {
365
- return params.map(paramObj => {
366
- let res: any = {};
367
-
368
- // 自定义结果集
369
- customizeDataset.forEach((dataSetItem: any) => {
370
- const selectFieldList = dataSetItem.dataSetting[0].selectFieldList;
371
- res['datasetData'] = {
372
- [dataSetItem.name]: JSON.stringify(formatPrintParams(paramObj, selectFieldList, 'fieldName'))
373
- };
374
- });
375
-
376
- // 参数
377
- res = Object.assign({}, res, formatPrintParams(paramObj, param, 'key'));
378
- return res;
379
- });
380
- }
381
- const initCRM = async (formatListResult: any) => {
382
- state.formatList = formatListResult ? formatFormatList(formatListResult.obj) : [];
383
- console.log('formatListResult', formatListResult)
384
- state.currentFormatId = getDefaultFormatId(state.formatList, 'defaultFlag');
385
- setOptions()
386
-
387
- if (!state.currentFormatId) {
388
- (window as any).$message.error('获取打印格式失败,请联系管理员!');
389
- return requestError();
390
- }
391
- if (!state.currentFormatId) {
392
- requestError();
393
- return;
394
- }
395
- let templateParamsResult = (await props.queryTemplateParams())?.obj || {};
396
-
397
- if (templateParamsResult) {
398
- state.templateParams = templateParamsResult;
399
- } else {
400
- return requestError();
401
- }
402
- state.printParams = formatParams(state.templateParams, props.params);
403
- }
404
- const init = async () => {
405
- if (state.isInited) return true;
406
- state.isInited = true;
407
-
408
- setTimeoutSpin();
409
-
410
- instantiatePrintSDK();
411
- const formatListResult = await props.queryPrintFormatByNumber()
412
- await initCRM(formatListResult);
413
-
414
- setLoaded();
415
-
416
- return true;
417
- }
418
- const handleClickBtn = async () => {
419
- if (!state.visible) {
420
- let result = await init();
421
- if (!result) return false;
422
- }
423
-
424
- state.visible = !state.visible;
425
- }
426
- const reformatPrintParams = () => {
427
- state.watchPrintParamsReformatFn && (state.watchPrintParamsReformatFn as any)();
428
- /*
429
- 还没初始化完毕时(还没获取到模板格式配置等..)
430
- 触发再格式化逻辑,需等待初始化完毕,再重新执行格式化
431
- */
432
- if (!state.isInited) {
433
- (state.watchPrintParamsReformatFn as any) = () => watch(() => state.isInited, val => {
434
- if (!val) return false;
435
- reformatPrintParams();
436
- });
437
- return;
438
- }
439
-
440
- state.printParams = formatParams(state.templateParams, props.params);
441
- }
442
- const verifiySuccess = (token: string) => {
443
- state.identityVerification.visible = false;
444
-
445
- const queryParams = {
446
- formatId: state.currentFormatId,
447
- templateId: getTemplateIdByFormatId(state.currentFormatId),
448
- params: getPrintParams(),
449
- token
450
- };
451
- printInstance.editPrintFormat(
452
- queryParams,
453
- (res: any) => {
454
- callLocalServicesSuccessCb(res, 'edit');
455
- },
456
- callLocalServicesErrorCb
457
- );
458
- }
459
-
460
- onMounted(() => {
461
- state.isInited = false;
462
- })
463
-
464
- watch(() => props.params,
465
- (val: any) => {
466
- if (!val?.length) return false;
467
- reformatPrintParams();
468
- },
469
- { deep: true }
470
- )
471
-
472
- </script>
473
-
474
- <style lang="less" scoped>
475
- .dropdown-button {
476
- color: #212121;
477
- border-color: #d5d5d5 !important;
478
- margin-left: 8px;
479
- margin-bottom: 8px;
480
- }
481
- </style>
482
- <style lang="less">
483
- .rowFoldHideBtnList-dropdown {
484
- .n-dropdown-menu-wrapper span.active {
485
- color: #5585f5;
486
- }
487
- }
488
- </style>
@@ -1,120 +0,0 @@
1
- <template>
2
- <NModal
3
- preset="dialog"
4
- :title="identityVerificationTitle"
5
- class="standard-modal standard-modal-white authentication-modal"
6
- :show="modelValue"
7
- :close-on-esc="false"
8
- :show-icon="false"
9
- :style="{ width: style.width, maxHeight: style.height, overflowY: 'auto' }"
10
- @after-leave="handleClickClose"
11
- >
12
- <div class="content">
13
- <NForm class="login-form" ref="formRef" :model="form" :rules="rules">
14
- <NFormItem path="account">
15
- <NInput v-model:value="form.account" placeholder="请输入账号" />
16
- </NFormItem>
17
- <NFormItem path="password">
18
- <NInput type="password" v-model:value="form.password" placeholder="请输入密码" />
19
- </NFormItem>
20
- <NFormItem>
21
- <NButton type="primary" class="login-form-button" @click="handleClickSubmit">登录</NButton>
22
- </NFormItem>
23
- </NForm>
24
- </div>
25
- </NModal>
26
- </template>
27
-
28
- <script lang="ts">
29
- export default {
30
- name: "IdentityVerificationModal"
31
- }
32
- </script>
33
-
34
- <script setup lang="ts">
35
- import { ref, reactive, computed, watch, onMounted, nextTick } from 'vue'
36
- import { NButton, NModal, NForm, NFormItem, NInput, FormRules, FormInst } from 'naive-ui'
37
- import { useMessage } from 'naive-ui'
38
- // const crypto:any = import.meta.globEager('./utils/crypto.js');
39
-
40
- (window as any).$message = useMessage()
41
-
42
- const DEFAULT_FORM = {
43
- account: '',
44
- password: ''
45
- };
46
-
47
- const props = withDefaults(defineProps<{
48
- verifyUser?: Function
49
- identityVerificationTitle?: string
50
- modelValue: boolean
51
- }>(), {
52
- verifyUser: () => Promise.resolve(),
53
- })
54
-
55
- const emit = defineEmits(['update:modelValue', 'success']);
56
-
57
- let form = reactive(JSON.parse(JSON.stringify(DEFAULT_FORM)))
58
- const rules: FormRules = {
59
- account: { required: true, message: '请输入账号' },
60
- password: { required: true, message: '请输入密码' }
61
- }
62
- const style = {
63
- width: '416px',
64
- height: '328px'
65
- }
66
- const formRef = ref<FormInst | null>(null)
67
-
68
- const handleClickClose = () => {
69
- emit('update:modelValue', false);
70
- }
71
- const submit = async () => {
72
- const { data = {} } = await props.verifyUser(form)
73
- if (data.result !== 'SUCCESS') {
74
- (window as any).$message.error(data.resultMsg)
75
- return false
76
- }
77
- emit('success', data.map?.token)
78
- }
79
- const handleClickSubmit = () => {
80
- formRef.value?.validate((errors) => {
81
- if (!errors) {
82
- submit();
83
- } else {
84
- console.log(errors);
85
- return false;
86
- }
87
- });
88
- }
89
-
90
- onMounted(() => {
91
- })
92
-
93
- watch(() => props.modelValue,
94
- (val: any) => {
95
- if (val) return;
96
- form = JSON.parse(JSON.stringify(DEFAULT_FORM));
97
- }
98
- )
99
-
100
- </script>
101
- <style lang="less" scoped>
102
- .login-form {
103
- padding-top: 15px;
104
- &:deep(.n-input) {
105
- height: 50px;
106
- font-size: 14px;
107
- color: #757575;
108
- border-radius: 6px;
109
- }
110
- }
111
- .login-form-button {
112
- width: 100%;
113
- height: 50px;
114
- background: #2d7aff;
115
- border-radius: 24px;
116
- border-color: #2d7aff !important;
117
- font-size: 16px;
118
- color: #ffffff;
119
- }
120
- </style>
@@ -1,19 +0,0 @@
1
- export interface Props {
2
- baseUrl: string
3
- btnText?: string
4
- printText?: string
5
- previewText?: string
6
- formatEditText?: string
7
- identityVerificationTitle?: string
8
- authorizationKey: string
9
- templateNumber: number | string
10
- params: any[],
11
- hisParams: any
12
- prevFn?: Function
13
- verifyUserUrl?: string
14
- getPrintFormatByNumberUrl?: string
15
- getTemplateParamsUrl?: string
16
- strategy?: string
17
- printConfig?: any
18
- versionType?: number | string
19
- }