@mingfuyun/star-allinone 0.3.2 → 0.4.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 (30) hide show
  1. package/README.md +35 -75
  2. package/dist/components/CustomDrawer/index.d.ts +2 -0
  3. package/dist/components/CustomDrawer/index.d.ts.map +1 -1
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.esm.js +1 -1
  7. package/dist/index.js +1 -1
  8. package/dist/tracking/index.d.ts +60 -0
  9. package/dist/tracking/index.d.ts.map +1 -0
  10. package/examples/AGENTS.md +14 -2
  11. package/package.json +4 -2
  12. package/scripts/cli.js +28 -1
  13. package/scripts/gen/doctor.js +293 -0
  14. package/scripts/gen/fields.js +118 -0
  15. package/scripts/gen/fixtures/run.js +78 -10
  16. package/scripts/gen/fixtures/widgets.openapi.json +2 -1
  17. package/scripts/gen/page.js +194 -43
  18. package/skills/README.md +16 -3
  19. package/skills/shared/design-to-page/SKILL.md +3 -3
  20. package/skills/shared/design-to-page/references/list-page-template.md +13 -3
  21. package/skills/shared/design-to-page/references/overlays.md +6 -0
  22. package/skills/shared/design-to-page/references/page-conventions.md +2 -1
  23. package/skills/shared/project-conventions/references/architecture.md +5 -2
  24. package/skills/shared/project-conventions/references/component-contract.md +38 -0
  25. package/skills/shared/project-conventions/references/mfprotable.md +59 -0
  26. package/skills/shared/project-conventions/references/quality-checklist.md +14 -0
  27. package/skills/shared/project-conventions/references/review-checklist.md +2 -2
  28. package/skills/shared/publish-test/SKILL.md +10 -0
  29. package/skills/shared/review-and-submit/references/ai-review.md +5 -1
  30. package/skills/shared/review-and-submit/references/verify.md +2 -0
package/README.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # @mingfuyun/star-allinone
2
2
 
3
- 星系运维前端能力包 - 包含Cron表达式生成器等实用组件
3
+ 星系运维前端能力包。运行时只导出 Cron / CustomDrawer / BaseModal / HocModal / ErrorBoundary。表格、布局、权限包装在**业务仓**,不在本包。
4
+
5
+ **导入合同(写错会被 `doctor` 拦住):**
6
+
7
+ | 能力 | 从哪里 import | 不要 |
8
+ | --- | --- | --- |
9
+ | 弹层 overlays | `import { CustomDrawer, BaseModal, HocModal } from '@mingfuyun/star-allinone'` | 不要从 `@/components/CustomDrawer` 抄一份 |
10
+ | 错误边界 | `import { ErrorBoundary } from '@mingfuyun/star-allinone'` | — |
11
+ | Cron | `import { Cron } from '@mingfuyun/star-allinone'` | — |
12
+ | 管理列表表格 | `import MFProTable from '@/components/CommonTable/MFProTable'` | **没有** `MFTablePro`。不要从本包 import 表格 |
13
+ | 请求 | `import Service from '@/services'`(内部 `MFRequest`) | 页面不要直接 axios |
14
+
15
+ Peer 是 **React 18.3.1**,不是 React 19。
4
16
 
5
17
  ## 📦 安装
6
18
 
@@ -35,9 +47,10 @@ pnpm exec star-allinone skills sync --dry-run
35
47
  pnpm exec star-allinone skills sync
36
48
  pnpm exec star-allinone gen service --operation "GET /api/v1/devices/"
37
49
  pnpm exec star-allinone gen page --feature Widgets --route /widgets --title 组件管理 --list-operation "GET /api/v1/widgets/"
50
+ pnpm exec star-allinone doctor
38
51
  ```
39
52
 
40
- `gen service` 按 OpenAPI/Swagger 写一条 `MFRequest` 方法和对应类型。`gen page` 生成标准列表页骨架,并可先生成相关 Service。
53
+ `gen service` 按 OpenAPI/Swagger 写一条 `MFRequest` 方法和对应类型。`gen page` 按 schema 生成列类型、必填和 enum 表单,探测到 `src/components/Page/Container/config.tsx` 时注册 Tab。`doctor` 检查配置、OpenAPI、`MFProTable` 路径、Skill 是否过期、以及错误 import。
41
54
 
42
55
  `list` 查看包内公共 skill。`sync` 把它们写入当前项目的 `.agents/skills/shared-*`,会整体替换过期的 `shared-*`,但不会改 `custom-*`。仓库根没有 `AGENTS.md` 时,会从 `examples/AGENTS.md` 补一份,已有文件不覆盖。
43
56
 
@@ -132,52 +145,15 @@ pnpm install
132
145
 
133
146
  ### 在 Umi 项目中使用
134
147
 
135
- 如果您的项目使用 **Umi** 框架,组件库会自动从您的项目中获取 `@umijs/max` 的能力(如 `useAccess`)。
136
-
137
- **确保安装 peerDependencies:**
138
-
139
- ```bash
140
- # Umi 项目通常已经安装了 @umijs/max,如果没有,请安装:
141
- npm install @umijs/max
142
- # 或
143
- yarn add @umijs/max
144
- # 或
145
- pnpm add @umijs/max
146
- ```
147
-
148
- **工作原理:**
149
-
150
- 1. 组件库通过 `webpack externals` 配置,不会打包 `@umijs/max`
151
- 2. 运行时,组件库会从业务项目的 `node_modules` 中动态获取 `@umijs/max`
152
- 3. 组件库中的权限相关功能(如 `MFTablePro` 的权限过滤)会自动使用您项目中的 `useAccess` Hook
153
-
154
- **示例:在 Umi 项目中使用带权限的组件**
148
+ 本包 **不导出表格**。Umi Max 管理端列表用业务仓自己的 `MFProTable`(权限过滤走项目里的 `useAccess` / `withAuth`):
155
149
 
156
150
  ```tsx
157
- import React from 'react';
158
- import { MFTablePro } from '@mingfuyun/star-allinone';
159
- import { useAccess } from '@umijs/max';
160
-
161
- function TablePage() {
162
- // 组件库会自动使用您项目中的 useAccess
163
- // 无需手动传递,组件库内部会自动获取
164
- return (
165
- <MFTablePro
166
- columns={[
167
- {
168
- title: '操作',
169
- dataIndex: 'action',
170
- render: (_, record) => (
171
- <Button permission="edit">编辑</Button>
172
- ),
173
- },
174
- ]}
175
- // ... 其他配置
176
- />
177
- );
178
- }
151
+ import MFProTable from '@/components/CommonTable/MFProTable';
152
+ import { CustomDrawer, HocModal } from '@mingfuyun/star-allinone';
179
153
  ```
180
154
 
155
+ 完整 props 合同见同步后的 `.agents/skills/shared-project-conventions/references/mfprotable.md`。
156
+
181
157
  ## 🚀 快速开始
182
158
 
183
159
  ### 基础使用
@@ -603,12 +579,12 @@ function Page() {
603
579
 
604
580
  ## 📋 依赖要求
605
581
 
606
- - React >= 19.1.1
607
- - React-DOM >= 19.1.1
582
+ - React **18.3.1**(`peerDependencies`,与星眼/星链一致)
583
+ - React-DOM 18.3.1
608
584
  - Antd >= 5.27.3
609
- - cron-validator >= 1.4.0 (用于Cron表达式验证)
585
+ - cron-validator >= 1.4.0(Cron 表达式验证)
610
586
 
611
- **重要提示**:组件库使用 `peerDependencies` 管理 React 和 Antd,确保你的项目中已安装这些依赖。
587
+ **重要提示**:不要把本包升到 React 19。业务仓和脚手架都是 React 18。
612
588
 
613
589
  ### 常见问题排查
614
590
 
@@ -628,35 +604,19 @@ function Page() {
628
604
  public-hoist-pattern[]=*react*
629
605
  ```
630
606
 
631
- #### 2. "Cannot read properties of undefined (reading 'recentlyCreatedOwnerStacks')" 错误
607
+ #### 2. 多个 React 实例
632
608
 
633
- 这是 React 19 的一个已知问题,可能的原因和解决方案:
609
+ `Invalid hook call` 或 owner stack 报错,通常是 hoist 出了两份 React。用 `pnpm list react` 确认只有 18.3.1,并在 `.npmrc` 中 hoist React:
634
610
 
635
- 1. **React 版本问题**:确保使用 React 19.0.0 或更高版本(推荐 19.1.1+)
636
- 2. **多个 React 实例**:确保项目中只有一个 React 实例
637
- ```bash
638
- # 检查是否有多个 React 实例
639
- npm ls react
640
- # 或
641
- pnpm list react
642
- ```
643
- 3. **pnpm 配置**:如果使用 pnpm,在 `.npmrc` 中添加:
644
- ```ini
645
- shamefully-hoist=true
646
- public-hoist-pattern[]=*react*
647
- public-hoist-pattern[]=*react-dom*
648
- ```
649
- 4. **清除缓存**:尝试清除构建缓存和 node_modules
650
- ```bash
651
- rm -rf node_modules .next dist build
652
- npm install
653
- # 或
654
- pnpm install
655
- ```
656
- 5. **降级到 React 18**:如果问题持续,可以考虑暂时使用 React 18:
657
- ```bash
658
- npm install react@^18.0.0 react-dom@^18.0.0
659
- ```
611
+ ```ini
612
+ shamefully-hoist=true
613
+ public-hoist-pattern[]=*react*
614
+ public-hoist-pattern[]=*react-dom*
615
+ ```
616
+
617
+ ## 云效门禁
618
+
619
+ 业务仓流水线没有仓库内 YAML。建议在云效构建步骤里显式跑 `pnpm typecheck && pnpm lint`。本包的 `npm test` 只跑 codegen fixtures。发版前可用 `ANALYZE=1` 看 chunk。xlsx / 编辑器 / 图表必须 `import()`,不要写进 `app.ts`。
660
620
 
661
621
  ## 🔧 开发
662
622
 
@@ -14,6 +14,8 @@ interface CustomDrawerProps {
14
14
  footer?: ReactNode;
15
15
  extra?: ReactNode;
16
16
  loading?: boolean;
17
+ cancelTrack?: string;
18
+ okTrack?: string;
17
19
  }
18
20
  declare const CustomDrawer: FC<CustomDrawerProps>;
19
21
  export default CustomDrawer;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/CustomDrawer/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,cAAc,CAAC;AAEtB,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA0CvC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/CustomDrawer/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,cAAc,CAAC;AAEtB,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAmDvC,CAAC;AAEF,eAAe,YAAY,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,4 +3,6 @@ export { default as HocModal } from './components/HocModal';
3
3
  export { default as CustomDrawer } from './components/CustomDrawer';
4
4
  export { default as ErrorBoundary } from './components/ErrorBoundary';
5
5
  export { default as BaseModal } from './components/BaseModal';
