@agile-team/wl-skills-kit 2.11.1 → 2.11.2

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 (85) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +1 -1
  3. package/bin/wl-skills.js +27 -3
  4. package/files/.wl-skills/docs/jh-pagination.md +505 -505
  5. package/files/.wl-skills/docs/request.md +940 -940
  6. package/files/.wl-skills/guides/architecture.md +1 -1
  7. package/files/.wl-skills/skills/core/convention-audit/SKILL.md +3 -3
  8. package/files/.wl-skills/skills/core/spec-doc-parse/SKILL.md +332 -332
  9. package/files/.wl-skills/skills/core/spec-doc-parse/USAGE.md +97 -97
  10. package/files/.wl-skills/skills/sync/permission-sync/USAGE.md +107 -107
  11. package/files/.wl-skills/src/components/global/C_ParentView/index.vue +3 -3
  12. package/files/.wl-skills/src/components/global/C_RightToolbar/index.vue +157 -157
  13. package/files/.wl-skills/src/components/global/C_SvgIcon/index.vue +31 -31
  14. package/files/.wl-skills/src/components/global/C_SvgIcon/svgicon.js +10 -10
  15. package/files/.wl-skills/src/components/global/C_TagStatus/README.md +264 -264
  16. package/files/.wl-skills/src/components/global/C_TagStatus/config.ts +192 -192
  17. package/files/.wl-skills/src/components/global/C_TagStatus/index.vue +106 -106
  18. package/files/.wl-skills/src/components/global/C_TagStatus/types.ts +64 -64
  19. package/files/.wl-skills/src/components/global/C_Tree/README.md +153 -153
  20. package/files/.wl-skills/src/components/global/C_Tree/index.scss +42 -42
  21. package/files/.wl-skills/src/components/global/C_Tree/index.vue +78 -78
  22. package/files/.wl-skills/src/components/global/C_Tree/types.ts +59 -59
  23. package/files/.wl-skills/src/components/local/c_formModal/README.md +235 -235
  24. package/files/.wl-skills/src/components/local/c_formModal/data.ts +95 -95
  25. package/files/.wl-skills/src/components/local/c_formModal/index.scss +8 -8
  26. package/files/.wl-skills/src/components/local/c_formModal/index.vue +107 -107
  27. package/files/.wl-skills/src/components/local/c_formSections/data.ts +175 -175
  28. package/files/.wl-skills/src/components/local/c_formSections/index.scss +280 -280
  29. package/files/.wl-skills/src/components/local/c_formSections/index.vue +429 -429
  30. package/files/.wl-skills/src/components/local/c_listModal/data.ts +41 -41
  31. package/files/.wl-skills/src/components/local/c_listModal/index.vue +136 -136
  32. package/files/.wl-skills/src/components/local/c_spliterTitle/index.scss +25 -25
  33. package/files/.wl-skills/src/components/local/c_spliterTitle/index.vue +21 -21
  34. package/files/.wl-skills/src/components/remote/AGGrid/README.md +530 -530
  35. package/files/.wl-skills/src/components/remote/BaseForm/README.md +508 -508
  36. package/files/.wl-skills/src/components/remote/BaseQuery/README.md +865 -865
  37. package/files/.wl-skills/src/components/remote/BaseTable/README.md +941 -941
  38. package/files/.wl-skills/src/components/remote/BaseToolbar/README.md +496 -496
  39. package/files/.wl-skills/src/types/page.ts +24 -24
  40. package/files/.wl-skills/standards/04-coding-basics.md +39 -1
  41. package/files/.wl-skills/standards/09-typescript.md +26 -3
  42. package/files/.wl-skills/standards/index.md +2 -2
  43. package/files/.wl-skills/templates/README.md +44 -44
  44. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add/api.md +54 -54
  45. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add/data.ts +346 -346
  46. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add/index.scss +1 -1
  47. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add/index.vue +28 -28
  48. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add-form/data.ts +115 -115
  49. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add-form/index.scss +44 -44
  50. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add-form/index.vue +43 -43
  51. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change/data.ts +338 -338
  52. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change/index.scss +1 -1
  53. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change/index.vue +28 -28
  54. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change-form/data.ts +115 -115
  55. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change-form/index.scss +44 -44
  56. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change-form/index.vue +43 -43
  57. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-archive/api.md +88 -88
  58. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-archive/data.ts +601 -601
  59. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-archive/index.scss +1 -1
  60. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-archive/index.vue +64 -64
  61. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-detail/api.md +67 -67
  62. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-detail/data.ts +286 -286
  63. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-detail/index.scss +139 -139
  64. package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-detail/index.vue +318 -318
  65. package/files/.wl-skills/templates/produce/aiflow/mmwr-temp-customer-archive/api.md +98 -98
  66. package/files/.wl-skills/templates/produce/aiflow/mmwr-temp-customer-archive/data.ts +543 -543
  67. package/files/.wl-skills/templates/produce/aiflow/mmwr-temp-customer-archive/index.scss +1 -1
  68. package/files/.wl-skills/templates/produce/aiflow/mmwr-temp-customer-archive/index.vue +52 -52
  69. package/files/.wl-skills/templates/sale/demo/add-demo/data.ts +518 -518
  70. package/files/.wl-skills/templates/sale/demo/billet-flame-cut-plan/data.ts +524 -524
  71. package/files/.wl-skills/templates/sale/demo/billet-flame-cut-plan/index.scss +154 -154
  72. package/files/.wl-skills/templates/sale/demo/billet-flame-cut-plan/index.vue +117 -117
  73. package/files/.wl-skills/templates/sale/demo/domestic-trade-order/data.ts +308 -308
  74. package/files/.wl-skills/templates/sale/demo/domestic-trade-order/index.scss +99 -99
  75. package/files/.wl-skills/templates/sale/demo/domestic-trade-order/index.vue +77 -77
  76. package/files/.wl-skills/templates/sale/demo/heat-batch-return/data.ts +367 -367
  77. package/files/.wl-skills/templates/sale/demo/heat-batch-return/index.scss +100 -100
  78. package/files/.wl-skills/templates/sale/demo/heat-batch-return/index.vue +170 -170
  79. package/files/.wl-skills/templates/sale/demo/heat-batch-return/meltDialog.vue +320 -320
  80. package/files/.wl-skills/templates/sale/demo/metallurgical-spec/data.ts +824 -824
  81. package/lib/ast-rules.js +304 -9
  82. package/mcp/config.js +46 -46
  83. package/mcp/registry.js +6 -1
  84. package/mcp/tools/projectTools.js +9 -1
  85. package/package.json +2 -2
