cnhis-design-vue 3.1.0 → 3.1.3

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