6
+ export { TRACKING_REPORT_URLS, createTracking, getTrackData, normalizeTrackKey, } from './tracking';
7
+ export type { CreateTrackingOptions, TrackApiOptions, TrackModule, TrackingConfig, TrackingQueueState, } from './tracking';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- import*as e from"react/jsx-runtime";import*as n from"antd";import*as r from"react";var t=[,(e,n,r)=>{r.r(n),r.d(n,{default:()=>d});var t=r(2),a=r(3),o=r(4),l=r(5),i=r(6),u=function(){return u=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},u.apply(this,arguments)},s=["minute","hour","day","month","week"],c={display:"block",lineHeight:2};const d=(0,l.forwardRef)(function(e,n){var r=e.cronExpression,d=(0,l.useState)(""),m=d[0],h=d[1],f=(0,l.useState)({minute:1,hour:1,day:1,month:1,week:1}),p=f[0],x=f[1],v=(0,l.useState)({minute:{min:1,max:2},hour:{min:0,max:1},day:{min:1,max:2},month:{min:1,max:2},week:{min:2,max:3}}),y=v[0],j=v[1],w=(0,l.useState)({minute:{start:0,end:1},hour:{start:0,end:1},day:{start:1,end:1},month:{start:1,end:1},week:{start:1,end:1}}),C=w[0],b=w[1],g=(0,l.useState)({minute:[],hour:[],day:[],month:[],week:[]}),k=g[0],O=g[1],N=(0,l.useRef)(null),R=(0,l.useState)(void 0),S=R[0],I=R[1],E=function(e,n){switch(e){case"minute":return{minute:n};case"hour":return{hour:n};case"day":return{day:n};case"month":return{month:n};case"week":return{week:n};default:return{}}},T=function(){return m},z=function(){x({minute:1,hour:1,day:1,month:1,week:1}),j({minute:{min:1,max:2},hour:{min:0,max:1},day:{min:1,max:2},month:{min:1,max:2},week:{min:2,max:3}}),b({minute:{start:0,end:1},hour:{start:0,end:1},day:{start:1,end:1},month:{start:1,end:1},week:{start:1,end:1}}),O({minute:[],hour:[],day:[],month:[],week:[]}),h("")},P=function(e,n){for(var r=[],t=e;t<=n;t++)r.push({label:t,value:t});return r},B=function(e){for(var n=[],r=["","一","二","三","四","五","六","日"],t=1;t<=e;t++)n.push({label:"星期".concat(r[t]),value:t+1===8?7:t});return n},M=function(e,n){switch(n){case"week":x(u(u(u({},p),{day:2}),E(n,e.target.value)));break;case"day":x(u(u(u({},p),{week:2}),E(n,e.target.value)));break;default:x(u(u({},p),E(n,e.target.value)))}},D=function(e,n,r){var t,a;r(u(u({},k),((t={})[n]=e,t))),x(u(u({},p),((a={})[n]="point",a)))},F=function(e,n,r){var t=y;t[n]="max"===r?{max:e,min:t[n].min}:{max:t[n].max,min:e},j(u(u({},y),E(n,t[n])))},L=function(e,n,r){var t=C;t[n]="start"===r?{start:e,end:t[n].end}:{start:t[n].start,end:e},b(u(u({},C),E(n,t[n])))};return(0,l.useEffect)(function(){r?function(e){h(e);var n=e.split(" "),r={},t={},a={},o={};n.forEach(function(e,n){if(-1!==e.indexOf("/")&&-1!==e.indexOf("-")){r[s[n]]="loop";var l=e.split("/")[0],i=l.split("-")[0];a[s[n]]={start:"*"===l?0:Number(i),end:Number(e.split("/")[1])}}else-1!==e.indexOf("*")?r[s[n]]="*":-1!==e.indexOf("-")?(r[s[n]]="period",t[s[n]]={min:Number(e.split("-")[0]),max:Number(e.split("-")[1])}):(r[s[n]]="point",o[s[n]]=e.split(",").map(function(e){return Number(e)}))}),j(u(u({},y),t)),b(u(u({},C),a)),O(u(u({},k),o)),x(u(u({},p),r))}(r):z()},[r]),(0,l.useEffect)(function(){!function(){var e={};s.forEach(function(n){return e=u(u({},e),function(e){var n=p[e],r=y[e],t=C[e],a=k[e],o="";switch(n){case"*":default:o="*";break;case"point":for(var l=0,i=a;l<i.length;l++)o=o+i[l]+",";o=o.substring(0,o.length-1);break;case"period":o=r.min+"-"+r.max;break;case"loop":o=t.start+"-"+{minute:59,hour:23,day:31,month:12,week:7}[e]+"/"+t.end}return E(e,o)}(n))});var n=e.minute,r=e.hour,t=e.day,a=e.month,o=e.week;h(n+" "+r+" "+t+" "+a+" "+o)}()},[p,y,C]),(0,l.useImperativeHandle)(n,function(){return{refGetCron:T,resetCronState:z,getValidateStatus:function(){return S}}}),(0,l.useEffect)(function(){var e;!function(e){(0,o.isValidCron)(e)?null==I||I("success"):null==I||I("error")}(m),null===(e=N.current)||void 0===e||e.setFieldsValue({cronText:m})},[m]),(0,t.jsxs)("div",{className:i.default.Cron,children:[(0,t.jsx)(a.Tabs,{type:"card",items:[{label:"分",key:"minute",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{value:p.minute,onChange:function(e){return M(e,"minute")},children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每分执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:58,value:y.minute.min,onChange:function(e){return F(e,"minute","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:59,value:y.minute.max,onChange:function(e){return F(e,"minute","max")}}),"分"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:58,value:C.minute.start,onChange:function(e){return L(e,"minute","start")}}),"分开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:58,value:C.minute.end,onChange:function(e){return L(e,"minute","end")}}),"分执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:k.minute,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择分钟",onChange:function(e){return D(e,"minute",O)},options:P(0,59)})})]})]})})},{label:"时",key:"hour",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return M(e,"hour")},value:p.hour,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每小时执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:22,value:y.hour.min,onChange:function(e){return F(e,"hour","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:23,value:y.hour.max,onChange:function(e){return F(e,"hour","max")}}),"时"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:22,value:C.hour.start,onChange:function(e){return L(e,"hour","start")}}),"时开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:22,value:C.hour.end,onChange:function(e){return L(e,"hour","end")}}),"时执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:k.hour,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择小时",onChange:function(e){return D(e,"hour",O)},options:P(0,23)})})]})]})})},{label:"日",key:"day",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return M(e,"day")},value:p.day,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每日执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:30,value:y.day.min,onChange:function(e){return F(e,"day","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:31,value:y.day.max,onChange:function(e){return F(e,"day","max")}}),"日"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:31,value:C.day.start,onChange:function(e){return L(e,"day","start")}}),"日开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:31,value:C.day.end,onChange:function(e){return L(e,"day","end")}}),"日执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:k.day,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择日期",onChange:function(e){return D(e,"day",O)},options:P(1,31)})})]})]})})},{label:"月",key:"month",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return M(e,"month")},value:p.month,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每月执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:11,value:y.month.min,onChange:function(e){return F(e,"month","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:12,value:y.month.max,onChange:function(e){return F(e,"month","max")}}),"月"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:12,value:C.month.start,onChange:function(e){return L(e,"month","start")}}),"月开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:12,value:C.month.end,onChange:function(e){return L(e,"month","end")}}),"月执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:k.month,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择月份",onChange:function(e){return D(e,"month",O)},options:P(1,12)})})]})]})})},{label:"周",key:"week",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return M(e,"week")},value:p.week,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每周执行"}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Radio,{style:c,value:"period",children:"周期从 周"})}),(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Select,{style:{marginTop:7},allowClear:!0,value:y.week.min,placeholder:"请选择周",onChange:function(e){return F(e,"week","min")},options:B(7)})}),(0,t.jsx)(a.Col,{className:i.default.CronWeekFont,children:"- 周"}),(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Select,{style:{marginTop:7},allowClear:!0,value:y.week.max,placeholder:"请选择周",onChange:function(e){return F(e,"week","max")},options:B(7)})})]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:k.week,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择周",onChange:function(e){return D(e,"week",O)},options:B(7)})})]})]})})}]}),(0,t.jsx)(a.Form,{className:i.default.CronPreview,ref:N,children:(0,t.jsx)(a.Form.Item,{label:"预览",name:"cronText",className:i.default.CronPreviewItem,hasFeedback:!0,validateStatus:S,children:(0,t.jsx)(a.Input,{readOnly:!0,style:{width:150}})})})]})})},n=>{n.exports=e},e=>{e.exports=n},function(e,n){var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},r.apply(this,arguments)};Object.defineProperty(n,"__esModule",{value:!0}),n.isValidCron=void 0;var t=function(e){return/^\d+$/.test(e)?Number(e):NaN},a=function(e){return"?"===e},o=function(e,n,r){return e>=n&&e<=r},l=function(e,n,r){return-1===e.search(/[^\d-,\/*]/)&&e.split(",").every(function(e){var a=e.split("/");if(e.trim().endsWith("/"))return!1;if(a.length>2)return!1;var l=a[0],i=a[1];return function(e,n,r){var a=e.split("-");switch(a.length){case 1:return function(e){return"*"===e}(e)||o(t(e),n,r);case 2:var l=a.map(function(e){return t(e)}),i=l[0],u=l[1];return i<=u&&o(i,n,r)&&o(u,n,r);default:return!1}}(l,n,r)&&function(e){return void 0===e||-1===e.search(/[^\d]/)&&t(e)>0}(i)})},i={jan:"1",feb:"2",mar:"3",apr:"4",may:"5",jun:"6",jul:"7",aug:"8",sep:"9",oct:"10",nov:"11",dec:"12"},u={sun:"0",mon:"1",tue:"2",wed:"3",thu:"4",fri:"5",sat:"6"},s={alias:!1,seconds:!1,allowBlankDay:!1,allowSevenAsSunday:!1,allowNthWeekdayOfMonth:!1};n.isValidCron=function(e,n){var c=r(r({},s),n),d=function(e){return e.trim().split(/\s+/)}(e);if(d.length>(c.seconds?6:5)||d.length<5)return!1;var m=[];if(6===d.length){var h=d.shift();h&&m.push(function(e){return l(e,0,59)}(h))}var f=d[0],p=d[1],x=d[2],v=d[3],y=d[4];return m.push(function(e){return l(e,0,59)}(f)),m.push(function(e){return l(e,0,23)}(p)),m.push(function(e,n){return n&&a(e)||l(e,1,31)}(x,c.allowBlankDay)),m.push(function(e,n){if(-1!==e.search(/\/[a-zA-Z]/))return!1;if(n){var r=e.toLowerCase().replace(/[a-z]{3}/g,function(e){return void 0===i[e]?e:i[e]});return l(r,1,12)}return l(e,1,12)}(v,c.alias)),m.push(function(e,n){var r=n.allowBlankDay,i=n.alias,s=n.allowSevenAsSunday,c=n.allowNthWeekdayOfMonth;if(r&&a(e))return!0;if(!r&&a(e))return!1;if(-1!==e.search(/\/[a-zA-Z]/))return!1;var d=i?e.toLowerCase().replace(/[a-z]{3}/g,function(e){return void 0===u[e]?e:u[e]}):e,m=s?7:6,h=d.split("#");if(c&&h.length>=2){var f=h[0],p=h[1];return 0===h.slice(2).length&&o(t(p),1,5)&&o(t(f),0,m)}return l(d,0,m)}(y,c)),m.push(function(e,n,r){return!(r&&a(e)&&a(n))}(x,y,c.allowBlankDay)),m.every(Boolean)}},e=>{e.exports=r},(e,n,r)=>{r.r(n),r.d(n,{default:()=>t});const t={Cron:"vBb5040F",CronWeekFont:"O5XKllcf",CronPreview:"Ci4nV30W",CronPreviewItem:"y5qUyBlE"}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>l});var t=r(2),a=r(5),o=function(){return o=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},o.apply(this,arguments)};function l(e){return(0,a.forwardRef)(function(n,r){var l=(0,a.useState)(!1),i=l[0],u=l[1],s=(0,a.useRef)(null);(0,a.useImperativeHandle)(r,function(){return{show:function(e){s.current=e,u(!0)},hide:function(){u(!1)}}});var c=function(){u(!1)},d=(0,a.useMemo)(function(){return(0,t.jsx)(e,o({},n,{visible:i,handleCancel:c},s.current))},[i]);return(0,t.jsx)(t.Fragment,{children:i?d:null})})}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>o});var t=r(2),a=r(3);r(9);const o=function(e){var n=e.title,r=e.open,o=e.onClose,l=e.onConfirm,i=e.children,u=e.width,s=e.closable,c=e.cancelText,d=e.okText,m=e.footer,h=e.className,f=e.extra,p=void 0===f?null:f,x=e.loading,v=void 0!==x&&x;return(0,t.jsx)(a.Drawer,{title:(0,t.jsx)("div",{style:{float:"left"},children:n}),placement:"right",className:h,closable:s,onClose:o,width:u,open:r,footer:m||(0,t.jsx)("div",{className:"custom-footer",children:(0,t.jsxs)(a.Space,{children:[(0,t.jsx)(a.Button,{onClick:o,children:c||"取消"}),(0,t.jsx)(a.Button,{type:"primary",onClick:l,children:d||"确定"})]})}),extra:p,loading:v,children:i})}},(e,n,r)=>{r.r(n)},(e,n,r)=>{r.r(n),r.d(n,{default:()=>l});var t=r(2),a=r(3),o=r(5);function l(e){var n=e.children,r=e.onError,l=(0,o.useState)({hasError:!1}),i=l[0],u=l[1],s=(0,o.useCallback)(function(e,n){u({hasError:!0,error:e,errorInfo:n}),r&&r(e,n),console.error("Error caught by boundary:",e,n)},[r]);return(0,o.useEffect)(function(){var e=function(e){s(e,{isAsync:!0,timestamp:(new Date).toISOString()})},n=function(n){n.preventDefault(),e(n.reason)},r=function(n){n.preventDefault(),e(n.error)};return window.addEventListener("unhandledrejection",n),window.addEventListener("error",r),function(){window.removeEventListener("unhandledrejection",n),window.removeEventListener("error",r)}},[s]),i.hasError&&i.error?(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(a.Result,{status:"error",title:"System Failed",subTitle:"Please check and modify the following information before resubmitting.",extra:[(0,t.jsx)(a.Button,{type:"primary",onClick:function(){return window.location.reload()},children:"刷新页面"},"console")]})}):(0,t.jsx)(t.Fragment,{children:n})}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>i});var t=r(2),a=r(3),o=r(5),l=(r(12),function(){return l=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},l.apply(this,arguments)});const i=(0,o.memo)(function(e){var n=e.title,r=e.visible,o=e.onOk,i=e.onCancel,u=e.children,s=e.width,c=e.afterClose,d=e.okText,m=e.confirmLoading,h=void 0!==m&&m,f=e.footer,p=void 0===f?void 0:f,x=e.wrapClassName,v=void 0===x?"":x,y=e.cancelText,j=e.className,w=void 0===j?"":j,C=e.keyboard,b=void 0===C||C,g=e.maskClosable,k=void 0===g||g,O=e.mask,N=void 0===O||O,R=e.getContainer,S=e.closable,I=void 0===S||S,E=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(t=Object.getOwnPropertySymbols(e);a<t.length;a++)n.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(e,t[a])&&(r[t[a]]=e[t[a]])}return r}(e,["title","visible","onOk","onCancel","children","width","afterClose","okText","confirmLoading","footer","wrapClassName","cancelText","className","keyboard","maskClosable","mask","getContainer","closable"]);return(0,t.jsx)(a.Modal,l({mask:N,width:s||320,title:n,open:r,onOk:o,onCancel:i,wrapClassName:"".concat(v," base-modal"),centered:!0,afterClose:c,okText:d||"确定",cancelText:y||"取消",confirmLoading:h,footer:p,destroyOnClose:!0,className:w,keyboard:b,maskClosable:k,getContainer:R,closable:I},E,{children:u}))})},(e,n,r)=>{r.r(n)}],a={};function o(e){var n=a[e];if(void 0!==n)return n.exports;var r=a[e]={exports:{}};return t[e].call(r.exports,r,r.exports,o),r.exports}o.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return o.d(n,{a:n}),n},o.d=(e,n)=>{for(var r in n)o.o(n,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var l={};(()=>{o.r(l),o.d(l,{BaseModal:()=>a.default,Cron:()=>e.default,CustomDrawer:()=>r.default,ErrorBoundary:()=>t.default,HocModal:()=>n.default});var e=o(1),n=o(7),r=o(8),t=o(10),a=o(11)})();const i=l.BaseModal,u=l.Cron,s=l.CustomDrawer,c=l.ErrorBoundary,d=l.HocModal;export{i as BaseModal,u as Cron,s as CustomDrawer,c as ErrorBoundary,d as HocModal};
1
+ import*as e from"react/jsx-runtime";import*as n from"antd";import*as r from"react";var t=[,(e,n,r)=>{r.r(n),r.d(n,{default:()=>d});var t=r(2),a=r(3),o=r(4),i=r(5),l=r(6),u=function(){return u=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},u.apply(this,arguments)},s=["minute","hour","day","month","week"],c={display:"block",lineHeight:2};const d=(0,i.forwardRef)(function(e,n){var r=e.cronExpression,d=(0,i.useState)(""),m=d[0],h=d[1],f=(0,i.useState)({minute:1,hour:1,day:1,month:1,week:1}),p=f[0],v=f[1],x=(0,i.useState)({minute:{min:1,max:2},hour:{min:0,max:1},day:{min:1,max:2},month:{min:1,max:2},week:{min:2,max:3}}),y=x[0],w=x[1],g=(0,i.useState)({minute:{start:0,end:1},hour:{start:0,end:1},day:{start:1,end:1},month:{start:1,end:1},week:{start:1,end:1}}),j=g[0],k=g[1],C=(0,i.useState)({minute:[],hour:[],day:[],month:[],week:[]}),b=C[0],R=C[1],T=(0,i.useRef)(null),_=(0,i.useState)(void 0),O=_[0],N=_[1],S=function(e,n){switch(e){case"minute":return{minute:n};case"hour":return{hour:n};case"day":return{day:n};case"month":return{month:n};case"week":return{week:n};default:return{}}},I=function(){return m},z=function(){v({minute:1,hour:1,day:1,month:1,week:1}),w({minute:{min:1,max:2},hour:{min:0,max:1},day:{min:1,max:2},month:{min:1,max:2},week:{min:2,max:3}}),k({minute:{start:0,end:1},hour:{start:0,end:1},day:{start:1,end:1},month:{start:1,end:1},week:{start:1,end:1}}),R({minute:[],hour:[],day:[],month:[],week:[]}),h("")},E=function(e,n){for(var r=[],t=e;t<=n;t++)r.push({label:t,value:t});return r},P=function(e){for(var n=[],r=["","一","二","三","四","五","六","日"],t=1;t<=e;t++)n.push({label:"星期".concat(r[t]),value:t+1===8?7:t});return n},D=function(e,n){switch(n){case"week":v(u(u(u({},p),{day:2}),S(n,e.target.value)));break;case"day":v(u(u(u({},p),{week:2}),S(n,e.target.value)));break;default:v(u(u({},p),S(n,e.target.value)))}},B=function(e,n,r){var t,a;r(u(u({},b),((t={})[n]=e,t))),v(u(u({},p),((a={})[n]="point",a)))},A=function(e,n,r){var t=y;t[n]="max"===r?{max:e,min:t[n].min}:{max:t[n].max,min:e},w(u(u({},y),S(n,t[n])))},L=function(e,n,r){var t=j;t[n]="start"===r?{start:e,end:t[n].end}:{start:t[n].start,end:e},k(u(u({},j),S(n,t[n])))};return(0,i.useEffect)(function(){r?function(e){h(e);var n=e.split(" "),r={},t={},a={},o={};n.forEach(function(e,n){if(-1!==e.indexOf("/")&&-1!==e.indexOf("-")){r[s[n]]="loop";var i=e.split("/")[0],l=i.split("-")[0];a[s[n]]={start:"*"===i?0:Number(l),end:Number(e.split("/")[1])}}else-1!==e.indexOf("*")?r[s[n]]="*":-1!==e.indexOf("-")?(r[s[n]]="period",t[s[n]]={min:Number(e.split("-")[0]),max:Number(e.split("-")[1])}):(r[s[n]]="point",o[s[n]]=e.split(",").map(function(e){return Number(e)}))}),w(u(u({},y),t)),k(u(u({},j),a)),R(u(u({},b),o)),v(u(u({},p),r))}(r):z()},[r]),(0,i.useEffect)(function(){!function(){var e={};s.forEach(function(n){return e=u(u({},e),function(e){var n=p[e],r=y[e],t=j[e],a=b[e],o="";switch(n){case"*":default:o="*";break;case"point":for(var i=0,l=a;i<l.length;i++)o=o+l[i]+",";o=o.substring(0,o.length-1);break;case"period":o=r.min+"-"+r.max;break;case"loop":o=t.start+"-"+{minute:59,hour:23,day:31,month:12,week:7}[e]+"/"+t.end}return S(e,o)}(n))});var n=e.minute,r=e.hour,t=e.day,a=e.month,o=e.week;h(n+" "+r+" "+t+" "+a+" "+o)}()},[p,y,j]),(0,i.useImperativeHandle)(n,function(){return{refGetCron:I,resetCronState:z,getValidateStatus:function(){return O}}}),(0,i.useEffect)(function(){var e;!function(e){(0,o.isValidCron)(e)?null==N||N("success"):null==N||N("error")}(m),null===(e=T.current)||void 0===e||e.setFieldsValue({cronText:m})},[m]),(0,t.jsxs)("div",{className:l.default.Cron,children:[(0,t.jsx)(a.Tabs,{type:"card",items:[{label:"分",key:"minute",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{value:p.minute,onChange:function(e){return D(e,"minute")},children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每分执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:58,value:y.minute.min,onChange:function(e){return A(e,"minute","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:59,value:y.minute.max,onChange:function(e){return A(e,"minute","max")}}),"分"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:58,value:j.minute.start,onChange:function(e){return L(e,"minute","start")}}),"分开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:58,value:j.minute.end,onChange:function(e){return L(e,"minute","end")}}),"分执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:b.minute,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择分钟",onChange:function(e){return B(e,"minute",R)},options:E(0,59)})})]})]})})},{label:"时",key:"hour",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return D(e,"hour")},value:p.hour,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每小时执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:22,value:y.hour.min,onChange:function(e){return A(e,"hour","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:23,value:y.hour.max,onChange:function(e){return A(e,"hour","max")}}),"时"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:22,value:j.hour.start,onChange:function(e){return L(e,"hour","start")}}),"时开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:22,value:j.hour.end,onChange:function(e){return L(e,"hour","end")}}),"时执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:b.hour,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择小时",onChange:function(e){return B(e,"hour",R)},options:E(0,23)})})]})]})})},{label:"日",key:"day",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return D(e,"day")},value:p.day,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每日执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:30,value:y.day.min,onChange:function(e){return A(e,"day","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:31,value:y.day.max,onChange:function(e){return A(e,"day","max")}}),"日"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:31,value:j.day.start,onChange:function(e){return L(e,"day","start")}}),"日开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:31,value:j.day.end,onChange:function(e){return L(e,"day","end")}}),"日执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:b.day,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择日期",onChange:function(e){return B(e,"day",R)},options:E(1,31)})})]})]})})},{label:"月",key:"month",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return D(e,"month")},value:p.month,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每月执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:11,value:y.month.min,onChange:function(e){return A(e,"month","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:12,value:y.month.max,onChange:function(e){return A(e,"month","max")}}),"月"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:12,value:j.month.start,onChange:function(e){return L(e,"month","start")}}),"月开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:12,value:j.month.end,onChange:function(e){return L(e,"month","end")}}),"月执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:b.month,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择月份",onChange:function(e){return B(e,"month",R)},options:E(1,12)})})]})]})})},{label:"周",key:"week",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return D(e,"week")},value:p.week,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每周执行"}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Radio,{style:c,value:"period",children:"周期从 周"})}),(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Select,{style:{marginTop:7},allowClear:!0,value:y.week.min,placeholder:"请选择周",onChange:function(e){return A(e,"week","min")},options:P(7)})}),(0,t.jsx)(a.Col,{className:l.default.CronWeekFont,children:"- 周"}),(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Select,{style:{marginTop:7},allowClear:!0,value:y.week.max,placeholder:"请选择周",onChange:function(e){return A(e,"week","max")},options:P(7)})})]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:b.week,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择周",onChange:function(e){return B(e,"week",R)},options:P(7)})})]})]})})}]}),(0,t.jsx)(a.Form,{className:l.default.CronPreview,ref:T,children:(0,t.jsx)(a.Form.Item,{label:"预览",name:"cronText",className:l.default.CronPreviewItem,hasFeedback:!0,validateStatus:O,children:(0,t.jsx)(a.Input,{readOnly:!0,style:{width:150}})})})]})})},n=>{n.exports=e},e=>{e.exports=n},function(e,n){var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},r.apply(this,arguments)};Object.defineProperty(n,"__esModule",{value:!0}),n.isValidCron=void 0;var t=function(e){return/^\d+$/.test(e)?Number(e):NaN},a=function(e){return"?"===e},o=function(e,n,r){return e>=n&&e<=r},i=function(e,n,r){return-1===e.search(/[^\d-,\/*]/)&&e.split(",").every(function(e){var a=e.split("/");if(e.trim().endsWith("/"))return!1;if(a.length>2)return!1;var i=a[0],l=a[1];return function(e,n,r){var a=e.split("-");switch(a.length){case 1:return function(e){return"*"===e}(e)||o(t(e),n,r);case 2:var i=a.map(function(e){return t(e)}),l=i[0],u=i[1];return l<=u&&o(l,n,r)&&o(u,n,r);default:return!1}}(i,n,r)&&function(e){return void 0===e||-1===e.search(/[^\d]/)&&t(e)>0}(l)})},l={jan:"1",feb:"2",mar:"3",apr:"4",may:"5",jun:"6",jul:"7",aug:"8",sep:"9",oct:"10",nov:"11",dec:"12"},u={sun:"0",mon:"1",tue:"2",wed:"3",thu:"4",fri:"5",sat:"6"},s={alias:!1,seconds:!1,allowBlankDay:!1,allowSevenAsSunday:!1,allowNthWeekdayOfMonth:!1};n.isValidCron=function(e,n){var c=r(r({},s),n),d=function(e){return e.trim().split(/\s+/)}(e);if(d.length>(c.seconds?6:5)||d.length<5)return!1;var m=[];if(6===d.length){var h=d.shift();h&&m.push(function(e){return i(e,0,59)}(h))}var f=d[0],p=d[1],v=d[2],x=d[3],y=d[4];return m.push(function(e){return i(e,0,59)}(f)),m.push(function(e){return i(e,0,23)}(p)),m.push(function(e,n){return n&&a(e)||i(e,1,31)}(v,c.allowBlankDay)),m.push(function(e,n){if(-1!==e.search(/\/[a-zA-Z]/))return!1;if(n){var r=e.toLowerCase().replace(/[a-z]{3}/g,function(e){return void 0===l[e]?e:l[e]});return i(r,1,12)}return i(e,1,12)}(x,c.alias)),m.push(function(e,n){var r=n.allowBlankDay,l=n.alias,s=n.allowSevenAsSunday,c=n.allowNthWeekdayOfMonth;if(r&&a(e))return!0;if(!r&&a(e))return!1;if(-1!==e.search(/\/[a-zA-Z]/))return!1;var d=l?e.toLowerCase().replace(/[a-z]{3}/g,function(e){return void 0===u[e]?e:u[e]}):e,m=s?7:6,h=d.split("#");if(c&&h.length>=2){var f=h[0],p=h[1];return 0===h.slice(2).length&&o(t(p),1,5)&&o(t(f),0,m)}return i(d,0,m)}(y,c)),m.push(function(e,n,r){return!(r&&a(e)&&a(n))}(v,y,c.allowBlankDay)),m.every(Boolean)}},e=>{e.exports=r},(e,n,r)=>{r.r(n),r.d(n,{default:()=>t});const t={Cron:"vBb5040F",CronWeekFont:"O5XKllcf",CronPreview:"Ci4nV30W",CronPreviewItem:"y5qUyBlE"}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>i});var t=r(2),a=r(5),o=function(){return o=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},o.apply(this,arguments)};function i(e){return(0,a.forwardRef)(function(n,r){var i=(0,a.useState)(!1),l=i[0],u=i[1],s=(0,a.useRef)(null);(0,a.useImperativeHandle)(r,function(){return{show:function(e){s.current=e,u(!0)},hide:function(){u(!1)}}});var c=function(){u(!1)},d=(0,a.useMemo)(function(){return(0,t.jsx)(e,o({},n,{visible:l,handleCancel:c},s.current))},[l]);return(0,t.jsx)(t.Fragment,{children:l?d:null})})}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>o});var t=r(2),a=r(3);r(9);const o=function(e){var n=e.title,r=e.open,o=e.onClose,i=e.onConfirm,l=e.children,u=e.width,s=e.closable,c=e.cancelText,d=e.okText,m=e.footer,h=e.className,f=e.extra,p=void 0===f?null:f,v=e.loading,x=void 0!==v&&v,y=e.cancelTrack,w=e.okTrack;return(0,t.jsx)(a.Drawer,{title:(0,t.jsx)("div",{style:{float:"left"},children:n}),placement:"right",className:h,closable:s,onClose:o,width:u,open:r,footer:m||(0,t.jsx)("div",{className:"custom-footer",children:(0,t.jsxs)(a.Space,{children:[(0,t.jsx)(a.Button,{"data-track":y,onClick:o,children:c||"取消"}),(0,t.jsx)(a.Button,{"data-track":w,loading:x,type:"primary",onClick:i,children:d||"确定"})]})}),extra:p,loading:x,children:l})}},(e,n,r)=>{r.r(n)},(e,n,r)=>{r.r(n),r.d(n,{default:()=>i});var t=r(2),a=r(3),o=r(5);function i(e){var n=e.children,r=e.onError,i=(0,o.useState)({hasError:!1}),l=i[0],u=i[1],s=(0,o.useCallback)(function(e,n){u({hasError:!0,error:e,errorInfo:n}),r&&r(e,n),console.error("Error caught by boundary:",e,n)},[r]);return(0,o.useEffect)(function(){var e=function(e){s(e,{isAsync:!0,timestamp:(new Date).toISOString()})},n=function(n){n.preventDefault(),e(n.reason)},r=function(n){n.preventDefault(),e(n.error)};return window.addEventListener("unhandledrejection",n),window.addEventListener("error",r),function(){window.removeEventListener("unhandledrejection",n),window.removeEventListener("error",r)}},[s]),l.hasError&&l.error?(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(a.Result,{status:"error",title:"System Failed",subTitle:"Please check and modify the following information before resubmitting.",extra:[(0,t.jsx)(a.Button,{type:"primary",onClick:function(){return window.location.reload()},children:"刷新页面"},"console")]})}):(0,t.jsx)(t.Fragment,{children:n})}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>l});var t=r(2),a=r(3),o=r(5),i=(r(12),function(){return i=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},i.apply(this,arguments)});const l=(0,o.memo)(function(e){var n=e.title,r=e.visible,o=e.onOk,l=e.onCancel,u=e.children,s=e.width,c=e.afterClose,d=e.okText,m=e.confirmLoading,h=void 0!==m&&m,f=e.footer,p=void 0===f?void 0:f,v=e.wrapClassName,x=void 0===v?"":v,y=e.cancelText,w=e.className,g=void 0===w?"":w,j=e.keyboard,k=void 0===j||j,C=e.maskClosable,b=void 0===C||C,R=e.mask,T=void 0===R||R,_=e.getContainer,O=e.closable,N=void 0===O||O,S=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(t=Object.getOwnPropertySymbols(e);a<t.length;a++)n.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(e,t[a])&&(r[t[a]]=e[t[a]])}return r}(e,["title","visible","onOk","onCancel","children","width","afterClose","okText","confirmLoading","footer","wrapClassName","cancelText","className","keyboard","maskClosable","mask","getContainer","closable"]);return(0,t.jsx)(a.Modal,i({mask:T,width:s||320,title:n,open:r,onOk:o,onCancel:l,wrapClassName:"".concat(x," base-modal"),centered:!0,afterClose:c,okText:d||"确定",cancelText:y||"取消",confirmLoading:h,footer:p,destroyOnClose:!0,className:g,keyboard:k,maskClosable:b,getContainer:_,closable:N},S,{children:u}))})},(e,n,r)=>{r.r(n)},(e,n,r)=>{r.r(n),r.d(n,{TRACKING_REPORT_URLS:()=>a,createTracking:()=>l,getTrackData:()=>i,normalizeTrackKey:()=>o});var t=function(){return t=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},t.apply(this,arguments)},a={test:"https://track-test.cjjd10.com:31029/api/v1/events/collect",prod:"https://track.cjjd10.com:31029/api/v1/events/collect"},o=function(e){return String(e||"").replace(/([a-z\d])([A-Z])/g,"$1_$2").split("").map(function(e){return/[a-z\d]/i.test(e)||e.charCodeAt(0)>127?e:"_"}).join("").replace(/_+/g,"_").replace(/^_+|_+$/g,"").toLowerCase()},i=function(e,n,r,t,a,i){void 0===t&&(t="undefined"==typeof window?"/":window.location.pathname),void 0===i&&(i=function(e){return e});var l=i(t),u=[o(l),o(null==r?void 0:r.key),o(e)].filter(Boolean).join("_"),s=[null==a?void 0:a(l),null==r?void 0:r.name,n].filter(Boolean).join("-");return JSON.stringify({id:u,name:s||n||u})},l=function(e){var n,r,a="",o="/",l=!1,u=[],s=!1,c=function(){return{ready:l,pathname:o}},d=function(){var e;try{null===(e=window.__tracker)||void 0===e||e.destroy()}catch(e){}window.__tracker=void 0,a="",n=void 0},m=function(){var n,r=!!e.getConfig(),t=c();s=r&&e.shouldQueue(t),r&&!(null===(n=e.shouldClearQueue)||void 0===n?void 0:n.call(e,t))||u.splice(0)},h=function(i){o=i||"/",m(),e.getConfig()?l&&!e.shouldQueue(c())&&function(r){var o=e.getConfig();if(o&&window.TrackingSDK){var i=e.getUserId(r);if(!window.__tracker||a!==o.appId||n!==i)try{window.__tracker&&a!==o.appId&&(window.__tracker.destroy(),window.__tracker=void 0),window.__tracker=window.TrackingSDK.createTracker(t(t({},o),{userId:i,debug:!1})),a=o.appId,n=i,function(){if(window.__tracker)for(var e=0,n=u.splice(0);e<n.length;e++){var r=n[e];try{window.__tracker.trackApi("api_request",r)}catch(e){}}}()}catch(e){window.__tracker=void 0,a="",n=void 0}}else d()}(r):d()};return m(),{markReady:function(e){l=!0,r=e,h(o)},syncRoute:h,reportApi:function(e){if(e.url)if(window.__tracker)try{window.__tracker.trackApi("api_request",e)}catch(e){}else s&&(u.length>=50&&u.shift(),u.push(e))},getTrackData:function(n,r,t,a){return i(n,r,t,a,e.getRouteName,e.normalizePathname)},destroy:d}}}],a={};function o(e){var n=a[e];if(void 0!==n)return n.exports;var r=a[e]={exports:{}};return t[e].call(r.exports,r,r.exports,o),r.exports}o.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return o.d(n,{a:n}),n},o.d=(e,n)=>{for(var r in n)o.o(n,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{o.r(i),o.d(i,{BaseModal:()=>a.default,Cron:()=>e.default,CustomDrawer:()=>r.default,ErrorBoundary:()=>t.default,HocModal:()=>n.default,TRACKING_REPORT_URLS:()=>l.TRACKING_REPORT_URLS,createTracking:()=>l.createTracking,getTrackData:()=>l.getTrackData,normalizeTrackKey:()=>l.normalizeTrackKey});var e=o(1),n=o(7),r=o(8),t=o(10),a=o(11),l=o(13)})();const l=i.BaseModal,u=i.Cron,s=i.CustomDrawer,c=i.ErrorBoundary,d=i.HocModal,m=i.TRACKING_REPORT_URLS,h=i.createTracking,f=i.getTrackData,p=i.normalizeTrackKey;export{l as BaseModal,u as Cron,s as CustomDrawer,c as ErrorBoundary,d as HocModal,m as TRACKING_REPORT_URLS,h as createTracking,f as getTrackData,p as normalizeTrackKey};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- !function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("antd"),require("react"),require("react/jsx-runtime")):"function"==typeof define&&define.amd?define(["antd","react","react/jsx-runtime"],n):"object"==typeof exports?exports.MFYAllInOne=n(require("antd"),require("react"),require("react/jsx-runtime")):e.MFYAllInOne=n(e.antd,e.React,e["react/jsx-runtime"])}(this,(e,n,r)=>(()=>{"use strict";var t=[,(e,n,r)=>{r.r(n),r.d(n,{default:()=>d});var t=r(2),a=r(3),o=r(4),i=r(5),l=r(6),u=function(){return u=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},u.apply(this,arguments)},s=["minute","hour","day","month","week"],c={display:"block",lineHeight:2};const d=(0,i.forwardRef)(function(e,n){var r=e.cronExpression,d=(0,i.useState)(""),m=d[0],h=d[1],f=(0,i.useState)({minute:1,hour:1,day:1,month:1,week:1}),p=f[0],x=f[1],v=(0,i.useState)({minute:{min:1,max:2},hour:{min:0,max:1},day:{min:1,max:2},month:{min:1,max:2},week:{min:2,max:3}}),y=v[0],j=v[1],w=(0,i.useState)({minute:{start:0,end:1},hour:{start:0,end:1},day:{start:1,end:1},month:{start:1,end:1},week:{start:1,end:1}}),C=w[0],b=w[1],g=(0,i.useState)({minute:[],hour:[],day:[],month:[],week:[]}),k=g[0],O=g[1],N=(0,i.useRef)(null),R=(0,i.useState)(void 0),S=R[0],I=R[1],T=function(e,n){switch(e){case"minute":return{minute:n};case"hour":return{hour:n};case"day":return{day:n};case"month":return{month:n};case"week":return{week:n};default:return{}}},z=function(){return m},E=function(){x({minute:1,hour:1,day:1,month:1,week:1}),j({minute:{min:1,max:2},hour:{min:0,max:1},day:{min:1,max:2},month:{min:1,max:2},week:{min:2,max:3}}),b({minute:{start:0,end:1},hour:{start:0,end:1},day:{start:1,end:1},month:{start:1,end:1},week:{start:1,end:1}}),O({minute:[],hour:[],day:[],month:[],week:[]}),h("")},P=function(e,n){for(var r=[],t=e;t<=n;t++)r.push({label:t,value:t});return r},F=function(e){for(var n=[],r=["","一","二","三","四","五","六","日"],t=1;t<=e;t++)n.push({label:"星期".concat(r[t]),value:t+1===8?7:t});return n},B=function(e,n){switch(n){case"week":x(u(u(u({},p),{day:2}),T(n,e.target.value)));break;case"day":x(u(u(u({},p),{week:2}),T(n,e.target.value)));break;default:x(u(u({},p),T(n,e.target.value)))}},M=function(e,n,r){var t,a;r(u(u({},k),((t={})[n]=e,t))),x(u(u({},p),((a={})[n]="point",a)))},D=function(e,n,r){var t=y;t[n]="max"===r?{max:e,min:t[n].min}:{max:t[n].max,min:e},j(u(u({},y),T(n,t[n])))},L=function(e,n,r){var t=C;t[n]="start"===r?{start:e,end:t[n].end}:{start:t[n].start,end:e},b(u(u({},C),T(n,t[n])))};return(0,i.useEffect)(function(){r?function(e){h(e);var n=e.split(" "),r={},t={},a={},o={};n.forEach(function(e,n){if(-1!==e.indexOf("/")&&-1!==e.indexOf("-")){r[s[n]]="loop";var i=e.split("/")[0],l=i.split("-")[0];a[s[n]]={start:"*"===i?0:Number(l),end:Number(e.split("/")[1])}}else-1!==e.indexOf("*")?r[s[n]]="*":-1!==e.indexOf("-")?(r[s[n]]="period",t[s[n]]={min:Number(e.split("-")[0]),max:Number(e.split("-")[1])}):(r[s[n]]="point",o[s[n]]=e.split(",").map(function(e){return Number(e)}))}),j(u(u({},y),t)),b(u(u({},C),a)),O(u(u({},k),o)),x(u(u({},p),r))}(r):E()},[r]),(0,i.useEffect)(function(){!function(){var e={};s.forEach(function(n){return e=u(u({},e),function(e){var n=p[e],r=y[e],t=C[e],a=k[e],o="";switch(n){case"*":default:o="*";break;case"point":for(var i=0,l=a;i<l.length;i++)o=o+l[i]+",";o=o.substring(0,o.length-1);break;case"period":o=r.min+"-"+r.max;break;case"loop":o=t.start+"-"+{minute:59,hour:23,day:31,month:12,week:7}[e]+"/"+t.end}return T(e,o)}(n))});var n=e.minute,r=e.hour,t=e.day,a=e.month,o=e.week;h(n+" "+r+" "+t+" "+a+" "+o)}()},[p,y,C]),(0,i.useImperativeHandle)(n,function(){return{refGetCron:z,resetCronState:E,getValidateStatus:function(){return S}}}),(0,i.useEffect)(function(){var e;!function(e){(0,o.isValidCron)(e)?null==I||I("success"):null==I||I("error")}(m),null===(e=N.current)||void 0===e||e.setFieldsValue({cronText:m})},[m]),(0,t.jsxs)("div",{className:l.default.Cron,children:[(0,t.jsx)(a.Tabs,{type:"card",items:[{label:"分",key:"minute",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{value:p.minute,onChange:function(e){return B(e,"minute")},children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每分执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:58,value:y.minute.min,onChange:function(e){return D(e,"minute","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:59,value:y.minute.max,onChange:function(e){return D(e,"minute","max")}}),"分"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:58,value:C.minute.start,onChange:function(e){return L(e,"minute","start")}}),"分开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:58,value:C.minute.end,onChange:function(e){return L(e,"minute","end")}}),"分执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:k.minute,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择分钟",onChange:function(e){return M(e,"minute",O)},options:P(0,59)})})]})]})})},{label:"时",key:"hour",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return B(e,"hour")},value:p.hour,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每小时执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:22,value:y.hour.min,onChange:function(e){return D(e,"hour","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:23,value:y.hour.max,onChange:function(e){return D(e,"hour","max")}}),"时"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:22,value:C.hour.start,onChange:function(e){return L(e,"hour","start")}}),"时开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:22,value:C.hour.end,onChange:function(e){return L(e,"hour","end")}}),"时执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:k.hour,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择小时",onChange:function(e){return M(e,"hour",O)},options:P(0,23)})})]})]})})},{label:"日",key:"day",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return B(e,"day")},value:p.day,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每日执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:30,value:y.day.min,onChange:function(e){return D(e,"day","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:31,value:y.day.max,onChange:function(e){return D(e,"day","max")}}),"日"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:31,value:C.day.start,onChange:function(e){return L(e,"day","start")}}),"日开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:31,value:C.day.end,onChange:function(e){return L(e,"day","end")}}),"日执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:k.day,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择日期",onChange:function(e){return M(e,"day",O)},options:P(1,31)})})]})]})})},{label:"月",key:"month",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return B(e,"month")},value:p.month,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每月执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:11,value:y.month.min,onChange:function(e){return D(e,"month","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:12,value:y.month.max,onChange:function(e){return D(e,"month","max")}}),"月"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:12,value:C.month.start,onChange:function(e){return L(e,"month","start")}}),"月开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:12,value:C.month.end,onChange:function(e){return L(e,"month","end")}}),"月执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:k.month,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择月份",onChange:function(e){return M(e,"month",O)},options:P(1,12)})})]})]})})},{label:"周",key:"week",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return B(e,"week")},value:p.week,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每周执行"}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Radio,{style:c,value:"period",children:"周期从 周"})}),(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Select,{style:{marginTop:7},allowClear:!0,value:y.week.min,placeholder:"请选择周",onChange:function(e){return D(e,"week","min")},options:F(7)})}),(0,t.jsx)(a.Col,{className:l.default.CronWeekFont,children:"- 周"}),(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Select,{style:{marginTop:7},allowClear:!0,value:y.week.max,placeholder:"请选择周",onChange:function(e){return D(e,"week","max")},options:F(7)})})]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:k.week,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择周",onChange:function(e){return M(e,"week",O)},options:F(7)})})]})]})})}]}),(0,t.jsx)(a.Form,{className:l.default.CronPreview,ref:N,children:(0,t.jsx)(a.Form.Item,{label:"预览",name:"cronText",className:l.default.CronPreviewItem,hasFeedback:!0,validateStatus:S,children:(0,t.jsx)(a.Input,{readOnly:!0,style:{width:150}})})})]})})},e=>{e.exports=r},n=>{n.exports=e},function(e,n){var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},r.apply(this,arguments)};Object.defineProperty(n,"__esModule",{value:!0}),n.isValidCron=void 0;var t=function(e){return/^\d+$/.test(e)?Number(e):NaN},a=function(e){return"?"===e},o=function(e,n,r){return e>=n&&e<=r},i=function(e,n,r){return-1===e.search(/[^\d-,\/*]/)&&e.split(",").every(function(e){var a=e.split("/");if(e.trim().endsWith("/"))return!1;if(a.length>2)return!1;var i=a[0],l=a[1];return function(e,n,r){var a=e.split("-");switch(a.length){case 1:return function(e){return"*"===e}(e)||o(t(e),n,r);case 2:var i=a.map(function(e){return t(e)}),l=i[0],u=i[1];return l<=u&&o(l,n,r)&&o(u,n,r);default:return!1}}(i,n,r)&&function(e){return void 0===e||-1===e.search(/[^\d]/)&&t(e)>0}(l)})},l={jan:"1",feb:"2",mar:"3",apr:"4",may:"5",jun:"6",jul:"7",aug:"8",sep:"9",oct:"10",nov:"11",dec:"12"},u={sun:"0",mon:"1",tue:"2",wed:"3",thu:"4",fri:"5",sat:"6"},s={alias:!1,seconds:!1,allowBlankDay:!1,allowSevenAsSunday:!1,allowNthWeekdayOfMonth:!1};n.isValidCron=function(e,n){var c=r(r({},s),n),d=function(e){return e.trim().split(/\s+/)}(e);if(d.length>(c.seconds?6:5)||d.length<5)return!1;var m=[];if(6===d.length){var h=d.shift();h&&m.push(function(e){return i(e,0,59)}(h))}var f=d[0],p=d[1],x=d[2],v=d[3],y=d[4];return m.push(function(e){return i(e,0,59)}(f)),m.push(function(e){return i(e,0,23)}(p)),m.push(function(e,n){return n&&a(e)||i(e,1,31)}(x,c.allowBlankDay)),m.push(function(e,n){if(-1!==e.search(/\/[a-zA-Z]/))return!1;if(n){var r=e.toLowerCase().replace(/[a-z]{3}/g,function(e){return void 0===l[e]?e:l[e]});return i(r,1,12)}return i(e,1,12)}(v,c.alias)),m.push(function(e,n){var r=n.allowBlankDay,l=n.alias,s=n.allowSevenAsSunday,c=n.allowNthWeekdayOfMonth;if(r&&a(e))return!0;if(!r&&a(e))return!1;if(-1!==e.search(/\/[a-zA-Z]/))return!1;var d=l?e.toLowerCase().replace(/[a-z]{3}/g,function(e){return void 0===u[e]?e:u[e]}):e,m=s?7:6,h=d.split("#");if(c&&h.length>=2){var f=h[0],p=h[1];return 0===h.slice(2).length&&o(t(p),1,5)&&o(t(f),0,m)}return i(d,0,m)}(y,c)),m.push(function(e,n,r){return!(r&&a(e)&&a(n))}(x,y,c.allowBlankDay)),m.every(Boolean)}},e=>{e.exports=n},(e,n,r)=>{r.r(n),r.d(n,{default:()=>t});const t={Cron:"vBb5040F",CronWeekFont:"O5XKllcf",CronPreview:"Ci4nV30W",CronPreviewItem:"y5qUyBlE"}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>i});var t=r(2),a=r(5),o=function(){return o=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},o.apply(this,arguments)};function i(e){return(0,a.forwardRef)(function(n,r){var i=(0,a.useState)(!1),l=i[0],u=i[1],s=(0,a.useRef)(null);(0,a.useImperativeHandle)(r,function(){return{show:function(e){s.current=e,u(!0)},hide:function(){u(!1)}}});var c=function(){u(!1)},d=(0,a.useMemo)(function(){return(0,t.jsx)(e,o({},n,{visible:l,handleCancel:c},s.current))},[l]);return(0,t.jsx)(t.Fragment,{children:l?d:null})})}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>o});var t=r(2),a=r(3);r(9);const o=function(e){var n=e.title,r=e.open,o=e.onClose,i=e.onConfirm,l=e.children,u=e.width,s=e.closable,c=e.cancelText,d=e.okText,m=e.footer,h=e.className,f=e.extra,p=void 0===f?null:f,x=e.loading,v=void 0!==x&&x;return(0,t.jsx)(a.Drawer,{title:(0,t.jsx)("div",{style:{float:"left"},children:n}),placement:"right",className:h,closable:s,onClose:o,width:u,open:r,footer:m||(0,t.jsx)("div",{className:"custom-footer",children:(0,t.jsxs)(a.Space,{children:[(0,t.jsx)(a.Button,{onClick:o,children:c||"取消"}),(0,t.jsx)(a.Button,{type:"primary",onClick:i,children:d||"确定"})]})}),extra:p,loading:v,children:l})}},(e,n,r)=>{r.r(n)},(e,n,r)=>{r.r(n),r.d(n,{default:()=>i});var t=r(2),a=r(3),o=r(5);function i(e){var n=e.children,r=e.onError,i=(0,o.useState)({hasError:!1}),l=i[0],u=i[1],s=(0,o.useCallback)(function(e,n){u({hasError:!0,error:e,errorInfo:n}),r&&r(e,n),console.error("Error caught by boundary:",e,n)},[r]);return(0,o.useEffect)(function(){var e=function(e){s(e,{isAsync:!0,timestamp:(new Date).toISOString()})},n=function(n){n.preventDefault(),e(n.reason)},r=function(n){n.preventDefault(),e(n.error)};return window.addEventListener("unhandledrejection",n),window.addEventListener("error",r),function(){window.removeEventListener("unhandledrejection",n),window.removeEventListener("error",r)}},[s]),l.hasError&&l.error?(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(a.Result,{status:"error",title:"System Failed",subTitle:"Please check and modify the following information before resubmitting.",extra:[(0,t.jsx)(a.Button,{type:"primary",onClick:function(){return window.location.reload()},children:"刷新页面"},"console")]})}):(0,t.jsx)(t.Fragment,{children:n})}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>l});var t=r(2),a=r(3),o=r(5),i=(r(12),function(){return i=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},i.apply(this,arguments)});const l=(0,o.memo)(function(e){var n=e.title,r=e.visible,o=e.onOk,l=e.onCancel,u=e.children,s=e.width,c=e.afterClose,d=e.okText,m=e.confirmLoading,h=void 0!==m&&m,f=e.footer,p=void 0===f?void 0:f,x=e.wrapClassName,v=void 0===x?"":x,y=e.cancelText,j=e.className,w=void 0===j?"":j,C=e.keyboard,b=void 0===C||C,g=e.maskClosable,k=void 0===g||g,O=e.mask,N=void 0===O||O,R=e.getContainer,S=e.closable,I=void 0===S||S,T=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(t=Object.getOwnPropertySymbols(e);a<t.length;a++)n.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(e,t[a])&&(r[t[a]]=e[t[a]])}return r}(e,["title","visible","onOk","onCancel","children","width","afterClose","okText","confirmLoading","footer","wrapClassName","cancelText","className","keyboard","maskClosable","mask","getContainer","closable"]);return(0,t.jsx)(a.Modal,i({mask:N,width:s||320,title:n,open:r,onOk:o,onCancel:l,wrapClassName:"".concat(v," base-modal"),centered:!0,afterClose:c,okText:d||"确定",cancelText:y||"取消",confirmLoading:h,footer:p,destroyOnClose:!0,className:w,keyboard:b,maskClosable:k,getContainer:R,closable:I},T,{children:u}))})},(e,n,r)=>{r.r(n)}],a={};function o(e){var n=a[e];if(void 0!==n)return n.exports;var r=a[e]={exports:{}};return t[e].call(r.exports,r,r.exports,o),r.exports}o.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return o.d(n,{a:n}),n},o.d=(e,n)=>{for(var r in n)o.o(n,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{o.r(i),o.d(i,{BaseModal:()=>a.default,Cron:()=>e.default,CustomDrawer:()=>r.default,ErrorBoundary:()=>t.default,HocModal:()=>n.default});var e=o(1),n=o(7),r=o(8),t=o(10),a=o(11)})(),i})());
1
+ !function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("antd"),require("react"),require("react/jsx-runtime")):"function"==typeof define&&define.amd?define(["antd","react","react/jsx-runtime"],n):"object"==typeof exports?exports.MFYAllInOne=n(require("antd"),require("react"),require("react/jsx-runtime")):e.MFYAllInOne=n(e.antd,e.React,e["react/jsx-runtime"])}(this,(e,n,r)=>(()=>{"use strict";var t=[,(e,n,r)=>{r.r(n),r.d(n,{default:()=>d});var t=r(2),a=r(3),o=r(4),i=r(5),l=r(6),u=function(){return u=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},u.apply(this,arguments)},s=["minute","hour","day","month","week"],c={display:"block",lineHeight:2};const d=(0,i.forwardRef)(function(e,n){var r=e.cronExpression,d=(0,i.useState)(""),m=d[0],h=d[1],f=(0,i.useState)({minute:1,hour:1,day:1,month:1,week:1}),p=f[0],v=f[1],x=(0,i.useState)({minute:{min:1,max:2},hour:{min:0,max:1},day:{min:1,max:2},month:{min:1,max:2},week:{min:2,max:3}}),y=x[0],w=x[1],j=(0,i.useState)({minute:{start:0,end:1},hour:{start:0,end:1},day:{start:1,end:1},month:{start:1,end:1},week:{start:1,end:1}}),g=j[0],k=j[1],C=(0,i.useState)({minute:[],hour:[],day:[],month:[],week:[]}),b=C[0],R=C[1],O=(0,i.useRef)(null),_=(0,i.useState)(void 0),N=_[0],T=_[1],S=function(e,n){switch(e){case"minute":return{minute:n};case"hour":return{hour:n};case"day":return{day:n};case"month":return{month:n};case"week":return{week:n};default:return{}}},I=function(){return m},z=function(){v({minute:1,hour:1,day:1,month:1,week:1}),w({minute:{min:1,max:2},hour:{min:0,max:1},day:{min:1,max:2},month:{min:1,max:2},week:{min:2,max:3}}),k({minute:{start:0,end:1},hour:{start:0,end:1},day:{start:1,end:1},month:{start:1,end:1},week:{start:1,end:1}}),R({minute:[],hour:[],day:[],month:[],week:[]}),h("")},E=function(e,n){for(var r=[],t=e;t<=n;t++)r.push({label:t,value:t});return r},P=function(e){for(var n=[],r=["","一","二","三","四","五","六","日"],t=1;t<=e;t++)n.push({label:"星期".concat(r[t]),value:t+1===8?7:t});return n},A=function(e,n){switch(n){case"week":v(u(u(u({},p),{day:2}),S(n,e.target.value)));break;case"day":v(u(u(u({},p),{week:2}),S(n,e.target.value)));break;default:v(u(u({},p),S(n,e.target.value)))}},D=function(e,n,r){var t,a;r(u(u({},b),((t={})[n]=e,t))),v(u(u({},p),((a={})[n]="point",a)))},B=function(e,n,r){var t=y;t[n]="max"===r?{max:e,min:t[n].min}:{max:t[n].max,min:e},w(u(u({},y),S(n,t[n])))},F=function(e,n,r){var t=g;t[n]="start"===r?{start:e,end:t[n].end}:{start:t[n].start,end:e},k(u(u({},g),S(n,t[n])))};return(0,i.useEffect)(function(){r?function(e){h(e);var n=e.split(" "),r={},t={},a={},o={};n.forEach(function(e,n){if(-1!==e.indexOf("/")&&-1!==e.indexOf("-")){r[s[n]]="loop";var i=e.split("/")[0],l=i.split("-")[0];a[s[n]]={start:"*"===i?0:Number(l),end:Number(e.split("/")[1])}}else-1!==e.indexOf("*")?r[s[n]]="*":-1!==e.indexOf("-")?(r[s[n]]="period",t[s[n]]={min:Number(e.split("-")[0]),max:Number(e.split("-")[1])}):(r[s[n]]="point",o[s[n]]=e.split(",").map(function(e){return Number(e)}))}),w(u(u({},y),t)),k(u(u({},g),a)),R(u(u({},b),o)),v(u(u({},p),r))}(r):z()},[r]),(0,i.useEffect)(function(){!function(){var e={};s.forEach(function(n){return e=u(u({},e),function(e){var n=p[e],r=y[e],t=g[e],a=b[e],o="";switch(n){case"*":default:o="*";break;case"point":for(var i=0,l=a;i<l.length;i++)o=o+l[i]+",";o=o.substring(0,o.length-1);break;case"period":o=r.min+"-"+r.max;break;case"loop":o=t.start+"-"+{minute:59,hour:23,day:31,month:12,week:7}[e]+"/"+t.end}return S(e,o)}(n))});var n=e.minute,r=e.hour,t=e.day,a=e.month,o=e.week;h(n+" "+r+" "+t+" "+a+" "+o)}()},[p,y,g]),(0,i.useImperativeHandle)(n,function(){return{refGetCron:I,resetCronState:z,getValidateStatus:function(){return N}}}),(0,i.useEffect)(function(){var e;!function(e){(0,o.isValidCron)(e)?null==T||T("success"):null==T||T("error")}(m),null===(e=O.current)||void 0===e||e.setFieldsValue({cronText:m})},[m]),(0,t.jsxs)("div",{className:l.default.Cron,children:[(0,t.jsx)(a.Tabs,{type:"card",items:[{label:"分",key:"minute",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{value:p.minute,onChange:function(e){return A(e,"minute")},children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每分执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:58,value:y.minute.min,onChange:function(e){return B(e,"minute","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:59,value:y.minute.max,onChange:function(e){return B(e,"minute","max")}}),"分"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:58,value:g.minute.start,onChange:function(e){return F(e,"minute","start")}}),"分开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:58,value:g.minute.end,onChange:function(e){return F(e,"minute","end")}}),"分执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:b.minute,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择分钟",onChange:function(e){return D(e,"minute",R)},options:E(0,59)})})]})]})})},{label:"时",key:"hour",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return A(e,"hour")},value:p.hour,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每小时执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:22,value:y.hour.min,onChange:function(e){return B(e,"hour","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:23,value:y.hour.max,onChange:function(e){return B(e,"hour","max")}}),"时"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:0,max:22,value:g.hour.start,onChange:function(e){return F(e,"hour","start")}}),"时开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:22,value:g.hour.end,onChange:function(e){return F(e,"hour","end")}}),"时执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:b.hour,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择小时",onChange:function(e){return D(e,"hour",R)},options:E(0,23)})})]})]})})},{label:"日",key:"day",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return A(e,"day")},value:p.day,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每日执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:30,value:y.day.min,onChange:function(e){return B(e,"day","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:31,value:y.day.max,onChange:function(e){return B(e,"day","max")}}),"日"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:31,value:g.day.start,onChange:function(e){return F(e,"day","start")}}),"日开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:31,value:g.day.end,onChange:function(e){return F(e,"day","end")}}),"日执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:b.day,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择日期",onChange:function(e){return D(e,"day",R)},options:E(1,31)})})]})]})})},{label:"月",key:"month",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return A(e,"month")},value:p.month,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每月执行"}),(0,t.jsxs)(a.Radio,{style:c,value:"period",children:["周期从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:11,value:y.month.min,onChange:function(e){return B(e,"month","min")}}),"-",(0,t.jsx)(a.InputNumber,{size:"small",min:2,max:12,value:y.month.max,onChange:function(e){return B(e,"month","max")}}),"月"]}),(0,t.jsxs)(a.Radio,{style:c,value:"loop",children:["从",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:12,value:g.month.start,onChange:function(e){return F(e,"month","start")}}),"月开始,每",(0,t.jsx)(a.InputNumber,{size:"small",min:1,max:12,value:g.month.end,onChange:function(e){return F(e,"month","end")}}),"月执行一次"]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:b.month,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择月份",onChange:function(e){return D(e,"month",R)},options:E(1,12)})})]})]})})},{label:"周",key:"week",children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(a.Radio.Group,{onChange:function(e){return A(e,"week")},value:p.week,children:[(0,t.jsx)(a.Radio,{style:c,value:"*",children:"每周执行"}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Radio,{style:c,value:"period",children:"周期从 周"})}),(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Select,{style:{marginTop:7},allowClear:!0,value:y.week.min,placeholder:"请选择周",onChange:function(e){return B(e,"week","min")},options:P(7)})}),(0,t.jsx)(a.Col,{className:l.default.CronWeekFont,children:"- 周"}),(0,t.jsx)(a.Col,{children:(0,t.jsx)(a.Select,{style:{marginTop:7},allowClear:!0,value:y.week.max,placeholder:"请选择周",onChange:function(e){return B(e,"week","max")},options:P(7)})})]}),(0,t.jsxs)(a.Row,{children:[(0,t.jsx)(a.Radio,{style:c,value:"point",children:"指定"}),(0,t.jsx)(a.Col,{span:18,children:(0,t.jsx)(a.Select,{value:b.week,style:{width:"80%",marginTop:7},mode:"multiple",allowClear:!0,placeholder:"请选择周",onChange:function(e){return D(e,"week",R)},options:P(7)})})]})]})})}]}),(0,t.jsx)(a.Form,{className:l.default.CronPreview,ref:O,children:(0,t.jsx)(a.Form.Item,{label:"预览",name:"cronText",className:l.default.CronPreviewItem,hasFeedback:!0,validateStatus:N,children:(0,t.jsx)(a.Input,{readOnly:!0,style:{width:150}})})})]})})},e=>{e.exports=r},n=>{n.exports=e},function(e,n){var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},r.apply(this,arguments)};Object.defineProperty(n,"__esModule",{value:!0}),n.isValidCron=void 0;var t=function(e){return/^\d+$/.test(e)?Number(e):NaN},a=function(e){return"?"===e},o=function(e,n,r){return e>=n&&e<=r},i=function(e,n,r){return-1===e.search(/[^\d-,\/*]/)&&e.split(",").every(function(e){var a=e.split("/");if(e.trim().endsWith("/"))return!1;if(a.length>2)return!1;var i=a[0],l=a[1];return function(e,n,r){var a=e.split("-");switch(a.length){case 1:return function(e){return"*"===e}(e)||o(t(e),n,r);case 2:var i=a.map(function(e){return t(e)}),l=i[0],u=i[1];return l<=u&&o(l,n,r)&&o(u,n,r);default:return!1}}(i,n,r)&&function(e){return void 0===e||-1===e.search(/[^\d]/)&&t(e)>0}(l)})},l={jan:"1",feb:"2",mar:"3",apr:"4",may:"5",jun:"6",jul:"7",aug:"8",sep:"9",oct:"10",nov:"11",dec:"12"},u={sun:"0",mon:"1",tue:"2",wed:"3",thu:"4",fri:"5",sat:"6"},s={alias:!1,seconds:!1,allowBlankDay:!1,allowSevenAsSunday:!1,allowNthWeekdayOfMonth:!1};n.isValidCron=function(e,n){var c=r(r({},s),n),d=function(e){return e.trim().split(/\s+/)}(e);if(d.length>(c.seconds?6:5)||d.length<5)return!1;var m=[];if(6===d.length){var h=d.shift();h&&m.push(function(e){return i(e,0,59)}(h))}var f=d[0],p=d[1],v=d[2],x=d[3],y=d[4];return m.push(function(e){return i(e,0,59)}(f)),m.push(function(e){return i(e,0,23)}(p)),m.push(function(e,n){return n&&a(e)||i(e,1,31)}(v,c.allowBlankDay)),m.push(function(e,n){if(-1!==e.search(/\/[a-zA-Z]/))return!1;if(n){var r=e.toLowerCase().replace(/[a-z]{3}/g,function(e){return void 0===l[e]?e:l[e]});return i(r,1,12)}return i(e,1,12)}(x,c.alias)),m.push(function(e,n){var r=n.allowBlankDay,l=n.alias,s=n.allowSevenAsSunday,c=n.allowNthWeekdayOfMonth;if(r&&a(e))return!0;if(!r&&a(e))return!1;if(-1!==e.search(/\/[a-zA-Z]/))return!1;var d=l?e.toLowerCase().replace(/[a-z]{3}/g,function(e){return void 0===u[e]?e:u[e]}):e,m=s?7:6,h=d.split("#");if(c&&h.length>=2){var f=h[0],p=h[1];return 0===h.slice(2).length&&o(t(p),1,5)&&o(t(f),0,m)}return i(d,0,m)}(y,c)),m.push(function(e,n,r){return!(r&&a(e)&&a(n))}(v,y,c.allowBlankDay)),m.every(Boolean)}},e=>{e.exports=n},(e,n,r)=>{r.r(n),r.d(n,{default:()=>t});const t={Cron:"vBb5040F",CronWeekFont:"O5XKllcf",CronPreview:"Ci4nV30W",CronPreviewItem:"y5qUyBlE"}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>i});var t=r(2),a=r(5),o=function(){return o=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},o.apply(this,arguments)};function i(e){return(0,a.forwardRef)(function(n,r){var i=(0,a.useState)(!1),l=i[0],u=i[1],s=(0,a.useRef)(null);(0,a.useImperativeHandle)(r,function(){return{show:function(e){s.current=e,u(!0)},hide:function(){u(!1)}}});var c=function(){u(!1)},d=(0,a.useMemo)(function(){return(0,t.jsx)(e,o({},n,{visible:l,handleCancel:c},s.current))},[l]);return(0,t.jsx)(t.Fragment,{children:l?d:null})})}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>o});var t=r(2),a=r(3);r(9);const o=function(e){var n=e.title,r=e.open,o=e.onClose,i=e.onConfirm,l=e.children,u=e.width,s=e.closable,c=e.cancelText,d=e.okText,m=e.footer,h=e.className,f=e.extra,p=void 0===f?null:f,v=e.loading,x=void 0!==v&&v,y=e.cancelTrack,w=e.okTrack;return(0,t.jsx)(a.Drawer,{title:(0,t.jsx)("div",{style:{float:"left"},children:n}),placement:"right",className:h,closable:s,onClose:o,width:u,open:r,footer:m||(0,t.jsx)("div",{className:"custom-footer",children:(0,t.jsxs)(a.Space,{children:[(0,t.jsx)(a.Button,{"data-track":y,onClick:o,children:c||"取消"}),(0,t.jsx)(a.Button,{"data-track":w,loading:x,type:"primary",onClick:i,children:d||"确定"})]})}),extra:p,loading:x,children:l})}},(e,n,r)=>{r.r(n)},(e,n,r)=>{r.r(n),r.d(n,{default:()=>i});var t=r(2),a=r(3),o=r(5);function i(e){var n=e.children,r=e.onError,i=(0,o.useState)({hasError:!1}),l=i[0],u=i[1],s=(0,o.useCallback)(function(e,n){u({hasError:!0,error:e,errorInfo:n}),r&&r(e,n),console.error("Error caught by boundary:",e,n)},[r]);return(0,o.useEffect)(function(){var e=function(e){s(e,{isAsync:!0,timestamp:(new Date).toISOString()})},n=function(n){n.preventDefault(),e(n.reason)},r=function(n){n.preventDefault(),e(n.error)};return window.addEventListener("unhandledrejection",n),window.addEventListener("error",r),function(){window.removeEventListener("unhandledrejection",n),window.removeEventListener("error",r)}},[s]),l.hasError&&l.error?(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(a.Result,{status:"error",title:"System Failed",subTitle:"Please check and modify the following information before resubmitting.",extra:[(0,t.jsx)(a.Button,{type:"primary",onClick:function(){return window.location.reload()},children:"刷新页面"},"console")]})}):(0,t.jsx)(t.Fragment,{children:n})}},(e,n,r)=>{r.r(n),r.d(n,{default:()=>l});var t=r(2),a=r(3),o=r(5),i=(r(12),function(){return i=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},i.apply(this,arguments)});const l=(0,o.memo)(function(e){var n=e.title,r=e.visible,o=e.onOk,l=e.onCancel,u=e.children,s=e.width,c=e.afterClose,d=e.okText,m=e.confirmLoading,h=void 0!==m&&m,f=e.footer,p=void 0===f?void 0:f,v=e.wrapClassName,x=void 0===v?"":v,y=e.cancelText,w=e.className,j=void 0===w?"":w,g=e.keyboard,k=void 0===g||g,C=e.maskClosable,b=void 0===C||C,R=e.mask,O=void 0===R||R,_=e.getContainer,N=e.closable,T=void 0===N||N,S=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(t=Object.getOwnPropertySymbols(e);a<t.length;a++)n.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(e,t[a])&&(r[t[a]]=e[t[a]])}return r}(e,["title","visible","onOk","onCancel","children","width","afterClose","okText","confirmLoading","footer","wrapClassName","cancelText","className","keyboard","maskClosable","mask","getContainer","closable"]);return(0,t.jsx)(a.Modal,i({mask:O,width:s||320,title:n,open:r,onOk:o,onCancel:l,wrapClassName:"".concat(x," base-modal"),centered:!0,afterClose:c,okText:d||"确定",cancelText:y||"取消",confirmLoading:h,footer:p,destroyOnClose:!0,className:j,keyboard:k,maskClosable:b,getContainer:_,closable:T},S,{children:u}))})},(e,n,r)=>{r.r(n)},(e,n,r)=>{r.r(n),r.d(n,{TRACKING_REPORT_URLS:()=>a,createTracking:()=>l,getTrackData:()=>i,normalizeTrackKey:()=>o});var t=function(){return t=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var a in n=arguments[r])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e},t.apply(this,arguments)},a={test:"https://track-test.cjjd10.com:31029/api/v1/events/collect",prod:"https://track.cjjd10.com:31029/api/v1/events/collect"},o=function(e){return String(e||"").replace(/([a-z\d])([A-Z])/g,"$1_$2").split("").map(function(e){return/[a-z\d]/i.test(e)||e.charCodeAt(0)>127?e:"_"}).join("").replace(/_+/g,"_").replace(/^_+|_+$/g,"").toLowerCase()},i=function(e,n,r,t,a,i){void 0===t&&(t="undefined"==typeof window?"/":window.location.pathname),void 0===i&&(i=function(e){return e});var l=i(t),u=[o(l),o(null==r?void 0:r.key),o(e)].filter(Boolean).join("_"),s=[null==a?void 0:a(l),null==r?void 0:r.name,n].filter(Boolean).join("-");return JSON.stringify({id:u,name:s||n||u})},l=function(e){var n,r,a="",o="/",l=!1,u=[],s=!1,c=function(){return{ready:l,pathname:o}},d=function(){var e;try{null===(e=window.__tracker)||void 0===e||e.destroy()}catch(e){}window.__tracker=void 0,a="",n=void 0},m=function(){var n,r=!!e.getConfig(),t=c();s=r&&e.shouldQueue(t),r&&!(null===(n=e.shouldClearQueue)||void 0===n?void 0:n.call(e,t))||u.splice(0)},h=function(i){o=i||"/",m(),e.getConfig()?l&&!e.shouldQueue(c())&&function(r){var o=e.getConfig();if(o&&window.TrackingSDK){var i=e.getUserId(r);if(!window.__tracker||a!==o.appId||n!==i)try{window.__tracker&&a!==o.appId&&(window.__tracker.destroy(),window.__tracker=void 0),window.__tracker=window.TrackingSDK.createTracker(t(t({},o),{userId:i,debug:!1})),a=o.appId,n=i,function(){if(window.__tracker)for(var e=0,n=u.splice(0);e<n.length;e++){var r=n[e];try{window.__tracker.trackApi("api_request",r)}catch(e){}}}()}catch(e){window.__tracker=void 0,a="",n=void 0}}else d()}(r):d()};return m(),{markReady:function(e){l=!0,r=e,h(o)},syncRoute:h,reportApi:function(e){if(e.url)if(window.__tracker)try{window.__tracker.trackApi("api_request",e)}catch(e){}else s&&(u.length>=50&&u.shift(),u.push(e))},getTrackData:function(n,r,t,a){return i(n,r,t,a,e.getRouteName,e.normalizePathname)},destroy:d}}}],a={};function o(e){var n=a[e];if(void 0!==n)return n.exports;var r=a[e]={exports:{}};return t[e].call(r.exports,r,r.exports,o),r.exports}o.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return o.d(n,{a:n}),n},o.d=(e,n)=>{for(var r in n)o.o(n,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{o.r(i),o.d(i,{BaseModal:()=>a.default,Cron:()=>e.default,CustomDrawer:()=>r.default,ErrorBoundary:()=>t.default,HocModal:()=>n.default,TRACKING_REPORT_URLS:()=>l.TRACKING_REPORT_URLS,createTracking:()=>l.createTracking,getTrackData:()=>l.getTrackData,normalizeTrackKey:()=>l.normalizeTrackKey});var e=o(1),n=o(7),r=o(8),t=o(10),a=o(11),l=o(13)})(),i})());
@@ -0,0 +1,60 @@
1
+ export declare const TRACKING_REPORT_URLS: {
2
+ readonly test: "https://track-test.cjjd10.com:31029/api/v1/events/collect";
3
+ readonly prod: "https://track.cjjd10.com:31029/api/v1/events/collect";
4
+ };
5
+ export interface TrackingConfig {
6
+ appId: string;
7
+ reportUrl: string;
8
+ }
9
+ export interface TrackModule {
10
+ key: string;
11
+ name: string;
12
+ }
13
+ export interface TrackApiOptions {
14
+ url: string;
15
+ method?: string;
16
+ duration?: number;
17
+ success: boolean;
18
+ status?: number;
19
+ errorMessage?: string;
20
+ }
21
+ export interface Tracker {
22
+ track: (eventName: string, props?: Record<string, unknown>) => void;
23
+ trackApi: (eventName: string, options: TrackApiOptions) => void;
24
+ flush: () => Promise<void>;
25
+ destroy: () => void;
26
+ }
27
+ export interface TrackingSdk {
28
+ createTracker: (options: TrackingConfig & {
29
+ userId?: string;
30
+ debug?: boolean;
31
+ }) => Tracker;
32
+ }
33
+ declare global {
34
+ interface Window {
35
+ TrackingSDK?: TrackingSdk;
36
+ __tracker?: Tracker;
37
+ }
38
+ }
39
+ export interface TrackingQueueState {
40
+ ready: boolean;
41
+ pathname: string;
42
+ }
43
+ export interface CreateTrackingOptions<User> {
44
+ getConfig: () => TrackingConfig | undefined;
45
+ getUserId: (user?: User | null) => string | undefined;
46
+ shouldQueue: (state: TrackingQueueState) => boolean;
47
+ shouldClearQueue?: (state: TrackingQueueState) => boolean;
48
+ getRouteName?: (pathname: string) => string | undefined;
49
+ normalizePathname?: (pathname: string) => string;
50
+ }
51
+ export declare const normalizeTrackKey: (value: unknown) => string;
52
+ export declare const getTrackData: (action: string, name: string, module?: TrackModule, pathname?: string, getRouteName?: (pathname: string) => string | undefined, normalizePathname?: (pathname: string) => string) => string;
53
+ export declare const createTracking: <User>(options: CreateTrackingOptions<User>) => {
54
+ markReady: (user?: User | null) => void;
55
+ syncRoute: (pathname: string) => void;
56
+ reportApi: (event: TrackApiOptions) => void;
57
+ getTrackData: (action: string, name: string, module?: TrackModule, pathname?: string) => string;
58
+ destroy: () => void;
59
+ };
60
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../tracking/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAChE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,CACb,OAAO,EAAE,cAAc,GAAG;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,KACE,OAAO,CAAC;CACd;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB,CAAC,IAAI;IACzC,SAAS,EAAE,MAAM,cAAc,GAAG,SAAS,CAAC;IAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,KAAK,MAAM,GAAG,SAAS,CAAC;IACtD,WAAW,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC;IACpD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD;AAID,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,WAU9B,CAAC;AAEnB,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,MAAM,MAAM,EACZ,SAAS,WAAW,EACpB,iBAAyE,EACzE,eAAe,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EACvD,oBAAmB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAyB,WAcnE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,IAAI,EAAE,SAAS,qBAAqB,CAAC,IAAI,CAAC;uBA0F7C,IAAI,GAAG,IAAI;0BAXR,MAAM;uBAiBT,eAAe;2BAmB/B,MAAM,QACR,MAAM,WACH,WAAW,aACT,MAAM;;CAcpB,CAAC"}
@@ -4,23 +4,35 @@ This is a Umi Max + Ant Design 5 PC admin app. Shared skills live in `.agents/sk
4
4
 
5
5
  Always-on instructions are this file. Do not add `.cursor/rules`.
6
6
 
7
+ Peer React is **18.3.1**. The npm package does not export a table.
8
+
9
+ ## Import contract
10
+
11
+ - Lists: `import MFProTable from '@/components/CommonTable/MFProTable'`. There is no `MFTablePro`. Never import a table from `@mingfuyun/star-allinone`.
12
+ - Overlays: `import { CustomDrawer, BaseModal, HocModal } from '@mingfuyun/star-allinone'`. Do not add or keep `src/components/CustomDrawer` (or local BaseModal / HocModal).
13
+ - Package runtime exports only: `Cron`, `CustomDrawer`, `BaseModal`, `HocModal`, `ErrorBoundary`.
14
+ - Pages: `import Service from '@/services'`. Do not call axios or `src/services/request.tsx` from pages.
15
+
16
+ Props for `MFProTable` are in `.agents/skills/shared-project-conventions/references/mfprotable.md` after skills sync.
17
+
7
18
  ## Default workflow
8
19
 
9
20
  User-facing shared entries only:
10
21
 
11
22
  - One endpoint: `pnpm exec star-allinone gen service --operation "METHOD /path/"` or `$shared-api-to-service`.
12
23
  - Pages: `$shared-design-to-page`. Standard lists run `pnpm exec star-allinone gen page` inside that skill.
24
+ - Project health: `pnpm exec star-allinone doctor`.
13
25
  - Review and commit: `$shared-review-and-submit`. Wait for confirmation.
14
26
  - Test publish: `$shared-publish-test` after explicit pipeline confirmation.
15
27
 
16
28
  ## Hard rules
17
29
 
18
30
  - For non-trivial changes, read `.agents/skills/shared-project-conventions/references/architecture.md`.
19
- - Pages use `import Service from '@/services'`. Do not call axios or `src/services/request.tsx` from pages.
20
- - Lists: `MFProTable`. Forms: `ProForm`. Overlays: `CustomDrawer`, `BaseModal`, `HocModal` from `@mingfuyun/star-allinone`.
21
31
  - Keep columns and actions in `const.tsx`. Empty cells render as `-`.
22
32
  - Keep DTOs in the domain `typings.d.ts` namespace. Preserve backend snake_case.
23
33
  - Do not edit `src/services/request.tsx` for a single endpoint.
24
34
  - Every `await` uses try/catch. Do not use `Modal.confirm`.
25
35
  - After TypeScript changes run `pnpm typecheck`.
36
+ - Do not treat `pnpm test` as unit tests unless that script actually runs a test runner.
37
+ - Heavy modules (`xlsx`, editors, charts) must be `import()`. Do not add them to `src/app.ts`.
26
38
  - If `.agents/project/conventions.md` or `.agents/project/review-rules.md` exists, apply them as additions only.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mingfuyun/star-allinone",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "description": "星系运维前端能力包",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -40,7 +40,9 @@
40
40
  "publish:dev": "node scripts/publish.js --dev",
41
41
  "skills:sync": "node scripts/cli.js skills sync",
42
42
  "skills:list": "node scripts/cli.js skills list",
43
+ "doctor": "node scripts/cli.js doctor",
43
44
  "prepublishOnly": "npm run build",
45
+ "typecheck": "tsc --noEmit",
44
46
  "test": "node scripts/gen/fixtures/run.js",
45
47
  "dev": "webpack --mode=none --watch",
46
48
  "clean": "rm -rf dist"
@@ -76,7 +78,7 @@
76
78
  "webpack-cli": "^5.1.4"
77
79
  },
78
80
  "peerDependencies": {
79
- "react": "18.3.1"
81
+ "react": "^18.3.1"
80
82
  },
81
83
  "publishConfig": {
82
84
  "access": "public",
package/scripts/cli.js CHANGED
@@ -17,6 +17,7 @@ function usage() {
17
17
  console.log(`Usage:
18
18
  star-allinone skills list
19
19
  star-allinone skills sync [--target <dir>] [--dry-run]
20
+ star-allinone doctor [--target <dir>]
20
21
  star-allinone gen service --operation "GET /api/v1/devices/" [--spec <file>] [--domain Devices] [--mock-file] [--dry-run]
21
22
  star-allinone gen page --feature Widgets --route /widgets --title 组件管理 --list-operation "GET /api/v1/widgets/" [--create-operation ...] [--update-operation ...] [--delete-operation ...] [--dry-run]
22
23
 
@@ -26,8 +27,10 @@ skills sync writes package skills/shared/* to <project>/.agents/skills/shared-*.
26
27
  It never writes ~/.codex/skills and never modifies custom-* skills.
27
28
  If <project>/AGENTS.md is missing, it copies examples/AGENTS.md once.
28
29
 
30
+ doctor checks config, OpenAPI, MFRequest, MFProTable, skill sync, and bad imports.
31
+
29
32
  gen service writes one MFRequest method and types from OpenAPI/Swagger.
30
- gen page scaffolds a list + drawer + confirm page and can generate services first.`);
33
+ gen page scaffolds a list + drawer + confirm page from OpenAPI schema and can generate services first.`);
31
34
  process.exitCode = 1;
32
35
  }
33
36
 
@@ -174,10 +177,28 @@ function syncProject(options) {
174
177
  copySkill(path.join(skillsRoot, skillName), destination, skillName, prefix, variables, options);
175
178
  }
176
179
  pruneStaleShared(destination, prefix, syncedNames, options);
180
+ writeSyncStamp(destination, prefix, syncedNames, options);
177
181
  seedAgentsMarkdown(target, options);
178
182
  console.log(`${options.dryRun ? 'Would sync' : 'Synced'} shared skills -> ${destination}`);
179
183
  }
180
184
 
185
+ function writeSyncStamp(destination, prefix, syncedNames, options) {
186
+ const pkg = readJson(path.join(root, 'package.json'));
187
+ const file = path.join(destination, '.star-allinone-sync.json');
188
+ const payload = `${JSON.stringify(
189
+ {
190
+ packageName: pkg.name,
191
+ packageVersion: pkg.version,
192
+ publicSkillPrefix: prefix,
193
+ skills: syncedNames,
194
+ },
195
+ null,
196
+ 2,
197
+ )}\n`;
198
+ console.log(`${options.dryRun ? '[dry-run] ' : ''}${path.relative(path.dirname(destination), file)}`);
199
+ if (!options.dryRun) fs.writeFileSync(file, payload);
200
+ }
201
+
181
202
  function seedAgentsMarkdown(target, options) {
182
203
  const dest = path.join(target, 'AGENTS.md');
183
204
  const source = path.join(root, 'examples', 'AGENTS.md');
@@ -195,6 +216,12 @@ function main() {
195
216
  if (positional.length) return usage();
196
217
  return syncProject(options);
197
218
  }
219
+ if (group === 'doctor') {
220
+ const args = [command, ...rest].filter((item) => typeof item === 'string');
221
+ const { options, positional } = parseArgs(args);
222
+ if (positional.length) return usage();
223
+ return require('./gen/doctor').runDoctor(process.cwd(), options);
224
+ }
198
225
  if (group === 'gen') {
199
226
  const { options, positional } = parseArgs(rest);
200
227
  if (positional.length) return usage();