ui-process-h5 2.0.7-beta → 2.1.0-beta

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 (91) hide show
  1. package/README.md +11 -204
  2. package/build/configure/README.md +211 -0
  3. package/build/configure/package.json +32 -0
  4. package/debug.js +9 -0
  5. package/index.html +12 -0
  6. package/package.json +56 -25
  7. package/src/App.vue +233 -0
  8. package/src/assets/font-icon/iconfont.scss +57 -0
  9. package/src/assets/font-icon/iconfont.ttf +0 -0
  10. package/src/assets/img/add-file.png +0 -0
  11. package/src/assets/img/arrow-right.png +0 -0
  12. package/src/assets/img/arrow.png +0 -0
  13. package/src/assets/img/check.png +0 -0
  14. package/src/assets/img/del.png +0 -0
  15. package/src/assets/img/doc.png +0 -0
  16. package/src/assets/img/file.png +0 -0
  17. package/src/assets/img/image.png +0 -0
  18. package/src/assets/img/pdf.png +0 -0
  19. package/src/assets/img/process.png +0 -0
  20. package/src/assets/img/xls.png +0 -0
  21. package/src/assets/img/zip.png +0 -0
  22. package/src/assets/js/auth.js +65 -0
  23. package/src/assets/js/errorCode.js +6 -0
  24. package/src/assets/js/message.js +352 -0
  25. package/src/assets/js/request.js +99 -0
  26. package/src/assets/js/toast.js +239 -0
  27. package/src/assets/js/top.js +229 -0
  28. package/src/assets/js/utils.js +83 -0
  29. package/src/assets/js/vuePopper.js +123 -0
  30. package/src/assets/query.png +0 -0
  31. package/src/assets/status/check.png +0 -0
  32. package/src/assets/status/del.png +0 -0
  33. package/src/assets/status/error.png +0 -0
  34. package/src/assets/status/loading.png +0 -0
  35. package/src/assets/status/success.png +0 -0
  36. package/src/main.js +17 -0
  37. package/src/packages/attchUpload/index.js +375 -0
  38. package/src/packages/attchUpload/index.scss +143 -0
  39. package/src/packages/attchUpload/index.vue +173 -0
  40. package/src/packages/downSelect/index.js +119 -0
  41. package/src/packages/downSelect/index.scss +88 -0
  42. package/src/packages/downSelect/index.vue +62 -0
  43. package/src/packages/index.js +6 -0
  44. package/src/packages/popup/index.js +125 -0
  45. package/src/packages/popup/index.scss +178 -0
  46. package/src/packages/popup/index.vue +80 -0
  47. package/src/packages/preview/index.js +40 -0
  48. package/src/packages/preview/index.vue +15 -0
  49. package/src/packages/previewImage/index.js +286 -0
  50. package/src/packages/previewImage/index.scss +76 -0
  51. package/src/packages/previewImage/index.vue +53 -0
  52. package/src/packages/process/index.js +1016 -0
  53. package/src/packages/process/index.scss +188 -0
  54. package/src/packages/process/index.vue +291 -0
  55. package/src/packages/process/operation/backNode.vue +396 -0
  56. package/src/packages/process/operation/cancel.vue +425 -0
  57. package/src/packages/process/operation/ccTask.vue +256 -0
  58. package/src/packages/process/operation/complete.vue +1384 -0
  59. package/src/packages/process/operation/counterSign.vue +498 -0
  60. package/src/packages/process/operation/delegateTask.vue +493 -0
  61. package/src/packages/process/operation/index.js +8 -0
  62. package/src/packages/process/operation/index.scss +212 -0
  63. package/src/packages/process/operation/msgList.vue +174 -0
  64. package/src/packages/process/operation/treeNode.vue +901 -0
  65. package/src/packages/process/operation/treePerson.vue +304 -0
  66. package/src/packages/submitPopup/index.js +708 -0
  67. package/src/packages/submitPopup/index.scss +190 -0
  68. package/src/packages/submitPopup/index.vue +125 -0
  69. package/src/packages/tab/index.js +236 -0
  70. package/src/packages/tab/index.scss +177 -0
  71. package/src/packages/tab/index.vue +155 -0
  72. package/src/packages/tip/index.js +80 -0
  73. package/src/packages/tip/index.scss +121 -0
  74. package/src/packages/tip/index.vue +57 -0
  75. package/src/packages/viewAttchList/index.js +138 -0
  76. package/src/packages/viewAttchList/index.scss +76 -0
  77. package/src/packages/viewAttchList/index.vue +121 -0
  78. package/src/style.css +80 -0
  79. package/vite.config.ts +118 -0
  80. package/v2/style.css +0 -1
  81. package/v2/ui-process-h5.js +0 -9945
  82. package/v2/ui-process-h5.umd.cjs +0 -18
  83. package/v2.7/style.css +0 -1
  84. package/v2.7/ui-process-h5.js +0 -9322
  85. package/v2.7/ui-process-h5.umd.cjs +0 -18
  86. package/v3/style.css +0 -1
  87. package/v3/ui-process-h5.js +0 -6842
  88. package/v3/ui-process-h5.umd.cjs +0 -6
  89. /package/{scripts → build/scripts}/postinstall.mjs +0 -0
  90. /package/{scripts → build/scripts}/switch-cli.mjs +0 -0
  91. /package/{scripts → build/scripts}/utils.mjs +0 -0
