@brms/ai-skills 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 (90) hide show
  1. package/README.md +256 -0
  2. package/bin/brms-skills.mjs +411 -0
  3. package/package.json +30 -0
  4. package/skills/brms-prototype-generator/SKILL.md +129 -0
  5. package/skills/brms-prototype-generator/agents/openai.yaml +7 -0
  6. package/skills/brms-prototype-generator/examples/few-shot-examples.md +577 -0
  7. package/skills/brms-prototype-generator/references/01-list-query.md +444 -0
  8. package/skills/brms-prototype-generator/references/02-form-entry.md +129 -0
  9. package/skills/brms-prototype-generator/references/03-detail-display.md +125 -0
  10. package/skills/brms-prototype-generator/references/04-composite-page-package.md +339 -0
  11. package/skills/brms-prototype-generator/references/05-dialog-patterns.md +113 -0
  12. package/skills/brms-prototype-generator/references/06-backend-request-patterns.md +118 -0
  13. package/skills/brms-prototype-generator/references/resource-index.md +46 -0
  14. package/skills/brms-prototype-generator/references/system-prompt.md +242 -0
  15. package/skills/brms-prototype-generator/scripts/analyze-doc.mjs +554 -0
  16. package/skills/brms-prototype-generator/scripts/check-project.mjs +228 -0
  17. package/skills/brms-prototype-generator/scripts/discover-targets.mjs +158 -0
  18. package/skills/brms-prototype-generator/scripts/install-codex.mjs +74 -0
  19. package/skills/brms-prototype-generator/scripts/plan-pages.mjs +390 -0
  20. package/skills/brms-prototype-generator/scripts/validate-generated.mjs +838 -0
  21. package/skills/brms-prototype-generator/templates/user-input-template.md +182 -0
  22. package/skills/brms-vxe-plus-developer/SKILL.md +105 -0
  23. package/skills/brms-vxe-plus-developer/agents/openai.yaml +7 -0
  24. package/skills/brms-vxe-plus-developer/references/prototype-to-real.md +54 -0
  25. package/skills/brms-vxe-plus-developer/references/real-base-development.md +110 -0
  26. package/skills/brms-vxe-plus-developer/references/resource-index.md +43 -0
  27. package/skills/brms-vxe-plus-developer/references/review-checklist.md +49 -0
  28. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/01-mental-model.md +150 -0
  29. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/02-vxe-plus-form.md +302 -0
  30. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/03-vxe-plus-table.md +253 -0
  31. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/04-example-map.md +488 -0
  32. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/05-request-and-eiinfo.md +170 -0
  33. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/90-anti-patterns.md +137 -0
  34. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/README.md +43 -0
  35. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/README.md +21 -0
  36. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/A1/P0/A1P01601.vue +483 -0
  37. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/A1/P1/A1P11011.vue +444 -0
  38. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/AB/BP/ABBP0201.vue +1648 -0
  39. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/AM/AF/component/AMAF0601/Bidding/formConfig.ts +228 -0
  40. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/AM/AF/component/AMAF0601/Record/columns.ts +110 -0
  41. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/BM/BR/BMBR01.vue +130 -0
  42. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/BM/BR/component/BMBR01/columns.ts +94 -0
  43. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/BM/BR/component/BMBR01/formConfig.ts +108 -0
  44. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Change/formConfig.ts +123 -0
  45. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Change/index.vue +103 -0
  46. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Clause/columns.ts +48 -0
  47. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Clause/index.vue +202 -0
  48. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Correcte/formConfig.ts +117 -0
  49. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Correcte/index.vue +103 -0
  50. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/Payment/formConfig.ts +90 -0
  51. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/Payment/index.vue +42 -0
  52. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/columns.ts +376 -0
  53. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/index.vue +619 -0
  54. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Domestic/formConfig.ts +73 -0
  55. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Domestic/index.vue +47 -0
  56. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Foreign/formConfig.ts +141 -0
  57. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Foreign/index.vue +42 -0
  58. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/columns.ts +123 -0
  59. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/index.vue +593 -0
  60. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/index.vue +68 -0
  61. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Fee/columns.ts +150 -0
  62. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Fee/index.vue +235 -0
  63. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Files/columns.ts +63 -0
  64. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Files/index.vue +117 -0
  65. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Goods/columns.ts +327 -0
  66. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Goods/index.vue +790 -0
  67. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve/formConfig.ts +341 -0
  68. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve/index.vue +63 -0
  69. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve2/formConfig.ts +232 -0
  70. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve2/index.vue +27 -0
  71. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Diff/columns.ts +46 -0
  72. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Diff/index.vue +92 -0
  73. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/formConfig.ts +979 -0
  74. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/index.vue +62 -0
  75. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Other/formConfig.ts +179 -0
  76. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Other/index.vue +140 -0
  77. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Sign/formConfig.ts +118 -0
  78. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Sign/index.vue +44 -0
  79. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/index.vue +168 -0
  80. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/Major/formConfig.ts +257 -0
  81. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/Major/index.vue +47 -0
  82. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/columns.ts +256 -0
  83. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/index.vue +738 -0
  84. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Price/formConfig.ts +174 -0
  85. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Price/index.vue +51 -0
  86. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Top/index.vue +924 -0
  87. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/SM/SW/SMSW0101.vue +567 -0
  88. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/demo/index.vue +448 -0
  89. package/skills/brms-vxe-plus-developer/scripts/check-project.mjs +259 -0
  90. package/skills/brms-vxe-plus-developer/scripts/check-vxe-plus-page.mjs +137 -0
