diff --git a/docs/prototype/call-tree/openpencil/build.js b/docs/prototype/call-tree/openpencil/build.js new file mode 100644 index 0000000..8ac920a --- /dev/null +++ b/docs/prototype/call-tree/openpencil/build.js @@ -0,0 +1,771 @@ +// 调用树原型。颜色:代码阅读暗色种类色(codeReader.css)叠在 VS Code Dark Modern 的编辑器底上。 +// 要确认的事:点函数或类卡片右上角,调用树用弹框盖在预览上,预览不换掉。通向当前块的路径亮着;多棵树在弹框里切换。 + +const UI = "Noto Sans SC"; +const MONO = "Menlo"; + +const C = { + bg: "#1F1F1F", + side: "#181818", + fg: "#CCCCCC", + muted: "#9D9D9D", + dim: "#6E6E6E", + line: "#2B2B2B", + guide: "#3C3C3C", + tab: "#181818", + selected: "#04395E", + chip: "#313131", + chipLine: "#3C3C3C", + focus: "#007FD4", + badge: "#0078D4", + white: "#FFFFFF", + ink: "#1F1F1F", +}; + +// 函数种类 #DCDCAA、类种类 #4EC9B0,按阅读器卡片的 7% 底、35% 边,当前块加到 14% 底、实色边。 +const FN = { bg: "#2C2C29", bd: "#616150", hot: "#3A3A32", ink: "#DCDCAA" }; +const CLS = { bg: "#222B29", bd: "#305A52", hot: "#263733", ink: "#4EC9B0" }; + +const solid = (color) => [{ type: "solid", color }]; + +const TREES = [ + { label: "读取用户资料", count: 2 }, + { label: "导出通讯录", count: 1 }, + { label: "夜间对账", count: 1 }, +]; + +const PHONE = { + name: "GET /users/me", + icon: "route", + desc: "入口", + loc: "routes/user.py", + on: true, + children: [ + { + name: "get_profile", + icon: "braces", + desc: "读取当前用户", + loc: "services/user.py", + on: true, + children: [ + { + name: "serialize_user", + icon: "braces", + desc: "写成接口响应", + loc: "services/user.py", + on: true, + children: [ + { + name: "mask_phone", + icon: "braces", + desc: "手机号打星", + loc: "utils/phone.py:28", + on: true, + current: true, + }, + { folded: "另外 1 处调用" }, + ], + }, + { + name: "load_user", + icon: "braces", + desc: "从库里取出用户", + loc: "services/user.py", + on: true, + children: [ + { + name: "mask_phone", + icon: "braces", + desc: "手机号打星", + loc: "utils/phone.py:28", + on: true, + current: true, + }, + ], + }, + { folded: "另外 2 处调用" }, + ], + }, + ], +}; + +const ORDER = { + name: "POST /orders", + icon: "route", + desc: "入口", + loc: "routes/order.py", + on: true, + children: [ + { + name: "create_order", + icon: "braces", + desc: "创建一笔订单", + loc: "billing/order.py", + on: true, + children: [ + { + name: "新建 OrderService", + icon: "box", + desc: "进入这个类", + loc: "billing/order.py:40", + on: true, + children: [ + { + name: "OrderService", + icon: "box", + desc: "订单结算", + loc: "billing/order.py:14", + on: true, + current: true, + children: [{ folded: "4 个方法不在这条路径上" }], + }, + ], + }, + ], + }, + ], +}; + +const SINGLE = { + name: "夜间对账", + icon: "route", + desc: "入口", + loc: "jobs/audit.py", + on: true, + children: [ + { + name: "run_audit", + icon: "braces", + desc: "跑一遍对账", + loc: "jobs/audit.py", + on: true, + children: [ + { + name: "mask_phone", + icon: "braces", + desc: "手机号打星", + loc: "utils/phone.py:28", + on: true, + current: true, + }, + ], + }, + ], +}; + +function text(parent, content, opts) { + return I(parent, Object.assign({ + type: "text", + content, + fontFamily: UI, + fontSize: 13, + fontWeight: 400, + fill: solid(C.fg), + textGrowth: "auto", + lineHeight: 1.3, + }, opts)); +} + +function icon(parent, name, color) { + return I(parent, { + type: "icon_font", + iconFontName: name, + width: 14, + height: 14, + fill: solid(color), + }); +} + +function tool(parent, name, badge, on) { + const props = { + type: "frame", + layout: "horizontal", + width: "fit_content", + height: 20, + padding: [0, 4], + gap: 1, + alignItems: "center", + cornerRadius: 4, + }; + if (on) props.fill = solid(C.selected); + const btn = I(parent, props); + icon(btn, name, on ? C.white : C.muted); + if (badge) { + const mark = I(btn, { + type: "frame", + layout: "horizontal", + width: 14, + height: 14, + cornerRadius: 7, + alignItems: "center", + justifyContent: "center", + fill: solid(C.badge), + }); + text(mark, badge, { fontSize: 9, fontWeight: 700, fill: solid(C.white) }); + } + return btn; +} + +function nodeRow(parent, node, depth, tone) { + const row = I(parent, { + type: "frame", + name: node.folded || node.name, + layout: "horizontal", + width: "fill_container", + height: "fit_content", + padding: [0, 0, 0, depth * 22], + gap: 8, + alignItems: "center", + }); + I(row, { + type: "rectangle", + width: 2, + height: node.folded ? 16 : 44, + cornerRadius: 1, + fill: solid(node.on ? tone.ink : C.guide), + }); + if (node.folded) { + text(row, node.folded, { fontSize: 12, fill: solid(C.dim) }); + return; + } + const card = I(row, { + type: "frame", + layout: "vertical", + width: "fill_container", + height: "fit_content", + padding: [7, 10], + gap: 2, + cornerRadius: 8, + fill: solid(node.current ? tone.hot : tone.bg), + stroke: { + thickness: 1, + align: "inside", + fill: solid(node.current ? tone.ink : tone.bd), + }, + }); + const top = I(card, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: "fit_content", + gap: 8, + alignItems: "center", + }); + icon(top, node.icon, tone.ink); + text(top, node.name, { fontFamily: MONO, fontSize: 13, fontWeight: 600, fill: solid(tone.ink) }); + I(top, { type: "frame", width: "fill_container", height: 1 }); + if (node.current) { + const pill = I(top, { + type: "frame", + layout: "horizontal", + height: 18, + padding: [0, 6], + cornerRadius: 9, + alignItems: "center", + fill: solid(tone.ink), + }); + text(pill, "当前", { fontSize: 11, fontWeight: 600, fill: solid(C.ink) }); + } + const sub = I(card, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: "fit_content", + gap: 8, + alignItems: "center", + }); + text(sub, node.desc, { fontSize: 12, fill: solid(C.muted) }); + text(sub, node.loc, { fontFamily: MONO, fontSize: 11, fill: solid(C.dim) }); +} + +function walk(parent, node, depth, tone) { + nodeRow(parent, node, depth, tone); + for (const child of node.children || []) walk(parent, child, depth + 1, tone); +} + +function editor(parent, spec) { + const shell = I(parent, { + type: "frame", + x: spec.x, + y: spec.y, + layout: "horizontal", + width: spec.width, + height: spec.height, + fill: solid(C.bg), + clipContent: true, + }); + if (spec.sideWidth) { + const side = I(shell, { + type: "frame", + layout: "vertical", + width: spec.sideWidth, + height: "fill_container", + fill: solid(C.side), + }); + const sideHead = I(side, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: 35, + padding: [0, 12], + alignItems: "center", + }); + text(sideHead, "资源管理器", { fontSize: 11, fill: solid(C.muted) }); + for (const file of spec.files) fileRow(side, file.label, file.depth, file.on); + } + const main = I(shell, { + type: "frame", + layout: "vertical", + width: "fill_container", + height: "fill_container", + fill: solid(C.bg), + }); + const tabs = I(main, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: 35, + padding: [0, 0, 0, 8], + alignItems: "end", + fill: solid(C.tab), + }); + const tab = I(tabs, { + type: "frame", + layout: "horizontal", + height: 35, + padding: [0, 12], + gap: 8, + alignItems: "center", + fill: solid(C.bg), + }); + text(tab, spec.tab, { fontSize: 13 }); + icon(tab, "x", C.dim); + I(main, { type: "rectangle", width: "fill_container", height: 1, fill: solid(C.line) }); + const page = I(main, { + type: "frame", + layout: "vertical", + width: "fill_container", + height: "fit_content", + padding: 16, + gap: 8, + }); + for (const card of spec.cards) readerCard(page, card); +} + +function dialogBody(dialog, spec) { + const bar = I(dialog, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: 44, + padding: [0, 14], + gap: 8, + alignItems: "center", + fill: solid("#2D2D2D"), + }); + text(bar, "调用树", { fontSize: 13, fontWeight: 600 }); + text(bar, spec.symbol, { fontFamily: MONO, fontSize: 13, fontWeight: 600, fill: solid(spec.tone.ink) }); + text(bar, spec.where, { fontFamily: MONO, fontSize: 11, fill: solid(C.dim) }); + I(bar, { type: "frame", width: "fill_container", height: 1 }); + icon(bar, "x", C.muted); + I(dialog, { type: "rectangle", width: "fill_container", height: 1, fill: solid(C.line) }); + if (spec.chips) { + const chips = I(dialog, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: "fit_content", + padding: [12, 16, 4, 16], + gap: 8, + alignItems: "center", + }); + for (const chip of spec.chips) { + const box = I(chips, { + type: "frame", + layout: "horizontal", + height: 28, + padding: [0, 10], + gap: 6, + alignItems: "center", + cornerRadius: 6, + fill: solid(chip.on ? C.selected : C.chip), + stroke: { thickness: 1, align: "inside", fill: solid(chip.on ? C.focus : C.chipLine) }, + }); + text(box, chip.label, { fontSize: 12, fontWeight: chip.on ? 600 : 400, fill: solid(chip.on ? C.white : C.fg) }); + text(box, chip.count + " 处", { fontSize: 11, fill: solid(chip.on ? "#9CDCFF" : C.dim) }); + } + } + const body = I(dialog, { + type: "frame", + layout: "vertical", + width: "fill_container", + height: "fit_content", + padding: [12, 16, 20, 16], + gap: 6, + }); + walk(body, spec.tree, 0, spec.tone); +} + +function treeBoard(spec) { + const editorW = spec.width - spec.sideWidth; + const stageH = spec.height - 36; + const root = I(null, { + type: "frame", + name: spec.name, + x: spec.x, + y: 0, + layout: "horizontal", + width: spec.width, + height: spec.height, + fill: solid(C.bg), + clipContent: true, + }); + if (spec.sideWidth) { + const side = I(root, { + type: "frame", + layout: "vertical", + width: spec.sideWidth, + height: "fill_container", + fill: solid(C.side), + }); + const sideHead = I(side, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: 35, + padding: [0, 12], + alignItems: "center", + }); + text(sideHead, "资源管理器", { fontSize: 11, fill: solid(C.muted) }); + for (const file of spec.files) fileRow(side, file.label, file.depth, file.on); + } + const main = I(root, { + type: "frame", + layout: "vertical", + width: "fill_container", + height: "fill_container", + fill: solid(C.bg), + }); + const tabs = I(main, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: 35, + padding: [0, 0, 0, 8], + alignItems: "end", + fill: solid(C.tab), + }); + const tab = I(tabs, { + type: "frame", + layout: "horizontal", + height: 35, + padding: [0, 12], + gap: 8, + alignItems: "center", + fill: solid(C.bg), + }); + text(tab, spec.tab, { fontSize: 13 }); + icon(tab, "x", C.dim); + I(main, { type: "rectangle", width: "fill_container", height: 1, fill: solid(C.line) }); + const stage = I(main, { + type: "frame", + layout: "none", + width: "fill_container", + height: stageH, + fill: solid(C.bg), + }); + const dialog = I(stage, { + type: "frame", + name: "弹框", + x: spec.dialogX, + y: spec.dialogY, + layout: "vertical", + width: spec.dialogW, + height: "fit_content", + cornerRadius: 8, + clipContent: true, + fill: solid("#252526"), + stroke: { thickness: 1, align: "inside", fill: solid("#454545") }, + effects: [{ type: "shadow", offsetX: 0, offsetY: 16, blur: 40, color: "rgba(0,0,0,0.5)" }], + }); + dialogBody(dialog, spec); + I(stage, { + type: "rectangle", + name: "遮罩", + x: 0, + y: 0, + width: editorW, + height: stageH, + fill: solid("#000000"), + opacity: 0.55, + }); + const page = I(stage, { + type: "frame", + x: 16, + y: 16, + layout: "vertical", + width: editorW - 32, + height: "fit_content", + gap: 8, + }); + for (const card of spec.cards) readerCard(page, card); + return root; +} + +function readerCard(parent, spec) { + const card = I(parent, { + type: "frame", + name: spec.symbol, + layout: "horizontal", + width: "fill_container", + height: "fit_content", + padding: [8, 10, 8, 8], + gap: 8, + alignItems: "start", + cornerRadius: 8, + fill: solid(spec.tone.bg), + stroke: { thickness: 1, align: "inside", fill: solid(spec.tone.bd) }, + }); + icon(card, "chevron-down", C.muted); + icon(card, spec.icon, spec.tone.ink); + const body = I(card, { + type: "frame", + layout: "vertical", + width: "fill_container", + height: "fit_content", + gap: 4, + }); + text(body, spec.symbol, { fontFamily: MONO, fontSize: 13, fontWeight: 600, fill: solid(spec.tone.ink) }); + text(body, spec.desc, { fontSize: 13, fill: solid(C.fg) }); + text(body, spec.loc, { fontFamily: MONO, fontSize: 11, fill: solid(C.dim) }); + const tools = I(card, { + type: "frame", + layout: "horizontal", + width: "fit_content", + height: 20, + gap: 2, + alignItems: "center", + }); + tool(tools, "message-square-text"); + tool(tools, "sparkles"); + tool(tools, "pencil"); + tool(tools, "git-branch", spec.badge, spec.open); +} + +function fileRow(parent, label, depth, on) { + const row = I(parent, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: 26, + padding: [0, 8, 0, 8 + depth * 14], + gap: 6, + alignItems: "center", + fill: solid(on ? C.selected : C.side), + }); + text(row, label, { fontSize: 13, fill: solid(on ? C.white : C.fg) }); +} + +function readerBoard() { + const root = I(null, { + type: "frame", + name: "代码阅读 · 卡片入口", + x: 0, + y: 0, + layout: "horizontal", + width: 1040, + height: 220, + fill: solid(C.bg), + clipContent: true, + }); + const side = I(root, { + type: "frame", + layout: "vertical", + width: 220, + height: "fill_container", + fill: solid(C.side), + }); + const sideHead = I(side, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: 35, + padding: [0, 12], + alignItems: "center", + }); + text(sideHead, "资源管理器", { fontSize: 11, fill: solid(C.muted) }); + fileRow(side, "superwork", 0, false); + fileRow(side, "routes", 1, false); + fileRow(side, "services", 1, false); + fileRow(side, "utils", 1, false); + fileRow(side, "phone.py", 2, true); + + const main = I(root, { + type: "frame", + layout: "vertical", + width: "fill_container", + height: "fit_content", + fill: solid(C.bg), + }); + const tabs = I(main, { + type: "frame", + layout: "horizontal", + width: "fill_container", + height: 35, + padding: [0, 0, 0, 8], + alignItems: "end", + fill: solid(C.tab), + }); + const tab = I(tabs, { + type: "frame", + layout: "horizontal", + height: 35, + padding: [0, 12], + gap: 8, + alignItems: "center", + fill: solid(C.bg), + }); + text(tab, "phone.py", { fontSize: 13 }); + icon(tab, "x", C.dim); + I(main, { type: "rectangle", width: "fill_container", height: 1, fill: solid(C.line) }); + const page = I(main, { + type: "frame", + layout: "vertical", + width: "fill_container", + height: "fit_content", + padding: 16, + gap: 8, + }); + readerCard(page, { + symbol: "mask_phone", + icon: "braces", + desc: "把手机号中间四位换成星号", + loc: "utils/phone.py:28", + tone: FN, + badge: "3", + }); + readerCard(page, { + symbol: "mask_email", + icon: "braces", + desc: "把邮箱用户名打成星号", + loc: "utils/phone.py:41", + tone: FN, + badge: "1", + }); + return root; +} + +const PHONE_FILES = [ + { label: "superwork", depth: 0 }, + { label: "routes", depth: 1 }, + { label: "services", depth: 1 }, + { label: "utils", depth: 1 }, + { label: "phone.py", depth: 2, on: true }, +]; +const PHONE_CARDS = [ + { + symbol: "mask_phone", + icon: "braces", + desc: "把手机号中间四位换成星号", + loc: "utils/phone.py:28", + tone: FN, + badge: "3", + open: true, + }, + { + symbol: "mask_email", + icon: "braces", + desc: "把邮箱用户名打成星号", + loc: "utils/phone.py:41", + tone: FN, + badge: "1", + }, +]; + +readerBoard(); +treeBoard({ + name: "调用树 · 弹框,多棵", + x: 1120, + width: 1040, + height: 720, + sideWidth: 220, + dialogX: 28, + dialogY: 28, + dialogW: 764, + tab: "phone.py", + files: PHONE_FILES, + cards: PHONE_CARDS, + symbol: "mask_phone", + where: "utils/phone.py:28", + tone: FN, + chips: TREES.map((tree, index) => Object.assign({ on: index === 0 }, tree)), + tree: PHONE, +}); +treeBoard({ + name: "调用树 · 弹框,类", + x: 2240, + width: 1040, + height: 640, + sideWidth: 220, + dialogX: 28, + dialogY: 28, + dialogW: 764, + tab: "order.py", + files: [ + { label: "superwork", depth: 0 }, + { label: "billing", depth: 1 }, + { label: "order.py", depth: 2, on: true }, + ], + cards: [{ + symbol: "OrderService", + icon: "box", + desc: "订单结算", + loc: "billing/order.py:14", + tone: CLS, + badge: "2", + open: true, + }], + symbol: "OrderService", + where: "billing/order.py:14", + tone: CLS, + chips: [ + { label: "创建订单", count: 1, on: true }, + { label: "补开发票", count: 1, on: false }, + ], + tree: ORDER, +}); +treeBoard({ + name: "调用树 · 弹框,只有一棵", + x: 3360, + width: 1040, + height: 560, + sideWidth: 220, + dialogX: 28, + dialogY: 28, + dialogW: 764, + tab: "phone.py", + files: PHONE_FILES, + cards: PHONE_CARDS, + symbol: "mask_phone", + where: "utils/phone.py:28", + tone: FN, + tree: SINGLE, +}); +treeBoard({ + name: "调用树 · 弹框,窄窗口", + x: 4480, + width: 640, + height: 720, + sideWidth: 0, + dialogX: 20, + dialogY: 20, + dialogW: 600, + tab: "phone.py", + files: [], + cards: PHONE_CARDS, + symbol: "mask_phone", + where: "utils/phone.py:28", + tone: FN, + chips: TREES.map((tree, index) => Object.assign({ on: index === 0 }, tree)), + tree: PHONE, +}); diff --git a/docs/prototype/call-tree/openpencil/call-tree.op b/docs/prototype/call-tree/openpencil/call-tree.op new file mode 100644 index 0000000..d9f5ccb --- /dev/null +++ b/docs/prototype/call-tree/openpencil/call-tree.op @@ -0,0 +1,9081 @@ +{ + "version": "0.8.4", + "name": "OpenPencil CLI Session", + "children": [ + { + "type": "frame", + "id": "n1", + "name": "代码阅读 · 卡片入口", + "x": 0.0, + "y": 0.0, + "width": 1040.0, + "height": 220.0, + "layout": "horizontal", + "clipContent": true, + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n2", + "width": 220.0, + "height": "fill_container", + "layout": "vertical", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "frame", + "id": "n3", + "width": "fill_container", + "height": 35.0, + "layout": "horizontal", + "padding": [ + 0.0, + 12.0 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n4", + "width": "fit_content", + "height": "fit_content", + "content": "资源管理器", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n5", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 8.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n6", + "width": "fit_content", + "height": "fit_content", + "content": "superwork", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n7", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n8", + "width": "fit_content", + "height": "fit_content", + "content": "routes", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n9", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n10", + "width": "fit_content", + "height": "fit_content", + "content": "services", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n11", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n12", + "width": "fit_content", + "height": "fit_content", + "content": "utils", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n13", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 36.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "children": [ + { + "type": "text", + "id": "n14", + "width": "fit_content", + "height": "fit_content", + "content": "phone.py", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n15", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n16", + "width": "fill_container", + "height": 35.0, + "layout": "horizontal", + "padding": [ + 0.0, + 0.0, + 0.0, + 8.0 + ], + "alignItems": "end", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "frame", + "id": "n17", + "height": 35.0, + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 12.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "text", + "id": "n18", + "width": "fit_content", + "height": "fit_content", + "content": "phone.py", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "icon_font", + "id": "n19", + "iconFontName": "x", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n20", + "width": "fill_container", + "height": 1.0, + "fill": [ + { + "type": "solid", + "color": "#2B2B2B" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n21", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 8.0, + "padding": 16.0, + "children": [ + { + "type": "frame", + "id": "n22", + "name": "mask_phone", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 8.0, + 10.0, + 8.0, + 8.0 + ], + "alignItems": "start", + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "icon_font", + "id": "n23", + "iconFontName": "chevron-down", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "icon_font", + "id": "n24", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n25", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 4.0, + "children": [ + { + "type": "text", + "id": "n26", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n27", + "width": "fit_content", + "height": "fit_content", + "content": "把手机号中间四位换成星号", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n28", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n29", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 2.0, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n30", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n31", + "iconFontName": "message-square-text", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n32", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n33", + "iconFontName": "sparkles", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n34", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n35", + "iconFontName": "pencil", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n36", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n37", + "iconFontName": "git-branch", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "frame", + "id": "n38", + "width": 14.0, + "height": 14.0, + "layout": "horizontal", + "justifyContent": "center", + "alignItems": "center", + "cornerRadius": 7.0, + "fill": [ + { + "type": "solid", + "color": "#0078D4" + } + ], + "children": [ + { + "type": "text", + "id": "n39", + "width": "fit_content", + "height": "fit_content", + "content": "3", + "fontFamily": "Noto Sans SC", + "fontSize": 9.0, + "fontWeight": 700, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n40", + "name": "mask_email", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 8.0, + 10.0, + 8.0, + 8.0 + ], + "alignItems": "start", + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "icon_font", + "id": "n41", + "iconFontName": "chevron-down", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "icon_font", + "id": "n42", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n43", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 4.0, + "children": [ + { + "type": "text", + "id": "n44", + "width": "fit_content", + "height": "fit_content", + "content": "mask_email", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n45", + "width": "fit_content", + "height": "fit_content", + "content": "把邮箱用户名打成星号", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n46", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:41", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n47", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 2.0, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n48", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n49", + "iconFontName": "message-square-text", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n50", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n51", + "iconFontName": "sparkles", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n52", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n53", + "iconFontName": "pencil", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n54", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n55", + "iconFontName": "git-branch", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "frame", + "id": "n56", + "width": 14.0, + "height": 14.0, + "layout": "horizontal", + "justifyContent": "center", + "alignItems": "center", + "cornerRadius": 7.0, + "fill": [ + { + "type": "solid", + "color": "#0078D4" + } + ], + "children": [ + { + "type": "text", + "id": "n57", + "width": "fit_content", + "height": "fit_content", + "content": "1", + "fontFamily": "Noto Sans SC", + "fontSize": 9.0, + "fontWeight": 700, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n58", + "name": "调用树 · 弹框,多棵", + "x": 1120.0, + "y": 0.0, + "width": 1040.0, + "height": 720.0, + "layout": "horizontal", + "clipContent": true, + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n59", + "width": 220.0, + "height": "fill_container", + "layout": "vertical", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "frame", + "id": "n60", + "width": "fill_container", + "height": 35.0, + "layout": "horizontal", + "padding": [ + 0.0, + 12.0 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n61", + "width": "fit_content", + "height": "fit_content", + "content": "资源管理器", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n62", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 8.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n63", + "width": "fit_content", + "height": "fit_content", + "content": "superwork", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n64", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n65", + "width": "fit_content", + "height": "fit_content", + "content": "routes", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n66", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n67", + "width": "fit_content", + "height": "fit_content", + "content": "services", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n68", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n69", + "width": "fit_content", + "height": "fit_content", + "content": "utils", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n70", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 36.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "children": [ + { + "type": "text", + "id": "n71", + "width": "fit_content", + "height": "fit_content", + "content": "phone.py", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n72", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n73", + "width": "fill_container", + "height": 35.0, + "layout": "horizontal", + "padding": [ + 0.0, + 0.0, + 0.0, + 8.0 + ], + "alignItems": "end", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "frame", + "id": "n74", + "height": 35.0, + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 12.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "text", + "id": "n75", + "width": "fit_content", + "height": "fit_content", + "content": "phone.py", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "icon_font", + "id": "n76", + "iconFontName": "x", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n77", + "width": "fill_container", + "height": 1.0, + "fill": [ + { + "type": "solid", + "color": "#2B2B2B" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n78", + "width": "fill_container", + "height": 684.0, + "layout": "none", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n79", + "name": "弹框", + "x": 28.0, + "y": 28.0, + "width": 764.0, + "height": "fit_content", + "layout": "vertical", + "clipContent": true, + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#252526" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#454545" + } + ] + }, + "effects": [ + { + "type": "shadow", + "offsetX": 0.0, + "offsetY": 16.0, + "blur": 40.0, + "spread": 0.0, + "color": "rgba(0,0,0,0.5)" + } + ], + "children": [ + { + "type": "frame", + "id": "n80", + "width": "fill_container", + "height": 44.0, + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 14.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#2D2D2D" + } + ], + "children": [ + { + "type": "text", + "id": "n81", + "width": "fit_content", + "height": "fit_content", + "content": "调用树", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n82", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n83", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + }, + { + "type": "frame", + "id": "n84", + "width": "fill_container", + "height": 1.0, + "children": [] + }, + { + "type": "icon_font", + "id": "n85", + "iconFontName": "x", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n86", + "width": "fill_container", + "height": 1.0, + "fill": [ + { + "type": "solid", + "color": "#2B2B2B" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n87", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 12.0, + 16.0, + 4.0, + 16.0 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n88", + "height": 28.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 10.0 + ], + "alignItems": "center", + "cornerRadius": 6.0, + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#007FD4" + } + ] + }, + "children": [ + { + "type": "text", + "id": "n89", + "width": "fit_content", + "height": "fit_content", + "content": "读取用户资料", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + }, + { + "type": "text", + "id": "n90", + "width": "fit_content", + "height": "fit_content", + "content": "2 处", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9CDCFF" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n91", + "height": 28.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 10.0 + ], + "alignItems": "center", + "cornerRadius": 6.0, + "fill": [ + { + "type": "solid", + "color": "#313131" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#3C3C3C" + } + ] + }, + "children": [ + { + "type": "text", + "id": "n92", + "width": "fit_content", + "height": "fit_content", + "content": "导出通讯录", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n93", + "width": "fit_content", + "height": "fit_content", + "content": "1 处", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n94", + "height": 28.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 10.0 + ], + "alignItems": "center", + "cornerRadius": 6.0, + "fill": [ + { + "type": "solid", + "color": "#313131" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#3C3C3C" + } + ] + }, + "children": [ + { + "type": "text", + "id": "n95", + "width": "fit_content", + "height": "fit_content", + "content": "夜间对账", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n96", + "width": "fit_content", + "height": "fit_content", + "content": "1 处", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n97", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 6.0, + "padding": [ + 12.0, + 16.0, + 20.0, + 16.0 + ], + "children": [ + { + "type": "frame", + "id": "n98", + "name": "GET /users/me", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n99", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n100", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n101", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n102", + "iconFontName": "route", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n103", + "width": "fit_content", + "height": "fit_content", + "content": "GET /users/me", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n104", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n105", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n106", + "width": "fit_content", + "height": "fit_content", + "content": "入口", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n107", + "width": "fit_content", + "height": "fit_content", + "content": "routes/user.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n108", + "name": "get_profile", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n109", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n110", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n111", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n112", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n113", + "width": "fit_content", + "height": "fit_content", + "content": "get_profile", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n114", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n115", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n116", + "width": "fit_content", + "height": "fit_content", + "content": "读取当前用户", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n117", + "width": "fit_content", + "height": "fit_content", + "content": "services/user.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n118", + "name": "serialize_user", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 44.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n119", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n120", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n121", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n122", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n123", + "width": "fit_content", + "height": "fit_content", + "content": "serialize_user", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n124", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n125", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n126", + "width": "fit_content", + "height": "fit_content", + "content": "写成接口响应", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n127", + "width": "fit_content", + "height": "fit_content", + "content": "services/user.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n128", + "name": "mask_phone", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 66.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n129", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n130", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#3A3A32" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n131", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n132", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n133", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n134", + "width": "fill_container", + "height": 1.0, + "children": [] + }, + { + "type": "frame", + "id": "n135", + "height": 18.0, + "layout": "horizontal", + "padding": [ + 0.0, + 6.0 + ], + "alignItems": "center", + "cornerRadius": 9.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [ + { + "type": "text", + "id": "n136", + "width": "fit_content", + "height": "fit_content", + "content": "当前", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n137", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n138", + "width": "fit_content", + "height": "fit_content", + "content": "手机号打星", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n139", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n140", + "name": "另外 1 处调用", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 66.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n141", + "width": 2.0, + "height": 16.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#3C3C3C" + } + ], + "children": [] + }, + { + "type": "text", + "id": "n142", + "width": "fit_content", + "height": "fit_content", + "content": "另外 1 处调用", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n143", + "name": "load_user", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 44.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n144", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n145", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n146", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n147", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n148", + "width": "fit_content", + "height": "fit_content", + "content": "load_user", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n149", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n150", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n151", + "width": "fit_content", + "height": "fit_content", + "content": "从库里取出用户", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n152", + "width": "fit_content", + "height": "fit_content", + "content": "services/user.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n153", + "name": "mask_phone", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 66.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n154", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n155", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#3A3A32" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n156", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n157", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n158", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n159", + "width": "fill_container", + "height": 1.0, + "children": [] + }, + { + "type": "frame", + "id": "n160", + "height": 18.0, + "layout": "horizontal", + "padding": [ + 0.0, + 6.0 + ], + "alignItems": "center", + "cornerRadius": 9.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [ + { + "type": "text", + "id": "n161", + "width": "fit_content", + "height": "fit_content", + "content": "当前", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n162", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n163", + "width": "fit_content", + "height": "fit_content", + "content": "手机号打星", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n164", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n165", + "name": "另外 2 处调用", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 44.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n166", + "width": 2.0, + "height": 16.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#3C3C3C" + } + ], + "children": [] + }, + { + "type": "text", + "id": "n167", + "width": "fit_content", + "height": "fit_content", + "content": "另外 2 处调用", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n168", + "name": "遮罩", + "x": 0.0, + "y": 0.0, + "opacity": 0.55, + "width": 820.0, + "height": 684.0, + "fill": [ + { + "type": "solid", + "color": "#000000" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n169", + "x": 16.0, + "y": 16.0, + "width": 788.0, + "height": "fit_content", + "layout": "vertical", + "gap": 8.0, + "children": [ + { + "type": "frame", + "id": "n170", + "name": "mask_phone", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 8.0, + 10.0, + 8.0, + 8.0 + ], + "alignItems": "start", + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "icon_font", + "id": "n171", + "iconFontName": "chevron-down", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "icon_font", + "id": "n172", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n173", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 4.0, + "children": [ + { + "type": "text", + "id": "n174", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n175", + "width": "fit_content", + "height": "fit_content", + "content": "把手机号中间四位换成星号", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n176", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n177", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 2.0, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n178", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n179", + "iconFontName": "message-square-text", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n180", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n181", + "iconFontName": "sparkles", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n182", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n183", + "iconFontName": "pencil", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n184", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "children": [ + { + "type": "icon_font", + "id": "n185", + "iconFontName": "git-branch", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + }, + { + "type": "frame", + "id": "n186", + "width": 14.0, + "height": 14.0, + "layout": "horizontal", + "justifyContent": "center", + "alignItems": "center", + "cornerRadius": 7.0, + "fill": [ + { + "type": "solid", + "color": "#0078D4" + } + ], + "children": [ + { + "type": "text", + "id": "n187", + "width": "fit_content", + "height": "fit_content", + "content": "3", + "fontFamily": "Noto Sans SC", + "fontSize": 9.0, + "fontWeight": 700, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n188", + "name": "mask_email", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 8.0, + 10.0, + 8.0, + 8.0 + ], + "alignItems": "start", + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "icon_font", + "id": "n189", + "iconFontName": "chevron-down", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "icon_font", + "id": "n190", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n191", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 4.0, + "children": [ + { + "type": "text", + "id": "n192", + "width": "fit_content", + "height": "fit_content", + "content": "mask_email", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n193", + "width": "fit_content", + "height": "fit_content", + "content": "把邮箱用户名打成星号", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n194", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:41", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n195", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 2.0, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n196", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n197", + "iconFontName": "message-square-text", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n198", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n199", + "iconFontName": "sparkles", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n200", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n201", + "iconFontName": "pencil", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n202", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n203", + "iconFontName": "git-branch", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "frame", + "id": "n204", + "width": 14.0, + "height": 14.0, + "layout": "horizontal", + "justifyContent": "center", + "alignItems": "center", + "cornerRadius": 7.0, + "fill": [ + { + "type": "solid", + "color": "#0078D4" + } + ], + "children": [ + { + "type": "text", + "id": "n205", + "width": "fit_content", + "height": "fit_content", + "content": "1", + "fontFamily": "Noto Sans SC", + "fontSize": 9.0, + "fontWeight": 700, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n206", + "name": "调用树 · 弹框,类", + "x": 2240.0, + "y": 0.0, + "width": 1040.0, + "height": 640.0, + "layout": "horizontal", + "clipContent": true, + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n207", + "width": 220.0, + "height": "fill_container", + "layout": "vertical", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "frame", + "id": "n208", + "width": "fill_container", + "height": 35.0, + "layout": "horizontal", + "padding": [ + 0.0, + 12.0 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n209", + "width": "fit_content", + "height": "fit_content", + "content": "资源管理器", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n210", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 8.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n211", + "width": "fit_content", + "height": "fit_content", + "content": "superwork", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n212", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n213", + "width": "fit_content", + "height": "fit_content", + "content": "billing", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n214", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 36.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "children": [ + { + "type": "text", + "id": "n215", + "width": "fit_content", + "height": "fit_content", + "content": "order.py", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n216", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n217", + "width": "fill_container", + "height": 35.0, + "layout": "horizontal", + "padding": [ + 0.0, + 0.0, + 0.0, + 8.0 + ], + "alignItems": "end", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "frame", + "id": "n218", + "height": 35.0, + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 12.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "text", + "id": "n219", + "width": "fit_content", + "height": "fit_content", + "content": "order.py", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "icon_font", + "id": "n220", + "iconFontName": "x", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n221", + "width": "fill_container", + "height": 1.0, + "fill": [ + { + "type": "solid", + "color": "#2B2B2B" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n222", + "width": "fill_container", + "height": 604.0, + "layout": "none", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n223", + "name": "弹框", + "x": 28.0, + "y": 28.0, + "width": 764.0, + "height": "fit_content", + "layout": "vertical", + "clipContent": true, + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#252526" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#454545" + } + ] + }, + "effects": [ + { + "type": "shadow", + "offsetX": 0.0, + "offsetY": 16.0, + "blur": 40.0, + "spread": 0.0, + "color": "rgba(0,0,0,0.5)" + } + ], + "children": [ + { + "type": "frame", + "id": "n224", + "width": "fill_container", + "height": 44.0, + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 14.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#2D2D2D" + } + ], + "children": [ + { + "type": "text", + "id": "n225", + "width": "fit_content", + "height": "fit_content", + "content": "调用树", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n226", + "width": "fit_content", + "height": "fit_content", + "content": "OrderService", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "text", + "id": "n227", + "width": "fit_content", + "height": "fit_content", + "content": "billing/order.py:14", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + }, + { + "type": "frame", + "id": "n228", + "width": "fill_container", + "height": 1.0, + "children": [] + }, + { + "type": "icon_font", + "id": "n229", + "iconFontName": "x", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n230", + "width": "fill_container", + "height": 1.0, + "fill": [ + { + "type": "solid", + "color": "#2B2B2B" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n231", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 12.0, + 16.0, + 4.0, + 16.0 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n232", + "height": 28.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 10.0 + ], + "alignItems": "center", + "cornerRadius": 6.0, + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#007FD4" + } + ] + }, + "children": [ + { + "type": "text", + "id": "n233", + "width": "fit_content", + "height": "fit_content", + "content": "创建订单", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + }, + { + "type": "text", + "id": "n234", + "width": "fit_content", + "height": "fit_content", + "content": "1 处", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9CDCFF" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n235", + "height": 28.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 10.0 + ], + "alignItems": "center", + "cornerRadius": 6.0, + "fill": [ + { + "type": "solid", + "color": "#313131" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#3C3C3C" + } + ] + }, + "children": [ + { + "type": "text", + "id": "n236", + "width": "fit_content", + "height": "fit_content", + "content": "补开发票", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n237", + "width": "fit_content", + "height": "fit_content", + "content": "1 处", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n238", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 6.0, + "padding": [ + 12.0, + 16.0, + 20.0, + 16.0 + ], + "children": [ + { + "type": "frame", + "id": "n239", + "name": "POST /orders", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n240", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n241", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#222B29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#305A52" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n242", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n243", + "iconFontName": "route", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "text", + "id": "n244", + "width": "fit_content", + "height": "fit_content", + "content": "POST /orders", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "frame", + "id": "n245", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n246", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n247", + "width": "fit_content", + "height": "fit_content", + "content": "入口", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n248", + "width": "fit_content", + "height": "fit_content", + "content": "routes/order.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n249", + "name": "create_order", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n250", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n251", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#222B29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#305A52" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n252", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n253", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "text", + "id": "n254", + "width": "fit_content", + "height": "fit_content", + "content": "create_order", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "frame", + "id": "n255", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n256", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n257", + "width": "fit_content", + "height": "fit_content", + "content": "创建一笔订单", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n258", + "width": "fit_content", + "height": "fit_content", + "content": "billing/order.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n259", + "name": "新建 OrderService", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 44.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n260", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n261", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#222B29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#305A52" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n262", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n263", + "iconFontName": "box", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "text", + "id": "n264", + "width": "fit_content", + "height": "fit_content", + "content": "新建 OrderService", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "frame", + "id": "n265", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n266", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n267", + "width": "fit_content", + "height": "fit_content", + "content": "进入这个类", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n268", + "width": "fit_content", + "height": "fit_content", + "content": "billing/order.py:40", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n269", + "name": "OrderService", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 66.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n270", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n271", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#263733" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n272", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n273", + "iconFontName": "box", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "text", + "id": "n274", + "width": "fit_content", + "height": "fit_content", + "content": "OrderService", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "frame", + "id": "n275", + "width": "fill_container", + "height": 1.0, + "children": [] + }, + { + "type": "frame", + "id": "n276", + "height": 18.0, + "layout": "horizontal", + "padding": [ + 0.0, + 6.0 + ], + "alignItems": "center", + "cornerRadius": 9.0, + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ], + "children": [ + { + "type": "text", + "id": "n277", + "width": "fit_content", + "height": "fit_content", + "content": "当前", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n278", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n279", + "width": "fit_content", + "height": "fit_content", + "content": "订单结算", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n280", + "width": "fit_content", + "height": "fit_content", + "content": "billing/order.py:14", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n281", + "name": "4 个方法不在这条路径上", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 88.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n282", + "width": 2.0, + "height": 16.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#3C3C3C" + } + ], + "children": [] + }, + { + "type": "text", + "id": "n283", + "width": "fit_content", + "height": "fit_content", + "content": "4 个方法不在这条路径上", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n284", + "name": "遮罩", + "x": 0.0, + "y": 0.0, + "opacity": 0.55, + "width": 820.0, + "height": 604.0, + "fill": [ + { + "type": "solid", + "color": "#000000" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n285", + "x": 16.0, + "y": 16.0, + "width": 788.0, + "height": "fit_content", + "layout": "vertical", + "gap": 8.0, + "children": [ + { + "type": "frame", + "id": "n286", + "name": "OrderService", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 8.0, + 10.0, + 8.0, + 8.0 + ], + "alignItems": "start", + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#222B29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#305A52" + } + ] + }, + "children": [ + { + "type": "icon_font", + "id": "n287", + "iconFontName": "chevron-down", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "icon_font", + "id": "n288", + "iconFontName": "box", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "frame", + "id": "n289", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 4.0, + "children": [ + { + "type": "text", + "id": "n290", + "width": "fit_content", + "height": "fit_content", + "content": "OrderService", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#4EC9B0" + } + ] + }, + { + "type": "text", + "id": "n291", + "width": "fit_content", + "height": "fit_content", + "content": "订单结算", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n292", + "width": "fit_content", + "height": "fit_content", + "content": "billing/order.py:14", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n293", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 2.0, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n294", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n295", + "iconFontName": "message-square-text", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n296", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n297", + "iconFontName": "sparkles", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n298", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n299", + "iconFontName": "pencil", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n300", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "children": [ + { + "type": "icon_font", + "id": "n301", + "iconFontName": "git-branch", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + }, + { + "type": "frame", + "id": "n302", + "width": 14.0, + "height": 14.0, + "layout": "horizontal", + "justifyContent": "center", + "alignItems": "center", + "cornerRadius": 7.0, + "fill": [ + { + "type": "solid", + "color": "#0078D4" + } + ], + "children": [ + { + "type": "text", + "id": "n303", + "width": "fit_content", + "height": "fit_content", + "content": "2", + "fontFamily": "Noto Sans SC", + "fontSize": 9.0, + "fontWeight": 700, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n304", + "name": "调用树 · 弹框,只有一棵", + "x": 3360.0, + "y": 0.0, + "width": 1040.0, + "height": 560.0, + "layout": "horizontal", + "clipContent": true, + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n305", + "width": 220.0, + "height": "fill_container", + "layout": "vertical", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "frame", + "id": "n306", + "width": "fill_container", + "height": 35.0, + "layout": "horizontal", + "padding": [ + 0.0, + 12.0 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n307", + "width": "fit_content", + "height": "fit_content", + "content": "资源管理器", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n308", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 8.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n309", + "width": "fit_content", + "height": "fit_content", + "content": "superwork", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n310", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n311", + "width": "fit_content", + "height": "fit_content", + "content": "routes", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n312", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n313", + "width": "fit_content", + "height": "fit_content", + "content": "services", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n314", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "text", + "id": "n315", + "width": "fit_content", + "height": "fit_content", + "content": "utils", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n316", + "width": "fill_container", + "height": 26.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 8.0, + 0.0, + 36.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "children": [ + { + "type": "text", + "id": "n317", + "width": "fit_content", + "height": "fit_content", + "content": "phone.py", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n318", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n319", + "width": "fill_container", + "height": 35.0, + "layout": "horizontal", + "padding": [ + 0.0, + 0.0, + 0.0, + 8.0 + ], + "alignItems": "end", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "frame", + "id": "n320", + "height": 35.0, + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 12.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "text", + "id": "n321", + "width": "fit_content", + "height": "fit_content", + "content": "phone.py", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "icon_font", + "id": "n322", + "iconFontName": "x", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n323", + "width": "fill_container", + "height": 1.0, + "fill": [ + { + "type": "solid", + "color": "#2B2B2B" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n324", + "width": "fill_container", + "height": 524.0, + "layout": "none", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n325", + "name": "弹框", + "x": 28.0, + "y": 28.0, + "width": 764.0, + "height": "fit_content", + "layout": "vertical", + "clipContent": true, + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#252526" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#454545" + } + ] + }, + "effects": [ + { + "type": "shadow", + "offsetX": 0.0, + "offsetY": 16.0, + "blur": 40.0, + "spread": 0.0, + "color": "rgba(0,0,0,0.5)" + } + ], + "children": [ + { + "type": "frame", + "id": "n326", + "width": "fill_container", + "height": 44.0, + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 14.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#2D2D2D" + } + ], + "children": [ + { + "type": "text", + "id": "n327", + "width": "fit_content", + "height": "fit_content", + "content": "调用树", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n328", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n329", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + }, + { + "type": "frame", + "id": "n330", + "width": "fill_container", + "height": 1.0, + "children": [] + }, + { + "type": "icon_font", + "id": "n331", + "iconFontName": "x", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n332", + "width": "fill_container", + "height": 1.0, + "fill": [ + { + "type": "solid", + "color": "#2B2B2B" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n333", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 6.0, + "padding": [ + 12.0, + 16.0, + 20.0, + 16.0 + ], + "children": [ + { + "type": "frame", + "id": "n334", + "name": "夜间对账", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n335", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n336", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n337", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n338", + "iconFontName": "route", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n339", + "width": "fit_content", + "height": "fit_content", + "content": "夜间对账", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n340", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n341", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n342", + "width": "fit_content", + "height": "fit_content", + "content": "入口", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n343", + "width": "fit_content", + "height": "fit_content", + "content": "jobs/audit.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n344", + "name": "run_audit", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n345", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n346", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n347", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n348", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n349", + "width": "fit_content", + "height": "fit_content", + "content": "run_audit", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n350", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n351", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n352", + "width": "fit_content", + "height": "fit_content", + "content": "跑一遍对账", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n353", + "width": "fit_content", + "height": "fit_content", + "content": "jobs/audit.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n354", + "name": "mask_phone", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 44.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n355", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n356", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#3A3A32" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n357", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n358", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n359", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n360", + "width": "fill_container", + "height": 1.0, + "children": [] + }, + { + "type": "frame", + "id": "n361", + "height": 18.0, + "layout": "horizontal", + "padding": [ + 0.0, + 6.0 + ], + "alignItems": "center", + "cornerRadius": 9.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [ + { + "type": "text", + "id": "n362", + "width": "fit_content", + "height": "fit_content", + "content": "当前", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n363", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n364", + "width": "fit_content", + "height": "fit_content", + "content": "手机号打星", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n365", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n366", + "name": "遮罩", + "x": 0.0, + "y": 0.0, + "opacity": 0.55, + "width": 820.0, + "height": 524.0, + "fill": [ + { + "type": "solid", + "color": "#000000" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n367", + "x": 16.0, + "y": 16.0, + "width": 788.0, + "height": "fit_content", + "layout": "vertical", + "gap": 8.0, + "children": [ + { + "type": "frame", + "id": "n368", + "name": "mask_phone", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 8.0, + 10.0, + 8.0, + 8.0 + ], + "alignItems": "start", + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "icon_font", + "id": "n369", + "iconFontName": "chevron-down", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "icon_font", + "id": "n370", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n371", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 4.0, + "children": [ + { + "type": "text", + "id": "n372", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n373", + "width": "fit_content", + "height": "fit_content", + "content": "把手机号中间四位换成星号", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n374", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n375", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 2.0, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n376", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n377", + "iconFontName": "message-square-text", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n378", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n379", + "iconFontName": "sparkles", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n380", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n381", + "iconFontName": "pencil", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n382", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "children": [ + { + "type": "icon_font", + "id": "n383", + "iconFontName": "git-branch", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + }, + { + "type": "frame", + "id": "n384", + "width": 14.0, + "height": 14.0, + "layout": "horizontal", + "justifyContent": "center", + "alignItems": "center", + "cornerRadius": 7.0, + "fill": [ + { + "type": "solid", + "color": "#0078D4" + } + ], + "children": [ + { + "type": "text", + "id": "n385", + "width": "fit_content", + "height": "fit_content", + "content": "3", + "fontFamily": "Noto Sans SC", + "fontSize": 9.0, + "fontWeight": 700, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n386", + "name": "mask_email", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 8.0, + 10.0, + 8.0, + 8.0 + ], + "alignItems": "start", + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "icon_font", + "id": "n387", + "iconFontName": "chevron-down", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "icon_font", + "id": "n388", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n389", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 4.0, + "children": [ + { + "type": "text", + "id": "n390", + "width": "fit_content", + "height": "fit_content", + "content": "mask_email", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n391", + "width": "fit_content", + "height": "fit_content", + "content": "把邮箱用户名打成星号", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n392", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:41", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n393", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 2.0, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n394", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n395", + "iconFontName": "message-square-text", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n396", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n397", + "iconFontName": "sparkles", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n398", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n399", + "iconFontName": "pencil", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n400", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n401", + "iconFontName": "git-branch", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "frame", + "id": "n402", + "width": 14.0, + "height": 14.0, + "layout": "horizontal", + "justifyContent": "center", + "alignItems": "center", + "cornerRadius": 7.0, + "fill": [ + { + "type": "solid", + "color": "#0078D4" + } + ], + "children": [ + { + "type": "text", + "id": "n403", + "width": "fit_content", + "height": "fit_content", + "content": "1", + "fontFamily": "Noto Sans SC", + "fontSize": 9.0, + "fontWeight": 700, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n404", + "name": "调用树 · 弹框,窄窗口", + "x": 4480.0, + "y": 0.0, + "width": 640.0, + "height": 720.0, + "layout": "horizontal", + "clipContent": true, + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n405", + "width": "fill_container", + "height": "fill_container", + "layout": "vertical", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n406", + "width": "fill_container", + "height": 35.0, + "layout": "horizontal", + "padding": [ + 0.0, + 0.0, + 0.0, + 8.0 + ], + "alignItems": "end", + "fill": [ + { + "type": "solid", + "color": "#181818" + } + ], + "children": [ + { + "type": "frame", + "id": "n407", + "height": 35.0, + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 12.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "text", + "id": "n408", + "width": "fit_content", + "height": "fit_content", + "content": "phone.py", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "icon_font", + "id": "n409", + "iconFontName": "x", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n410", + "width": "fill_container", + "height": 1.0, + "fill": [ + { + "type": "solid", + "color": "#2B2B2B" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n411", + "width": "fill_container", + "height": 684.0, + "layout": "none", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ], + "children": [ + { + "type": "frame", + "id": "n412", + "name": "弹框", + "x": 20.0, + "y": 20.0, + "width": 600.0, + "height": "fit_content", + "layout": "vertical", + "clipContent": true, + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#252526" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#454545" + } + ] + }, + "effects": [ + { + "type": "shadow", + "offsetX": 0.0, + "offsetY": 16.0, + "blur": 40.0, + "spread": 0.0, + "color": "rgba(0,0,0,0.5)" + } + ], + "children": [ + { + "type": "frame", + "id": "n413", + "width": "fill_container", + "height": 44.0, + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 14.0 + ], + "alignItems": "center", + "fill": [ + { + "type": "solid", + "color": "#2D2D2D" + } + ], + "children": [ + { + "type": "text", + "id": "n414", + "width": "fit_content", + "height": "fit_content", + "content": "调用树", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n415", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n416", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + }, + { + "type": "frame", + "id": "n417", + "width": "fill_container", + "height": 1.0, + "children": [] + }, + { + "type": "icon_font", + "id": "n418", + "iconFontName": "x", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n419", + "width": "fill_container", + "height": 1.0, + "fill": [ + { + "type": "solid", + "color": "#2B2B2B" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n420", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 12.0, + 16.0, + 4.0, + 16.0 + ], + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n421", + "height": 28.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 10.0 + ], + "alignItems": "center", + "cornerRadius": 6.0, + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#007FD4" + } + ] + }, + "children": [ + { + "type": "text", + "id": "n422", + "width": "fit_content", + "height": "fit_content", + "content": "读取用户资料", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + }, + { + "type": "text", + "id": "n423", + "width": "fit_content", + "height": "fit_content", + "content": "2 处", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9CDCFF" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n424", + "height": 28.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 10.0 + ], + "alignItems": "center", + "cornerRadius": 6.0, + "fill": [ + { + "type": "solid", + "color": "#313131" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#3C3C3C" + } + ] + }, + "children": [ + { + "type": "text", + "id": "n425", + "width": "fit_content", + "height": "fit_content", + "content": "导出通讯录", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n426", + "width": "fit_content", + "height": "fit_content", + "content": "1 处", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n427", + "height": 28.0, + "layout": "horizontal", + "gap": 6.0, + "padding": [ + 0.0, + 10.0 + ], + "alignItems": "center", + "cornerRadius": 6.0, + "fill": [ + { + "type": "solid", + "color": "#313131" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#3C3C3C" + } + ] + }, + "children": [ + { + "type": "text", + "id": "n428", + "width": "fit_content", + "height": "fit_content", + "content": "夜间对账", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n429", + "width": "fit_content", + "height": "fit_content", + "content": "1 处", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n430", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 6.0, + "padding": [ + 12.0, + 16.0, + 20.0, + 16.0 + ], + "children": [ + { + "type": "frame", + "id": "n431", + "name": "GET /users/me", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n432", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n433", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n434", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n435", + "iconFontName": "route", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n436", + "width": "fit_content", + "height": "fit_content", + "content": "GET /users/me", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n437", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n438", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n439", + "width": "fit_content", + "height": "fit_content", + "content": "入口", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n440", + "width": "fit_content", + "height": "fit_content", + "content": "routes/user.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n441", + "name": "get_profile", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 22.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n442", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n443", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n444", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n445", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n446", + "width": "fit_content", + "height": "fit_content", + "content": "get_profile", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n447", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n448", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n449", + "width": "fit_content", + "height": "fit_content", + "content": "读取当前用户", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n450", + "width": "fit_content", + "height": "fit_content", + "content": "services/user.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n451", + "name": "serialize_user", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 44.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n452", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n453", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n454", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n455", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n456", + "width": "fit_content", + "height": "fit_content", + "content": "serialize_user", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n457", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n458", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n459", + "width": "fit_content", + "height": "fit_content", + "content": "写成接口响应", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n460", + "width": "fit_content", + "height": "fit_content", + "content": "services/user.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n461", + "name": "mask_phone", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 66.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n462", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n463", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#3A3A32" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n464", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n465", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n466", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n467", + "width": "fill_container", + "height": 1.0, + "children": [] + }, + { + "type": "frame", + "id": "n468", + "height": 18.0, + "layout": "horizontal", + "padding": [ + 0.0, + 6.0 + ], + "alignItems": "center", + "cornerRadius": 9.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [ + { + "type": "text", + "id": "n469", + "width": "fit_content", + "height": "fit_content", + "content": "当前", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n470", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n471", + "width": "fit_content", + "height": "fit_content", + "content": "手机号打星", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n472", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n473", + "name": "另外 1 处调用", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 66.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n474", + "width": 2.0, + "height": 16.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#3C3C3C" + } + ], + "children": [] + }, + { + "type": "text", + "id": "n475", + "width": "fit_content", + "height": "fit_content", + "content": "另外 1 处调用", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n476", + "name": "load_user", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 44.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n477", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n478", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n479", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n480", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n481", + "width": "fit_content", + "height": "fit_content", + "content": "load_user", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n482", + "width": "fill_container", + "height": 1.0, + "children": [] + } + ] + }, + { + "type": "frame", + "id": "n483", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n484", + "width": "fit_content", + "height": "fit_content", + "content": "从库里取出用户", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n485", + "width": "fit_content", + "height": "fit_content", + "content": "services/user.py", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n486", + "name": "mask_phone", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 66.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n487", + "width": 2.0, + "height": 44.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n488", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 2.0, + "padding": [ + 7.0, + 10.0 + ], + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#3A3A32" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + "children": [ + { + "type": "frame", + "id": "n489", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "n490", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n491", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n492", + "width": "fill_container", + "height": 1.0, + "children": [] + }, + { + "type": "frame", + "id": "n493", + "height": 18.0, + "layout": "horizontal", + "padding": [ + 0.0, + 6.0 + ], + "alignItems": "center", + "cornerRadius": 9.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ], + "children": [ + { + "type": "text", + "id": "n494", + "width": "fit_content", + "height": "fit_content", + "content": "当前", + "fontFamily": "Noto Sans SC", + "fontSize": 11.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#1F1F1F" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n495", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "n496", + "width": "fit_content", + "height": "fit_content", + "content": "手机号打星", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "text", + "id": "n497", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n498", + "name": "另外 2 处调用", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 0.0, + 0.0, + 0.0, + 44.0 + ], + "alignItems": "center", + "children": [ + { + "type": "rectangle", + "id": "n499", + "width": 2.0, + "height": 16.0, + "cornerRadius": 1.0, + "fill": [ + { + "type": "solid", + "color": "#3C3C3C" + } + ], + "children": [] + }, + { + "type": "text", + "id": "n500", + "width": "fit_content", + "height": "fit_content", + "content": "另外 2 处调用", + "fontFamily": "Noto Sans SC", + "fontSize": 12.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "rectangle", + "id": "n501", + "name": "遮罩", + "x": 0.0, + "y": 0.0, + "opacity": 0.55, + "width": 640.0, + "height": 684.0, + "fill": [ + { + "type": "solid", + "color": "#000000" + } + ], + "children": [] + }, + { + "type": "frame", + "id": "n502", + "x": 16.0, + "y": 16.0, + "width": 608.0, + "height": "fit_content", + "layout": "vertical", + "gap": 8.0, + "children": [ + { + "type": "frame", + "id": "n503", + "name": "mask_phone", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 8.0, + 10.0, + 8.0, + 8.0 + ], + "alignItems": "start", + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "icon_font", + "id": "n504", + "iconFontName": "chevron-down", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "icon_font", + "id": "n505", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n506", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 4.0, + "children": [ + { + "type": "text", + "id": "n507", + "width": "fit_content", + "height": "fit_content", + "content": "mask_phone", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n508", + "width": "fit_content", + "height": "fit_content", + "content": "把手机号中间四位换成星号", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n509", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:28", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n510", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 2.0, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n511", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n512", + "iconFontName": "message-square-text", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n513", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n514", + "iconFontName": "sparkles", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n515", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n516", + "iconFontName": "pencil", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n517", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "fill": [ + { + "type": "solid", + "color": "#04395E" + } + ], + "children": [ + { + "type": "icon_font", + "id": "n518", + "iconFontName": "git-branch", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + }, + { + "type": "frame", + "id": "n519", + "width": 14.0, + "height": 14.0, + "layout": "horizontal", + "justifyContent": "center", + "alignItems": "center", + "cornerRadius": 7.0, + "fill": [ + { + "type": "solid", + "color": "#0078D4" + } + ], + "children": [ + { + "type": "text", + "id": "n520", + "width": "fit_content", + "height": "fit_content", + "content": "3", + "fontFamily": "Noto Sans SC", + "fontSize": 9.0, + "fontWeight": 700, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "n521", + "name": "mask_email", + "width": "fill_container", + "height": "fit_content", + "layout": "horizontal", + "gap": 8.0, + "padding": [ + 8.0, + 10.0, + 8.0, + 8.0 + ], + "alignItems": "start", + "cornerRadius": 8.0, + "fill": [ + { + "type": "solid", + "color": "#2C2C29" + } + ], + "stroke": { + "thickness": 1.0, + "align": "inside", + "fill": [ + { + "type": "solid", + "color": "#616150" + } + ] + }, + "children": [ + { + "type": "icon_font", + "id": "n522", + "iconFontName": "chevron-down", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "icon_font", + "id": "n523", + "iconFontName": "braces", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "frame", + "id": "n524", + "width": "fill_container", + "height": "fit_content", + "layout": "vertical", + "gap": 4.0, + "children": [ + { + "type": "text", + "id": "n525", + "width": "fit_content", + "height": "fit_content", + "content": "mask_email", + "fontFamily": "Menlo", + "fontSize": 13.0, + "fontWeight": 600, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#DCDCAA" + } + ] + }, + { + "type": "text", + "id": "n526", + "width": "fit_content", + "height": "fit_content", + "content": "把邮箱用户名打成星号", + "fontFamily": "Noto Sans SC", + "fontSize": 13.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#CCCCCC" + } + ] + }, + { + "type": "text", + "id": "n527", + "width": "fit_content", + "height": "fit_content", + "content": "utils/phone.py:41", + "fontFamily": "Menlo", + "fontSize": 11.0, + "fontWeight": 400, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#6E6E6E" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n528", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 2.0, + "alignItems": "center", + "children": [ + { + "type": "frame", + "id": "n529", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n530", + "iconFontName": "message-square-text", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n531", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n532", + "iconFontName": "sparkles", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n533", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n534", + "iconFontName": "pencil", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + } + ] + }, + { + "type": "frame", + "id": "n535", + "width": "fit_content", + "height": 20.0, + "layout": "horizontal", + "gap": 1.0, + "padding": [ + 0.0, + 4.0 + ], + "alignItems": "center", + "cornerRadius": 4.0, + "children": [ + { + "type": "icon_font", + "id": "n536", + "iconFontName": "git-branch", + "width": 14.0, + "height": 14.0, + "fill": [ + { + "type": "solid", + "color": "#9D9D9D" + } + ] + }, + { + "type": "frame", + "id": "n537", + "width": 14.0, + "height": 14.0, + "layout": "horizontal", + "justifyContent": "center", + "alignItems": "center", + "cornerRadius": 7.0, + "fill": [ + { + "type": "solid", + "color": "#0078D4" + } + ], + "children": [ + { + "type": "text", + "id": "n538", + "width": "fit_content", + "height": "fit_content", + "content": "1", + "fontFamily": "Noto Sans SC", + "fontSize": 9.0, + "fontWeight": 700, + "lineHeight": 1.3, + "textGrowth": "auto", + "fill": [ + { + "type": "solid", + "color": "#FFFFFF" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "editorMeta": { + "activePageIndex": 0, + "preserveAuthoredGeometry": false + } +} \ No newline at end of file diff --git a/docs/prototype/call-tree/openpencil/exports/01-entry.png b/docs/prototype/call-tree/openpencil/exports/01-entry.png new file mode 100644 index 0000000..2d1fefd Binary files /dev/null and b/docs/prototype/call-tree/openpencil/exports/01-entry.png differ diff --git a/docs/prototype/call-tree/openpencil/exports/02-many.png b/docs/prototype/call-tree/openpencil/exports/02-many.png new file mode 100644 index 0000000..bffb11f Binary files /dev/null and b/docs/prototype/call-tree/openpencil/exports/02-many.png differ diff --git a/docs/prototype/call-tree/openpencil/exports/03-class.png b/docs/prototype/call-tree/openpencil/exports/03-class.png new file mode 100644 index 0000000..3e44ea6 Binary files /dev/null and b/docs/prototype/call-tree/openpencil/exports/03-class.png differ diff --git a/docs/prototype/call-tree/openpencil/exports/04-single.png b/docs/prototype/call-tree/openpencil/exports/04-single.png new file mode 100644 index 0000000..108ce30 Binary files /dev/null and b/docs/prototype/call-tree/openpencil/exports/04-single.png differ diff --git a/docs/prototype/call-tree/openpencil/exports/05-narrow.png b/docs/prototype/call-tree/openpencil/exports/05-narrow.png new file mode 100644 index 0000000..a034c7f Binary files /dev/null and b/docs/prototype/call-tree/openpencil/exports/05-narrow.png differ