feat: 技术支持工单/企微权限/开发版本管理/消息推送等迭代

This commit is contained in:
2026-08-04 21:32:13 +08:00
parent c8ea5a3119
commit 9d96c73246
1341 changed files with 0 additions and 195605 deletions
@@ -1,40 +0,0 @@
type WechatScanAuthModalProps = {
open: boolean;
loading?: boolean;
error?: string;
onAuthorize: () => void;
onCancel: () => void;
};
export default function WechatScanAuthModal({
open,
loading,
error,
onAuthorize,
onCancel,
}: WechatScanAuthModalProps) {
if (!open) return null;
return (
<div className="shop-scan-auth-overlay" role="dialog" aria-modal="true" aria-labelledby="shop-scan-auth-title">
<div className="shop-scan-auth-card">
<div className="shop-scan-auth-icon">
<span className="material-symbols-outlined shop-fill-icon">qr_code_scanner</span>
</div>
<h2 id="shop-scan-auth-title" className="shop-scan-auth-title"></h2>
<p className="shop-scan-auth-desc">
使使
</p>
{error && <p className="shop-scan-auth-error" role="alert">{error}</p>}
<div className="shop-scan-auth-actions">
<button type="button" className="shop-scan-auth-cancel" onClick={onCancel} disabled={loading}>
</button>
<button type="button" className="shop-scan-auth-confirm" onClick={onAuthorize} disabled={loading}>
{loading ? '跳转授权中…' : '微信授权'}
</button>
</div>
</div>
</div>
);
}