feat: 无扫码配置时自动匹配,并修复我的页列表样式
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* 登录后 / 冷启动:拉取扫码字典并在本地无配置时自动匹配写入
|
||||
*/
|
||||
import {
|
||||
DICTIONARY_TYPE_SCANNER,
|
||||
autoConfigureScanSettings,
|
||||
} from '@/common/scanConfig.js';
|
||||
|
||||
function extractDictionaryList(res) {
|
||||
if (Array.isArray(res)) return res;
|
||||
if (res && Array.isArray(res.list)) return res.list;
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} api - this.$u.api
|
||||
* @returns {Promise<{saved:boolean,skipped:boolean,config:object|null,reason?:string}>}
|
||||
*/
|
||||
export async function ensureScanConfigAfterLogin(api) {
|
||||
if (!api || !api.dictionary || !api.dictionary.getDetailEnumList) {
|
||||
return autoConfigureScanSettings({ remoteConfigs: [] });
|
||||
}
|
||||
|
||||
let remoteConfigs = [];
|
||||
try {
|
||||
const res = await api.dictionary.getDetailEnumList({
|
||||
dictionary_id: DICTIONARY_TYPE_SCANNER,
|
||||
});
|
||||
remoteConfigs = extractDictionaryList(res);
|
||||
} catch (error) {
|
||||
console.log('拉取扫码字典失败,改用内置配置自动匹配', error);
|
||||
}
|
||||
|
||||
const result = autoConfigureScanSettings({ remoteConfigs });
|
||||
if (result.skipped) {
|
||||
console.log('本地已有扫码设置,跳过自动匹配', result.config && result.config.name);
|
||||
} else if (result.saved) {
|
||||
console.log('已自动写入扫码设置', result.config && result.config.name);
|
||||
} else {
|
||||
console.log('自动匹配扫码设置未写入', result.reason);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user