@@ -1,41 +1,41 @@
1
- import {
2
- AbstractPageQueryHook,
3
- BaseQueryItemDesc,
4
- ActionButtonDesc,
5
- TableColumnDesc
6
- } from "@/types/page";
7
- import { RequestMethod } from "@jhlc/types/src/request-type";
8
-
9
- export function createPage(
10
- listApi: string,
11
- constQueryParam: Record<string, any>,
12
- queryItemsConfig: BaseQueryItemDesc<any>[],
13
- columns: TableColumnDesc<any>[],
14
- requestMethod: RequestMethod
15
- ) {
16
- let Page = new (class extends AbstractPageQueryHook {
17
- constructor() {
18
- super({
19
- requestMethod: requestMethod,
20
- url: {
21
- list: listApi
22
- },
23
- constQueryParam: () => constQueryParam
24
- });
25
- }
26
-
27
- queryDef(): BaseQueryItemDesc<any>[] {
28
- return queryItemsConfig;
29
- }
30
-
31
- toolbarDef(): ActionButtonDesc[] {
32
- return [];
33
- }
34
-
35
- columnsDef(): TableColumnDesc<any>[] {
36
- return [{ type: "index", label: "序号", width: 60 }, ...columns];
37
- }
38
- })();
39
-
40
- return Page.create() as any;
41
- }
1
+ import {
2
+ AbstractPageQueryHook,
3
+ BaseQueryItemDesc,
4
+ ActionButtonDesc,
5
+ TableColumnDesc
6
+ } from "@/types/page";
7
+ import { RequestMethod } from "@jhlc/types/src/request-type";
8
+
9
+ export function createPage(
10
+ listApi: string,
11
+ constQueryParam: Record<string, any>,
12
+ queryItemsConfig: BaseQueryItemDesc<any>[],
13
+ columns: TableColumnDesc<any>[],
14
+ requestMethod: RequestMethod
15
+ ) {
16
+ let Page = new (class extends AbstractPageQueryHook {
17
+ constructor() {
18
+ super({
19
+ requestMethod: requestMethod,
20
+ url: {
21
+ list: listApi
22
+ },
23
+ constQueryParam: () => constQueryParam
24
+ });
25
+ }
26
+
27
+ queryDef(): BaseQueryItemDesc<any>[] {
28
+ return queryItemsConfig;
29
+ }
30
+
31
+ toolbarDef(): ActionButtonDesc[] {
32
+ return [];
33
+ }
34
+
35
+ columnsDef(): TableColumnDesc<any>[] {
36
+ return [{ type: "index", label: "序号", width: 60 }, ...columns];
37
+ }
38
+ })();
39
+
40
+ return Page.create() as any;
41
+ }
@@ -1,136 +1,136 @@
1
- <template>
2
- <jh-dialog
3
- v-model="visible"
4
- :width="width"
5
- :title="title"
6
- :close-on-click-modal="false"
7
- :close-on-press-escape="false"
8
- >
9
- <BaseQuery
10
- :form="queryParam"
11
- :items="queryItems"
12
- :columns="queryColumns"
13
- :label-width="queryLabelWidth"
14
- @select="select"
15
- @reset="resetQuery"
16
- />
17
-
18
- <BaseTable
19
- ref="tableRef"
20
- :data="list"
21
- :columns="columns"
22
- showToolbar
23
- highlightCurrentRow
24
- currentRowSelectMethod="click"
25
- @row-dblclick="handleRowDblclick"
26
- />
27
-
28
- <jh-pagination
29
- v-show="page.total && page.total > 0"
30
- :total="page.total || 0"
31
- v-model:currentPage="page.current"
32
- v-model:pageSize="page.size"
33
- @current-change="select"
34
- @size-change="select"
35
- />
36
- <template #footer v-if="showFooterButtons">
37
- <div class="dialog-footer">
38
- <BaseToolbar :items="cancelConfirmButtons(close, confirm)" />
39
- </div>
40
- </template>
41
- </jh-dialog>
42
- </template>
43
-
44
- <script setup lang="ts">
45
- import { TableColumnDesc, BaseQueryItemDesc } from "@/types/page";
46
- import { cancelConfirmButtons } from "@jhlc/common-core/src/components/toolbar/toolbar-data";
47
- import { RequestMethod } from "@jhlc/types/src/request-type";
48
- import { createPage } from "./data";
49
-
50
- interface Props {
51
- width?: string;
52
- title?: string;
53
- queryColumns?: number;
54
- queryLabelWidth?: string;
55
- queryItems?: BaseQueryItemDesc[];
56
- tableColumns?: TableColumnDesc[];
57
- apiPath?: string;
58
- requestMethod?: RequestMethod;
59
- showFooterButtons?: boolean;
60
- }
61
-
62
- const props = withDefaults(defineProps<Props>(), {
63
- width: "1200px",
64
- title: "",
65
- queryColumns: 4,
66
- queryLabelWidth: "100px",
67
- queryItems: () => [],
68
- tableColumns: () => [],
69
- apiPath: "",
70
- requestMethod: RequestMethod.get,
71
- showFooterButtons: true
72
- });
73
-
74
- const emits = defineEmits(["ok"]);
75
-
76
- // 弹窗显示状态
77
- const visible = ref(false);
78
- // 固定的查询参数
79
- const constQueryParam = ref<Record<string, any>>({});
80
-
81
- const Page = createPage(
82
- props.apiPath,
83
- constQueryParam.value,
84
- props.queryItems,
85
- props.tableColumns,
86
- props.requestMethod
87
- );
88
-
89
- const {
90
- tableRef: tableRef,
91
- page: page,
92
- list: list,
93
- queryParam: queryParam,
94
- queryItems: queryItems,
95
- columns: columns,
96
- select: select,
97
- resetQuery: resetQuery
98
- } = Page;
99
-
100
- // 确定函数
101
- const confirm = () => {
102
- const selectedRows = tableRef.value?.getSelection();
103
- emits("ok", selectedRows);
104
- close();
105
- };
106
-
107
- // 双击行函数
108
- const handleRowDblclick = (row: any) => {
109
- if (!props.showFooterButtons) return;
110
- emits("ok", row);
111
- close();
112
- };
113
-
114
- // 打开弹窗
115
- const open = (params: Record<string, any>) => {
116
- if (params) {
117
- Object.assign(constQueryParam.value, params);
118
- }
119
- resetQuery();
120
- visible.value = true;
121
- };
122
-
123
- // 关闭弹窗
124
- const close = () => {
125
- visible.value = false;
126
- list.value = [];
127
- };
128
-
129
- // 暴露方法
130
- defineExpose({
131
- open,
132
- close
133
- });
134
- </script>
135
-
136
- <style scoped lang="scss" src="./index.scss"></style>
1
+ <template>
2
+ <jh-dialog
3
+ v-model="visible"
4
+ :width="width"
5
+ :title="title"
6
+ :close-on-click-modal="false"
7
+ :close-on-press-escape="false"
8
+ >
9
+ <BaseQuery
10
+ :form="queryParam"
11
+ :items="queryItems"
12
+ :columns="queryColumns"
13
+ :label-width="queryLabelWidth"
14
+ @select="select"
15
+ @reset="resetQuery"
16
+ />
17
+
18
+ <BaseTable
19
+ ref="tableRef"
20
+ :data="list"
21
+ :columns="columns"
22
+ showToolbar
23
+ highlightCurrentRow
24
+ currentRowSelectMethod="click"
25
+ @row-dblclick="handleRowDblclick"
26
+ />
27
+
28
+ <jh-pagination
29
+ v-show="page.total && page.total > 0"
30
+ :total="page.total || 0"
31
+ v-model:currentPage="page.current"
32
+ v-model:pageSize="page.size"
33
+ @current-change="select"
34
+ @size-change="select"
35
+ />
36
+ <template #footer v-if="showFooterButtons">
37
+ <div class="dialog-footer">
38
+ <BaseToolbar :items="cancelConfirmButtons(close, confirm)" />
39
+ </div>
40
+ </template>
41
+ </jh-dialog>
42
+ </template>
43
+
44
+ <script setup lang="ts">
45
+ import { TableColumnDesc, BaseQueryItemDesc } from "@/types/page";
46
+ import { cancelConfirmButtons } from "@jhlc/common-core/src/components/toolbar/toolbar-data";
47
+ import { RequestMethod } from "@jhlc/types/src/request-type";
48
+ import { createPage } from "./data";
49
+
50
+ interface Props {
51
+ width?: string;
52
+ title?: string;
53
+ queryColumns?: number;
54
+ queryLabelWidth?: string;
55
+ queryItems?: BaseQueryItemDesc[];
56
+ tableColumns?: TableColumnDesc[];
57
+ apiPath?: string;
58
+ requestMethod?: RequestMethod;
59
+ showFooterButtons?: boolean;
60
+ }
61
+
62
+ const props = withDefaults(defineProps<Props>(), {
63
+ width: "1200px",
64
+ title: "",
65
+ queryColumns: 4,
66
+ queryLabelWidth: "100px",
67
+ queryItems: () => [],
68
+ tableColumns: () => [],
69
+ apiPath: "",
70
+ requestMethod: RequestMethod.get,
71
+ showFooterButtons: true
72
+ });
73
+
74
+ const emits = defineEmits(["ok"]);
75
+
76
+ // 弹窗显示状态
77
+ const visible = ref(false);
78
+ // 固定的查询参数
79
+ const constQueryParam = ref<Record<string, any>>({});
80
+
81
+ const Page = createPage(
82
+ props.apiPath,
83
+ constQueryParam.value,
84
+ props.queryItems,
85
+ props.tableColumns,
86
+ props.requestMethod
87
+ );
88
+
89
+ const {
90
+ tableRef: tableRef,
91
+ page: page,
92
+ list: list,
93
+ queryParam: queryParam,
94
+ queryItems: queryItems,
95
+ columns: columns,
96
+ select: select,
97
+ resetQuery: resetQuery
98
+ } = Page;
99
+
100
+ // 确定函数
101
+ const confirm = () => {
102
+ const selectedRows = tableRef.value?.getSelection();
103
+ emits("ok", selectedRows);
104
+ close();
105
+ };
106
+
107
+ // 双击行函数
108
+ const handleRowDblclick = (row: any) => {
109
+ if (!props.showFooterButtons) return;
110
+ emits("ok", row);
111
+ close();
112
+ };
113
+
114
+ // 打开弹窗
115
+ const open = (params: Record<string, any>) => {
116
+ if (params) {
117
+ Object.assign(constQueryParam.value, params);
118
+ }
119
+ resetQuery();
120
+ visible.value = true;
121
+ };
122
+
123
+ // 关闭弹窗
124
+ const close = () => {
125
+ visible.value = false;
126
+ list.value = [];
127
+ };
128
+
129
+ // 暴露方法
130
+ defineExpose({
131
+ open,
132
+ close
133
+ });
134
+ </script>
135
+
136
+ <style scoped lang="scss" src="./index.scss"></style>
@@ -1,25 +1,25 @@
1
- .spliter-title {
2
- width: 100%;
3
- display: flex;
4
- align-items: center;
5
- background: white;
6
- padding: 8px 0;
7
-
8
- .title-bar {
9
- width: 4px;
10
- height: 20px;
11
- background: var(--el-color-primary);
12
- margin-right: 8px;
13
- flex-shrink: 0;
14
- }
15
-
16
- .title-text {
17
- line-height: 20px;
18
- flex-shrink: 0;
19
- margin-right: 8px;
20
- }
21
-
22
- .el-divider--horizontal {
23
- margin: 18px 0;
24
- }
25
- }
1
+ .spliter-title {
2
+ width: 100%;
3
+ display: flex;
4
+ align-items: center;
5
+ background: white;
6
+ padding: 8px 0;
7
+
8
+ .title-bar {
9
+ width: 4px;
10
+ height: 20px;
11
+ background: var(--el-color-primary);
12
+ margin-right: 8px;
13
+ flex-shrink: 0;
14
+ }
15
+
16
+ .title-text {
17
+ line-height: 20px;
18
+ flex-shrink: 0;
19
+ margin-right: 8px;
20
+ }
21
+
22
+ .el-divider--horizontal {
23
+ margin: 18px 0;
24
+ }
25
+ }
@@ -1,21 +1,21 @@
1
- <template>
2
- <div class="spliter-title">
3
- <div class="title-bar"></div>
4
- <span class="title-text">{{ title }}</span>
5
- <el-divider />
6
- </div>
7
- </template>
8
-
9
- <script setup lang="ts">
10
- interface Props {
11
- title: string;
12
- }
13
-
14
- withDefaults(defineProps<Props>(), {
15
- title: ""
16
- });
17
- </script>
18
-
19
- <style scoped lang="scss">
20
- @import "./index.scss";
21
- </style>
1
+ <template>
2
+ <div class="spliter-title">
3
+ <div class="title-bar"></div>
4
+ <span class="title-text">{{ title }}</span>
5
+ <el-divider />
6
+ </div>
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ interface Props {
11
+ title: string;
12
+ }
13
+
14
+ withDefaults(defineProps<Props>(), {
15
+ title: ""
16
+ });
17
+ </script>
18
+
19
+ <style scoped lang="scss">
20
+ @import "./index.scss";
21
+ </style>