ui-process-h5 2.1.0-beta → 2.1.1-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 +204 -11
  2. package/package.json +25 -56
  3. package/v2/style.css +1 -0
  4. package/v2/ui-process-h5.js +9926 -0
  5. package/v2/ui-process-h5.umd.cjs +18 -0
  6. package/v2.7/style.css +1 -0
  7. package/v2.7/ui-process-h5.js +9303 -0
  8. package/v2.7/ui-process-h5.umd.cjs +18 -0
  9. package/v3/style.css +1 -0
  10. package/v3/ui-process-h5.js +6819 -0
  11. package/v3/ui-process-h5.umd.cjs +6 -0
  12. package/build/configure/README.md +0 -211
  13. package/build/configure/package.json +0 -32
  14. package/debug.js +0 -9
  15. package/index.html +0 -12
  16. package/src/App.vue +0 -233
  17. package/src/assets/font-icon/iconfont.scss +0 -57
  18. package/src/assets/font-icon/iconfont.ttf +0 -0
  19. package/src/assets/img/add-file.png +0 -0
  20. package/src/assets/img/arrow-right.png +0 -0
  21. package/src/assets/img/arrow.png +0 -0
  22. package/src/assets/img/check.png +0 -0
  23. package/src/assets/img/del.png +0 -0
  24. package/src/assets/img/doc.png +0 -0
  25. package/src/assets/img/file.png +0 -0
  26. package/src/assets/img/image.png +0 -0
  27. package/src/assets/img/pdf.png +0 -0
  28. package/src/assets/img/process.png +0 -0
  29. package/src/assets/img/xls.png +0 -0
  30. package/src/assets/img/zip.png +0 -0
  31. package/src/assets/js/auth.js +0 -65
  32. package/src/assets/js/errorCode.js +0 -6
  33. package/src/assets/js/message.js +0 -352
  34. package/src/assets/js/request.js +0 -99
  35. package/src/assets/js/toast.js +0 -239
  36. package/src/assets/js/top.js +0 -229
  37. package/src/assets/js/utils.js +0 -83
  38. package/src/assets/js/vuePopper.js +0 -123
  39. package/src/assets/query.png +0 -0
  40. package/src/assets/status/check.png +0 -0
  41. package/src/assets/status/del.png +0 -0
  42. package/src/assets/status/error.png +0 -0
  43. package/src/assets/status/loading.png +0 -0
  44. package/src/assets/status/success.png +0 -0
  45. package/src/main.js +0 -17
  46. package/src/packages/attchUpload/index.js +0 -375
  47. package/src/packages/attchUpload/index.scss +0 -143
  48. package/src/packages/attchUpload/index.vue +0 -173
  49. package/src/packages/downSelect/index.js +0 -119
  50. package/src/packages/downSelect/index.scss +0 -88
  51. package/src/packages/downSelect/index.vue +0 -62
  52. package/src/packages/index.js +0 -6
  53. package/src/packages/popup/index.js +0 -125
  54. package/src/packages/popup/index.scss +0 -178
  55. package/src/packages/popup/index.vue +0 -80
  56. package/src/packages/preview/index.js +0 -40
  57. package/src/packages/preview/index.vue +0 -15
  58. package/src/packages/previewImage/index.js +0 -286
  59. package/src/packages/previewImage/index.scss +0 -76
  60. package/src/packages/previewImage/index.vue +0 -53
  61. package/src/packages/process/index.js +0 -1016
  62. package/src/packages/process/index.scss +0 -188
  63. package/src/packages/process/index.vue +0 -291
  64. package/src/packages/process/operation/backNode.vue +0 -396
  65. package/src/packages/process/operation/cancel.vue +0 -425
  66. package/src/packages/process/operation/ccTask.vue +0 -256
  67. package/src/packages/process/operation/complete.vue +0 -1384
  68. package/src/packages/process/operation/counterSign.vue +0 -498
  69. package/src/packages/process/operation/delegateTask.vue +0 -493
  70. package/src/packages/process/operation/index.js +0 -8
  71. package/src/packages/process/operation/index.scss +0 -212
  72. package/src/packages/process/operation/msgList.vue +0 -174
  73. package/src/packages/process/operation/treeNode.vue +0 -901
  74. package/src/packages/process/operation/treePerson.vue +0 -304
  75. package/src/packages/submitPopup/index.js +0 -708
  76. package/src/packages/submitPopup/index.scss +0 -190
  77. package/src/packages/submitPopup/index.vue +0 -125
  78. package/src/packages/tab/index.js +0 -236
  79. package/src/packages/tab/index.scss +0 -177
  80. package/src/packages/tab/index.vue +0 -155
  81. package/src/packages/tip/index.js +0 -80
  82. package/src/packages/tip/index.scss +0 -121
  83. package/src/packages/tip/index.vue +0 -57
  84. package/src/packages/viewAttchList/index.js +0 -138
  85. package/src/packages/viewAttchList/index.scss +0 -76
  86. package/src/packages/viewAttchList/index.vue +0 -121
  87. package/src/style.css +0 -80
  88. package/vite.config.ts +0 -118
  89. /package/{build/scripts → scripts}/postinstall.mjs +0 -0
  90. /package/{build/scripts → scripts}/switch-cli.mjs +0 -0
  91. /package/{build/scripts → scripts}/utils.mjs +0 -0
