mall-components 1.0.5 → 1.0.6

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(z){console.error("Transform function error:",z)}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(z){console.error("[VariableAdapter] dataSource JSON \u89E3\u6790\u5931\u8D25:",z)}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:z,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:G})=>{let[K,ye]=F.default.useState(!1),[N,le]=F.default.useState([]),[te,O]=F.default.useState(0),[H,J]=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 z=="object"?"object":z}),{type:d,api:r||"",method:l,mockData:U,variableName:k||"",dataSource:z}},[d,r,l,p,k,z]);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 z=="object"?"object":z,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=()=>{J(1),Y(),q?.(pe)},_=(U,ue)=>{J(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 ${G||""}`,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:_})))},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:z=!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}))))],G=[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:z?G: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:z,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[G,K]=(0,t.useState)(!1),[ye,N]=(0,t.useState)([]),[le,te]=(0,t.useState)(0),[O,H]=(0,t.useState)(1),[J,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,_]=(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:z}),[d,r,l,p,k,z]),Et=(0,t.useMemo)(()=>_e.create(Dt),[Dt]);(0,t.useEffect)(()=>{Ke()},[O,J,Et]);let Ke=async()=>{K(!0);try{let w={pageNum:O,pageSize:J,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),_(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:_,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:G,pagination:oe?{current:O,pageSize:J,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:z=!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:J,text:fe}=H[O]||{color:"default",text:"\u672A\u77E5"};return a.default.createElement(o.Tag,{color:J},fe)},G=[{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:z?a.default.createElement(o.Table,{columns:G,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:z=!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,G]=(0,f.useState)(10),[K,ye]=(0,f.useState)(""),[N,le]=(0,f.useState)(),[te,O]=(0,f.useState)(),[H,J]=(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(),J(!0)},c=m=>{he(m),pe.setFieldsValue({...m,dateRange:[m.startTime,m.endTime]}),J(!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")),J(!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"))}],_={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"},_.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"},_.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"},_.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"},_.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"))),z&&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),G(e)}}})),f.default.createElement(S.Modal,{title:fe?"\u7F16\u8F91\u4F18\u60E0\u5238":"\u521B\u5EFA\u4F18\u60E0\u5238",visible:H,onOk:g,onCancel:()=>J(!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:z=!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,G]=(0,x.useState)(1),[K,ye]=(0,x.useState)(10),[N,le]=(0,x.useState)(""),[te,O]=(0,x.useState)(),[H,J]=(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=()=>{G(1),ge()},Te=()=>{le(""),O(void 0),G(1),ge()},y=()=>{he(null),pe.resetFields(),J(!0)},c=e=>{he(e),pe.setFieldsValue({...e,dateRange:[e.startDate,e.endDate]}),J(!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")),J(!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"))}],_={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:_.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:_.activePromotions,valueStyle:{color:"#3f8600"}})),x.default.createElement(A.Col,{span:8},x.default.createElement(A.Statistic,{title:"\u5373\u5C06\u5F00\u59CB",value:_.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"))),z&&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)=>{G(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:()=>J(!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:z,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)(""),[G,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)(()=>{J()},[Z,E]);let J=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()))),G!==void 0&&(c=c.filter(h=>h.status===G)),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),J()},he=()=>{j(""),K(void 0),q(1),J()},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"),J()}})},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"),J()},ge=async()=>{try{let c=await O.validateFields();le?(z?.(le.id,c),D.message.success("\u7F16\u8F91\u6210\u529F")):(k?.(c),D.message.success("\u521B\u5EFA\u6210\u529F")),N(!1),J()}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:G,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:z,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,G]=(0,P.useState)(""),[K,ye]=(0,P.useState)(),[N,le]=(0,P.useState)(!1),[te,O]=(0,P.useState)(null),[H]=L.Form.useForm(),J=[{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=[...J];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=()=>{G(""),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")):(z?.(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:J.length,activeRoles:J.filter(g=>g.status===Ie.ENABLED).length,totalAdmins:J.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=>G(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 B=V(ke());var ae=V(ke()),kt=V(De()),Q=V(ze()),{SubMenu:yn}=kt.Menu,wt=[{key:"dashboard",label:"\u5DE5\u4F5C\u53F0",icon:ae.default.createElement(Q.DashboardOutlined,null),path:"/dashboard"},{key:"permission",label:"\u6743\u9650\u7BA1\u7406",icon:ae.default.createElement(Q.SafetyCertificateOutlined,null),children:[{key:"permission/users",label:"\u7528\u6237\u7BA1\u7406",icon:ae.default.createElement(Q.UserOutlined,null),path:"/permission/users"},{key:"permission/roles",label:"\u89D2\u8272\u7BA1\u7406",icon:ae.default.createElement(Q.TeamOutlined,null),path:"/permission/roles"},{key:"permission/resources",label:"\u8D44\u6E90\u7BA1\u7406",icon:ae.default.createElement(Q.SettingOutlined,null),path:"/permission/resources"},{key:"permission/menus",label:"\u83DC\u5355\u7BA1\u7406",icon:ae.default.createElement(Q.FileTextOutlined,null),path:"/permission/menus"}]},{key:"product",label:"\u5546\u54C1\u7BA1\u7406",icon:ae.default.createElement(Q.ShoppingOutlined,null),children:[{key:"product/list",label:"\u5546\u54C1\u5217\u8868",icon:ae.default.createElement(Q.InboxOutlined,null),path:"/product/list"},{key:"product/add",label:"\u6DFB\u52A0\u5546\u54C1",icon:ae.default.createElement(Q.ShoppingOutlined,null),path:"/product/add"},{key:"product/category",label:"\u5546\u54C1\u5206\u7C7B",icon:ae.default.createElement(Q.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(Q.FileTextOutlined,null),children:[{key:"order/list",label:"\u8BA2\u5355\u5217\u8868",icon:ae.default.createElement(Q.FileTextOutlined,null),path:"/order/list"},{key:"order/setting",label:"\u8BA2\u5355\u8BBE\u7F6E",icon:ae.default.createElement(Q.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(Q.GiftOutlined,null),children:[{key:"marketing/coupon",label:"\u4F18\u60E0\u5238\u7BA1\u7406",icon:ae.default.createElement(Q.GiftOutlined,null),path:"/marketing/coupon"},{key:"marketing/promotion",label:"\u4FC3\u9500\u6D3B\u52A8",icon:ae.default.createElement(Q.DollarOutlined,null),path:"/marketing/promotion"},{key:"marketing/flash",label:"\u79D2\u6740\u6D3B\u52A8",icon:ae.default.createElement(Q.ThunderboltOutlined,null),path:"/marketing/flash"},{key:"marketing/new",label:"\u65B0\u54C1\u63A8\u8350",icon:ae.default.createElement(Q.FireOutlined,null),path:"/marketing/new"},{key:"marketing/hot",label:"\u4EBA\u6C14\u63A8\u8350",icon:ae.default.createElement(Q.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:z})=>{let $=z||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(z=>Ur[z]||z).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:z,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":z();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:z,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:z,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:z,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:z=!0,logoText:$="Mall Admin",menuItems:ee,style:re,className:ie,children:R,__designMode:I,componentId:M})=>{let oe=ee||wt,[ce,se]=(0,B.useState)(!1),[Z,q]=(0,B.useState)(d),[E,be]=(0,B.useState)(r||[]),[u,j]=(0,B.useState)(()=>{let y=ct(oe,d);return[{key:d,label:y?.label||ut(d),icon:y?.icon,closable:!1,path:y?.path||`/${d}`}]}),[G,K]=(0,B.useState)(d),ye=(0,B.useRef)(G);ye.current=G;let N=(0,B.useRef)(!1);(0,B.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 _=b[b.length-1];_&&(K(_.key),q(_.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,B.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,B.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",G)})}catch{}},[G,M,I]);let le=(0,B.useCallback)(()=>{l&&se(y=>!y)},[l]),te=(0,B.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(_=>({id:_.id,name:_.componentName,tabKey:_.props?.tabKey})));for(let _ of Y){let m=_.props?.tabKey||_.getPropValue?.("tabKey");if(_.componentName==="TabPane"&&m===y){if(console.log("[AdminLayout] \u26A0\uFE0F Found existing TabPane, removing first:",_.id),_.children){let e=Array.isArray(_.children)?[..._.children]:_.children.toArray?[..._.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(_);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,B.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(_=>g.getNodeById(_.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 _=(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=_(U,v);if(ue)return ue}}return null},m=_(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,_)=>{if(console.log(`[AdminLayout] Child[${_}] ${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 _=b.props?.tabKey||b.getPropValue?.("tabKey");if(b.componentName==="TabPane"&&_===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,B.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]),J=(0,B.useCallback)(y=>be(y),[]),fe=(0,B.useCallback)(y=>{q(y),K(y)},[]),he=(0,B.useCallback)(y=>{q(y),K(y)},[]),pe=(0,B.useCallback)(y=>{if(y!=="dashboard"&&(O(y),j(c=>c.filter(h=>h.key!==y)),y===G)){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,G,O]),ve=(0,B.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,B.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,B.useMemo)(()=>Z==="dashboard"?[]:Z.split("/").length===1?[{key:Z,label:"",path:Z}]:[{key:Z,label:"",path:Z}],[Z]),Te=(0,B.useMemo)(()=>R?I==="design"?B.Children.toArray(R).find(h=>(0,B.isValidElement)(h)?h.props?.tabKey===G:!1)||null:B.Children.map(R,y=>(0,B.isValidElement)(y)?(0,B.cloneElement)(y,{activeTabKey:G}):y):null,[R,G,I])||B.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 B.default.createElement("div",{className:`admin-layout ${ce?"is-collapse":""} ${ie||""}`,style:re,"data-active-tab":G},B.default.createElement(Zt,{collapsed:ce,selectedKey:Z,openKeys:E,onMenuClick:H,onOpenChange:J,menuItems:oe}),B.default.createElement("div",{className:"layout-right"},B.default.createElement(er,{collapsed:ce,onToggleCollapse:le,breadcrumbItems:Ae,onNavigate:fe}),B.default.createElement(rr,{pageKey:Z,tabs:u,activeTabKey:G,onTabClick:he,onCloseTab:pe,onCloseOther:ve,onCloseAll:Se,enableTabs:p,closableTabs:z,className:ce?"collapsed":""},Te)),l&&B.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:z})=>{let $=l===r;return or.default.createElement("div",{className:`tab-pane ${$?"tab-pane--active":""} ${k||""}`,style:{...z,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 fr=Object.create;var tt=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)tt(d,l,{get:r[l],enumerable:!0})},zt=(d,r,l,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let k of yr(r))!Cr.call(d,k)&&k!==l&&tt(d,k,{get:()=>r[k],enumerable:!(f=hr(r,k))||f.enumerable});return d};var V=(d,r,l)=>(l=d!=null?fr(vr(d)):{},zt(r||!d||!d.__esModule?tt(l,"default",{value:d,enumerable:!0}):l,d)),Sr=d=>zt(tt({},"__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:()=>gt,CouponCard:()=>lt,OrderForm:()=>st,OrderList:()=>it,ProductForm:()=>xt,ProductList:()=>Ct,PromotionCard:()=>dt,RoleCard:()=>ut,TabPane:()=>Xe,UserCard:()=>mt,default:()=>$r});var Yn=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),f=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(!f.ok)throw new Error(`HTTP error! status: ${f.status}`);let k=await f.json();if(this.config.transform)try{k=new Function("data",this.config.transform)(k)}catch(Y){console.error("Transform function error:",Y)}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(f=>{r[f]!==void 0&&r[f]!==null&&r[f]!==""&&l.searchParams.append(f,r[f])}),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(f=>setTimeout(f,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(f){console.error("[MockDataAdapter] JSON \u89E3\u6790\u5931\u8D25:",f),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(f){console.error("Transform function error:",f)}if(console.log("[MockDataAdapter] \u6700\u7EC8\u8FD4\u56DE\u6570\u636E:",l),r?.pageNum&&r?.pageSize&&l?.data?.list){let f=(r.pageNum-1)*r.pageSize,k=f+r.pageSize;return{...l,data:{...l.data,list:l.data.list.slice(f,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(f=>setTimeout(f,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(Y){console.error("[VariableAdapter] dataSource JSON \u89E3\u6790\u5931\u8D25:",Y)}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 f=window[l];return console.log("[VariableAdapter] \u4ECE window \u83B7\u53D6\u7684\u503C:",f),f==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:f}}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:f,variableName:k,dataSource:Y,showFilter:$=!0,showAction:te=!0,showSelection:oe=!0,showOperation:ie=!0,showStatus:q=!0,showPagination:I=!0,filterFields:z=[],actionButtons:ee=[],columns:ce,batchOperations:se=[],onRowClick:R,onSearch:G,onPageChange:E,onActionClick:be,onBatchOperation:p,style:j,className:J})=>{let[K,ye]=F.default.useState(!1),[N,le]=F.default.useState([]),[re,O]=F.default.useState(0),[W,Q]=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(),g=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 B=f;return B||(B=g),console.log("[ProductList] dataSourceConfig \u91CD\u65B0\u8BA1\u7B97:",{dataSourceType:d,mockData:typeof f=="string"?f.substring(0,100)+"...":f,variableName:k,dataSource:typeof Y=="object"?"object":Y}),{type:d,api:r||"",method:l,mockData:B,variableName:k||"",dataSource:Y}},[d,r,l,f,k,Y]);console.log("[ProductList] \u7EC4\u4EF6\u6E32\u67D3\uFF0Cprops:",{dataSourceType:d,api:r,method:l,mockData:typeof f=="string"?f.substring(0,100)+"...":f,variableName:k,dataSource:typeof Y=="object"?"object":Y,showFilter:$,showAction:te,showSelection:oe});let C=(0,F.useMemo)(()=>(console.log("[ProductList] adapter \u91CD\u65B0\u521B\u5EFA, dataSourceType:",d),_e.create(c)),[c]),_=(0,F.useCallback)(async()=>{console.log("[ProductList] fetchData \u5F00\u59CB\uFF0C\u53C2\u6570:",{currentPage:W,pageSize:fe,searchText:pe}),ye(!0);try{let B={pageNum:W,pageSize:fe,keyword:pe||void 0};console.log("[ProductList] \u8C03\u7528 adapter.fetch\uFF0C\u53C2\u6570:",B);let ue=await C.fetch(B);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(B){console.error("[ProductList] \u83B7\u53D6\u6570\u636E\u5931\u8D25:",B)}finally{ye(!1)}},[W,fe,pe,C]);(0,F.useEffect)(()=>{console.log("[ProductList] useEffect \u89E6\u53D1\uFF0C\u5F00\u59CB\u83B7\u53D6\u6570\u636E, dataSourceType:",d),_()},[_,d]);let b=()=>{Q(1),_(),G?.(pe)},M=(B,ue)=>{Q(B),he(ue),E?.(B,ue)},m=()=>{Te&&ge.length>0&&p?.(Te,ge)},e=[{title:"\u5546\u54C1\u56FE\u7247",dataIndex:"pic",key:"pic",width:100,render:B=>F.default.createElement("img",{src:B,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:B=>`\xA5${B.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:B=>F.default.createElement(me.Switch,{checked:B===1,checkedChildren:"\u4E0A\u67B6",unCheckedChildren:"\u4E0B\u67B6"})}]:[],...ie?[{title:"\u64CD\u4F5C",key:"operation",width:150,render:(B,ue)=>F.default.createElement(me.Space,{size:"small"},F.default.createElement(me.Button,{type:"link",size:"small",onClick:()=>R?.(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=oe?{selectedRowKeys:Se,onChange:(B,ue)=>{Ae(B),Oe(ue)}}:void 0,X=B=>{switch(B){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 ${J||""}`,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:B=>ve(B.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:()=>_()},"\u5237\u65B0"))),te&&F.default.createElement(me.Card,{className:"mall-product-list-action",size:"small"},F.default.createElement(me.Space,null,ee.map((B,ue)=>F.default.createElement(me.Button,{key:ue,type:B.type||"default",icon:X(B.icon),onClick:()=>be?.(B.onClick||"")},B.text)),oe&&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((B,ue)=>F.default.createElement(me.Select.Option,{key:ue,value:B.value},B.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:W,pageSize:fe,total:re,showSizeChanger:!0,showQuickJumper:!0,showTotal:B=>`\u5171 ${B} \u6761`,onChange:M})))},jt=Tr;var Ct=jt;var s=V(ke()),n=V(De());var kr=({initialValues:d,mode:r="create",showBasicInfo:l=!0,showPriceInfo:f=!0,showStockInfo:k=!0,showStatusInfo:Y=!0,showDescription:$=!0,onSubmit:te,onCancel:oe,style:ie,className:q})=>{let[I]=n.Form.useForm(),[z,ee]=(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();te?.(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(),oe?.()},R=()=>{I.resetFields()},G=()=>{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}))))],p=[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}))))],J=[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:f?p:null},{key:"stock",label:"\u5E93\u5B58\u4FE1\u606F",children:k?j:null},{key:"status",label:"\u72B6\u6001\u4FE1\u606F",children:Y?J: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:G(),disabled:E},s.default.createElement(n.Tabs,{activeKey:z,onChange:ee,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:R},"\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},rt=[{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}],nt=[{label:"\u6B63\u5E38\u8BA2\u5355",value:Ve.NORMAL},{label:"\u79D2\u6740\u8BA2\u5355",value:Ve.SECKILL}];var{RangePicker:wr}=i.DatePicker,at={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:f,variableName:k,dataSource:Y,showFilter:$=!0,showStatusFilter:te=!0,showSearch:oe=!0,showDatePicker:ie=!0,showActions:q=!0,showBatchOperations:I=!0,showExport:z=!0,showPagination:ee=!0,defaultPageSize:ce=10,onRowClick:se,onSearch:R,onPageChange:G,onActionClick:E,onBatchOperation:be,style:p,className:j})=>{let[J,K]=(0,t.useState)(!1),[ye,N]=(0,t.useState)([]),[le,re]=(0,t.useState)(0),[O,W]=(0,t.useState)(1),[Q,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,u]=(0,t.useState)(),[g,c]=(0,t.useState)(),[C,_]=(0,t.useState)(),[b,M]=(0,t.useState)(),[m,e]=(0,t.useState)(!1),[v,X]=(0,t.useState)(),[B,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:f?(()=>{try{return typeof f=="string"?JSON.parse(f):f}catch{return at}})():at,variableName:k,dataSource:Y}),[d,r,l,f,k,Y]),Et=(0,t.useMemo)(()=>_e.create(Dt),[Dt]);(0,t.useEffect)(()=>{Ke()},[O,Q,Et]);let Ke=async()=>{K(!0);try{let w={pageNum:O,pageSize:Q,orderSn:he||void 0,status:y,orderType:g,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),re($e)}catch(w){console.error("Failed to fetch order list:",w),i.message.error("\u83B7\u53D6\u8BA2\u5355\u5217\u8868\u5931\u8D25"),N(at.data.list),re(at.data.total)}finally{K(!1)}},Lt=()=>{W(1),Ke(),R?.({orderSn:he||void 0,status:y,orderType:g,sourceType:C,createTime:b?`${b[0]?.format("YYYY-MM-DD")},${b[1]?.format("YYYY-MM-DD")}`:void 0})},ar=()=>{pe(""),u(void 0),c(void 0),_(void 0),M(void 0),W(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=>{X(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()},Bt=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)},Mt=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=>Mt(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=>Bt(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:p},t.default.createElement(i.Card,null,$&&t.default.createElement("div",{className:"filter-section"},t.default.createElement(i.Row,{gutter:[16,16]},oe&&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)})),te&&t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u72B6\u6001",value:y,onChange:u,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\u7C7B\u578B",value:g,onChange:c,style:{width:"100%"},allowClear:!0},nt.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:_,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(wr,{value:b,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: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")),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:sr},"\u5237\u65B0"),z&&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:J,pagination:ee?{current:O,pageSize:Q,total:le,showSizeChanger:!0,showQuickJumper:!0,showTotal:w=>`\u5171 ${w} \u6761`,onChange:(w,de)=>{W(w),fe(de),G?.(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"},Mt(v.payType)),t.default.createElement(i.Descriptions.Item,{label:"\u8BA2\u5355\u72B6\u6001"},Bt(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:B,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"})))))},it=Pr;var a=V(ke()),o=V(De());var{TextArea:qt}=o.Input,Ir=({initialValues:d,mode:r="create",showBasicInfo:l=!0,showReceiverInfo:f=!0,showMoneyInfo:k=!0,showOrderItems:Y=!0,showStatusInfo:$=!0,onSubmit:te,onCancel:oe,style:ie,className:q})=>{let[I]=o.Form.useForm(),[z,ee]=(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(W){console.error("Failed to parse initialValues:",W),O={}}I.setFieldsValue(O),O.orderItemList&&se(O.orderItemList)}},[d,I]);let R=async()=>{try{let O=await I.validateFields();te?.(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")}},G=()=>{I.resetFields(),oe?.()},E=()=>{I.resetFields()},be=()=>{if(typeof d=="string")try{return JSON.parse(d)}catch{return{}}return d||{}},p=r==="view",j=O=>{let W={[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:Q,text:fe}=W[O]||{color:"default",text:"\u672A\u77E5"};return a.default.createElement(o.Tag,{color:Q},fe)},J=[{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,W)=>`\xA5${(W.productPrice*W.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:p}))),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:p})))),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:p},$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:p},ot.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:p},nt.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:p}))),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:p})))),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:p}))),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:p}))),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:p})))),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:p})),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:p}))),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:p}))))],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:p}))),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:p}))),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:p})))),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:p}))),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:p}))),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:p}))))],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:p},rt.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:p},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:p})),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:p}))],re=[{key:"basic",label:"\u57FA\u672C\u4FE1\u606F",children:l?K:null},{key:"receiver",label:"\u6536\u8D27\u4FE1\u606F",children:f?ye:null},{key:"money",label:"\u8D39\u7528\u4FE1\u606F",children:k?N:null},{key:"items",label:"\u5546\u54C1\u4FE1\u606F",children:Y?a.default.createElement(o.Table,{columns:J,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(o.Card,null,a.default.createElement(o.Form,{form:I,layout:"vertical",initialValues:be(),disabled:p},a.default.createElement(o.Tabs,{activeKey:z,onChange:ee,items:re}),a.default.createElement(o.Divider,null),a.default.createElement(o.Form.Item,null,a.default.createElement(o.Space,null,!p&&a.default.createElement(a.default.Fragment,null,a.default.createElement(o.Button,{type:"primary",onClick:R},r==="create"?"\u521B\u5EFA":"\u4FDD\u5B58"),a.default.createElement(o.Button,{onClick:E},"\u91CD\u7F6E")),a.default.createElement(o.Button,{onClick:G},p?"\u5173\u95ED":"\u53D6\u6D88"))))))},st=Ir;var h=V(ke()),S=V(De()),qe=V(ze());var Be={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:Be.FULL_REDUCTION},{label:"\u6298\u6263\u5238",value:Be.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:f,variableName:k,showCreateButton:Y=!0,showFilter:$=!0,showStatistics:te=!0,onCreateCoupon:oe,onEditCoupon:ie,onDeleteCoupon:q,style:I,className:z})=>{let[ee,ce]=(0,h.useState)(!1),[se,R]=(0,h.useState)([]),[G,E]=(0,h.useState)(0),[be,p]=(0,h.useState)(1),[j,J]=(0,h.useState)(10),[K,ye]=(0,h.useState)(""),[N,le]=(0,h.useState)(),[re,O]=(0,h.useState)(),[W,Q]=(0,h.useState)(!1),[fe,he]=(0,h.useState)(null),[pe]=S.Form.useForm(),ve=[{id:1,name:"\u65B0\u7528\u6237\u4E13\u4EAB\u5238",type:Be.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:Be.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:Be.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,h.useMemo)(()=>({type:d,api:r,method:l,mockData:f?(()=>{try{return typeof f=="string"?JSON.parse(f):f}catch{return Qt}})():Qt,variableName:k}),[d,r,l,f,k]),Ae=(0,h.useMemo)(()=>_e.create(Se),[Se]);(0,h.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:re}),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||re!==void 0)&&(e=e.filter(X=>!(K&&!X.name.toLowerCase().includes(K.toLowerCase())||N!==void 0&&X.type!==N||re!==void 0&&X.platform!==re)),v=e.length),R(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"),R(ve),E(ve.length)}finally{ce(!1)}},Oe=()=>{p(1),ge()},Te=()=>{ye(""),le(void 0),O(void 0),p(1),ge()},y=()=>{he(null),pe.resetFields(),Q(!0)},u=m=>{he(m),pe.setFieldsValue({...m,dateRange:[m.startTime,m.endTime]}),Q(!0)},g=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")):(oe?.(e),S.message.success("\u521B\u5EFA\u6210\u529F")),Q(!1),ge()}catch(m){console.error("Validation failed:",m)}},C=m=>{let e={[Be.FULL_REDUCTION]:{color:"red",text:"\u6EE1\u51CF\u5238"},[Be.DISCOUNT]:{color:"blue",text:"\u6298\u6263\u5238"}},{color:v,text:X}=e[m]||{color:"default",text:"\u672A\u77E5"};return h.default.createElement(S.Tag,{color:v},X)},_=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:X}=e[m]||{color:"default",text:"\u672A\u77E5"};return h.default.createElement(S.Tag,{color:v},X)},b=[{title:"\u4F18\u60E0\u5238\u540D\u79F0",dataIndex:"name",key:"name",width:150,render:m=>h.default.createElement(S.Tooltip,{title:m},h.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)=>h.default.createElement("span",null,e.type===Be.FULL_REDUCTION?`\u6EE1${e.minPoint}\u51CF${e.amount}`:`${e.amount}\u6298`)},{title:"\u9002\u7528\u5E73\u53F0",dataIndex:"platform",key:"platform",width:80,render:m=>_(m)},{title:"\u53D1\u884C\u91CF",dataIndex:"count",key:"count",width:80,render:m=>h.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)=>h.default.createElement(S.Space,null,h.default.createElement(qe.ClockCircleOutlined,null),h.default.createElement("span",null,e.startTime," ~ ",e.endTime))},{title:"\u64CD\u4F5C",key:"action",width:150,render:(m,e)=>h.default.createElement(S.Space,null,h.default.createElement(S.Button,{type:"link",size:"small",icon:h.default.createElement(qe.EditOutlined,null),onClick:()=>u(e)},"\u7F16\u8F91"),h.default.createElement(S.Button,{type:"link",size:"small",danger:!0,icon:h.default.createElement(qe.DeleteOutlined,null),onClick:()=>g(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 h.default.createElement("div",{className:`mall-coupon-card ${z||""}`,style:I},h.default.createElement(S.Card,null,te&&h.default.createElement("div",{className:"statistics-section"},h.default.createElement(S.Space,{size:"large"},h.default.createElement("div",{className:"stat-item"},h.default.createElement("div",{className:"stat-value"},M.totalCoupons),h.default.createElement("div",{className:"stat-label"},"\u4F18\u60E0\u5238\u603B\u6570")),h.default.createElement(S.Divider,{type:"vertical",style:{height:40}}),h.default.createElement("div",{className:"stat-item"},h.default.createElement("div",{className:"stat-value"},M.activeCoupons),h.default.createElement("div",{className:"stat-label"},"\u6D3B\u8DC3\u4F18\u60E0\u5238")),h.default.createElement(S.Divider,{type:"vertical",style:{height:40}}),h.default.createElement("div",{className:"stat-item"},h.default.createElement("div",{className:"stat-value"},M.totalReceived),h.default.createElement("div",{className:"stat-label"},"\u5DF2\u9886\u53D6")),h.default.createElement(S.Divider,{type:"vertical",style:{height:40}}),h.default.createElement("div",{className:"stat-item"},h.default.createElement("div",{className:"stat-value"},M.totalUsed),h.default.createElement("div",{className:"stat-label"},"\u5DF2\u4F7F\u7528")))),$&&h.default.createElement("div",{className:"filter-section"},h.default.createElement(S.Space,{wrap:!0},h.default.createElement(S.Input,{placeholder:"\u4F18\u60E0\u5238\u540D\u79F0",value:K,onChange:m=>ye(m.target.value),style:{width:200}}),h.default.createElement(S.Select,{placeholder:"\u4F18\u60E0\u5238\u7C7B\u578B",value:N,onChange:le,style:{width:120},allowClear:!0},Gt.map(m=>h.default.createElement(S.Select.Option,{key:m.value,value:m.value},m.label))),h.default.createElement(S.Select,{placeholder:"\u9002\u7528\u5E73\u53F0",value:re,onChange:O,style:{width:120},allowClear:!0},St.map(m=>h.default.createElement(S.Select.Option,{key:m.value,value:m.value},m.label))),h.default.createElement(S.Button,{type:"primary",onClick:Oe},"\u67E5\u8BE2"),h.default.createElement(S.Button,{onClick:Te},"\u91CD\u7F6E"))),Y&&h.default.createElement("div",{className:"action-section"},h.default.createElement(S.Button,{type:"primary",icon:h.default.createElement(qe.PlusOutlined,null),onClick:y},"\u521B\u5EFA\u4F18\u60E0\u5238")),h.default.createElement(S.Table,{columns:b,dataSource:se,rowKey:"id",loading:ee,pagination:{current:be,pageSize:j,total:G,showSizeChanger:!0,showQuickJumper:!0,showTotal:m=>`\u5171 ${m} \u6761`,onChange:(m,e)=>{p(m),J(e)}}})),h.default.createElement(S.Modal,{title:fe?"\u7F16\u8F91\u4F18\u60E0\u5238":"\u521B\u5EFA\u4F18\u60E0\u5238",visible:W,onOk:c,onCancel:()=>Q(!1),width:600},h.default.createElement(S.Form,{form:pe,layout:"vertical"},h.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"}]},h.default.createElement(S.Input,{placeholder:"\u8BF7\u8F93\u5165\u4F18\u60E0\u5238\u540D\u79F0"})),h.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"}]},h.default.createElement(S.Radio.Group,null,h.default.createElement(S.Radio,{value:Be.FULL_REDUCTION},"\u6EE1\u51CF\u5238"),h.default.createElement(S.Radio,{value:Be.DISCOUNT},"\u6298\u6263\u5238"))),h.default.createElement(S.Form.Item,{name:"amount",label:"\u4F18\u60E0\u989D\u5EA6",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u4F18\u60E0\u989D\u5EA6"}]},h.default.createElement(S.InputNumber,{placeholder:"\u6EE1\u51CF\u91D1\u989D\u6216\u6298\u6263",min:0,style:{width:"100%"}})),h.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"}]},h.default.createElement(S.InputNumber,{placeholder:"\u6700\u4F4E\u6D88\u8D39\u91D1\u989D",min:0,style:{width:"100%"}})),h.default.createElement(S.Form.Item,{name:"platform",label:"\u9002\u7528\u5E73\u53F0",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u9002\u7528\u5E73\u53F0"}]},h.default.createElement(S.Select,{placeholder:"\u8BF7\u9009\u62E9\u9002\u7528\u5E73\u53F0"},St.map(m=>h.default.createElement(S.Select.Option,{key:m.value,value:m.value},m.label)))),h.default.createElement(S.Form.Item,{name:"count",label:"\u53D1\u884C\u6570\u91CF",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u53D1\u884C\u6570\u91CF"}]},h.default.createElement(S.InputNumber,{placeholder:"\u53D1\u884C\u6570\u91CF",min:1,style:{width:"100%"}})),h.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"}]},h.default.createElement(S.InputNumber,{placeholder:"\u6BCF\u4EBA\u9650\u9886\u6570\u91CF",min:1,style:{width:"100%"}})),h.default.createElement(S.Form.Item,{name:"dateRange",label:"\u6709\u6548\u671F",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6709\u6548\u671F"}]},h.default.createElement(Or,{style:{width:"100%"}})),h.default.createElement(S.Form.Item,{name:"note",label:"\u5907\u6CE8"},h.default.createElement(S.Input.TextArea,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u5907\u6CE8"})))))},lt=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:f,variableName:k,showCreateButton:Y=!0,showFilter:$=!0,showStatistics:te=!0,showTimeline:oe=!0,onCreatePromotion:ie,onEditPromotion:q,onDeletePromotion:I,onToggleStatus:z,style:ee,className:ce})=>{let[se,R]=(0,x.useState)(!1),[G,E]=(0,x.useState)([]),[be,p]=(0,x.useState)(0),[j,J]=(0,x.useState)(1),[K,ye]=(0,x.useState)(10),[N,le]=(0,x.useState)(""),[re,O]=(0,x.useState)(),[W,Q]=(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:f?(()=>{try{return typeof f=="string"?JSON.parse(f):f}catch{return Ht}})():Ht,variableName:k}),[d,r,l,f,k]),Ae=(0,x.useMemo)(()=>_e.create(Se),[Se]);(0,x.useEffect)(()=>{ge()},[j,K,Ae]);let ge=async()=>{R(!0);try{let e=await Ae.fetch({pageNum:j,pageSize:K,title:N,status:re}),v=[],X=0;e?.data?.list?(v=e.data.list,X=e.data.total||v.length):Array.isArray(e?.data)?(v=e.data,X=v.length):Array.isArray(e)&&(v=e,X=v.length),(N||re!==void 0)&&(v=v.filter(B=>!(N&&!B.title.toLowerCase().includes(N.toLowerCase())||re!==void 0&&B.status!==re)),X=v.length),E(v),p(X)}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),p(ve.length)}finally{R(!1)}},Oe=()=>{J(1),ge()},Te=()=>{le(""),O(void 0),J(1),ge()},y=()=>{he(null),pe.resetFields(),Q(!0)},u=e=>{he(e),pe.setFieldsValue({...e,dateRange:[e.startDate,e.endDate]}),Q(!0)},g=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;z?.(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")),Q(!1),ge()}catch(e){console.error("Validation failed:",e)}},_=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:X,text:B,icon:ue}=v[e]||{color:"default",text:"\u672A\u77E5",icon:null};return x.default.createElement(A.Tag,{color:X,icon:ue},B)},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=>_(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:()=>u(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:()=>g(v.id)},"\u5220\u9664"))}],M={totalPromotions:G.length,activePromotions:G.filter(e=>e.status===xe.ENABLED).length,upcomingPromotions:G.filter(e=>{let v=new Date;return new Date(e.startDate)>v}).length},m=G.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:ee},x.default.createElement(A.Card,null,te&&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:re,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"))),Y&&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:G,rowKey:"id",loading:se,pagination:{current:j,pageSize:K,total:be,showSizeChanger:!0,showQuickJumper:!0,showTotal:e=>`\u5171 ${e} \u6761`,onChange:(e,v)=>{J(e),ye(v)}}})),oe&&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:W,onOk:C,onCancel:()=>Q(!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})))))},dt=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:f=!0,onCreateUser:k,onEditUser:Y,onDeleteUser:$,onToggleStatus:te,style:oe,className:ie})=>{let[q,I]=(0,T.useState)(!1),[z,ee]=(0,T.useState)([]),[ce,se]=(0,T.useState)(0),[R,G]=(0,T.useState)(1),[E,be]=(0,T.useState)(10),[p,j]=(0,T.useState)(""),[J,K]=(0,T.useState)(),[ye,N]=(0,T.useState)(!1),[le,re]=(0,T.useState)(null),[O]=D.Form.useForm(),W=[{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)(()=>{Q()},[R,E]);let Q=async()=>{I(!0);try{await new Promise(g=>setTimeout(g,500));let u=[...W];p&&(u=u.filter(g=>g.username.toLowerCase().includes(p.toLowerCase())||g.nickName?.toLowerCase().includes(p.toLowerCase()))),J!==void 0&&(u=u.filter(g=>g.status===J)),ee(u),se(u.length)}catch(u){console.error("Failed to fetch user list:",u),D.message.error("\u83B7\u53D6\u7528\u6237\u5217\u8868\u5931\u8D25")}finally{I(!1)}},fe=()=>{G(1),Q()},he=()=>{j(""),K(void 0),G(1),Q()},pe=()=>{re(null),O.resetFields(),N(!0)},ve=u=>{re(u),O.setFieldsValue(u),N(!0)},Se=u=>{D.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u7528\u6237\u5417\uFF1F",onOk:()=>{$?.(u),D.message.success("\u5220\u9664\u6210\u529F"),Q()}})},Ae=u=>{let g=u.status===Pe.ENABLED?Pe.DISABLED:Pe.ENABLED;te?.(u.id,g),D.message.success(g===Pe.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),Q()},ge=async()=>{try{let u=await O.validateFields();le?(Y?.(le.id,u),D.message.success("\u7F16\u8F91\u6210\u529F")):(k?.(u),D.message.success("\u521B\u5EFA\u6210\u529F")),N(!1),Q()}catch(u){console.error("Validation failed:",u)}},Oe=u=>{let g={[Pe.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528"},[Pe.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528"}},{color:c,text:C}=g[u]||{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:(u,g)=>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"},g.nickName||g.username),T.default.createElement("div",{className:"user-username"},"@",g.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:u=>T.default.createElement(D.Space,{wrap:!0},u?.map((g,c)=>T.default.createElement(D.Tag,{key:c,color:"blue"},g)))},{title:"\u72B6\u6001",dataIndex:"status",key:"status",width:80,render:u=>Oe(u)},{title:"\u6700\u540E\u767B\u5F55",dataIndex:"loginTime",key:"loginTime",width:160},{title:"\u64CD\u4F5C",key:"action",width:180,render:(u,g)=>T.default.createElement(D.Space,null,T.default.createElement(D.Button,{type:"link",size:"small",icon:T.default.createElement(Ge.EditOutlined,null),onClick:()=>ve(g)},"\u7F16\u8F91"),T.default.createElement(D.Button,{type:"link",size:"small",onClick:()=>Ae(g)},g.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(g.id)},"\u5220\u9664"))}],y={totalUsers:W.length,activeUsers:W.filter(u=>u.status===Pe.ENABLED).length,disabledUsers:W.filter(u=>u.status===Pe.DISABLED).length};return T.default.createElement("div",{className:`mall-user-card ${ie||""}`,style:oe},T.default.createElement(D.Card,null,f&&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:p,onChange:u=>j(u.target.value),style:{width:200}}),T.default.createElement(D.Select,{placeholder:"\u7528\u6237\u72B6\u6001",value:J,onChange:K,style:{width:120},allowClear:!0},Wt.map(u=>T.default.createElement(D.Select.Option,{key:u.value,value:u.value},u.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:z,rowKey:"id",loading:q,pagination:{current:R,pageSize:E,total:ce,showSizeChanger:!0,showQuickJumper:!0,showTotal:u=>`\u5171 ${u} \u6761`,onChange:(u,g)=>{G(u),be(g)}}})),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})))))},mt=Er;var P=V(ke()),L=V(De()),Je=V(ze());var Lr=({dataSource:d,showCreateButton:r=!0,showFilter:l=!0,showStatistics:f=!0,showPermissionTree:k=!0,onCreateRole:Y,onEditRole:$,onDeleteRole:te,onToggleStatus:oe,style:ie,className:q})=>{let[I,z]=(0,P.useState)(!1),[ee,ce]=(0,P.useState)([]),[se,R]=(0,P.useState)(0),[G,E]=(0,P.useState)(1),[be,p]=(0,P.useState)(10),[j,J]=(0,P.useState)(""),[K,ye]=(0,P.useState)(),[N,le]=(0,P.useState)(!1),[re,O]=(0,P.useState)(null),[W]=L.Form.useForm(),Q=[{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()},[G,be]);let he=async()=>{z(!0);try{await new Promise(C=>setTimeout(C,500));let c=[...Q];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),R(c.length)}catch(c){console.error("Failed to fetch role list:",c),L.message.error("\u83B7\u53D6\u89D2\u8272\u5217\u8868\u5931\u8D25")}finally{z(!1)}},pe=()=>{E(1),he()},ve=()=>{J(""),ye(void 0),E(1),he()},Se=()=>{O(null),W.resetFields(),le(!0)},Ae=c=>{O(c),W.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:()=>{te?.(c),L.message.success("\u5220\u9664\u6210\u529F"),he()}})},Oe=c=>{let C=c.status===Ie.ENABLED?Ie.DISABLED:Ie.ENABLED;oe?.(c.id,C),L.message.success(C===Ie.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),he()},Te=async()=>{try{let c=await W.validateFields();re?($?.(re.id,c),L.message.success("\u7F16\u8F91\u6210\u529F")):(Y?.(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:_,text:b}=C[c]||{color:"default",text:"\u672A\u77E5"};return P.default.createElement(L.Tag,{color:_},b)},u=[{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"))}],g={totalRoles:Q.length,activeRoles:Q.filter(c=>c.status===Ie.ENABLED).length,totalAdmins:Q.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,f&&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"},g.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"}},g.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"}},g.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=>J(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"))),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:u,dataSource:ee,rowKey:"id",loading:I,pagination:{current:G,pageSize:be,total:se,showSizeChanger:!0,showQuickJumper:!0,showTotal:c=>`\u5171 ${c} \u6761`,onChange:(c,C)=>{E(c),p(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:re?"\u7F16\u8F91\u89D2\u8272":"\u521B\u5EFA\u89D2\u8272",visible:N,onOk:Te,onCancel:()=>le(!1),width:500},P.default.createElement(L.Form,{form:W,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})))))},ut=Lr;var U=V(ke());var ae=V(ke()),kt=V(De()),H=V(ze()),{SubMenu:yn}=kt.Menu,wt=[{key:"dashboard",label:"\u5DE5\u4F5C\u53F0",icon:ae.default.createElement(H.DashboardOutlined,null),path:"/dashboard"},{key:"permission",label:"\u6743\u9650\u7BA1\u7406",icon:ae.default.createElement(H.SafetyCertificateOutlined,null),children:[{key:"permission/users",label:"\u7528\u6237\u7BA1\u7406",icon:ae.default.createElement(H.UserOutlined,null),path:"/permission/users"},{key:"permission/roles",label:"\u89D2\u8272\u7BA1\u7406",icon:ae.default.createElement(H.TeamOutlined,null),path:"/permission/roles"},{key:"permission/resources",label:"\u8D44\u6E90\u7BA1\u7406",icon:ae.default.createElement(H.SettingOutlined,null),path:"/permission/resources"},{key:"permission/menus",label:"\u83DC\u5355\u7BA1\u7406",icon:ae.default.createElement(H.FileTextOutlined,null),path:"/permission/menus"}]},{key:"product",label:"\u5546\u54C1\u7BA1\u7406",icon:ae.default.createElement(H.ShoppingOutlined,null),children:[{key:"product/list",label:"\u5546\u54C1\u5217\u8868",icon:ae.default.createElement(H.InboxOutlined,null),path:"/product/list"},{key:"product/add",label:"\u6DFB\u52A0\u5546\u54C1",icon:ae.default.createElement(H.ShoppingOutlined,null),path:"/product/add"},{key:"product/category",label:"\u5546\u54C1\u5206\u7C7B",icon:ae.default.createElement(H.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(H.FileTextOutlined,null),children:[{key:"order/list",label:"\u8BA2\u5355\u5217\u8868",icon:ae.default.createElement(H.FileTextOutlined,null),path:"/order/list"},{key:"order/setting",label:"\u8BA2\u5355\u8BBE\u7F6E",icon:ae.default.createElement(H.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(H.GiftOutlined,null),children:[{key:"marketing/coupon",label:"\u4F18\u60E0\u5238\u7BA1\u7406",icon:ae.default.createElement(H.GiftOutlined,null),path:"/marketing/coupon"},{key:"marketing/promotion",label:"\u4FC3\u9500\u6D3B\u52A8",icon:ae.default.createElement(H.DollarOutlined,null),path:"/marketing/promotion"},{key:"marketing/flash",label:"\u79D2\u6740\u6D3B\u52A8",icon:ae.default.createElement(H.ThunderboltOutlined,null),path:"/marketing/flash"},{key:"marketing/new",label:"\u65B0\u54C1\u63A8\u8350",icon:ae.default.createElement(H.FireOutlined,null),path:"/marketing/new"},{key:"marketing/hot",label:"\u4EBA\u6C14\u63A8\u8350",icon:ae.default.createElement(H.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:f,onOpenChange:k,menuItems:Y})=>{let $=Y||wt,[te,oe]=(0,ae.useState)($.filter(I=>I.children).map(I=>I.key)),ie=I=>{let z=I[I.length-1];z&&$.some(ee=>ee.key===z)?(oe(I),k(I)):(oe(z?[z]:[]),k(z?[z]:[]))},q=({key:I})=>{f(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:te,openKeys:l.length>0?l:te,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(z=>({key:z.key,icon:z.icon,label:z.label}))}:{key:I.key,icon:I.icon,label:I.label})}))},Zt=Fr;var Ce=V(ke()),Qe=V(De()),Me=V(ze());var ct=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"},Br=({items:d,onNavigate:r})=>{let l=f=>f.split("/").map(Y=>Ur[Y]||Y).join(" / ");return!d||d.length===0?null:ct.default.createElement(Pt.Breadcrumb,null,d.map(f=>ct.default.createElement(Pt.Breadcrumb.Item,{key:f.key},ct.default.createElement("a",{onClick:()=>r(f.key)},f.label||l(f.key)))))},Rt=Br;var Mr=({collapsed:d,onToggleCollapse:r,breadcrumbItems:l,onNavigate:f})=>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(Me.MenuUnfoldOutlined,null):Ce.default.createElement(Me.MenuFoldOutlined,null)),Ce.default.createElement(Rt,{items:l,onNavigate:f})),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(Me.UserOutlined,null),label:"\u4E2A\u4EBA\u4E2D\u5FC3"},{key:"settings",icon:Ce.default.createElement(Me.SettingOutlined,null),label:"\u7CFB\u7EDF\u8BBE\u7F6E"},{type:"divider"},{key:"logout",icon:Ce.default.createElement(Me.LogoutOutlined,null),label:"\u9000\u51FA\u767B\u5F55",danger:!0}],onClick:({key:te})=>{te==="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(Me.UserOutlined,null),className:"user-avatar"}),Ce.default.createElement(Qe.Space,{size:4,className:"username"},Ce.default.createElement("span",null,"\u7BA1\u7406\u5458")))))),er=Mr;var Ze=V(ke());var Z=V(ke()),pt=V(De()),je=V(ze()),zr=({tabs:d,activeTabKey:r,onTabClick:l,onCloseTab:f,onCloseOther:k,onCloseAll:Y,closableTabs:$=!0})=>{let[te,oe]=(0,Z.useState)(null),[ie,q]=(0,Z.useState)(!1),[I,z]=(0,Z.useState)(""),[ee,ce]=(0,Z.useState)({x:0,y:0}),se=(0,Z.useRef)(null);(0,Z.useEffect)(()=>{if(se.current&&r){let p=se.current.querySelector(`[data-tab-key="${r}"]`);p&&p.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}},[r]),(0,Z.useEffect)(()=>{let p=()=>q(!1);if(ie)return document.addEventListener("click",p),()=>document.removeEventListener("click",p)},[ie]);let R=(p,j)=>{p.preventDefault(),p.stopPropagation(),z(j),ce({x:p.clientX,y:p.clientY}),q(!0)},G=p=>{switch(q(!1),p){case"close":f(I);break;case"closeOther":k(I);break;case"closeAll":Y();break;case"refresh":window.location.reload();break}};if(!d||d.length===0)return null;let E=[{key:"refresh",icon:Z.default.createElement(je.ReloadOutlined,null),label:"\u5237\u65B0\u5F53\u524D\u9875"},{key:"close",icon:Z.default.createElement(je.CloseOutlined,null),label:"\u5173\u95ED\u5F53\u524D",disabled:!$||d.find(p=>p.key===I)?.closable===!1},{type:"divider"},{key:"closeOther",icon:Z.default.createElement(je.CloseCircleOutlined,null),label:"\u5173\u95ED\u5176\u4ED6",disabled:d.length<=1},{key:"closeAll",icon:Z.default.createElement(je.CloseCircleOutlined,null),label:"\u5173\u95ED\u6240\u6709"}],be=Z.default.createElement(pt.Menu,{items:E,onClick:({key:p})=>G(p)});return Z.default.createElement(Z.default.Fragment,null,Z.default.createElement("div",{className:"tab-bar-container"},Z.default.createElement("div",{className:"tab-bar-scroll",ref:se},d.map(p=>Z.default.createElement("div",{key:p.key,"data-tab-key":p.key,className:`tab-item ${r===p.key?"active":""} ${te===p.key?"hovered":""}`,onClick:()=>l(p.key),onMouseEnter:()=>oe(p.key),onMouseLeave:()=>oe(null),onContextMenu:j=>R(j,p.key)},p.icon&&Z.default.createElement("span",{className:"tab-icon"},p.icon),Z.default.createElement("span",{className:"tab-label"},p.label),$&&p.closable&&Z.default.createElement("span",{className:`tab-close-btn ${te===p.key||r===p.key?"visible":""}`,onClick:j=>{j.stopPropagation(),f(p.key)}},Z.default.createElement(je.CloseOutlined,{style:{fontSize:10}}))))),$&&d.length>1&&Z.default.createElement("div",{className:"tab-actions"},Z.default.createElement("button",{className:"close-all-btn",onClick:Y,title:"\u5173\u95ED\u5168\u90E8\u6807\u7B7E"},Z.default.createElement(je.CloseCircleOutlined,null)))),ie&&Z.default.createElement("div",{style:{position:"fixed",left:ee.x,top:ee.y,zIndex:1e3}},Z.default.createElement(pt.Dropdown,{overlay:be,visible:ie,onVisibleChange:q,trigger:["click"]},Z.default.createElement("div",{style:{width:0,height:0}}))))},tr=zr;var _r=({children:d,pageKey:r,tabs:l,activeTabKey:f,onTabClick:k,onCloseTab:Y,onCloseOther:$,onCloseAll:te,enableTabs:oe=!0,closableTabs:ie=!0,className:q=""})=>Ze.default.createElement("main",{className:`main-content ${q}`},oe&&l.length>0&&Ze.default.createElement(tr,{tabs:l,activeTabKey:f,onTabClick:k,onCloseTab:Y,onCloseOther:$,onCloseAll:te,closableTabs:ie}),Ze.default.createElement("div",{className:"content-wrapper"},Ze.default.createElement("div",{className:"page-container",key:r},d))),rr=_r;var or=V(ke()),Yr=({tab:d,tabKey:r,activeTabKey:l,children:f,className:k,style:Y})=>{let $=l===r;return or.default.createElement("div",{className:`tab-pane ${$?"tab-pane--active":""} ${k||""}`,style:{...Y,display:$?void 0:"none"},"data-tab-key":r,"data-active":$?"true":"false"},f)},Xe=Yr;var Vr="general",It=()=>{try{let d=window.AliLowCodeEngine;if(!d?.project)return;let r=d.project.exportSchema("save"),l=`${Vr}: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)}},et=(d,r)=>{for(let l of d){if(l.key===r)return l;if(l.children){let f=et(l.children,r);if(f)return f}}},Re=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]},jr=({defaultSelectedKey:d="dashboard",defaultOpenKeys:r,collapsible:l=!0,enableTabs:f=!0,maxTabs:k=10,closableTabs:Y=!0,logoText:$="Mall Admin",menuItems:te,style:oe,className:ie,children:q,__designMode:I,componentId:z})=>{let ee=te||wt,[ce,se]=(0,U.useState)(!1),[R,G]=(0,U.useState)(d),[E,be]=(0,U.useState)(r||[]),[p,j]=(0,U.useState)(()=>{let y=et(ee,d);return[{key:d,label:y?.label||Re(d),icon:y?.icon,closable:!1,path:y?.path||`/${d}`}]}),[J,K]=(0,U.useState)(d),ye=(0,U.useRef)(J);ye.current=J;let N=(0,U.useRef)(!1);(0,U.useEffect)(()=>{if(I!=="design"||!z||N.current)return;let y=setTimeout(()=>{try{let u=window.AliLowCodeEngine;if(!u?.project?.currentDocument)return;let g=u.project.currentDocument,c=g.getNodeById(z);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(b=>b.componentName));let _=C.filter(b=>b.componentName==="TabPane");if(console.log("[AdminLayout] \u{1F50D} Found existing TabPanes:",_.length),_.length>0){let b=_.map(m=>{let e=m.props?.tabKey||"unknown",v=m.props?.tab||Re(e),X=et(ee,e);return console.log("[AdminLayout] \u{1F4CB} Restoring tab:",e,v),{key:e,label:v,icon:X?.icon,closable:e!=="dashboard",path:X?.path||`/${e}`}});console.log("[AdminLayout] \u{1F4CB} Restored tabs from schema:",b.map(m=>m.key)),j(b);let M=b[b.length-1];M&&(K(M.key),G(M.key))}else{console.log("[AdminLayout] \u{1F4CB} No TabPane found, creating default dashboard TabPane");let b=g.createNode({componentName:"TabPane",props:{tab:"\u5DE5\u4F5C\u53F0",tabKey:"dashboard",activeTabKey:"dashboard"}});b&&(g.insertNode(c,b),console.log("[AdminLayout] \u2705 Created default TabPane for dashboard"))}N.current=!0}catch(u){console.error("[AdminLayout] Init TabPane error:",u)}},100);return()=>clearTimeout(y)},[z,I,ee]),(0,U.useEffect)(()=>{if(I==="design"||!q)return;let u=U.Children.toArray(q).filter(g=>(0,U.isValidElement)(g)?g.type===Xe||g.props?.tabKey:!1);if(u.length>0){let g=u.map(c=>{let C=c.props,_=C?.tabKey||"unknown",b=C?.tab||Re(_),M=et(ee,_);return{key:_,label:b,icon:M?.icon,closable:_!=="dashboard",path:M?.path||`/${_}`}});console.log("[AdminLayout] Preview mode - restored tabs:",g.map(c=>c.key)),j(g)}},[q,I,ee]),(0,U.useEffect)(()=>{if(I!=="design")return;let y=window.AliLowCodeEngine;if(!y?.project?.currentDocument)return;let u=y.project.currentDocument,g=null,c=()=>{g&&clearTimeout(g),g=setTimeout(()=>{It()},500)},C=u.onAddNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onAddNode triggered"),c()}),_=u.onRemoveNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onRemoveNode triggered"),c()}),b=u.onMountNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onMountNode triggered"),c()});return()=>{g&&clearTimeout(g),C?.(),_?.(),b?.()}},[I]),(0,U.useEffect)(()=>{if(!(I!=="design"||!z))try{let y=window.AliLowCodeEngine;if(!y?.project?.currentDocument)return;let g=y.project.currentDocument.getNodeById(z);g?.children&&(Array.isArray(g.children)?g.children:g.children.toArray?g.children.toArray():[]).forEach(C=>{C.componentName==="TabPane"&&C.setPropValue("activeTabKey",J)})}catch{}},[J,z,I]);let le=(0,U.useCallback)(()=>{l&&se(y=>!y)},[l]),re=(0,U.useCallback)((y,u)=>{if(typeof window>"u")return!1;try{let g=window.AliLowCodeEngine;if(!g?.project?.currentDocument)return!1;let c=g.project.currentDocument,C=z?c.getNodeById(z):null;if(!C)return!1;let _=Array.isArray(C.children)?C.children:C.children?.toArray?C.children.toArray():[];console.log("[AdminLayout] \u{1F50D} All children before create:",_.map(M=>({id:M.id,name:M.componentName,tabKey:M.props?.tabKey})));for(let M of _){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 b=c.createNode({componentName:"TabPane",props:{tab:u,tabKey:y,activeTabKey:ye.current}});return b?(c.insertNode(C,b),console.log("[AdminLayout] \u2705 Created new TabPane:",y,"nodeId:",b.id),setTimeout(()=>It(),100),!0):!1}catch(g){return console.error("[AdminLayout] createTabPane error:",g),!1}},[z]),O=(0,U.useCallback)(y=>{if(typeof window>"u")return!1;let u=!1;try{let g=window.AliLowCodeEngine;if(!g?.project?.currentDocument)return!1;let c=g.project.currentDocument,C=z?c.getNodeById(z):null;if(console.log("[AdminLayout] \u{1F5D1}\uFE0F removeTabPane called:",y),console.log("[AdminLayout] componentId:",z),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 _=[];if(C.children&&(Array.isArray(C.children)?_=C.children:typeof C.children.toArray=="function"?_=C.children.toArray():typeof C.children.map=="function"&&(_=C.children.map(b=>b))),_.length===0&&C.schema?.children){console.log("[AdminLayout] Trying schema.children...");let b=C.schema.children;Array.isArray(b)&&(_=b.map(M=>c.getNodeById(M.id)).filter(Boolean))}if(_.length===0){console.log("[AdminLayout] Trying documentModel.getRoot()...");let b=c.getRoot();console.log("[AdminLayout] Root node:",b?.componentName);let M=(e,v)=>{if(!v)return null;if(e.id===v)return e;if(e.children){let X=Array.isArray(e.children)?e.children:e.children.toArray?e.children.toArray():[];for(let B of X){let ue=M(B,v);if(ue)return ue}}return null},m=M(b,z);m&&m.children&&(_=Array.isArray(m.children)?m.children:m.children.toArray?m.children.toArray():[])}console.log("[AdminLayout] Final children count:",_.length),console.log("[AdminLayout] Children details:",_.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}))),_.forEach((b,M)=>{if(console.log(`[AdminLayout] Child[${M}] ${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 _){if(!b)continue;let M=b.props?.tabKey||b.getPropValue?.("tabKey");if(b.componentName==="TabPane"&&M===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],X=c.getNodeById(v.id);if(X)try{c.removeNode(X),console.log("[AdminLayout] \u2713 Removed grandchild:",X.id,X.componentName)}catch(B){console.warn("[AdminLayout] \u2717 Failed to remove grandchild:",B)}}}else console.log("[AdminLayout] No grandchildren to remove");try{c.removeNode(b),u=!0,console.log("[AdminLayout] \u2705 Removed TabPane node:",y),setTimeout(()=>It(),100)}catch(e){console.error("[AdminLayout] Failed to remove TabPane:",e)}break}}return u||console.warn("[AdminLayout] \u26A0\uFE0F TabPane not found for key:",y),u}catch(g){return console.error("[AdminLayout] removeTabPane error:",g),!1}},[z]),W=(0,U.useCallback)(y=>{if(G(y),!p.find(g=>g.key===y)){let g=et(ee,y),c={key:y,label:g?.label||Re(y),icon:g?.icon,closable:y!=="dashboard",path:g?.path||`/${y}`};j(C=>{if(C.length>=k){let _=C.filter(b=>b.closable);if(_.length>0)return[...C.filter(b=>b.key!==_[0].key),c]}return[...C,c]}),I==="design"&&setTimeout(()=>re(y,g?.label||Re(y)),0)}K(y)},[p,ee,k,I,re]),Q=(0,U.useCallback)(y=>be(y),[]),fe=(0,U.useCallback)(y=>{G(y),K(y)},[]),he=(0,U.useCallback)(y=>{G(y),K(y)},[]),pe=(0,U.useCallback)(y=>{if(y!=="dashboard"&&(O(y),j(u=>u.filter(g=>g.key!==y)),y===J)){let u=p.filter(g=>g.key!==y);if(u.length>0){let g=p.findIndex(C=>C.key===y),c=u[g]||u[u.length-1];G(c.key),K(c.key)}}},[p,J,O]),ve=(0,U.useCallback)(y=>{p.forEach(u=>{u.key!==y&&u.key!=="dashboard"&&O(u.key)}),j(u=>u.filter(g=>g.key===y||g.key==="dashboard")),G(y),K(y)},[p,O]),Se=(0,U.useCallback)(()=>{p.forEach(u=>{u.key!=="dashboard"&&O(u.key)});let y=p.find(u=>u.key==="dashboard");y&&(j([y]),G("dashboard"),K("dashboard"))},[p,O]),Ae=(0,U.useMemo)(()=>R==="dashboard"?[]:R.split("/").length===1?[{key:R,label:"",path:R}]:[{key:R,label:"",path:R}],[R]),Te=(0,U.useMemo)(()=>q?I==="design"?U.Children.toArray(q).find(g=>(0,U.isValidElement)(g)?g.props?.tabKey===J:!1)||null:U.Children.map(q,y=>(0,U.isValidElement)(y)?(0,U.cloneElement)(y,{activeTabKey:J}):y):null,[q,J,I])||U.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 U.default.createElement("div",{className:`admin-layout ${ce?"is-collapse":""} ${ie||""}`,style:oe,"data-active-tab":J},U.default.createElement(Zt,{collapsed:ce,selectedKey:R,openKeys:E,onMenuClick:W,onOpenChange:Q,menuItems:ee}),U.default.createElement("div",{className:"layout-right"},U.default.createElement(er,{collapsed:ce,onToggleCollapse:le,breadcrumbItems:Ae,onNavigate:fe}),U.default.createElement(rr,{pageKey:R,tabs:p,activeTabKey:J,onTabClick:he,onCloseTab:pe,onCloseOther:ve,onCloseAll:Se,enableTabs:f,closableTabs:Y,className:ce?"collapsed":""},Te)),l&&U.default.createElement("div",{className:`mobile-overlay ${ce?"":"visible"}`,onClick:le}))},gt=jr;var Kr={ProductList:Ct,ProductForm:xt,OrderList:it,OrderForm:st,CouponCard:lt,PromotionCard:dt,UserCard:mt,RoleCard:ut,AdminLayout:gt,TabPane:Xe},$r=Kr;return Sr(qr);})();
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.5","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.6","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"}}
@@ -2,6 +2,7 @@ import React, { useState, useCallback, useMemo, useEffect, useRef, Children, isV
2
2
  import Sidebar from './Sidebar'
3
3
  import Navbar from './Navbar'
4
4
  import MainContent from './MainContent'
5
+ import TabPane from './TabPane'
5
6
  import type { AdminLayoutProps, TabItem, BreadcrumbItem, MenuItem } from './types'
6
7
  import { defaultMenuItems } from './Sidebar'
7
8
  import './AdminLayout.scss'
@@ -180,6 +181,39 @@ const AdminLayout: React.FC<AdminLayoutProps> = ({
180
181
  return () => clearTimeout(timer)
181
182
  }, [componentId, __designMode, items])
182
183
 
184
+ // 预览模式:从 children 恢复 tabs state
185
+ useEffect(() => {
186
+ if (__designMode === 'design' || !children) return
187
+
188
+ const childArray = Children.toArray(children)
189
+ const tabPanes = childArray.filter((child) => {
190
+ if (isValidElement(child)) {
191
+ return child.type === TabPane || (child.props as any)?.tabKey
192
+ }
193
+ return false
194
+ })
195
+
196
+ if (tabPanes.length > 0) {
197
+ const restoredTabs: TabItem[] = tabPanes.map((child) => {
198
+ const props = (child as any).props
199
+ const tabKey = props?.tabKey || 'unknown'
200
+ const tabLabel = props?.tab || getLabelFromKey(tabKey)
201
+ const menuItem = findMenuItem(items, tabKey)
202
+
203
+ return {
204
+ key: tabKey,
205
+ label: tabLabel,
206
+ icon: menuItem?.icon,
207
+ closable: tabKey !== 'dashboard',
208
+ path: menuItem?.path || `/${tabKey}`,
209
+ }
210
+ })
211
+
212
+ console.log('[AdminLayout] Preview mode - restored tabs:', restoredTabs.map(t => t.key))
213
+ setTabs(restoredTabs)
214
+ }
215
+ }, [children, __designMode, items])
216
+
183
217
  // 监听 schema 变化,自动保存(防抖)
184
218
  useEffect(() => {
185
219
  if (__designMode !== 'design') return