skill-home 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/cli/cmd_read.d.ts +3 -0
  2. package/dist/cli/cmd_read.d.ts.map +1 -0
  3. package/dist/cli/cmd_read.js +868 -0
  4. package/dist/cli/cmd_read.js.map +1 -0
  5. package/dist/fetch/db.d.ts +107 -0
  6. package/dist/fetch/db.d.ts.map +1 -0
  7. package/dist/fetch/db.js +433 -0
  8. package/dist/fetch/db.js.map +1 -0
  9. package/dist/fetch/domains.d.ts +51 -0
  10. package/dist/fetch/domains.d.ts.map +1 -0
  11. package/dist/fetch/domains.js +203 -0
  12. package/dist/fetch/domains.js.map +1 -0
  13. package/dist/fetch/errors.d.ts +11 -0
  14. package/dist/fetch/errors.d.ts.map +1 -0
  15. package/dist/fetch/errors.js +18 -0
  16. package/dist/fetch/errors.js.map +1 -0
  17. package/dist/fetch/index.d.ts +6 -0
  18. package/dist/fetch/index.d.ts.map +1 -0
  19. package/dist/fetch/index.js +5 -0
  20. package/dist/fetch/index.js.map +1 -0
  21. package/dist/fetch/paths.d.ts +6 -0
  22. package/dist/fetch/paths.d.ts.map +1 -0
  23. package/dist/fetch/paths.js +31 -0
  24. package/dist/fetch/paths.js.map +1 -0
  25. package/dist/help/index.d.ts +3 -0
  26. package/dist/help/index.d.ts.map +1 -0
  27. package/dist/help/index.js +2 -0
  28. package/dist/help/index.js.map +1 -0
  29. package/dist/help/lookup.d.ts +11 -0
  30. package/dist/help/lookup.d.ts.map +1 -0
  31. package/dist/help/lookup.js +52 -0
  32. package/dist/help/lookup.js.map +1 -0
  33. package/dist/index.d.ts +5 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +6 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/policy/care.d.ts +4 -0
  38. package/dist/policy/care.d.ts.map +1 -0
  39. package/dist/policy/care.js +12 -0
  40. package/dist/policy/care.js.map +1 -0
  41. package/dist/policy/category.d.ts +8 -0
  42. package/dist/policy/category.d.ts.map +1 -0
  43. package/dist/policy/category.js +44 -0
  44. package/dist/policy/category.js.map +1 -0
  45. package/dist/policy/index.d.ts +9 -0
  46. package/dist/policy/index.d.ts.map +1 -0
  47. package/dist/policy/index.js +6 -0
  48. package/dist/policy/index.js.map +1 -0
  49. package/dist/policy/item.d.ts +18 -0
  50. package/dist/policy/item.d.ts.map +1 -0
  51. package/dist/policy/item.js +81 -0
  52. package/dist/policy/item.js.map +1 -0
  53. package/dist/policy/ticket.d.ts +6 -0
  54. package/dist/policy/ticket.d.ts.map +1 -0
  55. package/dist/policy/ticket.js +25 -0
  56. package/dist/policy/ticket.js.map +1 -0
  57. package/dist/policy/wakewords.d.ts +15 -0
  58. package/dist/policy/wakewords.d.ts.map +1 -0
  59. package/dist/policy/wakewords.js +120 -0
  60. package/dist/policy/wakewords.js.map +1 -0
  61. package/dist/render/envelope.d.ts +6 -0
  62. package/dist/render/envelope.d.ts.map +1 -0
  63. package/dist/render/envelope.js +61 -0
  64. package/dist/render/envelope.js.map +1 -0
  65. package/dist/render/errors.d.ts +5 -0
  66. package/dist/render/errors.d.ts.map +1 -0
  67. package/dist/render/errors.js +10 -0
  68. package/dist/render/errors.js.map +1 -0
  69. package/dist/render/html.d.ts +13 -0
  70. package/dist/render/html.d.ts.map +1 -0
  71. package/dist/render/html.js +66 -0
  72. package/dist/render/html.js.map +1 -0
  73. package/dist/render/index.d.ts +8 -0
  74. package/dist/render/index.d.ts.map +1 -0
  75. package/dist/render/index.js +6 -0
  76. package/dist/render/index.js.map +1 -0
  77. package/dist/render/templates.d.ts +5 -0
  78. package/dist/render/templates.d.ts.map +1 -0
  79. package/dist/render/templates.js +68 -0
  80. package/dist/render/templates.js.map +1 -0
  81. package/dist/render/views.d.ts +83 -0
  82. package/dist/render/views.d.ts.map +1 -0
  83. package/dist/render/views.js +56 -0
  84. package/dist/render/views.js.map +1 -0
  85. package/package.json +32 -0
  86. package/templates/care_query.html +16 -0
  87. package/templates/care_receipt.html +16 -0
  88. package/templates/help.html +16 -0
  89. package/templates/inventory_records.html +16 -0
  90. package/templates/inventory_round.html +16 -0
  91. package/templates/item_detail.html +16 -0
  92. package/templates/item_receipt.html +16 -0
  93. package/templates/item_search.html +16 -0
  94. package/templates/item_update_receipt.html +16 -0
  95. package/templates/location_query.html +16 -0
  96. package/templates/location_receipt.html +16 -0
  97. package/templates/outfit_pick.html +16 -0
  98. package/templates/shopping_query.html +16 -0
  99. package/templates/shopping_receipt.html +16 -0
  100. package/templates/stats_alert.html +16 -0
  101. package/templates/stats_overview.html +16 -0
  102. package/templates/tag_query.html +16 -0
  103. package/templates/tag_receipt.html +16 -0
  104. package/templates/ticket_query.html +16 -0
  105. package/templates/ticket_receipt.html +16 -0
  106. package/templates/trip_receipt.html +16 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/render/html.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { HomeRenderError } from './errors.js';