@@ -1,375 +0,0 @@
1
- import { defineComponent } from "vue-demi";
2
- import TopTips from "../tip/index.vue";
3
- import PreviewImage from "../previewImage/index.vue";
4
- import PreView from "../preview/index.vue";
5
- import TopPopup from "../popup/index.vue";
6
-
7
- import addFile from "@/assets/img/add-file.png";
8
- import del from "@/assets/img/del.png";
9
- import doc from "@/assets/img/doc.png";
10
- import file from "@/assets/img/file.png";
11
- import image from "@/assets/img/image.png";
12
- import pdf from "@/assets/img/pdf.png";
13
- import xls from "@/assets/img/xls.png";
14
- import zip from "@/assets/img/zip.png";
15
-
16
- export default defineComponent({
17
- name: "attchViews",
18
- components: {
19
- TopTips,
20
- PreviewImage,
21
- PreView,
22
- TopPopup,
23
- },
24
- props: {
25
- // axios接口信息
26
- request: {
27
- type: Function,
28
- defalut: () => {},
29
- },
30
- // 最大上传数
31
- limit: {
32
- type: Number | String,
33
- default: 4,
34
- },
35
- //返回上传数据url
36
- changeFn: {
37
- type: Function,
38
- default: null,
39
- },
40
- // 是否必填
41
- requires: {
42
- default: false,
43
- },
44
- // 已上传数据列表 (用于表单修改或者列表展示)
45
- inComing: {
46
- type: Array,
47
- defalut: () => [],
48
- },
49
- // 组件本身提供静态删除功能,动态删除需传入相应方法
50
- deletFn: {
51
- type: Function,
52
- },
53
- // 列表模式开启(开启后关闭上传,删除功能)
54
- onlyShow: {
55
- type: Boolean,
56
- default: false,
57
- },
58
- linkUrl: {
59
- type: Function,
60
- defalut: null,
61
- },
62
- },
63
-
64
- data() {
65
- return {
66
- // 列表展示 已选择文件列表
67
- lists: [],
68
- filesArr: [],
69
- imgIcon: ["jpg", "jpeg", "png", "gif"],
70
- docIcon: ["doc", "docx"],
71
- xlsIcon: ["xls", "xlsx"],
72
- zipIcon: ["zip", "rar", "7z"],
73
- extension: [
74
- "bmp",
75
- "gif",
76
- "jpg",
77
- "jpeg",
78
- "png",
79
- "doc",
80
- "docx",
81
- "xls",
82
- "xlsx",
83
- "ppt",
84
- "pptx",
85
- "html",
86
- "htm",
87
- "txt",
88
- "wps",
89
- "rar",
90
- "zip",
91
- "gz",
92
- "bz2",
93
- "mp4",
94
- "avi",
95
- "rmvb",
96
- "pdf",
97
- ],
98
- // ----
99
- current: "",
100
-
101
- buttonLoading: false,
102
- handleCloseType: true,
103
- uploadState: true,
104
-
105
- textTips: "",
106
- statusTips: false,
107
- typeTips: "success",
108
-
109
- visible: false,
110
- indexd: 0,
111
-
112
- visibleS: false,
113
- fileUrl: "",
114
- };
115
- },
116
-
117
- watch: {
118
- inComing: {
119
- handler(val, preval) {
120
- if (val) {
121
- // 传入附件列表前预处理 name fileSize , name与 size 无法渲染
122
- this.filesArr = [].concat(val);
123
- this.emitView();
124
- }
125
- },
126
-
127
- //如果加了这个参数,值为true的话,就消除了惰性,watch会在创建后立即执行一次
128
- //那么首次执行,val为默认值,preVal为undefined
129
- immediate: true,
130
- //这个参数代表监听对象时,可以监听深度嵌套的对象属性
131
- deep: true,
132
- },
133
- },
134
-
135
- computed: {
136
- haveCount() {
137
- if (this.limit == -1) return 100;
138
- return this.limit - this.filesArr.length;
139
- },
140
- addFile() {
141
- return addFile;
142
- },
143
- del() {
144
- return del;
145
- },
146
- doc() {
147
- return doc;
148
- },
149
- file() {
150
- return file;
151
- },
152
- image() {
153
- return image;
154
- },
155
- pdf() {
156
- return pdf;
157
- },
158
- xls() {
159
- return xls;
160
- },
161
- zip() {
162
- return zip;
163
- },
164
- },
165
-
166
- mounted() {
167
- // 兼容uni(uni编译会修改input属性,渲染完成后创建dom) upload-header-upload--item 兼容ios低版本,外部点击触发input事件
168
-
169
- this.$nextTick(() => {
170
- let input = document.createElement("input");
171
- input.type = "file";
172
- input.className = "upload-input";
173
- input.style =
174
- "opacity: 0;position: absolute;width:100%;height:100%;visibility: hidden;";
175
- input.multiple = true;
176
- input.id = "fileUp";
177
- input.addEventListener("change", this.handleSelect);
178
- document.getElementById("inputfile").appendChild(input);
179
- });
180
- },
181
-
182
- methods: {
183
- // 拦截
184
- handleClick() {
185
- // console.log("拦截", this.haveCount, this.limit);
186
- if (
187
- "undefined" != typeof nativeMethod &&
188
- nativeMethod.vueSelectFile
189
- ) {
190
- nativeMethod.vueSelectFile(2, "*", this.limit || 1);
191
- }
192
- if (this.haveCount <= 0) {
193
- this.handleTips(
194
- `最多上传${this.limit}个文件`,
195
- false,
196
- "success"
197
- );
198
- return;
199
- }
200
-
201
- document.getElementById("fileUp").click();
202
- /* console.log("click:::",document.getElementById("fileUp")) */
203
- },
204
- // 上传选择
205
- async handleSelect(value, items) {
206
- this.handleTips("上传中", true, "loading");
207
- // console.log("formData", value.target.files);
208
- const files = Array.from(value.target.files);
209
- document.getElementById("fileUp").value = "";
210
- let num = 0;
211
- let numLength =
212
- this.haveCount > files.length ? files.length : this.haveCount;
213
- try {
214
- for (let i = 0; i < numLength; i++) {
215
- if (
216
- this.extension.includes(
217
- files[i].name.substring(
218
- files[i].name.lastIndexOf(".") + 1
219
- )
220
- )
221
- ) {
222
- const formData = new FormData();
223
- formData.append("file", files[i]);
224
- const res = await this.request.post(
225
- "/file/upload",
226
- formData,
227
- {
228
- headers: {
229
- "Content-Type": "multipart/form-data",
230
- },
231
- }
232
- );
233
- if (res.code === 200) {
234
- if (this.filesArr.length > 0) {
235
- for (
236
- let indexs = 0;
237
- indexs < this.filesArr.length;
238
- indexs++
239
- ) {
240
- // 导入文件是否重名
241
- if (
242
- res.name ==
243
- this.filesArr[indexs].name
244
- ) {
245
- num++;
246
- }
247
-
248
- // 导入文件已存在重名
249
- if (
250
- this.filesArr[
251
- indexs
252
- ].name.includes(`(${num})`)
253
- ) {
254
- num++;
255
- }
256
-
257
- if (num > 0) {
258
- let nameIndex = res.name.lastIndexOf(
259
- "."
260
- );
261
- res.name = `${res.name.substring(
262
- 0,
263
- nameIndex
264
- )} (${num}) .${res.name.substring(
265
- res.name.lastIndexOf(
266
- "."
267
- ) + 1
268
- )}`;
269
- }
270
- }
271
- }
272
- this.filesArr.push(res.data);
273
- } else {
274
- this.handleTips("上传失败", true, "error");
275
- this.viewImage();
276
- return;
277
- }
278
- } else {
279
- this.handleTips(
280
- `文件${files[i].name}格式错误,请重新上传`,
281
- true,
282
- "error"
283
- );
284
- return;
285
- }
286
- }
287
- this.handleTips("上传成功", true, "success");
288
- this.viewImage();
289
- // console.log("当前已上传", this.filesArr);
290
- this.emitView();
291
- } catch (err) {
292
- this.handleTips("上传失败", true, "error");
293
- this.emitView();
294
- }
295
- },
296
- // 删除节点
297
- handleDel(index, items) {
298
- let delet;
299
- if (this.deletFn) {
300
- let delet = this.deletFn(items);
301
- if (delet === false) {
302
- this.handleTips("删除失败", true, "error");
303
- return;
304
- }
305
- this.filesArr.splice(index, 1);
306
- this.emitView();
307
- } else {
308
- this.filesArr.splice(index, 1);
309
- this.emitView();
310
- }
311
- },
312
- // 预览
313
- viewFile(data, index) {
314
- // console.log("data", data);
315
- if (
316
- this.imgIcon.includes(
317
- data.name
318
- .substring(data.name.lastIndexOf(".") + 1)
319
- .toLowerCase()
320
- )
321
- ) {
322
- this.indexd = this.lists.indexOf(data.url);
323
- this.visible = true;
324
- } else {
325
- if (data.url) {
326
- this.fileUrl = data.url;
327
- this.visibleS = true;
328
- }
329
- }
330
- },
331
- // 预览图片 数组生成
332
- viewImage() {
333
- this.lists = [];
334
- let arr = [];
335
- this.filesArr.map((v, i) => {
336
- if (
337
- this.imgIcon.includes(
338
- v.name.substring(v.name.lastIndexOf(".") + 1).toLowerCase()
339
- )
340
- ) {
341
- }
342
- });
343
- arr = this.filesArr.filter((value) => {
344
- return this.imgIcon.includes(
345
- value.name.substring(value.name.lastIndexOf(".") + 1).toLowerCase()
346
- );
347
- });
348
- arr.forEach((v, i) => {
349
- this.lists.push(v.url);
350
- });
351
- },
352
- // 发送数据
353
- emitView() {
354
- this.$emit("getValue", this.filesArr);
355
- },
356
- // clear node
357
- clearData() {
358
- this.filesArr = [];
359
- // console.log("clear!!!!!");
360
- },
361
-
362
- // tips
363
- handleTips(text, status, type) {
364
- this.textTips = text;
365
- this.statusTips = status;
366
- this.typeTips = type;
367
- this.$refs.topTips.handleOpen();
368
- },
369
- },
370
- });
371
-
372
- /* defineEmits */
373
- // const emit = defineEmits(["getValue"]);
374
-
375
- // defineExpose({ clearData });
@@ -1,143 +0,0 @@
1
- .attch-upload-mask {
2
- width: 100vw;
3
- height: 100vh;
4
- position: fixed;
5
- top: 0;
6
- left: 0;
7
- background-color: #999;
8
- opacity: 0.5;
9
- overflow-x: hidden;
10
- }
11
- .attch-upload-body {
12
- width: 100%;
13
- }
14
- .upload-close {
15
- box-sizing: border-box;
16
- width: 100%;
17
- height: 20px;
18
- padding: 5px;
19
- text-align: right;
20
- }
21
- .upload-close-img {
22
- width: 18px;
23
- height: 18px;
24
- }
25
- .upload-header {
26
- width: 100%;
27
- /* position: fixed;
28
- top: 0; */
29
- height: 44px;
30
- font-size: 14px;
31
- display: flex;
32
- justify-content: space-between;
33
- box-sizing: border-box;
34
- align-items: center;
35
- overflow-x: hidden;
36
- }
37
-
38
- .upload-header-title--re {
39
- color: #ee0000;
40
- }
41
-
42
- .upload-header-title {
43
- height: 100%;
44
- display: flex;
45
- align-items: center;
46
- }
47
-
48
- .upload-header-close {
49
- width: 18px;
50
- height: 18px;
51
- }
52
-
53
- .upload-header-upload {
54
- height: 100%;
55
-
56
- font-size: 14px;
57
- color: #1389ff;
58
- }
59
-
60
- .upload-input {
61
- opacity: 0;
62
- position: absolute;
63
- }
64
- .upload-header-upload--item {
65
- display: flex;
66
- align-items: center;
67
- height: 100%;
68
- position: relative;
69
- }
70
-
71
- .upload-header-upload--item img {
72
- width: 18px;
73
- height: 18px;
74
- margin-right: 4px;
75
- }
76
-
77
- .upload-list {
78
- padding-bottom: 20px;
79
- }
80
- .list-items {
81
- display: flex;
82
- margin-top: 18px;
83
- }
84
-
85
- .list-items-icon {
86
- width: 36px;
87
- height: 40px;
88
- margin-right: 10px;
89
- line-height: 44px;
90
- }
91
- .icon-img {
92
- width: 100%;
93
- height: 100%;
94
- }
95
-
96
- .list-items-info {
97
- width: 225px;
98
- }
99
-
100
- .info-name {
101
- width: 100%;
102
- font-size: 15px;
103
- color: #333;
104
- word-wrap: break-word;
105
- word-break: break-all;
106
- }
107
- .info-attribute {
108
- color: #999;
109
- font-size: 13px;
110
- }
111
- .info-attribute-time {
112
- margin-right: 10px;
113
- }
114
- .info-attribute-views {
115
- color: #1389ff;
116
- }
117
-
118
- .list-items-operation {
119
- flex: 1;
120
- }
121
- .list-items-operation-img {
122
- width: 18px;
123
- height: 18px;
124
- margin-left: auto;
125
- line-height: 44px;
126
- }
127
- .list-items-operation-img img {
128
- width: 100%;
129
- height: 100%;
130
- }
131
-
132
- .upload-footer {
133
- width: 100%;
134
- position: fixed;
135
- bottom: 0;
136
- }
137
-
138
- .attchlist-wrap {
139
- width: 100%;
140
- height: 100dvh;
141
- display: flex;
142
- flex-direction: column;
143
- }
@@ -1,173 +0,0 @@
1
- <template>
2
- <div class="attch-upload">
3
- <div class="attch-upload-mask" v-if="buttonLoading"></div>
4
- <div class="attch-upload-body">
5
- <div class="upload-header">
6
- <div class="upload-header-title">
7
- 附件
8
- <span v-if="requires" class="upload-header-title--re"
9
- >*</span
10
- >
11
- </div>
12
- <div class="upload-header-upload">
13
- <div
14
- v-if="!onlyShow"
15
- class="upload-header-upload--item"
16
- id="inputfile"
17
- @click="handleClick"
18
- >
19
- <!-- <input
20
- v-if="haveCount > 0 && !VueVersion"
21
- class="upload-input"
22
- type="file"
23
- multiple
24
- @change="handleSelect($event, item)"
25
- /> -->
26
- <img :src="addFile" />上传附件
27
- </div>
28
- </div>
29
- </div>
30
-
31
- <div class="upload-body">
32
- <div class="upload-list" v-if="filesArr.length > 0">
33
- <div
34
- class="list-items"
35
- v-for="(v, i) of filesArr"
36
- :key="v.uuid"
37
- >
38
- <div class="list-items-icon">
39
- <img
40
- v-if="
41
- xlsIcon.includes(
42
- v.name.substring(
43
- v.name.lastIndexOf('.') + 1
44
- ).toLowerCase()
45
- )
46
- "
47
- class="icon-img"
48
- :src="xls"
49
- />
50
- <img
51
- v-else-if="
52
- imgIcon.includes(
53
- v.name.substring(
54
- v.name.lastIndexOf('.') + 1
55
- ).toLowerCase()
56
- )
57
- "
58
- class="icon-img"
59
- :src="image"
60
- />
61
- <img
62
- v-else-if="
63
- v.name.substring(
64
- v.name.lastIndexOf('.') + 1
65
- ).toLowerCase() == 'pdf'
66
- "
67
- class="icon-img"
68
- :src="pdf"
69
- />
70
- <img
71
- v-else-if="
72
- docIcon.includes(
73
- v.name.substring(
74
- v.name.lastIndexOf('.') + 1
75
- ).toLowerCase()
76
- )
77
- "
78
- class="icon-img"
79
- :src="doc"
80
- />
81
- <img
82
- v-else-if="
83
- zipIcon.includes(
84
- v.name.substring(
85
- v.name.lastIndexOf('.') + 1
86
- ).toLowerCase()
87
- )
88
- "
89
- class="icon-img"
90
- :src="zip"
91
- />
92
- <img v-else class="icon-img" :src="file" />
93
- </div>
94
- <div class="list-items-info">
95
- <div class="info-name">
96
- {{ v.name }}
97
- </div>
98
- <div class="info-attribute">
99
- <span class="info-attribute-size"
100
- >{{
101
- v.fileSize < 1024
102
- ? v.fileSize
103
- : v.fileSize / 1024 > 1024
104
- ? parseFloat(
105
- (
106
- v.fileSize /
107
- 1024 /
108
- 1024
109
- ).toFixed(2)
110
- )
111
- : parseFloat(
112
- (v.fileSize / 1024).toFixed(2)
113
- )
114
- }}{{
115
- v.fileSize < 1024
116
- ? "b"
117
- : parseFloat(
118
- (v.fileSize / 1024).toFixed(2)
119
- ) < 1024
120
- ? "kb"
121
- : "M"
122
- }}
123
- </span>
124
- <span
125
- class="info-attribute-views"
126
- @click="viewFile(v, i)"
127
- >
128
- 预览
129
- </span>
130
- </div>
131
- </div>
132
- <div class="list-items-operation" v-if="!onlyShow">
133
- <div
134
- @click="handleDel(i, v)"
135
- class="list-items-operation-img"
136
- >
137
- <img :src="del" />
138
- </div>
139
- </div>
140
- </div>
141
- </div>
142
- </div>
143
- </div>
144
- <TopTips
145
- ref="topTips"
146
- :text="textTips"
147
- :statusTips="statusTips"
148
- :type="typeTips"
149
- />
150
- <!-- :visible.sync="visible" -->
151
- <PreviewImage
152
- :images="lists"
153
- v-bind:visible="visible"
154
- v-on:update:visible="(val) => (visible = val)"
155
- :indexd="indexd"
156
- />
157
-
158
- <TopPopup
159
- v-bind:visible="visibleS"
160
- v-on:update:visible="(val) => (visibleS = val)"
161
- ref="TopPopup"
162
- titleText="附件预览"
163
- isDrawer
164
- :isIndex="99"
165
- >
166
- <PreView v-if="visibleS" :file="fileUrl" />
167
- </TopPopup>
168
- </div>
169
- </template>
170
- <script src="./index.js"></script>
171
- <style lang="scss" scoped>
172
- @import "./index.scss";
173
- </style>