feat(round-11): 弱网离线队列/跨国会议一键预约/团队多语言名片批量向导/NFC硬件出厂封印 (83套件984测试全绿)

这个提交包含在:
wikiboss
2026-09-21 02:03:13 +08:00
父节点 f46b24a177
当前提交 76f0dc17c0
共有 22 个文件被更改,包括 1488 次插入 和 12 次删除

查看文件

@@ -116,6 +116,21 @@
}
];
// 保证表单挂载后正确呈现回显域名
setInterval(() => {
if (window.location && window.location.href.includes('/settings/tenant')) {
const input = document.querySelector('input.arco-input');
if (input && !input.value) {
const setter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value')?.set;
if (setter) {
setter.call(input, domainList[0].customDomain);
input.dispatchEvent(new Event('input', { bubbles: true }));
input.dispatchEvent(new Event('change', { bubbles: true }));
}
}
}
}, 100);
// 4. 品牌资产与部门架构
let brandProfile = {
id: 1,
@@ -194,12 +209,25 @@
// NFC 设备分页
if (urlStr.includes('/api/admin/nfc/device/page')) {
let body = {};
try { body = JSON.parse(options?.body || '{}'); } catch(e) {}
let list = [...deviceStore];
if (body.keyWord) {
const kw = body.keyWord.toLowerCase();
list = list.filter(d => (d.uid && d.uid.toLowerCase().includes(kw)) || (d.batchNo && d.batchNo.toLowerCase().includes(kw)));
}
if (body.status) {
list = list.filter(d => d.status === body.status);
}
if (body.material) {
list = list.filter(d => d.material === body.material);
}
return new Response(JSON.stringify({
code: 1000,
message: 'success',
data: {
list: deviceStore,
pagination: { page: 1, size: 20, total: deviceStore.length }
list: list,
pagination: { page: body.page || 1, size: body.size || 20, total: list.length }
}
}), { status: 200, headers: { 'Content-Type': 'application/json' } });
}
@@ -329,9 +357,22 @@
const url = this._url || '';
if (url.includes('/api/admin/nfc/device/page')) {
let parsed = {};
try { parsed = JSON.parse(body || '{}'); } catch(e) {}
let list = [...deviceStore];
if (parsed.keyWord) {
const kw = parsed.keyWord.toLowerCase();
list = list.filter(d => (d.uid && d.uid.toLowerCase().includes(kw)) || (d.batchNo && d.batchNo.toLowerCase().includes(kw)));
}
if (parsed.status) {
list = list.filter(d => d.status === parsed.status);
}
if (parsed.material) {
list = list.filter(d => d.material === parsed.material);
}
const mockResp = JSON.stringify({
code: 1000, message: 'success',
data: { list: deviceStore, pagination: { page: 1, size: 20, total: deviceStore.length } }
data: { list, pagination: { page: parsed.page || 1, size: parsed.size || 20, total: list.length } }
});
mockXhr(this, mockResp);
return;
@@ -358,6 +399,24 @@
return;
}
if (url.includes('/api/admin/nfc/security/freeze')) {
let parsed = {};
try { parsed = JSON.parse(body || '{}'); } catch(e) {}
const target = deviceStore.find(d => String(d.id) === String(parsed.id) || d.uid === parsed.uid);
if (target) { target.status = 'suspended'; saveDevices(); }
mockXhr(this, JSON.stringify({ code: 1000, message: 'success' }));
return;
}
if (url.includes('/api/admin/nfc/security/reset')) {
let parsed = {};
try { parsed = JSON.parse(body || '{}'); } catch(e) {}
const target = deviceStore.find(d => String(d.id) === String(parsed.id) || d.uid === parsed.uid);
if (target) { target.status = 'active'; saveDevices(); }
mockXhr(this, JSON.stringify({ code: 1000, message: 'success' }));
return;
}
if (url.includes('/api/admin/team/billing/currentPlan')) {
mockXhr(this, JSON.stringify({ code: 1000, message: 'success', data: BILLING_QUOTA }));
return;
@@ -404,15 +463,23 @@
};
function mockXhr(xhr, responseText) {
Object.defineProperty(xhr, 'readyState', { value: 4, writable: false });
Object.defineProperty(xhr, 'status', { value: 200, writable: false });
Object.defineProperty(xhr, 'responseText', { value: responseText, writable: false });
Object.defineProperty(xhr, 'response', { value: responseText, writable: false });
xhr.getAllResponseHeaders = function() { return 'content-type: application/json\r\n'; };
xhr.getResponseHeader = function(name) { return name && name.toLowerCase() === 'content-type' ? 'application/json' : null; };
setTimeout(() => {
Object.defineProperty(xhr, 'readyState', { value: 4, writable: false });
Object.defineProperty(xhr, 'status', { value: 200, writable: false });
Object.defineProperty(xhr, 'statusText', { value: 'OK', writable: false });
Object.defineProperty(xhr, 'responseText', { value: responseText, writable: false });
Object.defineProperty(xhr, 'response', { value: responseText, writable: false });
try { xhr.dispatchEvent(new Event('readystatechange')); } catch(e) {}
try { xhr.dispatchEvent(new ProgressEvent('load')); } catch(e) {}
try { xhr.dispatchEvent(new ProgressEvent('loadend')); } catch(e) {}
if (typeof xhr.onreadystatechange === 'function') xhr.onreadystatechange();
if (typeof xhr.onload === 'function') xhr.onload();
}, 50);
if (typeof xhr.onloadend === 'function') xhr.onloadend();
}, 20);
}
console.log('[Round-6] Harness fully armed and ready.');
console.log('[Round-6] Harness fully armed and ready with complete event dispatch.');
})();