@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,567 @@
1
+ <template>
2
+ <BxContainer id="INQU" page-id="SMSW0101" auto title="查询条件" @btn-click="btnClick">
3
+ <div class="bx-container">
4
+ <div class="table-section">
5
+ <VxePlusForm
6
+ ref="xForm"
7
+ :form-options="formOptions"
8
+ />
9
+ </div>
10
+ <div class="flex flex-col flex-1">
11
+ <h3 class="section-title">
12
+ 选择出库仓库
13
+ </h3>
14
+ <div class="flex flex-col flex-1">
15
+ <VxePlusTable
16
+ id="SMSW0101_result" ref="xGrid" :columns="columns" :form-config="formOptionsWause"
17
+ :service-config="serviceConfig" :show-checkbox="true" :is-edit="true" :edit-rules="editRules"
18
+ :transform-params="transformParams" :pager-config="pagerConfig"
19
+ :transform-response="transformResponse" v-on="gridEvents"
20
+ />
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </BxContainer>
25
+ </template>
26
+
27
+ <script setup lang="ts">
28
+ import { computed, onMounted, reactive, ref } from 'vue'
29
+ import { ElMessage, ElMessageBox } from 'element-plus'
30
+ import type { EiInfo } from '@eplat/ei'
31
+ import { EiBlock, EiCommunicator } from '@eplat/ei'
32
+ import { to } from 'await-to-js'
33
+ import { useRoute, useRouter } from 'vue-router'
34
+ import { multiply } from 'xe-utils'
35
+ import wareHouseVxeTableDialog from '@/views/DM/DW/DMDW9901.vue'
36
+
37
+ import { useTable } from '@/hooks/useTable'
38
+ import BxContainer from '@/components/bx-container/bx-container.vue'
39
+ import { getCodeSetByService } from '@/utils/eiTools'
40
+ import { useTabsStore } from '@/stores/modules/tabs'
41
+ import SMSC9903 from '@/views/SM/SC/SMSC9903.vue'
42
+ import UMUC9902 from '@/views/UM/UC/UMUC9902.vue'
43
+ import { usePageRefreshStore } from '@/stores/modules/pageRefresh'
44
+ import { useLoading } from '@/hooks/useLoading'
45
+ // 声明 BxContainer 的引用
46
+ const bxContainer = ref<InstanceType<typeof BxContainer> | null>(null)
47
+ const route = useRoute()
48
+ const router = useRouter()
49
+ const tabStore = useTabsStore()
50
+ const { swOutstockMainId } = route.query
51
+ const { dwWarehouseId } = route.query
52
+ const { warehouseCode } = route.query
53
+ const { warehouseName } = route.query
54
+ const { warehouseCode2 } = route.query
55
+ const { warehouseName2 } = route.query
56
+ const { scContractCode } = route.query
57
+ const pageRefreshStore = usePageRefreshStore()
58
+ const feeGoodsComponentParam = computed(() => ({
59
+ pageType: 'bank',
60
+ param: {
61
+ ucCorpId: 'QWQ',
62
+ },
63
+ }))
64
+ const componentParam_warehouseStatus = computed(() => {
65
+ return {
66
+ param: {
67
+ warehouseStatus: 40,
68
+ },
69
+ }
70
+ })
71
+ const editRules = reactive({
72
+ toBeAdd: [{ required: true, message: '填写量必填' }],
73
+ })
74
+ const xForm = ref<any>(null)
75
+ const xGrid = ref<any>(null)
76
+
77
+ const formData = reactive({
78
+ swOutstockMainId,
79
+ outstockType: '10',
80
+ createdTimeStart: '',
81
+ createdTimeEnd: '',
82
+ warehouseName,
83
+ dwWarehouseId,
84
+ warehouseCode,
85
+ warehouseName2,
86
+ warehouseCode2,
87
+ orgId: '',
88
+ goodsName: '',
89
+ customerName: '',
90
+ soOrderCode: '',
91
+ scContractCode,
92
+ igLotCode: '',
93
+ qtyButton: 'Y',
94
+ qty: true,
95
+ })
96
+
97
+ const pagerConfig = reactive({
98
+ pageSize: 50,
99
+ pageSizes: [100, 300, 500, 1000],
100
+ })
101
+
102
+ // 需要修改
103
+ function transformParams(formEi: EiInfo) {
104
+ console.log(formData.qtyButton)
105
+ formEi.setAttr({
106
+ qtyButton: formData.qtyButton,
107
+ })
108
+ return formEi
109
+ }
110
+ const columns = useTable().createColumns([
111
+
112
+ {
113
+ field: 'orgId',
114
+ title: '所属帐套',
115
+ fixed: 'left',
116
+ editRender: {
117
+ name: 'tableSelect',
118
+ enabled: false,
119
+ props: {
120
+ codeSet: 'BMBE0000.queryBookOrgByListByPurOrg',
121
+
122
+ promiseFn: (params: any) => getCodeSetByService({
123
+ serviceName: 'BMBE0000',
124
+ methodName: 'queryBookOrgByListByPurOrg',
125
+ params,
126
+ blockName: 'bookResult',
127
+ value: 'orgId',
128
+ label: 'bookAndOrgDeptName',
129
+ }),
130
+ backfillFields: 'bookId,groupId,deptId,companyId',
131
+
132
+ },
133
+ },
134
+ },
135
+ {
136
+ field: 'soOrderMainId',
137
+ title: '发货通知单号',
138
+ visible: false,
139
+ },
140
+ {
141
+ field: 'igLotCode',
142
+ title: '资源号',
143
+ },
144
+ {
145
+ field: 'scContractCode',
146
+ title: '合同号',
147
+ width: 140,
148
+ showOverflow: true,
149
+ },
150
+ {
151
+ field: 'contractName',
152
+ title: '销售合同名称',
153
+ showOverflow: true,
154
+ width: 140,
155
+
156
+ },
157
+ {
158
+ field: 'customerName',
159
+ title: '客户名称',
160
+ showOverflow: true,
161
+ width: 140,
162
+
163
+ },
164
+ {
165
+ field: 'goodsCode',
166
+ title: '商品代码',
167
+ },
168
+ {
169
+ field: 'goodsName',
170
+ title: '商品名称',
171
+ visible: true,
172
+ },
173
+ {
174
+ field: 'goodsNameInvoice',
175
+ title: '商品开票名称',
176
+ visible: false,
177
+ },
178
+ {
179
+ field: 'goodsDescription',
180
+ title: '商品描述',
181
+ visible: false,
182
+ },
183
+ {
184
+ field: 'toBeAdd',
185
+ title: '待添加量',
186
+ visible: true,
187
+ editType: 'input',
188
+ isEdit: true,
189
+ align: 'right',
190
+ headerAlign: 'center',
191
+ formatter: ({ cellValue }) => (cellValue ? Number.parseFloat(cellValue).toFixed(6) : '0'),
192
+ },
193
+ {
194
+ field: 'quantityOrder',
195
+ title: '发货量',
196
+ align: 'right',
197
+ headerAlign: 'center',
198
+ formatter: ({ cellValue }) => (cellValue ? Number.parseFloat(cellValue).toFixed(6) : '0'),
199
+ },
200
+
201
+ {
202
+ field: 'quantityInstockA',
203
+ title: '已出库量',
204
+ visible: true,
205
+ align: 'right',
206
+ headerAlign: 'center',
207
+ formatter: ({ cellValue }) => (cellValue ? Number.parseFloat(cellValue).toFixed(6) : '0'),
208
+ },
209
+ {
210
+ field: 'soOrderCode',
211
+ title: '发货通知单号',
212
+ visible: true,
213
+ },
214
+ {
215
+ field: 'measureUnitName',
216
+ title: '计量单位',
217
+ visible: true,
218
+ },
219
+ {
220
+ field: 'measureUnitCode',
221
+ title: '计量单位代码',
222
+ visible: false,
223
+ },
224
+ {
225
+ field: 'goodsSpecification',
226
+ title: '规格型号',
227
+ visible: true,
228
+ },
229
+ {
230
+ field: 'teamName',
231
+ title: '创业团队名称',
232
+ visible: false,
233
+ },
234
+ {
235
+ field: 'teamCode',
236
+ title: '创业团队',
237
+ editRender: {
238
+ name: 'tableSelect',
239
+ enabled: false,
240
+ props: {
241
+ codeSet: 'BMBF3002.queryTeam',
242
+ promiseFn: (params: any) => getCodeSetByService({
243
+ serviceName: 'BMBF3002',
244
+ methodName: 'queryTeam',
245
+ params,
246
+ blockName: 'result',
247
+ value: 'teamCode',
248
+ label: 'teamName',
249
+ }),
250
+ backfillFields: 'teamName',
251
+ clearable: true,
252
+ filterable: true,
253
+ },
254
+ },
255
+ },
256
+ {
257
+ field: 'h2oValueBase',
258
+ title: '理论水份值',
259
+ formatter: ({ cellValue }) => `${cellValue}%`,
260
+ visible: false,
261
+ },
262
+ ])
263
+
264
+ // 水份值转换
265
+ function transformResponse(data) {
266
+ return data.map((item) => {
267
+ return {
268
+ ...item,
269
+ h2oValueBase: multiply(item.h2oValueBase || 0, 100),
270
+ }
271
+ },
272
+ )
273
+ }
274
+
275
+ const formOptions = reactive({
276
+ id: 'inqu_status',
277
+ data: formData,
278
+ rules: {
279
+ outstockType: [{
280
+ required: true,
281
+ message: '请选择出库单类型',
282
+ }],
283
+ },
284
+ items: [
285
+ {
286
+ field: 'orgId',
287
+ title: '所属帐套',
288
+ required: true,
289
+ itemRender: {
290
+ name: 'formSelect',
291
+ props: {
292
+ codeSet: 'BMBE0000.queryBookOrgByListByPurOrg',
293
+ selectMode: 'one',
294
+ promiseFn: (params: any) => getCodeSetByService({
295
+ serviceName: 'BMBE0000',
296
+ methodName: 'queryBookOrgByListByPurOrg',
297
+ params,
298
+ blockName: 'bookResult',
299
+ value: 'orgId',
300
+ label: 'bookAndOrgDeptName',
301
+ }),
302
+ backfillFields: 'bookId,groupId,deptId,companyId',
303
+
304
+ },
305
+ },
306
+ },
307
+
308
+ {
309
+ field: 'outstockType',
310
+ title: '出库单类型',
311
+ span: 8,
312
+ itemRender: {
313
+ name: 'formSelect',
314
+ props: {
315
+ readonly: true,
316
+ disabled: true,
317
+ codeSet: 'brmerp.sm.outstockType',
318
+ },
319
+ },
320
+ },
321
+ { field: 'soOrderCode', title: '发货通知单号', span: 8, itemRender: { name: 'VxeInput' } },
322
+ {
323
+ field: 'teamCode',
324
+ title: '创业团队',
325
+ itemRender: {
326
+ name: 'formSelect',
327
+ props: {
328
+ codeSet: 'BMBF3002.queryTeam',
329
+ promiseFn: (params: any) => getCodeSetByService({
330
+ serviceName: 'BMBF3002',
331
+ methodName: 'queryTeam',
332
+ params,
333
+ blockName: 'result',
334
+ value: 'teamCode',
335
+ label: 'teamName',
336
+ }),
337
+ },
338
+ },
339
+ },
340
+ {
341
+ field: 'customerName',
342
+ title: '客户名称',
343
+ itemRender: {
344
+ name: 'formSelectDialog',
345
+ props: {
346
+ component: UMUC9902,
347
+ fields: 'customerName',
348
+ dialogFields: 'corpName,corpNameEn',
349
+ },
350
+ },
351
+ },
352
+ { field: 'scContractCode', title: '合同号', span: 8, itemRender: { name: 'VxeInput' } },
353
+ { field: 'contractName', title: '销售合同名称', span: 8, itemRender: { name: 'VxeInput' } },
354
+ {
355
+ field: 'goodsName',
356
+ title: '商品名称',
357
+ itemRender: {
358
+ name: 'formSelectDialog',
359
+ props: {
360
+ component: SMSC9903,
361
+ fields: 'goodsName,',
362
+ dialogFields: 'goodsNameCn,',
363
+ },
364
+ },
365
+ },
366
+ { field: 'igLotCode', title: '资源号', span: 8, itemRender: { name: 'VxeInput' } },
367
+ { field: 'swOutstockMainId', title: '销售出库ID', span: 8, itemRender: { name: 'VxeInput' }, visible: false },
368
+ { field: 'createdTime', title: '发货日期', span: 8, itemRender: {
369
+ name: 'dateRange',
370
+ props: {
371
+ startDate: 'createdTimeStart',
372
+ endDate: 'createdTimeEnd',
373
+ },
374
+ } },
375
+ { field: 'qty', title: '订单量-已出库量>0', span: 8, itemRender: {
376
+ name: 'VxeCheckbox',
377
+ events: {
378
+ change(formParams) {
379
+ const { data } = formParams
380
+ console.log(data.qty)
381
+ if (data.qty) {
382
+ formData.qtyButton = 'Y'
383
+ }
384
+ else {
385
+ formData.qtyButton = 'N'
386
+ }
387
+ },
388
+ },
389
+ }, visible: true, titleWidth: '180px' },
390
+ {
391
+ field: 'warehouseName2',
392
+ title: '仓库名称',
393
+ itemRender: {
394
+ name: 'formSelectDialog',
395
+ props: {
396
+ component: wareHouseVxeTableDialog,
397
+ fields: 'warehouseName2',
398
+ dialogFields: 'warehouseName,warehouseCode',
399
+ componentParam: componentParam_warehouseStatus,
400
+ },
401
+ },
402
+ },
403
+ ],
404
+ })
405
+ const serviceConfig = reactive({
406
+ serviceName: 'SMSW0101',
407
+ queryMethod: 'query',
408
+ })
409
+ const formOptionsWause = reactive({
410
+ id: 'inqu_status',
411
+ data: formData,
412
+ rules: {
413
+ warehouseName: [{
414
+ required: true,
415
+ message: '请选择入库仓库',
416
+ }],
417
+ },
418
+ items: [
419
+ {
420
+ field: 'warehouseName',
421
+ title: '仓库名称',
422
+ itemRender: {
423
+ name: 'formSelectDialog',
424
+ props: {
425
+ component: wareHouseVxeTableDialog,
426
+ fields: 'warehouseName,dwWarehouseId,warehouseCode',
427
+ dialogFields: 'warehouseName,dwWarehouseId,warehouseCode',
428
+ feeGoodsComponentParam,
429
+ },
430
+ },
431
+ },
432
+ { field: 'dwWarehouseId', title: '仓库id', span: 8, itemRender: { name: 'VxeInput' }, visible: false },
433
+ { field: 'warehouseCode', title: '仓库code', span: 8, itemRender: { name: 'VxeInput' }, visible: false },
434
+
435
+ ],
436
+ })
437
+
438
+ const gridEvents = reactive({
439
+ toolbarButtonClick: async ({ code }: { code: string, $grid: any }) => {
440
+ const checkboxRecords = xGrid.value?.getCheckboxRecords()
441
+ checkboxRecords.addBlock(EiBlock.build('inqu', [formData]))
442
+
443
+ if (code !== 'CONFIRM') {
444
+ return
445
+ }
446
+ const resultBlock = checkboxRecords.getBlock('result')
447
+ if (!resultBlock || resultBlock.rows.length === 0) {
448
+ ElMessage.error('请选择要确认的记录')
449
+ return
450
+ }
451
+ if (formData.warehouseName === '') {
452
+ ElMessage.error('请选择仓库信息')
453
+ return false
454
+ }
455
+
456
+ for (let i = 0; i < checkboxRecords.getBlock('result').rows.length; i++) {
457
+ /* 订单状态校验 */
458
+ const toBeAdd = checkboxRecords.getBlock('result').getCell(i, 'toBeAdd')
459
+ if (toBeAdd === '' || toBeAdd === undefined) {
460
+ ElMessage.error('待添加数量无效')
461
+ return false
462
+ }
463
+
464
+ if (toBeAdd <= 0) {
465
+ ElMessage.error('待添加量必须大于0')
466
+ return false
467
+ }
468
+ checkboxRecords.getBlock('inqu').setCell(i, 'warehouseName', formData.warehouseName)
469
+ checkboxRecords.getBlock('inqu').setCell(i, 'dwWarehouseId', formData.dwWarehouseId)
470
+ checkboxRecords.getBlock('inqu').setCell(i, 'warehouseCode', formData.warehouseCode)
471
+ }
472
+
473
+ try {
474
+ await ElMessageBox.confirm('确定要执行确认操作吗?')
475
+ }
476
+ // eslint-disable-next-line unused-imports/no-unused-vars
477
+ catch (cancelError) {
478
+ // 用户点击取消,直接返回不执行后续操作
479
+ return
480
+ }
481
+
482
+ const [err, res] = await to(EiCommunicator.send('SMSW0101', 'confirm', checkboxRecords))
483
+ if (err) {
484
+ console.log(err)
485
+ useLoading().close()
486
+ ElMessage.error(`开制失败,原因:${err}`)
487
+ return false
488
+ }
489
+ else {
490
+ const fullPath = route.fullPath
491
+ pageRefreshStore.setRefreshFlag('SMSW0102')
492
+ tabStore.removeTabs(fullPath)
493
+ /* 跳转到详情页 */
494
+ router.replace({
495
+ path: '/web/SMSW0102',
496
+ query: {
497
+ serviceName: 'SMSW01',
498
+
499
+ swOutstockMainId: res.getAttr().id,
500
+ },
501
+ })
502
+ }
503
+ },
504
+
505
+ })
506
+
507
+ function btnClick(btn: any) {
508
+ if (btn.code === 'QUERY') {
509
+ if (formData.warehouseName2 !== null && formData.warehouseName2 !== '') {
510
+ formData.warehouseName = formData.warehouseName2
511
+ }
512
+ if (formData.warehouseCode2 !== null && formData.warehouseCode2 !== '') {
513
+ formData.warehouseCode = formData.warehouseCode2
514
+ }
515
+ if (formData.warehouseName === null || formData.warehouseName === '') {
516
+ formData.warehouseCode = ''
517
+ }
518
+ xGrid.value.reload()
519
+ }// 更新参数
520
+ if (btn.code === 'RESET') {
521
+ formData.createdTimeStart = ''
522
+ formData.createdTimeEnd = ''
523
+ formData.warehouseName = ''
524
+ formData.dwWarehouseId = ''
525
+ formData.warehouseCode = ''
526
+ formData.warehouseName2 = ''
527
+ formData.warehouseCode2 = ''
528
+ formData.orgId = ''
529
+ formData.goodsName = ''
530
+ formData.customerName = ''
531
+ formData.soOrderCode = ''
532
+ formData.scContractCode = ''
533
+ formData.igLotCode = ''
534
+ formData.qtyButton = 'N'
535
+ formData.qty = false
536
+ // 重置表单UI状态
537
+ xGrid.value.reload()
538
+ }
539
+ }
540
+
541
+ onMounted(() => {
542
+ formOptions.data.outstockType = '10'
543
+ const endDate = new Date()
544
+ const startDate = new Date()
545
+ startDate.setDate(endDate.getDate() - 365) // 7天前
546
+
547
+ const format = (date: Date) => date.toISOString().split('T')[0]
548
+
549
+ formOptions.data.createdTimeStart = format(startDate)
550
+ formOptions.data.createdTimeEnd = format(endDate)
551
+ if (swOutstockMainId) {
552
+ if (bxContainer.value) {
553
+ bxContainer.value.btnSetDisable(['RESET'], true)
554
+ }
555
+ }
556
+ })
557
+ </script>
558
+
559
+ <style scoped>
560
+ section-title {
561
+ padding-left: 8px;
562
+ margin-bottom: 16px;
563
+ font-size: 18px;
564
+ color: #333333;
565
+ border-left: 4px solid #409eff;
566
+ }
567
+ </style>