mall-components 1.0.2 → 1.0.4

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.
@@ -1,4 +1,4 @@
1
- var MallComponents=(()=>{var fr=Object.create;var Ze=Object.defineProperty;var hr=Object.getOwnPropertyDescriptor;var yr=Object.getOwnPropertyNames;var vr=Object.getPrototypeOf,Cr=Object.prototype.hasOwnProperty;var ht=(d,r)=>()=>(r||d((r={exports:{}}).exports,r),r.exports),xr=(d,r)=>{for(var l in r)Ze(d,l,{get:r[l],enumerable:!0})},zt=(d,r,l,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let k of yr(r))!Cr.call(d,k)&&k!==l&&Ze(d,k,{get:()=>r[k],enumerable:!(p=hr(r,k))||p.enumerable});return d};var V=(d,r,l)=>(l=d!=null?fr(vr(d)):{},zt(r||!d||!d.__esModule?Ze(l,"default",{value:d,enumerable:!0}):l,d)),Sr=d=>zt(Ze({},"__esModule",{value:!0}),d);var De=ht((Jr,_t)=>{_t.exports=window.antd});var ke=ht((Qr,Yt)=>{Yt.exports=Object.assign(window.React,{jsx:window.React.createElement,jsxs:window.React.createElement,Fragment:window.React.Fragment})});var ze=ht((Hr,Vt)=>{Vt.exports=window.icons});var qr={};xr(qr,{AdminLayout:()=>pt,CouponCard:()=>at,OrderForm:()=>nt,OrderList:()=>ot,ProductForm:()=>xt,ProductList:()=>Ct,PromotionCard:()=>it,RoleCard:()=>lt,TabPane:()=>gt,UserCard:()=>st,default:()=>$r});var _n=V(De());var F=V(ke()),me=V(De()),Ue=V(ze());var _e=class{static create(r){if(!r)return console.warn("[DataSourceAdapterFactory] config is undefined, using mock adapter"),new We({type:"mock",mockData:{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}});if(!r.type)return console.warn("[DataSourceAdapterFactory] config.type is undefined, using mock adapter"),new We({type:"mock",mockData:r.mockData||{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}});switch(r.type){case"rest":return new yt(r);case"mock":return new We(r);case"variable":return new vt(r);default:return console.warn(`[DataSourceAdapterFactory] Unsupported data source type: ${r.type}, using mock adapter`),new We({type:"mock",mockData:{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}})}}},yt=class{constructor(r){this.config=r}async fetch(r){let l=this.buildUrl(r),p=await fetch(l,{method:this.config.method||"GET",headers:{"Content-Type":"application/json",...this.config.headers},body:this.config.method!=="GET"?JSON.stringify(r):void 0});if(!p.ok)throw new Error(`HTTP error! status: ${p.status}`);let k=await p.json();if(this.config.transform)try{k=new Function("data",this.config.transform)(k)}catch(B){console.error("Transform function error:",B)}return k}async submit(r){return(await fetch(this.config.api,{method:"POST",headers:{"Content-Type":"application/json",...this.config.headers},body:JSON.stringify(r)})).json()}async delete(r){return(await fetch(`${this.config.api}/${r}`,{method:"DELETE",headers:this.config.headers})).json()}async update(r,l){return(await fetch(`${this.config.api}/${r}`,{method:"PUT",headers:{"Content-Type":"application/json",...this.config.headers},body:JSON.stringify(l)})).json()}buildUrl(r){if(!r||this.config.method!=="GET")return this.config.api;let l=new URL(this.config.api,window.location.origin);return Object.keys(r).forEach(p=>{r[p]!==void 0&&r[p]!==null&&r[p]!==""&&l.searchParams.append(p,r[p])}),l.toString()}},We=class{constructor(r){this.config=r}async fetch(r){console.log("[MockDataAdapter] fetch \u88AB\u8C03\u7528\uFF0Cconfig:",this.config,"params:",r),await new Promise(p=>setTimeout(p,300));let l=this.config.mockData;if(console.log("[MockDataAdapter] \u539F\u59CB mockData:",l,"\u7C7B\u578B:",typeof l),!l||l==="")console.log("[MockDataAdapter] mockData \u4E3A\u7A7A\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u6570\u636E"),l={code:200,message:"success",data:{pageNum:1,pageSize:10,total:50,list:[{id:1,name:"\u65F6\u5C1A\u8FD0\u52A8\u978B",productSn:"PRODUCT001",price:269,stock:100,sale:120,brandName:"\u65F6\u5C1A\u8FD0\u52A8",productCategoryName:"\u978B\u5B50",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:1,verifyStatus:1},{id:2,name:"\u4F11\u95F2T\u6064",productSn:"PRODUCT002",price:99,stock:200,sale:350,brandName:"\u4F11\u95F2\u670D\u9970",productCategoryName:"\u8863\u670D",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:0,verifyStatus:1},{id:3,name:"\u53CC\u80A9\u80CC\u5305",productSn:"PRODUCT003",price:189,stock:80,sale:80,brandName:"\u65C5\u884C\u7BB1\u5305",productCategoryName:"\u914D\u9970",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:0,recommandStatus:1,verifyStatus:1},{id:4,name:"\u8FD0\u52A8\u624B\u8868",productSn:"PRODUCT004",price:499,stock:50,sale:60,brandName:"\u667A\u80FD\u6570\u7801",productCategoryName:"\u6570\u7801",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:1,verifyStatus:1},{id:5,name:"\u725B\u4ED4\u88E4",productSn:"PRODUCT005",price:199,stock:150,sale:280,brandName:"\u65F6\u5C1A\u725B\u4ED4",productCategoryName:"\u8863\u670D",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:0,recommandStatus:0,verifyStatus:1}]}};else try{typeof l=="string"&&(l=JSON.parse(l)),console.log("[MockDataAdapter] JSON \u89E3\u6790\u540E\u7684\u6570\u636E:",l)}catch(p){console.error("[MockDataAdapter] JSON \u89E3\u6790\u5931\u8D25:",p),l={code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}}if(this.config.transform)try{l=new Function("data",this.config.transform)(l)}catch(p){console.error("Transform function error:",p)}if(console.log("[MockDataAdapter] \u6700\u7EC8\u8FD4\u56DE\u6570\u636E:",l),r?.pageNum&&r?.pageSize&&l?.data?.list){let p=(r.pageNum-1)*r.pageSize,k=p+r.pageSize;return{...l,data:{...l.data,list:l.data.list.slice(p,k)}}}return l}async submit(r){return await new Promise(l=>setTimeout(l,300)),{code:200,message:"success",data:r}}async delete(r){return await new Promise(l=>setTimeout(l,300)),{code:200,message:"success"}}async update(r,l){return await new Promise(p=>setTimeout(p,300)),{code:200,message:"success",data:l}}},vt=class{constructor(r){this.config=r}async fetch(r){if(console.log("[VariableAdapter] fetch \u88AB\u8C03\u7528\uFF0Cconfig:",{variableName:this.config.variableName,dataSource:this.config.dataSource}),this.config.dataSource!==void 0&&this.config.dataSource!==null){console.log("[VariableAdapter] \u4F7F\u7528 dataSource:",this.config.dataSource);let k=this.config.dataSource;if(typeof k=="string")try{k=JSON.parse(k)}catch(B){console.error("[VariableAdapter] dataSource JSON \u89E3\u6790\u5931\u8D25:",B)}return k&&typeof k=="object"?k.code===200&&k.data?k:k.list||Array.isArray(k)?{code:200,message:"success",data:{pageNum:1,pageSize:10,total:Array.isArray(k)?k.length:k.total||0,list:Array.isArray(k)?k:k.list||[]}}:{code:200,message:"success",data:k}:{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}}let l=this.config.variableName;if(!l)return console.warn("[VariableAdapter] variableName \u548C dataSource \u90FD\u4E3A\u7A7A\uFF0C\u8FD4\u56DE\u7A7A\u6570\u636E"),{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}};let p=window[l];return console.log("[VariableAdapter] \u4ECE window \u83B7\u53D6\u7684\u503C:",p),p==null?(console.warn("[VariableAdapter] \u53D8\u91CF\u4E0D\u5B58\u5728\uFF0C\u8FD4\u56DE\u7A7A\u6570\u636E"),{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}):{code:200,message:"success",data:p}}async submit(r){let l=this.config.variableName;if(!l)throw new Error("Variable name is required for variable adapter");return window[l]=r,{code:200,message:"success",data:r}}async delete(r){return{code:200,message:"success"}}async update(r,l){return this.submit(l)}};var Tr=({dataSourceType:d="mock",api:r,method:l="GET",mockData:p,variableName:k,dataSource:B,showFilter:$=!0,showAction:ee=!0,showSelection:re=!0,showOperation:ie=!0,showStatus:R=!0,showPagination:I=!0,filterFields:M=[],actionButtons:oe=[],columns:ce,batchOperations:se=[],onRowClick:Z,onSearch:q,onPageChange:E,onActionClick:be,onBatchOperation:u,style:j,className:Q})=>{let[K,ye]=F.default.useState(!1),[N,le]=F.default.useState([]),[te,O]=F.default.useState(0),[H,G]=F.default.useState(1),[fe,he]=F.default.useState(10),[pe,ve]=F.default.useState(""),[Se,Ae]=F.default.useState([]),[ge,Oe]=F.default.useState([]),[Te,y]=F.default.useState(),h=JSON.stringify({code:200,message:"success",data:{pageNum:1,pageSize:10,total:50,list:[{id:1,name:"\u65F6\u5C1A\u8FD0\u52A8\u978B",productSn:"PRODUCT001",price:269,stock:100,sale:120,brandName:"\u65F6\u5C1A\u8FD0\u52A8",productCategoryName:"\u978B\u5B50",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:1,verifyStatus:1},{id:2,name:"\u4F11\u95F2T\u6064",productSn:"PRODUCT002",price:99,stock:200,sale:350,brandName:"\u4F11\u95F2\u670D\u9970",productCategoryName:"\u8863\u670D",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:0,recommandStatus:1,verifyStatus:1},{id:3,name:"\u53CC\u80A9\u80CC\u5305",productSn:"PRODUCT003",price:189,stock:80,sale:80,brandName:"\u65C5\u884C\u7BB1\u5305",productCategoryName:"\u914D\u9970",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:0,verifyStatus:1},{id:4,name:"\u8FD0\u52A8\u624B\u8868",productSn:"PRODUCT004",price:499,stock:50,sale:60,brandName:"\u667A\u80FD\u6570\u7801",productCategoryName:"\u6570\u7801",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:1,verifyStatus:1},{id:5,name:"\u725B\u4ED4\u88E4",productSn:"PRODUCT005",price:199,stock:150,sale:280,brandName:"\u65F6\u5C1A\u725B\u4ED4",productCategoryName:"\u8863\u670D",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:0,recommandStatus:0,verifyStatus:1}]}}),g=(0,F.useMemo)(()=>{let U=p;return U||(U=h),console.log("[ProductList] dataSourceConfig \u91CD\u65B0\u8BA1\u7B97:",{dataSourceType:d,mockData:typeof p=="string"?p.substring(0,100)+"...":p,variableName:k,dataSource:typeof B=="object"?"object":B}),{type:d,api:r||"",method:l,mockData:U,variableName:k||"",dataSource:B}},[d,r,l,p,k,B]);console.log("[ProductList] \u7EC4\u4EF6\u6E32\u67D3\uFF0Cprops:",{dataSourceType:d,api:r,method:l,mockData:typeof p=="string"?p.substring(0,100)+"...":p,variableName:k,dataSource:typeof B=="object"?"object":B,showFilter:$,showAction:ee,showSelection:re});let C=(0,F.useMemo)(()=>(console.log("[ProductList] adapter \u91CD\u65B0\u521B\u5EFA, dataSourceType:",d),_e.create(g)),[g]),Y=(0,F.useCallback)(async()=>{console.log("[ProductList] fetchData \u5F00\u59CB\uFF0C\u53C2\u6570:",{currentPage:H,pageSize:fe,searchText:pe}),ye(!0);try{let U={pageNum:H,pageSize:fe,keyword:pe||void 0};console.log("[ProductList] \u8C03\u7528 adapter.fetch\uFF0C\u53C2\u6570:",U);let ue=await C.fetch(U);console.log("[ProductList] adapter.fetch \u8FD4\u56DE\u7ED3\u679C:",ue),ue.code===200&&(le(ue.data.list),O(ue.data.total),console.log("[ProductList] \u6570\u636E\u66F4\u65B0\u6210\u529F\uFF0C\u603B\u6570:",ue.data.total))}catch(U){console.error("[ProductList] \u83B7\u53D6\u6570\u636E\u5931\u8D25:",U)}finally{ye(!1)}},[H,fe,pe,C]);(0,F.useEffect)(()=>{console.log("[ProductList] useEffect \u89E6\u53D1\uFF0C\u5F00\u59CB\u83B7\u53D6\u6570\u636E, dataSourceType:",d),Y()},[Y,d]);let b=()=>{G(1),Y(),q?.(pe)},z=(U,ue)=>{G(U),he(ue),E?.(U,ue)},m=()=>{Te&&ge.length>0&&u?.(Te,ge)},e=[{title:"\u5546\u54C1\u56FE\u7247",dataIndex:"pic",key:"pic",width:100,render:U=>F.default.createElement("img",{src:U,alt:"\u5546\u54C1\u56FE\u7247",style:{width:60,height:60,objectFit:"cover"}})},{title:"\u5546\u54C1\u540D\u79F0",dataIndex:"name",key:"name",width:200},{title:"\u5546\u54C1\u7F16\u53F7",dataIndex:"productSn",key:"productSn",width:150},{title:"\u4EF7\u683C",dataIndex:"price",key:"price",width:100,render:U=>`\xA5${U.toFixed(2)}`},{title:"\u5E93\u5B58",dataIndex:"stock",key:"stock",width:80},{title:"\u9500\u91CF",dataIndex:"sale",key:"sale",width:80},{title:"\u54C1\u724C",dataIndex:"brandName",key:"brandName",width:100},{title:"\u5206\u7C7B",dataIndex:"productCategoryName",key:"productCategoryName",width:100},...R?[{title:"\u72B6\u6001",dataIndex:"publishStatus",key:"publishStatus",width:100,render:U=>F.default.createElement(me.Switch,{checked:U===1,checkedChildren:"\u4E0A\u67B6",unCheckedChildren:"\u4E0B\u67B6"})}]:[],...ie?[{title:"\u64CD\u4F5C",key:"operation",width:150,render:(U,ue)=>F.default.createElement(me.Space,{size:"small"},F.default.createElement(me.Button,{type:"link",size:"small",onClick:()=>Z?.(ue)},"\u67E5\u770B"),F.default.createElement(me.Button,{type:"link",size:"small"},"\u7F16\u8F91"),F.default.createElement(me.Button,{type:"link",size:"small",danger:!0},"\u5220\u9664"))}]:[]],v=re?{selectedRowKeys:Se,onChange:(U,ue)=>{Ae(U),Oe(ue)}}:void 0,W=U=>{switch(U){case"plus":return F.default.createElement(Ue.PlusOutlined,null);case"download":return F.default.createElement(Ue.DownloadOutlined,null);case"upload":return F.default.createElement(Ue.UploadOutlined,null);default:return null}};return F.default.createElement("div",{className:`mall-product-list ${Q||""}`,style:j},$&&F.default.createElement(me.Card,{className:"mall-product-list-filter",size:"small"},F.default.createElement(me.Space,null,F.default.createElement(me.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u540D\u79F0\u6216\u7F16\u53F7",prefix:F.default.createElement(Ue.SearchOutlined,null),value:pe,onChange:U=>ve(U.target.value),onPressEnter:b,style:{width:300}}),F.default.createElement(me.Button,{type:"primary",icon:F.default.createElement(Ue.SearchOutlined,null),onClick:b},"\u641C\u7D22"),F.default.createElement(me.Button,{icon:F.default.createElement(Ue.ReloadOutlined,null),onClick:()=>Y()},"\u5237\u65B0"))),ee&&F.default.createElement(me.Card,{className:"mall-product-list-action",size:"small"},F.default.createElement(me.Space,null,oe.map((U,ue)=>F.default.createElement(me.Button,{key:ue,type:U.type||"default",icon:W(U.icon),onClick:()=>be?.(U.onClick||"")},U.text)),re&&se.length>0&&F.default.createElement(F.default.Fragment,null,F.default.createElement(me.Select,{placeholder:"\u6279\u91CF\u64CD\u4F5C",value:Te,onChange:y,style:{width:150}},se.map((U,ue)=>F.default.createElement(me.Select.Option,{key:ue,value:U.value},U.text))),F.default.createElement(me.Button,{onClick:m},"\u6267\u884C")))),F.default.createElement("div",{className:"mall-product-list-table"},F.default.createElement(me.Table,{rowKey:"id",columns:ce||e,dataSource:N,loading:K,rowSelection:v,pagination:!1,scroll:{x:1200}})),I&&F.default.createElement("div",{className:"pagination-wrapper"},F.default.createElement(me.Pagination,{current:H,pageSize:fe,total:te,showSizeChanger:!0,showQuickJumper:!0,showTotal:U=>`\u5171 ${U} \u6761`,onChange:z})))},jt=Tr;var Ct=jt;var s=V(ke()),n=V(De());var kr=({initialValues:d,mode:r="create",showBasicInfo:l=!0,showPriceInfo:p=!0,showStockInfo:k=!0,showStatusInfo:B=!0,showDescription:$=!0,onSubmit:ee,onCancel:re,style:ie,className:R})=>{let[I]=n.Form.useForm(),[M,oe]=(0,s.useState)("basic");(0,s.useEffect)(()=>{if(d){let N=d;if(typeof d=="string")try{N=JSON.parse(d)}catch(le){console.error("Failed to parse initialValues:",le),N={}}I.setFieldsValue(N)}},[d,I]);let ce=async()=>{try{let N=await I.validateFields();ee?.(N),n.message.success("\u63D0\u4EA4\u6210\u529F")}catch(N){console.error("Validation failed:",N),n.message.error("\u8BF7\u68C0\u67E5\u8868\u5355\u586B\u5199\u662F\u5426\u6B63\u786E")}},se=()=>{I.resetFields(),re?.()},Z=()=>{I.resetFields()},q=()=>{if(typeof d=="string")try{return JSON.parse(d)}catch{return{}}return d||{}},E=r==="view",be=[s.default.createElement(n.Row,{gutter:16,key:"basic-row-1"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"name",label:"\u5546\u54C1\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5546\u54C1\u540D\u79F0"}]},s.default.createElement(n.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u540D\u79F0",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"productSn",label:"\u5546\u54C1\u8D27\u53F7",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5546\u54C1\u8D27\u53F7"}]},s.default.createElement(n.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u8D27\u53F7",disabled:E})))),s.default.createElement(n.Row,{gutter:16,key:"basic-row-2"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"brandName",label:"\u54C1\u724C\u540D\u79F0"},s.default.createElement(n.Input,{placeholder:"\u8BF7\u8F93\u5165\u54C1\u724C\u540D\u79F0",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"productCategoryName",label:"\u5546\u54C1\u5206\u7C7B"},s.default.createElement(n.Select,{placeholder:"\u8BF7\u9009\u62E9\u5546\u54C1\u5206\u7C7B",disabled:E},s.default.createElement(n.Select.Option,{value:"\u624B\u673A"},"\u624B\u673A"),s.default.createElement(n.Select.Option,{value:"\u7B14\u8BB0\u672C"},"\u7B14\u8BB0\u672C"),s.default.createElement(n.Select.Option,{value:"\u5E73\u677F"},"\u5E73\u677F"),s.default.createElement(n.Select.Option,{value:"\u8033\u673A"},"\u8033\u673A"),s.default.createElement(n.Select.Option,{value:"\u624B\u8868"},"\u624B\u8868"),s.default.createElement(n.Select.Option,{value:"\u8863\u670D"},"\u8863\u670D"),s.default.createElement(n.Select.Option,{value:"\u978B\u5B50"},"\u978B\u5B50"),s.default.createElement(n.Select.Option,{value:"\u914D\u9970"},"\u914D\u9970"),s.default.createElement(n.Select.Option,{value:"\u6570\u7801"},"\u6570\u7801"))))),s.default.createElement(n.Form.Item,{key:"pic",name:"pic",label:"\u5546\u54C1\u56FE\u7247"},s.default.createElement(n.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u56FE\u7247 URL",disabled:E})),s.default.createElement(n.Row,{gutter:16,key:"basic-row-3"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"subTitle",label:"\u5546\u54C1\u526F\u6807\u9898"},s.default.createElement(n.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u526F\u6807\u9898",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"keywords",label:"\u5546\u54C1\u5173\u952E\u8BCD"},s.default.createElement(n.Input,{placeholder:"\u591A\u4E2A\u5173\u952E\u8BCD\u7528\u9017\u53F7\u5206\u9694",disabled:E}))))],u=[s.default.createElement(n.Row,{gutter:16,key:"price-row-1"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"price",label:"\u5546\u54C1\u4EF7\u683C",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5546\u54C1\u4EF7\u683C"}]},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u4EF7\u683C",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"originalPrice",label:"\u539F\u4EF7"},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u539F\u4EF7",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:E})))),s.default.createElement(n.Row,{gutter:16,key:"price-row-2"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"promotionPrice",label:"\u4FC3\u9500\u4EF7"},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u4FC3\u9500\u4EF7",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"unit",label:"\u5546\u54C1\u5355\u4F4D"},s.default.createElement(n.Select,{placeholder:"\u8BF7\u9009\u62E9\u5546\u54C1\u5355\u4F4D",disabled:E},s.default.createElement(n.Select.Option,{value:"\u4EF6"},"\u4EF6"),s.default.createElement(n.Select.Option,{value:"\u53F0"},"\u53F0"),s.default.createElement(n.Select.Option,{value:"\u90E8"},"\u90E8"),s.default.createElement(n.Select.Option,{value:"\u5757"},"\u5757"),s.default.createElement(n.Select.Option,{value:"\u526F"},"\u526F")))))],j=[s.default.createElement(n.Row,{gutter:16,key:"stock-row-1"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"stock",label:"\u5546\u54C1\u5E93\u5B58",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5546\u54C1\u5E93\u5B58"}]},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u5E93\u5B58",style:{width:"100%"},min:0,disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"lowStock",label:"\u5E93\u5B58\u9884\u8B66\u503C"},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u5E93\u5B58\u9884\u8B66\u503C",style:{width:"100%"},min:0,disabled:E})))),s.default.createElement(n.Row,{gutter:16,key:"stock-row-2"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"weight",label:"\u5546\u54C1\u91CD\u91CF(kg)"},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u91CD\u91CF",style:{width:"100%"},min:0,precision:2,disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"sort",label:"\u6392\u5E8F"},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u6392\u5E8F",style:{width:"100%"},min:0,disabled:E}))))],Q=[s.default.createElement(n.Row,{gutter:16,key:"status-row-1"},s.default.createElement(n.Col,{span:8},s.default.createElement(n.Form.Item,{name:"publishStatus",label:"\u4E0A\u67B6\u72B6\u6001",valuePropName:"checked",getValueFromEvent:N=>N?1:0,getValueProps:N=>({checked:N===1})},s.default.createElement(n.Switch,{checkedChildren:"\u4E0A\u67B6",unCheckedChildren:"\u4E0B\u67B6",disabled:E}))),s.default.createElement(n.Col,{span:8},s.default.createElement(n.Form.Item,{name:"newStatus",label:"\u65B0\u54C1\u72B6\u6001",valuePropName:"checked",getValueFromEvent:N=>N?1:0,getValueProps:N=>({checked:N===1})},s.default.createElement(n.Switch,{checkedChildren:"\u662F",unCheckedChildren:"\u5426",disabled:E}))),s.default.createElement(n.Col,{span:8},s.default.createElement(n.Form.Item,{name:"recommandStatus",label:"\u63A8\u8350\u72B6\u6001",valuePropName:"checked",getValueFromEvent:N=>N?1:0,getValueProps:N=>({checked:N===1})},s.default.createElement(n.Switch,{checkedChildren:"\u662F",unCheckedChildren:"\u5426",disabled:E})))),s.default.createElement(n.Row,{gutter:16,key:"status-row-2"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"verifyStatus",label:"\u5BA1\u6838\u72B6\u6001",valuePropName:"checked",getValueFromEvent:N=>N?1:0,getValueProps:N=>({checked:N===1})},s.default.createElement(n.Switch,{checkedChildren:"\u5DF2\u5BA1\u6838",unCheckedChildren:"\u672A\u5BA1\u6838",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"deleteStatus",label:"\u5220\u9664\u72B6\u6001",valuePropName:"checked",getValueFromEvent:N=>N?1:0,getValueProps:N=>({checked:N===1})},s.default.createElement(n.Switch,{checkedChildren:"\u5DF2\u5220\u9664",unCheckedChildren:"\u6B63\u5E38",disabled:E}))))],K=[s.default.createElement(n.Form.Item,{key:"description",name:"description",label:"\u5546\u54C1\u63CF\u8FF0"},s.default.createElement(n.Input.TextArea,{rows:4,placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u63CF\u8FF0",disabled:E})),s.default.createElement(n.Form.Item,{key:"note",name:"note",label:"\u5907\u6CE8"},s.default.createElement(n.Input.TextArea,{rows:2,placeholder:"\u8BF7\u8F93\u5165\u5907\u6CE8",disabled:E}))],ye=[{key:"basic",label:"\u57FA\u672C\u4FE1\u606F",children:l?be:null},{key:"price",label:"\u4EF7\u683C\u4FE1\u606F",children:p?u:null},{key:"stock",label:"\u5E93\u5B58\u4FE1\u606F",children:k?j:null},{key:"status",label:"\u72B6\u6001\u4FE1\u606F",children:B?Q:null},{key:"description",label:"\u63CF\u8FF0\u4FE1\u606F",children:$?K:null}];return s.default.createElement("div",{className:`mall-product-form ${R||""}`,style:ie},s.default.createElement(n.Card,null,s.default.createElement(n.Form,{form:I,layout:"vertical",initialValues:q(),disabled:E},s.default.createElement(n.Tabs,{activeKey:M,onChange:oe,items:ye}),s.default.createElement(n.Divider,null),s.default.createElement(n.Form.Item,null,s.default.createElement(n.Space,null,!E&&s.default.createElement(s.default.Fragment,null,s.default.createElement(n.Button,{type:"primary",onClick:ce},r==="create"?"\u521B\u5EFA":"\u4FDD\u5B58"),s.default.createElement(n.Button,{onClick:Z},"\u91CD\u7F6E")),s.default.createElement(n.Button,{onClick:se},E?"\u5173\u95ED":"\u53D6\u6D88"))))))},Kt=kr;var xt=Kt;var t=V(ke()),i=V(De()),we=V(ze());var ne={PENDING_PAYMENT:0,PENDING_DELIVERY:1,DELIVERED:2,COMPLETED:3,CLOSED:4,INVALID:5},Le={UNPAID:0,ALIPAY:1,WECHAT:2},Ye={PC:0,APP:1},Ve={NORMAL:0,SECKILL:1},Re=[{label:"\u5F85\u4ED8\u6B3E",value:ne.PENDING_PAYMENT},{label:"\u5F85\u53D1\u8D27",value:ne.PENDING_DELIVERY},{label:"\u5DF2\u53D1\u8D27",value:ne.DELIVERED},{label:"\u5DF2\u5B8C\u6210",value:ne.COMPLETED},{label:"\u5DF2\u5173\u95ED",value:ne.CLOSED}],$t=[{label:"\u672A\u652F\u4ED8",value:Le.UNPAID},{label:"\u652F\u4ED8\u5B9D",value:Le.ALIPAY},{label:"\u5FAE\u4FE1",value:Le.WECHAT}],et=[{label:"PC\u8BA2\u5355",value:Ye.PC},{label:"APP\u8BA2\u5355",value:Ye.APP}],tt=[{label:"\u6B63\u5E38\u8BA2\u5355",value:Ve.NORMAL},{label:"\u79D2\u6740\u8BA2\u5355",value:Ve.SECKILL}];var{RangePicker:wr}=i.DatePicker,rt={code:200,message:"success",data:{pageNum:1,pageSize:10,total:50,list:[{id:1,orderSn:"202401010001",memberUsername:"user001",totalAmount:599,payAmount:569,freightAmount:0,discountAmount:30,payType:Le.ALIPAY,sourceType:Ye.PC,status:ne.PENDING_DELIVERY,orderType:Ve.NORMAL,receiverName:"\u5F20\u4E09",receiverPhone:"13800138000",receiverProvince:"\u5317\u4EAC\u5E02",receiverCity:"\u5317\u4EAC\u5E02",receiverRegion:"\u671D\u9633\u533A",receiverDetailAddress:"\u67D0\u67D0\u8857\u9053\u67D0\u67D0\u5C0F\u533A1\u53F7\u697C",createTime:"2024-01-01 10:00:00",paymentTime:"2024-01-01 10:05:00",deliveryTime:"",receiveTime:"",commentTime:"",promotionInfo:"\u6EE1\u51CF\u4F18\u60E0"},{id:2,orderSn:"202401010002",memberUsername:"user002",totalAmount:1299,payAmount:1299,freightAmount:0,discountAmount:0,payType:Le.WECHAT,sourceType:Ye.APP,status:ne.DELIVERED,orderType:Ve.NORMAL,receiverName:"\u674E\u56DB",receiverPhone:"13900139000",receiverProvince:"\u4E0A\u6D77\u5E02",receiverCity:"\u4E0A\u6D77\u5E02",receiverRegion:"\u6D66\u4E1C\u65B0\u533A",receiverDetailAddress:"\u67D0\u67D0\u8DEF\u67D0\u67D0\u53F7",createTime:"2024-01-01 11:00:00",paymentTime:"2024-01-01 11:10:00",deliveryTime:"2024-01-02 09:00:00",receiveTime:"",commentTime:"",promotionInfo:""},{id:3,orderSn:"202401010003",memberUsername:"user003",totalAmount:299,payAmount:299,freightAmount:10,discountAmount:0,payType:Le.ALIPAY,sourceType:Ye.PC,status:ne.COMPLETED,orderType:Ve.NORMAL,receiverName:"\u738B\u4E94",receiverPhone:"13700137000",receiverProvince:"\u5E7F\u4E1C\u7701",receiverCity:"\u6DF1\u5733\u5E02",receiverRegion:"\u5357\u5C71\u533A",receiverDetailAddress:"\u67D0\u67D0\u5927\u53A6A\u5EA7",createTime:"2024-01-01 12:00:00",paymentTime:"2024-01-01 12:05:00",deliveryTime:"2024-01-02 10:00:00",receiveTime:"2024-01-05 15:00:00",commentTime:"",promotionInfo:""},{id:4,orderSn:"202401010004",memberUsername:"user004",totalAmount:899,payAmount:0,freightAmount:0,discountAmount:0,payType:Le.UNPAID,sourceType:Ye.APP,status:ne.PENDING_PAYMENT,orderType:Ve.SECKILL,receiverName:"\u8D75\u516D",receiverPhone:"13600136000",receiverProvince:"\u6D59\u6C5F\u7701",receiverCity:"\u676D\u5DDE\u5E02",receiverRegion:"\u897F\u6E56\u533A",receiverDetailAddress:"\u67D0\u67D0\u82B1\u56ED\u5C0F\u533A",createTime:"2024-01-01 13:00:00",paymentTime:"",deliveryTime:"",receiveTime:"",commentTime:"",promotionInfo:"\u79D2\u6740\u6D3B\u52A8"},{id:5,orderSn:"202401010005",memberUsername:"user005",totalAmount:4599,payAmount:4599,freightAmount:0,discountAmount:0,payType:Le.WECHAT,sourceType:Ye.PC,status:ne.CLOSED,orderType:Ve.NORMAL,receiverName:"\u5B59\u4E03",receiverPhone:"13500135000",receiverProvince:"\u6C5F\u82CF\u7701",receiverCity:"\u5357\u4EAC\u5E02",receiverRegion:"\u9F13\u697C\u533A",receiverDetailAddress:"\u67D0\u67D0\u5E7F\u573AB\u5EA7",createTime:"2024-01-01 14:00:00",paymentTime:"2024-01-01 14:10:00",deliveryTime:"",receiveTime:"",commentTime:"",promotionInfo:""}]}},Pr=({dataSourceType:d="mock",api:r,method:l="GET",mockData:p,variableName:k,dataSource:B,showFilter:$=!0,showStatusFilter:ee=!0,showSearch:re=!0,showDatePicker:ie=!0,showActions:R=!0,showBatchOperations:I=!0,showExport:M=!0,showPagination:oe=!0,defaultPageSize:ce=10,onRowClick:se,onSearch:Z,onPageChange:q,onActionClick:E,onBatchOperation:be,style:u,className:j})=>{let[Q,K]=(0,t.useState)(!1),[ye,N]=(0,t.useState)([]),[le,te]=(0,t.useState)(0),[O,H]=(0,t.useState)(1),[G,fe]=(0,t.useState)(ce),[he,pe]=(0,t.useState)(""),[ve,Se]=(0,t.useState)([]),[Ae,ge]=(0,t.useState)([]),[Oe,Te]=(0,t.useState)(),[y,c]=(0,t.useState)(),[h,g]=(0,t.useState)(),[C,Y]=(0,t.useState)(),[b,z]=(0,t.useState)(),[m,e]=(0,t.useState)(!1),[v,W]=(0,t.useState)(),[U,ue]=(0,t.useState)(!1),[Ot,nr]=(0,t.useState)(),[bt,Nt]=(0,t.useState)(""),[ft,At]=(0,t.useState)(""),Dt=(0,t.useMemo)(()=>({type:d,api:r,method:l,mockData:p?(()=>{try{return typeof p=="string"?JSON.parse(p):p}catch{return rt}})():rt,variableName:k,dataSource:B}),[d,r,l,p,k,B]),Et=(0,t.useMemo)(()=>_e.create(Dt),[Dt]);(0,t.useEffect)(()=>{Ke()},[O,G,Et]);let Ke=async()=>{K(!0);try{let w={pageNum:O,pageSize:G,orderSn:he||void 0,status:y,orderType:h,sourceType:C,createTime:b?`${b[0]?.format("YYYY-MM-DD")},${b[1]?.format("YYYY-MM-DD")}`:void 0},de=await Et.fetch(w),Ee=[],$e=0;de?.data?.list?(Ee=de.data.list,$e=de.data.total||Ee.length):Array.isArray(de?.data)?(Ee=de.data,$e=Ee.length):Array.isArray(de)&&(Ee=de,$e=Ee.length),N(Ee),te($e)}catch(w){console.error("Failed to fetch order list:",w),i.message.error("\u83B7\u53D6\u8BA2\u5355\u5217\u8868\u5931\u8D25"),N(rt.data.list),te(rt.data.total)}finally{K(!1)}},Lt=()=>{H(1),Ke(),Z?.({orderSn:he||void 0,status:y,orderType:h,sourceType:C,createTime:b?`${b[0]?.format("YYYY-MM-DD")},${b[1]?.format("YYYY-MM-DD")}`:void 0})},ar=()=>{pe(""),c(void 0),g(void 0),Y(void 0),z(void 0),H(1),Ke()},ir=()=>{i.message.success("\u5BFC\u51FA\u529F\u80FD\u5F00\u53D1\u4E2D...")},sr=()=>{Ke()},lr=()=>{if(!Oe){i.message.warning("\u8BF7\u9009\u62E9\u6279\u91CF\u64CD\u4F5C\u7C7B\u578B");return}if(ve.length===0){i.message.warning("\u8BF7\u9009\u62E9\u8981\u64CD\u4F5C\u7684\u8BA2\u5355");return}be?.(Oe,ve),i.message.success(`\u6279\u91CF${Oe}\u6210\u529F`),Se([]),ge([]),Te(void 0),Ke()},Ft=w=>{W(w),e(!0),E?.("view",w)},Ut=w=>{nr(w),ue(!0),E?.("deliver",w)},dr=w=>{i.Modal.confirm({title:"\u786E\u8BA4\u5173\u95ED\u8BA2\u5355",content:`\u786E\u5B9A\u8981\u5173\u95ED\u8BA2\u5355 ${w.orderSn} \u5417\uFF1F`,onOk:()=>{E?.("close",w),i.message.success("\u8BA2\u5355\u5DF2\u5173\u95ED"),Ke()}})},mr=w=>{i.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664\u8BA2\u5355",content:`\u786E\u5B9A\u8981\u5220\u9664\u8BA2\u5355 ${w.orderSn} \u5417\uFF1F`,onOk:()=>{E?.("delete",w),i.message.success("\u8BA2\u5355\u5DF2\u5220\u9664"),Ke()}})},ur=()=>{if(!bt||!ft){i.message.warning("\u8BF7\u586B\u5199\u7269\u6D41\u516C\u53F8\u548C\u7269\u6D41\u5355\u53F7");return}let w={orderId:Ot.id,deliveryCompany:bt,deliverySn:ft};E?.("deliverSubmit",Ot),i.message.success("\u53D1\u8D27\u6210\u529F"),ue(!1),Nt(""),At(""),Ke()},Mt=w=>{let de={[ne.PENDING_PAYMENT]:{color:"orange",text:"\u5F85\u4ED8\u6B3E"},[ne.PENDING_DELIVERY]:{color:"blue",text:"\u5F85\u53D1\u8D27"},[ne.DELIVERED]:{color:"cyan",text:"\u5DF2\u53D1\u8D27"},[ne.COMPLETED]:{color:"green",text:"\u5DF2\u5B8C\u6210"},[ne.CLOSED]:{color:"default",text:"\u5DF2\u5173\u95ED"},[ne.INVALID]:{color:"red",text:"\u65E0\u6548\u8BA2\u5355"}},{color:Ee,text:$e}=de[w]||{color:"default",text:"\u672A\u77E5"};return t.default.createElement(i.Tag,{color:Ee},$e)},Bt=w=>{let de={[Le.UNPAID]:{color:"default",text:"\u672A\u652F\u4ED8"},[Le.ALIPAY]:{color:"blue",text:"\u652F\u4ED8\u5B9D"},[Le.WECHAT]:{color:"green",text:"\u5FAE\u4FE1"}},{color:Ee,text:$e}=de[w]||{color:"default",text:"\u672A\u77E5"};return t.default.createElement(i.Tag,{color:Ee},$e)},cr=w=>w===Ye.APP?t.default.createElement(i.Tag,{color:"purple"},"APP"):t.default.createElement(i.Tag,{color:"geekblue"},"PC"),pr=w=>w===Ve.SECKILL?t.default.createElement(i.Tag,{color:"red"},"\u79D2\u6740"):t.default.createElement(i.Tag,null,"\u6B63\u5E38"),gr=[{title:"\u8BA2\u5355\u7F16\u53F7",dataIndex:"orderSn",key:"orderSn",width:180,fixed:"left",render:w=>t.default.createElement(i.Tooltip,{title:w},t.default.createElement("span",{className:"order-sn"},w))},{title:"\u7528\u6237\u8D26\u53F7",dataIndex:"memberUsername",key:"memberUsername",width:120},{title:"\u8BA2\u5355\u91D1\u989D",dataIndex:"totalAmount",key:"totalAmount",width:120,render:w=>t.default.createElement("span",{className:"order-amount"},"\xA5",w.toFixed(2))},{title:"\u5B9E\u4ED8\u91D1\u989D",dataIndex:"payAmount",key:"payAmount",width:120,render:w=>t.default.createElement("span",{className:"pay-amount"},"\xA5",w.toFixed(2))},{title:"\u652F\u4ED8\u65B9\u5F0F",dataIndex:"payType",key:"payType",width:100,render:w=>Bt(w)},{title:"\u8BA2\u5355\u6765\u6E90",dataIndex:"sourceType",key:"sourceType",width:100,render:w=>cr(w)},{title:"\u8BA2\u5355\u7C7B\u578B",dataIndex:"orderType",key:"orderType",width:100,render:w=>pr(w)},{title:"\u8BA2\u5355\u72B6\u6001",dataIndex:"status",key:"status",width:100,render:w=>Mt(w)},{title:"\u6536\u8D27\u4EBA",dataIndex:"receiverName",key:"receiverName",width:100},{title:"\u6536\u8D27\u7535\u8BDD",dataIndex:"receiverPhone",key:"receiverPhone",width:130},{title:"\u4E0B\u5355\u65F6\u95F4",dataIndex:"createTime",key:"createTime",width:180,sorter:!0},{title:"\u64CD\u4F5C",key:"action",width:200,fixed:"right",render:(w,de)=>{let Ee=t.default.createElement(i.Menu,null,t.default.createElement(i.Menu.Item,{key:"view",icon:t.default.createElement(we.EyeOutlined,null),onClick:()=>Ft(de)},"\u67E5\u770B\u8BE6\u60C5"),de.status===ne.PENDING_DELIVERY&&t.default.createElement(i.Menu.Item,{key:"deliver",icon:t.default.createElement(we.CarOutlined,null),onClick:()=>Ut(de)},"\u53D1\u8D27"),de.status!==ne.CLOSED&&t.default.createElement(i.Menu.Item,{key:"close",icon:t.default.createElement(we.CloseCircleOutlined,null),onClick:()=>dr(de)},"\u5173\u95ED\u8BA2\u5355"),t.default.createElement(i.Menu.Divider,null),t.default.createElement(i.Menu.Item,{key:"delete",icon:t.default.createElement(we.DeleteOutlined,null),danger:!0,onClick:()=>mr(de)},"\u5220\u9664\u8BA2\u5355"));return t.default.createElement(i.Space,{size:"small"},t.default.createElement(i.Button,{type:"link",size:"small",onClick:()=>Ft(de)},"\u8BE6\u60C5"),de.status===ne.PENDING_DELIVERY&&t.default.createElement(i.Button,{type:"link",size:"small",onClick:()=>Ut(de)},"\u53D1\u8D27"),t.default.createElement(i.Dropdown,{overlay:Ee,trigger:["click"]},t.default.createElement(i.Button,{type:"link",size:"small",icon:t.default.createElement(we.MoreOutlined,null)})))}}],br={selectedRowKeys:ve,onChange:(w,de)=>{Se(w),ge(de)}};return t.default.createElement("div",{className:`mall-order-list ${j||""}`,style:u},t.default.createElement(i.Card,null,$&&t.default.createElement("div",{className:"filter-section"},t.default.createElement(i.Row,{gutter:[16,16]},re&&t.default.createElement(i.Col,{span:6},t.default.createElement(i.Input,{placeholder:"\u8BA2\u5355\u7F16\u53F7",value:he,onChange:w=>pe(w.target.value),onPressEnter:Lt,prefix:t.default.createElement(we.SearchOutlined,null)})),ee&&t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u72B6\u6001",value:y,onChange:c,style:{width:"100%"},allowClear:!0},Re.map(w=>t.default.createElement(i.Select.Option,{key:w.value,value:w.value},w.label)))),t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u7C7B\u578B",value:h,onChange:g,style:{width:"100%"},allowClear:!0},tt.map(w=>t.default.createElement(i.Select.Option,{key:w.value,value:w.value},w.label)))),t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u6765\u6E90",value:C,onChange:Y,style:{width:"100%"},allowClear:!0},et.map(w=>t.default.createElement(i.Select.Option,{key:w.value,value:w.value},w.label)))),ie&&t.default.createElement(i.Col,{span:6},t.default.createElement(wr,{value:b,onChange:z,style:{width:"100%"}}))),t.default.createElement(i.Row,{gutter:[16,16],style:{marginTop:16}},t.default.createElement(i.Col,null,t.default.createElement(i.Space,null,t.default.createElement(i.Button,{type:"primary",onClick:Lt},"\u67E5\u8BE2"),t.default.createElement(i.Button,{onClick:ar},"\u91CD\u7F6E"))))),I&&t.default.createElement("div",{className:"batch-operation-section"},t.default.createElement(i.Space,null,t.default.createElement(i.Select,{placeholder:"\u6279\u91CF\u64CD\u4F5C",value:Oe,onChange:Te,style:{width:150},allowClear:!0},t.default.createElement(i.Select.Option,{value:"deliver"},"\u6279\u91CF\u53D1\u8D27"),t.default.createElement(i.Select.Option,{value:"close"},"\u5173\u95ED\u8BA2\u5355"),t.default.createElement(i.Select.Option,{value:"delete"},"\u5220\u9664\u8BA2\u5355")),t.default.createElement(i.Button,{onClick:lr},"\u786E\u5B9A")),ve.length>0&&t.default.createElement("span",{className:"selected-info"},"\u5DF2\u9009\u62E9 ",t.default.createElement("strong",null,ve.length)," \u9879")),R&&t.default.createElement("div",{className:"action-section"},t.default.createElement(i.Space,null,t.default.createElement(i.Button,{icon:t.default.createElement(we.ReloadOutlined,null),onClick:sr},"\u5237\u65B0"),M&&t.default.createElement(i.Button,{icon:t.default.createElement(we.ExportOutlined,null),onClick:ir},"\u5BFC\u51FA"))),t.default.createElement(i.Table,{columns:gr,dataSource:ye,rowKey:"id",loading:Q,pagination:oe?{current:O,pageSize:G,total:le,showSizeChanger:!0,showQuickJumper:!0,showTotal:w=>`\u5171 ${w} \u6761`,onChange:(w,de)=>{H(w),fe(de),q?.(w,de)}}:!1,rowSelection:br,scroll:{x:1500},onRow:w=>({onClick:()=>se?.(w)})})),t.default.createElement(i.Modal,{title:"\u8BA2\u5355\u8BE6\u60C5",visible:m,onCancel:()=>e(!1),footer:null,width:800},v&&t.default.createElement(i.Descriptions,{bordered:!0,column:2},t.default.createElement(i.Descriptions.Item,{label:"\u8BA2\u5355\u7F16\u53F7"},v.orderSn),t.default.createElement(i.Descriptions.Item,{label:"\u7528\u6237\u8D26\u53F7"},v.memberUsername),t.default.createElement(i.Descriptions.Item,{label:"\u8BA2\u5355\u91D1\u989D"},"\xA5",v.totalAmount.toFixed(2)),t.default.createElement(i.Descriptions.Item,{label:"\u5B9E\u4ED8\u91D1\u989D"},"\xA5",v.payAmount.toFixed(2)),t.default.createElement(i.Descriptions.Item,{label:"\u8FD0\u8D39"},"\xA5",v.freightAmount.toFixed(2)),t.default.createElement(i.Descriptions.Item,{label:"\u4F18\u60E0\u91D1\u989D"},"\xA5",v.discountAmount.toFixed(2)),t.default.createElement(i.Descriptions.Item,{label:"\u652F\u4ED8\u65B9\u5F0F"},Bt(v.payType)),t.default.createElement(i.Descriptions.Item,{label:"\u8BA2\u5355\u72B6\u6001"},Mt(v.status)),t.default.createElement(i.Descriptions.Item,{label:"\u6536\u8D27\u4EBA"},v.receiverName),t.default.createElement(i.Descriptions.Item,{label:"\u6536\u8D27\u7535\u8BDD"},v.receiverPhone),t.default.createElement(i.Descriptions.Item,{label:"\u6536\u8D27\u5730\u5740",span:2},v.receiverProvince,v.receiverCity,v.receiverRegion,v.receiverDetailAddress),t.default.createElement(i.Descriptions.Item,{label:"\u4E0B\u5355\u65F6\u95F4"},v.createTime),t.default.createElement(i.Descriptions.Item,{label:"\u652F\u4ED8\u65F6\u95F4"},v.paymentTime||"-"),t.default.createElement(i.Descriptions.Item,{label:"\u53D1\u8D27\u65F6\u95F4"},v.deliveryTime||"-"),t.default.createElement(i.Descriptions.Item,{label:"\u5B8C\u6210\u65F6\u95F4"},v.receiveTime||"-"),t.default.createElement(i.Descriptions.Item,{label:"\u8BA2\u5355\u5907\u6CE8",span:2},v.note||"-"))),t.default.createElement(i.Modal,{title:"\u8BA2\u5355\u53D1\u8D27",visible:U,onOk:ur,onCancel:()=>ue(!1)},t.default.createElement(i.Form,{layout:"vertical"},t.default.createElement(i.Form.Item,{label:"\u7269\u6D41\u516C\u53F8",required:!0},t.default.createElement(i.Select,{value:bt,onChange:Nt,placeholder:"\u8BF7\u9009\u62E9\u7269\u6D41\u516C\u53F8"},t.default.createElement(i.Select.Option,{value:"\u987A\u4E30\u901F\u8FD0"},"\u987A\u4E30\u901F\u8FD0"),t.default.createElement(i.Select.Option,{value:"\u5706\u901A\u5FEB\u9012"},"\u5706\u901A\u5FEB\u9012"),t.default.createElement(i.Select.Option,{value:"\u4E2D\u901A\u5FEB\u9012"},"\u4E2D\u901A\u5FEB\u9012"),t.default.createElement(i.Select.Option,{value:"\u97F5\u8FBE\u5FEB\u9012"},"\u97F5\u8FBE\u5FEB\u9012"),t.default.createElement(i.Select.Option,{value:"\u7533\u901A\u5FEB\u9012"},"\u7533\u901A\u5FEB\u9012"),t.default.createElement(i.Select.Option,{value:"\u90AE\u653FEMS"},"\u90AE\u653FEMS"))),t.default.createElement(i.Form.Item,{label:"\u7269\u6D41\u5355\u53F7",required:!0},t.default.createElement(i.Input,{value:ft,onChange:w=>At(w.target.value),placeholder:"\u8BF7\u8F93\u5165\u7269\u6D41\u5355\u53F7"})))))},ot=Pr;var a=V(ke()),o=V(De());var{TextArea:qt}=o.Input,Ir=({initialValues:d,mode:r="create",showBasicInfo:l=!0,showReceiverInfo:p=!0,showMoneyInfo:k=!0,showOrderItems:B=!0,showStatusInfo:$=!0,onSubmit:ee,onCancel:re,style:ie,className:R})=>{let[I]=o.Form.useForm(),[M,oe]=(0,a.useState)("basic"),[ce,se]=(0,a.useState)([]);(0,a.useEffect)(()=>{if(d){let O=d;if(typeof d=="string")try{O=JSON.parse(d)}catch(H){console.error("Failed to parse initialValues:",H),O={}}I.setFieldsValue(O),O.orderItemList&&se(O.orderItemList)}},[d,I]);let Z=async()=>{try{let O=await I.validateFields();ee?.(O),o.message.success("\u63D0\u4EA4\u6210\u529F")}catch(O){console.error("Validation failed:",O),o.message.error("\u8BF7\u68C0\u67E5\u8868\u5355\u586B\u5199\u662F\u5426\u6B63\u786E")}},q=()=>{I.resetFields(),re?.()},E=()=>{I.resetFields()},be=()=>{if(typeof d=="string")try{return JSON.parse(d)}catch{return{}}return d||{}},u=r==="view",j=O=>{let H={[ne.PENDING_PAYMENT]:{color:"orange",text:"\u5F85\u4ED8\u6B3E"},[ne.PENDING_DELIVERY]:{color:"blue",text:"\u5F85\u53D1\u8D27"},[ne.DELIVERED]:{color:"cyan",text:"\u5DF2\u53D1\u8D27"},[ne.COMPLETED]:{color:"green",text:"\u5DF2\u5B8C\u6210"},[ne.CLOSED]:{color:"default",text:"\u5DF2\u5173\u95ED"},[ne.INVALID]:{color:"red",text:"\u65E0\u6548\u8BA2\u5355"}},{color:G,text:fe}=H[O]||{color:"default",text:"\u672A\u77E5"};return a.default.createElement(o.Tag,{color:G},fe)},Q=[{title:"\u5546\u54C1\u56FE\u7247",dataIndex:"productPic",key:"productPic",width:80,render:O=>a.default.createElement("img",{src:O,alt:"\u5546\u54C1\u56FE\u7247",style:{width:50,height:50,objectFit:"cover"}})},{title:"\u5546\u54C1\u540D\u79F0",dataIndex:"productName",key:"productName",width:200},{title:"\u5546\u54C1\u8D27\u53F7",dataIndex:"productSn",key:"productSn",width:120},{title:"\u5546\u54C1\u54C1\u724C",dataIndex:"productBrand",key:"productBrand",width:100},{title:"\u9500\u552E\u4EF7\u683C",dataIndex:"productPrice",key:"productPrice",width:100,render:O=>`\xA5${O.toFixed(2)}`},{title:"\u8D2D\u4E70\u6570\u91CF",dataIndex:"productQuantity",key:"productQuantity",width:100},{title:"\u5C0F\u8BA1",key:"subtotal",width:100,render:(O,H)=>`\xA5${(H.productPrice*H.productQuantity).toFixed(2)}`}],K=[a.default.createElement(o.Row,{gutter:16,key:"basic-row-1"},a.default.createElement(o.Col,{span:12},a.default.createElement(o.Form.Item,{name:"orderSn",label:"\u8BA2\u5355\u7F16\u53F7",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8BA2\u5355\u7F16\u53F7"}]},a.default.createElement(o.Input,{placeholder:"\u8BF7\u8F93\u5165\u8BA2\u5355\u7F16\u53F7",disabled:u}))),a.default.createElement(o.Col,{span:12},a.default.createElement(o.Form.Item,{name:"memberUsername",label:"\u7528\u6237\u8D26\u53F7",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u7528\u6237\u8D26\u53F7"}]},a.default.createElement(o.Input,{placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u8D26\u53F7",disabled:u})))),a.default.createElement(o.Row,{gutter:16,key:"basic-row-2"},a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"payType",label:"\u652F\u4ED8\u65B9\u5F0F",rules:[{required:!0}]},a.default.createElement(o.Select,{placeholder:"\u8BF7\u9009\u62E9\u652F\u4ED8\u65B9\u5F0F",disabled:u},$t.map(O=>a.default.createElement(o.Select.Option,{key:O.value,value:O.value},O.label))))),a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"sourceType",label:"\u8BA2\u5355\u6765\u6E90",rules:[{required:!0}]},a.default.createElement(o.Select,{placeholder:"\u8BF7\u9009\u62E9\u8BA2\u5355\u6765\u6E90",disabled:u},et.map(O=>a.default.createElement(o.Select.Option,{key:O.value,value:O.value},O.label))))),a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"orderType",label:"\u8BA2\u5355\u7C7B\u578B",rules:[{required:!0}]},a.default.createElement(o.Select,{placeholder:"\u8BF7\u9009\u62E9\u8BA2\u5355\u7C7B\u578B",disabled:u},tt.map(O=>a.default.createElement(o.Select.Option,{key:O.value,value:O.value},O.label)))))),a.default.createElement(o.Row,{gutter:16,key:"basic-row-3"},a.default.createElement(o.Col,{span:12},a.default.createElement(o.Form.Item,{name:"createTime",label:"\u4E0B\u5355\u65F6\u95F4"},a.default.createElement(o.Input,{placeholder:"\u4E0B\u5355\u65F6\u95F4",disabled:!0}))),a.default.createElement(o.Col,{span:12},a.default.createElement(o.Form.Item,{name:"paymentTime",label:"\u652F\u4ED8\u65F6\u95F4"},a.default.createElement(o.Input,{placeholder:"\u652F\u4ED8\u65F6\u95F4",disabled:!0}))))],ye=[a.default.createElement(o.Row,{gutter:16,key:"receiver-row-1"},a.default.createElement(o.Col,{span:12},a.default.createElement(o.Form.Item,{name:"receiverName",label:"\u6536\u8D27\u4EBA\u59D3\u540D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6536\u8D27\u4EBA\u59D3\u540D"}]},a.default.createElement(o.Input,{placeholder:"\u8BF7\u8F93\u5165\u6536\u8D27\u4EBA\u59D3\u540D",disabled:u}))),a.default.createElement(o.Col,{span:12},a.default.createElement(o.Form.Item,{name:"receiverPhone",label:"\u6536\u8D27\u4EBA\u7535\u8BDD",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6536\u8D27\u4EBA\u7535\u8BDD"}]},a.default.createElement(o.Input,{placeholder:"\u8BF7\u8F93\u5165\u6536\u8D27\u4EBA\u7535\u8BDD",disabled:u})))),a.default.createElement(o.Row,{gutter:16,key:"receiver-row-2"},a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"receiverProvince",label:"\u7701\u4EFD"},a.default.createElement(o.Input,{placeholder:"\u7701\u4EFD",disabled:u}))),a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"receiverCity",label:"\u57CE\u5E02"},a.default.createElement(o.Input,{placeholder:"\u57CE\u5E02",disabled:u}))),a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"receiverRegion",label:"\u533A"},a.default.createElement(o.Input,{placeholder:"\u533A",disabled:u})))),a.default.createElement(o.Form.Item,{key:"receiverDetailAddress",name:"receiverDetailAddress",label:"\u8BE6\u7EC6\u5730\u5740"},a.default.createElement(qt,{rows:2,placeholder:"\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740",disabled:u})),a.default.createElement(o.Row,{gutter:16,key:"receiver-row-3"},a.default.createElement(o.Col,{span:12},a.default.createElement(o.Form.Item,{name:"deliveryCompany",label:"\u7269\u6D41\u516C\u53F8"},a.default.createElement(o.Input,{placeholder:"\u7269\u6D41\u516C\u53F8",disabled:u}))),a.default.createElement(o.Col,{span:12},a.default.createElement(o.Form.Item,{name:"deliverySn",label:"\u7269\u6D41\u5355\u53F7"},a.default.createElement(o.Input,{placeholder:"\u7269\u6D41\u5355\u53F7",disabled:u}))))],N=[a.default.createElement(o.Row,{gutter:16,key:"money-row-1"},a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"totalAmount",label:"\u8BA2\u5355\u603B\u91D1\u989D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8BA2\u5355\u603B\u91D1\u989D"}]},a.default.createElement(o.InputNumber,{placeholder:"\u8BA2\u5355\u603B\u91D1\u989D",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u}))),a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"payAmount",label:"\u5B9E\u4ED8\u91D1\u989D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5B9E\u4ED8\u91D1\u989D"}]},a.default.createElement(o.InputNumber,{placeholder:"\u5B9E\u4ED8\u91D1\u989D",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u}))),a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"freightAmount",label:"\u8FD0\u8D39\u91D1\u989D"},a.default.createElement(o.InputNumber,{placeholder:"\u8FD0\u8D39\u91D1\u989D",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u})))),a.default.createElement(o.Row,{gutter:16,key:"money-row-2"},a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"discountAmount",label:"\u6298\u6263\u91D1\u989D"},a.default.createElement(o.InputNumber,{placeholder:"\u6298\u6263\u91D1\u989D",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u}))),a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"promotionAmount",label:"\u4FC3\u9500\u4F18\u60E0"},a.default.createElement(o.InputNumber,{placeholder:"\u4FC3\u9500\u4F18\u60E0",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u}))),a.default.createElement(o.Col,{span:8},a.default.createElement(o.Form.Item,{name:"couponAmount",label:"\u4F18\u60E0\u5238\u62B5\u6263"},a.default.createElement(o.InputNumber,{placeholder:"\u4F18\u60E0\u5238\u62B5\u6263",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u}))))],le=[a.default.createElement(o.Row,{gutter:16,key:"status-row-1"},a.default.createElement(o.Col,{span:12},a.default.createElement(o.Form.Item,{name:"status",label:"\u8BA2\u5355\u72B6\u6001",rules:[{required:!0}]},a.default.createElement(o.Select,{placeholder:"\u8BF7\u9009\u62E9\u8BA2\u5355\u72B6\u6001",disabled:u},Re.map(O=>a.default.createElement(o.Select.Option,{key:O.value,value:O.value},O.label))))),a.default.createElement(o.Col,{span:12},a.default.createElement(o.Form.Item,{name:"confirmStatus",label:"\u786E\u8BA4\u6536\u8D27\u72B6\u6001"},a.default.createElement(o.Select,{placeholder:"\u8BF7\u9009\u62E9\u786E\u8BA4\u6536\u8D27\u72B6\u6001",disabled:u},a.default.createElement(o.Select.Option,{value:0},"\u672A\u786E\u8BA4"),a.default.createElement(o.Select.Option,{value:1},"\u5DF2\u786E\u8BA4"))))),a.default.createElement(o.Form.Item,{key:"promotionInfo",name:"promotionInfo",label:"\u6D3B\u52A8\u4FE1\u606F"},a.default.createElement(o.Input,{placeholder:"\u6D3B\u52A8\u4FE1\u606F",disabled:u})),a.default.createElement(o.Form.Item,{key:"note",name:"note",label:"\u8BA2\u5355\u5907\u6CE8"},a.default.createElement(qt,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u8BA2\u5355\u5907\u6CE8",disabled:u}))],te=[{key:"basic",label:"\u57FA\u672C\u4FE1\u606F",children:l?K:null},{key:"receiver",label:"\u6536\u8D27\u4FE1\u606F",children:p?ye:null},{key:"money",label:"\u8D39\u7528\u4FE1\u606F",children:k?N:null},{key:"items",label:"\u5546\u54C1\u4FE1\u606F",children:B?a.default.createElement(o.Table,{columns:Q,dataSource:ce,rowKey:"id",pagination:!1,scroll:{x:900}}):null},{key:"status",label:"\u72B6\u6001\u4FE1\u606F",children:$?le:null}];return a.default.createElement("div",{className:`mall-order-form ${R||""}`,style:ie},a.default.createElement(o.Card,null,a.default.createElement(o.Form,{form:I,layout:"vertical",initialValues:be(),disabled:u},a.default.createElement(o.Tabs,{activeKey:M,onChange:oe,items:te}),a.default.createElement(o.Divider,null),a.default.createElement(o.Form.Item,null,a.default.createElement(o.Space,null,!u&&a.default.createElement(a.default.Fragment,null,a.default.createElement(o.Button,{type:"primary",onClick:Z},r==="create"?"\u521B\u5EFA":"\u4FDD\u5B58"),a.default.createElement(o.Button,{onClick:E},"\u91CD\u7F6E")),a.default.createElement(o.Button,{onClick:q},u?"\u5173\u95ED":"\u53D6\u6D88"))))))},nt=Ir;var f=V(ke()),S=V(De()),qe=V(ze());var Me={FULL_REDUCTION:0,DISCOUNT:1},Fe={ALL:0,MOBILE:1,PC:2,APP:3},He={ALL:0,CATEGORY:1,PRODUCT:2},Gt=[{label:"\u6EE1\u51CF\u5238",value:Me.FULL_REDUCTION},{label:"\u6298\u6263\u5238",value:Me.DISCOUNT}],St=[{label:"\u5168\u5E73\u53F0",value:Fe.ALL},{label:"\u79FB\u52A8\u7AEF",value:Fe.MOBILE},{label:"PC\u7AEF",value:Fe.PC},{label:"APP\u7AEF",value:Fe.APP}],Lo=[{label:"\u5168\u573A\u901A\u7528",value:He.ALL},{label:"\u6307\u5B9A\u5206\u7C7B",value:He.CATEGORY},{label:"\u6307\u5B9A\u5546\u54C1",value:He.PRODUCT}],xe={ENABLED:1,DISABLED:0},Jt=[{label:"\u542F\u7528",value:xe.ENABLED},{label:"\u7981\u7528",value:xe.DISABLED}];var{RangePicker:Or}=S.DatePicker,Qt={code:200,message:"success",data:{pageNum:1,pageSize:10,total:3,list:[{id:1,name:"\u65B0\u7528\u6237\u4E13\u4EAB\u5238",type:0,platform:0,count:1e3,amount:50,perLimit:1,minPoint:200,startTime:"2024-01-01",endTime:"2024-12-31",useType:0,note:"\u65B0\u7528\u6237\u9996\u5355\u6EE1200\u51CF50",publishCount:500,useCount:320,receiveCount:450,enableTime:"7",code:"NEWUSER50",memberLevel:0},{id:2,name:"\u9650\u65F6\u6298\u6263\u5238",type:1,platform:3,count:500,amount:8,perLimit:2,minPoint:100,startTime:"2024-01-15",endTime:"2024-02-15",useType:1,note:"APP\u4E13\u4EAB8\u6298\u5238",publishCount:300,useCount:180,receiveCount:280,enableTime:"3",code:"APPDISCOUNT",memberLevel:1},{id:3,name:"\u4F1A\u5458\u4E13\u4EAB\u5238",type:0,platform:0,count:200,amount:100,perLimit:1,minPoint:500,startTime:"2024-01-01",endTime:"2024-06-30",useType:2,note:"\u4F1A\u5458\u4E13\u4EAB\u6EE1500\u51CF100",publishCount:150,useCount:80,receiveCount:120,enableTime:"15",code:"VIP100",memberLevel:2}]}},Nr=({dataSourceType:d="mock",api:r,method:l="GET",mockData:p,variableName:k,showCreateButton:B=!0,showFilter:$=!0,showStatistics:ee=!0,onCreateCoupon:re,onEditCoupon:ie,onDeleteCoupon:R,style:I,className:M})=>{let[oe,ce]=(0,f.useState)(!1),[se,Z]=(0,f.useState)([]),[q,E]=(0,f.useState)(0),[be,u]=(0,f.useState)(1),[j,Q]=(0,f.useState)(10),[K,ye]=(0,f.useState)(""),[N,le]=(0,f.useState)(),[te,O]=(0,f.useState)(),[H,G]=(0,f.useState)(!1),[fe,he]=(0,f.useState)(null),[pe]=S.Form.useForm(),ve=[{id:1,name:"\u65B0\u7528\u6237\u4E13\u4EAB\u5238",type:Me.FULL_REDUCTION,platform:Fe.ALL,count:1e3,amount:50,perLimit:1,minPoint:200,startTime:"2024-01-01",endTime:"2024-12-31",useType:He.ALL,note:"\u65B0\u7528\u6237\u9996\u5355\u6EE1200\u51CF50",publishCount:500,useCount:320,receiveCount:450,enableTime:"7",code:"NEWUSER50",memberLevel:0},{id:2,name:"\u9650\u65F6\u6298\u6263\u5238",type:Me.DISCOUNT,platform:Fe.APP,count:500,amount:8,perLimit:2,minPoint:100,startTime:"2024-01-15",endTime:"2024-02-15",useType:He.CATEGORY,note:"APP\u4E13\u4EAB8\u6298\u5238",publishCount:300,useCount:180,receiveCount:280,enableTime:"3",code:"APPDISCOUNT",memberLevel:1},{id:3,name:"\u4F1A\u5458\u4E13\u4EAB\u5238",type:Me.FULL_REDUCTION,platform:Fe.ALL,count:200,amount:100,perLimit:1,minPoint:500,startTime:"2024-01-01",endTime:"2024-06-30",useType:He.PRODUCT,note:"\u4F1A\u5458\u4E13\u4EAB\u6EE1500\u51CF100",publishCount:150,useCount:80,receiveCount:120,enableTime:"15",code:"VIP100",memberLevel:2}],Se=(0,f.useMemo)(()=>({type:d,api:r,method:l,mockData:p?(()=>{try{return typeof p=="string"?JSON.parse(p):p}catch{return Qt}})():Qt,variableName:k}),[d,r,l,p,k]),Ae=(0,f.useMemo)(()=>_e.create(Se),[Se]);(0,f.useEffect)(()=>{ge()},[be,j,Ae]);let ge=async()=>{ce(!0);try{let m=await Ae.fetch({pageNum:be,pageSize:j,name:K,type:N,platform:te}),e=[],v=0;m?.data?.list?(e=m.data.list,v=m.data.total||e.length):Array.isArray(m?.data)?(e=m.data,v=e.length):Array.isArray(m)&&(e=m,v=e.length),(K||N!==void 0||te!==void 0)&&(e=e.filter(W=>!(K&&!W.name.toLowerCase().includes(K.toLowerCase())||N!==void 0&&W.type!==N||te!==void 0&&W.platform!==te)),v=e.length),Z(e),E(v)}catch(m){console.error("Failed to fetch coupon list:",m),S.message.error("\u83B7\u53D6\u4F18\u60E0\u5238\u5217\u8868\u5931\u8D25"),Z(ve),E(ve.length)}finally{ce(!1)}},Oe=()=>{u(1),ge()},Te=()=>{ye(""),le(void 0),O(void 0),u(1),ge()},y=()=>{he(null),pe.resetFields(),G(!0)},c=m=>{he(m),pe.setFieldsValue({...m,dateRange:[m.startTime,m.endTime]}),G(!0)},h=m=>{S.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u4F18\u60E0\u5238\u5417\uFF1F",onOk:()=>{R?.(m),S.message.success("\u5220\u9664\u6210\u529F"),ge()}})},g=async()=>{try{let m=await pe.validateFields(),e={...m,startTime:m.dateRange?.[0],endTime:m.dateRange?.[1]};fe?(ie?.(fe.id,e),S.message.success("\u7F16\u8F91\u6210\u529F")):(re?.(e),S.message.success("\u521B\u5EFA\u6210\u529F")),G(!1),ge()}catch(m){console.error("Validation failed:",m)}},C=m=>{let e={[Me.FULL_REDUCTION]:{color:"red",text:"\u6EE1\u51CF\u5238"},[Me.DISCOUNT]:{color:"blue",text:"\u6298\u6263\u5238"}},{color:v,text:W}=e[m]||{color:"default",text:"\u672A\u77E5"};return f.default.createElement(S.Tag,{color:v},W)},Y=m=>{let e={[Fe.ALL]:{color:"green",text:"\u5168\u5E73\u53F0"},[Fe.MOBILE]:{color:"purple",text:"\u79FB\u52A8\u7AEF"},[Fe.PC]:{color:"geekblue",text:"PC\u7AEF"},[Fe.APP]:{color:"cyan",text:"APP"}},{color:v,text:W}=e[m]||{color:"default",text:"\u672A\u77E5"};return f.default.createElement(S.Tag,{color:v},W)},b=[{title:"\u4F18\u60E0\u5238\u540D\u79F0",dataIndex:"name",key:"name",width:150,render:m=>f.default.createElement(S.Tooltip,{title:m},f.default.createElement("span",{className:"coupon-name"},m))},{title:"\u7C7B\u578B",dataIndex:"type",key:"type",width:80,render:m=>C(m)},{title:"\u4F18\u60E0\u5185\u5BB9",key:"content",width:120,render:(m,e)=>f.default.createElement("span",null,e.type===Me.FULL_REDUCTION?`\u6EE1${e.minPoint}\u51CF${e.amount}`:`${e.amount}\u6298`)},{title:"\u9002\u7528\u5E73\u53F0",dataIndex:"platform",key:"platform",width:80,render:m=>Y(m)},{title:"\u53D1\u884C\u91CF",dataIndex:"count",key:"count",width:80,render:m=>f.default.createElement(S.Badge,{count:m,showZero:!0,color:"blue"})},{title:"\u5DF2\u9886\u53D6",dataIndex:"receiveCount",key:"receiveCount",width:80},{title:"\u5DF2\u4F7F\u7528",dataIndex:"useCount",key:"useCount",width:80},{title:"\u6709\u6548\u671F",key:"validity",width:180,render:(m,e)=>f.default.createElement(S.Space,null,f.default.createElement(qe.ClockCircleOutlined,null),f.default.createElement("span",null,e.startTime," ~ ",e.endTime))},{title:"\u64CD\u4F5C",key:"action",width:150,render:(m,e)=>f.default.createElement(S.Space,null,f.default.createElement(S.Button,{type:"link",size:"small",icon:f.default.createElement(qe.EditOutlined,null),onClick:()=>c(e)},"\u7F16\u8F91"),f.default.createElement(S.Button,{type:"link",size:"small",danger:!0,icon:f.default.createElement(qe.DeleteOutlined,null),onClick:()=>h(e.id)},"\u5220\u9664"))}],z={totalCoupons:se.length,activeCoupons:se.filter(m=>m.useCount>0).length,totalUsed:se.reduce((m,e)=>m+e.useCount,0),totalReceived:se.reduce((m,e)=>m+e.receiveCount,0)};return f.default.createElement("div",{className:`mall-coupon-card ${M||""}`,style:I},f.default.createElement(S.Card,null,ee&&f.default.createElement("div",{className:"statistics-section"},f.default.createElement(S.Space,{size:"large"},f.default.createElement("div",{className:"stat-item"},f.default.createElement("div",{className:"stat-value"},z.totalCoupons),f.default.createElement("div",{className:"stat-label"},"\u4F18\u60E0\u5238\u603B\u6570")),f.default.createElement(S.Divider,{type:"vertical",style:{height:40}}),f.default.createElement("div",{className:"stat-item"},f.default.createElement("div",{className:"stat-value"},z.activeCoupons),f.default.createElement("div",{className:"stat-label"},"\u6D3B\u8DC3\u4F18\u60E0\u5238")),f.default.createElement(S.Divider,{type:"vertical",style:{height:40}}),f.default.createElement("div",{className:"stat-item"},f.default.createElement("div",{className:"stat-value"},z.totalReceived),f.default.createElement("div",{className:"stat-label"},"\u5DF2\u9886\u53D6")),f.default.createElement(S.Divider,{type:"vertical",style:{height:40}}),f.default.createElement("div",{className:"stat-item"},f.default.createElement("div",{className:"stat-value"},z.totalUsed),f.default.createElement("div",{className:"stat-label"},"\u5DF2\u4F7F\u7528")))),$&&f.default.createElement("div",{className:"filter-section"},f.default.createElement(S.Space,{wrap:!0},f.default.createElement(S.Input,{placeholder:"\u4F18\u60E0\u5238\u540D\u79F0",value:K,onChange:m=>ye(m.target.value),style:{width:200}}),f.default.createElement(S.Select,{placeholder:"\u4F18\u60E0\u5238\u7C7B\u578B",value:N,onChange:le,style:{width:120},allowClear:!0},Gt.map(m=>f.default.createElement(S.Select.Option,{key:m.value,value:m.value},m.label))),f.default.createElement(S.Select,{placeholder:"\u9002\u7528\u5E73\u53F0",value:te,onChange:O,style:{width:120},allowClear:!0},St.map(m=>f.default.createElement(S.Select.Option,{key:m.value,value:m.value},m.label))),f.default.createElement(S.Button,{type:"primary",onClick:Oe},"\u67E5\u8BE2"),f.default.createElement(S.Button,{onClick:Te},"\u91CD\u7F6E"))),B&&f.default.createElement("div",{className:"action-section"},f.default.createElement(S.Button,{type:"primary",icon:f.default.createElement(qe.PlusOutlined,null),onClick:y},"\u521B\u5EFA\u4F18\u60E0\u5238")),f.default.createElement(S.Table,{columns:b,dataSource:se,rowKey:"id",loading:oe,pagination:{current:be,pageSize:j,total:q,showSizeChanger:!0,showQuickJumper:!0,showTotal:m=>`\u5171 ${m} \u6761`,onChange:(m,e)=>{u(m),Q(e)}}})),f.default.createElement(S.Modal,{title:fe?"\u7F16\u8F91\u4F18\u60E0\u5238":"\u521B\u5EFA\u4F18\u60E0\u5238",visible:H,onOk:g,onCancel:()=>G(!1),width:600},f.default.createElement(S.Form,{form:pe,layout:"vertical"},f.default.createElement(S.Form.Item,{name:"name",label:"\u4F18\u60E0\u5238\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u4F18\u60E0\u5238\u540D\u79F0"}]},f.default.createElement(S.Input,{placeholder:"\u8BF7\u8F93\u5165\u4F18\u60E0\u5238\u540D\u79F0"})),f.default.createElement(S.Form.Item,{name:"type",label:"\u4F18\u60E0\u5238\u7C7B\u578B",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u4F18\u60E0\u5238\u7C7B\u578B"}]},f.default.createElement(S.Radio.Group,null,f.default.createElement(S.Radio,{value:Me.FULL_REDUCTION},"\u6EE1\u51CF\u5238"),f.default.createElement(S.Radio,{value:Me.DISCOUNT},"\u6298\u6263\u5238"))),f.default.createElement(S.Form.Item,{name:"amount",label:"\u4F18\u60E0\u989D\u5EA6",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u4F18\u60E0\u989D\u5EA6"}]},f.default.createElement(S.InputNumber,{placeholder:"\u6EE1\u51CF\u91D1\u989D\u6216\u6298\u6263",min:0,style:{width:"100%"}})),f.default.createElement(S.Form.Item,{name:"minPoint",label:"\u6700\u4F4E\u6D88\u8D39\u91D1\u989D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6700\u4F4E\u6D88\u8D39\u91D1\u989D"}]},f.default.createElement(S.InputNumber,{placeholder:"\u6700\u4F4E\u6D88\u8D39\u91D1\u989D",min:0,style:{width:"100%"}})),f.default.createElement(S.Form.Item,{name:"platform",label:"\u9002\u7528\u5E73\u53F0",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u9002\u7528\u5E73\u53F0"}]},f.default.createElement(S.Select,{placeholder:"\u8BF7\u9009\u62E9\u9002\u7528\u5E73\u53F0"},St.map(m=>f.default.createElement(S.Select.Option,{key:m.value,value:m.value},m.label)))),f.default.createElement(S.Form.Item,{name:"count",label:"\u53D1\u884C\u6570\u91CF",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u53D1\u884C\u6570\u91CF"}]},f.default.createElement(S.InputNumber,{placeholder:"\u53D1\u884C\u6570\u91CF",min:1,style:{width:"100%"}})),f.default.createElement(S.Form.Item,{name:"perLimit",label:"\u6BCF\u4EBA\u9650\u9886",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6BCF\u4EBA\u9650\u9886\u6570\u91CF"}]},f.default.createElement(S.InputNumber,{placeholder:"\u6BCF\u4EBA\u9650\u9886\u6570\u91CF",min:1,style:{width:"100%"}})),f.default.createElement(S.Form.Item,{name:"dateRange",label:"\u6709\u6548\u671F",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6709\u6548\u671F"}]},f.default.createElement(Or,{style:{width:"100%"}})),f.default.createElement(S.Form.Item,{name:"note",label:"\u5907\u6CE8"},f.default.createElement(S.Input.TextArea,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u5907\u6CE8"})))))},at=Nr;var x=V(ke()),A=V(De()),Ne=V(ze());var{RangePicker:Ar}=A.DatePicker,Ht={code:200,message:"success",data:{pageNum:1,pageSize:10,total:4,list:[{id:1,title:"\u53CC\u5341\u4E00\u5927\u4FC3",startDate:"2024-11-01",endDate:"2024-11-11",status:1,createTime:"2024-10-15 10:00:00"},{id:2,title:"618\u5E74\u4E2D\u5927\u4FC3",startDate:"2024-06-01",endDate:"2024-06-18",status:1,createTime:"2024-05-20 09:00:00"},{id:3,title:"\u65B0\u6625\u5B63\u4FC3\u9500",startDate:"2024-01-20",endDate:"2024-02-10",status:0,createTime:"2024-01-10 08:00:00"},{id:4,title:"\u4F1A\u5458\u65E5\u7279\u60E0",startDate:"2024-03-15",endDate:"2024-03-17",status:1,createTime:"2024-03-01 10:00:00"}]}},Dr=({dataSourceType:d="mock",api:r,method:l="GET",mockData:p,variableName:k,showCreateButton:B=!0,showFilter:$=!0,showStatistics:ee=!0,showTimeline:re=!0,onCreatePromotion:ie,onEditPromotion:R,onDeletePromotion:I,onToggleStatus:M,style:oe,className:ce})=>{let[se,Z]=(0,x.useState)(!1),[q,E]=(0,x.useState)([]),[be,u]=(0,x.useState)(0),[j,Q]=(0,x.useState)(1),[K,ye]=(0,x.useState)(10),[N,le]=(0,x.useState)(""),[te,O]=(0,x.useState)(),[H,G]=(0,x.useState)(!1),[fe,he]=(0,x.useState)(null),[pe]=A.Form.useForm(),ve=[{id:1,title:"\u53CC\u5341\u4E00\u5927\u4FC3",startDate:"2024-11-01",endDate:"2024-11-11",status:xe.ENABLED,createTime:"2024-10-15 10:00:00"},{id:2,title:"618\u5E74\u4E2D\u5927\u4FC3",startDate:"2024-06-01",endDate:"2024-06-18",status:xe.ENABLED,createTime:"2024-05-20 09:00:00"},{id:3,title:"\u65B0\u6625\u5B63\u4FC3\u9500",startDate:"2024-01-20",endDate:"2024-02-10",status:xe.DISABLED,createTime:"2024-01-10 08:00:00"},{id:4,title:"\u4F1A\u5458\u65E5\u7279\u60E0",startDate:"2024-03-15",endDate:"2024-03-17",status:xe.ENABLED,createTime:"2024-03-01 10:00:00"}],Se=(0,x.useMemo)(()=>({type:d,api:r,method:l,mockData:p?(()=>{try{return typeof p=="string"?JSON.parse(p):p}catch{return Ht}})():Ht,variableName:k}),[d,r,l,p,k]),Ae=(0,x.useMemo)(()=>_e.create(Se),[Se]);(0,x.useEffect)(()=>{ge()},[j,K,Ae]);let ge=async()=>{Z(!0);try{let e=await Ae.fetch({pageNum:j,pageSize:K,title:N,status:te}),v=[],W=0;e?.data?.list?(v=e.data.list,W=e.data.total||v.length):Array.isArray(e?.data)?(v=e.data,W=v.length):Array.isArray(e)&&(v=e,W=v.length),(N||te!==void 0)&&(v=v.filter(U=>!(N&&!U.title.toLowerCase().includes(N.toLowerCase())||te!==void 0&&U.status!==te)),W=v.length),E(v),u(W)}catch(e){console.error("Failed to fetch promotion list:",e),A.message.error("\u83B7\u53D6\u4FC3\u9500\u6D3B\u52A8\u5217\u8868\u5931\u8D25"),E(ve),u(ve.length)}finally{Z(!1)}},Oe=()=>{Q(1),ge()},Te=()=>{le(""),O(void 0),Q(1),ge()},y=()=>{he(null),pe.resetFields(),G(!0)},c=e=>{he(e),pe.setFieldsValue({...e,dateRange:[e.startDate,e.endDate]}),G(!0)},h=e=>{A.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u4FC3\u9500\u6D3B\u52A8\u5417\uFF1F",onOk:()=>{I?.(e),A.message.success("\u5220\u9664\u6210\u529F"),ge()}})},g=e=>{let v=e.status===xe.ENABLED?xe.DISABLED:xe.ENABLED;M?.(e.id,v),A.message.success(v===xe.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),ge()},C=async()=>{try{let e=await pe.validateFields(),v={...e,startDate:e.dateRange?.[0],endDate:e.dateRange?.[1]};fe?(R?.(fe.id,v),A.message.success("\u7F16\u8F91\u6210\u529F")):(ie?.(v),A.message.success("\u521B\u5EFA\u6210\u529F")),G(!1),ge()}catch(e){console.error("Validation failed:",e)}},Y=e=>{let v={[xe.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528",icon:x.default.createElement(Ne.CheckCircleOutlined,null)},[xe.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528",icon:x.default.createElement(Ne.CloseCircleOutlined,null)}},{color:W,text:U,icon:ue}=v[e]||{color:"default",text:"\u672A\u77E5",icon:null};return x.default.createElement(A.Tag,{color:W,icon:ue},U)},b=[{title:"\u6D3B\u52A8\u540D\u79F0",dataIndex:"title",key:"title",width:200,render:e=>x.default.createElement(A.Tooltip,{title:e},x.default.createElement("span",{className:"promotion-title"},x.default.createElement(Ne.ThunderboltOutlined,{style:{color:"#faad14",marginRight:8}}),e))},{title:"\u6D3B\u52A8\u65F6\u95F4",key:"dateRange",width:220,render:(e,v)=>x.default.createElement(A.Space,null,x.default.createElement(Ne.ClockCircleOutlined,null),x.default.createElement("span",null,v.startDate," ~ ",v.endDate))},{title:"\u72B6\u6001",dataIndex:"status",key:"status",width:100,render:e=>Y(e)},{title:"\u521B\u5EFA\u65F6\u95F4",dataIndex:"createTime",key:"createTime",width:180},{title:"\u64CD\u4F5C",key:"action",width:200,render:(e,v)=>x.default.createElement(A.Space,null,x.default.createElement(A.Button,{type:"link",size:"small",icon:x.default.createElement(Ne.EditOutlined,null),onClick:()=>c(v)},"\u7F16\u8F91"),x.default.createElement(A.Button,{type:"link",size:"small",onClick:()=>g(v)},v.status===xe.ENABLED?"\u7981\u7528":"\u542F\u7528"),x.default.createElement(A.Button,{type:"link",size:"small",danger:!0,icon:x.default.createElement(Ne.DeleteOutlined,null),onClick:()=>h(v.id)},"\u5220\u9664"))}],z={totalPromotions:q.length,activePromotions:q.filter(e=>e.status===xe.ENABLED).length,upcomingPromotions:q.filter(e=>{let v=new Date;return new Date(e.startDate)>v}).length},m=q.filter(e=>e.status===xe.ENABLED).slice(0,5).map(e=>({color:"green",children:x.default.createElement("div",null,x.default.createElement("div",{className:"timeline-title"},e.title),x.default.createElement("div",{className:"timeline-date"},e.startDate," ~ ",e.endDate))}));return x.default.createElement("div",{className:`mall-promotion-card ${ce||""}`,style:oe},x.default.createElement(A.Card,null,ee&&x.default.createElement("div",{className:"statistics-section"},x.default.createElement(A.Row,{gutter:16},x.default.createElement(A.Col,{span:8},x.default.createElement(A.Statistic,{title:"\u4FC3\u9500\u6D3B\u52A8\u603B\u6570",value:z.totalPromotions,prefix:x.default.createElement(Ne.ThunderboltOutlined,null)})),x.default.createElement(A.Col,{span:8},x.default.createElement(A.Statistic,{title:"\u8FDB\u884C\u4E2D\u7684\u6D3B\u52A8",value:z.activePromotions,valueStyle:{color:"#3f8600"}})),x.default.createElement(A.Col,{span:8},x.default.createElement(A.Statistic,{title:"\u5373\u5C06\u5F00\u59CB",value:z.upcomingPromotions,valueStyle:{color:"#faad14"}})))),$&&x.default.createElement("div",{className:"filter-section"},x.default.createElement(A.Space,{wrap:!0},x.default.createElement(A.Input,{placeholder:"\u6D3B\u52A8\u540D\u79F0",value:N,onChange:e=>le(e.target.value),style:{width:200}}),x.default.createElement(A.Select,{placeholder:"\u6D3B\u52A8\u72B6\u6001",value:te,onChange:O,style:{width:120},allowClear:!0},Jt.map(e=>x.default.createElement(A.Select.Option,{key:e.value,value:e.value},e.label))),x.default.createElement(A.Button,{type:"primary",onClick:Oe},"\u67E5\u8BE2"),x.default.createElement(A.Button,{onClick:Te},"\u91CD\u7F6E"))),B&&x.default.createElement("div",{className:"action-section"},x.default.createElement(A.Button,{type:"primary",icon:x.default.createElement(Ne.PlusOutlined,null),onClick:y},"\u521B\u5EFA\u4FC3\u9500\u6D3B\u52A8")),x.default.createElement("div",{className:"content-section"},x.default.createElement("div",{className:"table-section"},x.default.createElement(A.Table,{columns:b,dataSource:q,rowKey:"id",loading:se,pagination:{current:j,pageSize:K,total:be,showSizeChanger:!0,showQuickJumper:!0,showTotal:e=>`\u5171 ${e} \u6761`,onChange:(e,v)=>{Q(e),ye(v)}}})),re&&m.length>0&&x.default.createElement("div",{className:"timeline-section"},x.default.createElement(A.Card,{title:"\u6D3B\u52A8\u65F6\u95F4\u7EBF",size:"small"},x.default.createElement(A.Timeline,{items:m}))))),x.default.createElement(A.Modal,{title:fe?"\u7F16\u8F91\u4FC3\u9500\u6D3B\u52A8":"\u521B\u5EFA\u4FC3\u9500\u6D3B\u52A8",visible:H,onOk:C,onCancel:()=>G(!1),width:500},x.default.createElement(A.Form,{form:pe,layout:"vertical"},x.default.createElement(A.Form.Item,{name:"title",label:"\u6D3B\u52A8\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6D3B\u52A8\u540D\u79F0"}]},x.default.createElement(A.Input,{placeholder:"\u8BF7\u8F93\u5165\u6D3B\u52A8\u540D\u79F0"})),x.default.createElement(A.Form.Item,{name:"dateRange",label:"\u6D3B\u52A8\u65F6\u95F4",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6D3B\u52A8\u65F6\u95F4"}]},x.default.createElement(Ar,{style:{width:"100%"}})),x.default.createElement(A.Form.Item,{name:"status",label:"\u6D3B\u52A8\u72B6\u6001",initialValue:xe.ENABLED},x.default.createElement(A.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},it=Dr;var T=V(ke()),D=V(De()),Ge=V(ze());var Pe={DISABLED:0,ENABLED:1},Ie={DISABLED:0,ENABLED:1},Tt={DIRECTORY:0,MENU:1,BUTTON:2},Wt=[{label:"\u7981\u7528",value:Pe.DISABLED},{label:"\u542F\u7528",value:Pe.ENABLED}],Xt=[{label:"\u7981\u7528",value:Ie.DISABLED},{label:"\u542F\u7528",value:Ie.ENABLED}],tn=[{label:"\u76EE\u5F55",value:Tt.DIRECTORY},{label:"\u83DC\u5355",value:Tt.MENU},{label:"\u6309\u94AE",value:Tt.BUTTON}];var Er=({dataSource:d,showCreateButton:r=!0,showFilter:l=!0,showStatistics:p=!0,onCreateUser:k,onEditUser:B,onDeleteUser:$,onToggleStatus:ee,style:re,className:ie})=>{let[R,I]=(0,T.useState)(!1),[M,oe]=(0,T.useState)([]),[ce,se]=(0,T.useState)(0),[Z,q]=(0,T.useState)(1),[E,be]=(0,T.useState)(10),[u,j]=(0,T.useState)(""),[Q,K]=(0,T.useState)(),[ye,N]=(0,T.useState)(!1),[le,te]=(0,T.useState)(null),[O]=D.Form.useForm(),H=[{id:1,username:"admin",nickName:"\u8D85\u7EA7\u7BA1\u7406\u5458",email:"admin@example.com",phone:"13800138000",status:Pe.ENABLED,createTime:"2024-01-01 10:00:00",loginTime:"2024-04-02 09:30:00",roleIds:[1],roleNames:["\u8D85\u7EA7\u7BA1\u7406\u5458"]},{id:2,username:"operator",nickName:"\u8FD0\u8425\u4EBA\u5458",email:"operator@example.com",phone:"13900139000",status:Pe.ENABLED,createTime:"2024-01-15 14:00:00",loginTime:"2024-04-01 16:20:00",roleIds:[2],roleNames:["\u8FD0\u8425"]},{id:3,username:"viewer",nickName:"\u8BBF\u5BA2\u7528\u6237",email:"viewer@example.com",phone:"13700137000",status:Pe.DISABLED,createTime:"2024-02-01 09:00:00",loginTime:"2024-03-15 10:00:00",roleIds:[3],roleNames:["\u8BBF\u5BA2"]}];(0,T.useEffect)(()=>{G()},[Z,E]);let G=async()=>{I(!0);try{await new Promise(h=>setTimeout(h,500));let c=[...H];u&&(c=c.filter(h=>h.username.toLowerCase().includes(u.toLowerCase())||h.nickName?.toLowerCase().includes(u.toLowerCase()))),Q!==void 0&&(c=c.filter(h=>h.status===Q)),oe(c),se(c.length)}catch(c){console.error("Failed to fetch user list:",c),D.message.error("\u83B7\u53D6\u7528\u6237\u5217\u8868\u5931\u8D25")}finally{I(!1)}},fe=()=>{q(1),G()},he=()=>{j(""),K(void 0),q(1),G()},pe=()=>{te(null),O.resetFields(),N(!0)},ve=c=>{te(c),O.setFieldsValue(c),N(!0)},Se=c=>{D.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u7528\u6237\u5417\uFF1F",onOk:()=>{$?.(c),D.message.success("\u5220\u9664\u6210\u529F"),G()}})},Ae=c=>{let h=c.status===Pe.ENABLED?Pe.DISABLED:Pe.ENABLED;ee?.(c.id,h),D.message.success(h===Pe.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),G()},ge=async()=>{try{let c=await O.validateFields();le?(B?.(le.id,c),D.message.success("\u7F16\u8F91\u6210\u529F")):(k?.(c),D.message.success("\u521B\u5EFA\u6210\u529F")),N(!1),G()}catch(c){console.error("Validation failed:",c)}},Oe=c=>{let h={[Pe.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528"},[Pe.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528"}},{color:g,text:C}=h[c]||{color:"default",text:"\u672A\u77E5"};return T.default.createElement(D.Tag,{color:g},C)},Te=[{title:"\u7528\u6237\u4FE1\u606F",key:"userInfo",width:200,render:(c,h)=>T.default.createElement(D.Space,null,T.default.createElement(D.Avatar,{icon:T.default.createElement(Ge.UserOutlined,null),style:{backgroundColor:"#1890ff"}}),T.default.createElement("div",null,T.default.createElement("div",{className:"user-name"},h.nickName||h.username),T.default.createElement("div",{className:"user-username"},"@",h.username)))},{title:"\u90AE\u7BB1",dataIndex:"email",key:"email",width:180},{title:"\u624B\u673A\u53F7",dataIndex:"phone",key:"phone",width:130},{title:"\u89D2\u8272",dataIndex:"roleNames",key:"roleNames",width:150,render:c=>T.default.createElement(D.Space,{wrap:!0},c?.map((h,g)=>T.default.createElement(D.Tag,{key:g,color:"blue"},h)))},{title:"\u72B6\u6001",dataIndex:"status",key:"status",width:80,render:c=>Oe(c)},{title:"\u6700\u540E\u767B\u5F55",dataIndex:"loginTime",key:"loginTime",width:160},{title:"\u64CD\u4F5C",key:"action",width:180,render:(c,h)=>T.default.createElement(D.Space,null,T.default.createElement(D.Button,{type:"link",size:"small",icon:T.default.createElement(Ge.EditOutlined,null),onClick:()=>ve(h)},"\u7F16\u8F91"),T.default.createElement(D.Button,{type:"link",size:"small",onClick:()=>Ae(h)},h.status===Pe.ENABLED?"\u7981\u7528":"\u542F\u7528"),T.default.createElement(D.Button,{type:"link",size:"small",danger:!0,icon:T.default.createElement(Ge.DeleteOutlined,null),onClick:()=>Se(h.id)},"\u5220\u9664"))}],y={totalUsers:H.length,activeUsers:H.filter(c=>c.status===Pe.ENABLED).length,disabledUsers:H.filter(c=>c.status===Pe.DISABLED).length};return T.default.createElement("div",{className:`mall-user-card ${ie||""}`,style:re},T.default.createElement(D.Card,null,p&&T.default.createElement("div",{className:"statistics-section"},T.default.createElement(D.Space,{size:"large"},T.default.createElement("div",{className:"stat-item"},T.default.createElement("div",{className:"stat-value"},y.totalUsers),T.default.createElement("div",{className:"stat-label"},"\u7528\u6237\u603B\u6570")),T.default.createElement(D.Divider,{type:"vertical",style:{height:40}}),T.default.createElement("div",{className:"stat-item"},T.default.createElement("div",{className:"stat-value",style:{color:"#52c41a"}},y.activeUsers),T.default.createElement("div",{className:"stat-label"},"\u6D3B\u8DC3\u7528\u6237")),T.default.createElement(D.Divider,{type:"vertical",style:{height:40}}),T.default.createElement("div",{className:"stat-item"},T.default.createElement("div",{className:"stat-value",style:{color:"#8c8c8c"}},y.disabledUsers),T.default.createElement("div",{className:"stat-label"},"\u5DF2\u7981\u7528")))),l&&T.default.createElement("div",{className:"filter-section"},T.default.createElement(D.Space,{wrap:!0},T.default.createElement(D.Input,{placeholder:"\u7528\u6237\u540D/\u6635\u79F0",value:u,onChange:c=>j(c.target.value),style:{width:200}}),T.default.createElement(D.Select,{placeholder:"\u7528\u6237\u72B6\u6001",value:Q,onChange:K,style:{width:120},allowClear:!0},Wt.map(c=>T.default.createElement(D.Select.Option,{key:c.value,value:c.value},c.label))),T.default.createElement(D.Button,{type:"primary",onClick:fe},"\u67E5\u8BE2"),T.default.createElement(D.Button,{onClick:he},"\u91CD\u7F6E"))),r&&T.default.createElement("div",{className:"action-section"},T.default.createElement(D.Button,{type:"primary",icon:T.default.createElement(Ge.PlusOutlined,null),onClick:pe},"\u521B\u5EFA\u7528\u6237")),T.default.createElement(D.Table,{columns:Te,dataSource:M,rowKey:"id",loading:R,pagination:{current:Z,pageSize:E,total:ce,showSizeChanger:!0,showQuickJumper:!0,showTotal:c=>`\u5171 ${c} \u6761`,onChange:(c,h)=>{q(c),be(h)}}})),T.default.createElement(D.Modal,{title:le?"\u7F16\u8F91\u7528\u6237":"\u521B\u5EFA\u7528\u6237",visible:ye,onOk:ge,onCancel:()=>N(!1),width:500},T.default.createElement(D.Form,{form:O,layout:"vertical"},T.default.createElement(D.Form.Item,{name:"username",label:"\u7528\u6237\u540D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u7528\u6237\u540D"}]},T.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u540D",disabled:!!le})),T.default.createElement(D.Form.Item,{name:"nickName",label:"\u6635\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6635\u79F0"}]},T.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u6635\u79F0"})),T.default.createElement(D.Form.Item,{name:"email",label:"\u90AE\u7BB1",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u90AE\u7BB1"},{type:"email",message:"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u90AE\u7BB1\u5730\u5740"}]},T.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u90AE\u7BB1"})),T.default.createElement(D.Form.Item,{name:"phone",label:"\u624B\u673A\u53F7",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u624B\u673A\u53F7"}]},T.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u624B\u673A\u53F7"})),T.default.createElement(D.Form.Item,{name:"status",label:"\u72B6\u6001",initialValue:Pe.ENABLED},T.default.createElement(D.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},st=Er;var P=V(ke()),L=V(De()),Je=V(ze());var Lr=({dataSource:d,showCreateButton:r=!0,showFilter:l=!0,showStatistics:p=!0,showPermissionTree:k=!0,onCreateRole:B,onEditRole:$,onDeleteRole:ee,onToggleStatus:re,style:ie,className:R})=>{let[I,M]=(0,P.useState)(!1),[oe,ce]=(0,P.useState)([]),[se,Z]=(0,P.useState)(0),[q,E]=(0,P.useState)(1),[be,u]=(0,P.useState)(10),[j,Q]=(0,P.useState)(""),[K,ye]=(0,P.useState)(),[N,le]=(0,P.useState)(!1),[te,O]=(0,P.useState)(null),[H]=L.Form.useForm(),G=[{id:1,name:"\u8D85\u7EA7\u7BA1\u7406\u5458",description:"\u62E5\u6709\u6240\u6709\u6743\u9650",adminCount:2,status:Ie.ENABLED,sort:0,createTime:"2024-01-01 10:00:00"},{id:2,name:"\u8FD0\u8425",description:"\u8D1F\u8D23\u5546\u54C1\u548C\u8BA2\u5355\u7BA1\u7406",adminCount:5,status:Ie.ENABLED,sort:1,createTime:"2024-01-15 14:00:00"},{id:3,name:"\u5BA2\u670D",description:"\u8D1F\u8D23\u8BA2\u5355\u5904\u7406\u548C\u5BA2\u6237\u670D\u52A1",adminCount:3,status:Ie.ENABLED,sort:2,createTime:"2024-02-01 09:00:00"},{id:4,name:"\u8BBF\u5BA2",description:"\u53EA\u8BFB\u6743\u9650",adminCount:10,status:Ie.DISABLED,sort:3,createTime:"2024-02-15 11:00:00"}],fe=[{title:"\u5546\u54C1\u7BA1\u7406",key:"product",children:[{title:"\u5546\u54C1\u5217\u8868",key:"product:list"},{title:"\u6DFB\u52A0\u5546\u54C1",key:"product:create"},{title:"\u7F16\u8F91\u5546\u54C1",key:"product:edit"},{title:"\u5220\u9664\u5546\u54C1",key:"product:delete"}]},{title:"\u8BA2\u5355\u7BA1\u7406",key:"order",children:[{title:"\u8BA2\u5355\u5217\u8868",key:"order:list"},{title:"\u8BA2\u5355\u8BE6\u60C5",key:"order:detail"},{title:"\u53D1\u8D27",key:"order:deliver"},{title:"\u5173\u95ED\u8BA2\u5355",key:"order:close"}]},{title:"\u8425\u9500\u7BA1\u7406",key:"marketing",children:[{title:"\u4F18\u60E0\u5238\u7BA1\u7406",key:"marketing:coupon"},{title:"\u4FC3\u9500\u6D3B\u52A8",key:"marketing:promotion"}]},{title:"\u6743\u9650\u7BA1\u7406",key:"permission",children:[{title:"\u7528\u6237\u7BA1\u7406",key:"permission:user"},{title:"\u89D2\u8272\u7BA1\u7406",key:"permission:role"}]}];(0,P.useEffect)(()=>{he()},[q,be]);let he=async()=>{M(!0);try{await new Promise(C=>setTimeout(C,500));let g=[...G];j&&(g=g.filter(C=>C.name.toLowerCase().includes(j.toLowerCase())||C.description?.toLowerCase().includes(j.toLowerCase()))),K!==void 0&&(g=g.filter(C=>C.status===K)),ce(g),Z(g.length)}catch(g){console.error("Failed to fetch role list:",g),L.message.error("\u83B7\u53D6\u89D2\u8272\u5217\u8868\u5931\u8D25")}finally{M(!1)}},pe=()=>{E(1),he()},ve=()=>{Q(""),ye(void 0),E(1),he()},Se=()=>{O(null),H.resetFields(),le(!0)},Ae=g=>{O(g),H.setFieldsValue(g),le(!0)},ge=g=>{L.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u89D2\u8272\u5417\uFF1F",onOk:()=>{ee?.(g),L.message.success("\u5220\u9664\u6210\u529F"),he()}})},Oe=g=>{let C=g.status===Ie.ENABLED?Ie.DISABLED:Ie.ENABLED;re?.(g.id,C),L.message.success(C===Ie.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),he()},Te=async()=>{try{let g=await H.validateFields();te?($?.(te.id,g),L.message.success("\u7F16\u8F91\u6210\u529F")):(B?.(g),L.message.success("\u521B\u5EFA\u6210\u529F")),le(!1),he()}catch(g){console.error("Validation failed:",g)}},y=g=>{let C={[Ie.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528"},[Ie.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528"}},{color:Y,text:b}=C[g]||{color:"default",text:"\u672A\u77E5"};return P.default.createElement(L.Tag,{color:Y},b)},c=[{title:"\u89D2\u8272\u540D\u79F0",dataIndex:"name",key:"name",width:150,render:g=>P.default.createElement(L.Space,null,P.default.createElement(Je.TeamOutlined,{style:{color:"#1890ff"}}),P.default.createElement("span",{className:"role-name"},g))},{title:"\u63CF\u8FF0",dataIndex:"description",key:"description",width:200},{title:"\u7528\u6237\u6570",dataIndex:"adminCount",key:"adminCount",width:80,render:g=>P.default.createElement(L.Tag,{color:"blue"},g," \u4EBA")},{title:"\u72B6\u6001",dataIndex:"status",key:"status",width:80,render:g=>y(g)},{title:"\u6392\u5E8F",dataIndex:"sort",key:"sort",width:60},{title:"\u521B\u5EFA\u65F6\u95F4",dataIndex:"createTime",key:"createTime",width:160},{title:"\u64CD\u4F5C",key:"action",width:180,render:(g,C)=>P.default.createElement(L.Space,null,P.default.createElement(L.Button,{type:"link",size:"small",icon:P.default.createElement(Je.EditOutlined,null),onClick:()=>Ae(C)},"\u7F16\u8F91"),P.default.createElement(L.Button,{type:"link",size:"small",onClick:()=>Oe(C)},C.status===Ie.ENABLED?"\u7981\u7528":"\u542F\u7528"),P.default.createElement(L.Button,{type:"link",size:"small",danger:!0,icon:P.default.createElement(Je.DeleteOutlined,null),onClick:()=>ge(C.id)},"\u5220\u9664"))}],h={totalRoles:G.length,activeRoles:G.filter(g=>g.status===Ie.ENABLED).length,totalAdmins:G.reduce((g,C)=>g+C.adminCount,0)};return P.default.createElement("div",{className:`mall-role-card ${R||""}`,style:ie},P.default.createElement(L.Card,null,p&&P.default.createElement("div",{className:"statistics-section"},P.default.createElement(L.Space,{size:"large"},P.default.createElement("div",{className:"stat-item"},P.default.createElement("div",{className:"stat-value"},h.totalRoles),P.default.createElement("div",{className:"stat-label"},"\u89D2\u8272\u603B\u6570")),P.default.createElement(L.Divider,{type:"vertical",style:{height:40}}),P.default.createElement("div",{className:"stat-item"},P.default.createElement("div",{className:"stat-value",style:{color:"#52c41a"}},h.activeRoles),P.default.createElement("div",{className:"stat-label"},"\u542F\u7528\u89D2\u8272")),P.default.createElement(L.Divider,{type:"vertical",style:{height:40}}),P.default.createElement("div",{className:"stat-item"},P.default.createElement("div",{className:"stat-value",style:{color:"#1890ff"}},h.totalAdmins),P.default.createElement("div",{className:"stat-label"},"\u7528\u6237\u603B\u6570")))),l&&P.default.createElement("div",{className:"filter-section"},P.default.createElement(L.Space,{wrap:!0},P.default.createElement(L.Input,{placeholder:"\u89D2\u8272\u540D\u79F0/\u63CF\u8FF0",value:j,onChange:g=>Q(g.target.value),style:{width:200}}),P.default.createElement(L.Select,{placeholder:"\u89D2\u8272\u72B6\u6001",value:K,onChange:ye,style:{width:120},allowClear:!0},Xt.map(g=>P.default.createElement(L.Select.Option,{key:g.value,value:g.value},g.label))),P.default.createElement(L.Button,{type:"primary",onClick:pe},"\u67E5\u8BE2"),P.default.createElement(L.Button,{onClick:ve},"\u91CD\u7F6E"))),r&&P.default.createElement("div",{className:"action-section"},P.default.createElement(L.Button,{type:"primary",icon:P.default.createElement(Je.PlusOutlined,null),onClick:Se},"\u521B\u5EFA\u89D2\u8272")),P.default.createElement("div",{className:"content-section"},P.default.createElement("div",{className:"table-section"},P.default.createElement(L.Table,{columns:c,dataSource:oe,rowKey:"id",loading:I,pagination:{current:q,pageSize:be,total:se,showSizeChanger:!0,showQuickJumper:!0,showTotal:g=>`\u5171 ${g} \u6761`,onChange:(g,C)=>{E(g),u(C)}}})),k&&P.default.createElement("div",{className:"permission-section"},P.default.createElement(L.Card,{title:"\u6743\u9650\u6811",size:"small"},P.default.createElement(L.Tree,{checkable:!0,defaultExpandedKeys:["product","order"],treeData:fe}))))),P.default.createElement(L.Modal,{title:te?"\u7F16\u8F91\u89D2\u8272":"\u521B\u5EFA\u89D2\u8272",visible:N,onOk:Te,onCancel:()=>le(!1),width:500},P.default.createElement(L.Form,{form:H,layout:"vertical"},P.default.createElement(L.Form.Item,{name:"name",label:"\u89D2\u8272\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0"}]},P.default.createElement(L.Input,{placeholder:"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0"})),P.default.createElement(L.Form.Item,{name:"description",label:"\u63CF\u8FF0"},P.default.createElement(L.Input.TextArea,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u89D2\u8272\u63CF\u8FF0"})),P.default.createElement(L.Form.Item,{name:"sort",label:"\u6392\u5E8F",initialValue:0},P.default.createElement(L.Input,{type:"number",placeholder:"\u6392\u5E8F\u503C"})),P.default.createElement(L.Form.Item,{name:"status",label:"\u72B6\u6001",initialValue:Ie.ENABLED},P.default.createElement(L.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},lt=Lr;var _=V(ke());var ae=V(ke()),kt=V(De()),J=V(ze()),{SubMenu:yn}=kt.Menu,wt=[{key:"dashboard",label:"\u5DE5\u4F5C\u53F0",icon:ae.default.createElement(J.DashboardOutlined,null),path:"/dashboard"},{key:"permission",label:"\u6743\u9650\u7BA1\u7406",icon:ae.default.createElement(J.SafetyCertificateOutlined,null),children:[{key:"permission/users",label:"\u7528\u6237\u7BA1\u7406",icon:ae.default.createElement(J.UserOutlined,null),path:"/permission/users"},{key:"permission/roles",label:"\u89D2\u8272\u7BA1\u7406",icon:ae.default.createElement(J.TeamOutlined,null),path:"/permission/roles"},{key:"permission/resources",label:"\u8D44\u6E90\u7BA1\u7406",icon:ae.default.createElement(J.SettingOutlined,null),path:"/permission/resources"},{key:"permission/menus",label:"\u83DC\u5355\u7BA1\u7406",icon:ae.default.createElement(J.FileTextOutlined,null),path:"/permission/menus"}]},{key:"product",label:"\u5546\u54C1\u7BA1\u7406",icon:ae.default.createElement(J.ShoppingOutlined,null),children:[{key:"product/list",label:"\u5546\u54C1\u5217\u8868",icon:ae.default.createElement(J.InboxOutlined,null),path:"/product/list"},{key:"product/add",label:"\u6DFB\u52A0\u5546\u54C1",icon:ae.default.createElement(J.ShoppingOutlined,null),path:"/product/add"},{key:"product/category",label:"\u5546\u54C1\u5206\u7C7B",icon:ae.default.createElement(J.TagsOutlined,null),path:"/product/category"},{key:"product/brand",label:"\u54C1\u724C\u7BA1\u7406",path:"/product/brand"},{key:"product/attribute",label:"\u5546\u54C1\u5C5E\u6027",path:"/product/attribute"}]},{key:"order",label:"\u8BA2\u5355\u7BA1\u7406",icon:ae.default.createElement(J.FileTextOutlined,null),children:[{key:"order/list",label:"\u8BA2\u5355\u5217\u8868",icon:ae.default.createElement(J.FileTextOutlined,null),path:"/order/list"},{key:"order/setting",label:"\u8BA2\u5355\u8BBE\u7F6E",icon:ae.default.createElement(J.SettingOutlined,null),path:"/order/setting"},{key:"order/return",label:"\u9000\u8D27\u7533\u8BF7",path:"/order/return"},{key:"order/reason",label:"\u9000\u8D27\u539F\u56E0",path:"/order/reason"}]},{key:"marketing",label:"\u8425\u9500\u7BA1\u7406",icon:ae.default.createElement(J.GiftOutlined,null),children:[{key:"marketing/coupon",label:"\u4F18\u60E0\u5238\u7BA1\u7406",icon:ae.default.createElement(J.GiftOutlined,null),path:"/marketing/coupon"},{key:"marketing/promotion",label:"\u4FC3\u9500\u6D3B\u52A8",icon:ae.default.createElement(J.DollarOutlined,null),path:"/marketing/promotion"},{key:"marketing/flash",label:"\u79D2\u6740\u6D3B\u52A8",icon:ae.default.createElement(J.ThunderboltOutlined,null),path:"/marketing/flash"},{key:"marketing/new",label:"\u65B0\u54C1\u63A8\u8350",icon:ae.default.createElement(J.FireOutlined,null),path:"/marketing/new"},{key:"marketing/hot",label:"\u4EBA\u6C14\u63A8\u8350",icon:ae.default.createElement(J.FireOutlined,null),path:"/marketing/hot"},{key:"marketing/advertise",label:"\u5E7F\u544A\u7BA1\u7406",path:"/marketing/advertise"},{key:"marketing/subject",label:"\u4E13\u9898\u7BA1\u7406",path:"/marketing/subject"},{key:"marketing/brand",label:"\u54C1\u724C\u63A8\u8350",path:"/marketing/brand"}]}],Fr=({collapsed:d,selectedKey:r,openKeys:l,onMenuClick:p,onOpenChange:k,menuItems:B})=>{let $=B||wt,[ee,re]=(0,ae.useState)($.filter(I=>I.children).map(I=>I.key)),ie=I=>{let M=I[I.length-1];M&&$.some(oe=>oe.key===M)?(re(I),k(I)):(re(M?[M]:[]),k(M?[M]:[]))},R=({key:I})=>{p(I)};return ae.default.createElement("div",{className:`sidebar-container ${d?"collapsed":""}`},ae.default.createElement("div",{className:"sidebar-logo"},!d&&ae.default.createElement("span",{className:"logo-text"},"Mall Admin"),d&&ae.default.createElement("span",{className:"logo-icon"},"M")),ae.default.createElement(kt.Menu,{mode:"inline",theme:"dark",inlineCollapsed:d,selectedKeys:[r],defaultOpenKeys:ee,openKeys:l.length>0?l:ee,onClick:R,onOpenChange:ie,items:$.map(I=>I.children&&I.children.length>0?{key:I.key,icon:I.icon,label:I.label,children:I.children.map(M=>({key:M.key,icon:M.icon,label:M.label}))}:{key:I.key,icon:I.icon,label:I.label})}))},Zt=Fr;var Ce=V(ke()),Qe=V(De()),Be=V(ze());var dt=V(ke()),Pt=V(De()),Ur={dashboard:"\u5DE5\u4F5C\u53F0",permission:"\u6743\u9650\u7BA1\u7406",product:"\u5546\u54C1\u7BA1\u7406",order:"\u8BA2\u5355\u7BA1\u7406",marketing:"\u8425\u9500\u7BA1\u7406",users:"\u7528\u6237\u7BA1\u7406",roles:"\u89D2\u8272\u7BA1\u7406",resources:"\u8D44\u6E90\u7BA1\u7406",menus:"\u83DC\u5355\u7BA1\u7406",list:"\u5217\u8868",add:"\u6DFB\u52A0",category:"\u5206\u7C7B",brand:"\u54C1\u724C",attribute:"\u5C5E\u6027",setting:"\u8BBE\u7F6E",return:"\u9000\u8D27",reason:"\u539F\u56E0",coupon:"\u4F18\u60E0\u5238",promotion:"\u4FC3\u9500",flash:"\u79D2\u6740",new:"\u65B0\u54C1",hot:"\u4EBA\u6C14",advertise:"\u5E7F\u544A",subject:"\u4E13\u9898"},Mr=({items:d,onNavigate:r})=>{let l=p=>p.split("/").map(B=>Ur[B]||B).join(" / ");return!d||d.length===0?null:dt.default.createElement(Pt.Breadcrumb,null,d.map(p=>dt.default.createElement(Pt.Breadcrumb.Item,{key:p.key},dt.default.createElement("a",{onClick:()=>r(p.key)},p.label||l(p.key)))))},Rt=Mr;var Br=({collapsed:d,onToggleCollapse:r,breadcrumbItems:l,onNavigate:p})=>Ce.default.createElement("div",{className:"navbar-container"},Ce.default.createElement("div",{className:"navbar-left"},Ce.default.createElement("button",{className:"hamburger-btn",onClick:r},d?Ce.default.createElement(Be.MenuUnfoldOutlined,null):Ce.default.createElement(Be.MenuFoldOutlined,null)),Ce.default.createElement(Rt,{items:l,onNavigate:p})),Ce.default.createElement("div",{className:"navbar-right"},Ce.default.createElement(Qe.Dropdown,{overlay:Ce.default.createElement(Qe.Menu,{items:[{key:"profile",icon:Ce.default.createElement(Be.UserOutlined,null),label:"\u4E2A\u4EBA\u4E2D\u5FC3"},{key:"settings",icon:Ce.default.createElement(Be.SettingOutlined,null),label:"\u7CFB\u7EDF\u8BBE\u7F6E"},{type:"divider"},{key:"logout",icon:Ce.default.createElement(Be.LogoutOutlined,null),label:"\u9000\u51FA\u767B\u5F55",danger:!0}],onClick:({key:ee})=>{ee==="logout"&&console.log("User logged out")}}),placement:"bottomRight"},Ce.default.createElement("div",{className:"user-info"},Ce.default.createElement(Qe.Avatar,{size:32,icon:Ce.default.createElement(Be.UserOutlined,null),className:"user-avatar"}),Ce.default.createElement(Qe.Space,{size:4,className:"username"},Ce.default.createElement("span",null,"\u7BA1\u7406\u5458")))))),er=Br;var Xe=V(ke());var X=V(ke()),mt=V(De()),je=V(ze()),zr=({tabs:d,activeTabKey:r,onTabClick:l,onCloseTab:p,onCloseOther:k,onCloseAll:B,closableTabs:$=!0})=>{let[ee,re]=(0,X.useState)(null),[ie,R]=(0,X.useState)(!1),[I,M]=(0,X.useState)(""),[oe,ce]=(0,X.useState)({x:0,y:0}),se=(0,X.useRef)(null);(0,X.useEffect)(()=>{if(se.current&&r){let u=se.current.querySelector(`[data-tab-key="${r}"]`);u&&u.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}},[r]),(0,X.useEffect)(()=>{let u=()=>R(!1);if(ie)return document.addEventListener("click",u),()=>document.removeEventListener("click",u)},[ie]);let Z=(u,j)=>{u.preventDefault(),u.stopPropagation(),M(j),ce({x:u.clientX,y:u.clientY}),R(!0)},q=u=>{switch(R(!1),u){case"close":p(I);break;case"closeOther":k(I);break;case"closeAll":B();break;case"refresh":window.location.reload();break}};if(!d||d.length===0)return null;let E=[{key:"refresh",icon:X.default.createElement(je.ReloadOutlined,null),label:"\u5237\u65B0\u5F53\u524D\u9875"},{key:"close",icon:X.default.createElement(je.CloseOutlined,null),label:"\u5173\u95ED\u5F53\u524D",disabled:!$||d.find(u=>u.key===I)?.closable===!1},{type:"divider"},{key:"closeOther",icon:X.default.createElement(je.CloseCircleOutlined,null),label:"\u5173\u95ED\u5176\u4ED6",disabled:d.length<=1},{key:"closeAll",icon:X.default.createElement(je.CloseCircleOutlined,null),label:"\u5173\u95ED\u6240\u6709"}],be=X.default.createElement(mt.Menu,{items:E,onClick:({key:u})=>q(u)});return X.default.createElement(X.default.Fragment,null,X.default.createElement("div",{className:"tab-bar-container"},X.default.createElement("div",{className:"tab-bar-scroll",ref:se},d.map(u=>X.default.createElement("div",{key:u.key,"data-tab-key":u.key,className:`tab-item ${r===u.key?"active":""} ${ee===u.key?"hovered":""}`,onClick:()=>l(u.key),onMouseEnter:()=>re(u.key),onMouseLeave:()=>re(null),onContextMenu:j=>Z(j,u.key)},u.icon&&X.default.createElement("span",{className:"tab-icon"},u.icon),X.default.createElement("span",{className:"tab-label"},u.label),$&&u.closable&&X.default.createElement("span",{className:`tab-close-btn ${ee===u.key||r===u.key?"visible":""}`,onClick:j=>{j.stopPropagation(),p(u.key)}},X.default.createElement(je.CloseOutlined,{style:{fontSize:10}}))))),$&&d.length>1&&X.default.createElement("div",{className:"tab-actions"},X.default.createElement("button",{className:"close-all-btn",onClick:B,title:"\u5173\u95ED\u5168\u90E8\u6807\u7B7E"},X.default.createElement(je.CloseCircleOutlined,null)))),ie&&X.default.createElement("div",{style:{position:"fixed",left:oe.x,top:oe.y,zIndex:1e3}},X.default.createElement(mt.Dropdown,{overlay:be,visible:ie,onVisibleChange:R,trigger:["click"]},X.default.createElement("div",{style:{width:0,height:0}}))))},tr=zr;var _r=({children:d,pageKey:r,tabs:l,activeTabKey:p,onTabClick:k,onCloseTab:B,onCloseOther:$,onCloseAll:ee,enableTabs:re=!0,closableTabs:ie=!0,className:R=""})=>Xe.default.createElement("main",{className:`main-content ${R}`},re&&l.length>0&&Xe.default.createElement(tr,{tabs:l,activeTabKey:p,onTabClick:k,onCloseTab:B,onCloseOther:$,onCloseAll:ee,closableTabs:ie}),Xe.default.createElement("div",{className:"content-wrapper"},Xe.default.createElement("div",{className:"page-container",key:r},d))),rr=_r;var Yr="general",It=()=>{try{let d=window.AliLowCodeEngine;if(!d?.project)return;let r=d.project.exportSchema("save"),l=`${Yr}:projectSchema`;localStorage.setItem(l,JSON.stringify(r)),console.log("[AdminLayout] \u{1F4BE} Schema saved to localStorage")}catch(d){console.error("[AdminLayout] Failed to save schema:",d)}},ct=(d,r)=>{for(let l of d){if(l.key===r)return l;if(l.children){let p=ct(l.children,r);if(p)return p}}},ut=d=>{let r=d.split("/");return{dashboard:"\u5DE5\u4F5C\u53F0",permission:"\u6743\u9650\u7BA1\u7406",product:"\u5546\u54C1\u7BA1\u7406",order:"\u8BA2\u5355\u7BA1\u7406",marketing:"\u8425\u9500\u7BA1\u7406",users:"\u7528\u6237\u7BA1\u7406",roles:"\u89D2\u8272\u7BA1\u7406",resources:"\u8D44\u6E90\u7BA1\u7406",menus:"\u83DC\u5355\u7BA1\u7406",list:"\u5217\u8868",add:"\u6DFB\u52A0",category:"\u5206\u7C7B",brand:"\u54C1\u724C",attribute:"\u5C5E\u6027",setting:"\u8BBE\u7F6E",return:"\u9000\u8D27\u7533\u8BF7",reason:"\u9000\u8D27\u539F\u56E0",coupon:"\u4F18\u60E0\u5238\u7BA1\u7406",promotion:"\u4FC3\u9500\u6D3B\u52A8",flash:"\u79D2\u6740\u6D3B\u52A8",new:"\u65B0\u54C1\u63A8\u8350",hot:"\u4EBA\u6C14\u63A8\u8350",advertise:"\u5E7F\u544A\u7BA1\u7406",subject:"\u4E13\u9898\u7BA1\u7406"}[r[r.length-1]]||r[r.length-1]},Vr=({defaultSelectedKey:d="dashboard",defaultOpenKeys:r,collapsible:l=!0,enableTabs:p=!0,maxTabs:k=10,closableTabs:B=!0,logoText:$="Mall Admin",menuItems:ee,style:re,className:ie,children:R,__designMode:I,componentId:M})=>{let oe=ee||wt,[ce,se]=(0,_.useState)(!1),[Z,q]=(0,_.useState)(d),[E,be]=(0,_.useState)(r||[]),[u,j]=(0,_.useState)(()=>{let y=ct(oe,d);return[{key:d,label:y?.label||ut(d),icon:y?.icon,closable:!1,path:y?.path||`/${d}`}]}),[Q,K]=(0,_.useState)(d),ye=(0,_.useRef)(Q);ye.current=Q;let N=(0,_.useRef)(!1);(0,_.useEffect)(()=>{if(I!=="design"||!M||N.current)return;let y=setTimeout(()=>{try{let c=window.AliLowCodeEngine;if(!c?.project?.currentDocument)return;let h=c.project.currentDocument,g=h.getNodeById(M);if(!g){console.log("[AdminLayout] \u26A0\uFE0F AdminLayout node not found");return}let C=g.schema?.children||[];console.log("[AdminLayout] \u{1F50D} Schema children:",C.length,C.map(b=>b.componentName));let Y=C.filter(b=>b.componentName==="TabPane");if(console.log("[AdminLayout] \u{1F50D} Found existing TabPanes:",Y.length),Y.length>0){let b=Y.map(m=>{let e=m.props?.tabKey||"unknown",v=m.props?.tab||ut(e),W=ct(oe,e);return console.log("[AdminLayout] \u{1F4CB} Restoring tab:",e,v),{key:e,label:v,icon:W?.icon,closable:e!=="dashboard",path:W?.path||`/${e}`}});console.log("[AdminLayout] \u{1F4CB} Restored tabs from schema:",b.map(m=>m.key)),j(b);let z=b[b.length-1];z&&(K(z.key),q(z.key))}else{console.log("[AdminLayout] \u{1F4CB} No TabPane found, creating default dashboard TabPane");let b=h.createNode({componentName:"TabPane",props:{tab:"\u5DE5\u4F5C\u53F0",tabKey:"dashboard",activeTabKey:"dashboard"}});b&&(h.insertNode(g,b),console.log("[AdminLayout] \u2705 Created default TabPane for dashboard"))}N.current=!0}catch(c){console.error("[AdminLayout] Init TabPane error:",c)}},100);return()=>clearTimeout(y)},[M,I,oe]),(0,_.useEffect)(()=>{if(I!=="design")return;let y=window.AliLowCodeEngine;if(!y?.project?.currentDocument)return;let c=y.project.currentDocument,h=null,g=()=>{h&&clearTimeout(h),h=setTimeout(()=>{It()},500)},C=c.onAddNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onAddNode triggered"),g()}),Y=c.onRemoveNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onRemoveNode triggered"),g()}),b=c.onMountNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onMountNode triggered"),g()});return()=>{h&&clearTimeout(h),C?.(),Y?.(),b?.()}},[I]),(0,_.useEffect)(()=>{if(!(I!=="design"||!M))try{let y=window.AliLowCodeEngine;if(!y?.project?.currentDocument)return;let h=y.project.currentDocument.getNodeById(M);h?.children&&(Array.isArray(h.children)?h.children:h.children.toArray?h.children.toArray():[]).forEach(C=>{C.componentName==="TabPane"&&C.setPropValue("activeTabKey",Q)})}catch{}},[Q,M,I]);let le=(0,_.useCallback)(()=>{l&&se(y=>!y)},[l]),te=(0,_.useCallback)((y,c)=>{if(typeof window>"u")return!1;try{let h=window.AliLowCodeEngine;if(!h?.project?.currentDocument)return!1;let g=h.project.currentDocument,C=M?g.getNodeById(M):null;if(!C)return!1;let Y=Array.isArray(C.children)?C.children:C.children?.toArray?C.children.toArray():[];console.log("[AdminLayout] \u{1F50D} All children before create:",Y.map(z=>({id:z.id,name:z.componentName,tabKey:z.props?.tabKey})));for(let z of Y){let m=z.props?.tabKey||z.getPropValue?.("tabKey");if(z.componentName==="TabPane"&&m===y){if(console.log("[AdminLayout] \u26A0\uFE0F Found existing TabPane, removing first:",z.id),z.children){let e=Array.isArray(z.children)?[...z.children]:z.children.toArray?[...z.children.toArray()]:[];console.log("[AdminLayout] \u{1F5D1}\uFE0F Removing",e.length,"children from existing TabPane");for(let v of e)try{g.removeNode(v)}catch{}}g.removeNode(z);break}}let b=g.createNode({componentName:"TabPane",props:{tab:c,tabKey:y,activeTabKey:ye.current}});return b?(g.insertNode(C,b),console.log("[AdminLayout] \u2705 Created new TabPane:",y,"nodeId:",b.id),setTimeout(()=>It(),100),!0):!1}catch(h){return console.error("[AdminLayout] createTabPane error:",h),!1}},[M]),O=(0,_.useCallback)(y=>{if(typeof window>"u")return!1;let c=!1;try{let h=window.AliLowCodeEngine;if(!h?.project?.currentDocument)return!1;let g=h.project.currentDocument,C=M?g.getNodeById(M):null;if(console.log("[AdminLayout] \u{1F5D1}\uFE0F removeTabPane called:",y),console.log("[AdminLayout] componentId:",M),console.log("[AdminLayout] adminLayoutNode:",C?"found":"NOT FOUND"),console.log("[AdminLayout] adminLayoutNode.id:",C?.id),console.log("[AdminLayout] adminLayoutNode.componentName:",C?.componentName),!C)return!1;let Y=[];if(C.children&&(Array.isArray(C.children)?Y=C.children:typeof C.children.toArray=="function"?Y=C.children.toArray():typeof C.children.map=="function"&&(Y=C.children.map(b=>b))),Y.length===0&&C.schema?.children){console.log("[AdminLayout] Trying schema.children...");let b=C.schema.children;Array.isArray(b)&&(Y=b.map(z=>g.getNodeById(z.id)).filter(Boolean))}if(Y.length===0){console.log("[AdminLayout] Trying documentModel.getRoot()...");let b=g.getRoot();console.log("[AdminLayout] Root node:",b?.componentName);let z=(e,v)=>{if(!v)return null;if(e.id===v)return e;if(e.children){let W=Array.isArray(e.children)?e.children:e.children.toArray?e.children.toArray():[];for(let U of W){let ue=z(U,v);if(ue)return ue}}return null},m=z(b,M);m&&m.children&&(Y=Array.isArray(m.children)?m.children:m.children.toArray?m.children.toArray():[])}console.log("[AdminLayout] Final children count:",Y.length),console.log("[AdminLayout] Children details:",Y.map(b=>({id:b?.id,name:b?.componentName,tabKey:b?.props?.tabKey||b?.getPropValue?.("tabKey"),childrenCount:b?.children?Array.isArray(b.children)?b.children.length:b.children.toArray?b.children.toArray().length:0:0}))),Y.forEach((b,z)=>{if(console.log(`[AdminLayout] Child[${z}] ${b?.componentName}:`,{id:b?.id,tabKey:b?.props?.tabKey||b?.getPropValue?.("tabKey"),hasChildren:!!b?.children,childrenType:b?.children?Array.isArray(b.children)?"array":typeof b.children.toArray=="function"?"array-like":typeof b.children:"none"}),b?.componentName==="TabPane"&&b?.children){let m=Array.isArray(b.children)?b.children:b.children.toArray?b.children.toArray():[];if(console.log("[AdminLayout] TabPane children:",m.map(e=>({id:e?.id,name:e?.componentName}))),m.length===0){if(console.log("[AdminLayout] Trying alternative methods..."),b.schema?.children&&console.log("[AdminLayout] schema.children:",b.schema.children),typeof b.getChildren=="function"){let e=b.getChildren();console.log("[AdminLayout] getChildren():",e)}b.slots&&console.log("[AdminLayout] slots:",b.slots)}}b?.componentName!=="TabPane"&&console.log("[AdminLayout] \u26A0\uFE0F Found non-TabPane child! This might be a dragged component.")});for(let b of Y){if(!b)continue;let z=b.props?.tabKey||b.getPropValue?.("tabKey");if(b.componentName==="TabPane"&&z===y){console.log("[AdminLayout] \u2705 Found TabPane to remove:",b.id);let m=b.schema?.children;if(m&&Array.isArray(m)&&m.length>0){console.log("[AdminLayout] Removing",m.length,"grandchildren from schema.children");for(let e=m.length-1;e>=0;e--){let v=m[e],W=g.getNodeById(v.id);if(W)try{g.removeNode(W),console.log("[AdminLayout] \u2713 Removed grandchild:",W.id,W.componentName)}catch(U){console.warn("[AdminLayout] \u2717 Failed to remove grandchild:",U)}}}else console.log("[AdminLayout] No grandchildren to remove");try{g.removeNode(b),c=!0,console.log("[AdminLayout] \u2705 Removed TabPane node:",y),setTimeout(()=>It(),100)}catch(e){console.error("[AdminLayout] Failed to remove TabPane:",e)}break}}return c||console.warn("[AdminLayout] \u26A0\uFE0F TabPane not found for key:",y),c}catch(h){return console.error("[AdminLayout] removeTabPane error:",h),!1}},[M]),H=(0,_.useCallback)(y=>{if(q(y),!u.find(h=>h.key===y)){let h=ct(oe,y),g={key:y,label:h?.label||ut(y),icon:h?.icon,closable:y!=="dashboard",path:h?.path||`/${y}`};j(C=>{if(C.length>=k){let Y=C.filter(b=>b.closable);if(Y.length>0)return[...C.filter(b=>b.key!==Y[0].key),g]}return[...C,g]}),I==="design"&&setTimeout(()=>te(y,h?.label||ut(y)),0)}K(y)},[u,oe,k,I,te]),G=(0,_.useCallback)(y=>be(y),[]),fe=(0,_.useCallback)(y=>{q(y),K(y)},[]),he=(0,_.useCallback)(y=>{q(y),K(y)},[]),pe=(0,_.useCallback)(y=>{if(y!=="dashboard"&&(O(y),j(c=>c.filter(h=>h.key!==y)),y===Q)){let c=u.filter(h=>h.key!==y);if(c.length>0){let h=u.findIndex(C=>C.key===y),g=c[h]||c[c.length-1];q(g.key),K(g.key)}}},[u,Q,O]),ve=(0,_.useCallback)(y=>{u.forEach(c=>{c.key!==y&&c.key!=="dashboard"&&O(c.key)}),j(c=>c.filter(h=>h.key===y||h.key==="dashboard")),q(y),K(y)},[u,O]),Se=(0,_.useCallback)(()=>{u.forEach(c=>{c.key!=="dashboard"&&O(c.key)});let y=u.find(c=>c.key==="dashboard");y&&(j([y]),q("dashboard"),K("dashboard"))},[u,O]),Ae=(0,_.useMemo)(()=>Z==="dashboard"?[]:Z.split("/").length===1?[{key:Z,label:"",path:Z}]:[{key:Z,label:"",path:Z}],[Z]),Te=(0,_.useMemo)(()=>R?I==="design"?_.Children.toArray(R).find(h=>(0,_.isValidElement)(h)?h.props?.tabKey===Q:!1)||null:R:null,[R,Q,I])||_.default.createElement("div",{style:{padding:24,color:"#999"}},"\u70B9\u51FB\u4FA7\u8FB9\u680F\u83DC\u5355\u521B\u5EFA\u9009\u9879\u5361\uFF0C\u7136\u540E\u62D6\u62FD\u7EC4\u4EF6\u5230\u5BF9\u5E94\u9762\u677F");return _.default.createElement("div",{className:`admin-layout ${ce?"is-collapse":""} ${ie||""}`,style:re,"data-active-tab":Q},_.default.createElement(Zt,{collapsed:ce,selectedKey:Z,openKeys:E,onMenuClick:H,onOpenChange:G,menuItems:oe}),_.default.createElement("div",{className:"layout-right"},_.default.createElement(er,{collapsed:ce,onToggleCollapse:le,breadcrumbItems:Ae,onNavigate:fe}),_.default.createElement(rr,{pageKey:Z,tabs:u,activeTabKey:Q,onTabClick:he,onCloseTab:pe,onCloseOther:ve,onCloseAll:Se,enableTabs:p,closableTabs:B,className:ce?"collapsed":""},Te)),l&&_.default.createElement("div",{className:`mobile-overlay ${ce?"":"visible"}`,onClick:le}))},pt=Vr;var or=V(ke()),jr=({tab:d,tabKey:r,activeTabKey:l,children:p,className:k,style:B})=>{let $=l===r;return or.default.createElement("div",{className:`tab-pane ${$?"tab-pane--active":""} ${k||""}`,style:{...B,display:$?void 0:"none"},"data-tab-key":r,"data-active":$?"true":"false"},p)},gt=jr;var Kr={ProductList:Ct,ProductForm:xt,OrderList:ot,OrderForm:nt,CouponCard:at,PromotionCard:it,UserCard:st,RoleCard:lt,AdminLayout:pt,TabPane:gt},$r=Kr;return Sr(qr);})();
1
+ var MallComponents=(()=>{var ho=Object.create;var et=Object.defineProperty;var yo=Object.getOwnPropertyDescriptor;var vo=Object.getOwnPropertyNames;var Co=Object.getPrototypeOf,xo=Object.prototype.hasOwnProperty;var ht=(d,o)=>()=>(o||d((o={exports:{}}).exports,o),o.exports),So=(d,o)=>{for(var l in o)et(d,l,{get:o[l],enumerable:!0})},zt=(d,o,l,b)=>{if(o&&typeof o=="object"||typeof o=="function")for(let k of vo(o))!xo.call(d,k)&&k!==l&&et(d,k,{get:()=>o[k],enumerable:!(b=yo(o,k))||b.enumerable});return d};var Y=(d,o,l)=>(l=d!=null?ho(Co(d)):{},zt(o||!d||!d.__esModule?et(l,"default",{value:d,enumerable:!0}):l,d)),To=d=>zt(et({},"__esModule",{value:!0}),d);var De=ht((Qo,_t)=>{_t.exports=window.antd});var ke=ht((Ho,Yt)=>{Yt.exports=Object.assign(window.React,{jsx:window.React.createElement,jsxs:window.React.createElement,Fragment:window.React.Fragment})});var ze=ht((Wo,Vt)=>{Vt.exports=window.icons});var Go={};So(Go,{AdminLayout:()=>pt,CouponCard:()=>st,OrderForm:()=>it,OrderList:()=>at,ProductForm:()=>xt,ProductList:()=>Ct,PromotionCard:()=>lt,RoleCard:()=>mt,TabPane:()=>gt,UserCard:()=>dt,default:()=>qo});var Yn=Y(De());var F=Y(ke()),me=Y(De()),Ue=Y(ze());var _e=class{static create(o){if(!o)return console.warn("[DataSourceAdapterFactory] config is undefined, using mock adapter"),new We({type:"mock",mockData:{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}});if(!o.type)return console.warn("[DataSourceAdapterFactory] config.type is undefined, using mock adapter"),new We({type:"mock",mockData:o.mockData||{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}});switch(o.type){case"rest":return new yt(o);case"mock":return new We(o);case"variable":return new vt(o);default:return console.warn(`[DataSourceAdapterFactory] Unsupported data source type: ${o.type}, using mock adapter`),new We({type:"mock",mockData:{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}})}}},yt=class{constructor(o){this.config=o}async fetch(o){let l=this.buildUrl(o),b=await fetch(l,{method:this.config.method||"GET",headers:{"Content-Type":"application/json",...this.config.headers},body:this.config.method!=="GET"?JSON.stringify(o):void 0});if(!b.ok)throw new Error(`HTTP error! status: ${b.status}`);let k=await b.json();if(this.config.transform)try{k=new Function("data",this.config.transform)(k)}catch(_){console.error("Transform function error:",_)}return k}async submit(o){return(await fetch(this.config.api,{method:"POST",headers:{"Content-Type":"application/json",...this.config.headers},body:JSON.stringify(o)})).json()}async delete(o){return(await fetch(`${this.config.api}/${o}`,{method:"DELETE",headers:this.config.headers})).json()}async update(o,l){return(await fetch(`${this.config.api}/${o}`,{method:"PUT",headers:{"Content-Type":"application/json",...this.config.headers},body:JSON.stringify(l)})).json()}buildUrl(o){if(!o||this.config.method!=="GET")return this.config.api;let l=new URL(this.config.api,window.location.origin);return Object.keys(o).forEach(b=>{o[b]!==void 0&&o[b]!==null&&o[b]!==""&&l.searchParams.append(b,o[b])}),l.toString()}},We=class{constructor(o){this.config=o}async fetch(o){console.log("[MockDataAdapter] fetch \u88AB\u8C03\u7528\uFF0Cconfig:",this.config,"params:",o),await new Promise(b=>setTimeout(b,300));let l=this.config.mockData;if(console.log("[MockDataAdapter] \u539F\u59CB mockData:",l,"\u7C7B\u578B:",typeof l),!l||l==="")console.log("[MockDataAdapter] mockData \u4E3A\u7A7A\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u6570\u636E"),l={code:200,message:"success",data:{pageNum:1,pageSize:10,total:50,list:[{id:1,name:"\u65F6\u5C1A\u8FD0\u52A8\u978B",productSn:"PRODUCT001",price:269,stock:100,sale:120,brandName:"\u65F6\u5C1A\u8FD0\u52A8",productCategoryName:"\u978B\u5B50",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:1,verifyStatus:1},{id:2,name:"\u4F11\u95F2T\u6064",productSn:"PRODUCT002",price:99,stock:200,sale:350,brandName:"\u4F11\u95F2\u670D\u9970",productCategoryName:"\u8863\u670D",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:0,verifyStatus:1},{id:3,name:"\u53CC\u80A9\u80CC\u5305",productSn:"PRODUCT003",price:189,stock:80,sale:80,brandName:"\u65C5\u884C\u7BB1\u5305",productCategoryName:"\u914D\u9970",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:0,recommandStatus:1,verifyStatus:1},{id:4,name:"\u8FD0\u52A8\u624B\u8868",productSn:"PRODUCT004",price:499,stock:50,sale:60,brandName:"\u667A\u80FD\u6570\u7801",productCategoryName:"\u6570\u7801",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:1,verifyStatus:1},{id:5,name:"\u725B\u4ED4\u88E4",productSn:"PRODUCT005",price:199,stock:150,sale:280,brandName:"\u65F6\u5C1A\u725B\u4ED4",productCategoryName:"\u8863\u670D",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:0,recommandStatus:0,verifyStatus:1}]}};else try{typeof l=="string"&&(l=JSON.parse(l)),console.log("[MockDataAdapter] JSON \u89E3\u6790\u540E\u7684\u6570\u636E:",l)}catch(b){console.error("[MockDataAdapter] JSON \u89E3\u6790\u5931\u8D25:",b),l={code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}}if(this.config.transform)try{l=new Function("data",this.config.transform)(l)}catch(b){console.error("Transform function error:",b)}if(console.log("[MockDataAdapter] \u6700\u7EC8\u8FD4\u56DE\u6570\u636E:",l),o?.pageNum&&o?.pageSize&&l?.data?.list){let b=(o.pageNum-1)*o.pageSize,k=b+o.pageSize;return{...l,data:{...l.data,list:l.data.list.slice(b,k)}}}return l}async submit(o){return await new Promise(l=>setTimeout(l,300)),{code:200,message:"success",data:o}}async delete(o){return await new Promise(l=>setTimeout(l,300)),{code:200,message:"success"}}async update(o,l){return await new Promise(b=>setTimeout(b,300)),{code:200,message:"success",data:l}}},vt=class{constructor(o){this.config=o}async fetch(o){if(console.log("[VariableAdapter] fetch \u88AB\u8C03\u7528\uFF0Cconfig:",{variableName:this.config.variableName,dataSource:this.config.dataSource}),this.config.dataSource!==void 0&&this.config.dataSource!==null){console.log("[VariableAdapter] \u4F7F\u7528 dataSource:",this.config.dataSource);let k=this.config.dataSource;if(typeof k=="string")try{k=JSON.parse(k)}catch(_){console.error("[VariableAdapter] dataSource JSON \u89E3\u6790\u5931\u8D25:",_)}return k&&typeof k=="object"?k.code===200&&k.data?k:k.list||Array.isArray(k)?{code:200,message:"success",data:{pageNum:1,pageSize:10,total:Array.isArray(k)?k.length:k.total||0,list:Array.isArray(k)?k:k.list||[]}}:{code:200,message:"success",data:k}:{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}}let l=this.config.variableName;if(!l)return console.warn("[VariableAdapter] variableName \u548C dataSource \u90FD\u4E3A\u7A7A\uFF0C\u8FD4\u56DE\u7A7A\u6570\u636E"),{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}};let b=window[l];return console.log("[VariableAdapter] \u4ECE window \u83B7\u53D6\u7684\u503C:",b),b==null?(console.warn("[VariableAdapter] \u53D8\u91CF\u4E0D\u5B58\u5728\uFF0C\u8FD4\u56DE\u7A7A\u6570\u636E"),{code:200,message:"success",data:{pageNum:1,pageSize:10,total:0,list:[]}}):{code:200,message:"success",data:b}}async submit(o){let l=this.config.variableName;if(!l)throw new Error("Variable name is required for variable adapter");return window[l]=o,{code:200,message:"success",data:o}}async delete(o){return{code:200,message:"success"}}async update(o,l){return this.submit(l)}};var ko=({dataSourceType:d="mock",api:o,method:l="GET",mockData:b,variableName:k,dataSource:_,showFilter:$=!0,showAction:ee=!0,showSelection:re=!0,showOperation:ie=!0,showStatus:Q=!0,showPagination:I=!0,filterFields:B=[],actionButtons:te=[],columns:ce,batchOperations:se=[],onRowClick:Z,onSearch:q,onPageChange:E,onActionClick:be,onBatchOperation:u,style:j,className:R})=>{let[K,ye]=F.default.useState(!1),[N,le]=F.default.useState([]),[oe,O]=F.default.useState(0),[H,G]=F.default.useState(1),[fe,he]=F.default.useState(10),[pe,ve]=F.default.useState(""),[Se,Ae]=F.default.useState([]),[ge,Oe]=F.default.useState([]),[Te,y]=F.default.useState(),h=JSON.stringify({code:200,message:"success",data:{pageNum:1,pageSize:10,total:50,list:[{id:1,name:"\u65F6\u5C1A\u8FD0\u52A8\u978B",productSn:"PRODUCT001",price:269,stock:100,sale:120,brandName:"\u65F6\u5C1A\u8FD0\u52A8",productCategoryName:"\u978B\u5B50",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:1,verifyStatus:1},{id:2,name:"\u4F11\u95F2T\u6064",productSn:"PRODUCT002",price:99,stock:200,sale:350,brandName:"\u4F11\u95F2\u670D\u9970",productCategoryName:"\u8863\u670D",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:0,recommandStatus:1,verifyStatus:1},{id:3,name:"\u53CC\u80A9\u80CC\u5305",productSn:"PRODUCT003",price:189,stock:80,sale:80,brandName:"\u65C5\u884C\u7BB1\u5305",productCategoryName:"\u914D\u9970",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:0,verifyStatus:1},{id:4,name:"\u8FD0\u52A8\u624B\u8868",productSn:"PRODUCT004",price:499,stock:50,sale:60,brandName:"\u667A\u80FD\u6570\u7801",productCategoryName:"\u6570\u7801",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:1,recommandStatus:1,verifyStatus:1},{id:5,name:"\u725B\u4ED4\u88E4",productSn:"PRODUCT005",price:199,stock:150,sale:280,brandName:"\u65F6\u5C1A\u725B\u4ED4",productCategoryName:"\u8863\u670D",pic:"https://img.yzcdn.cn/vant/cat.jpeg",publishStatus:1,newStatus:0,recommandStatus:0,verifyStatus:1}]}}),c=(0,F.useMemo)(()=>{let U=b;return U||(U=h),console.log("[ProductList] dataSourceConfig \u91CD\u65B0\u8BA1\u7B97:",{dataSourceType:d,mockData:typeof b=="string"?b.substring(0,100)+"...":b,variableName:k,dataSource:typeof _=="object"?"object":_}),{type:d,api:o||"",method:l,mockData:U,variableName:k||"",dataSource:_}},[d,o,l,b,k,_]);console.log("[ProductList] \u7EC4\u4EF6\u6E32\u67D3\uFF0Cprops:",{dataSourceType:d,api:o,method:l,mockData:typeof b=="string"?b.substring(0,100)+"...":b,variableName:k,dataSource:typeof _=="object"?"object":_,showFilter:$,showAction:ee,showSelection:re});let C=(0,F.useMemo)(()=>(console.log("[ProductList] adapter \u91CD\u65B0\u521B\u5EFA, dataSourceType:",d),_e.create(c)),[c]),z=(0,F.useCallback)(async()=>{console.log("[ProductList] fetchData \u5F00\u59CB\uFF0C\u53C2\u6570:",{currentPage:H,pageSize:fe,searchText:pe}),ye(!0);try{let U={pageNum:H,pageSize:fe,keyword:pe||void 0};console.log("[ProductList] \u8C03\u7528 adapter.fetch\uFF0C\u53C2\u6570:",U);let ue=await C.fetch(U);console.log("[ProductList] adapter.fetch \u8FD4\u56DE\u7ED3\u679C:",ue),ue.code===200&&(le(ue.data.list),O(ue.data.total),console.log("[ProductList] \u6570\u636E\u66F4\u65B0\u6210\u529F\uFF0C\u603B\u6570:",ue.data.total))}catch(U){console.error("[ProductList] \u83B7\u53D6\u6570\u636E\u5931\u8D25:",U)}finally{ye(!1)}},[H,fe,pe,C]);(0,F.useEffect)(()=>{console.log("[ProductList] useEffect \u89E6\u53D1\uFF0C\u5F00\u59CB\u83B7\u53D6\u6570\u636E, dataSourceType:",d),z()},[z,d]);let g=()=>{G(1),z(),q?.(pe)},M=(U,ue)=>{G(U),he(ue),E?.(U,ue)},m=()=>{Te&&ge.length>0&&u?.(Te,ge)},e=[{title:"\u5546\u54C1\u56FE\u7247",dataIndex:"pic",key:"pic",width:100,render:U=>F.default.createElement("img",{src:U,alt:"\u5546\u54C1\u56FE\u7247",style:{width:60,height:60,objectFit:"cover"}})},{title:"\u5546\u54C1\u540D\u79F0",dataIndex:"name",key:"name",width:200},{title:"\u5546\u54C1\u7F16\u53F7",dataIndex:"productSn",key:"productSn",width:150},{title:"\u4EF7\u683C",dataIndex:"price",key:"price",width:100,render:U=>`\xA5${U.toFixed(2)}`},{title:"\u5E93\u5B58",dataIndex:"stock",key:"stock",width:80},{title:"\u9500\u91CF",dataIndex:"sale",key:"sale",width:80},{title:"\u54C1\u724C",dataIndex:"brandName",key:"brandName",width:100},{title:"\u5206\u7C7B",dataIndex:"productCategoryName",key:"productCategoryName",width:100},...Q?[{title:"\u72B6\u6001",dataIndex:"publishStatus",key:"publishStatus",width:100,render:U=>F.default.createElement(me.Switch,{checked:U===1,checkedChildren:"\u4E0A\u67B6",unCheckedChildren:"\u4E0B\u67B6"})}]:[],...ie?[{title:"\u64CD\u4F5C",key:"operation",width:150,render:(U,ue)=>F.default.createElement(me.Space,{size:"small"},F.default.createElement(me.Button,{type:"link",size:"small",onClick:()=>Z?.(ue)},"\u67E5\u770B"),F.default.createElement(me.Button,{type:"link",size:"small"},"\u7F16\u8F91"),F.default.createElement(me.Button,{type:"link",size:"small",danger:!0},"\u5220\u9664"))}]:[]],v=re?{selectedRowKeys:Se,onChange:(U,ue)=>{Ae(U),Oe(ue)}}:void 0,W=U=>{switch(U){case"plus":return F.default.createElement(Ue.PlusOutlined,null);case"download":return F.default.createElement(Ue.DownloadOutlined,null);case"upload":return F.default.createElement(Ue.UploadOutlined,null);default:return null}};return F.default.createElement("div",{className:`mall-product-list ${R||""}`,style:j},$&&F.default.createElement(me.Card,{className:"mall-product-list-filter",size:"small"},F.default.createElement(me.Space,null,F.default.createElement(me.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u540D\u79F0\u6216\u7F16\u53F7",prefix:F.default.createElement(Ue.SearchOutlined,null),value:pe,onChange:U=>ve(U.target.value),onPressEnter:g,style:{width:300}}),F.default.createElement(me.Button,{type:"primary",icon:F.default.createElement(Ue.SearchOutlined,null),onClick:g},"\u641C\u7D22"),F.default.createElement(me.Button,{icon:F.default.createElement(Ue.ReloadOutlined,null),onClick:()=>z()},"\u5237\u65B0"))),ee&&F.default.createElement(me.Card,{className:"mall-product-list-action",size:"small"},F.default.createElement(me.Space,null,te.map((U,ue)=>F.default.createElement(me.Button,{key:ue,type:U.type||"default",icon:W(U.icon),onClick:()=>be?.(U.onClick||"")},U.text)),re&&se.length>0&&F.default.createElement(F.default.Fragment,null,F.default.createElement(me.Select,{placeholder:"\u6279\u91CF\u64CD\u4F5C",value:Te,onChange:y,style:{width:150}},se.map((U,ue)=>F.default.createElement(me.Select.Option,{key:ue,value:U.value},U.text))),F.default.createElement(me.Button,{onClick:m},"\u6267\u884C")))),F.default.createElement("div",{className:"mall-product-list-table"},F.default.createElement(me.Table,{rowKey:"id",columns:ce||e,dataSource:N,loading:K,rowSelection:v,pagination:!1,scroll:{x:1200}})),I&&F.default.createElement("div",{className:"pagination-wrapper"},F.default.createElement(me.Pagination,{current:H,pageSize:fe,total:oe,showSizeChanger:!0,showQuickJumper:!0,showTotal:U=>`\u5171 ${U} \u6761`,onChange:M})))},jt=ko;var Ct=jt;var s=Y(ke()),n=Y(De());var wo=({initialValues:d,mode:o="create",showBasicInfo:l=!0,showPriceInfo:b=!0,showStockInfo:k=!0,showStatusInfo:_=!0,showDescription:$=!0,onSubmit:ee,onCancel:re,style:ie,className:Q})=>{let[I]=n.Form.useForm(),[B,te]=(0,s.useState)("basic");(0,s.useEffect)(()=>{if(d){let N=d;if(typeof d=="string")try{N=JSON.parse(d)}catch(le){console.error("Failed to parse initialValues:",le),N={}}I.setFieldsValue(N)}},[d,I]);let ce=async()=>{try{let N=await I.validateFields();ee?.(N),n.message.success("\u63D0\u4EA4\u6210\u529F")}catch(N){console.error("Validation failed:",N),n.message.error("\u8BF7\u68C0\u67E5\u8868\u5355\u586B\u5199\u662F\u5426\u6B63\u786E")}},se=()=>{I.resetFields(),re?.()},Z=()=>{I.resetFields()},q=()=>{if(typeof d=="string")try{return JSON.parse(d)}catch{return{}}return d||{}},E=o==="view",be=[s.default.createElement(n.Row,{gutter:16,key:"basic-row-1"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"name",label:"\u5546\u54C1\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5546\u54C1\u540D\u79F0"}]},s.default.createElement(n.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u540D\u79F0",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"productSn",label:"\u5546\u54C1\u8D27\u53F7",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5546\u54C1\u8D27\u53F7"}]},s.default.createElement(n.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u8D27\u53F7",disabled:E})))),s.default.createElement(n.Row,{gutter:16,key:"basic-row-2"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"brandName",label:"\u54C1\u724C\u540D\u79F0"},s.default.createElement(n.Input,{placeholder:"\u8BF7\u8F93\u5165\u54C1\u724C\u540D\u79F0",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"productCategoryName",label:"\u5546\u54C1\u5206\u7C7B"},s.default.createElement(n.Select,{placeholder:"\u8BF7\u9009\u62E9\u5546\u54C1\u5206\u7C7B",disabled:E},s.default.createElement(n.Select.Option,{value:"\u624B\u673A"},"\u624B\u673A"),s.default.createElement(n.Select.Option,{value:"\u7B14\u8BB0\u672C"},"\u7B14\u8BB0\u672C"),s.default.createElement(n.Select.Option,{value:"\u5E73\u677F"},"\u5E73\u677F"),s.default.createElement(n.Select.Option,{value:"\u8033\u673A"},"\u8033\u673A"),s.default.createElement(n.Select.Option,{value:"\u624B\u8868"},"\u624B\u8868"),s.default.createElement(n.Select.Option,{value:"\u8863\u670D"},"\u8863\u670D"),s.default.createElement(n.Select.Option,{value:"\u978B\u5B50"},"\u978B\u5B50"),s.default.createElement(n.Select.Option,{value:"\u914D\u9970"},"\u914D\u9970"),s.default.createElement(n.Select.Option,{value:"\u6570\u7801"},"\u6570\u7801"))))),s.default.createElement(n.Form.Item,{key:"pic",name:"pic",label:"\u5546\u54C1\u56FE\u7247"},s.default.createElement(n.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u56FE\u7247 URL",disabled:E})),s.default.createElement(n.Row,{gutter:16,key:"basic-row-3"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"subTitle",label:"\u5546\u54C1\u526F\u6807\u9898"},s.default.createElement(n.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u526F\u6807\u9898",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"keywords",label:"\u5546\u54C1\u5173\u952E\u8BCD"},s.default.createElement(n.Input,{placeholder:"\u591A\u4E2A\u5173\u952E\u8BCD\u7528\u9017\u53F7\u5206\u9694",disabled:E}))))],u=[s.default.createElement(n.Row,{gutter:16,key:"price-row-1"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"price",label:"\u5546\u54C1\u4EF7\u683C",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5546\u54C1\u4EF7\u683C"}]},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u4EF7\u683C",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"originalPrice",label:"\u539F\u4EF7"},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u539F\u4EF7",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:E})))),s.default.createElement(n.Row,{gutter:16,key:"price-row-2"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"promotionPrice",label:"\u4FC3\u9500\u4EF7"},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u4FC3\u9500\u4EF7",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"unit",label:"\u5546\u54C1\u5355\u4F4D"},s.default.createElement(n.Select,{placeholder:"\u8BF7\u9009\u62E9\u5546\u54C1\u5355\u4F4D",disabled:E},s.default.createElement(n.Select.Option,{value:"\u4EF6"},"\u4EF6"),s.default.createElement(n.Select.Option,{value:"\u53F0"},"\u53F0"),s.default.createElement(n.Select.Option,{value:"\u90E8"},"\u90E8"),s.default.createElement(n.Select.Option,{value:"\u5757"},"\u5757"),s.default.createElement(n.Select.Option,{value:"\u526F"},"\u526F")))))],j=[s.default.createElement(n.Row,{gutter:16,key:"stock-row-1"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"stock",label:"\u5546\u54C1\u5E93\u5B58",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5546\u54C1\u5E93\u5B58"}]},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u5E93\u5B58",style:{width:"100%"},min:0,disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"lowStock",label:"\u5E93\u5B58\u9884\u8B66\u503C"},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u5E93\u5B58\u9884\u8B66\u503C",style:{width:"100%"},min:0,disabled:E})))),s.default.createElement(n.Row,{gutter:16,key:"stock-row-2"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"weight",label:"\u5546\u54C1\u91CD\u91CF(kg)"},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u91CD\u91CF",style:{width:"100%"},min:0,precision:2,disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"sort",label:"\u6392\u5E8F"},s.default.createElement(n.InputNumber,{placeholder:"\u8BF7\u8F93\u5165\u6392\u5E8F",style:{width:"100%"},min:0,disabled:E}))))],R=[s.default.createElement(n.Row,{gutter:16,key:"status-row-1"},s.default.createElement(n.Col,{span:8},s.default.createElement(n.Form.Item,{name:"publishStatus",label:"\u4E0A\u67B6\u72B6\u6001",valuePropName:"checked",getValueFromEvent:N=>N?1:0,getValueProps:N=>({checked:N===1})},s.default.createElement(n.Switch,{checkedChildren:"\u4E0A\u67B6",unCheckedChildren:"\u4E0B\u67B6",disabled:E}))),s.default.createElement(n.Col,{span:8},s.default.createElement(n.Form.Item,{name:"newStatus",label:"\u65B0\u54C1\u72B6\u6001",valuePropName:"checked",getValueFromEvent:N=>N?1:0,getValueProps:N=>({checked:N===1})},s.default.createElement(n.Switch,{checkedChildren:"\u662F",unCheckedChildren:"\u5426",disabled:E}))),s.default.createElement(n.Col,{span:8},s.default.createElement(n.Form.Item,{name:"recommandStatus",label:"\u63A8\u8350\u72B6\u6001",valuePropName:"checked",getValueFromEvent:N=>N?1:0,getValueProps:N=>({checked:N===1})},s.default.createElement(n.Switch,{checkedChildren:"\u662F",unCheckedChildren:"\u5426",disabled:E})))),s.default.createElement(n.Row,{gutter:16,key:"status-row-2"},s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"verifyStatus",label:"\u5BA1\u6838\u72B6\u6001",valuePropName:"checked",getValueFromEvent:N=>N?1:0,getValueProps:N=>({checked:N===1})},s.default.createElement(n.Switch,{checkedChildren:"\u5DF2\u5BA1\u6838",unCheckedChildren:"\u672A\u5BA1\u6838",disabled:E}))),s.default.createElement(n.Col,{span:12},s.default.createElement(n.Form.Item,{name:"deleteStatus",label:"\u5220\u9664\u72B6\u6001",valuePropName:"checked",getValueFromEvent:N=>N?1:0,getValueProps:N=>({checked:N===1})},s.default.createElement(n.Switch,{checkedChildren:"\u5DF2\u5220\u9664",unCheckedChildren:"\u6B63\u5E38",disabled:E}))))],K=[s.default.createElement(n.Form.Item,{key:"description",name:"description",label:"\u5546\u54C1\u63CF\u8FF0"},s.default.createElement(n.Input.TextArea,{rows:4,placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u63CF\u8FF0",disabled:E})),s.default.createElement(n.Form.Item,{key:"note",name:"note",label:"\u5907\u6CE8"},s.default.createElement(n.Input.TextArea,{rows:2,placeholder:"\u8BF7\u8F93\u5165\u5907\u6CE8",disabled:E}))],ye=[{key:"basic",label:"\u57FA\u672C\u4FE1\u606F",children:l?be:null},{key:"price",label:"\u4EF7\u683C\u4FE1\u606F",children:b?u:null},{key:"stock",label:"\u5E93\u5B58\u4FE1\u606F",children:k?j:null},{key:"status",label:"\u72B6\u6001\u4FE1\u606F",children:_?R:null},{key:"description",label:"\u63CF\u8FF0\u4FE1\u606F",children:$?K:null}];return s.default.createElement("div",{className:`mall-product-form ${Q||""}`,style:ie},s.default.createElement(n.Card,null,s.default.createElement(n.Form,{form:I,layout:"vertical",initialValues:q(),disabled:E},s.default.createElement(n.Tabs,{activeKey:B,onChange:te,items:ye}),s.default.createElement(n.Divider,null),s.default.createElement(n.Form.Item,null,s.default.createElement(n.Space,null,!E&&s.default.createElement(s.default.Fragment,null,s.default.createElement(n.Button,{type:"primary",onClick:ce},o==="create"?"\u521B\u5EFA":"\u4FDD\u5B58"),s.default.createElement(n.Button,{onClick:Z},"\u91CD\u7F6E")),s.default.createElement(n.Button,{onClick:se},E?"\u5173\u95ED":"\u53D6\u6D88"))))))},Kt=wo;var xt=Kt;var t=Y(ke()),i=Y(De()),we=Y(ze());var ne={PENDING_PAYMENT:0,PENDING_DELIVERY:1,DELIVERED:2,COMPLETED:3,CLOSED:4,INVALID:5},Le={UNPAID:0,ALIPAY:1,WECHAT:2},Ye={PC:0,APP:1},Ve={NORMAL:0,SECKILL:1},tt=[{label:"\u5F85\u4ED8\u6B3E",value:ne.PENDING_PAYMENT},{label:"\u5F85\u53D1\u8D27",value:ne.PENDING_DELIVERY},{label:"\u5DF2\u53D1\u8D27",value:ne.DELIVERED},{label:"\u5DF2\u5B8C\u6210",value:ne.COMPLETED},{label:"\u5DF2\u5173\u95ED",value:ne.CLOSED}],$t=[{label:"\u672A\u652F\u4ED8",value:Le.UNPAID},{label:"\u652F\u4ED8\u5B9D",value:Le.ALIPAY},{label:"\u5FAE\u4FE1",value:Le.WECHAT}],ot=[{label:"PC\u8BA2\u5355",value:Ye.PC},{label:"APP\u8BA2\u5355",value:Ye.APP}],rt=[{label:"\u6B63\u5E38\u8BA2\u5355",value:Ve.NORMAL},{label:"\u79D2\u6740\u8BA2\u5355",value:Ve.SECKILL}];var{RangePicker:Po}=i.DatePicker,nt={code:200,message:"success",data:{pageNum:1,pageSize:10,total:50,list:[{id:1,orderSn:"202401010001",memberUsername:"user001",totalAmount:599,payAmount:569,freightAmount:0,discountAmount:30,payType:Le.ALIPAY,sourceType:Ye.PC,status:ne.PENDING_DELIVERY,orderType:Ve.NORMAL,receiverName:"\u5F20\u4E09",receiverPhone:"13800138000",receiverProvince:"\u5317\u4EAC\u5E02",receiverCity:"\u5317\u4EAC\u5E02",receiverRegion:"\u671D\u9633\u533A",receiverDetailAddress:"\u67D0\u67D0\u8857\u9053\u67D0\u67D0\u5C0F\u533A1\u53F7\u697C",createTime:"2024-01-01 10:00:00",paymentTime:"2024-01-01 10:05:00",deliveryTime:"",receiveTime:"",commentTime:"",promotionInfo:"\u6EE1\u51CF\u4F18\u60E0"},{id:2,orderSn:"202401010002",memberUsername:"user002",totalAmount:1299,payAmount:1299,freightAmount:0,discountAmount:0,payType:Le.WECHAT,sourceType:Ye.APP,status:ne.DELIVERED,orderType:Ve.NORMAL,receiverName:"\u674E\u56DB",receiverPhone:"13900139000",receiverProvince:"\u4E0A\u6D77\u5E02",receiverCity:"\u4E0A\u6D77\u5E02",receiverRegion:"\u6D66\u4E1C\u65B0\u533A",receiverDetailAddress:"\u67D0\u67D0\u8DEF\u67D0\u67D0\u53F7",createTime:"2024-01-01 11:00:00",paymentTime:"2024-01-01 11:10:00",deliveryTime:"2024-01-02 09:00:00",receiveTime:"",commentTime:"",promotionInfo:""},{id:3,orderSn:"202401010003",memberUsername:"user003",totalAmount:299,payAmount:299,freightAmount:10,discountAmount:0,payType:Le.ALIPAY,sourceType:Ye.PC,status:ne.COMPLETED,orderType:Ve.NORMAL,receiverName:"\u738B\u4E94",receiverPhone:"13700137000",receiverProvince:"\u5E7F\u4E1C\u7701",receiverCity:"\u6DF1\u5733\u5E02",receiverRegion:"\u5357\u5C71\u533A",receiverDetailAddress:"\u67D0\u67D0\u5927\u53A6A\u5EA7",createTime:"2024-01-01 12:00:00",paymentTime:"2024-01-01 12:05:00",deliveryTime:"2024-01-02 10:00:00",receiveTime:"2024-01-05 15:00:00",commentTime:"",promotionInfo:""},{id:4,orderSn:"202401010004",memberUsername:"user004",totalAmount:899,payAmount:0,freightAmount:0,discountAmount:0,payType:Le.UNPAID,sourceType:Ye.APP,status:ne.PENDING_PAYMENT,orderType:Ve.SECKILL,receiverName:"\u8D75\u516D",receiverPhone:"13600136000",receiverProvince:"\u6D59\u6C5F\u7701",receiverCity:"\u676D\u5DDE\u5E02",receiverRegion:"\u897F\u6E56\u533A",receiverDetailAddress:"\u67D0\u67D0\u82B1\u56ED\u5C0F\u533A",createTime:"2024-01-01 13:00:00",paymentTime:"",deliveryTime:"",receiveTime:"",commentTime:"",promotionInfo:"\u79D2\u6740\u6D3B\u52A8"},{id:5,orderSn:"202401010005",memberUsername:"user005",totalAmount:4599,payAmount:4599,freightAmount:0,discountAmount:0,payType:Le.WECHAT,sourceType:Ye.PC,status:ne.CLOSED,orderType:Ve.NORMAL,receiverName:"\u5B59\u4E03",receiverPhone:"13500135000",receiverProvince:"\u6C5F\u82CF\u7701",receiverCity:"\u5357\u4EAC\u5E02",receiverRegion:"\u9F13\u697C\u533A",receiverDetailAddress:"\u67D0\u67D0\u5E7F\u573AB\u5EA7",createTime:"2024-01-01 14:00:00",paymentTime:"2024-01-01 14:10:00",deliveryTime:"",receiveTime:"",commentTime:"",promotionInfo:""}]}},Io=({dataSourceType:d="mock",api:o,method:l="GET",mockData:b,variableName:k,dataSource:_,showFilter:$=!0,showStatusFilter:ee=!0,showSearch:re=!0,showDatePicker:ie=!0,showActions:Q=!0,showBatchOperations:I=!0,showExport:B=!0,showPagination:te=!0,defaultPageSize:ce=10,onRowClick:se,onSearch:Z,onPageChange:q,onActionClick:E,onBatchOperation:be,style:u,className:j})=>{let[R,K]=(0,t.useState)(!1),[ye,N]=(0,t.useState)([]),[le,oe]=(0,t.useState)(0),[O,H]=(0,t.useState)(1),[G,fe]=(0,t.useState)(ce),[he,pe]=(0,t.useState)(""),[ve,Se]=(0,t.useState)([]),[Ae,ge]=(0,t.useState)([]),[Oe,Te]=(0,t.useState)(),[y,p]=(0,t.useState)(),[h,c]=(0,t.useState)(),[C,z]=(0,t.useState)(),[g,M]=(0,t.useState)(),[m,e]=(0,t.useState)(!1),[v,W]=(0,t.useState)(),[U,ue]=(0,t.useState)(!1),[Ot,no]=(0,t.useState)(),[bt,Nt]=(0,t.useState)(""),[ft,At]=(0,t.useState)(""),Dt=(0,t.useMemo)(()=>({type:d,api:o,method:l,mockData:b?(()=>{try{return typeof b=="string"?JSON.parse(b):b}catch{return nt}})():nt,variableName:k,dataSource:_}),[d,o,l,b,k,_]),Et=(0,t.useMemo)(()=>_e.create(Dt),[Dt]);(0,t.useEffect)(()=>{Ke()},[O,G,Et]);let Ke=async()=>{K(!0);try{let w={pageNum:O,pageSize:G,orderSn:he||void 0,status:y,orderType:h,sourceType:C,createTime:g?`${g[0]?.format("YYYY-MM-DD")},${g[1]?.format("YYYY-MM-DD")}`:void 0},de=await Et.fetch(w),Ee=[],$e=0;de?.data?.list?(Ee=de.data.list,$e=de.data.total||Ee.length):Array.isArray(de?.data)?(Ee=de.data,$e=Ee.length):Array.isArray(de)&&(Ee=de,$e=Ee.length),N(Ee),oe($e)}catch(w){console.error("Failed to fetch order list:",w),i.message.error("\u83B7\u53D6\u8BA2\u5355\u5217\u8868\u5931\u8D25"),N(nt.data.list),oe(nt.data.total)}finally{K(!1)}},Lt=()=>{H(1),Ke(),Z?.({orderSn:he||void 0,status:y,orderType:h,sourceType:C,createTime:g?`${g[0]?.format("YYYY-MM-DD")},${g[1]?.format("YYYY-MM-DD")}`:void 0})},ao=()=>{pe(""),p(void 0),c(void 0),z(void 0),M(void 0),H(1),Ke()},io=()=>{i.message.success("\u5BFC\u51FA\u529F\u80FD\u5F00\u53D1\u4E2D...")},so=()=>{Ke()},lo=()=>{if(!Oe){i.message.warning("\u8BF7\u9009\u62E9\u6279\u91CF\u64CD\u4F5C\u7C7B\u578B");return}if(ve.length===0){i.message.warning("\u8BF7\u9009\u62E9\u8981\u64CD\u4F5C\u7684\u8BA2\u5355");return}be?.(Oe,ve),i.message.success(`\u6279\u91CF${Oe}\u6210\u529F`),Se([]),ge([]),Te(void 0),Ke()},Ft=w=>{W(w),e(!0),E?.("view",w)},Ut=w=>{no(w),ue(!0),E?.("deliver",w)},mo=w=>{i.Modal.confirm({title:"\u786E\u8BA4\u5173\u95ED\u8BA2\u5355",content:`\u786E\u5B9A\u8981\u5173\u95ED\u8BA2\u5355 ${w.orderSn} \u5417\uFF1F`,onOk:()=>{E?.("close",w),i.message.success("\u8BA2\u5355\u5DF2\u5173\u95ED"),Ke()}})},uo=w=>{i.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664\u8BA2\u5355",content:`\u786E\u5B9A\u8981\u5220\u9664\u8BA2\u5355 ${w.orderSn} \u5417\uFF1F`,onOk:()=>{E?.("delete",w),i.message.success("\u8BA2\u5355\u5DF2\u5220\u9664"),Ke()}})},co=()=>{if(!bt||!ft){i.message.warning("\u8BF7\u586B\u5199\u7269\u6D41\u516C\u53F8\u548C\u7269\u6D41\u5355\u53F7");return}let w={orderId:Ot.id,deliveryCompany:bt,deliverySn:ft};E?.("deliverSubmit",Ot),i.message.success("\u53D1\u8D27\u6210\u529F"),ue(!1),Nt(""),At(""),Ke()},Mt=w=>{let de={[ne.PENDING_PAYMENT]:{color:"orange",text:"\u5F85\u4ED8\u6B3E"},[ne.PENDING_DELIVERY]:{color:"blue",text:"\u5F85\u53D1\u8D27"},[ne.DELIVERED]:{color:"cyan",text:"\u5DF2\u53D1\u8D27"},[ne.COMPLETED]:{color:"green",text:"\u5DF2\u5B8C\u6210"},[ne.CLOSED]:{color:"default",text:"\u5DF2\u5173\u95ED"},[ne.INVALID]:{color:"red",text:"\u65E0\u6548\u8BA2\u5355"}},{color:Ee,text:$e}=de[w]||{color:"default",text:"\u672A\u77E5"};return t.default.createElement(i.Tag,{color:Ee},$e)},Bt=w=>{let de={[Le.UNPAID]:{color:"default",text:"\u672A\u652F\u4ED8"},[Le.ALIPAY]:{color:"blue",text:"\u652F\u4ED8\u5B9D"},[Le.WECHAT]:{color:"green",text:"\u5FAE\u4FE1"}},{color:Ee,text:$e}=de[w]||{color:"default",text:"\u672A\u77E5"};return t.default.createElement(i.Tag,{color:Ee},$e)},po=w=>w===Ye.APP?t.default.createElement(i.Tag,{color:"purple"},"APP"):t.default.createElement(i.Tag,{color:"geekblue"},"PC"),go=w=>w===Ve.SECKILL?t.default.createElement(i.Tag,{color:"red"},"\u79D2\u6740"):t.default.createElement(i.Tag,null,"\u6B63\u5E38"),bo=[{title:"\u8BA2\u5355\u7F16\u53F7",dataIndex:"orderSn",key:"orderSn",width:180,fixed:"left",render:w=>t.default.createElement(i.Tooltip,{title:w},t.default.createElement("span",{className:"order-sn"},w))},{title:"\u7528\u6237\u8D26\u53F7",dataIndex:"memberUsername",key:"memberUsername",width:120},{title:"\u8BA2\u5355\u91D1\u989D",dataIndex:"totalAmount",key:"totalAmount",width:120,render:w=>t.default.createElement("span",{className:"order-amount"},"\xA5",w.toFixed(2))},{title:"\u5B9E\u4ED8\u91D1\u989D",dataIndex:"payAmount",key:"payAmount",width:120,render:w=>t.default.createElement("span",{className:"pay-amount"},"\xA5",w.toFixed(2))},{title:"\u652F\u4ED8\u65B9\u5F0F",dataIndex:"payType",key:"payType",width:100,render:w=>Bt(w)},{title:"\u8BA2\u5355\u6765\u6E90",dataIndex:"sourceType",key:"sourceType",width:100,render:w=>po(w)},{title:"\u8BA2\u5355\u7C7B\u578B",dataIndex:"orderType",key:"orderType",width:100,render:w=>go(w)},{title:"\u8BA2\u5355\u72B6\u6001",dataIndex:"status",key:"status",width:100,render:w=>Mt(w)},{title:"\u6536\u8D27\u4EBA",dataIndex:"receiverName",key:"receiverName",width:100},{title:"\u6536\u8D27\u7535\u8BDD",dataIndex:"receiverPhone",key:"receiverPhone",width:130},{title:"\u4E0B\u5355\u65F6\u95F4",dataIndex:"createTime",key:"createTime",width:180,sorter:!0},{title:"\u64CD\u4F5C",key:"action",width:200,fixed:"right",render:(w,de)=>{let Ee=t.default.createElement(i.Menu,null,t.default.createElement(i.Menu.Item,{key:"view",icon:t.default.createElement(we.EyeOutlined,null),onClick:()=>Ft(de)},"\u67E5\u770B\u8BE6\u60C5"),de.status===ne.PENDING_DELIVERY&&t.default.createElement(i.Menu.Item,{key:"deliver",icon:t.default.createElement(we.CarOutlined,null),onClick:()=>Ut(de)},"\u53D1\u8D27"),de.status!==ne.CLOSED&&t.default.createElement(i.Menu.Item,{key:"close",icon:t.default.createElement(we.CloseCircleOutlined,null),onClick:()=>mo(de)},"\u5173\u95ED\u8BA2\u5355"),t.default.createElement(i.Menu.Divider,null),t.default.createElement(i.Menu.Item,{key:"delete",icon:t.default.createElement(we.DeleteOutlined,null),danger:!0,onClick:()=>uo(de)},"\u5220\u9664\u8BA2\u5355"));return t.default.createElement(i.Space,{size:"small"},t.default.createElement(i.Button,{type:"link",size:"small",onClick:()=>Ft(de)},"\u8BE6\u60C5"),de.status===ne.PENDING_DELIVERY&&t.default.createElement(i.Button,{type:"link",size:"small",onClick:()=>Ut(de)},"\u53D1\u8D27"),t.default.createElement(i.Dropdown,{overlay:Ee,trigger:["click"]},t.default.createElement(i.Button,{type:"link",size:"small",icon:t.default.createElement(we.MoreOutlined,null)})))}}],fo={selectedRowKeys:ve,onChange:(w,de)=>{Se(w),ge(de)}};return t.default.createElement("div",{className:`mall-order-list ${j||""}`,style:u},t.default.createElement(i.Card,null,$&&t.default.createElement("div",{className:"filter-section"},t.default.createElement(i.Row,{gutter:[16,16]},re&&t.default.createElement(i.Col,{span:6},t.default.createElement(i.Input,{placeholder:"\u8BA2\u5355\u7F16\u53F7",value:he,onChange:w=>pe(w.target.value),onPressEnter:Lt,prefix:t.default.createElement(we.SearchOutlined,null)})),ee&&t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u72B6\u6001",value:y,onChange:p,style:{width:"100%"},allowClear:!0},tt.map(w=>t.default.createElement(i.Select.Option,{key:w.value,value:w.value},w.label)))),t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u7C7B\u578B",value:h,onChange:c,style:{width:"100%"},allowClear:!0},rt.map(w=>t.default.createElement(i.Select.Option,{key:w.value,value:w.value},w.label)))),t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u6765\u6E90",value:C,onChange:z,style:{width:"100%"},allowClear:!0},ot.map(w=>t.default.createElement(i.Select.Option,{key:w.value,value:w.value},w.label)))),ie&&t.default.createElement(i.Col,{span:6},t.default.createElement(Po,{value:g,onChange:M,style:{width:"100%"}}))),t.default.createElement(i.Row,{gutter:[16,16],style:{marginTop:16}},t.default.createElement(i.Col,null,t.default.createElement(i.Space,null,t.default.createElement(i.Button,{type:"primary",onClick:Lt},"\u67E5\u8BE2"),t.default.createElement(i.Button,{onClick:ao},"\u91CD\u7F6E"))))),I&&t.default.createElement("div",{className:"batch-operation-section"},t.default.createElement(i.Space,null,t.default.createElement(i.Select,{placeholder:"\u6279\u91CF\u64CD\u4F5C",value:Oe,onChange:Te,style:{width:150},allowClear:!0},t.default.createElement(i.Select.Option,{value:"deliver"},"\u6279\u91CF\u53D1\u8D27"),t.default.createElement(i.Select.Option,{value:"close"},"\u5173\u95ED\u8BA2\u5355"),t.default.createElement(i.Select.Option,{value:"delete"},"\u5220\u9664\u8BA2\u5355")),t.default.createElement(i.Button,{onClick:lo},"\u786E\u5B9A")),ve.length>0&&t.default.createElement("span",{className:"selected-info"},"\u5DF2\u9009\u62E9 ",t.default.createElement("strong",null,ve.length)," \u9879")),Q&&t.default.createElement("div",{className:"action-section"},t.default.createElement(i.Space,null,t.default.createElement(i.Button,{icon:t.default.createElement(we.ReloadOutlined,null),onClick:so},"\u5237\u65B0"),B&&t.default.createElement(i.Button,{icon:t.default.createElement(we.ExportOutlined,null),onClick:io},"\u5BFC\u51FA"))),t.default.createElement(i.Table,{columns:bo,dataSource:ye,rowKey:"id",loading:R,pagination:te?{current:O,pageSize:G,total:le,showSizeChanger:!0,showQuickJumper:!0,showTotal:w=>`\u5171 ${w} \u6761`,onChange:(w,de)=>{H(w),fe(de),q?.(w,de)}}:!1,rowSelection:fo,scroll:{x:1500},onRow:w=>({onClick:()=>se?.(w)})})),t.default.createElement(i.Modal,{title:"\u8BA2\u5355\u8BE6\u60C5",visible:m,onCancel:()=>e(!1),footer:null,width:800},v&&t.default.createElement(i.Descriptions,{bordered:!0,column:2},t.default.createElement(i.Descriptions.Item,{label:"\u8BA2\u5355\u7F16\u53F7"},v.orderSn),t.default.createElement(i.Descriptions.Item,{label:"\u7528\u6237\u8D26\u53F7"},v.memberUsername),t.default.createElement(i.Descriptions.Item,{label:"\u8BA2\u5355\u91D1\u989D"},"\xA5",v.totalAmount.toFixed(2)),t.default.createElement(i.Descriptions.Item,{label:"\u5B9E\u4ED8\u91D1\u989D"},"\xA5",v.payAmount.toFixed(2)),t.default.createElement(i.Descriptions.Item,{label:"\u8FD0\u8D39"},"\xA5",v.freightAmount.toFixed(2)),t.default.createElement(i.Descriptions.Item,{label:"\u4F18\u60E0\u91D1\u989D"},"\xA5",v.discountAmount.toFixed(2)),t.default.createElement(i.Descriptions.Item,{label:"\u652F\u4ED8\u65B9\u5F0F"},Bt(v.payType)),t.default.createElement(i.Descriptions.Item,{label:"\u8BA2\u5355\u72B6\u6001"},Mt(v.status)),t.default.createElement(i.Descriptions.Item,{label:"\u6536\u8D27\u4EBA"},v.receiverName),t.default.createElement(i.Descriptions.Item,{label:"\u6536\u8D27\u7535\u8BDD"},v.receiverPhone),t.default.createElement(i.Descriptions.Item,{label:"\u6536\u8D27\u5730\u5740",span:2},v.receiverProvince,v.receiverCity,v.receiverRegion,v.receiverDetailAddress),t.default.createElement(i.Descriptions.Item,{label:"\u4E0B\u5355\u65F6\u95F4"},v.createTime),t.default.createElement(i.Descriptions.Item,{label:"\u652F\u4ED8\u65F6\u95F4"},v.paymentTime||"-"),t.default.createElement(i.Descriptions.Item,{label:"\u53D1\u8D27\u65F6\u95F4"},v.deliveryTime||"-"),t.default.createElement(i.Descriptions.Item,{label:"\u5B8C\u6210\u65F6\u95F4"},v.receiveTime||"-"),t.default.createElement(i.Descriptions.Item,{label:"\u8BA2\u5355\u5907\u6CE8",span:2},v.note||"-"))),t.default.createElement(i.Modal,{title:"\u8BA2\u5355\u53D1\u8D27",visible:U,onOk:co,onCancel:()=>ue(!1)},t.default.createElement(i.Form,{layout:"vertical"},t.default.createElement(i.Form.Item,{label:"\u7269\u6D41\u516C\u53F8",required:!0},t.default.createElement(i.Select,{value:bt,onChange:Nt,placeholder:"\u8BF7\u9009\u62E9\u7269\u6D41\u516C\u53F8"},t.default.createElement(i.Select.Option,{value:"\u987A\u4E30\u901F\u8FD0"},"\u987A\u4E30\u901F\u8FD0"),t.default.createElement(i.Select.Option,{value:"\u5706\u901A\u5FEB\u9012"},"\u5706\u901A\u5FEB\u9012"),t.default.createElement(i.Select.Option,{value:"\u4E2D\u901A\u5FEB\u9012"},"\u4E2D\u901A\u5FEB\u9012"),t.default.createElement(i.Select.Option,{value:"\u97F5\u8FBE\u5FEB\u9012"},"\u97F5\u8FBE\u5FEB\u9012"),t.default.createElement(i.Select.Option,{value:"\u7533\u901A\u5FEB\u9012"},"\u7533\u901A\u5FEB\u9012"),t.default.createElement(i.Select.Option,{value:"\u90AE\u653FEMS"},"\u90AE\u653FEMS"))),t.default.createElement(i.Form.Item,{label:"\u7269\u6D41\u5355\u53F7",required:!0},t.default.createElement(i.Input,{value:ft,onChange:w=>At(w.target.value),placeholder:"\u8BF7\u8F93\u5165\u7269\u6D41\u5355\u53F7"})))))},at=Io;var a=Y(ke()),r=Y(De());var{TextArea:qt}=r.Input,Oo=({initialValues:d,mode:o="create",showBasicInfo:l=!0,showReceiverInfo:b=!0,showMoneyInfo:k=!0,showOrderItems:_=!0,showStatusInfo:$=!0,onSubmit:ee,onCancel:re,style:ie,className:Q})=>{let[I]=r.Form.useForm(),[B,te]=(0,a.useState)("basic"),[ce,se]=(0,a.useState)([]);(0,a.useEffect)(()=>{if(d){let O=d;if(typeof d=="string")try{O=JSON.parse(d)}catch(H){console.error("Failed to parse initialValues:",H),O={}}I.setFieldsValue(O),O.orderItemList&&se(O.orderItemList)}},[d,I]);let Z=async()=>{try{let O=await I.validateFields();ee?.(O),r.message.success("\u63D0\u4EA4\u6210\u529F")}catch(O){console.error("Validation failed:",O),r.message.error("\u8BF7\u68C0\u67E5\u8868\u5355\u586B\u5199\u662F\u5426\u6B63\u786E")}},q=()=>{I.resetFields(),re?.()},E=()=>{I.resetFields()},be=()=>{if(typeof d=="string")try{return JSON.parse(d)}catch{return{}}return d||{}},u=o==="view",j=O=>{let H={[ne.PENDING_PAYMENT]:{color:"orange",text:"\u5F85\u4ED8\u6B3E"},[ne.PENDING_DELIVERY]:{color:"blue",text:"\u5F85\u53D1\u8D27"},[ne.DELIVERED]:{color:"cyan",text:"\u5DF2\u53D1\u8D27"},[ne.COMPLETED]:{color:"green",text:"\u5DF2\u5B8C\u6210"},[ne.CLOSED]:{color:"default",text:"\u5DF2\u5173\u95ED"},[ne.INVALID]:{color:"red",text:"\u65E0\u6548\u8BA2\u5355"}},{color:G,text:fe}=H[O]||{color:"default",text:"\u672A\u77E5"};return a.default.createElement(r.Tag,{color:G},fe)},R=[{title:"\u5546\u54C1\u56FE\u7247",dataIndex:"productPic",key:"productPic",width:80,render:O=>a.default.createElement("img",{src:O,alt:"\u5546\u54C1\u56FE\u7247",style:{width:50,height:50,objectFit:"cover"}})},{title:"\u5546\u54C1\u540D\u79F0",dataIndex:"productName",key:"productName",width:200},{title:"\u5546\u54C1\u8D27\u53F7",dataIndex:"productSn",key:"productSn",width:120},{title:"\u5546\u54C1\u54C1\u724C",dataIndex:"productBrand",key:"productBrand",width:100},{title:"\u9500\u552E\u4EF7\u683C",dataIndex:"productPrice",key:"productPrice",width:100,render:O=>`\xA5${O.toFixed(2)}`},{title:"\u8D2D\u4E70\u6570\u91CF",dataIndex:"productQuantity",key:"productQuantity",width:100},{title:"\u5C0F\u8BA1",key:"subtotal",width:100,render:(O,H)=>`\xA5${(H.productPrice*H.productQuantity).toFixed(2)}`}],K=[a.default.createElement(r.Row,{gutter:16,key:"basic-row-1"},a.default.createElement(r.Col,{span:12},a.default.createElement(r.Form.Item,{name:"orderSn",label:"\u8BA2\u5355\u7F16\u53F7",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8BA2\u5355\u7F16\u53F7"}]},a.default.createElement(r.Input,{placeholder:"\u8BF7\u8F93\u5165\u8BA2\u5355\u7F16\u53F7",disabled:u}))),a.default.createElement(r.Col,{span:12},a.default.createElement(r.Form.Item,{name:"memberUsername",label:"\u7528\u6237\u8D26\u53F7",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u7528\u6237\u8D26\u53F7"}]},a.default.createElement(r.Input,{placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u8D26\u53F7",disabled:u})))),a.default.createElement(r.Row,{gutter:16,key:"basic-row-2"},a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"payType",label:"\u652F\u4ED8\u65B9\u5F0F",rules:[{required:!0}]},a.default.createElement(r.Select,{placeholder:"\u8BF7\u9009\u62E9\u652F\u4ED8\u65B9\u5F0F",disabled:u},$t.map(O=>a.default.createElement(r.Select.Option,{key:O.value,value:O.value},O.label))))),a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"sourceType",label:"\u8BA2\u5355\u6765\u6E90",rules:[{required:!0}]},a.default.createElement(r.Select,{placeholder:"\u8BF7\u9009\u62E9\u8BA2\u5355\u6765\u6E90",disabled:u},ot.map(O=>a.default.createElement(r.Select.Option,{key:O.value,value:O.value},O.label))))),a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"orderType",label:"\u8BA2\u5355\u7C7B\u578B",rules:[{required:!0}]},a.default.createElement(r.Select,{placeholder:"\u8BF7\u9009\u62E9\u8BA2\u5355\u7C7B\u578B",disabled:u},rt.map(O=>a.default.createElement(r.Select.Option,{key:O.value,value:O.value},O.label)))))),a.default.createElement(r.Row,{gutter:16,key:"basic-row-3"},a.default.createElement(r.Col,{span:12},a.default.createElement(r.Form.Item,{name:"createTime",label:"\u4E0B\u5355\u65F6\u95F4"},a.default.createElement(r.Input,{placeholder:"\u4E0B\u5355\u65F6\u95F4",disabled:!0}))),a.default.createElement(r.Col,{span:12},a.default.createElement(r.Form.Item,{name:"paymentTime",label:"\u652F\u4ED8\u65F6\u95F4"},a.default.createElement(r.Input,{placeholder:"\u652F\u4ED8\u65F6\u95F4",disabled:!0}))))],ye=[a.default.createElement(r.Row,{gutter:16,key:"receiver-row-1"},a.default.createElement(r.Col,{span:12},a.default.createElement(r.Form.Item,{name:"receiverName",label:"\u6536\u8D27\u4EBA\u59D3\u540D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6536\u8D27\u4EBA\u59D3\u540D"}]},a.default.createElement(r.Input,{placeholder:"\u8BF7\u8F93\u5165\u6536\u8D27\u4EBA\u59D3\u540D",disabled:u}))),a.default.createElement(r.Col,{span:12},a.default.createElement(r.Form.Item,{name:"receiverPhone",label:"\u6536\u8D27\u4EBA\u7535\u8BDD",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6536\u8D27\u4EBA\u7535\u8BDD"}]},a.default.createElement(r.Input,{placeholder:"\u8BF7\u8F93\u5165\u6536\u8D27\u4EBA\u7535\u8BDD",disabled:u})))),a.default.createElement(r.Row,{gutter:16,key:"receiver-row-2"},a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"receiverProvince",label:"\u7701\u4EFD"},a.default.createElement(r.Input,{placeholder:"\u7701\u4EFD",disabled:u}))),a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"receiverCity",label:"\u57CE\u5E02"},a.default.createElement(r.Input,{placeholder:"\u57CE\u5E02",disabled:u}))),a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"receiverRegion",label:"\u533A"},a.default.createElement(r.Input,{placeholder:"\u533A",disabled:u})))),a.default.createElement(r.Form.Item,{key:"receiverDetailAddress",name:"receiverDetailAddress",label:"\u8BE6\u7EC6\u5730\u5740"},a.default.createElement(qt,{rows:2,placeholder:"\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740",disabled:u})),a.default.createElement(r.Row,{gutter:16,key:"receiver-row-3"},a.default.createElement(r.Col,{span:12},a.default.createElement(r.Form.Item,{name:"deliveryCompany",label:"\u7269\u6D41\u516C\u53F8"},a.default.createElement(r.Input,{placeholder:"\u7269\u6D41\u516C\u53F8",disabled:u}))),a.default.createElement(r.Col,{span:12},a.default.createElement(r.Form.Item,{name:"deliverySn",label:"\u7269\u6D41\u5355\u53F7"},a.default.createElement(r.Input,{placeholder:"\u7269\u6D41\u5355\u53F7",disabled:u}))))],N=[a.default.createElement(r.Row,{gutter:16,key:"money-row-1"},a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"totalAmount",label:"\u8BA2\u5355\u603B\u91D1\u989D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8BA2\u5355\u603B\u91D1\u989D"}]},a.default.createElement(r.InputNumber,{placeholder:"\u8BA2\u5355\u603B\u91D1\u989D",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u}))),a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"payAmount",label:"\u5B9E\u4ED8\u91D1\u989D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5B9E\u4ED8\u91D1\u989D"}]},a.default.createElement(r.InputNumber,{placeholder:"\u5B9E\u4ED8\u91D1\u989D",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u}))),a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"freightAmount",label:"\u8FD0\u8D39\u91D1\u989D"},a.default.createElement(r.InputNumber,{placeholder:"\u8FD0\u8D39\u91D1\u989D",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u})))),a.default.createElement(r.Row,{gutter:16,key:"money-row-2"},a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"discountAmount",label:"\u6298\u6263\u91D1\u989D"},a.default.createElement(r.InputNumber,{placeholder:"\u6298\u6263\u91D1\u989D",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u}))),a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"promotionAmount",label:"\u4FC3\u9500\u4F18\u60E0"},a.default.createElement(r.InputNumber,{placeholder:"\u4FC3\u9500\u4F18\u60E0",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u}))),a.default.createElement(r.Col,{span:8},a.default.createElement(r.Form.Item,{name:"couponAmount",label:"\u4F18\u60E0\u5238\u62B5\u6263"},a.default.createElement(r.InputNumber,{placeholder:"\u4F18\u60E0\u5238\u62B5\u6263",style:{width:"100%"},min:0,precision:2,prefix:"\xA5",disabled:u}))))],le=[a.default.createElement(r.Row,{gutter:16,key:"status-row-1"},a.default.createElement(r.Col,{span:12},a.default.createElement(r.Form.Item,{name:"status",label:"\u8BA2\u5355\u72B6\u6001",rules:[{required:!0}]},a.default.createElement(r.Select,{placeholder:"\u8BF7\u9009\u62E9\u8BA2\u5355\u72B6\u6001",disabled:u},tt.map(O=>a.default.createElement(r.Select.Option,{key:O.value,value:O.value},O.label))))),a.default.createElement(r.Col,{span:12},a.default.createElement(r.Form.Item,{name:"confirmStatus",label:"\u786E\u8BA4\u6536\u8D27\u72B6\u6001"},a.default.createElement(r.Select,{placeholder:"\u8BF7\u9009\u62E9\u786E\u8BA4\u6536\u8D27\u72B6\u6001",disabled:u},a.default.createElement(r.Select.Option,{value:0},"\u672A\u786E\u8BA4"),a.default.createElement(r.Select.Option,{value:1},"\u5DF2\u786E\u8BA4"))))),a.default.createElement(r.Form.Item,{key:"promotionInfo",name:"promotionInfo",label:"\u6D3B\u52A8\u4FE1\u606F"},a.default.createElement(r.Input,{placeholder:"\u6D3B\u52A8\u4FE1\u606F",disabled:u})),a.default.createElement(r.Form.Item,{key:"note",name:"note",label:"\u8BA2\u5355\u5907\u6CE8"},a.default.createElement(qt,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u8BA2\u5355\u5907\u6CE8",disabled:u}))],oe=[{key:"basic",label:"\u57FA\u672C\u4FE1\u606F",children:l?K:null},{key:"receiver",label:"\u6536\u8D27\u4FE1\u606F",children:b?ye:null},{key:"money",label:"\u8D39\u7528\u4FE1\u606F",children:k?N:null},{key:"items",label:"\u5546\u54C1\u4FE1\u606F",children:_?a.default.createElement(r.Table,{columns:R,dataSource:ce,rowKey:"id",pagination:!1,scroll:{x:900}}):null},{key:"status",label:"\u72B6\u6001\u4FE1\u606F",children:$?le:null}];return a.default.createElement("div",{className:`mall-order-form ${Q||""}`,style:ie},a.default.createElement(r.Card,null,a.default.createElement(r.Form,{form:I,layout:"vertical",initialValues:be(),disabled:u},a.default.createElement(r.Tabs,{activeKey:B,onChange:te,items:oe}),a.default.createElement(r.Divider,null),a.default.createElement(r.Form.Item,null,a.default.createElement(r.Space,null,!u&&a.default.createElement(a.default.Fragment,null,a.default.createElement(r.Button,{type:"primary",onClick:Z},o==="create"?"\u521B\u5EFA":"\u4FDD\u5B58"),a.default.createElement(r.Button,{onClick:E},"\u91CD\u7F6E")),a.default.createElement(r.Button,{onClick:q},u?"\u5173\u95ED":"\u53D6\u6D88"))))))},it=Oo;var f=Y(ke()),S=Y(De()),qe=Y(ze());var Me={FULL_REDUCTION:0,DISCOUNT:1},Fe={ALL:0,MOBILE:1,PC:2,APP:3},He={ALL:0,CATEGORY:1,PRODUCT:2},Gt=[{label:"\u6EE1\u51CF\u5238",value:Me.FULL_REDUCTION},{label:"\u6298\u6263\u5238",value:Me.DISCOUNT}],St=[{label:"\u5168\u5E73\u53F0",value:Fe.ALL},{label:"\u79FB\u52A8\u7AEF",value:Fe.MOBILE},{label:"PC\u7AEF",value:Fe.PC},{label:"APP\u7AEF",value:Fe.APP}],Lr=[{label:"\u5168\u573A\u901A\u7528",value:He.ALL},{label:"\u6307\u5B9A\u5206\u7C7B",value:He.CATEGORY},{label:"\u6307\u5B9A\u5546\u54C1",value:He.PRODUCT}],xe={ENABLED:1,DISABLED:0},Jt=[{label:"\u542F\u7528",value:xe.ENABLED},{label:"\u7981\u7528",value:xe.DISABLED}];var{RangePicker:No}=S.DatePicker,Qt={code:200,message:"success",data:{pageNum:1,pageSize:10,total:3,list:[{id:1,name:"\u65B0\u7528\u6237\u4E13\u4EAB\u5238",type:0,platform:0,count:1e3,amount:50,perLimit:1,minPoint:200,startTime:"2024-01-01",endTime:"2024-12-31",useType:0,note:"\u65B0\u7528\u6237\u9996\u5355\u6EE1200\u51CF50",publishCount:500,useCount:320,receiveCount:450,enableTime:"7",code:"NEWUSER50",memberLevel:0},{id:2,name:"\u9650\u65F6\u6298\u6263\u5238",type:1,platform:3,count:500,amount:8,perLimit:2,minPoint:100,startTime:"2024-01-15",endTime:"2024-02-15",useType:1,note:"APP\u4E13\u4EAB8\u6298\u5238",publishCount:300,useCount:180,receiveCount:280,enableTime:"3",code:"APPDISCOUNT",memberLevel:1},{id:3,name:"\u4F1A\u5458\u4E13\u4EAB\u5238",type:0,platform:0,count:200,amount:100,perLimit:1,minPoint:500,startTime:"2024-01-01",endTime:"2024-06-30",useType:2,note:"\u4F1A\u5458\u4E13\u4EAB\u6EE1500\u51CF100",publishCount:150,useCount:80,receiveCount:120,enableTime:"15",code:"VIP100",memberLevel:2}]}},Ao=({dataSourceType:d="mock",api:o,method:l="GET",mockData:b,variableName:k,showCreateButton:_=!0,showFilter:$=!0,showStatistics:ee=!0,onCreateCoupon:re,onEditCoupon:ie,onDeleteCoupon:Q,style:I,className:B})=>{let[te,ce]=(0,f.useState)(!1),[se,Z]=(0,f.useState)([]),[q,E]=(0,f.useState)(0),[be,u]=(0,f.useState)(1),[j,R]=(0,f.useState)(10),[K,ye]=(0,f.useState)(""),[N,le]=(0,f.useState)(),[oe,O]=(0,f.useState)(),[H,G]=(0,f.useState)(!1),[fe,he]=(0,f.useState)(null),[pe]=S.Form.useForm(),ve=[{id:1,name:"\u65B0\u7528\u6237\u4E13\u4EAB\u5238",type:Me.FULL_REDUCTION,platform:Fe.ALL,count:1e3,amount:50,perLimit:1,minPoint:200,startTime:"2024-01-01",endTime:"2024-12-31",useType:He.ALL,note:"\u65B0\u7528\u6237\u9996\u5355\u6EE1200\u51CF50",publishCount:500,useCount:320,receiveCount:450,enableTime:"7",code:"NEWUSER50",memberLevel:0},{id:2,name:"\u9650\u65F6\u6298\u6263\u5238",type:Me.DISCOUNT,platform:Fe.APP,count:500,amount:8,perLimit:2,minPoint:100,startTime:"2024-01-15",endTime:"2024-02-15",useType:He.CATEGORY,note:"APP\u4E13\u4EAB8\u6298\u5238",publishCount:300,useCount:180,receiveCount:280,enableTime:"3",code:"APPDISCOUNT",memberLevel:1},{id:3,name:"\u4F1A\u5458\u4E13\u4EAB\u5238",type:Me.FULL_REDUCTION,platform:Fe.ALL,count:200,amount:100,perLimit:1,minPoint:500,startTime:"2024-01-01",endTime:"2024-06-30",useType:He.PRODUCT,note:"\u4F1A\u5458\u4E13\u4EAB\u6EE1500\u51CF100",publishCount:150,useCount:80,receiveCount:120,enableTime:"15",code:"VIP100",memberLevel:2}],Se=(0,f.useMemo)(()=>({type:d,api:o,method:l,mockData:b?(()=>{try{return typeof b=="string"?JSON.parse(b):b}catch{return Qt}})():Qt,variableName:k}),[d,o,l,b,k]),Ae=(0,f.useMemo)(()=>_e.create(Se),[Se]);(0,f.useEffect)(()=>{ge()},[be,j,Ae]);let ge=async()=>{ce(!0);try{let m=await Ae.fetch({pageNum:be,pageSize:j,name:K,type:N,platform:oe}),e=[],v=0;m?.data?.list?(e=m.data.list,v=m.data.total||e.length):Array.isArray(m?.data)?(e=m.data,v=e.length):Array.isArray(m)&&(e=m,v=e.length),(K||N!==void 0||oe!==void 0)&&(e=e.filter(W=>!(K&&!W.name.toLowerCase().includes(K.toLowerCase())||N!==void 0&&W.type!==N||oe!==void 0&&W.platform!==oe)),v=e.length),Z(e),E(v)}catch(m){console.error("Failed to fetch coupon list:",m),S.message.error("\u83B7\u53D6\u4F18\u60E0\u5238\u5217\u8868\u5931\u8D25"),Z(ve),E(ve.length)}finally{ce(!1)}},Oe=()=>{u(1),ge()},Te=()=>{ye(""),le(void 0),O(void 0),u(1),ge()},y=()=>{he(null),pe.resetFields(),G(!0)},p=m=>{he(m),pe.setFieldsValue({...m,dateRange:[m.startTime,m.endTime]}),G(!0)},h=m=>{S.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u4F18\u60E0\u5238\u5417\uFF1F",onOk:()=>{Q?.(m),S.message.success("\u5220\u9664\u6210\u529F"),ge()}})},c=async()=>{try{let m=await pe.validateFields(),e={...m,startTime:m.dateRange?.[0],endTime:m.dateRange?.[1]};fe?(ie?.(fe.id,e),S.message.success("\u7F16\u8F91\u6210\u529F")):(re?.(e),S.message.success("\u521B\u5EFA\u6210\u529F")),G(!1),ge()}catch(m){console.error("Validation failed:",m)}},C=m=>{let e={[Me.FULL_REDUCTION]:{color:"red",text:"\u6EE1\u51CF\u5238"},[Me.DISCOUNT]:{color:"blue",text:"\u6298\u6263\u5238"}},{color:v,text:W}=e[m]||{color:"default",text:"\u672A\u77E5"};return f.default.createElement(S.Tag,{color:v},W)},z=m=>{let e={[Fe.ALL]:{color:"green",text:"\u5168\u5E73\u53F0"},[Fe.MOBILE]:{color:"purple",text:"\u79FB\u52A8\u7AEF"},[Fe.PC]:{color:"geekblue",text:"PC\u7AEF"},[Fe.APP]:{color:"cyan",text:"APP"}},{color:v,text:W}=e[m]||{color:"default",text:"\u672A\u77E5"};return f.default.createElement(S.Tag,{color:v},W)},g=[{title:"\u4F18\u60E0\u5238\u540D\u79F0",dataIndex:"name",key:"name",width:150,render:m=>f.default.createElement(S.Tooltip,{title:m},f.default.createElement("span",{className:"coupon-name"},m))},{title:"\u7C7B\u578B",dataIndex:"type",key:"type",width:80,render:m=>C(m)},{title:"\u4F18\u60E0\u5185\u5BB9",key:"content",width:120,render:(m,e)=>f.default.createElement("span",null,e.type===Me.FULL_REDUCTION?`\u6EE1${e.minPoint}\u51CF${e.amount}`:`${e.amount}\u6298`)},{title:"\u9002\u7528\u5E73\u53F0",dataIndex:"platform",key:"platform",width:80,render:m=>z(m)},{title:"\u53D1\u884C\u91CF",dataIndex:"count",key:"count",width:80,render:m=>f.default.createElement(S.Badge,{count:m,showZero:!0,color:"blue"})},{title:"\u5DF2\u9886\u53D6",dataIndex:"receiveCount",key:"receiveCount",width:80},{title:"\u5DF2\u4F7F\u7528",dataIndex:"useCount",key:"useCount",width:80},{title:"\u6709\u6548\u671F",key:"validity",width:180,render:(m,e)=>f.default.createElement(S.Space,null,f.default.createElement(qe.ClockCircleOutlined,null),f.default.createElement("span",null,e.startTime," ~ ",e.endTime))},{title:"\u64CD\u4F5C",key:"action",width:150,render:(m,e)=>f.default.createElement(S.Space,null,f.default.createElement(S.Button,{type:"link",size:"small",icon:f.default.createElement(qe.EditOutlined,null),onClick:()=>p(e)},"\u7F16\u8F91"),f.default.createElement(S.Button,{type:"link",size:"small",danger:!0,icon:f.default.createElement(qe.DeleteOutlined,null),onClick:()=>h(e.id)},"\u5220\u9664"))}],M={totalCoupons:se.length,activeCoupons:se.filter(m=>m.useCount>0).length,totalUsed:se.reduce((m,e)=>m+e.useCount,0),totalReceived:se.reduce((m,e)=>m+e.receiveCount,0)};return f.default.createElement("div",{className:`mall-coupon-card ${B||""}`,style:I},f.default.createElement(S.Card,null,ee&&f.default.createElement("div",{className:"statistics-section"},f.default.createElement(S.Space,{size:"large"},f.default.createElement("div",{className:"stat-item"},f.default.createElement("div",{className:"stat-value"},M.totalCoupons),f.default.createElement("div",{className:"stat-label"},"\u4F18\u60E0\u5238\u603B\u6570")),f.default.createElement(S.Divider,{type:"vertical",style:{height:40}}),f.default.createElement("div",{className:"stat-item"},f.default.createElement("div",{className:"stat-value"},M.activeCoupons),f.default.createElement("div",{className:"stat-label"},"\u6D3B\u8DC3\u4F18\u60E0\u5238")),f.default.createElement(S.Divider,{type:"vertical",style:{height:40}}),f.default.createElement("div",{className:"stat-item"},f.default.createElement("div",{className:"stat-value"},M.totalReceived),f.default.createElement("div",{className:"stat-label"},"\u5DF2\u9886\u53D6")),f.default.createElement(S.Divider,{type:"vertical",style:{height:40}}),f.default.createElement("div",{className:"stat-item"},f.default.createElement("div",{className:"stat-value"},M.totalUsed),f.default.createElement("div",{className:"stat-label"},"\u5DF2\u4F7F\u7528")))),$&&f.default.createElement("div",{className:"filter-section"},f.default.createElement(S.Space,{wrap:!0},f.default.createElement(S.Input,{placeholder:"\u4F18\u60E0\u5238\u540D\u79F0",value:K,onChange:m=>ye(m.target.value),style:{width:200}}),f.default.createElement(S.Select,{placeholder:"\u4F18\u60E0\u5238\u7C7B\u578B",value:N,onChange:le,style:{width:120},allowClear:!0},Gt.map(m=>f.default.createElement(S.Select.Option,{key:m.value,value:m.value},m.label))),f.default.createElement(S.Select,{placeholder:"\u9002\u7528\u5E73\u53F0",value:oe,onChange:O,style:{width:120},allowClear:!0},St.map(m=>f.default.createElement(S.Select.Option,{key:m.value,value:m.value},m.label))),f.default.createElement(S.Button,{type:"primary",onClick:Oe},"\u67E5\u8BE2"),f.default.createElement(S.Button,{onClick:Te},"\u91CD\u7F6E"))),_&&f.default.createElement("div",{className:"action-section"},f.default.createElement(S.Button,{type:"primary",icon:f.default.createElement(qe.PlusOutlined,null),onClick:y},"\u521B\u5EFA\u4F18\u60E0\u5238")),f.default.createElement(S.Table,{columns:g,dataSource:se,rowKey:"id",loading:te,pagination:{current:be,pageSize:j,total:q,showSizeChanger:!0,showQuickJumper:!0,showTotal:m=>`\u5171 ${m} \u6761`,onChange:(m,e)=>{u(m),R(e)}}})),f.default.createElement(S.Modal,{title:fe?"\u7F16\u8F91\u4F18\u60E0\u5238":"\u521B\u5EFA\u4F18\u60E0\u5238",visible:H,onOk:c,onCancel:()=>G(!1),width:600},f.default.createElement(S.Form,{form:pe,layout:"vertical"},f.default.createElement(S.Form.Item,{name:"name",label:"\u4F18\u60E0\u5238\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u4F18\u60E0\u5238\u540D\u79F0"}]},f.default.createElement(S.Input,{placeholder:"\u8BF7\u8F93\u5165\u4F18\u60E0\u5238\u540D\u79F0"})),f.default.createElement(S.Form.Item,{name:"type",label:"\u4F18\u60E0\u5238\u7C7B\u578B",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u4F18\u60E0\u5238\u7C7B\u578B"}]},f.default.createElement(S.Radio.Group,null,f.default.createElement(S.Radio,{value:Me.FULL_REDUCTION},"\u6EE1\u51CF\u5238"),f.default.createElement(S.Radio,{value:Me.DISCOUNT},"\u6298\u6263\u5238"))),f.default.createElement(S.Form.Item,{name:"amount",label:"\u4F18\u60E0\u989D\u5EA6",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u4F18\u60E0\u989D\u5EA6"}]},f.default.createElement(S.InputNumber,{placeholder:"\u6EE1\u51CF\u91D1\u989D\u6216\u6298\u6263",min:0,style:{width:"100%"}})),f.default.createElement(S.Form.Item,{name:"minPoint",label:"\u6700\u4F4E\u6D88\u8D39\u91D1\u989D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6700\u4F4E\u6D88\u8D39\u91D1\u989D"}]},f.default.createElement(S.InputNumber,{placeholder:"\u6700\u4F4E\u6D88\u8D39\u91D1\u989D",min:0,style:{width:"100%"}})),f.default.createElement(S.Form.Item,{name:"platform",label:"\u9002\u7528\u5E73\u53F0",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u9002\u7528\u5E73\u53F0"}]},f.default.createElement(S.Select,{placeholder:"\u8BF7\u9009\u62E9\u9002\u7528\u5E73\u53F0"},St.map(m=>f.default.createElement(S.Select.Option,{key:m.value,value:m.value},m.label)))),f.default.createElement(S.Form.Item,{name:"count",label:"\u53D1\u884C\u6570\u91CF",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u53D1\u884C\u6570\u91CF"}]},f.default.createElement(S.InputNumber,{placeholder:"\u53D1\u884C\u6570\u91CF",min:1,style:{width:"100%"}})),f.default.createElement(S.Form.Item,{name:"perLimit",label:"\u6BCF\u4EBA\u9650\u9886",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6BCF\u4EBA\u9650\u9886\u6570\u91CF"}]},f.default.createElement(S.InputNumber,{placeholder:"\u6BCF\u4EBA\u9650\u9886\u6570\u91CF",min:1,style:{width:"100%"}})),f.default.createElement(S.Form.Item,{name:"dateRange",label:"\u6709\u6548\u671F",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6709\u6548\u671F"}]},f.default.createElement(No,{style:{width:"100%"}})),f.default.createElement(S.Form.Item,{name:"note",label:"\u5907\u6CE8"},f.default.createElement(S.Input.TextArea,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u5907\u6CE8"})))))},st=Ao;var x=Y(ke()),A=Y(De()),Ne=Y(ze());var{RangePicker:Do}=A.DatePicker,Ht={code:200,message:"success",data:{pageNum:1,pageSize:10,total:4,list:[{id:1,title:"\u53CC\u5341\u4E00\u5927\u4FC3",startDate:"2024-11-01",endDate:"2024-11-11",status:1,createTime:"2024-10-15 10:00:00"},{id:2,title:"618\u5E74\u4E2D\u5927\u4FC3",startDate:"2024-06-01",endDate:"2024-06-18",status:1,createTime:"2024-05-20 09:00:00"},{id:3,title:"\u65B0\u6625\u5B63\u4FC3\u9500",startDate:"2024-01-20",endDate:"2024-02-10",status:0,createTime:"2024-01-10 08:00:00"},{id:4,title:"\u4F1A\u5458\u65E5\u7279\u60E0",startDate:"2024-03-15",endDate:"2024-03-17",status:1,createTime:"2024-03-01 10:00:00"}]}},Eo=({dataSourceType:d="mock",api:o,method:l="GET",mockData:b,variableName:k,showCreateButton:_=!0,showFilter:$=!0,showStatistics:ee=!0,showTimeline:re=!0,onCreatePromotion:ie,onEditPromotion:Q,onDeletePromotion:I,onToggleStatus:B,style:te,className:ce})=>{let[se,Z]=(0,x.useState)(!1),[q,E]=(0,x.useState)([]),[be,u]=(0,x.useState)(0),[j,R]=(0,x.useState)(1),[K,ye]=(0,x.useState)(10),[N,le]=(0,x.useState)(""),[oe,O]=(0,x.useState)(),[H,G]=(0,x.useState)(!1),[fe,he]=(0,x.useState)(null),[pe]=A.Form.useForm(),ve=[{id:1,title:"\u53CC\u5341\u4E00\u5927\u4FC3",startDate:"2024-11-01",endDate:"2024-11-11",status:xe.ENABLED,createTime:"2024-10-15 10:00:00"},{id:2,title:"618\u5E74\u4E2D\u5927\u4FC3",startDate:"2024-06-01",endDate:"2024-06-18",status:xe.ENABLED,createTime:"2024-05-20 09:00:00"},{id:3,title:"\u65B0\u6625\u5B63\u4FC3\u9500",startDate:"2024-01-20",endDate:"2024-02-10",status:xe.DISABLED,createTime:"2024-01-10 08:00:00"},{id:4,title:"\u4F1A\u5458\u65E5\u7279\u60E0",startDate:"2024-03-15",endDate:"2024-03-17",status:xe.ENABLED,createTime:"2024-03-01 10:00:00"}],Se=(0,x.useMemo)(()=>({type:d,api:o,method:l,mockData:b?(()=>{try{return typeof b=="string"?JSON.parse(b):b}catch{return Ht}})():Ht,variableName:k}),[d,o,l,b,k]),Ae=(0,x.useMemo)(()=>_e.create(Se),[Se]);(0,x.useEffect)(()=>{ge()},[j,K,Ae]);let ge=async()=>{Z(!0);try{let e=await Ae.fetch({pageNum:j,pageSize:K,title:N,status:oe}),v=[],W=0;e?.data?.list?(v=e.data.list,W=e.data.total||v.length):Array.isArray(e?.data)?(v=e.data,W=v.length):Array.isArray(e)&&(v=e,W=v.length),(N||oe!==void 0)&&(v=v.filter(U=>!(N&&!U.title.toLowerCase().includes(N.toLowerCase())||oe!==void 0&&U.status!==oe)),W=v.length),E(v),u(W)}catch(e){console.error("Failed to fetch promotion list:",e),A.message.error("\u83B7\u53D6\u4FC3\u9500\u6D3B\u52A8\u5217\u8868\u5931\u8D25"),E(ve),u(ve.length)}finally{Z(!1)}},Oe=()=>{R(1),ge()},Te=()=>{le(""),O(void 0),R(1),ge()},y=()=>{he(null),pe.resetFields(),G(!0)},p=e=>{he(e),pe.setFieldsValue({...e,dateRange:[e.startDate,e.endDate]}),G(!0)},h=e=>{A.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u4FC3\u9500\u6D3B\u52A8\u5417\uFF1F",onOk:()=>{I?.(e),A.message.success("\u5220\u9664\u6210\u529F"),ge()}})},c=e=>{let v=e.status===xe.ENABLED?xe.DISABLED:xe.ENABLED;B?.(e.id,v),A.message.success(v===xe.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),ge()},C=async()=>{try{let e=await pe.validateFields(),v={...e,startDate:e.dateRange?.[0],endDate:e.dateRange?.[1]};fe?(Q?.(fe.id,v),A.message.success("\u7F16\u8F91\u6210\u529F")):(ie?.(v),A.message.success("\u521B\u5EFA\u6210\u529F")),G(!1),ge()}catch(e){console.error("Validation failed:",e)}},z=e=>{let v={[xe.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528",icon:x.default.createElement(Ne.CheckCircleOutlined,null)},[xe.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528",icon:x.default.createElement(Ne.CloseCircleOutlined,null)}},{color:W,text:U,icon:ue}=v[e]||{color:"default",text:"\u672A\u77E5",icon:null};return x.default.createElement(A.Tag,{color:W,icon:ue},U)},g=[{title:"\u6D3B\u52A8\u540D\u79F0",dataIndex:"title",key:"title",width:200,render:e=>x.default.createElement(A.Tooltip,{title:e},x.default.createElement("span",{className:"promotion-title"},x.default.createElement(Ne.ThunderboltOutlined,{style:{color:"#faad14",marginRight:8}}),e))},{title:"\u6D3B\u52A8\u65F6\u95F4",key:"dateRange",width:220,render:(e,v)=>x.default.createElement(A.Space,null,x.default.createElement(Ne.ClockCircleOutlined,null),x.default.createElement("span",null,v.startDate," ~ ",v.endDate))},{title:"\u72B6\u6001",dataIndex:"status",key:"status",width:100,render:e=>z(e)},{title:"\u521B\u5EFA\u65F6\u95F4",dataIndex:"createTime",key:"createTime",width:180},{title:"\u64CD\u4F5C",key:"action",width:200,render:(e,v)=>x.default.createElement(A.Space,null,x.default.createElement(A.Button,{type:"link",size:"small",icon:x.default.createElement(Ne.EditOutlined,null),onClick:()=>p(v)},"\u7F16\u8F91"),x.default.createElement(A.Button,{type:"link",size:"small",onClick:()=>c(v)},v.status===xe.ENABLED?"\u7981\u7528":"\u542F\u7528"),x.default.createElement(A.Button,{type:"link",size:"small",danger:!0,icon:x.default.createElement(Ne.DeleteOutlined,null),onClick:()=>h(v.id)},"\u5220\u9664"))}],M={totalPromotions:q.length,activePromotions:q.filter(e=>e.status===xe.ENABLED).length,upcomingPromotions:q.filter(e=>{let v=new Date;return new Date(e.startDate)>v}).length},m=q.filter(e=>e.status===xe.ENABLED).slice(0,5).map(e=>({color:"green",children:x.default.createElement("div",null,x.default.createElement("div",{className:"timeline-title"},e.title),x.default.createElement("div",{className:"timeline-date"},e.startDate," ~ ",e.endDate))}));return x.default.createElement("div",{className:`mall-promotion-card ${ce||""}`,style:te},x.default.createElement(A.Card,null,ee&&x.default.createElement("div",{className:"statistics-section"},x.default.createElement(A.Row,{gutter:16},x.default.createElement(A.Col,{span:8},x.default.createElement(A.Statistic,{title:"\u4FC3\u9500\u6D3B\u52A8\u603B\u6570",value:M.totalPromotions,prefix:x.default.createElement(Ne.ThunderboltOutlined,null)})),x.default.createElement(A.Col,{span:8},x.default.createElement(A.Statistic,{title:"\u8FDB\u884C\u4E2D\u7684\u6D3B\u52A8",value:M.activePromotions,valueStyle:{color:"#3f8600"}})),x.default.createElement(A.Col,{span:8},x.default.createElement(A.Statistic,{title:"\u5373\u5C06\u5F00\u59CB",value:M.upcomingPromotions,valueStyle:{color:"#faad14"}})))),$&&x.default.createElement("div",{className:"filter-section"},x.default.createElement(A.Space,{wrap:!0},x.default.createElement(A.Input,{placeholder:"\u6D3B\u52A8\u540D\u79F0",value:N,onChange:e=>le(e.target.value),style:{width:200}}),x.default.createElement(A.Select,{placeholder:"\u6D3B\u52A8\u72B6\u6001",value:oe,onChange:O,style:{width:120},allowClear:!0},Jt.map(e=>x.default.createElement(A.Select.Option,{key:e.value,value:e.value},e.label))),x.default.createElement(A.Button,{type:"primary",onClick:Oe},"\u67E5\u8BE2"),x.default.createElement(A.Button,{onClick:Te},"\u91CD\u7F6E"))),_&&x.default.createElement("div",{className:"action-section"},x.default.createElement(A.Button,{type:"primary",icon:x.default.createElement(Ne.PlusOutlined,null),onClick:y},"\u521B\u5EFA\u4FC3\u9500\u6D3B\u52A8")),x.default.createElement("div",{className:"content-section"},x.default.createElement("div",{className:"table-section"},x.default.createElement(A.Table,{columns:g,dataSource:q,rowKey:"id",loading:se,pagination:{current:j,pageSize:K,total:be,showSizeChanger:!0,showQuickJumper:!0,showTotal:e=>`\u5171 ${e} \u6761`,onChange:(e,v)=>{R(e),ye(v)}}})),re&&m.length>0&&x.default.createElement("div",{className:"timeline-section"},x.default.createElement(A.Card,{title:"\u6D3B\u52A8\u65F6\u95F4\u7EBF",size:"small"},x.default.createElement(A.Timeline,{items:m}))))),x.default.createElement(A.Modal,{title:fe?"\u7F16\u8F91\u4FC3\u9500\u6D3B\u52A8":"\u521B\u5EFA\u4FC3\u9500\u6D3B\u52A8",visible:H,onOk:C,onCancel:()=>G(!1),width:500},x.default.createElement(A.Form,{form:pe,layout:"vertical"},x.default.createElement(A.Form.Item,{name:"title",label:"\u6D3B\u52A8\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6D3B\u52A8\u540D\u79F0"}]},x.default.createElement(A.Input,{placeholder:"\u8BF7\u8F93\u5165\u6D3B\u52A8\u540D\u79F0"})),x.default.createElement(A.Form.Item,{name:"dateRange",label:"\u6D3B\u52A8\u65F6\u95F4",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6D3B\u52A8\u65F6\u95F4"}]},x.default.createElement(Do,{style:{width:"100%"}})),x.default.createElement(A.Form.Item,{name:"status",label:"\u6D3B\u52A8\u72B6\u6001",initialValue:xe.ENABLED},x.default.createElement(A.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},lt=Eo;var T=Y(ke()),D=Y(De()),Ge=Y(ze());var Pe={DISABLED:0,ENABLED:1},Ie={DISABLED:0,ENABLED:1},Tt={DIRECTORY:0,MENU:1,BUTTON:2},Wt=[{label:"\u7981\u7528",value:Pe.DISABLED},{label:"\u542F\u7528",value:Pe.ENABLED}],Xt=[{label:"\u7981\u7528",value:Ie.DISABLED},{label:"\u542F\u7528",value:Ie.ENABLED}],tn=[{label:"\u76EE\u5F55",value:Tt.DIRECTORY},{label:"\u83DC\u5355",value:Tt.MENU},{label:"\u6309\u94AE",value:Tt.BUTTON}];var Lo=({dataSource:d,showCreateButton:o=!0,showFilter:l=!0,showStatistics:b=!0,onCreateUser:k,onEditUser:_,onDeleteUser:$,onToggleStatus:ee,style:re,className:ie})=>{let[Q,I]=(0,T.useState)(!1),[B,te]=(0,T.useState)([]),[ce,se]=(0,T.useState)(0),[Z,q]=(0,T.useState)(1),[E,be]=(0,T.useState)(10),[u,j]=(0,T.useState)(""),[R,K]=(0,T.useState)(),[ye,N]=(0,T.useState)(!1),[le,oe]=(0,T.useState)(null),[O]=D.Form.useForm(),H=[{id:1,username:"admin",nickName:"\u8D85\u7EA7\u7BA1\u7406\u5458",email:"admin@example.com",phone:"13800138000",status:Pe.ENABLED,createTime:"2024-01-01 10:00:00",loginTime:"2024-04-02 09:30:00",roleIds:[1],roleNames:["\u8D85\u7EA7\u7BA1\u7406\u5458"]},{id:2,username:"operator",nickName:"\u8FD0\u8425\u4EBA\u5458",email:"operator@example.com",phone:"13900139000",status:Pe.ENABLED,createTime:"2024-01-15 14:00:00",loginTime:"2024-04-01 16:20:00",roleIds:[2],roleNames:["\u8FD0\u8425"]},{id:3,username:"viewer",nickName:"\u8BBF\u5BA2\u7528\u6237",email:"viewer@example.com",phone:"13700137000",status:Pe.DISABLED,createTime:"2024-02-01 09:00:00",loginTime:"2024-03-15 10:00:00",roleIds:[3],roleNames:["\u8BBF\u5BA2"]}];(0,T.useEffect)(()=>{G()},[Z,E]);let G=async()=>{I(!0);try{await new Promise(h=>setTimeout(h,500));let p=[...H];u&&(p=p.filter(h=>h.username.toLowerCase().includes(u.toLowerCase())||h.nickName?.toLowerCase().includes(u.toLowerCase()))),R!==void 0&&(p=p.filter(h=>h.status===R)),te(p),se(p.length)}catch(p){console.error("Failed to fetch user list:",p),D.message.error("\u83B7\u53D6\u7528\u6237\u5217\u8868\u5931\u8D25")}finally{I(!1)}},fe=()=>{q(1),G()},he=()=>{j(""),K(void 0),q(1),G()},pe=()=>{oe(null),O.resetFields(),N(!0)},ve=p=>{oe(p),O.setFieldsValue(p),N(!0)},Se=p=>{D.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u7528\u6237\u5417\uFF1F",onOk:()=>{$?.(p),D.message.success("\u5220\u9664\u6210\u529F"),G()}})},Ae=p=>{let h=p.status===Pe.ENABLED?Pe.DISABLED:Pe.ENABLED;ee?.(p.id,h),D.message.success(h===Pe.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),G()},ge=async()=>{try{let p=await O.validateFields();le?(_?.(le.id,p),D.message.success("\u7F16\u8F91\u6210\u529F")):(k?.(p),D.message.success("\u521B\u5EFA\u6210\u529F")),N(!1),G()}catch(p){console.error("Validation failed:",p)}},Oe=p=>{let h={[Pe.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528"},[Pe.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528"}},{color:c,text:C}=h[p]||{color:"default",text:"\u672A\u77E5"};return T.default.createElement(D.Tag,{color:c},C)},Te=[{title:"\u7528\u6237\u4FE1\u606F",key:"userInfo",width:200,render:(p,h)=>T.default.createElement(D.Space,null,T.default.createElement(D.Avatar,{icon:T.default.createElement(Ge.UserOutlined,null),style:{backgroundColor:"#1890ff"}}),T.default.createElement("div",null,T.default.createElement("div",{className:"user-name"},h.nickName||h.username),T.default.createElement("div",{className:"user-username"},"@",h.username)))},{title:"\u90AE\u7BB1",dataIndex:"email",key:"email",width:180},{title:"\u624B\u673A\u53F7",dataIndex:"phone",key:"phone",width:130},{title:"\u89D2\u8272",dataIndex:"roleNames",key:"roleNames",width:150,render:p=>T.default.createElement(D.Space,{wrap:!0},p?.map((h,c)=>T.default.createElement(D.Tag,{key:c,color:"blue"},h)))},{title:"\u72B6\u6001",dataIndex:"status",key:"status",width:80,render:p=>Oe(p)},{title:"\u6700\u540E\u767B\u5F55",dataIndex:"loginTime",key:"loginTime",width:160},{title:"\u64CD\u4F5C",key:"action",width:180,render:(p,h)=>T.default.createElement(D.Space,null,T.default.createElement(D.Button,{type:"link",size:"small",icon:T.default.createElement(Ge.EditOutlined,null),onClick:()=>ve(h)},"\u7F16\u8F91"),T.default.createElement(D.Button,{type:"link",size:"small",onClick:()=>Ae(h)},h.status===Pe.ENABLED?"\u7981\u7528":"\u542F\u7528"),T.default.createElement(D.Button,{type:"link",size:"small",danger:!0,icon:T.default.createElement(Ge.DeleteOutlined,null),onClick:()=>Se(h.id)},"\u5220\u9664"))}],y={totalUsers:H.length,activeUsers:H.filter(p=>p.status===Pe.ENABLED).length,disabledUsers:H.filter(p=>p.status===Pe.DISABLED).length};return T.default.createElement("div",{className:`mall-user-card ${ie||""}`,style:re},T.default.createElement(D.Card,null,b&&T.default.createElement("div",{className:"statistics-section"},T.default.createElement(D.Space,{size:"large"},T.default.createElement("div",{className:"stat-item"},T.default.createElement("div",{className:"stat-value"},y.totalUsers),T.default.createElement("div",{className:"stat-label"},"\u7528\u6237\u603B\u6570")),T.default.createElement(D.Divider,{type:"vertical",style:{height:40}}),T.default.createElement("div",{className:"stat-item"},T.default.createElement("div",{className:"stat-value",style:{color:"#52c41a"}},y.activeUsers),T.default.createElement("div",{className:"stat-label"},"\u6D3B\u8DC3\u7528\u6237")),T.default.createElement(D.Divider,{type:"vertical",style:{height:40}}),T.default.createElement("div",{className:"stat-item"},T.default.createElement("div",{className:"stat-value",style:{color:"#8c8c8c"}},y.disabledUsers),T.default.createElement("div",{className:"stat-label"},"\u5DF2\u7981\u7528")))),l&&T.default.createElement("div",{className:"filter-section"},T.default.createElement(D.Space,{wrap:!0},T.default.createElement(D.Input,{placeholder:"\u7528\u6237\u540D/\u6635\u79F0",value:u,onChange:p=>j(p.target.value),style:{width:200}}),T.default.createElement(D.Select,{placeholder:"\u7528\u6237\u72B6\u6001",value:R,onChange:K,style:{width:120},allowClear:!0},Wt.map(p=>T.default.createElement(D.Select.Option,{key:p.value,value:p.value},p.label))),T.default.createElement(D.Button,{type:"primary",onClick:fe},"\u67E5\u8BE2"),T.default.createElement(D.Button,{onClick:he},"\u91CD\u7F6E"))),o&&T.default.createElement("div",{className:"action-section"},T.default.createElement(D.Button,{type:"primary",icon:T.default.createElement(Ge.PlusOutlined,null),onClick:pe},"\u521B\u5EFA\u7528\u6237")),T.default.createElement(D.Table,{columns:Te,dataSource:B,rowKey:"id",loading:Q,pagination:{current:Z,pageSize:E,total:ce,showSizeChanger:!0,showQuickJumper:!0,showTotal:p=>`\u5171 ${p} \u6761`,onChange:(p,h)=>{q(p),be(h)}}})),T.default.createElement(D.Modal,{title:le?"\u7F16\u8F91\u7528\u6237":"\u521B\u5EFA\u7528\u6237",visible:ye,onOk:ge,onCancel:()=>N(!1),width:500},T.default.createElement(D.Form,{form:O,layout:"vertical"},T.default.createElement(D.Form.Item,{name:"username",label:"\u7528\u6237\u540D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u7528\u6237\u540D"}]},T.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u540D",disabled:!!le})),T.default.createElement(D.Form.Item,{name:"nickName",label:"\u6635\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6635\u79F0"}]},T.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u6635\u79F0"})),T.default.createElement(D.Form.Item,{name:"email",label:"\u90AE\u7BB1",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u90AE\u7BB1"},{type:"email",message:"\u8BF7\u8F93\u5165\u6709\u6548\u7684\u90AE\u7BB1\u5730\u5740"}]},T.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u90AE\u7BB1"})),T.default.createElement(D.Form.Item,{name:"phone",label:"\u624B\u673A\u53F7",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u624B\u673A\u53F7"}]},T.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u624B\u673A\u53F7"})),T.default.createElement(D.Form.Item,{name:"status",label:"\u72B6\u6001",initialValue:Pe.ENABLED},T.default.createElement(D.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},dt=Lo;var P=Y(ke()),L=Y(De()),Je=Y(ze());var Fo=({dataSource:d,showCreateButton:o=!0,showFilter:l=!0,showStatistics:b=!0,showPermissionTree:k=!0,onCreateRole:_,onEditRole:$,onDeleteRole:ee,onToggleStatus:re,style:ie,className:Q})=>{let[I,B]=(0,P.useState)(!1),[te,ce]=(0,P.useState)([]),[se,Z]=(0,P.useState)(0),[q,E]=(0,P.useState)(1),[be,u]=(0,P.useState)(10),[j,R]=(0,P.useState)(""),[K,ye]=(0,P.useState)(),[N,le]=(0,P.useState)(!1),[oe,O]=(0,P.useState)(null),[H]=L.Form.useForm(),G=[{id:1,name:"\u8D85\u7EA7\u7BA1\u7406\u5458",description:"\u62E5\u6709\u6240\u6709\u6743\u9650",adminCount:2,status:Ie.ENABLED,sort:0,createTime:"2024-01-01 10:00:00"},{id:2,name:"\u8FD0\u8425",description:"\u8D1F\u8D23\u5546\u54C1\u548C\u8BA2\u5355\u7BA1\u7406",adminCount:5,status:Ie.ENABLED,sort:1,createTime:"2024-01-15 14:00:00"},{id:3,name:"\u5BA2\u670D",description:"\u8D1F\u8D23\u8BA2\u5355\u5904\u7406\u548C\u5BA2\u6237\u670D\u52A1",adminCount:3,status:Ie.ENABLED,sort:2,createTime:"2024-02-01 09:00:00"},{id:4,name:"\u8BBF\u5BA2",description:"\u53EA\u8BFB\u6743\u9650",adminCount:10,status:Ie.DISABLED,sort:3,createTime:"2024-02-15 11:00:00"}],fe=[{title:"\u5546\u54C1\u7BA1\u7406",key:"product",children:[{title:"\u5546\u54C1\u5217\u8868",key:"product:list"},{title:"\u6DFB\u52A0\u5546\u54C1",key:"product:create"},{title:"\u7F16\u8F91\u5546\u54C1",key:"product:edit"},{title:"\u5220\u9664\u5546\u54C1",key:"product:delete"}]},{title:"\u8BA2\u5355\u7BA1\u7406",key:"order",children:[{title:"\u8BA2\u5355\u5217\u8868",key:"order:list"},{title:"\u8BA2\u5355\u8BE6\u60C5",key:"order:detail"},{title:"\u53D1\u8D27",key:"order:deliver"},{title:"\u5173\u95ED\u8BA2\u5355",key:"order:close"}]},{title:"\u8425\u9500\u7BA1\u7406",key:"marketing",children:[{title:"\u4F18\u60E0\u5238\u7BA1\u7406",key:"marketing:coupon"},{title:"\u4FC3\u9500\u6D3B\u52A8",key:"marketing:promotion"}]},{title:"\u6743\u9650\u7BA1\u7406",key:"permission",children:[{title:"\u7528\u6237\u7BA1\u7406",key:"permission:user"},{title:"\u89D2\u8272\u7BA1\u7406",key:"permission:role"}]}];(0,P.useEffect)(()=>{he()},[q,be]);let he=async()=>{B(!0);try{await new Promise(C=>setTimeout(C,500));let c=[...G];j&&(c=c.filter(C=>C.name.toLowerCase().includes(j.toLowerCase())||C.description?.toLowerCase().includes(j.toLowerCase()))),K!==void 0&&(c=c.filter(C=>C.status===K)),ce(c),Z(c.length)}catch(c){console.error("Failed to fetch role list:",c),L.message.error("\u83B7\u53D6\u89D2\u8272\u5217\u8868\u5931\u8D25")}finally{B(!1)}},pe=()=>{E(1),he()},ve=()=>{R(""),ye(void 0),E(1),he()},Se=()=>{O(null),H.resetFields(),le(!0)},Ae=c=>{O(c),H.setFieldsValue(c),le(!0)},ge=c=>{L.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u89D2\u8272\u5417\uFF1F",onOk:()=>{ee?.(c),L.message.success("\u5220\u9664\u6210\u529F"),he()}})},Oe=c=>{let C=c.status===Ie.ENABLED?Ie.DISABLED:Ie.ENABLED;re?.(c.id,C),L.message.success(C===Ie.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),he()},Te=async()=>{try{let c=await H.validateFields();oe?($?.(oe.id,c),L.message.success("\u7F16\u8F91\u6210\u529F")):(_?.(c),L.message.success("\u521B\u5EFA\u6210\u529F")),le(!1),he()}catch(c){console.error("Validation failed:",c)}},y=c=>{let C={[Ie.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528"},[Ie.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528"}},{color:z,text:g}=C[c]||{color:"default",text:"\u672A\u77E5"};return P.default.createElement(L.Tag,{color:z},g)},p=[{title:"\u89D2\u8272\u540D\u79F0",dataIndex:"name",key:"name",width:150,render:c=>P.default.createElement(L.Space,null,P.default.createElement(Je.TeamOutlined,{style:{color:"#1890ff"}}),P.default.createElement("span",{className:"role-name"},c))},{title:"\u63CF\u8FF0",dataIndex:"description",key:"description",width:200},{title:"\u7528\u6237\u6570",dataIndex:"adminCount",key:"adminCount",width:80,render:c=>P.default.createElement(L.Tag,{color:"blue"},c," \u4EBA")},{title:"\u72B6\u6001",dataIndex:"status",key:"status",width:80,render:c=>y(c)},{title:"\u6392\u5E8F",dataIndex:"sort",key:"sort",width:60},{title:"\u521B\u5EFA\u65F6\u95F4",dataIndex:"createTime",key:"createTime",width:160},{title:"\u64CD\u4F5C",key:"action",width:180,render:(c,C)=>P.default.createElement(L.Space,null,P.default.createElement(L.Button,{type:"link",size:"small",icon:P.default.createElement(Je.EditOutlined,null),onClick:()=>Ae(C)},"\u7F16\u8F91"),P.default.createElement(L.Button,{type:"link",size:"small",onClick:()=>Oe(C)},C.status===Ie.ENABLED?"\u7981\u7528":"\u542F\u7528"),P.default.createElement(L.Button,{type:"link",size:"small",danger:!0,icon:P.default.createElement(Je.DeleteOutlined,null),onClick:()=>ge(C.id)},"\u5220\u9664"))}],h={totalRoles:G.length,activeRoles:G.filter(c=>c.status===Ie.ENABLED).length,totalAdmins:G.reduce((c,C)=>c+C.adminCount,0)};return P.default.createElement("div",{className:`mall-role-card ${Q||""}`,style:ie},P.default.createElement(L.Card,null,b&&P.default.createElement("div",{className:"statistics-section"},P.default.createElement(L.Space,{size:"large"},P.default.createElement("div",{className:"stat-item"},P.default.createElement("div",{className:"stat-value"},h.totalRoles),P.default.createElement("div",{className:"stat-label"},"\u89D2\u8272\u603B\u6570")),P.default.createElement(L.Divider,{type:"vertical",style:{height:40}}),P.default.createElement("div",{className:"stat-item"},P.default.createElement("div",{className:"stat-value",style:{color:"#52c41a"}},h.activeRoles),P.default.createElement("div",{className:"stat-label"},"\u542F\u7528\u89D2\u8272")),P.default.createElement(L.Divider,{type:"vertical",style:{height:40}}),P.default.createElement("div",{className:"stat-item"},P.default.createElement("div",{className:"stat-value",style:{color:"#1890ff"}},h.totalAdmins),P.default.createElement("div",{className:"stat-label"},"\u7528\u6237\u603B\u6570")))),l&&P.default.createElement("div",{className:"filter-section"},P.default.createElement(L.Space,{wrap:!0},P.default.createElement(L.Input,{placeholder:"\u89D2\u8272\u540D\u79F0/\u63CF\u8FF0",value:j,onChange:c=>R(c.target.value),style:{width:200}}),P.default.createElement(L.Select,{placeholder:"\u89D2\u8272\u72B6\u6001",value:K,onChange:ye,style:{width:120},allowClear:!0},Xt.map(c=>P.default.createElement(L.Select.Option,{key:c.value,value:c.value},c.label))),P.default.createElement(L.Button,{type:"primary",onClick:pe},"\u67E5\u8BE2"),P.default.createElement(L.Button,{onClick:ve},"\u91CD\u7F6E"))),o&&P.default.createElement("div",{className:"action-section"},P.default.createElement(L.Button,{type:"primary",icon:P.default.createElement(Je.PlusOutlined,null),onClick:Se},"\u521B\u5EFA\u89D2\u8272")),P.default.createElement("div",{className:"content-section"},P.default.createElement("div",{className:"table-section"},P.default.createElement(L.Table,{columns:p,dataSource:te,rowKey:"id",loading:I,pagination:{current:q,pageSize:be,total:se,showSizeChanger:!0,showQuickJumper:!0,showTotal:c=>`\u5171 ${c} \u6761`,onChange:(c,C)=>{E(c),u(C)}}})),k&&P.default.createElement("div",{className:"permission-section"},P.default.createElement(L.Card,{title:"\u6743\u9650\u6811",size:"small"},P.default.createElement(L.Tree,{checkable:!0,defaultExpandedKeys:["product","order"],treeData:fe}))))),P.default.createElement(L.Modal,{title:oe?"\u7F16\u8F91\u89D2\u8272":"\u521B\u5EFA\u89D2\u8272",visible:N,onOk:Te,onCancel:()=>le(!1),width:500},P.default.createElement(L.Form,{form:H,layout:"vertical"},P.default.createElement(L.Form.Item,{name:"name",label:"\u89D2\u8272\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0"}]},P.default.createElement(L.Input,{placeholder:"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0"})),P.default.createElement(L.Form.Item,{name:"description",label:"\u63CF\u8FF0"},P.default.createElement(L.Input.TextArea,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u89D2\u8272\u63CF\u8FF0"})),P.default.createElement(L.Form.Item,{name:"sort",label:"\u6392\u5E8F",initialValue:0},P.default.createElement(L.Input,{type:"number",placeholder:"\u6392\u5E8F\u503C"})),P.default.createElement(L.Form.Item,{name:"status",label:"\u72B6\u6001",initialValue:Ie.ENABLED},P.default.createElement(L.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},mt=Fo;var V=Y(ke());var ae=Y(ke()),kt=Y(De()),J=Y(ze()),{SubMenu:yn}=kt.Menu,wt=[{key:"dashboard",label:"\u5DE5\u4F5C\u53F0",icon:ae.default.createElement(J.DashboardOutlined,null),path:"/dashboard"},{key:"permission",label:"\u6743\u9650\u7BA1\u7406",icon:ae.default.createElement(J.SafetyCertificateOutlined,null),children:[{key:"permission/users",label:"\u7528\u6237\u7BA1\u7406",icon:ae.default.createElement(J.UserOutlined,null),path:"/permission/users"},{key:"permission/roles",label:"\u89D2\u8272\u7BA1\u7406",icon:ae.default.createElement(J.TeamOutlined,null),path:"/permission/roles"},{key:"permission/resources",label:"\u8D44\u6E90\u7BA1\u7406",icon:ae.default.createElement(J.SettingOutlined,null),path:"/permission/resources"},{key:"permission/menus",label:"\u83DC\u5355\u7BA1\u7406",icon:ae.default.createElement(J.FileTextOutlined,null),path:"/permission/menus"}]},{key:"product",label:"\u5546\u54C1\u7BA1\u7406",icon:ae.default.createElement(J.ShoppingOutlined,null),children:[{key:"product/list",label:"\u5546\u54C1\u5217\u8868",icon:ae.default.createElement(J.InboxOutlined,null),path:"/product/list"},{key:"product/add",label:"\u6DFB\u52A0\u5546\u54C1",icon:ae.default.createElement(J.ShoppingOutlined,null),path:"/product/add"},{key:"product/category",label:"\u5546\u54C1\u5206\u7C7B",icon:ae.default.createElement(J.TagsOutlined,null),path:"/product/category"},{key:"product/brand",label:"\u54C1\u724C\u7BA1\u7406",path:"/product/brand"},{key:"product/attribute",label:"\u5546\u54C1\u5C5E\u6027",path:"/product/attribute"}]},{key:"order",label:"\u8BA2\u5355\u7BA1\u7406",icon:ae.default.createElement(J.FileTextOutlined,null),children:[{key:"order/list",label:"\u8BA2\u5355\u5217\u8868",icon:ae.default.createElement(J.FileTextOutlined,null),path:"/order/list"},{key:"order/setting",label:"\u8BA2\u5355\u8BBE\u7F6E",icon:ae.default.createElement(J.SettingOutlined,null),path:"/order/setting"},{key:"order/return",label:"\u9000\u8D27\u7533\u8BF7",path:"/order/return"},{key:"order/reason",label:"\u9000\u8D27\u539F\u56E0",path:"/order/reason"}]},{key:"marketing",label:"\u8425\u9500\u7BA1\u7406",icon:ae.default.createElement(J.GiftOutlined,null),children:[{key:"marketing/coupon",label:"\u4F18\u60E0\u5238\u7BA1\u7406",icon:ae.default.createElement(J.GiftOutlined,null),path:"/marketing/coupon"},{key:"marketing/promotion",label:"\u4FC3\u9500\u6D3B\u52A8",icon:ae.default.createElement(J.DollarOutlined,null),path:"/marketing/promotion"},{key:"marketing/flash",label:"\u79D2\u6740\u6D3B\u52A8",icon:ae.default.createElement(J.ThunderboltOutlined,null),path:"/marketing/flash"},{key:"marketing/new",label:"\u65B0\u54C1\u63A8\u8350",icon:ae.default.createElement(J.FireOutlined,null),path:"/marketing/new"},{key:"marketing/hot",label:"\u4EBA\u6C14\u63A8\u8350",icon:ae.default.createElement(J.FireOutlined,null),path:"/marketing/hot"},{key:"marketing/advertise",label:"\u5E7F\u544A\u7BA1\u7406",path:"/marketing/advertise"},{key:"marketing/subject",label:"\u4E13\u9898\u7BA1\u7406",path:"/marketing/subject"},{key:"marketing/brand",label:"\u54C1\u724C\u63A8\u8350",path:"/marketing/brand"}]}],Uo=({collapsed:d,selectedKey:o,openKeys:l,onMenuClick:b,onOpenChange:k,menuItems:_})=>{let $=_||wt,[ee,re]=(0,ae.useState)($.filter(I=>I.children).map(I=>I.key)),ie=I=>{let B=I[I.length-1];B&&$.some(te=>te.key===B)?(re(I),k(I)):(re(B?[B]:[]),k(B?[B]:[]))},Q=({key:I})=>{b(I)};return ae.default.createElement("div",{className:`sidebar-container ${d?"collapsed":""}`},ae.default.createElement("div",{className:"sidebar-logo"},!d&&ae.default.createElement("span",{className:"logo-text"},"Mall Admin"),d&&ae.default.createElement("span",{className:"logo-icon"},"M")),ae.default.createElement(kt.Menu,{mode:"inline",theme:"dark",inlineCollapsed:d,selectedKeys:[o],defaultOpenKeys:ee,openKeys:l.length>0?l:ee,onClick:Q,onOpenChange:ie,items:$.map(I=>I.children&&I.children.length>0?{key:I.key,icon:I.icon,label:I.label,children:I.children.map(B=>({key:B.key,icon:B.icon,label:B.label}))}:{key:I.key,icon:I.icon,label:I.label})}))},Zt=Uo;var Ce=Y(ke()),Qe=Y(De()),Be=Y(ze());var ut=Y(ke()),Pt=Y(De()),Mo={dashboard:"\u5DE5\u4F5C\u53F0",permission:"\u6743\u9650\u7BA1\u7406",product:"\u5546\u54C1\u7BA1\u7406",order:"\u8BA2\u5355\u7BA1\u7406",marketing:"\u8425\u9500\u7BA1\u7406",users:"\u7528\u6237\u7BA1\u7406",roles:"\u89D2\u8272\u7BA1\u7406",resources:"\u8D44\u6E90\u7BA1\u7406",menus:"\u83DC\u5355\u7BA1\u7406",list:"\u5217\u8868",add:"\u6DFB\u52A0",category:"\u5206\u7C7B",brand:"\u54C1\u724C",attribute:"\u5C5E\u6027",setting:"\u8BBE\u7F6E",return:"\u9000\u8D27",reason:"\u539F\u56E0",coupon:"\u4F18\u60E0\u5238",promotion:"\u4FC3\u9500",flash:"\u79D2\u6740",new:"\u65B0\u54C1",hot:"\u4EBA\u6C14",advertise:"\u5E7F\u544A",subject:"\u4E13\u9898"},Bo=({items:d,onNavigate:o})=>{let l=b=>b.split("/").map(_=>Mo[_]||_).join(" / ");return!d||d.length===0?null:ut.default.createElement(Pt.Breadcrumb,null,d.map(b=>ut.default.createElement(Pt.Breadcrumb.Item,{key:b.key},ut.default.createElement("a",{onClick:()=>o(b.key)},b.label||l(b.key)))))},Rt=Bo;var zo=({collapsed:d,onToggleCollapse:o,breadcrumbItems:l,onNavigate:b})=>Ce.default.createElement("div",{className:"navbar-container"},Ce.default.createElement("div",{className:"navbar-left"},Ce.default.createElement("button",{className:"hamburger-btn",onClick:o},d?Ce.default.createElement(Be.MenuUnfoldOutlined,null):Ce.default.createElement(Be.MenuFoldOutlined,null)),Ce.default.createElement(Rt,{items:l,onNavigate:b})),Ce.default.createElement("div",{className:"navbar-right"},Ce.default.createElement(Qe.Dropdown,{overlay:Ce.default.createElement(Qe.Menu,{items:[{key:"profile",icon:Ce.default.createElement(Be.UserOutlined,null),label:"\u4E2A\u4EBA\u4E2D\u5FC3"},{key:"settings",icon:Ce.default.createElement(Be.SettingOutlined,null),label:"\u7CFB\u7EDF\u8BBE\u7F6E"},{type:"divider"},{key:"logout",icon:Ce.default.createElement(Be.LogoutOutlined,null),label:"\u9000\u51FA\u767B\u5F55",danger:!0}],onClick:({key:ee})=>{ee==="logout"&&console.log("User logged out")}}),placement:"bottomRight"},Ce.default.createElement("div",{className:"user-info"},Ce.default.createElement(Qe.Avatar,{size:32,icon:Ce.default.createElement(Be.UserOutlined,null),className:"user-avatar"}),Ce.default.createElement(Qe.Space,{size:4,className:"username"},Ce.default.createElement("span",null,"\u7BA1\u7406\u5458")))))),eo=zo;var Xe=Y(ke());var X=Y(ke()),ct=Y(De()),je=Y(ze()),_o=({tabs:d,activeTabKey:o,onTabClick:l,onCloseTab:b,onCloseOther:k,onCloseAll:_,closableTabs:$=!0})=>{let[ee,re]=(0,X.useState)(null),[ie,Q]=(0,X.useState)(!1),[I,B]=(0,X.useState)(""),[te,ce]=(0,X.useState)({x:0,y:0}),se=(0,X.useRef)(null);(0,X.useEffect)(()=>{if(se.current&&o){let u=se.current.querySelector(`[data-tab-key="${o}"]`);u&&u.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}},[o]),(0,X.useEffect)(()=>{let u=()=>Q(!1);if(ie)return document.addEventListener("click",u),()=>document.removeEventListener("click",u)},[ie]);let Z=(u,j)=>{u.preventDefault(),u.stopPropagation(),B(j),ce({x:u.clientX,y:u.clientY}),Q(!0)},q=u=>{switch(Q(!1),u){case"close":b(I);break;case"closeOther":k(I);break;case"closeAll":_();break;case"refresh":window.location.reload();break}};if(!d||d.length===0)return null;let E=[{key:"refresh",icon:X.default.createElement(je.ReloadOutlined,null),label:"\u5237\u65B0\u5F53\u524D\u9875"},{key:"close",icon:X.default.createElement(je.CloseOutlined,null),label:"\u5173\u95ED\u5F53\u524D",disabled:!$||d.find(u=>u.key===I)?.closable===!1},{type:"divider"},{key:"closeOther",icon:X.default.createElement(je.CloseCircleOutlined,null),label:"\u5173\u95ED\u5176\u4ED6",disabled:d.length<=1},{key:"closeAll",icon:X.default.createElement(je.CloseCircleOutlined,null),label:"\u5173\u95ED\u6240\u6709"}],be=X.default.createElement(ct.Menu,{items:E,onClick:({key:u})=>q(u)});return X.default.createElement(X.default.Fragment,null,X.default.createElement("div",{className:"tab-bar-container"},X.default.createElement("div",{className:"tab-bar-scroll",ref:se},d.map(u=>X.default.createElement("div",{key:u.key,"data-tab-key":u.key,className:`tab-item ${o===u.key?"active":""} ${ee===u.key?"hovered":""}`,onClick:()=>l(u.key),onMouseEnter:()=>re(u.key),onMouseLeave:()=>re(null),onContextMenu:j=>Z(j,u.key)},u.icon&&X.default.createElement("span",{className:"tab-icon"},u.icon),X.default.createElement("span",{className:"tab-label"},u.label),$&&u.closable&&X.default.createElement("span",{className:`tab-close-btn ${ee===u.key||o===u.key?"visible":""}`,onClick:j=>{j.stopPropagation(),b(u.key)}},X.default.createElement(je.CloseOutlined,{style:{fontSize:10}}))))),$&&d.length>1&&X.default.createElement("div",{className:"tab-actions"},X.default.createElement("button",{className:"close-all-btn",onClick:_,title:"\u5173\u95ED\u5168\u90E8\u6807\u7B7E"},X.default.createElement(je.CloseCircleOutlined,null)))),ie&&X.default.createElement("div",{style:{position:"fixed",left:te.x,top:te.y,zIndex:1e3}},X.default.createElement(ct.Dropdown,{overlay:be,visible:ie,onVisibleChange:Q,trigger:["click"]},X.default.createElement("div",{style:{width:0,height:0}}))))},to=_o;var Yo=({children:d,pageKey:o,tabs:l,activeTabKey:b,onTabClick:k,onCloseTab:_,onCloseOther:$,onCloseAll:ee,enableTabs:re=!0,closableTabs:ie=!0,className:Q=""})=>Xe.default.createElement("main",{className:`main-content ${Q}`},re&&l.length>0&&Xe.default.createElement(to,{tabs:l,activeTabKey:b,onTabClick:k,onCloseTab:_,onCloseOther:$,onCloseAll:ee,closableTabs:ie}),Xe.default.createElement("div",{className:"content-wrapper"},Xe.default.createElement("div",{className:"page-container",key:o},d))),oo=Yo;var Vo="general",It=()=>{try{let d=window.AliLowCodeEngine;if(!d?.project)return;let o=d.project.exportSchema("save"),l=`${Vo}:projectSchema`;localStorage.setItem(l,JSON.stringify(o)),console.log("[AdminLayout] \u{1F4BE} Schema saved to localStorage")}catch(d){console.error("[AdminLayout] Failed to save schema:",d)}},Re=(d,o)=>{for(let l of d){if(l.key===o)return l;if(l.children){let b=Re(l.children,o);if(b)return b}}},Ze=d=>{let o=d.split("/");return{dashboard:"\u5DE5\u4F5C\u53F0",permission:"\u6743\u9650\u7BA1\u7406",product:"\u5546\u54C1\u7BA1\u7406",order:"\u8BA2\u5355\u7BA1\u7406",marketing:"\u8425\u9500\u7BA1\u7406",users:"\u7528\u6237\u7BA1\u7406",roles:"\u89D2\u8272\u7BA1\u7406",resources:"\u8D44\u6E90\u7BA1\u7406",menus:"\u83DC\u5355\u7BA1\u7406",list:"\u5217\u8868",add:"\u6DFB\u52A0",category:"\u5206\u7C7B",brand:"\u54C1\u724C",attribute:"\u5C5E\u6027",setting:"\u8BBE\u7F6E",return:"\u9000\u8D27\u7533\u8BF7",reason:"\u9000\u8D27\u539F\u56E0",coupon:"\u4F18\u60E0\u5238\u7BA1\u7406",promotion:"\u4FC3\u9500\u6D3B\u52A8",flash:"\u79D2\u6740\u6D3B\u52A8",new:"\u65B0\u54C1\u63A8\u8350",hot:"\u4EBA\u6C14\u63A8\u8350",advertise:"\u5E7F\u544A\u7BA1\u7406",subject:"\u4E13\u9898\u7BA1\u7406"}[o[o.length-1]]||o[o.length-1]},jo=({defaultSelectedKey:d="dashboard",defaultOpenKeys:o,collapsible:l=!0,enableTabs:b=!0,maxTabs:k=10,closableTabs:_=!0,logoText:$="Mall Admin",menuItems:ee,style:re,className:ie,children:Q,__designMode:I,componentId:B})=>{let te=ee||wt,[ce,se]=(0,V.useState)(!1),[Z,q]=(0,V.useState)(d),[E,be]=(0,V.useState)(o||[]),[u,j]=(0,V.useState)(()=>{if(I!=="design"&&Q){let h=V.Children.toArray(Q).map(c=>{let C=c?.props,z=C?.tabKey||"unknown",g=C?.tab||Ze(z),M=Re(te,z);return{key:z,label:g,icon:M?.icon,closable:z!=="dashboard",path:M?.path||`/${z}`}});if(h.length>0)return console.log("[AdminLayout] Preview mode: initialized tabs from children:",h.map(c=>c.key)),h}let y=Re(te,d);return[{key:d,label:y?.label||Ze(d),icon:y?.icon,closable:!1,path:y?.path||`/${d}`}]}),[R,K]=(0,V.useState)(d),ye=(0,V.useRef)(R);ye.current=R;let N=(0,V.useRef)(!1);(0,V.useEffect)(()=>{if(I!=="design"||!B||N.current)return;let y=setTimeout(()=>{try{let p=window.AliLowCodeEngine;if(!p?.project?.currentDocument)return;let h=p.project.currentDocument,c=h.getNodeById(B);if(!c){console.log("[AdminLayout] \u26A0\uFE0F AdminLayout node not found");return}let C=c.schema?.children||[];console.log("[AdminLayout] \u{1F50D} Schema children:",C.length,C.map(g=>g.componentName));let z=C.filter(g=>g.componentName==="TabPane");if(console.log("[AdminLayout] \u{1F50D} Found existing TabPanes:",z.length),z.length>0){let g=z.map(m=>{let e=m.props?.tabKey||"unknown",v=m.props?.tab||Ze(e),W=Re(te,e);return console.log("[AdminLayout] \u{1F4CB} Restoring tab:",e,v),{key:e,label:v,icon:W?.icon,closable:e!=="dashboard",path:W?.path||`/${e}`}});console.log("[AdminLayout] \u{1F4CB} Restored tabs from schema:",g.map(m=>m.key)),j(g);let M=g[g.length-1];M&&(K(M.key),q(M.key))}else{console.log("[AdminLayout] \u{1F4CB} No TabPane found, creating default dashboard TabPane");let g=h.createNode({componentName:"TabPane",props:{tab:"\u5DE5\u4F5C\u53F0",tabKey:"dashboard",activeTabKey:"dashboard"}});g&&(h.insertNode(c,g),console.log("[AdminLayout] \u2705 Created default TabPane for dashboard"))}N.current=!0}catch(p){console.error("[AdminLayout] Init TabPane error:",p)}},100);return()=>clearTimeout(y)},[B,I,te]),(0,V.useEffect)(()=>{if(I!=="design")return;let y=window.AliLowCodeEngine;if(!y?.project?.currentDocument)return;let p=y.project.currentDocument,h=null,c=()=>{h&&clearTimeout(h),h=setTimeout(()=>{It()},500)},C=p.onAddNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onAddNode triggered"),c()}),z=p.onRemoveNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onRemoveNode triggered"),c()}),g=p.onMountNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onMountNode triggered"),c()});return()=>{h&&clearTimeout(h),C?.(),z?.(),g?.()}},[I]),(0,V.useEffect)(()=>{if(!(I!=="design"||!B))try{let y=window.AliLowCodeEngine;if(!y?.project?.currentDocument)return;let h=y.project.currentDocument.getNodeById(B);h?.children&&(Array.isArray(h.children)?h.children:h.children.toArray?h.children.toArray():[]).forEach(C=>{C.componentName==="TabPane"&&C.setPropValue("activeTabKey",R)})}catch{}},[R,B,I]);let le=(0,V.useCallback)(()=>{l&&se(y=>!y)},[l]),oe=(0,V.useCallback)((y,p)=>{if(typeof window>"u")return!1;try{let h=window.AliLowCodeEngine;if(!h?.project?.currentDocument)return!1;let c=h.project.currentDocument,C=B?c.getNodeById(B):null;if(!C)return!1;let z=Array.isArray(C.children)?C.children:C.children?.toArray?C.children.toArray():[];console.log("[AdminLayout] \u{1F50D} All children before create:",z.map(M=>({id:M.id,name:M.componentName,tabKey:M.props?.tabKey})));for(let M of z){let m=M.props?.tabKey||M.getPropValue?.("tabKey");if(M.componentName==="TabPane"&&m===y){if(console.log("[AdminLayout] \u26A0\uFE0F Found existing TabPane, removing first:",M.id),M.children){let e=Array.isArray(M.children)?[...M.children]:M.children.toArray?[...M.children.toArray()]:[];console.log("[AdminLayout] \u{1F5D1}\uFE0F Removing",e.length,"children from existing TabPane");for(let v of e)try{c.removeNode(v)}catch{}}c.removeNode(M);break}}let g=c.createNode({componentName:"TabPane",props:{tab:p,tabKey:y,activeTabKey:ye.current}});return g?(c.insertNode(C,g),console.log("[AdminLayout] \u2705 Created new TabPane:",y,"nodeId:",g.id),setTimeout(()=>It(),100),!0):!1}catch(h){return console.error("[AdminLayout] createTabPane error:",h),!1}},[B]),O=(0,V.useCallback)(y=>{if(typeof window>"u")return!1;let p=!1;try{let h=window.AliLowCodeEngine;if(!h?.project?.currentDocument)return!1;let c=h.project.currentDocument,C=B?c.getNodeById(B):null;if(console.log("[AdminLayout] \u{1F5D1}\uFE0F removeTabPane called:",y),console.log("[AdminLayout] componentId:",B),console.log("[AdminLayout] adminLayoutNode:",C?"found":"NOT FOUND"),console.log("[AdminLayout] adminLayoutNode.id:",C?.id),console.log("[AdminLayout] adminLayoutNode.componentName:",C?.componentName),!C)return!1;let z=[];if(C.children&&(Array.isArray(C.children)?z=C.children:typeof C.children.toArray=="function"?z=C.children.toArray():typeof C.children.map=="function"&&(z=C.children.map(g=>g))),z.length===0&&C.schema?.children){console.log("[AdminLayout] Trying schema.children...");let g=C.schema.children;Array.isArray(g)&&(z=g.map(M=>c.getNodeById(M.id)).filter(Boolean))}if(z.length===0){console.log("[AdminLayout] Trying documentModel.getRoot()...");let g=c.getRoot();console.log("[AdminLayout] Root node:",g?.componentName);let M=(e,v)=>{if(!v)return null;if(e.id===v)return e;if(e.children){let W=Array.isArray(e.children)?e.children:e.children.toArray?e.children.toArray():[];for(let U of W){let ue=M(U,v);if(ue)return ue}}return null},m=M(g,B);m&&m.children&&(z=Array.isArray(m.children)?m.children:m.children.toArray?m.children.toArray():[])}console.log("[AdminLayout] Final children count:",z.length),console.log("[AdminLayout] Children details:",z.map(g=>({id:g?.id,name:g?.componentName,tabKey:g?.props?.tabKey||g?.getPropValue?.("tabKey"),childrenCount:g?.children?Array.isArray(g.children)?g.children.length:g.children.toArray?g.children.toArray().length:0:0}))),z.forEach((g,M)=>{if(console.log(`[AdminLayout] Child[${M}] ${g?.componentName}:`,{id:g?.id,tabKey:g?.props?.tabKey||g?.getPropValue?.("tabKey"),hasChildren:!!g?.children,childrenType:g?.children?Array.isArray(g.children)?"array":typeof g.children.toArray=="function"?"array-like":typeof g.children:"none"}),g?.componentName==="TabPane"&&g?.children){let m=Array.isArray(g.children)?g.children:g.children.toArray?g.children.toArray():[];if(console.log("[AdminLayout] TabPane children:",m.map(e=>({id:e?.id,name:e?.componentName}))),m.length===0){if(console.log("[AdminLayout] Trying alternative methods..."),g.schema?.children&&console.log("[AdminLayout] schema.children:",g.schema.children),typeof g.getChildren=="function"){let e=g.getChildren();console.log("[AdminLayout] getChildren():",e)}g.slots&&console.log("[AdminLayout] slots:",g.slots)}}g?.componentName!=="TabPane"&&console.log("[AdminLayout] \u26A0\uFE0F Found non-TabPane child! This might be a dragged component.")});for(let g of z){if(!g)continue;let M=g.props?.tabKey||g.getPropValue?.("tabKey");if(g.componentName==="TabPane"&&M===y){console.log("[AdminLayout] \u2705 Found TabPane to remove:",g.id);let m=g.schema?.children;if(m&&Array.isArray(m)&&m.length>0){console.log("[AdminLayout] Removing",m.length,"grandchildren from schema.children");for(let e=m.length-1;e>=0;e--){let v=m[e],W=c.getNodeById(v.id);if(W)try{c.removeNode(W),console.log("[AdminLayout] \u2713 Removed grandchild:",W.id,W.componentName)}catch(U){console.warn("[AdminLayout] \u2717 Failed to remove grandchild:",U)}}}else console.log("[AdminLayout] No grandchildren to remove");try{c.removeNode(g),p=!0,console.log("[AdminLayout] \u2705 Removed TabPane node:",y),setTimeout(()=>It(),100)}catch(e){console.error("[AdminLayout] Failed to remove TabPane:",e)}break}}return p||console.warn("[AdminLayout] \u26A0\uFE0F TabPane not found for key:",y),p}catch(h){return console.error("[AdminLayout] removeTabPane error:",h),!1}},[B]),H=(0,V.useCallback)(y=>{if(q(y),!u.find(h=>h.key===y)){let h=Re(te,y),c={key:y,label:h?.label||Ze(y),icon:h?.icon,closable:y!=="dashboard",path:h?.path||`/${y}`};j(C=>{if(C.length>=k){let z=C.filter(g=>g.closable);if(z.length>0)return[...C.filter(g=>g.key!==z[0].key),c]}return[...C,c]}),I==="design"&&setTimeout(()=>oe(y,h?.label||Ze(y)),0)}K(y)},[u,te,k,I,oe]),G=(0,V.useCallback)(y=>be(y),[]),fe=(0,V.useCallback)(y=>{q(y),K(y)},[]),he=(0,V.useCallback)(y=>{q(y),K(y)},[]),pe=(0,V.useCallback)(y=>{if(y!=="dashboard"&&(O(y),j(p=>p.filter(h=>h.key!==y)),y===R)){let p=u.filter(h=>h.key!==y);if(p.length>0){let h=u.findIndex(C=>C.key===y),c=p[h]||p[p.length-1];q(c.key),K(c.key)}}},[u,R,O]),ve=(0,V.useCallback)(y=>{u.forEach(p=>{p.key!==y&&p.key!=="dashboard"&&O(p.key)}),j(p=>p.filter(h=>h.key===y||h.key==="dashboard")),q(y),K(y)},[u,O]),Se=(0,V.useCallback)(()=>{u.forEach(p=>{p.key!=="dashboard"&&O(p.key)});let y=u.find(p=>p.key==="dashboard");y&&(j([y]),q("dashboard"),K("dashboard"))},[u,O]),Ae=(0,V.useMemo)(()=>Z==="dashboard"?[]:Z.split("/").length===1?[{key:Z,label:"",path:Z}]:[{key:Z,label:"",path:Z}],[Z]),Te=(0,V.useMemo)(()=>Q||null,[Q,I])||V.default.createElement("div",{style:{padding:24,color:"#999"}},"\u70B9\u51FB\u4FA7\u8FB9\u680F\u83DC\u5355\u521B\u5EFA\u9009\u9879\u5361\uFF0C\u7136\u540E\u62D6\u62FD\u7EC4\u4EF6\u5230\u5BF9\u5E94\u9762\u677F");return V.default.createElement("div",{className:`admin-layout ${ce?"is-collapse":""} ${ie||""}`,style:re,"data-active-tab":R},V.default.createElement(Zt,{collapsed:ce,selectedKey:Z,openKeys:E,onMenuClick:H,onOpenChange:G,menuItems:te}),V.default.createElement("div",{className:"layout-right"},V.default.createElement(eo,{collapsed:ce,onToggleCollapse:le,breadcrumbItems:Ae,onNavigate:fe}),V.default.createElement(oo,{pageKey:Z,tabs:u,activeTabKey:R,onTabClick:he,onCloseTab:pe,onCloseOther:ve,onCloseAll:Se,enableTabs:b,closableTabs:_,className:ce?"collapsed":""},Te)),l&&V.default.createElement("div",{className:`mobile-overlay ${ce?"":"visible"}`,onClick:le}))},pt=jo;var ro=Y(ke()),Ko=({tab:d,tabKey:o,activeTabKey:l,children:b,className:k,style:_})=>{let $=l===o;return ro.default.createElement("div",{className:`tab-pane ${$?"tab-pane--active":""} ${k||""}`,style:{..._,display:$?void 0:"none"},"data-tab-key":o,"data-active":$?"true":"false"},b)},gt=Ko;var $o={ProductList:Ct,ProductForm:xt,OrderList:at,OrderForm:it,CouponCard:st,PromotionCard:lt,UserCard:dt,RoleCard:mt,AdminLayout:pt,TabPane:gt},qo=$o;return To(Go);})();
2
2
 
3
3
  MallComponents = MallComponents.default || MallComponents;
4
4
  if (typeof window !== 'undefined') {
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"mall-components","version":"1.0.2","description":"电商低代码物料库 - 基于 antd 的商城组件集合","main":"src/index.ts","module":"src/index.ts","types":"src/index.ts","files":["src","build"],"scripts":{"dev":"node scripts/build.js --watch","build":"node scripts/build.js","lint":"eslint 'src/**/*.{ts,tsx}'","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","format":"prettier --write 'src/**/*.{ts,tsx,json,css}'","typecheck":"tsc --noEmit"},"author":"JenusDong","license":"MIT","keywords":["lowcode","antd","ecommerce","react-components","mall"],"peerDependencies":{"react":"^16.14.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.14.0 || ^17.0.0 || ^18.0.0","antd":"^4.21.0 || ^4.22.0 || ^4.23.0","@ant-design/icons":"^4.7.0"},"devDependencies":{"@alilc/lowcode-types":"^1.1.1","@types/react":"^18.2.0","@types/react-dom":"^18.2.0","@typescript-eslint/eslint":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.45.0","eslint-plugin-react":"^7.32.0","eslint-plugin-react-hooks":"^4.6.0","esbuild":"^0.19.0","prettier":"^3.0.0","react":"^16.14.0","react-dom":"^16.14.0","antd":"^4.23.0","@ant-design/icons":"^4.7.0","typescript":"^5.0.0","sass":"^1.69.0"}}
1
+ {"name":"mall-components","version":"1.0.4","description":"电商低代码物料库 - 基于 antd 的商城组件集合","main":"src/index.ts","module":"src/index.ts","types":"src/index.ts","files":["src","build"],"scripts":{"dev":"node scripts/build.js --watch","build":"node scripts/build.js","lint":"eslint 'src/**/*.{ts,tsx}'","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","format":"prettier --write 'src/**/*.{ts,tsx,json,css}'","typecheck":"tsc --noEmit"},"author":"JenusDong","license":"MIT","keywords":["lowcode","antd","ecommerce","react-components","mall"],"peerDependencies":{"react":"^16.14.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.14.0 || ^17.0.0 || ^18.0.0","antd":"^4.21.0 || ^4.22.0 || ^4.23.0","@ant-design/icons":"^4.7.0"},"devDependencies":{"@alilc/lowcode-types":"^1.1.1","@types/react":"^18.2.0","@types/react-dom":"^18.2.0","@typescript-eslint/eslint":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.45.0","eslint-plugin-react":"^7.32.0","eslint-plugin-react-hooks":"^4.6.0","esbuild":"^0.19.0","prettier":"^3.0.0","react":"^16.14.0","react-dom":"^16.14.0","antd":"^4.23.0","@ant-design/icons":"^4.7.0","typescript":"^5.0.0","sass":"^1.69.0"}}
@@ -86,6 +86,31 @@ const AdminLayout: React.FC<AdminLayoutProps> = ({
86
86
  const [openKeys, setOpenKeys] = useState<string[]>(defaultOpenKeys || [])
87
87
 
88
88
  const [tabs, setTabs] = useState<TabItem[]>(() => {
89
+ // 在预览模式下,从 children 中提取 tab 信息
90
+ if (__designMode !== 'design' && children) {
91
+ const childArray = Children.toArray(children)
92
+ const tabsFromChildren: TabItem[] = childArray.map((child: any) => {
93
+ const childProps = child?.props as any
94
+ const tabKey = childProps?.tabKey || 'unknown'
95
+ const tabLabel = childProps?.tab || getLabelFromKey(tabKey)
96
+ const menuItem = findMenuItem(items, tabKey)
97
+
98
+ return {
99
+ key: tabKey,
100
+ label: tabLabel,
101
+ icon: menuItem?.icon,
102
+ closable: tabKey !== 'dashboard',
103
+ path: menuItem?.path || `/${tabKey}`,
104
+ }
105
+ })
106
+
107
+ if (tabsFromChildren.length > 0) {
108
+ console.log('[AdminLayout] Preview mode: initialized tabs from children:', tabsFromChildren.map(t => t.key))
109
+ return tabsFromChildren
110
+ }
111
+ }
112
+
113
+ // 默认:只包含初始 tab
89
114
  const initialItem = findMenuItem(items, defaultSelectedKey)
90
115
  return [{
91
116
  key: defaultSelectedKey,
@@ -606,26 +631,19 @@ const AdminLayout: React.FC<AdminLayoutProps> = ({
606
631
  return [{ key: selectedKey, label: '', path: selectedKey }]
607
632
  }, [selectedKey])
608
633
 
609
- // 条件渲染:只渲染 activeTabKey 对应的 TabPane
634
+ // 条件渲染:在设计模式下渲染所有 TabPane,预览模式下只渲染激活的
610
635
  const filteredChildren = useMemo(() => {
611
636
  if (!children) return null
612
637
 
613
- // 在设计模式下,过滤 children 只渲染当前 activeTabKey 的 TabPane
638
+ // 在设计模式下,渲染所有 TabPane(TabPane 内部会处理显隐)
639
+ // 这样用户可以随时选中、删除拖入的组件
614
640
  if (__designMode === 'design') {
615
- const childArray = Children.toArray(children)
616
- const activeTabPane = childArray.find((child) => {
617
- if (isValidElement(child)) {
618
- const childProps = child.props as any
619
- return childProps?.tabKey === activeTabKey
620
- }
621
- return false
622
- })
623
- return activeTabPane || null
641
+ return children
624
642
  }
625
643
 
626
644
  // 预览模式下,渲染所有 children(TabPane 内部会处理显隐)
627
645
  return children
628
- }, [children, activeTabKey, __designMode])
646
+ }, [children, __designMode])
629
647
 
630
648
  const defaultContent = (
631
649
  <div style={{ padding: 24, color: '#999' }}>