ui-process-h5 0.1.32 → 0.1.36

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 (36) hide show
  1. package/package.json +6 -49
  2. package/packages/components/approval/index.js +0 -0
  3. package/packages/components/process/{index.ts → index.js} +2 -3
  4. package/packages/components/process/src/attchlist-upload.vue +585 -0
  5. package/packages/components/process/src/operation/backNode.vue +141 -0
  6. package/packages/components/process/src/operation/cancel.vue +170 -0
  7. package/packages/components/process/src/operation/ccTask.vue +170 -0
  8. package/packages/components/process/src/operation/complete.vue +224 -0
  9. package/packages/components/process/src/operation/counterSign.vue +178 -0
  10. package/packages/components/process/src/operation/delegateTask.vue +168 -0
  11. package/packages/components/process/src/operation/index.js +9 -0
  12. package/packages/components/process/src/operation/restart.vue +172 -0
  13. package/packages/components/process/src/popup.vue +176 -74
  14. package/packages/components/process/src/process.vue +900 -0
  15. package/packages/components/process/src/tab.vue +189 -197
  16. package/packages/components/process/src/tip.vue +207 -0
  17. package/packages/components/process/theme/img/add-file.png +0 -0
  18. package/packages/components/process/theme/img/del.png +0 -0
  19. package/packages/components/process/theme/img/doc.png +0 -0
  20. package/packages/components/process/theme/img/file.png +0 -0
  21. package/packages/components/process/theme/img/image.png +0 -0
  22. package/packages/components/process/theme/img/pdf.png +0 -0
  23. package/packages/components/process/theme/img/xls.png +0 -0
  24. package/packages/components/process/theme/img/zip.png +0 -0
  25. package/packages/components/process/theme/status/error.png +0 -0
  26. package/packages/components/process/theme/status/loading.png +0 -0
  27. package/packages/components/process/theme/status/success.png +0 -0
  28. package/packages/index.js +4 -0
  29. package/packages/component.ts +0 -4
  30. package/packages/components/process/src/button.vue +0 -55
  31. package/packages/components/process/src/index.vue +0 -447
  32. package/packages/components/utils/request/api.ts +0 -11
  33. package/packages/components/utils/request/cache.d.ts +0 -52
  34. package/packages/components/utils/request/cache.js +0 -99
  35. package/packages/components/utils/request/request.ts +0 -62
  36. package/packages/index.ts +0 -4
@@ -1,90 +1,122 @@
1
1
  <template>
2
- <div
3
- class="top-popup"
4
- :style="
5
- show ? 'transform: translateY(0)' : 'transform: translateY(100%)'
6
- "
7
- >
8
- <div class="top-popup-header">
9
- <div class="header-cancel" @click="handleCancel">
10
- {{ cancelText }}
2
+ <div>
3
+ <div
4
+ v-if="!isTips"
5
+ class="top-popup"
6
+ :style="
7
+ show
8
+ ? 'transform: translateY(0)'
9
+ : 'transform: translateY(100%)'
10
+ "
11
+ >
12
+ <div class="top-popup-header">
13
+ <div class="header-cancel" @click="handleCancel">
14
+ {{ cancelText }}
15
+ </div>
16
+ <div class="header-title">{{ titleText }}</div>
17
+ <div class="header-comfig" @click="handleComfig">
18
+ {{ comfigText }}
19
+ </div>
11
20
  </div>
12
- <div class="header-title">{{ titleText }}</div>
13
- <div class="header-comfig" @click="handleComfig">
14
- {{ comfigText }}
21
+ <div class="top-popup-body">
22
+ <slot name="default"></slot>
15
23
  </div>
16
24
  </div>