2
+ export { HOME_KEY_SHAPES, homeShapeFor, buildHomeEnvelope, parseHomeEnvelope } from './envelope.js';
3
+ export { toItemCard, buildSearchList, buildDetail, buildReceipt, buildTagList, buildInventoryRecords, buildLocationList, buildOutfitList, buildStatsOverview, buildStatsAlert, buildShoppingList, buildTicketList, buildCareList, buildHelpItems, } from './views.js';
4
+ export type { ItemCard, HelpItem } from './views.js';
5
+ export { HOME_HTML_MAX_BYTES, escapeHtml, renderEnvelopeHtml, estimateBytes, assertHtmlSize, SHARED_CSS_MARKER, SHARED_HELPERS_MARKER, CONTENT_MARKER, SHARED_CSS, SHARED_HELPERS, fillTemplate, } from './html.js';
6
+ export { HOME_TEMPLATES, templateFor, loadTemplate } from './templates.js';
7
+ export type { HomeTemplate } from './templates.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EACL,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EACpE,qBAAqB,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAC7E,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,GACnF,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EACL,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAClF,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,GACnG,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { HomeRenderError } from './errors.js';
2
+ export { HOME_KEY_SHAPES, homeShapeFor, buildHomeEnvelope, parseHomeEnvelope } from './envelope.js';
3
+ export { toItemCard, buildSearchList, buildDetail, buildReceipt, buildTagList, buildInventoryRecords, buildLocationList, buildOutfitList, buildStatsOverview, buildStatsAlert, buildShoppingList, buildTicketList, buildCareList, buildHelpItems, } from './views.js';
4
+ export { HOME_HTML_MAX_BYTES, escapeHtml, renderEnvelopeHtml, estimateBytes, assertHtmlSize, SHARED_CSS_MARKER, SHARED_HELPERS_MARKER, CONTENT_MARKER, SHARED_CSS, SHARED_HELPERS, fillTemplate, } from './html.js';
5
+ export { HOME_TEMPLATES, templateFor, loadTemplate } from './templates.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EACL,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EACpE,qBAAqB,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAC7E,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,GACnF,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAClF,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,GACnG,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const HOME_TEMPLATES: readonly ["item_search", "item_detail", "item_receipt", "tag_query", "tag_receipt", "inventory_round", "inventory_records", "location_query", "location_receipt", "outfit_pick", "trip_receipt", "stats_overview", "stats_alert", "shopping_query", "shopping_receipt", "ticket_query", "ticket_receipt", "care_query", "care_receipt", "help", "item_update_receipt"];
2
+ export type HomeTemplate = (typeof HOME_TEMPLATES)[number];
3
+ export declare function templateFor(key: string): HomeTemplate;
4
+ export declare function loadTemplate(name: string): string;
5
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/render/templates.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,wWAsBjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAG3D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAyBrD;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjD"}
@@ -0,0 +1,68 @@
1
+ // 渲染层·模板装载:21 模板随包发布;未知/缺失大声失败。
2
+ import { readFileSync } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { HomeRenderError } from './errors.js';
6
+ export const HOME_TEMPLATES = [
7
+ 'item_search',
8
+ 'item_detail',
9
+ 'item_receipt',
10
+ 'tag_query',
11
+ 'tag_receipt',
12
+ 'inventory_round',
13
+ 'inventory_records',
14
+ 'location_query',
15
+ 'location_receipt',
16
+ 'outfit_pick',
17
+ 'trip_receipt',
18
+ 'stats_overview',
19
+ 'stats_alert',
20
+ 'shopping_query',
21
+ 'shopping_receipt',
22
+ 'ticket_query',
23
+ 'ticket_receipt',
24
+ 'care_query',
25
+ 'care_receipt',
26
+ 'help',
27
+ 'item_update_receipt',
28
+ ];
29
+ // key → 模板(add/update 共用 receipt 系;write 家族用 receipt 模板)。
30
+ export function templateFor(key) {
31
+ switch (key) {
32
+ case 'home.item.search': return 'item_search';
33
+ case 'home.item.detail': return 'item_detail';
34
+ case 'home.item.add': return 'item_receipt';
35
+ case 'home.item.update': return 'item_update_receipt';
36
+ case 'home.tag.query': return 'tag_query';
37
+ case 'home.tag.write': return 'tag_receipt';
38
+ case 'home.inventory.round': return 'inventory_round';
39
+ case 'home.inventory.records': return 'inventory_records';
40
+ case 'home.location.query': return 'location_query';
41
+ case 'home.location.write': return 'location_receipt';
42
+ case 'home.outfit.pick': return 'outfit_pick';
43
+ case 'home.trip.manage': return 'trip_receipt';
44
+ case 'home.stats.overview': return 'stats_overview';
45
+ case 'home.stats.alert': return 'stats_alert';
46
+ case 'home.shopping.query': return 'shopping_query';
47
+ case 'home.shopping.write': return 'shopping_receipt';
48
+ case 'home.ticket.query': return 'ticket_query';
49
+ case 'home.ticket.write': return 'ticket_receipt';
50
+ case 'home.care.query': return 'care_query';
51
+ case 'home.care.write': return 'care_receipt';
52
+ case 'home.help.lookup': return 'help';
53
+ default: throw new HomeRenderError('HOME_UNKNOWN_KEY', '无模板映射:' + key);
54
+ }
55
+ }
56
+ const templatesDir = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'templates');
57
+ export function loadTemplate(name) {
58
+ if (!HOME_TEMPLATES.includes(name)) {
59
+ throw new HomeRenderError('HOME_TEMPLATE_MISSING', '未知模板:' + name);
60
+ }
61
+ try {
62
+ return readFileSync(join(templatesDir, name + '.html'), 'utf8');
63
+ }
64
+ catch (e) {
65
+ throw new HomeRenderError('HOME_TEMPLATE_MISSING', '模板缺失:' + name);
66
+ }
67
+ }
68
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/render/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import type { HomeItem, HomeLocation } from '../fetch/db.js';
2
+ export interface ItemCard {
3
+ id: number;
4
+ name: string;
5
+ location: string;
6
+ quantity: number;
7
+ status: string;
8
+ category: string;
9
+ tags: string;
10
+ }
11
+ export declare function toItemCard(item: HomeItem, locations: HomeLocation[], tags: string[]): ItemCard;
12
+ export declare function buildSearchList(cards: ItemCard[]): {
13
+ items: ItemCard[];
14
+ total: number;
15
+ };
16
+ export declare function buildDetail(card: ItemCard, extra?: Record<string, unknown>): {
17
+ item: Record<string, unknown>;
18
+ };
19
+ export declare function buildReceipt(message: string): {
20
+ ok: boolean;
21
+ message: string;
22
+ };
23
+ export declare function buildTagList(tags: {
24
+ tag: string;
25
+ count: number;
26
+ }[], categories?: {
27
+ id: number;
28
+ name: string;
29
+ }[]): {
30
+ items: unknown[];
31
+ total: number;
32
+ };
33
+ export declare function buildInventoryRecords(rows: {
34
+ id: number;
35
+ scope: string;
36
+ total: number;
37
+ }[]): {
38
+ items: unknown[];
39
+ total: number;
40
+ };
41
+ export declare function buildLocationList(paths: string[]): {
42
+ items: unknown[];
43
+ total: number;
44
+ };
45
+ export declare function buildOutfitList(cards: ItemCard[], note: string): {
46
+ items: ItemCard[];
47
+ total: number;
48
+ note?: string;
49
+ };
50
+ export declare function buildStatsOverview(metrics: Record<string, number>): {
51
+ metrics: Record<string, number>;
52
+ };
53
+ export declare function buildStatsAlert(items: ItemCard[]): {
54
+ items: ItemCard[];
55
+ total: number;
56
+ };
57
+ export declare function buildShoppingList(items: {
58
+ name: string;
59
+ quantity?: number;
60
+ }[]): {
61
+ items: unknown[];
62
+ total: number;
63
+ };
64
+ export declare function buildTicketList(items: Record<string, unknown>[]): {
65
+ items: Record<string, unknown>[];
66
+ total: number;
67
+ };
68
+ export declare function buildCareList(items: Record<string, unknown>[]): {
69
+ items: Record<string, unknown>[];
70
+ total: number;
71
+ };
72
+ export interface HelpItem {
73
+ phrase: string;
74
+ key: string;
75
+ shape: string;
76
+ cli: string;
77
+ desc: string;
78
+ }
79
+ export declare function buildHelpItems(all: HelpItem[], q?: string): {
80
+ items: HelpItem[];
81
+ total: number;
82
+ };
83
+ //# sourceMappingURL=views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/render/views.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ export function toItemCard(item, locations, tags) {
2
+ const first = locations[0];
3
+ const qty = locations.reduce((a, l) => a + (l.quantity || 0), 0);
4
+ return {
5
+ id: item.id, name: item.name,
6
+ location: locations.map((l) => l.location + '×' + l.quantity + '[' + l.location_status + ']').join(';') || '(无位置)',
7
+ quantity: qty, status: first?.location_status ?? '',
8
+ category: item.category ?? '', tags: tags.join(','),
9
+ };
10
+ }
11
+ export function buildSearchList(cards) {
12
+ return { items: cards, total: cards.length };
13
+ }
14
+ export function buildDetail(card, extra) {
15
+ return { item: { ...card, ...(extra ?? {}) } };
16
+ }
17
+ export function buildReceipt(message) {
18
+ return { ok: true, message };
19
+ }
20
+ export function buildTagList(tags, categories) {
21
+ const items = tags.map((t) => ({ name: t.tag, count: t.count }));
22
+ if (categories)
23
+ for (const c of categories)
24
+ items.push({ name: '分类:' + c.name, count: c.id });
25
+ return { items, total: items.length };
26
+ }
27
+ export function buildInventoryRecords(rows) {
28
+ return { items: rows.map((r) => ({ name: '盘点#' + r.id + ' ' + r.scope, count: r.total })), total: rows.length };
29
+ }
30
+ export function buildLocationList(paths) {
31
+ return { items: paths.map((p) => ({ name: p })), total: paths.length };
32
+ }
33
+ export function buildOutfitList(cards, note) {
34
+ void note;
35
+ return { items: cards, total: cards.length };
36
+ }
37
+ export function buildStatsOverview(metrics) {
38
+ return { metrics };
39
+ }
40
+ export function buildStatsAlert(items) {
41
+ return { items, total: items.length };
42
+ }
43
+ export function buildShoppingList(items) {
44
+ return { items, total: items.length };
45
+ }
46
+ export function buildTicketList(items) {
47
+ return { items, total: items.length };
48
+ }
49
+ export function buildCareList(items) {
50
+ return { items, total: items.length };
51
+ }
52
+ export function buildHelpItems(all, q) {
53
+ const items = !q || !q.trim() ? all : all.filter((h) => q.includes(h.phrase) || h.phrase.includes(q.trim()));
54
+ return { items, total: items.length };
55
+ }
56
+ //# sourceMappingURL=views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/render/views.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "skill-home",
3
+ "version": "0.1.0",
4
+ "description": "居家管家SKILL一期:取数+口径+渲染+出口(21 联动 key+cmd_read+SKILL+HELP+parity),依 link-core",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": "./dist/index.js",
10
+ "./fetch": "./dist/fetch/index.js",
11
+ "./policy": "./dist/policy/index.js",
12
+ "./render": "./dist/render/index.js",
13
+ "./cli": "./dist/cli/cmd_read.js"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "templates/*.html"
18
+ ],
19
+ "bin": {
20
+ "home-cmd-read": "./dist/cli/cmd_read.js"
21
+ },
22
+ "dependencies": {
23
+ "base-link-core": "workspace:^0.1.0"
24
+ },
25
+ "engines": {
26
+ "node": ">=22.13"
27
+ },
28
+ "scripts": {
29
+ "build": "tsc -b && node scripts/build-help.mjs",
30
+ "test": "node --test ../../test/scaffold.test.mjs"
31
+ }
32
+ }
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>协作查询</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>协作查询</h1>
11
+ <p class="cmd">home-cmd-read home.care.query</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>协作回执</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>协作回执</h1>
11
+ <p class="cmd">home-cmd-read home.care.write</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>居家管家 HELP</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>居家管家 HELP</h1>
11
+ <p class="cmd">home-cmd-read home.help.lookup</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>盘点记录</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>盘点记录</h1>
11
+ <p class="cmd">home-cmd-read home.inventory.records</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>盘点回执</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>盘点回执</h1>
11
+ <p class="cmd">home-cmd-read home.inventory.round</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>看物品</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>看物品</h1>
11
+ <p class="cmd">home-cmd-read home.item.detail</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>录物品回执</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>录物品回执</h1>
11
+ <p class="cmd">home-cmd-read home.item.add</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>查物品</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>查物品</h1>
11
+ <p class="cmd">home-cmd-read home.item.search</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>改物品回执</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>改物品回执</h1>
11
+ <p class="cmd">home-cmd-read home.item.update</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>位置查询</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>位置查询</h1>
11
+ <p class="cmd">home-cmd-read home.location.query</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>位置回执</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>位置回执</h1>
11
+ <p class="cmd">home-cmd-read home.location.write</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>穿搭推荐</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>穿搭推荐</h1>
11
+ <p class="cmd">home-cmd-read home.outfit.pick</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>购物查询</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>购物查询</h1>
11
+ <p class="cmd">home-cmd-read home.shopping.query</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>购物回执</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>购物回执</h1>
11
+ <p class="cmd">home-cmd-read home.shopping.write</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>闲置过期</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>闲置过期</h1>
11
+ <p class="cmd">home-cmd-read home.stats.alert</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>物品总览</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>物品总览</h1>
11
+ <p class="cmd">home-cmd-read home.stats.overview</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>看标签</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>看标签</h1>
11
+ <p class="cmd">home-cmd-read home.tag.query</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>管标签回执</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>管标签回执</h1>
11
+ <p class="cmd">home-cmd-read home.tag.write</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>票据查询</title>
6
+ <!--SHARED-CSS-->
7
+ </head>
8
+ <body>
9
+ <div class="page">
10
+ <h1>票据查询</h1>
11
+ <p class="cmd">home-cmd-read home.ticket.query</p>
12
+ <!--CONTENT-->
13
+ </div>
14
+ <!--SHARED-HELPERS-->
15
+ </body>
16
+ </html>