@@ -0,0 +1,174 @@
1
+ import { computed, inject, reactive } from 'vue'
2
+ import type { Ref } from 'vue'
3
+ import { merge } from 'xe-utils'
4
+ import { getCodeSetByService } from '@/utils/eiTools'
5
+ import { useForm } from '@/hooks/useForm'
6
+ import { isEmpty } from '@/utils/is'
7
+
8
+ export function createFormConfig() {
9
+ const { commonFormSelect, commonFormRadio, commonDateRange, createFormRules, validator, validateField, getFormData } = useForm()
10
+
11
+ const { diffable, detailInfo, diffInfo, foreignFlag } = inject('__PMPC0101__info__') as any
12
+
13
+ const { updateDetailInfo, fetchDetailInfo, saveDetail, getId } = inject('__PMPC0101__method__') as any
14
+
15
+ const { main: mainModule, goods: goodsModule, party: partyModule } = inject('__PMPC0101__module__') as { main: Ref, goods: Ref, party: Ref }
16
+
17
+ const baseModule = computed(() => mainModule?.value?.base)
18
+
19
+ const baseModuleFormData = computed(() => baseModule?.value?.formData)
20
+
21
+ const formData = reactive(merge({
22
+ priceTaxFlag: '',
23
+ taxInclusiveFlag: '',
24
+ currencyCode: '',
25
+ tradeTermsCode: '',
26
+ priceType: '',
27
+ priceSubtype: '',
28
+ pointPricePart: '',
29
+ pointPriceFlag: '',
30
+ pointPriceStart: '',
31
+ pointPriceEnd: '',
32
+ quotationPeriodStart: '',
33
+ quotationPeriodEnd: '',
34
+ }, detailInfo.value))
35
+
36
+ const baseFields = computed(() => {
37
+ return [
38
+ {
39
+ field: 'priceTaxFlag',
40
+ title: '是否含税单价',
41
+ itemRender: commonFormRadio('brmerp.bm.priceTaxFlag', null, {
42
+ events: {
43
+ async change({ currData, isInit }) {
44
+ if (isInit) {
45
+ return
46
+ }
47
+ formData.taxInclusiveFlag = formData.priceTaxFlag
48
+ if (!isEmpty(detailInfo.value.pcContractMainId)) {
49
+ await saveDetail({
50
+ priceTaxFlag: currData?.value,
51
+ }, false)
52
+ const detailData = await fetchDetailInfo({
53
+ id: detailInfo.value[getId('pcContractMainId')],
54
+ }, false)
55
+ const newData = (detailData && detailData[0]) || {}
56
+ console.log('newDetailInfo', newData)
57
+ updateDetailInfo(newData)
58
+ Object.assign(formData, {
59
+ contractAmount: newData.contractAmount || 0,
60
+ contractAmountTax: newData.contractAmountTax || 0,
61
+ contractAmountWithNotTax: newData.contractAmountWithNotTax || 0,
62
+ })
63
+ goodsModule?.value?.reload()
64
+ partyModule?.value?.reload()
65
+ }
66
+ },
67
+ },
68
+ }),
69
+ required: true,
70
+ },
71
+ {
72
+ field: 'taxInclusiveFlag',
73
+ title: '加扣款是否含税',
74
+ itemRender: commonFormRadio('brmerp.bm.yesOrNo'),
75
+ },
76
+ {
77
+ field: 'currencyCode',
78
+ title: '合同币种',
79
+ itemRender: commonFormSelect('DMDC01.queryByCode.currencyCode', {
80
+ promiseFn: (params: any) => getCodeSetByService({
81
+ serviceName: 'DMDC01',
82
+ methodName: 'queryByCode',
83
+ params,
84
+ blockName: 'currencyBlock',
85
+ value: 'valueField',
86
+ label: 'textField',
87
+ }),
88
+ }),
89
+ required: true,
90
+ },
91
+ {
92
+ field: 'tradeTermsCode',
93
+ title: '贸易术语',
94
+ itemRender: commonFormSelect('brmerp.bm.tradeTerms'),
95
+ required: computed(() => foreignFlag.value || ['IMPORT'].includes(baseModuleFormData.value?.contractTypeArea)),
96
+ },
97
+ {
98
+ field: 'priceSubtype',
99
+ title: '定价方式',
100
+ itemRender: commonFormSelect('brmerp.bp.priceSubtype', null, {
101
+ events: {
102
+ change({ currData, isInit }) {
103
+ if (isInit) {
104
+ return
105
+ }
106
+
107
+ const priceSubtype = currData?.value || ''
108
+ formData.pointPriceFlag = priceSubtype === '1' ? 'Y' : 'N'
109
+ formData.pointPricePart = priceSubtype === '1' ? 'Y' : 'N'
110
+ formData.priceType = priceSubtype === '3' ? '10' : '20'
111
+ },
112
+ },
113
+ }),
114
+ required: true,
115
+ },
116
+ {
117
+ field: 'pointPricePart',
118
+ title: '是否我方点价',
119
+ visibleMethod: ({ data }) => data.priceSubtype === '1',
120
+ itemRender: commonFormRadio('brmerp.bm.yesOrNo'),
121
+ required: true,
122
+ },
123
+ {
124
+ field: 'pointPriceDate',
125
+ title: '点价期',
126
+ visibleMethod: ({ data }) => data.priceSubtype === '1',
127
+ itemRender: commonDateRange('pointPriceStart', 'pointPriceEnd'),
128
+ required: true,
129
+ },
130
+ {
131
+ field: 'quotationPeriod',
132
+ title: '计价期',
133
+ visibleMethod: ({ data }) => data.priceSubtype === '2',
134
+ itemRender: commonDateRange('quotationPeriodStart', 'quotationPeriodEnd'),
135
+ required: true,
136
+ },
137
+ ]
138
+ })
139
+
140
+ const getData = () => {
141
+ const data = getFormData(baseFields.value, formData)
142
+ data.pointPriceFlag = formData.pointPriceFlag
143
+ data.pointPricePart = formData.pointPricePart
144
+ data.priceType = formData.priceType
145
+ return data
146
+ }
147
+
148
+ const formRules = computed(() => createFormRules(baseFields.value))
149
+
150
+ const diffConfig = computed(() => {
151
+ const fields = baseFields.value.filter(item => ((item as any).visible ?? true) && !isEmpty(item.field)).map(item => item.field)
152
+ const enabled = diffable.value && Object.keys(diffInfo.value).some(field => fields.includes(field))
153
+ return {
154
+ enabled,
155
+ data: diffInfo.value,
156
+ }
157
+ })
158
+
159
+ const formConfig = reactive({
160
+ data: formData,
161
+ items: baseFields,
162
+ titleWidth: 170,
163
+ rules: formRules,
164
+ diffConfig,
165
+ })
166
+
167
+ return {
168
+ formData,
169
+ getData,
170
+ formConfig,
171
+ validator,
172
+ validateField,
173
+ }
174
+ }
@@ -0,0 +1,51 @@
1
+ <!--
2
+ * @Author: 谢力
3
+ * @Date: 2025-07-22 15:57:39
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2026-03-27 13:38:42
6
+ -->
7
+ <template>
8
+ <BxRoundedContainer>
9
+ <BxContainer title="定价方式">
10
+ <VxePlusForm
11
+ ref="xForm"
12
+ :disabled="!editable"
13
+ :title-asterisk="editable"
14
+ :form-options="formConfig"
15
+ />
16
+ </BxContainer>
17
+ </BxRoundedContainer>
18
+ </template>
19
+
20
+ <script setup lang="ts">
21
+ import { inject, ref } from 'vue'
22
+ import { createFormConfig } from './formConfig'
23
+
24
+ const xForm = ref<any>(null)
25
+
26
+ const { editable } = inject('__PMPC0101__info__') as any
27
+
28
+ const { formData, getData, formConfig, validator, validateField } = createFormConfig()
29
+
30
+ function handleValidator(flag: boolean = true) {
31
+ return validator(xForm, flag)
32
+ }
33
+
34
+ function handleValidateField(field, flag: boolean = true) {
35
+ return validateField(xForm, field, flag)
36
+ }
37
+
38
+ function updateFormData(data) {
39
+ Object.assign(formData, data)
40
+ }
41
+
42
+ defineExpose({
43
+ formData,
44
+ getData,
45
+ validator: handleValidator,
46
+ validateField: handleValidateField,
47
+ updateFormData,
48
+ })
49
+ </script>
50
+
51
+ <style scoped></style>