17
- <div class="top-popup-body">
18
- <slot name="default"></slot>
25
+ <div
26
+ class="top-tips"
27
+ v-else
28
+ :style="
29
+ show
30
+ ? 'visibility: visible; opacity: 1; transform: scale(1)'
31
+ : 'visibility: hidden; opacity: 0; transform: scale(1.2)'
32
+ "
33
+ >
34
+ <div class="top-tips-header">{{ titleText }}</div>
35
+ <div class="top-tips-body">{{ context }}</div>
36
+ <div class="top-tips-footer">
37
+ <div class="top-tips-btn" @click="handleCancel">
38
+ {{ cancelText }}
39
+ </div>
40
+ <div class="top-tips-btn" @click="handleComfig">
41
+ {{ comfigText }}
42
+ </div>
43
+ </div>
19
44
  </div>
45
+ <div
46
+ class="top-popup-mask"
47
+ :style="
48
+ show && isMask
49
+ ? 'visibility: visible; opacity: .7;'
50
+ : 'visibility: hidden; opacity: 0;'
51
+ "
52
+ @click="isMaskClose && handleClose()"
53
+ ></div>
20
54
  </div>
21
- <div
22
- class="top-popup-mask"
23
- v-if="show && isMask"
24
- @click="isMaskClose && handleClose()"
25
- ></div>
26
55
  </template>
27
56
  <script>