@@ -0,0 +1,498 @@
1
+ <template>
2
+ <div class="process-popup-content">
3
+ <div class="process-popup-content-msg">
4
+ <div v-if="param.isMsg">
5
+ <div
6
+ class="process-radio-item"
7
+ @click="handleOpenMsg()"
8
+ style="color: #1389ff; font-size: 14px;"
9
+ >
10
+ 常用意见
11
+ </div>
12
+ </div>
13
+ <div class="process-pc-label">
14
+ 加签理由:<span class="process-pc-label--re">*</span>
15
+ </div>
16
+ <div class="process-pc-value">
17
+ <div class="process-popup-textarea">
18
+ <textarea
19
+ v-model="commentMsg"
20
+ class="textarea-item"
21
+ name="description"
22
+ cols="40"
23
+ placeholder="请输入审批意见(200字以内)"
24
+ maxlength="200"
25
+ onkeyup="this.value=this.value.replace(/[\uD800-\uDFFF]/g,'')"
26
+ ></textarea>
27
+ <div class="process-popup-textarea-num">
28
+ {{ commentMsg.length }}/200
29
+ </div>
30
+ </div>
31
+ <div class="msg-btn" v-if="param.isMsg">
32
+ <span class="msg-btn-click" @click="handleMakeMsg()"
33
+ >设置为常用意见</span
34
+ >
35
+ </div>
36
+ </div>
37
+ </div>
38
+ <div
39
+ class="process-popup-content-person"
40
+ v-if="taskNode && taskNode.length > 0 && taskNode[0].taskState != 4"
41
+ >
42
+ <template v-if="nextNodeData.length">
43
+ <template v-for="item in nextNodeData">
44
+ <div>
45
+ <br />
46
+ 审批人
47
+ <span class="process-pc-label--re">*</span>
48
+ </div>
49
+ <div
50
+ class="process-pc-value"
51
+ @click="handleOpenPopup(item.id)"
52
+ >
53
+ <div class="process-pc-value--people">
54
+ <div
55
+ class="process-pc-value--data"
56
+ v-if="
57
+ partNode[item.id] &&
58
+ partNode[item.id].length
59
+ "
60
+ >
61
+ <span v-for="(v, i) in partNode[item.id]">
62
+ {{ i == 0 ? v : `,${v}` }}
63
+ </span>
64
+ </div>
65
+ <div
66
+ v-else
67
+ class="process-pc-value--data"
68
+ style="color: #888;"
69
+ >
70
+ <span>
71
+ 请选择审批人
72
+ </span>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </template>
77
+ </template>
78
+
79
+ <template v-else-if="outGatewayUserTaskModel.length">
80
+ <template v-for="item in outGatewayUserTaskModel">
81
+ <div class="process-pc-label">
82
+ <br />
83
+ 审批人
84
+ <span class="process-pc-label--re">*</span>
85
+ </div>
86
+ <div
87
+ class="process-pc-value"
88
+ @click="handleOpenPopup(item.id)"
89
+ >
90
+ <div class="process-pc-value--people">
91
+ <div
92
+ class="process-pc-value--data"
93
+ v-if="
94
+ partNode[item.id] &&
95
+ partNode[item.id].length
96
+ "
97
+ >
98
+ <span v-for="(v, i) in partNode[item.id]">
99
+ {{ i == 0 ? v : `,${v}` }}
100
+ </span>
101
+ </div>
102
+ <div
103
+ v-else
104
+ class="process-pc-value--data"
105
+ style="color: #888;"
106
+ >
107
+ <span>
108
+ 请选择审批人
109
+ </span>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </template>
114
+ </template>
115
+ </div>
116
+ <TopTips
117
+ ref="topTips"
118
+ :text="textTips"
119
+ :statusTips="statusTips"
120
+ :type="typeTips"
121
+ />
122
+ <TopPopup
123
+ v-bind:visible="visible"
124
+ v-on:update:visible="(val) => (visible = val)"
125
+ ref="TopPopup"
126
+ titleText="选人"
127
+ :isDrawer="true"
128
+ >
129
+ <div style="height: 100%;">
130
+ <departPerson
131
+ :isTitle="false"
132
+ v-if="visible"
133
+ :visible.sync="visible"
134
+ :request="param.request"
135
+ v-bind="entity"
136
+ @callback="handleCallback"
137
+ @cancel="handleCancel"
138
+ >
139
+ </departPerson>
140
+ </div>
141
+ <!-- 初始测试啊啊啊啊啊啊 -->
142
+ </TopPopup>
143
+
144
+ <attchViews
145
+ v-if="labels == '5'"
146
+ :limit="limit ? limit : -1"
147
+ :requires="requires"
148
+ :request="param.request"
149
+ :linkUrl="param.linkUrl"
150
+ @getValue="getValues"
151
+ />
152
+ <TopPopup
153
+ v-bind:visible="visibleListMsg"
154
+ v-on:update:visible="(val) => (visibleListMsg = val)"
155
+ ref="TopPopup"
156
+ titleText="常用意见"
157
+ :isDrawer="true"
158
+ >
159
+ <MsgList
160
+ :visible="visibleListMsg"
161
+ :request="param.request"
162
+ :useInfo="param.userInfo"
163
+ @handleTips="handleTips"
164
+ @handleMsg="handleMsg"
165
+ ></MsgList>
166
+ </TopPopup>
167
+
168
+ <TopPopup
169
+ titleText="操作消息提示"
170
+ :isTips="true"
171
+ :context="`将${commentMsg}设置为常用意见`"
172
+ :cancel="handleTipsCancel"
173
+ :comfig="handleTipsComfig"
174
+ v-bind:visible="visibleMsgComfig"
175
+ v-on:update:visible="(val) => (visibleMsgComfig = val)"
176
+ >
177
+ </TopPopup>
178
+ </div>
179
+ </template>
180
+ <script>
181
+ import TopTips from "../../tip/index.vue";
182
+ import attchViews from "../../attchUpload/index.vue";
183
+ import TopPopup from "../../popup/index.vue";
184
+ import { departPerson } from "checked-pick-app";
185
+ import MsgList from "./msgList.vue";
186
+ export default {
187
+ name: "counterSign",
188
+ props: {
189
+ param: {
190
+ type: Object,
191
+ defalut: () => {},
192
+ },
193
+ },
194
+ components: {
195
+ TopTips,
196
+ attchViews,
197
+ TopPopup,
198
+ departPerson,
199
+ MsgList,
200
+ },
201
+ data() {
202
+ return {
203
+ commentMsg: "",
204
+ style: {
205
+ color: "#333",
206
+ disableColor: "#F7F6F6",
207
+ },
208
+ textTips: "",
209
+ statusTips: false,
210
+ typeTips: "success",
211
+ // annex 附件属性
212
+ limit: "",
213
+ requires: "",
214
+ labels: "",
215
+ otherList: "",
216
+ attchLists: [],
217
+ // next
218
+ nextNodeData: [],
219
+ taskNode: [],
220
+
221
+ outGatewayUserTaskModel: [],
222
+ formData: {},
223
+
224
+ // 选人组件
225
+ visible: false,
226
+ entity: {
227
+ source: "0",
228
+ type: this.param.isCheckType || "0",
229
+ orgType: this.param.isOrgType || "0",
230
+ request: this.param.request, //'http://59.53.91.231:2100' 0002
231
+ codeType: this.param.isCodeType || [3], // 可选类型 1-主体 2-部门 3-人员
232
+ multiple: true, // 是否多选
233
+ checkedArray: [],
234
+ },
235
+ /* {
236
+ source: "0",
237
+ type: "0",
238
+ request: this.param.request, //'http://59.53.91.231:2100' 0002
239
+ businessId: "6a9aaf5742572e82b5d89d6f7e52e2f2",
240
+ codeType: [3], // 可选类型 1-主体 2-部门 3-人员
241
+ multiple: true, // 是否多选
242
+ } */
243
+ // 存储选人信息
244
+ multiNodeParticipant: {},
245
+ // 当前评估对象
246
+ partObjId: [],
247
+ // 选中人员信息
248
+ partNode: {},
249
+ actionName: "",
250
+
251
+ visibleListMsg: false,
252
+ visibleMsgComfig: false,
253
+ };
254
+ },
255
+ watch: {
256
+ param: {
257
+ handler(val, preVal) {
258
+ this.nextNodeData = val.nextNodeData;
259
+ this.taskNode = val.taskNode;
260
+ this.outGatewayUserTaskModel = val.outGatewayUserTaskModel;
261
+ this.actionName = val.actionName;
262
+ if (val.nextNodeData.length) {
263
+ // console.log("handler::::", this.nextNodeData[0]);
264
+ if (
265
+ this.nextNodeData[0].type == "userTask" ||
266
+ this.nextNodeData[0].type == "UserTaskModel"
267
+ ) {
268
+ this.entity.multiple = true;
269
+ this.entity.codeType = this.param.isCodeType || [3];
270
+ this.entity.source = "1";
271
+ this.entity.checkedArray = [];
272
+ this.entity.type = this.param.isCheckType || "0";
273
+ this.entity.orgType = this.param.isOrgType || [0];
274
+ } else if (
275
+ this.nextNodeData[0].type == "ExclusiveGatewayModel"
276
+ ) {
277
+ } else if (
278
+ this.nextNodeData[0].type == "InclusiveGatewayModel"
279
+ ) {
280
+ }
281
+ } else if (val.outGatewayUserTaskModel.length) {
282
+ if (val.outGatewayUserTaskModel[0].type == "userTask") {
283
+ this.entity.multiple = true;
284
+ this.entity.codeType = this.param.isCodeType || [3];
285
+ this.entity.source = "1";
286
+ this.entity.checkedArray = [];
287
+ this.entity.type = this.param.isCheckType || "0";
288
+ this.entity.orgType = this.param.isOrgType || [0];
289
+ } else if (
290
+ val.outGatewayUserTaskModel[0].type ==
291
+ "ExclusiveGatewayModel"
292
+ ) {
293
+ } else if (
294
+ val.outGatewayUserTaskModel[0].type ==
295
+ "InclusiveGatewayModel"
296
+ ) {
297
+ } else if (
298
+ val.outGatewayUserTaskModel[0].type == "UserTaskModel"
299
+ ) {
300
+ this.entity.multiple = true;
301
+ this.entity.codeType = this.param.isCodeType || [3];
302
+ this.entity.checkedArray = [];
303
+ this.entity.source = "1";
304
+ this.entity.type = this.param.isCheckType || "0";
305
+ this.entity.orgType = this.param.isOrgType || [0];
306
+ }
307
+ }
308
+ },
309
+ immediate: true,
310
+ deep: true,
311
+ },
312
+ },
313
+ created() {
314
+ // console.log("isVue2", this.param);
315
+ this.makeDelegateTaskButtonAnnex();
316
+ },
317
+ methods: {
318
+ // 设置msg
319
+ handleMakeMsg() {
320
+ if (this.commentMsg == "" && !this.commentMsg.length) {
321
+ this.handleTips("请输入审批意见!", false, "success");
322
+ this.visibleMsgComfig = false;
323
+ } else {
324
+ this.visibleMsgComfig = true;
325
+ }
326
+ },
327
+ handleOpenMsg() {
328
+ this.visibleListMsg = true;
329
+ },
330
+ handleTipsCancel() {
331
+ this.visibleMsgComfig = false;
332
+ },
333
+ handleTipsComfig() {
334
+ this.handleTips("", true, "loading");
335
+ this.visibleMsgComfig = false;
336
+ this.param.request
337
+ .post("/auth//user/opinion/save", {
338
+ opinionName: this.commentMsg,
339
+ })
340
+ .then((res) => {
341
+ if (res.code === 200) {
342
+ this.handleTips("设置成功!", true, "success");
343
+ } else {
344
+ this.handleTips(res.msg, true, "error");
345
+ }
346
+ })
347
+ .catch((error) => {
348
+ this.handleTips(error.msg, true, "error");
349
+ });
350
+ },
351
+ handleMsg(val) {
352
+ this.commentMsg = val;
353
+ this.visibleListMsg = false;
354
+ },
355
+ handleOpenPopup(id) {
356
+ this.visible = true;
357
+ this.partObjId = id;
358
+ },
359
+ confirm() {
360
+ if (!this.commentMsg) {
361
+ this.textTips = "请输入加签理由!";
362
+ this.$refs.topTips.handleOpen();
363
+ return false;
364
+ }
365
+ let arr = "";
366
+ this.multiNodeParticipant[this.partObjId].map((v, i) => {
367
+ if (i == 0) {
368
+ arr = v;
369
+ } else {
370
+ arr = `${arr} ${v}`;
371
+ }
372
+ });
373
+ this.handleTips("", true, "loading");
374
+ this.param.request
375
+ .post("/aws/tis/createDynamicTask", {
376
+ title:
377
+ this.param.formData.title ||
378
+ this.param.formData.reason ||
379
+ this.param.formData.meetingTheme,
380
+ participant: arr,
381
+ processInstId: this.param.processInstId,
382
+ adHocType: 2,
383
+ parentTaskInstId: this.param.taskInstId,
384
+ reason: this.commentMsg,
385
+ })
386
+ .then((res) => {
387
+ if (res.code == 200) {
388
+ this.$emit("handleClosePopup1");
389
+ this.handleTips("提交成功!", false, "success");
390
+ this.handleFinal();
391
+ this.commentMsg = "";
392
+ } else {
393
+ this.handleTips(res.msg, true, "error");
394
+ }
395
+ });
396
+ },
397
+ makeDelegateTaskButtonAnnex() {
398
+ if (this.param.annex && this.param.annex.length) {
399
+ this.otherList = this.param.annex;
400
+ let str = this.otherList.split(";");
401
+ this.limit = str[2];
402
+ this.requires = JSON.parse(str[1]);
403
+ this.labels = str[0];
404
+ /* console.log(
405
+ "makeDelegateTaskButtonAnnex",
406
+ this.otherList,
407
+ this.limit,
408
+ this.requires,
409
+ this.labels
410
+ ); */
411
+ }
412
+ },
413
+
414
+ handleCallback(res) {
415
+ // console.log("111:::", res);
416
+ this.visible = false;
417
+ this.multiNodeParticipant[this.partObjId] = [];
418
+ this.partNode[this.partObjId] = [];
419
+ res.map((v, i) => {
420
+ this.multiNodeParticipant[this.partObjId].push(v.uid);
421
+ this.partNode[this.partObjId].push(v.name);
422
+ this.entity.checkedArray.push({
423
+ type: 3,
424
+ uid: v.uid,
425
+ });
426
+ });
427
+ // console.log("callback_OK", res, this.multiNodeParticipant);
428
+ },
429
+ handleCancel() {
430
+ // console.log("cancel_No");
431
+ },
432
+
433
+ getValues(data) {
434
+ // console.log("获取当前附件信息::::", data);
435
+ this.attchLists = data;
436
+ },
437
+
438
+ async uploadAttch() {
439
+ if (this.attchLists.length > 0) {
440
+ this.attchLists.map((v, i) => {
441
+ v.size = v.fileSize;
442
+ v.format = v.originFileName.substring(
443
+ v.originFileName.lastIndexOf(".") + 1
444
+ );
445
+ v.uploadTime = v.createTime;
446
+ v.processInstId = this.param.processInstId;
447
+ v.taskInstId = this.param.taskInstId;
448
+ v.name = v.originFileName;
449
+ });
450
+
451
+ let param = this.attchLists;
452
+ const ress = await this.param.request.post(
453
+ "/aws/meta/annex/patchSave",
454
+ {
455
+ saveMetaAnnexCmdList: param,
456
+ }
457
+ );
458
+ // console.log("asd", ress);
459
+ if (ress.success) {
460
+ this.$emit("handleClosePopup1");
461
+ this.handleTips("提交成功!", false, "success");
462
+ this.handleFinal();
463
+ this.commentMsg = "";
464
+ } else {
465
+ this.handleTips("上传失败", true, "error");
466
+ }
467
+ }
468
+ },
469
+
470
+ isOption(humanPerformer) {
471
+ return (
472
+ humanPerformer == "任意指定" ||
473
+ humanPerformer == "固定部门" ||
474
+ humanPerformer == "固定单位" ||
475
+ humanPerformer == "与流程申请人所在组织结构的位置相关" ||
476
+ humanPerformer == "固定群组"
477
+ );
478
+ },
479
+
480
+ handleTips(text, status, type) {
481
+ this.textTips = text;
482
+ this.statusTips = status;
483
+ this.typeTips = type;
484
+ this.$refs.topTips.handleOpen();
485
+ },
486
+
487
+ handleFinal() {
488
+ if (this.param.endFunction) {
489
+ window.top && window.top.postMessage('success', '*')
490
+ this.param.endFunction("counterSign");
491
+ }
492
+ },
493
+ },
494
+ };
495
+ </script>
496
+ <style scoped>
497
+ @import "./index.scss";
498
+ </style>