首页 > IT基础架构 > 服务器/存储 > 供应链PC实操落地实践|得物技术
来源:得物技术
目录
一、背景
二、实操模式
三、快捷码设计和使用
1. 快捷码布局
2. 快捷码的准确识别
3. 快捷码的高亮反馈
4. 快捷码打印和黏贴建议
四、问题复盘
1. 基准体验的梳理
五、实操环境检测
1. 实操环境的安装和配置
2. 实操环境检测能力的使用流程
3. 实操检测能力的技术架构
4. 实操环境的检查时机
5. 输入法的检测和自动修复
6. 统一打印组件
7. 软件更新
六、信息反馈及异常SOP
七、效率指标的定义、监控和分析
八、后续规划
一
背景


二
实操模式

三
快捷码设计和使用
快捷码布局






快捷码的准确识别

(e: KeyboardEvent) => { const enterKey = e.key === "Enter"; // @ 开头,开启一个新的快捷指令 if (e.key === "@") { e.preventDefault(); scaning.current = true; } // ... // 处理按钮输入锁定等兼容逻辑 if (scaning.current && !enterKey) { activeCode.current += String(e.key); e.preventDefault(); } else if (activeCode.current && enterKey) { scaning.current = false; // next // 快捷指令执行函数和标记高亮等 } //... // 输入解锁等能力};快捷码的高亮反馈

快捷码打印和黏贴建议

/*** 打印html片段*/export function printHTMLOutWithCSS(config: {content?: string;cssText?: string;}) {if (!config?.content) return;const cssText = config?.cssText;const iframeEle = document.createElement("iframe");iframeEle.style.display = "none";document.body.append(iframeEle);const iframeDoc =iframeEle?.contentDocument || iframeEle?.contentWindow?.document;if (iframeDoc?.body) {iframeDoc.body.innerHTML = `<style>${cssText || ""}</style>${config?.content}`;iframeEle?.contentWindow?.print();}document.body.removeChild(iframeEle);}printHTMLOutWithCSS({content: `${dom.outerHTML}<div class="qrcode-button-name">${config?.name || "-"}</div>`,cssText: STYLE_PRINT_STR,});
四
问题复盘
基准体验的梳理
五
实操环境检测
实操环境的安装和配置


实操环境检测能力的使用流程

实操检测能力的技术架构

实操环境的检查时机



输入法的检测和自动修复

// # constantconst PLAT_WIN = os.platform() === 'win32'const LANG_CONFIG = {'en-US': {name: 'en-US',code: '0409:00000409',delay: 1.5,},'zh-CN': {name: 'zh-CN',code: '0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411F-A5AC-CA038EC515D7}',delay: 1.5,},}/*** 获取shell指令集*/function getShellLangScripts({delay,name,code,}: {delay: numbername: stringcode: string}) {const tplName = name || 'en-US'const tplCode = code || '0409:00000409'const tplDelay = delay || 1.5// powershell 指令集return {// ## 脚本: 重置系统输入法为 name 如en-US,删除其他输入法,立即生效,无需切换窗口焦点// ## 优点,避免用户意外打开中文输入法,缺点,用户已有输入法被卸载RESET: [`Set-WinSystemLocale ${tplName};`,`Set-WinUserLanguageList ${tplName} -Force;`,`Set-WinDefaultInputMethodOverride -InputTip "${tplCode}";`,],// ## 脚本: 添加系统输入法 name 如en-US,合并其他输入法,立即生效,无需切换窗口焦点// ## 优点,用户已有输入法依然存在,缺点,中文输入法可能还存在于用户的输入法列表中COMPATIBLE: [`$restoreLanguageList = Get-WinUserLanguageList;`,`$restoreLanguageList.Remove("${tplName}");`,`$restoreLanguageList.Insert(0, "${tplName}");`,`Set-WinUserLanguageList ${tplName} -Force;`,// windows未开放当前窗口立即生效,这里通过hack实现`Start-Sleep -Seconds ${tplDelay};`,`Set-WinUserLanguageList -LanguageList $restoreLanguageList -Force;`,// 设置默认输入法和系统语言`Set-WinDefaultInputMethodOverride -InputTip "${tplCode}";`,`Set-WinSystemLocale zh-CN;`,// 调整语言顺序后,Win11下会将首个语言设置为展示语言,这里重置为中文`Set-WinUILanguageOverride -Language zh-CN;`,],}}/*** 添加系统输入法 en-US,合并其他输入法,立即生效,无需切换窗口焦点*/export type ActionTypeLangAdapt = 'COMPATIBLE' | 'RESET' | 'CAT'export type NameTypeLangAdapt = 'zh-CN' | 'en-US'let lockExecLang = falseexport function adaptOrCatLang(actionType?: ActionTypeLangAdapt,nameType?: NameTypeLangAdapt,delay?: string,fn?: (status: 'success' | 'failed', msg: string) => void) {if (lockExecLang) returnlockExecLang = trueconst fnAffair = (status: 'success' | 'failed', msg: string) => {fn?.(status, msg)lockExecLang = false}if (!PLAT_WIN) {fnAffair('failed', '仅支持windows系统')return}const langTplConfig = LANG_CONFIG[nameType]langTplConfig.delay = Number(delay) || langTplConfig.delayif (!langTplConfig) {fnAffair('failed', '语言类型错误')return}const shellLangScripts = getShellLangScripts(langTplConfig)switch (actionType) {case 'CAT':const out = childProcess.execSync('powershell.exe (Get-WinUserLanguageList)[0].LanguageTag;')fnAffair('success', out?.toString('utf8')?.trim() || '')breakdefault:const langScript = shellLangScripts?.[actionType]?.join('')if (langScript) {const out = childProcess.spawn(langScript, {shell: 'powershell.exe',})out.on('exit', function () {fnAffair('success', `语言切换成功(${nameType})`)})} else {fnAffair('failed', '指令类型错误')}break}}
统一打印组件

软件更新

六
信息反馈及异常SOP

七
效率指标的定义、监控和分析


八
后续规划
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70027824/viewspace-3015432/ ,如需转载,请注明出处,否则将追究法律责任。