28
- import { defineComponent, ref, watch, computed, onMounted } from "vue-demi";
29
-
30
- export default defineComponent({
57
+ export default {
31
58
  name: "TopPopup",
32
59
  props: {
33
- titleText: { default: "top-popup", type: String },
34
- cancelText: { default: "取消", type: String },
35
- comfigText: { default: "确定", type: String },
36
- comfig: { default: null, type: Function },
37
- cancel: { default: null, type: Function },
38
- isMask: { default: true, type: Boolean },
39
- isMaskClose: { default: true, type: Boolean },
60
+ titleText: { default: "top-popup", type: String },// 标题文本
61
+ context: { default: "内容", type: String },// 内容文本
62
+ cancelText: { default: "取消", type: String },// 取消按钮文案
63
+ comfigText: { default: "确定", type: String },// 确定按钮文案
64
+ comfig: { default: null, type: Function },// 确定方法
65
+ cancel: { default: null, type: Function }, // 取消方法
66
+ isMask: { default: true, type: Boolean },// 是否开启蒙版
67
+ isMaskClose: { default: true, type: Boolean },// 蒙版关闭功能
68
+ isTips: { default: false, type: Boolean },//判断当前是否为dialog
40
69
  },
41
- setup(props) {
42
- const show = ref(false);
43
-
44
- const handleOpen = () => {
45
- show.value = true;
46
- };
47
-
48
- const handleCancel = () => {
49
- typeof props.cancel === "function" && props.cancel();
50
- handleClose();
51
- };
52
-
53
- const handleComfig = () => {
54
- typeof props.comfig === "function" && props.comfig();
55
- };
56
-
57
- const handleClose = () => {
58
- show.value = false;
70
+ data() {
71
+ return {
72
+ show: false,
59
73
  };
74
+ },
60
75
 
61
- onMounted(() => {
76
+ methods: {
77
+ handleOpen() {
78
+ this.show = true;
79
+ },
80
+ handleClose() {
81
+ this.show = false;
82
+ },
83
+ handleCancel() {
84
+ typeof this.cancel === "function" && this.cancel();
85
+ this.handleClose();
86
+ },
87
+ handleComfig() {
88
+ typeof this.comfig === "function" && this.comfig();
89
+ },
90
+ },
91
+ mounted() {
92
+ // 渲染组件到body
93
+ this.$nextTick(() => {
62
94
  const body = document.querySelector("body");
95
+ if (body.append) {
96
+ body.append(this.$el);
97
+ } else {
98
+ body.appendChild(this.$el);
99
+ }
63
100
  });
64
-
65
- return {
66
- handleOpen,
67
- handleCancel,
68
- handleComfig,
69
- handleClose,
70
- show,
71
- };
72
101
  },
73
- });
102
+ };
74
103
  </script>
75
104
  <style scoped>
76
105
  .top-popup {
77
106
  width: 100%;
78
- height: 80vh;
107
+ max-height: 80vh;
108
+ min-height: 65vh;
79
109
  position: fixed;
80
110
  left: 0;
81
111
  background-color: #fff;
82
- z-index: 199;
112
+ z-index: 399;
83
113
  border-radius: 20px 20px 0 0;
84
- padding: 0 10px;
114
+ padding: 0 20px;
85
115
  box-sizing: border-box;
86
- transition: all 0.5s ease;
116
+ transition: transform 0.3s ease;
87
117
  bottom: 0;
118
+ overflow-x: hidden;
119
+ overflow-y: auto;
88
120
  }
89
121
  .top-popup-mask {
90
122
  position: fixed;
@@ -94,35 +126,105 @@ export default defineComponent({
94
126
  opacity: 0.7;
95
127
  top: 0;
96
128
  left: 0;
97
- z-index: 99;
129
+ z-index: 299;
130
+ transition: all 0.3s ease;
98
131
  }
99
132
  .top-popup-header {
100
133
  display: flex;
101
134
  justify-content: space-between;
102
135
  align-items: center;
103
136
  padding: 10px 0;
137
+ font-size: 15px;
138
+ }
139
+
140
+ .top-popup-header .header-title {
141
+ font-size: 16px;
142
+ font-weight: 700;
143
+ color: #333;
104
144
  }
105
145
 
106
146
  .top-popup-header .header-cancel {
107
- color: #1389ff;
147
+ color: #333;
108
148
  }
109
149
  .top-popup-header .header-comfig {
110
150
  color: #1389ff;
111
151
  }
112
152
 
113
- .fade-enter-active,
114
- .fade-leave-active {
115
- transition: all 0.5s ease;
153
+
154
+ .top-tips {
155
+ width: 80vw;
156
+ /* height: 200px; */
157
+ border-radius: 11px;
158
+ background-color: #fff;
159
+ position: fixed;
160
+ top: calc(50% - 100px);
161
+ left: calc(50% - 40vw);
162
+ z-index: 399;
163
+ box-sizing: border-box;
164
+ transition: all 0.3s ease;
116
165
  }
117
166
 
118
- .fade-enter,
119
- .fade-leave-to {
120
- /* transform: translateY(100%); */
121
- bottom: -100%;
167
+ .top-tips-header {
168
+ display: flex;
169
+ flex-direction: row;
170
+ justify-content: center;
171
+ padding-top: 25px;
172
+ font-size: 15px;
173
+ color: #323233;
174
+ }
175
+
176
+ .top-tips-body {
177
+ display: flex;
178
+ flex-direction: row;
179
+ justify-content: center;
180
+ align-items: center;
181
+ padding: 20px;
182
+ padding-top: 8px;
183
+ font-size: 14px;
184
+ color: #6c6c6c;
122
185
  }
123
- .fade-enter-to,
124
- .fade-leave {
125
- /* transform: translateY(0%); */
126
- bottom: 0d;
186
+
187
+ .top-tips-footer {
188
+ display: flex;
189
+ flex-direction: row;
190
+ border-top-color: #f5f5f5;
191
+ border-top-style: solid;
192
+ border-top-width: 1px;
193
+ position: relative;
194
+ }
195
+ .top-tips-footer::before {
196
+ content: "";
197
+ position: absolute;
198
+ width: 100%;
199
+ height: 0.5px;
200
+ top: 0;
201
+ left: 0;
202
+ background-color: #f2f2f2;
203
+ }
204
+
205
+ .top-tips-btn {
206
+ display: flex;
207
+ flex: 1;
208
+ flex-direction: row;
209
+ justify-content: center;
210
+ align-items: center;
211
+ height: 45px;
212
+ position: relative;
213
+ font-size: 16px;
214
+ color: #333;
215
+ }
216
+
217
+ .top-tips-btn:last-child {
218
+ color: #ee0a24;
219
+ }
220
+
221
+ .top-tips-btn:last-child::before {
222
+ content: "";
223
+ position: absolute;
224
+ width: 1px;
225
+ height: 100%;
226
+ top: 0;
227
+ left: 0;
228
+ background-color: #f2f2f2;
127
229
  }
128
230
  </style>