@zhijiancloud/bpm 0.0.1 → 0.0.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 (128) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +49 -5
  3. package/components/.DS_Store +0 -0
  4. package/components/css/bpmMulFile.less +54 -0
  5. package/components/css/bpmSelectCheckItem.less +4 -0
  6. package/components/css/bpmSelectFromForm.less +10 -0
  7. package/components/css/bpmSelectFromId.less +33 -0
  8. package/components/css/bpmText.less +49 -0
  9. package/components/css/demo2.less +3 -0
  10. package/components/css/index.less +3 -0
  11. package/components/lib/bpmDateTime/index.js +7 -0
  12. package/components/lib/bpmDateTime/src/main.vue +82 -0
  13. package/components/lib/bpmDateTime/src/part/editor.vue +124 -0
  14. package/components/lib/bpmDateTime/src/part/reader.vue +55 -0
  15. package/components/lib/bpmField/index.js +7 -0
  16. package/components/lib/bpmField/src/main.vue +173 -0
  17. package/components/lib/bpmMulFile/index.js +7 -0
  18. package/components/lib/bpmMulFile/src/main.vue +86 -0
  19. package/components/lib/bpmMulFile/src/part/editor.vue +433 -0
  20. package/components/lib/bpmMulFile/src/part/lib/compressImageUtils.js +226 -0
  21. package/components/lib/bpmMulFile/src/part/lib/utils.js +281 -0
  22. package/components/lib/bpmMulFile/src/part/reader.vue +303 -0
  23. package/components/lib/bpmMulImage/index.js +7 -0
  24. package/components/lib/bpmMulImage/src/main.vue +87 -0
  25. package/components/lib/bpmMulImage/src/part/editor.vue +439 -0
  26. package/components/lib/bpmMulImage/src/part/lib/compressImageUtils.js +226 -0
  27. package/components/lib/bpmMulImage/src/part/lib/utils.js +281 -0
  28. package/components/lib/bpmMulImage/src/part/reader.vue +171 -0
  29. package/components/lib/bpmNumber/index.js +7 -0
  30. package/components/lib/bpmNumber/src/main.vue +83 -0
  31. package/components/lib/bpmNumber/src/part/editor.vue +48 -0
  32. package/components/lib/bpmNumber/src/part/reader.vue +7 -0
  33. package/components/lib/bpmSelect/index.js +7 -0
  34. package/components/lib/bpmSelect/src/main.vue +90 -0
  35. package/components/lib/bpmSelect/src/part/editor.vue +75 -0
  36. package/components/lib/bpmSelect/src/part/reader.vue +44 -0
  37. package/components/lib/bpmSelectCheckItem/index.js +7 -0
  38. package/components/lib/bpmSelectCheckItem/src/main.vue +101 -0
  39. package/components/lib/bpmSelectCheckItem/src/part/editor.vue +106 -0
  40. package/components/lib/bpmSelectCheckItem/src/part/reader.vue +7 -0
  41. package/components/lib/bpmSelectFromField/index.js +7 -0
  42. package/components/lib/bpmSelectFromField/src/main.vue +97 -0
  43. package/components/lib/bpmSelectFromField/src/part/editor.vue +82 -0
  44. package/components/lib/bpmSelectFromField/src/part/reader.vue +7 -0
  45. package/components/lib/bpmSelectFromForm/index.js +7 -0
  46. package/components/lib/bpmSelectFromForm/src/main.vue +103 -0
  47. package/components/lib/bpmSelectFromForm/src/part/editor.vue +181 -0
  48. package/components/lib/bpmSelectFromForm/src/part/reader.vue +7 -0
  49. package/components/lib/bpmSelectFromId/index.js +7 -0
  50. package/components/lib/bpmSelectFromId/src/main.vue +102 -0
  51. package/components/lib/bpmSelectFromId/src/part/editor.vue +260 -0
  52. package/components/lib/bpmSelectFromId/src/part/reader.vue +7 -0
  53. package/components/lib/bpmSubForm/index.js +7 -0
  54. package/components/lib/bpmSubForm/src/main.vue +181 -0
  55. package/components/lib/bpmText/index.ts +13 -0
  56. package/components/lib/bpmText/src/main.vue +87 -0
  57. package/components/lib/bpmText/src/part/editor.vue +104 -0
  58. package/components/lib/bpmText/src/part/reader.vue +7 -0
  59. package/components/lib/bpmTime/index.js +7 -0
  60. package/components/lib/bpmTime/src/main.vue +83 -0
  61. package/components/lib/bpmTime/src/part/editor.vue +54 -0
  62. package/components/lib/bpmTime/src/part/reader.vue +24 -0
  63. package/components/lib/demo/index.js +7 -0
  64. package/components/{bpm2/lib → lib}/demo/src/main.vue +1 -1
  65. package/components/lib/demo2/index.js +7 -0
  66. package/components/lib/demo2/src/main.vue +11 -0
  67. package/components/lib/field-const.js +468 -0
  68. package/components/lib/index.ts +52 -0
  69. package/components/lib/mixins/RemoteSelectReader.vue +49 -0
  70. package/components/lib/mixins/TextReader.vue +22 -0
  71. package/components/lib/net.js +21 -0
  72. package/components/lib/utils.js +89 -0
  73. package/components/sfc.d.ts +27 -0
  74. package/dist/06c52960c6d2c0312a3e.woff +1 -0
  75. package/dist/0db1520f47986b6c755a.svg +1 -0
  76. package/dist/1e59d2330b4c6deb84b340635ed36249.ttf +0 -0
  77. package/dist/20fd1704ea223900efa9fd4e869efb08.woff2 +0 -0
  78. package/dist/4a2487b5cc6987c4f1de.woff2 +1 -0
  79. package/dist/4c6f1cd9993ba8a53b8e.ttf +1 -0
  80. package/dist/8b43027f47b20503057dfbbaa9401fef.eot +0 -0
  81. package/dist/bpmDateTime.umd.js +1 -0
  82. package/dist/bpmDateTime.umd.js.LICENSE.txt +38 -0
  83. package/dist/bpmField.umd.js +2 -0
  84. package/dist/bpmField.umd.js.LICENSE.txt +9 -0
  85. package/dist/bpmMulFile.umd.js +2 -0
  86. package/dist/bpmMulFile.umd.js.LICENSE.txt +9 -0
  87. package/dist/bpmMulImage.umd.js +2 -0
  88. package/dist/bpmMulImage.umd.js.LICENSE.txt +9 -0
  89. package/dist/bpmNumber.umd.js +1 -0
  90. package/dist/bpmNumber.umd.js.LICENSE.txt +38 -0
  91. package/dist/bpmSelect.umd.js +1 -0
  92. package/dist/bpmSelect.umd.js.LICENSE.txt +38 -0
  93. package/dist/bpmSelectCheckItem.umd.js +1 -0
  94. package/dist/bpmSelectFromField.umd.js +1 -0
  95. package/dist/bpmSelectFromForm.umd.js +1 -0
  96. package/dist/bpmSelectFromId.umd.js +1 -0
  97. package/dist/bpmSelectUser.umd.js +1 -0
  98. package/dist/bpmSubForm.umd.js +1 -0
  99. package/dist/bpmText.umd.js +1 -0
  100. package/dist/bpmText.umd.js.LICENSE.txt +38 -0
  101. package/dist/bpmTime.umd.js +1 -0
  102. package/dist/bpmTime.umd.js.LICENSE.txt +38 -0
  103. package/dist/c1e38fd9e0e74ba58f7a2b77ef29fdd3.svg +2671 -0
  104. package/dist/css/bpmMulFile.css +1 -0
  105. package/dist/css/bpmSelectCheckItem.css +1 -0
  106. package/dist/css/bpmSelectFromForm.css +1 -0
  107. package/dist/css/bpmSelectFromId.css +1 -0
  108. package/dist/css/bpmText.css +1 -0
  109. package/dist/css/demo2.css +1 -0
  110. package/dist/css/index.css +1 -0
  111. package/dist/demo.umd.js +1 -0
  112. package/dist/demo2.umd.js +1 -0
  113. package/dist/e5c0c62d732823225aaa.eot +1 -0
  114. package/dist/f691f37e57f04c152e2315ab7dbad881.woff +0 -0
  115. package/dist/index.umd.js +2 -0
  116. package/dist/index.umd.js.LICENSE.txt +9 -0
  117. package/package.json +66 -16
  118. package/components/bpm2/.DS_Store +0 -0
  119. package/components/bpm2/lib/demo/index.js +0 -18
  120. package/dist/favicon.ico +0 -0
  121. package/dist/index.html +0 -1
  122. package/dist/js/chunk-vendors.fad77a0a.js +0 -2
  123. package/dist/js/chunk-vendors.fad77a0a.js.map +0 -1
  124. package/dist/js/index.655afe85.js +0 -2
  125. package/dist/js/index.655afe85.js.map +0 -1
  126. package/dist/lib.umd.js +0 -1
  127. /package/components/{bpm2/css → css}/demo.less +0 -0
  128. /package/dist/css/{index.40a99d5f.css → demo.css} +0 -0
