@dolphinweex/weex-harmony 0.1.78 → 0.1.81
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.
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
2
|
+
<div @viewappear="allHarmonyViewAppear">
|
|
3
3
|
<div class="progress-container" v-if="progressText">
|
|
4
4
|
<img class="progress-loading" src="data:image/gif;base64,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" alt="loading" />
|
|
5
5
|
<text class="progress-text">{{progressText}}</text>
|
|
@@ -40,7 +40,7 @@ export default {
|
|
|
40
40
|
embedId: `embedId_iframe_${
|
|
41
41
|
Date.now().toString(36) + Math.random().toString(36).substring(2)
|
|
42
42
|
}`,
|
|
43
|
-
height: '0px',
|
|
43
|
+
height: window.location.href.includes('plugin-menu') ? '0px' : '100%',
|
|
44
44
|
_resizeObserver: null,
|
|
45
45
|
_heightCheckTimer: null,
|
|
46
46
|
_weexRoot: null,
|
|
@@ -86,7 +86,6 @@ export default {
|
|
|
86
86
|
if (args.progressText) {
|
|
87
87
|
this.progressText = args.progressText;
|
|
88
88
|
} else if (args.url) {
|
|
89
|
-
this.progressText = ''
|
|
90
89
|
this.url = args.url;
|
|
91
90
|
this.backgroundColor = args.pageBackgroundColor;
|
|
92
91
|
this.pluginType = args.pluginType
|
|
@@ -169,7 +168,14 @@ export default {
|
|
|
169
168
|
window.addEventListener("message", this._onMessage, false);
|
|
170
169
|
},
|
|
171
170
|
methods: {
|
|
172
|
-
|
|
171
|
+
allHarmonyViewAppear() {
|
|
172
|
+
const iframe = this.$refs.iframe;
|
|
173
|
+
if (iframe && iframe.contentWindow && typeof iframe.contentWindow.harmonyViewAppear === 'function') {
|
|
174
|
+
iframe.contentWindow.harmonyViewAppear();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
onPageFinish() {
|
|
173
179
|
if (this.$refs["iframe"]) {
|
|
174
180
|
this.$refs["iframe"].contentWindow.$midea_harmony_native =
|
|
175
181
|
window.$midea_harmony_native;
|
|
@@ -22,11 +22,13 @@
|
|
|
22
22
|
v-for="(item, index) in data.list"
|
|
23
23
|
:key="item.id"
|
|
24
24
|
class="grid-item"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
:class="{
|
|
26
|
+
'being-dragged': draggingIndex === index,
|
|
27
|
+
hidden: isDragClone && draggingIndex === index,
|
|
28
|
+
disabled: item.disabled === true,
|
|
29
|
+
deleted: item.deleted
|
|
30
|
+
}"
|
|
31
|
+
v-show="!item.deleted"
|
|
30
32
|
:data-index="index"
|
|
31
33
|
@touchstart="(e) => onTouchStart(e, index)"
|
|
32
34
|
@touchmove="onTouchMove"
|
|
@@ -37,9 +39,9 @@
|
|
|
37
39
|
<div class="box" :class="{ shaking: isEditing }">
|
|
38
40
|
<div class="thumb-wrap">
|
|
39
41
|
<img class="thumb" :src="item.imageSrc" alt="" />
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
<button class="delete-btn"
|
|
43
|
+
:style="{ fontSize : data.deleteBtnSize && data.deleteBtnSize * 4 || 16 * 4 }"
|
|
44
|
+
@click.stop="requestDelete(index, item)">×</button>
|
|
43
45
|
</div>
|
|
44
46
|
<div
|
|
45
47
|
class="label-row"
|
|
@@ -68,8 +70,6 @@
|
|
|
68
70
|
</div>
|
|
69
71
|
</transition-group>
|
|
70
72
|
</div>
|
|
71
|
-
|
|
72
|
-
<!-- 编辑名称弹窗 -->
|
|
73
73
|
<div v-if="showEditDialog" class="modal-mask">
|
|
74
74
|
<div class="modal">
|
|
75
75
|
<div class="modal-title">当前视角名称</div>
|
|
@@ -78,11 +78,22 @@
|
|
|
78
78
|
v-model="editInputValue"
|
|
79
79
|
:placeholder="data.inputPlaceholder || ''"
|
|
80
80
|
/>
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
<div class="modal-actions">
|
|
82
|
+
<text class="btn cancel" @click="onEditCancel">取消</text>
|
|
83
|
+
<div class="btn-divider"></div>
|
|
84
|
+
<text class="btn confirm" @click="onEditConfirm">确认</text>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
<div v-if="showDeleteConfirm" class="modal-mask">
|
|
89
|
+
<div class="modal">
|
|
90
|
+
<div class="modal-title">温馨提示</div>
|
|
91
|
+
<div class="modal-content">删除所选关注视角后,相关的智能场景将执行失败</div>
|
|
92
|
+
<div class="modal-actions">
|
|
93
|
+
<text class="btn cancel" @click="onDeleteCancel">取消</text>
|
|
94
|
+
<div class="btn-divider"></div>
|
|
95
|
+
<text class="btn confirm" @click="onDeleteConfirmAction">确定</text>
|
|
96
|
+
</div>
|
|
86
97
|
</div>
|
|
87
98
|
</div>
|
|
88
99
|
</div>
|
|
@@ -134,6 +145,8 @@
|
|
|
134
145
|
showEditDialog: false,
|
|
135
146
|
editInputValue: '',
|
|
136
147
|
editIndex: null,
|
|
148
|
+
showDeleteConfirm: false,
|
|
149
|
+
pendingDeleteIndex: null,
|
|
137
150
|
scale: weex.config.env.scale
|
|
138
151
|
};
|
|
139
152
|
},
|
|
@@ -163,6 +176,25 @@
|
|
|
163
176
|
if (this.isTouchDragging || this.longPressTimer || this.secondLongPressTimer) return;
|
|
164
177
|
this.$emit('onClickEvent', { item, index });
|
|
165
178
|
},
|
|
179
|
+
|
|
180
|
+
requestDelete(index, item) {
|
|
181
|
+
const targetItem = this.data.list[index];
|
|
182
|
+
if (!targetItem || targetItem.deleted) return;
|
|
183
|
+
this.pendingDeleteIndex = index;
|
|
184
|
+
this.showDeleteConfirm = true;
|
|
185
|
+
},
|
|
186
|
+
|
|
187
|
+
onDeleteCancel() {
|
|
188
|
+
this.showDeleteConfirm = false;
|
|
189
|
+
this.pendingDeleteIndex = null;
|
|
190
|
+
},
|
|
191
|
+
|
|
192
|
+
onDeleteConfirmAction() {
|
|
193
|
+
if (this.pendingDeleteIndex === null) return;
|
|
194
|
+
const item = this.data.list[this.pendingDeleteIndex];
|
|
195
|
+
this.onDelete(this.pendingDeleteIndex, item);
|
|
196
|
+
this.onDeleteCancel();
|
|
197
|
+
},
|
|
166
198
|
|
|
167
199
|
onEditClick(item, index) {
|
|
168
200
|
// 点击编辑按钮:弹出编辑名称对话框
|
|
@@ -175,10 +207,58 @@
|
|
|
175
207
|
this.editInputValue = '';
|
|
176
208
|
this.editIndex = null;
|
|
177
209
|
},
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* @description 校验输入内容,仅允许中文/英文/数字,且去除前后空白。
|
|
213
|
+
* @param {string} value 当前输入值
|
|
214
|
+
* @returns {{ valid: boolean, message?: string, value?: string }}
|
|
215
|
+
*/
|
|
216
|
+
validateLabelInput(value) {
|
|
217
|
+
const trimmedValue = (value || '').trim();
|
|
218
|
+
if (!trimmedValue) {
|
|
219
|
+
return { valid: false, message: '视角名称不能为空' };
|
|
220
|
+
}
|
|
221
|
+
if (/[^a-zA-Z0-9\u4e00-\u9fa5]/.test(trimmedValue)) {
|
|
222
|
+
return { valid: false, message: '视角名称只能输入中文、英文和数字' };
|
|
223
|
+
}
|
|
224
|
+
return { valid: true, value: trimmedValue };
|
|
225
|
+
},
|
|
226
|
+
|
|
227
|
+
showToast(message) {
|
|
228
|
+
console.log(`[TOAST 提示]: ${message}`);
|
|
229
|
+
if (typeof weex !== 'undefined' && weex.requireModule('bridgeModule')) {
|
|
230
|
+
weex.requireModule('bridgeModule').toast({
|
|
231
|
+
message: message,
|
|
232
|
+
bottom: 1,
|
|
233
|
+
duration: 1.5 // 1.5s
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
|
|
178
238
|
onEditConfirm() {
|
|
239
|
+
const validation = this.validateLabelInput(this.editInputValue);
|
|
240
|
+
if (!validation.valid) {
|
|
241
|
+
this.showToast(validation.message);
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
const newLabel = validation.value;
|
|
245
|
+
|
|
246
|
+
// 3. 检查长度
|
|
247
|
+
if (newLabel.length > 8) {
|
|
248
|
+
// 长度超限:提示并阻止后续更新和关闭逻辑
|
|
249
|
+
this.showToast('限8个字符以内名称,请重新输入');
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
const duplicateExists = this.data.list && this.data.list.some((it, idx) => {
|
|
253
|
+
if (idx === this.editIndex) return false;
|
|
254
|
+
if (!it || it.deleted) return false;
|
|
255
|
+
return String(it.label || '') === newLabel;
|
|
256
|
+
});
|
|
257
|
+
if (duplicateExists) {
|
|
258
|
+
this.showToast('已存在此视角');
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
179
261
|
if (this.editIndex !== null && this.data.list && this.data.list[this.editIndex]) {
|
|
180
|
-
const newLabel = (this.editInputValue || '').trim();
|
|
181
|
-
// 更新 label
|
|
182
262
|
this.$set(this.data.list[this.editIndex], 'label', newLabel);
|
|
183
263
|
// 通知外部(可选)
|
|
184
264
|
this.$emit('onLabelEdited', { index: this.editIndex, label: newLabel, item: this.data.list[this.editIndex] });
|
|
@@ -188,16 +268,27 @@
|
|
|
188
268
|
this.editIndex = null;
|
|
189
269
|
},
|
|
190
270
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
271
|
+
/**
|
|
272
|
+
* @description 删除列表项
|
|
273
|
+
* FIX: 修复了参数顺序错误,确保传入的第一个参数是 index
|
|
274
|
+
* @param {number} index 列表项的索引
|
|
275
|
+
* @param {object} item 列表项数据
|
|
276
|
+
*/
|
|
277
|
+
onDelete(index, item) {
|
|
278
|
+
const currentItem = this.data.list[index];
|
|
279
|
+
if (!currentItem) return;
|
|
280
|
+
this.$emit('onDeleteEvent', { item: currentItem, index });
|
|
281
|
+
this.$set(currentItem, 'deleted', true);
|
|
282
|
+
this.$nextTick(this.measureItemSize);
|
|
283
|
+
},
|
|
197
284
|
|
|
198
285
|
onTouchStart(e, index) {
|
|
199
286
|
if (!e.changedTouches || e.changedTouches.length === 0) return;
|
|
200
|
-
|
|
287
|
+
const targetItem = this.data.list[index];
|
|
288
|
+
if (targetItem && targetItem.deleted) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
this.measureItemSize();
|
|
201
292
|
const touch = e.changedTouches[0];
|
|
202
293
|
this.touchStartX = touch.pageX;
|
|
203
294
|
this.touchStartY = touch.pageY;
|
|
@@ -354,7 +445,9 @@
|
|
|
354
445
|
const gridItems = Array.from(this.$el.querySelectorAll('.grid-item'));
|
|
355
446
|
let targetIndex = null;
|
|
356
447
|
for (let i = 0; i < gridItems.length; i++) {
|
|
357
|
-
|
|
448
|
+
if (i === this.draggingIndex) continue;
|
|
449
|
+
const listItem = this.data.list[i];
|
|
450
|
+
if (listItem && listItem.deleted) continue;
|
|
358
451
|
const rect = gridItems[i].getBoundingClientRect();
|
|
359
452
|
const centerX = (rect.left + rect.right) / 2;
|
|
360
453
|
const centerY = (rect.top + rect.bottom) / 2;
|
|
@@ -380,11 +473,15 @@
|
|
|
380
473
|
},
|
|
381
474
|
getListData(callback) {
|
|
382
475
|
const list = Array.isArray(this.data && this.data.list) ? this.data.list : [];
|
|
383
|
-
const arr =
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
476
|
+
const arr = [];
|
|
477
|
+
list.forEach((it) => {
|
|
478
|
+
if (!it || it.deleted) return;
|
|
479
|
+
arr.push({
|
|
480
|
+
id: String((it && (it.id != null ? it.id : '')) || ''),
|
|
481
|
+
label: String((it && (it.label != null ? it.label : '')) || ''),
|
|
482
|
+
imageSrc: (it && it.imageSrc) || ''
|
|
483
|
+
});
|
|
484
|
+
});
|
|
388
485
|
const payload = { listData: arr, list: arr };
|
|
389
486
|
if (typeof callback === 'function') {
|
|
390
487
|
try { callback(payload); } catch (e) { /* ignore */ }
|
|
@@ -471,8 +568,6 @@
|
|
|
471
568
|
flex-direction: row;
|
|
472
569
|
justify-content: center;
|
|
473
570
|
gap: 8px;
|
|
474
|
-
}
|
|
475
|
-
.edit-icon {
|
|
476
571
|
}
|
|
477
572
|
.drag-clone {
|
|
478
573
|
box-sizing: border-box;
|
|
@@ -507,6 +602,13 @@
|
|
|
507
602
|
color: #222;
|
|
508
603
|
margin: 24px 0 24px 0px;
|
|
509
604
|
text-align: center;
|
|
605
|
+
font-weight: 500;
|
|
606
|
+
}
|
|
607
|
+
.modal-content {
|
|
608
|
+
font-size: 24px;
|
|
609
|
+
color: #333;
|
|
610
|
+
text-align: center;
|
|
611
|
+
padding-bottom: 16px;
|
|
510
612
|
}
|
|
511
613
|
.modal-input {
|
|
512
614
|
width: 100%;
|
|
@@ -538,7 +640,4 @@
|
|
|
538
640
|
height: 32px;
|
|
539
641
|
background: #eee;
|
|
540
642
|
}
|
|
541
|
-
</style>
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
643
|
+
</style>
|
|
@@ -201,11 +201,11 @@ export default {
|
|
|
201
201
|
},
|
|
202
202
|
|
|
203
203
|
onStart(res) {
|
|
204
|
-
this.$emit('
|
|
204
|
+
this.$emit('start', res);
|
|
205
205
|
},
|
|
206
206
|
|
|
207
207
|
onPause(res) {
|
|
208
|
-
this.$emit('
|
|
208
|
+
this.$emit('Pause', res);
|
|
209
209
|
},
|
|
210
210
|
|
|
211
211
|
finish(res) {
|
|
@@ -213,11 +213,11 @@ export default {
|
|
|
213
213
|
},
|
|
214
214
|
|
|
215
215
|
onFail(res) {
|
|
216
|
-
this.$emit('
|
|
216
|
+
this.$emit('fail', res);
|
|
217
217
|
},
|
|
218
218
|
|
|
219
219
|
onReadyToPlay(res) {
|
|
220
|
-
this.$emit('
|
|
220
|
+
this.$emit('readyToPlay', res);
|
|
221
221
|
},
|
|
222
222
|
|
|
223
223
|
deleteVideo(res) {
|
package/src/.DS_Store
DELETED
|
Binary file
|
package/src/components/.DS_Store
DELETED
|
Binary file
|