ui-process-h5 0.1.40 → 1.0.6

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