@@ -0,0 +1,468 @@
1
+ /**
2
+ * 表单字段map
3
+ * 多为业务处使用,此处子表单也需要
4
+ * 后期希望只维护此处一份
5
+ * @property name 表单字段名称
6
+ * @property hasBpmField 是否有bpmField组件实现
7
+ * @property actions 字段作为筛选条件的筛选方式
8
+ * @property actionOptions 筛选条件可选匹配值,仅Audit有
9
+ * @property tableColWidth 字段在表格中的最小宽度
10
+ */
11
+
12
+ let timeActions = [{
13
+ key: 'lt',
14
+ name: '早于'
15
+ },
16
+ {
17
+ key: 'gt',
18
+ name: '晚于'
19
+ },
20
+ {
21
+ key: 'gte',
22
+ name: '不早于'
23
+ },
24
+ {
25
+ key: 'lte',
26
+ name: '不晚于'
27
+ }
28
+ ]
29
+ let compose_1 = [{
30
+ key: 'in',
31
+ name: '在列表中'
32
+ }]
33
+ let compose_2 = [{
34
+ key: 'in',
35
+ name: '在列表中'
36
+ },
37
+ {
38
+ key: 'all',
39
+ name: '包含所有'
40
+ }
41
+ ]
42
+ export const FORM_FIELDS_MAP = {
43
+ 'Text': {
44
+ name: '单行文本',
45
+ hasBpmField: true,
46
+ tableColWidth: 240,
47
+ actions: [{
48
+ key: 'contains',
49
+ name: '包含'
50
+ },
51
+ {
52
+ key: 'eq',
53
+ name: '等于'
54
+ }
55
+ ],
56
+ attrs: ['type', 'value_type', 'id', 'name', 'linkage']
57
+ },
58
+ 'TextArea': {
59
+ name: '多行文本',
60
+ hasBpmField: true,
61
+ tableColWidth: 300,
62
+ actions: [{
63
+ key: 'contains',
64
+ name: '包含'
65
+ },
66
+ {
67
+ key: 'eq',
68
+ name: '等于'
69
+ }
70
+ ],
71
+ attrs: ['type', 'value_type', 'id', 'name', 'linkage']
72
+ },
73
+ 'SerialNumber': {
74
+ name: '流水号',
75
+ hasBpmField: true,
76
+ actions: [{
77
+ key: 'contains',
78
+ name: '包含'
79
+ }],
80
+ options: {
81
+ type: 'Text'
82
+ },
83
+ attrs: ['type', 'id', 'name', 'linkage']
84
+ },
85
+ 'Number': {
86
+ name: '数字',
87
+ hasBpmField: true,
88
+ tableColWidth: 200,
89
+ actions: [{
90
+ key: 'eq',
91
+ name: '等于'
92
+ },
93
+ {
94
+ key: 'gt',
95
+ name: '大于'
96
+ },
97
+ {
98
+ key: 'gte',
99
+ name: '大于等于'
100
+ },
101
+ {
102
+ key: 'lt',
103
+ name: '小于'
104
+ },
105
+ {
106
+ key: 'lte',
107
+ name: '小于等于'
108
+ },
109
+ {
110
+ key: 'ne',
111
+ name: '不等于'
112
+ }
113
+ ],
114
+ attrs: ['type', 'id', 'name', 'value_type', 'is_int', 'view.precision', 'linkage']
115
+ },
116
+ 'DateTime': {
117
+ name: '日期时间选择器',
118
+ tableColWidth: 180,
119
+ hasBpmField: true,
120
+ actions: timeActions,
121
+ attrs: ['type', 'id', 'name', 'check.format', 'view.format', 'linkage']
122
+ },
123
+ 'Date': {
124
+ name: '日期选择器',
125
+ hasBpmField: true,
126
+ actions: timeActions,
127
+ attrs: ['type', 'id', 'name', 'check.format', 'view.format', 'linkage']
128
+ },
129
+ 'Time': {
130
+ name: '时间选择器',
131
+ hasBpmField: true,
132
+ actions: timeActions,
133
+ attrs: ['type', 'id', 'name', 'check.format', 'view.format', 'linkage']
134
+ },
135
+ 'Timestamp': {
136
+ name: '※时间戳',
137
+ actions: timeActions,
138
+ attrs: ['type', 'id', 'name', 'check.format', 'view.format', 'linkage']
139
+ },
140
+ 'Select': {
141
+ name: '单选',
142
+ hasBpmField: true,
143
+ tableColWidth: 220,
144
+ actions: compose_1,
145
+ options: {
146
+ type: 'MulSelect'
147
+ },
148
+ attrs: ['type', 'id', 'name', 'value_type', 'style', 'range_enum', 'linkage']
149
+ },
150
+ 'Status': {
151
+ name: '状态',
152
+ hasBpmField: true,
153
+ tableColWidth: 150,
154
+ actions: compose_1,
155
+ options: {
156
+ type: 'MulSelect'
157
+ },
158
+ attrs: ['type', 'id', 'name', 'value_type', 'style', 'range_enum', 'linkage']
159
+ },
160
+ 'MulSelect': {
161
+ name: '多选',
162
+ hasBpmField: true,
163
+ tableColWidth: 220,
164
+ actions: compose_2,
165
+ attrs: ['type', 'id', 'name', 'value_type', 'result_type', 'style', 'range_enum', 'linkage']
166
+ },
167
+ 'SelectFromForm': {
168
+ name: '远程单项选择',
169
+ hasBpmField: true,
170
+ tableColWidth: 200,
171
+ actions: compose_1,
172
+ options: {
173
+ type: 'MulSelectFromForm'
174
+ },
175
+ attrs: ['type', 'id', 'name', 'range_remote', 'value_type', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.form", "range_remote.depends", 'linkage']
176
+ },
177
+ 'MulSelectFromForm': {
178
+ name: '远程多项选择',
179
+ hasBpmField: true,
180
+ tableColWidth: 200,
181
+ actions: compose_2,
182
+ attrs: ['type', 'id', 'name', 'range_remote', 'value_type', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.form", "range_remote.depends", 'linkage']
183
+ },
184
+ 'SelectProject': {
185
+ name: '项目单项选择',
186
+ hasBpmField: true,
187
+ tableColWidth: 200,
188
+ actions: compose_1,
189
+ options: {
190
+ type: 'MulSelectProject'
191
+ },
192
+ attrs: ['type', 'id', 'name', 'range_remote', 'value_type', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.depends", 'linkage']
193
+ },
194
+ 'MulSelectProject': {
195
+ name: '项目多项选择',
196
+ hasBpmField: true,
197
+ tableColWidth: 200,
198
+ actions: compose_2,
199
+ attrs: ['type', 'id', 'name', 'range_remote', 'value_type', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.depends", 'linkage']
200
+ },
201
+ 'SelectUser': {
202
+ name: '用户单项选择',
203
+ hasBpmField: true,
204
+ tableColWidth: 200,
205
+ actions: compose_1,
206
+ options: {
207
+ type: 'MulSelectUser'
208
+ },
209
+ attrs: ['type', 'id', 'name', 'range_remote', 'value_type', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.depends", 'linkage']
210
+ },
211
+ 'MulSelectUser': {
212
+ name: '用户多项选择',
213
+ hasBpmField: true,
214
+ tableColWidth: 200,
215
+ actions: compose_2,
216
+ options: {
217
+ type: 'MulSelectUser',
218
+ },
219
+ attrs: ['type', 'id', 'name', 'range_remote', 'value_type', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.depends", 'linkage']
220
+ },
221
+ 'SelectURUser': {
222
+ name: '用户单项选择(新)',
223
+ hasBpmField: true,
224
+ tableColWidth: 200,
225
+ actions: compose_1,
226
+ options: {
227
+ type: 'MulSelectURUser'
228
+ },
229
+ attrs: ['type', 'id', 'name', 'range_remote', 'value_type', 'filters', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.depends", 'linkage']
230
+ },
231
+ 'MulSelectURUser': {
232
+ name: '用户多项选择(新)',
233
+ hasBpmField: true,
234
+ tableColWidth: 200,
235
+ actions: compose_2,
236
+ options: {
237
+ type: 'MulSelectURUser'
238
+ },
239
+ attrs: ['type', 'id', 'name', 'range_remote', 'value_type', 'filters', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.depends", 'linkage']
240
+ },
241
+ 'SelectRootCategory': {
242
+ name: '根任务类型选择',
243
+ hasBpmField: true,
244
+ tableColWidth: 200,
245
+ actions: [{
246
+ key: 'eq',
247
+ name: '等于'
248
+ }],
249
+ attrs: ['type', 'id', 'name', 'category_cls', 'value_type', 'linkage']
250
+ },
251
+ 'SelectCheckItem': {
252
+ name: '检查项单项选择',
253
+ hasBpmField: true,
254
+ actions: compose_1,
255
+ tableColWidth: 200,
256
+ options: {
257
+ type: 'MulSelectCheckItem'
258
+ },
259
+ attrs: ['type', 'id', 'name', 'category_cls', 'value_type', 'range_remote', 'root_category', 'tree_select', 'can_select', 'can_select.filter_expression', 'range_remote.filter_expression', "range_remote.depends", 'linkage']
260
+ },
261
+ 'MulSelectCheckItem': {
262
+ name: '检查项多项选择',
263
+ hasBpmField: true,
264
+ tableColWidth: 200,
265
+ actions: compose_2,
266
+ attrs: ['type', 'id', 'name', 'category_cls', 'value_type', 'range_remote', 'root_category', 'tree_select', 'can_select', 'can_select.filter_expression', 'range_remote.filter_expression', "range_remote.depends", 'linkage']
267
+ },
268
+ 'SelectSort': {
269
+ name: '分类单项选择',
270
+ hasBpmField: true,
271
+ tableColWidth: 200,
272
+ actions: compose_1,
273
+ options: {
274
+ type: 'MulSelectSort'
275
+ },
276
+ attrs: ['type', 'id', 'name', 'value_type', 'range_remote', 'tree_select', 'can_select', 'can_select.filter_expression', 'range_remote.filter_expression', "range_remote.depends", 'linkage']
277
+ },
278
+ 'MulSelectSort': {
279
+ name: '分类多项选择',
280
+ hasBpmField: true,
281
+ tableColWidth: 200,
282
+ actions: compose_2,
283
+ attrs: ['type', 'id', 'name', 'value_type', 'range_remote', 'tree_select', 'can_select', 'can_select.filter_expression', 'range_remote.filter_expression', "range_remote.depends", 'linkage']
284
+ },
285
+ 'SelectPartner': {
286
+ name: '合作伙伴单项选择',
287
+ hasBpmField: true,
288
+ tableColWidth: 200,
289
+ actions: compose_1,
290
+ options: {
291
+ type: 'MulSelectPartner'
292
+ },
293
+ attrs: ['type', 'id', 'name', 'value_type', 'range_remote', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.depends", 'linkage']
294
+ },
295
+ 'MulSelectPartner': {
296
+ name: '合作伙伴多项选择',
297
+ hasBpmField: true,
298
+ tableColWidth: 200,
299
+ actions: compose_1,
300
+ options: {
301
+ type: 'MulSelectPartner'
302
+ },
303
+ attrs: ['type', 'id', 'name', 'value_type', 'range_remote', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.depends", 'linkage']
304
+ },
305
+ 'SelectOrg': {
306
+ name: '单位单项选择',
307
+ hasBpmField: true,
308
+ tableColWidth: 200,
309
+ actions: compose_1,
310
+ options: {
311
+ type: 'MulSelectOrg'
312
+ },
313
+ attrs: ['type', 'id', 'name', 'value_type', 'range_remote', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.depends", 'linkage']
314
+ },
315
+ 'MulSelectOrg': {
316
+ name: '单位多项选择',
317
+ hasBpmField: true,
318
+ tableColWidth: 200,
319
+ actions: compose_2,
320
+ attrs: ['type', 'id', 'name', 'value_type', 'range_remote', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.depends", 'linkage']
321
+ },
322
+ 'Audit': {
323
+ name: '审批',
324
+ // 数据管理表单筛选拿的这份配置,cims流程引擎应用改为这份的话,匹配值要做对应变化
325
+ actions: [
326
+ {
327
+ key: 'ar_eq', // audit_result_eq
328
+ name: '审批结果等于'
329
+ },
330
+ {
331
+ key: 'ar_in', // ar_in意思为audit_result_in, 后端定的
332
+ name: '审批结果在列表中'
333
+ }
334
+ ],
335
+ // 筛选条件可选匹配值
336
+ actionOptions: [
337
+ {
338
+ value: 0,
339
+ label: '未审批'
340
+ },
341
+ {
342
+ value: 1,
343
+ label: '审批通过'
344
+ },
345
+ {
346
+ value: 2,
347
+ label: '审批未通过'
348
+ }
349
+ ],
350
+ attrs: ['type', 'id', 'name', 'linkage'],
351
+ options: {
352
+ result_type: 'Array',
353
+ value_type: 'int',
354
+ type: 'MulSelect',
355
+ style: 'default',
356
+ range_enum: [
357
+ [0, '未审批'],
358
+ [1, '通过'],
359
+ [2, '未通过']
360
+ ]
361
+ }
362
+ },
363
+ 'MulArea': {
364
+ name: '区域多项选择',
365
+ actions: compose_2,
366
+ attrs: ['type', 'id', 'name', 'value_type', 'can', 'linkage']
367
+ },
368
+ 'Area': {
369
+ name: '区域单项选择',
370
+ actions: compose_1,
371
+ options: {
372
+ type: 'MulArea'
373
+ },
374
+ attrs: ['type', 'id', 'name', 'value_type', 'can', 'linkage']
375
+ },
376
+ 'SelectFormId': {
377
+ name: '表单单项选择',
378
+ hasBpmField: true,
379
+ tableColWidth: 200,
380
+ actions: compose_1,
381
+ options: {
382
+ type: 'MulSelectFormId'
383
+ },
384
+ attrs: ['type', 'id', 'name', 'value_type', 'form_select_type', 'linkage']
385
+ },
386
+ 'MulSelectFormId': {
387
+ name: '表单多项选择',
388
+ hasBpmField: true,
389
+ tableColWidth: 200,
390
+ actions: compose_1,
391
+ options: {
392
+ type: 'MulSelectFormId'
393
+ },
394
+ attrs: ['type', 'id', 'name', 'value_type', 'form_select_type', 'linkage']
395
+ },
396
+ 'SelectFromField': {
397
+ name: '远程单选(从字段)',
398
+ hasBpmField: true,
399
+ tableColWidth: 200,
400
+ actions: compose_1,
401
+ options: {
402
+ type: 'MulSelectFromField'
403
+ },
404
+ attrs: ['type', 'id', 'name', 'range_remote', 'style', 'value_type', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.form", "range_remote.depends", 'linkage']
405
+ },
406
+ 'MulSelectFromField': {
407
+ name: '远程多选(从字段)',
408
+ hasBpmField: true,
409
+ tableColWidth: 200,
410
+ actions: compose_1,
411
+ options: {
412
+ type: 'MulSelectFromField'
413
+ },
414
+ attrs: ['type', 'id', 'name', 'range_remote', 'style', 'value_type', "range_remote.filter_expression", "range_remote.store_field", "range_remote.display_field", "range_remote.form", "range_remote.depends", 'linkage']
415
+ },
416
+ 'MulSelectEntranceForm': {
417
+ name: '远程多项选择(从入口)',
418
+ },
419
+ 'SelectHouseOwner': {
420
+ name: '业主选择'
421
+ },
422
+ 'MulSelectIssue': {
423
+ name: '问题选择'
424
+ },
425
+ 'MulFile': {
426
+ name: '附件',
427
+ hasBpmField: true
428
+ },
429
+ 'MulImage': {
430
+ name: '图片',
431
+ hasBpmField: true
432
+ },
433
+ 'Signature': {
434
+ name: '签名',
435
+ hasBpmField: true
436
+ },
437
+ 'OnlineEditor': {
438
+ name: '在线文档编辑器'
439
+ },
440
+ 'Spliter': {
441
+ name: '分割线',
442
+ hasBpmField: false
443
+ },
444
+ 'Stepper': {
445
+ name: '步进器',
446
+ hasBpmField: false
447
+ },
448
+ 'Quote': {
449
+ name: '跨表单数据引用',
450
+ hasBpmField: false
451
+ },
452
+ 'Order': {
453
+ name: '排序控件',
454
+ hasBpmField: false
455
+ },
456
+ 'SubForm': {
457
+ name: '子表单',
458
+ hasBpmField: true
459
+ },
460
+ 'XSubForm': {
461
+ name: '子表单(增强版)',
462
+ hasBpmField: true
463
+ },
464
+ 'OrderSubForm': {
465
+ name: '排序子表单',
466
+ hasBpmField: true
467
+ }
468
+ }
@@ -0,0 +1,52 @@
1
+
2
+ import BpmText from './bpmText'
3
+ import BpmSelect from './bpmSelect'
4
+ import BpmTime from './bpmTime'
5
+ import BpmNumber from './bpmNumber'
6
+ import BpmDateTime from './bpmDateTime'
7
+ import BpmMulFile from './bpmMulFile'
8
+ import BpmField from './bpmField'
9
+ import BpmSelectCheckItem from './bpmSelectCheckItem'
10
+ import BpmSelectFromField from "./bpmSelectFromField";
11
+ import BpmSelectFromForm from "./bpmSelectFromForm";
12
+ import BpmSelectFromId from "./bpmSelectFromId";
13
+ import BpmMulImage from "./bpmMulImage";
14
+ import BpmSubForm from './bpmSubForm'
15
+ import { FORM_FIELDS_MAP } from './field-const.js'
16
+
17
+ export const bpmComponents = {
18
+ BpmText,
19
+ BpmSelect,
20
+ BpmTime,
21
+ BpmNumber,
22
+ BpmDateTime,
23
+ BpmMulFile,
24
+ BpmField,
25
+ BpmSelectCheckItem,
26
+ BpmSelectFromField,
27
+ 'BpmSelectUser': BpmSelectFromField,
28
+ 'BpmSelectPartner': BpmSelectFromField,
29
+ 'BpmSelectProject': BpmSelectFromField,
30
+ 'BpmSelectOrg': BpmSelectFromField,
31
+ 'BpmDate': BpmDateTime,
32
+ BpmSelectFromForm,
33
+ BpmSelectFromId,
34
+ BpmMulImage,
35
+ BpmSubForm
36
+ }
37
+
38
+ const install: any = function (Vue: any) {
39
+ if (install.installed) return
40
+ Object.keys(bpmComponents).forEach(key => {
41
+ Vue.component(bpmComponents[key].name, bpmComponents[key])
42
+ })
43
+ }
44
+
45
+ const API = {
46
+ install,
47
+ bpmConsts: {
48
+ FORM_FIELDS_MAP
49
+ }
50
+ }
51
+
52
+ export default API
@@ -0,0 +1,49 @@
1
+ <template>
2
+ <span :title="label">{{ label }}</span>
3
+ </template>
4
+
5
+ <script>
6
+ import _ from "lodash";
7
+ export default {
8
+ props: ["value", "fieldConf", "row", "formName", "orgInfo"],
9
+ data() {
10
+ return {
11
+ label: "",
12
+ };
13
+ },
14
+ watch: {
15
+ value() {
16
+ this.loadRemoteLabel();
17
+ },
18
+ },
19
+ mounted() {
20
+ this.loadRemoteLabel();
21
+ },
22
+ methods: {
23
+ async loadRemoteLabel() {
24
+ let value = this.value;
25
+ if (_.isNil(value) || !value) return (this.label = "未选择");
26
+ try {
27
+ if(_.isObject(value)) value = JSON.parse(value)
28
+ let values = _.isArray(value) ? value : [value];
29
+ let fieldId = _.get(this.fieldConf, "id");
30
+
31
+ if (!_.isEmpty(values)) {
32
+ values = _.isArray(values) ? values : [values];
33
+ this.label = await this.$bpm.fetchLabelByValues(
34
+ values,
35
+ fieldId,
36
+ this.formName,
37
+ this.row
38
+ );
39
+ } else {
40
+ this.label = "未选择";
41
+ }
42
+
43
+ } finally {
44
+ console.log("finally");
45
+ }
46
+ },
47
+ },
48
+ };
49
+ </script>
@@ -0,0 +1,22 @@
1
+ <template>
2
+ <span class="bpm-text-view" :class="`${uiType}-text-view`" :title="_value">
3
+ {{_value && _value !== 0 ? value : '--'}}
4
+ </span>
5
+ </template>
6
+
7
+ <script>
8
+ import _ from "lodash"
9
+
10
+ export default {
11
+ props: ['value','fieldConf','row', 'uiType'],
12
+ computed: {
13
+ _value(){
14
+ return _.get(this.row, this.fieldConf.id) || this.value
15
+ }
16
+ }
17
+ }
18
+ </script>
19
+
20
+ <style>
21
+ @import "../../css/bpmText.less";
22
+ </style>
@@ -0,0 +1,21 @@
1
+
2
+ import qs from "qs"
3
+ import _ from "lodash"
4
+
5
+
6
+
7
+
8
+ export function getOrgParams() {
9
+ let pageParams = qs.parse(_.trimStart(location.search, "?"))
10
+ let orgParams = {}
11
+ _.each(["group_id", "team_id", "project_id", "page_level"], key => {
12
+ let value = pageParams[key]
13
+ if (value) orgParams[key] = value
14
+ })
15
+ if (pageParams.page_level == 'group') {
16
+ let groupId = pageParams.group_id
17
+ orgParams.group_id = groupId ? groupId : orgParams.team_id
18
+ }
19
+ return orgParams
20
+ }
21
+
@@ -0,0 +1,89 @@
1
+ import _ from "lodash"
2
+ import qs from "qs"
3
+ export function formatDateTime(timestamp, format = "%Y-%m-%d", TimeType = "timestamp") {
4
+ if (timestamp <= 0) {
5
+ return "";
6
+ }
7
+ let result = formatDateTimeNegative(timestamp, format, TimeType);
8
+ return result;
9
+ }
10
+ export function formatDateTimeNegative(
11
+ timestamp,
12
+ format = "%Y-%m-%d",
13
+ TimeType = "timestamp"
14
+ ) {
15
+ var toDoubleDigit = (n) => {
16
+ return n < 10 ? "0" + n : n;
17
+ };
18
+ var d;
19
+ if (TimeType == "timestamp") {
20
+ d = new Date(timestamp);
21
+ } else if (TimeType == "notimestamp") {
22
+ d = new Date(timestamp);
23
+ }
24
+
25
+ var tars = format.match(/%\w/g);
26
+ var result = format;
27
+ for (var i in tars) {
28
+ switch (tars[i]) {
29
+ case "%Y":
30
+ result = result.replace(/%Y/g, d.getFullYear());
31
+ break;
32
+ case "%m":
33
+ result = result.replace(/%m/g, toDoubleDigit(d.getMonth() + 1));
34
+ break;
35
+ case "%d":
36
+ result = result.replace(/%d/g, toDoubleDigit(d.getDate()));
37
+ break;
38
+ case "%H":
39
+ result = result.replace(/%H/g, toDoubleDigit(d.getHours()));
40
+ break;
41
+ case "%i":
42
+ result = result.replace(/%i/g, toDoubleDigit(d.getMinutes()));
43
+ break;
44
+ case "%s":
45
+ result = result.replace(/%s/g, toDoubleDigit(d.getSeconds()));
46
+ break;
47
+ }
48
+ }
49
+ return result;
50
+ }
51
+
52
+
53
+
54
+
55
+ export function urlAppendParam(url, extraParams={}){
56
+ if(_.isFunction(url)){ // tpl
57
+ url = url(extraParams)
58
+ }
59
+
60
+ let r = /\?([^#]+)/
61
+ let query = _.get(url.match(r), "1")
62
+
63
+ if(query){ // 有 query,合并 baseQueryMap
64
+ let queryMap = qs.parse(query)
65
+ queryMap = extendNew(queryMap, extraParams)
66
+ url = _.replace(url, query, qs.stringify(queryMap))
67
+ }else{ // 插入 baseQueryMap
68
+ url = url + "?" + qs.stringify(extraParams)
69
+ }
70
+
71
+ return url
72
+ }
73
+
74
+ export function extendNew(...args){
75
+ return _.assignIn({}, ...args)
76
+ }
77
+
78
+
79
+ export function isMobile() {
80
+ var mobileAgent = ["iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire"];
81
+ var browser = navigator.userAgent.toLowerCase();
82
+ var isMobile = false;
83
+ for(var i = 0,l =mobileAgent.length; i < l;i++ ){
84
+ if (browser.indexOf(mobileAgent[i])!=-1){
85
+ isMobile = true;
86
+ }
87
+ }
88
+ return isMobile
89
+ }