mall-components 1.0.7 → 1.0.8

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 +1 @@
1
- .mall-product-list{background:#f5f7fa;padding:16px;border-radius:8px;min-height:100%;.mall-product-list-filter{margin-bottom:16px;border-radius:8px;box-shadow:0 2px 8px #0000000f;transition:all .3s ease;&:hover{box-shadow:0 4px 12px #0000001a}.ant-card-body{padding:20px}.ant-input-affix-wrapper{border-radius:6px;transition:all .3s ease;&:hover,&:focus{border-color:#40a9ff;box-shadow:0 0 0 2px #1890ff1a}}.ant-btn{border-radius:6px;font-weight:500;transition:all .3s ease;&:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}&:active{transform:translateY(0)}}}.mall-product-list-action{margin-bottom:16px;border-radius:8px;box-shadow:0 2px 8px #0000000f;transition:all .3s ease;&:hover{box-shadow:0 4px 12px #0000001a}.ant-card-body{padding:16px 20px}.ant-btn{border-radius:6px;font-weight:500;transition:all .3s ease;&:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}}.ant-select{.ant-select-selector{border-radius:6px;transition:all .3s ease;&:hover{border-color:#40a9ff}}}}.mall-product-list-table{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000f;.ant-table-thead>tr>th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:14px;padding:16px;border-bottom:none;&:before{background-color:#fff3}}.ant-table-tbody>tr{transition:all .3s ease;&:hover{background:#f0f5ff;cursor:pointer;transform:scale(1.01);box-shadow:0 2px 8px #00000014}>td{padding:16px;border-bottom:1px solid #f0f0f0}}img{border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;&:hover{transform:scale(1.1);box-shadow:0 4px 12px #00000026}}.price-cell{color:#f56c6c;font-weight:600;font-size:16px}.stock-cell{font-weight:500;&.low-stock{color:#f56c6c}&.normal-stock{color:#67c23a}}.ant-space{.ant-btn-link{padding:4px 8px;height:auto;font-weight:500;transition:all .3s ease;&:hover{background:#f0f5ff;border-radius:4px}&.ant-btn-dangerous{color:#f56c6c;&:hover{background:#fff1f0}}}}}.pagination-wrapper{background:#fff;padding:16px 20px;border-radius:8px;margin-top:16px;display:flex;justify-content:flex-end;.ant-pagination{.ant-pagination-item{border-radius:6px;transition:all .3s ease;&:hover{border-color:#40a9ff;transform:translateY(-1px)}}.ant-pagination-item-active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;a{color:#fff}}.ant-pagination-prev,.ant-pagination-next{border-radius:6px;transition:all .3s ease;&:hover{border-color:#40a9ff;transform:translateY(-1px)}}}}.ant-switch{&.ant-switch-checked{background:linear-gradient(135deg,#667eea,#764ba2)}}@media (max-width: 1200px){padding:12px;.mall-product-list-filter,.mall-product-list-action{.ant-card-body{padding:16px}}.ant-table-wrapper{.ant-table-thead>tr>th,.ant-table-tbody>tr>td{padding:12px}}}@media (max-width: 768px){padding:8px;.mall-product-list-filter{.ant-input-affix-wrapper{width:100%!important;margin-bottom:8px}.ant-btn{width:100%;margin-bottom:8px}}.mall-product-list-action{.ant-btn{width:100%;margin-bottom:8px}.ant-select{width:100%!important;margin-bottom:8px}}.pagination-wrapper{padding:12px;justify-content:center;.ant-pagination{flex-wrap:wrap;justify-content:center}}}.ant-spin-nested-loading{.ant-spin{.ant-spin-dot{font-size:32px}}}.ant-empty{padding:48px 0;.ant-empty-image{height:100px}.ant-empty-description{color:#999;font-size:14px}}}.mall-product-form{.ant-card-body{padding:24px}.ant-form-item{margin-bottom:16px}.ant-form-item-label{label{font-weight:500}}.ant-input-number,.ant-select{width:100%}}.mall-order-list{.filter-section{margin-bottom:16px;padding:16px;background:linear-gradient(135deg,#f5f7fa,#f0f2f5);border-radius:8px;box-shadow:0 2px 8px #0000000d}.batch-operation-section{margin-bottom:16px;padding:12px 16px;background:#fafafa;border-radius:4px;display:flex;align-items:center;justify-content:space-between;.selected-info{color:#1890ff;font-size:14px}}.action-section{margin-bottom:16px;padding:12px 0;border-bottom:1px solid #f0f0f0}.ant-table{.ant-table-thead>tr>th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;border-bottom:none;&:before{background-color:#ffffff4d}}.ant-table-tbody>tr{&:hover{background:#f5f5f5;cursor:pointer}>td{padding:12px 8px;border-bottom:1px solid #f0f0f0}}}.order-sn{font-family:Courier New,monospace;font-weight:500;color:#1890ff}.order-amount{font-weight:600;color:#595959}.pay-amount{font-weight:700;color:#f5222d;font-size:14px}.ant-tag{border-radius:12px;padding:2px 8px;font-size:12px;font-weight:500}.ant-btn-link{padding:0 4px;height:auto}.ant-modal{.ant-descriptions{.ant-descriptions-item-label{font-weight:600;background:#fafafa}.ant-descriptions-item-content{background:#fff}}}@media (max-width: 768px){.filter-section{.ant-col{margin-bottom:8px}}.batch-operation-section{flex-direction:column;align-items:flex-start;.selected-info{margin-top:8px}}.ant-table{overflow-x:auto;.ant-table-thead>tr>th,.ant-table-tbody>tr>td{white-space:nowrap;font-size:12px;padding:8px 4px}}}.ant-pagination{margin-top:16px;text-align:right;.ant-pagination-item-active{border-color:#1890ff;a{color:#1890ff}}}.ant-spin-nested-loading{.ant-spin{max-height:400px}}.empty-data{padding:40px 0;text-align:center;color:#8c8c8c;.ant-empty-image{height:100px}}.loading-skeleton{.ant-skeleton{padding:16px 0}}}.mall-order-form{.ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a}.ant-tabs{.ant-tabs-nav{margin-bottom:24px;&:before{border-bottom:2px solid #f0f0f0}.ant-tabs-tab{padding:12px 16px;font-weight:500;transition:all .3s ease;&:hover{color:#1890ff}&.ant-tabs-tab-active{.ant-tabs-tab-btn{color:#1890ff;font-weight:600}}}.ant-tabs-ink-bar{height:3px;background:linear-gradient(90deg,#1890ff,#40a9ff)}}}.ant-form{.ant-form-item{margin-bottom:20px;.ant-form-item-label{label{font-weight:500;color:#262626}}.ant-input,.ant-input-number,.ant-select{border-radius:4px;&:hover{border-color:#40a9ff}&:focus,&.ant-input-focused,&.ant-select-focused{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}}.ant-input-textarea-show-count:after{float:right;color:#8c8c8c;font-size:12px}}}.ant-table{.ant-table-thead>tr>th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600}.ant-table-tbody>tr{&:hover{background:#f5f5f5}>td{padding:12px 8px}}}.ant-divider{margin:24px 0;border-color:#f0f0f0}.ant-space{.ant-btn{min-width:80px;border-radius:4px;font-weight:500;transition:all .3s ease;&:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}&.ant-btn-primary{background:linear-gradient(135deg,#1890ff,#40a9ff);border:none;&:hover{background:linear-gradient(135deg,#40a9ff,#69c0ff)}}}}@media (max-width: 768px){.ant-form{.ant-col{margin-bottom:0}}.ant-tabs{.ant-tabs-nav{.ant-tabs-tab{padding:8px 12px;font-size:14px}}}.ant-table{overflow-x:auto;.ant-table-thead>tr>th,.ant-table-tbody>tr>td{white-space:nowrap;font-size:12px;padding:8px 4px}}}}.mall-coupon-card{.statistics-section{padding:16px;background:#f5f5f5;border-radius:4px;margin-bottom:16px;.stat-item{text-align:center;.stat-value{font-size:24px;font-weight:600;color:#1890ff}.stat-label{font-size:12px;color:#8c8c8c;margin-top:4px}}}.filter-section{margin-bottom:16px;padding:16px;background:#fafafa;border-radius:4px}.action-section{margin-bottom:16px}.coupon-name{font-weight:500;color:#262626}.ant-table{.ant-tag{margin:0}}.ant-badge{.ant-badge-count{font-size:12px;min-width:40px;height:20px;line-height:20px}}}.mall-promotion-card{.statistics-section{padding:16px;background:linear-gradient(135deg,#fff7e6,#fffbe6);border-radius:4px;margin-bottom:16px;.ant-statistic-title{font-size:13px;color:#8c8c8c}.ant-statistic-content{font-size:28px}}.content-section{display:flex;gap:16px;.table-section{flex:1}.timeline-section{width:300px;.ant-card{height:100%}.ant-timeline{padding-top:8px}.ant-timeline-item-content{font-size:13px}}}.filter-section,.action-section{margin-bottom:16px}.promotion-title{font-weight:500;color:#262626}.ant-table{.ant-tag{margin:0}}@media (max-width: 1200px){.content-section{flex-direction:column;.timeline-section{width:100%}}}}.mall-user-card{.statistics-section{padding:16px;background:linear-gradient(135deg,#e6f7ff,#f0f5ff);border-radius:4px;margin-bottom:16px;.stat-item{text-align:center;.stat-value{font-size:24px;font-weight:600;color:#1890ff}.stat-label{font-size:12px;color:#8c8c8c;margin-top:4px}}}.filter-section{margin-bottom:16px;padding:16px;background:#fafafa;border-radius:4px}.action-section{margin-bottom:16px}.user-name{font-weight:500;color:#262626}.user-username{font-size:12px;color:#8c8c8c}.ant-table{.ant-tag{margin:0}}}.mall-role-card{.statistics-section{padding:16px;background:linear-gradient(135deg,#f0f5ff,#f5f0ff);border-radius:4px;margin-bottom:16px;.stat-item{text-align:center;.stat-value{font-size:24px;font-weight:600;color:#722ed1}.stat-label{font-size:12px;color:#8c8c8c;margin-top:4px}}}.content-section{display:flex;gap:16px;.table-section{flex:1}.permission-section{width:280px;.ant-card{height:100%}.ant-tree{font-size:13px}}}.filter-section{margin-bottom:16px;padding:16px;background:#fafafa;border-radius:4px}.action-section{margin-bottom:16px}.role-name{font-weight:500;color:#262626}.ant-table{.ant-tag{margin:0}}@media (max-width: 1200px){.content-section{flex-direction:column;.permission-section{width:100%}}}}.admin-layout{display:flex;height:100vh;width:100%;overflow:hidden;background-color:#f0f2f5;.sidebar-container{width:256px;height:100vh;background:linear-gradient(180deg,#001529,#002140);transition:all .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden;flex-shrink:0;z-index:10;box-shadow:2px 0 8px #00000026;&::-webkit-scrollbar{width:6px}&::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px;&:hover{background:#ffffff4d}}.sidebar-logo{height:64px;display:flex;align-items:center;justify-content:center;padding:16px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff05;.logo-text{color:#fff;font-size:20px;font-weight:600;white-space:nowrap;letter-spacing:1px}.logo-icon{color:#fff;font-size:24px;font-weight:700}}// Use more specific selectors to override antd styles without !important .ant-menu.ant-menu-dark{border-right:none;background:transparent;.ant-menu-item{margin:0 0 4px;border-radius:0;height:48px;line-height:48px;padding-left:24px;&:first-child{margin-top:8px}.anticon{margin-right:10px;font-size:16px}&:hover{background:#ffffff14;color:#fff}&.ant-menu-item-selected{background:linear-gradient(90deg,#1890ff,#096dd9);color:#fff;box-shadow:0 2px 8px #1890ff4d;&:after{display:none}}}.ant-menu-submenu{.ant-menu-submenu-title{height:48px;line-height:48px;padding-left:24px;margin:0 0 4px;.anticon{margin-right:10px;font-size:16px}&:hover{background:#ffffff14;color:#fff}}&.ant-menu-submenu-selected>.ant-menu-submenu-title{color:#1890ff}.ant-menu-sub{background:#0003;.ant-menu-item{height:44px;line-height:44px;padding-left:48px;&:hover{background:#ffffff0d}&.ant-menu-item-selected{background:#1890ff26;color:#1890ff;box-shadow:none}}}}}&.collapsed{width:80px;.ant-menu-inline-collapsed{width:80px}.sidebar-logo{padding:12px}.ant-menu.ant-menu-dark .ant-menu-item{padding-left:0;text-align:center}}}.layout-right{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;.navbar-container{height:64px;background:#fff;box-shadow:0 2px 8px #0000000f;display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:9;flex-shrink:0;.navbar-left{display:flex;align-items:center;gap:16px;.hamburger-btn{width:40px;height:40px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:18px;color:#000000a6;transition:all .3s;&:hover{background:#1890ff14;color:#1890ff}}}.navbar-right{.user-info{cursor:pointer;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;transition:all .3s;&:hover{background:#0000000a}.user-avatar{background:linear-gradient(135deg,#1890ff,#096dd9)}.username{color:#000000d9;font-size:14px;font-weight:500}}}}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f0f2f5;.tab-bar-container{background:#fff;display:flex;align-items:center;border-bottom:1px solid #e8e8e8;padding:0 16px;height:44px;flex-shrink:0;box-shadow:0 1px 4px #0000000a;.tab-bar-scroll{flex:1;overflow-x:auto;overflow-y:hidden;white-space:nowrap;display:flex;align-items:center;gap:8px;scrollbar-width:thin;&::-webkit-scrollbar{height:4px}&::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.tab-item{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;cursor:pointer;border-radius:4px 4px 0 0;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1);user-select:none;height:36px;font-size:13px;color:#000000a6;background:transparent;border:1px solid transparent;border-bottom:none;margin-bottom:-1px;.tab-icon{display:flex;align-items:center;font-size:14px}.tab-label{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-close-btn{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;opacity:0;transition:all .2s;margin-left:4px;&.visible{opacity:1}&:hover{background:#00000026;color:#fff}}&:hover{color:#1890ff;background:#1890ff0f;.tab-close-btn{opacity:1}}&.active{color:#1890ff;background:#fff;border-color:#e8e8e8;font-weight:500;.tab-close-btn{opacity:1}&:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:linear-gradient(90deg,#1890ff,#096dd9)}}}}.tab-actions{margin-left:8px;padding-left:12px;border-left:1px solid #e8e8e8;.close-all-btn{width:32px;height:32px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#00000073;transition:all .2s;&:hover{background:#ff4d4f14;color:#ff4d4f}}}}.content-wrapper{flex:1;overflow:auto;background:#f0f2f5;padding:24px;.page-container{min-height:100%;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000f;animation:fadeIn .3s ease-in-out}}}}.mobile-overlay{display:none}&.is-collapse{.sidebar-container{width:80px}}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.admin-layout{.sidebar-container{position:fixed;left:0;top:0;z-index:1000;transform:translate(-100%);transition:transform .3s;&.collapsed{transform:translate(-100%);width:256px}}.mobile-overlay{display:block;position:fixed;inset:0;background:#00000073;z-index:999;opacity:0;visibility:hidden;transition:all .3s;&.visible{opacity:1;visibility:visible}}&:not(.is-collapse){.sidebar-container{transform:translate(0)}.mobile-overlay.visible{opacity:1;visibility:visible}}}}
1
+ .mall-product-list{background:#f5f7fa;padding:16px;border-radius:8px;min-height:100%;.mall-product-list-filter{margin-bottom:16px;border-radius:8px;box-shadow:0 2px 8px #0000000f;transition:all .3s ease;&:hover{box-shadow:0 4px 12px #0000001a}.ant-card-body{padding:20px}.ant-input-affix-wrapper{border-radius:6px;transition:all .3s ease;&:hover,&:focus{border-color:#40a9ff;box-shadow:0 0 0 2px #1890ff1a}}.ant-btn{border-radius:6px;font-weight:500;transition:all .3s ease;&:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}&:active{transform:translateY(0)}}}.mall-product-list-action{margin-bottom:16px;border-radius:8px;box-shadow:0 2px 8px #0000000f;transition:all .3s ease;&:hover{box-shadow:0 4px 12px #0000001a}.ant-card-body{padding:16px 20px}.ant-btn{border-radius:6px;font-weight:500;transition:all .3s ease;&:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}}.ant-select{.ant-select-selector{border-radius:6px;transition:all .3s ease;&:hover{border-color:#40a9ff}}}}.mall-product-list-table{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000f;.ant-table-thead>tr>th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:14px;padding:16px;border-bottom:none;&:before{background-color:#fff3}}.ant-table-tbody>tr{transition:all .3s ease;&:hover{background:#f0f5ff;cursor:pointer;transform:scale(1.01);box-shadow:0 2px 8px #00000014}>td{padding:16px;border-bottom:1px solid #f0f0f0}}img{border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;&:hover{transform:scale(1.1);box-shadow:0 4px 12px #00000026}}.price-cell{color:#f56c6c;font-weight:600;font-size:16px}.stock-cell{font-weight:500;&.low-stock{color:#f56c6c}&.normal-stock{color:#67c23a}}.ant-space{.ant-btn-link{padding:4px 8px;height:auto;font-weight:500;transition:all .3s ease;&:hover{background:#f0f5ff;border-radius:4px}&.ant-btn-dangerous{color:#f56c6c;&:hover{background:#fff1f0}}}}}.pagination-wrapper{background:#fff;padding:16px 20px;border-radius:8px;margin-top:16px;display:flex;justify-content:flex-end;.ant-pagination{.ant-pagination-item{border-radius:6px;transition:all .3s ease;&:hover{border-color:#40a9ff;transform:translateY(-1px)}}.ant-pagination-item-active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;a{color:#fff}}.ant-pagination-prev,.ant-pagination-next{border-radius:6px;transition:all .3s ease;&:hover{border-color:#40a9ff;transform:translateY(-1px)}}}}.ant-switch{&.ant-switch-checked{background:linear-gradient(135deg,#667eea,#764ba2)}}@media (max-width: 1200px){padding:12px;.mall-product-list-filter,.mall-product-list-action{.ant-card-body{padding:16px}}.ant-table-wrapper{.ant-table-thead>tr>th,.ant-table-tbody>tr>td{padding:12px}}}@media (max-width: 768px){padding:8px;.mall-product-list-filter{.ant-input-affix-wrapper{width:100%!important;margin-bottom:8px}.ant-btn{width:100%;margin-bottom:8px}}.mall-product-list-action{.ant-btn{width:100%;margin-bottom:8px}.ant-select{width:100%!important;margin-bottom:8px}}.pagination-wrapper{padding:12px;justify-content:center;.ant-pagination{flex-wrap:wrap;justify-content:center}}}.ant-spin-nested-loading{.ant-spin{.ant-spin-dot{font-size:32px}}}.ant-empty{padding:48px 0;.ant-empty-image{height:100px}.ant-empty-description{color:#999;font-size:14px}}}.mall-product-form{.ant-card-body{padding:24px}.ant-form-item{margin-bottom:16px}.ant-form-item-label{label{font-weight:500}}.ant-input-number,.ant-select{width:100%}}.mall-order-list{.filter-section{margin-bottom:16px;padding:16px;background:linear-gradient(135deg,#f5f7fa,#f0f2f5);border-radius:8px;box-shadow:0 2px 8px #0000000d}.batch-operation-section{margin-bottom:16px;padding:12px 16px;background:#fafafa;border-radius:4px;display:flex;align-items:center;justify-content:space-between;.selected-info{color:#1890ff;font-size:14px}}.action-section{margin-bottom:16px;padding:12px 0;border-bottom:1px solid #f0f0f0}.ant-table{.ant-table-thead>tr>th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;border-bottom:none;&:before{background-color:#ffffff4d}}.ant-table-tbody>tr{&:hover{background:#f5f5f5;cursor:pointer}>td{padding:12px 8px;border-bottom:1px solid #f0f0f0}}}.order-sn{font-family:Courier New,monospace;font-weight:500;color:#1890ff}.order-amount{font-weight:600;color:#595959}.pay-amount{font-weight:700;color:#f5222d;font-size:14px}.ant-tag{border-radius:12px;padding:2px 8px;font-size:12px;font-weight:500}.ant-btn-link{padding:0 4px;height:auto}.ant-modal{.ant-descriptions{.ant-descriptions-item-label{font-weight:600;background:#fafafa}.ant-descriptions-item-content{background:#fff}}}@media (max-width: 768px){.filter-section{.ant-col{margin-bottom:8px}}.batch-operation-section{flex-direction:column;align-items:flex-start;.selected-info{margin-top:8px}}.ant-table{overflow-x:auto;.ant-table-thead>tr>th,.ant-table-tbody>tr>td{white-space:nowrap;font-size:12px;padding:8px 4px}}}.ant-pagination{margin-top:16px;text-align:right;.ant-pagination-item-active{border-color:#1890ff;a{color:#1890ff}}}.ant-spin-nested-loading{.ant-spin{max-height:400px}}.empty-data{padding:40px 0;text-align:center;color:#8c8c8c;.ant-empty-image{height:100px}}.loading-skeleton{.ant-skeleton{padding:16px 0}}}.mall-order-form{.ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a}.ant-tabs{.ant-tabs-nav{margin-bottom:24px;&:before{border-bottom:2px solid #f0f0f0}.ant-tabs-tab{padding:12px 16px;font-weight:500;transition:all .3s ease;&:hover{color:#1890ff}&.ant-tabs-tab-active{.ant-tabs-tab-btn{color:#1890ff;font-weight:600}}}.ant-tabs-ink-bar{height:3px;background:linear-gradient(90deg,#1890ff,#40a9ff)}}}.ant-form{.ant-form-item{margin-bottom:20px;.ant-form-item-label{label{font-weight:500;color:#262626}}.ant-input,.ant-input-number,.ant-select{border-radius:4px;&:hover{border-color:#40a9ff}&:focus,&.ant-input-focused,&.ant-select-focused{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}}.ant-input-textarea-show-count:after{float:right;color:#8c8c8c;font-size:12px}}}.ant-table{.ant-table-thead>tr>th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600}.ant-table-tbody>tr{&:hover{background:#f5f5f5}>td{padding:12px 8px}}}.ant-divider{margin:24px 0;border-color:#f0f0f0}.ant-space{.ant-btn{min-width:80px;border-radius:4px;font-weight:500;transition:all .3s ease;&:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}&.ant-btn-primary{background:linear-gradient(135deg,#1890ff,#40a9ff);border:none;&:hover{background:linear-gradient(135deg,#40a9ff,#69c0ff)}}}}@media (max-width: 768px){.ant-form{.ant-col{margin-bottom:0}}.ant-tabs{.ant-tabs-nav{.ant-tabs-tab{padding:8px 12px;font-size:14px}}}.ant-table{overflow-x:auto;.ant-table-thead>tr>th,.ant-table-tbody>tr>td{white-space:nowrap;font-size:12px;padding:8px 4px}}}}.mall-coupon-card{.statistics-section{padding:16px;background:#f5f5f5;border-radius:4px;margin-bottom:16px;.stat-item{text-align:center;.stat-value{font-size:24px;font-weight:600;color:#1890ff}.stat-label{font-size:12px;color:#8c8c8c;margin-top:4px}}}.filter-section{margin-bottom:16px;padding:16px;background:#fafafa;border-radius:4px}.action-section{margin-bottom:16px}.coupon-name{font-weight:500;color:#262626}.ant-table{.ant-tag{margin:0}}.ant-badge{.ant-badge-count{font-size:12px;min-width:40px;height:20px;line-height:20px}}}.mall-promotion-card{.statistics-section{padding:16px;background:linear-gradient(135deg,#fff7e6,#fffbe6);border-radius:4px;margin-bottom:16px;.ant-statistic-title{font-size:13px;color:#8c8c8c}.ant-statistic-content{font-size:28px}}.content-section{display:flex;gap:16px;.table-section{flex:1}.timeline-section{width:300px;.ant-card{height:100%}.ant-timeline{padding-top:8px}.ant-timeline-item-content{font-size:13px}}}.filter-section,.action-section{margin-bottom:16px}.promotion-title{font-weight:500;color:#262626}.ant-table{.ant-tag{margin:0}}@media (max-width: 1200px){.content-section{flex-direction:column;.timeline-section{width:100%}}}}.mall-user-card{.statistics-section{padding:16px;background:linear-gradient(135deg,#e6f7ff,#f0f5ff);border-radius:4px;margin-bottom:16px;.stat-item{text-align:center;.stat-value{font-size:24px;font-weight:600;color:#1890ff}.stat-label{font-size:12px;color:#8c8c8c;margin-top:4px}}}.filter-section{margin-bottom:16px;padding:16px;background:#fafafa;border-radius:4px}.action-section{margin-bottom:16px}.user-name{font-weight:500;color:#262626}.user-username{font-size:12px;color:#8c8c8c}.ant-table{.ant-tag{margin:0}}}.mall-role-card{.statistics-section{padding:16px;background:linear-gradient(135deg,#f0f5ff,#f5f0ff);border-radius:4px;margin-bottom:16px;.stat-item{text-align:center;.stat-value{font-size:24px;font-weight:600;color:#722ed1}.stat-label{font-size:12px;color:#8c8c8c;margin-top:4px}}}.content-section{display:flex;gap:16px;.table-section{flex:1}.permission-section{width:280px;.ant-card{height:100%}.ant-tree{font-size:13px}}}.filter-section{margin-bottom:16px;padding:16px;background:#fafafa;border-radius:4px}.action-section{margin-bottom:16px}.role-name{font-weight:500;color:#262626}.ant-table{.ant-tag{margin:0}}@media (max-width: 1200px){.content-section{flex-direction:column;.permission-section{width:100%}}}}.admin-layout{display:flex;height:100vh;width:100%;overflow:hidden;background-color:#f0f2f5;.sidebar-container{width:256px;height:100vh;background:linear-gradient(180deg,#001529,#002140);transition:all .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden;flex-shrink:0;z-index:10;box-shadow:2px 0 8px #00000026;&::-webkit-scrollbar{width:6px}&::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px;&:hover{background:#ffffff4d}}.sidebar-logo{height:64px;display:flex;align-items:center;justify-content:center;padding:16px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff05;.logo-text{color:#fff;font-size:20px;font-weight:600;white-space:nowrap;letter-spacing:1px}.logo-icon{color:#fff;font-size:24px;font-weight:700}}// Use more specific selectors to override antd styles without !important .ant-menu.ant-menu-dark{border-right:none;background:transparent;.ant-menu-item{margin:0 0 4px;border-radius:0;height:48px;line-height:48px;padding-left:24px;&:first-child{margin-top:8px}.anticon{margin-right:10px;font-size:16px}&:hover{background:#ffffff14;color:#fff}&.ant-menu-item-selected{background:linear-gradient(90deg,#1890ff,#096dd9);color:#fff;box-shadow:0 2px 8px #1890ff4d;&:after{display:none}}}.ant-menu-submenu{.ant-menu-submenu-title{height:48px;line-height:48px;padding-left:24px;margin:0 0 4px;.anticon{margin-right:10px;font-size:16px}&:hover{background:#ffffff14;color:#fff}}&.ant-menu-submenu-selected>.ant-menu-submenu-title{color:#1890ff}.ant-menu-sub{background:#0003;.ant-menu-item{height:44px;line-height:44px;padding-left:48px;&:hover{background:#ffffff0d}&.ant-menu-item-selected{background:#1890ff26;color:#1890ff;box-shadow:none}}}}}&.collapsed{width:80px;.ant-menu-inline-collapsed{width:80px}.sidebar-logo{padding:12px}.ant-menu.ant-menu-dark .ant-menu-item{padding-left:0;text-align:center}}}.layout-right{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;.navbar-container{height:64px;background:#fff;box-shadow:0 2px 8px #0000000f;display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:9;flex-shrink:0;.navbar-left{display:flex;align-items:center;gap:16px;.hamburger-btn{width:40px;height:40px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:18px;color:#000000a6;transition:all .3s;&:hover{background:#1890ff14;color:#1890ff}}}.navbar-right{.user-info{cursor:pointer;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;transition:all .3s;&:hover{background:#0000000a}.user-avatar{background:linear-gradient(135deg,#1890ff,#096dd9)}.username{color:#000000d9;font-size:14px;font-weight:500}}}}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f0f2f5;.tab-bar-container{background:#fff;display:flex;align-items:center;border-bottom:1px solid #e8e8e8;padding:0 16px;height:44px;flex-shrink:0;box-shadow:0 1px 4px #0000000a;.tab-bar-scroll{flex:1;overflow-x:auto;overflow-y:hidden;white-space:nowrap;display:flex;align-items:center;gap:8px;scrollbar-width:thin;&::-webkit-scrollbar{height:4px}&::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.tab-item{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;cursor:pointer;border-radius:4px 4px 0 0;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1);user-select:none;height:36px;font-size:13px;color:#000000a6;background:transparent;border:1px solid transparent;border-bottom:none;margin-bottom:-1px;.tab-icon{display:flex;align-items:center;font-size:14px}.tab-label{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-close-btn{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;opacity:0;transition:all .2s;margin-left:4px;&.visible{opacity:1}&:hover{background:#00000026;color:#fff}}&:hover{color:#1890ff;background:#1890ff0f;.tab-close-btn{opacity:1}}&.active{color:#1890ff;background:#fff;border-color:#e8e8e8;font-weight:500;.tab-close-btn{opacity:1}&:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:linear-gradient(90deg,#1890ff,#096dd9)}}}}.tab-actions{margin-left:8px;padding-left:12px;border-left:1px solid #e8e8e8;.close-all-btn{width:32px;height:32px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#00000073;transition:all .2s;&:hover{background:#ff4d4f14;color:#ff4d4f}}}}.content-wrapper{flex:1;overflow:auto;background:#f0f2f5;padding:24px;.page-container{min-height:100%;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000f;animation:fadeIn .3s ease-in-out}}}}// TabPane styles .tab-pane{width:100%;height:100%;position:relative;// \786e\4fdd\5728\8bbe\8ba1\6a21\5f0f\4e0b\ff0c\5185\90e8\7ec4\4ef6\53ef\4ee5\88ab\6b63\786e\9009\4e2d // \7279\522b\662f\5bf9\4e8e canvas \5143\7d20\ff08\5982 echarts\ff09 *{pointer-events:auto}// \786e\4fdd canvas \5143\7d20\4e0d\4f1a\963b\6b62\4e8b\4ef6\4f20\64ad canvas{pointer-events:auto}}.tab-pane--active{display:block}.mobile-overlay{display:none}&.is-collapse{.sidebar-container{width:80px}}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.admin-layout{.sidebar-container{position:fixed;left:0;top:0;z-index:1000;transform:translate(-100%);transition:transform .3s;&.collapsed{transform:translate(-100%);width:256px}}.mobile-overlay{display:block;position:fixed;inset:0;background:#00000073;z-index:999;opacity:0;visibility:hidden;transition:all .3s;&.visible{opacity:1;visibility:visible}}&:not(.is-collapse){.sidebar-container{transform:translate(0)}.mobile-overlay.visible{opacity:1;visibility:visible}}}}
@@ -1,4 +1,4 @@
1
- var MallComponents=(()=>{var fr=Object.create;var tt=Object.defineProperty;var hr=Object.getOwnPropertyDescriptor;var yr=Object.getOwnPropertyNames;var vr=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty;var ht=(m,r)=>()=>(r||m((r={exports:{}}).exports,r),r.exports),Cr=(m,r)=>{for(var l in r)tt(m,l,{get:r[l],enumerable:!0})},Yt=(m,r,l,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let w of yr(r))!xr.call(m,w)&&w!==l&&tt(m,w,{get:()=>r[w],enumerable:!(p=hr(r,w))||p.enumerable});return m};var V=(m,r,l)=>(l=m!=null?fr(vr(m)):{},Yt(r||!m||!m.__esModule?tt(l,"default",{value:m,enumerable:!0}):l,m)),Sr=m=>Yt(tt({},"__esModule",{value:!0}),m);var De=ht((Jr,_t)=>{_t.exports=window.antd});var ke=ht((Qr,Vt)=>{Vt.exports=Object.assign(window.React,{jsx:window.React.createElement,jsxs:window.React.createElement,Fragment:window.React.Fragment})});var ze=ht((Hr,jt)=>{jt.exports=window.icons});var qr={};Cr(qr,{AdminLayout:()=>gt,CouponCard:()=>lt,OrderForm:()=>st,OrderList:()=>it,ProductForm:()=>Ct,ProductList:()=>xt,PromotionCard:()=>dt,RoleCard:()=>ut,TabPane:()=>Xe,UserCard:()=>mt,default:()=>$r});var _n=V(De());var U=V(ke()),me=V(De()),Ue=V(ze());var Ye=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 w=await p.json();if(this.config.transform)try{w=new Function("data",this.config.transform)(w)}catch(_){console.error("Transform function error:",_)}return w}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,w=p+r.pageSize;return{...l,data:{...l.data,list:l.data.list.slice(p,w)}}}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 w=this.config.dataSource;if(typeof w=="string")try{w=JSON.parse(w)}catch(_){console.error("[VariableAdapter] dataSource JSON \u89E3\u6790\u5931\u8D25:",_)}return w&&typeof w=="object"?w.code===200&&w.data?w:w.list||Array.isArray(w)?{code:200,message:"success",data:{pageNum:1,pageSize:10,total:Array.isArray(w)?w.length:w.total||0,list:Array.isArray(w)?w:w.list||[]}}:{code:200,message:"success",data:w}:{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:m="mock",api:r,method:l="GET",mockData:p,variableName:w,dataSource:_,showFilter:q=!0,showAction:G=!0,showSelection:te=!0,showOperation:ie=!0,showStatus:J=!0,showPagination:T=!0,filterFields:z=[],actionButtons:re=[],columns:ce,batchOperations:se=[],onRowClick:ee,onSearch:Q,onPageChange:E,onActionClick:be,onBatchOperation:g,style:j,className:K})=>{let[$,ye]=U.default.useState(!1),[N,le]=U.default.useState([]),[oe,O]=U.default.useState(0),[X,H]=U.default.useState(1),[fe,he]=U.default.useState(10),[pe,ve]=U.default.useState(""),[Se,Ae]=U.default.useState([]),[ge,Oe]=U.default.useState([]),[Te,y]=U.default.useState(),b=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,U.useMemo)(()=>{let B=p;return B||(B=b),console.log("[ProductList] dataSourceConfig \u91CD\u65B0\u8BA1\u7B97:",{dataSourceType:m,mockData:typeof p=="string"?p.substring(0,100)+"...":p,variableName:w,dataSource:typeof _=="object"?"object":_}),{type:m,api:r||"",method:l,mockData:B,variableName:w||"",dataSource:_}},[m,r,l,p,w,_]);console.log("[ProductList] \u7EC4\u4EF6\u6E32\u67D3\uFF0Cprops:",{dataSourceType:m,api:r,method:l,mockData:typeof p=="string"?p.substring(0,100)+"...":p,variableName:w,dataSource:typeof _=="object"?"object":_,showFilter:q,showAction:G,showSelection:te});let x=(0,U.useMemo)(()=>(console.log("[ProductList] adapter \u91CD\u65B0\u521B\u5EFA, dataSourceType:",m),Ye.create(c)),[c]),Y=(0,U.useCallback)(async()=>{console.log("[ProductList] fetchData \u5F00\u59CB\uFF0C\u53C2\u6570:",{currentPage:X,pageSize:fe,searchText:pe}),ye(!0);try{let B={pageNum:X,pageSize:fe,keyword:pe||void 0};console.log("[ProductList] \u8C03\u7528 adapter.fetch\uFF0C\u53C2\u6570:",B);let ue=await x.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)}},[X,fe,pe,x]);(0,U.useEffect)(()=>{console.log("[ProductList] useEffect \u89E6\u53D1\uFF0C\u5F00\u59CB\u83B7\u53D6\u6570\u636E, dataSourceType:",m),Y()},[Y,m]);let f=()=>{H(1),Y(),Q?.(pe)},M=(B,ue)=>{H(B),he(ue),E?.(B,ue)},u=()=>{Te&&ge.length>0&&g?.(Te,ge)},e=[{title:"\u5546\u54C1\u56FE\u7247",dataIndex:"pic",key:"pic",width:100,render:B=>U.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},...J?[{title:"\u72B6\u6001",dataIndex:"publishStatus",key:"publishStatus",width:100,render:B=>U.default.createElement(me.Switch,{checked:B===1,checkedChildren:"\u4E0A\u67B6",unCheckedChildren:"\u4E0B\u67B6"})}]:[],...ie?[{title:"\u64CD\u4F5C",key:"operation",width:150,render:(B,ue)=>U.default.createElement(me.Space,{size:"small"},U.default.createElement(me.Button,{type:"link",size:"small",onClick:()=>ee?.(ue)},"\u67E5\u770B"),U.default.createElement(me.Button,{type:"link",size:"small"},"\u7F16\u8F91"),U.default.createElement(me.Button,{type:"link",size:"small",danger:!0},"\u5220\u9664"))}]:[]],v=te?{selectedRowKeys:Se,onChange:(B,ue)=>{Ae(B),Oe(ue)}}:void 0,Z=B=>{switch(B){case"plus":return U.default.createElement(Ue.PlusOutlined,null);case"download":return U.default.createElement(Ue.DownloadOutlined,null);case"upload":return U.default.createElement(Ue.UploadOutlined,null);default:return null}};return U.default.createElement("div",{className:`mall-product-list ${K||""}`,style:j},q&&U.default.createElement(me.Card,{className:"mall-product-list-filter",size:"small"},U.default.createElement(me.Space,null,U.default.createElement(me.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u540D\u79F0\u6216\u7F16\u53F7",prefix:U.default.createElement(Ue.SearchOutlined,null),value:pe,onChange:B=>ve(B.target.value),onPressEnter:f,style:{width:300}}),U.default.createElement(me.Button,{type:"primary",icon:U.default.createElement(Ue.SearchOutlined,null),onClick:f},"\u641C\u7D22"),U.default.createElement(me.Button,{icon:U.default.createElement(Ue.ReloadOutlined,null),onClick:()=>Y()},"\u5237\u65B0"))),G&&U.default.createElement(me.Card,{className:"mall-product-list-action",size:"small"},U.default.createElement(me.Space,null,re.map((B,ue)=>U.default.createElement(me.Button,{key:ue,type:B.type||"default",icon:Z(B.icon),onClick:()=>be?.(B.onClick||"")},B.text)),te&&se.length>0&&U.default.createElement(U.default.Fragment,null,U.default.createElement(me.Select,{placeholder:"\u6279\u91CF\u64CD\u4F5C",value:Te,onChange:y,style:{width:150}},se.map((B,ue)=>U.default.createElement(me.Select.Option,{key:ue,value:B.value},B.text))),U.default.createElement(me.Button,{onClick:u},"\u6267\u884C")))),U.default.createElement("div",{className:"mall-product-list-table"},U.default.createElement(me.Table,{rowKey:"id",columns:ce||e,dataSource:N,loading:$,rowSelection:v,pagination:!1,scroll:{x:1200}})),T&&U.default.createElement("div",{className:"pagination-wrapper"},U.default.createElement(me.Pagination,{current:X,pageSize:fe,total:oe,showSizeChanger:!0,showQuickJumper:!0,showTotal:B=>`\u5171 ${B} \u6761`,onChange:M})))},Kt=Tr;var xt=Kt;var s=V(ke()),n=V(De());var kr=({initialValues:m,mode:r="create",showBasicInfo:l=!0,showPriceInfo:p=!0,showStockInfo:w=!0,showStatusInfo:_=!0,showDescription:q=!0,onSubmit:G,onCancel:te,style:ie,className:J})=>{let[T]=n.Form.useForm(),[z,re]=(0,s.useState)("basic");(0,s.useEffect)(()=>{if(m){let N=m;if(typeof m=="string")try{N=JSON.parse(m)}catch(le){console.error("Failed to parse initialValues:",le),N={}}T.setFieldsValue(N)}},[m,T]);let ce=async()=>{try{let N=await T.validateFields();G?.(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=()=>{T.resetFields(),te?.()},ee=()=>{T.resetFields()},Q=()=>{if(typeof m=="string")try{return JSON.parse(m)}catch{return{}}return m||{}},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}))))],g=[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}))))],K=[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}))))],$=[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?g:null},{key:"stock",label:"\u5E93\u5B58\u4FE1\u606F",children:w?j:null},{key:"status",label:"\u72B6\u6001\u4FE1\u606F",children:_?K:null},{key:"description",label:"\u63CF\u8FF0\u4FE1\u606F",children:q?$:null}];return s.default.createElement("div",{className:`mall-product-form ${J||""}`,style:ie},s.default.createElement(n.Card,null,s.default.createElement(n.Form,{form:T,layout:"vertical",initialValues:Q(),disabled:E},s.default.createElement(n.Tabs,{activeKey:z,onChange:re,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:ee},"\u91CD\u7F6E")),s.default.createElement(n.Button,{onClick:se},E?"\u5173\u95ED":"\u53D6\u6D88"))))))},$t=kr;var Ct=$t;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},_e={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}],qt=[{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:_e.PC},{label:"APP\u8BA2\u5355",value:_e.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:_e.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:_e.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:_e.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:_e.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:_e.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:m="mock",api:r,method:l="GET",mockData:p,variableName:w,dataSource:_,showFilter:q=!0,showStatusFilter:G=!0,showSearch:te=!0,showDatePicker:ie=!0,showActions:J=!0,showBatchOperations:T=!0,showExport:z=!0,showPagination:re=!0,defaultPageSize:ce=10,onRowClick:se,onSearch:ee,onPageChange:Q,onActionClick:E,onBatchOperation:be,style:g,className:j})=>{let[K,$]=(0,t.useState)(!1),[ye,N]=(0,t.useState)([]),[le,oe]=(0,t.useState)(0),[O,X]=(0,t.useState)(1),[H,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,d]=(0,t.useState)(),[b,c]=(0,t.useState)(),[x,Y]=(0,t.useState)(),[f,M]=(0,t.useState)(),[u,e]=(0,t.useState)(!1),[v,Z]=(0,t.useState)(),[B,ue]=(0,t.useState)(!1),[Nt,nr]=(0,t.useState)(),[bt,At]=(0,t.useState)(""),[ft,Dt]=(0,t.useState)(""),Et=(0,t.useMemo)(()=>({type:m,api:r,method:l,mockData:p?(()=>{try{return typeof p=="string"?JSON.parse(p):p}catch{return at}})():at,variableName:w,dataSource:_}),[m,r,l,p,w,_]),Lt=(0,t.useMemo)(()=>Ye.create(Et),[Et]);(0,t.useEffect)(()=>{Ke()},[O,H,Lt]);let Ke=async()=>{$(!0);try{let P={pageNum:O,pageSize:H,orderSn:he||void 0,status:y,orderType:b,sourceType:x,createTime:f?`${f[0]?.format("YYYY-MM-DD")},${f[1]?.format("YYYY-MM-DD")}`:void 0},de=await Lt.fetch(P),Ee=[],$e=0;de?.data?.list?(Ee=de.data.list,$e=de.data.total||Ee.length):Array.isArray(de?.data)?(Ee=de.data,$e=Ee.length):Array.isArray(de)&&(Ee=de,$e=Ee.length),N(Ee),oe($e)}catch(P){console.error("Failed to fetch order list:",P),i.message.error("\u83B7\u53D6\u8BA2\u5355\u5217\u8868\u5931\u8D25"),N(at.data.list),oe(at.data.total)}finally{$(!1)}},Ft=()=>{X(1),Ke(),ee?.({orderSn:he||void 0,status:y,orderType:b,sourceType:x,createTime:f?`${f[0]?.format("YYYY-MM-DD")},${f[1]?.format("YYYY-MM-DD")}`:void 0})},ar=()=>{pe(""),d(void 0),c(void 0),Y(void 0),M(void 0),X(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()},Ut=P=>{Z(P),e(!0),E?.("view",P)},Bt=P=>{nr(P),ue(!0),E?.("deliver",P)},dr=P=>{i.Modal.confirm({title:"\u786E\u8BA4\u5173\u95ED\u8BA2\u5355",content:`\u786E\u5B9A\u8981\u5173\u95ED\u8BA2\u5355 ${P.orderSn} \u5417\uFF1F`,onOk:()=>{E?.("close",P),i.message.success("\u8BA2\u5355\u5DF2\u5173\u95ED"),Ke()}})},mr=P=>{i.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664\u8BA2\u5355",content:`\u786E\u5B9A\u8981\u5220\u9664\u8BA2\u5355 ${P.orderSn} \u5417\uFF1F`,onOk:()=>{E?.("delete",P),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 P={orderId:Nt.id,deliveryCompany:bt,deliverySn:ft};E?.("deliverSubmit",Nt),i.message.success("\u53D1\u8D27\u6210\u529F"),ue(!1),At(""),Dt(""),Ke()},Mt=P=>{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[P]||{color:"default",text:"\u672A\u77E5"};return t.default.createElement(i.Tag,{color:Ee},$e)},zt=P=>{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[P]||{color:"default",text:"\u672A\u77E5"};return t.default.createElement(i.Tag,{color:Ee},$e)},cr=P=>P===_e.APP?t.default.createElement(i.Tag,{color:"purple"},"APP"):t.default.createElement(i.Tag,{color:"geekblue"},"PC"),pr=P=>P===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:P=>t.default.createElement(i.Tooltip,{title:P},t.default.createElement("span",{className:"order-sn"},P))},{title:"\u7528\u6237\u8D26\u53F7",dataIndex:"memberUsername",key:"memberUsername",width:120},{title:"\u8BA2\u5355\u91D1\u989D",dataIndex:"totalAmount",key:"totalAmount",width:120,render:P=>t.default.createElement("span",{className:"order-amount"},"\xA5",P.toFixed(2))},{title:"\u5B9E\u4ED8\u91D1\u989D",dataIndex:"payAmount",key:"payAmount",width:120,render:P=>t.default.createElement("span",{className:"pay-amount"},"\xA5",P.toFixed(2))},{title:"\u652F\u4ED8\u65B9\u5F0F",dataIndex:"payType",key:"payType",width:100,render:P=>zt(P)},{title:"\u8BA2\u5355\u6765\u6E90",dataIndex:"sourceType",key:"sourceType",width:100,render:P=>cr(P)},{title:"\u8BA2\u5355\u7C7B\u578B",dataIndex:"orderType",key:"orderType",width:100,render:P=>pr(P)},{title:"\u8BA2\u5355\u72B6\u6001",dataIndex:"status",key:"status",width:100,render:P=>Mt(P)},{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:(P,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:()=>Ut(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:()=>Bt(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:()=>Ut(de)},"\u8BE6\u60C5"),de.status===ne.PENDING_DELIVERY&&t.default.createElement(i.Button,{type:"link",size:"small",onClick:()=>Bt(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:(P,de)=>{Se(P),ge(de)}};return t.default.createElement("div",{className:`mall-order-list ${j||""}`,style:g},t.default.createElement(i.Card,null,q&&t.default.createElement("div",{className:"filter-section"},t.default.createElement(i.Row,{gutter:[16,16]},te&&t.default.createElement(i.Col,{span:6},t.default.createElement(i.Input,{placeholder:"\u8BA2\u5355\u7F16\u53F7",value:he,onChange:P=>pe(P.target.value),onPressEnter:Ft,prefix:t.default.createElement(we.SearchOutlined,null)})),G&&t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u72B6\u6001",value:y,onChange:d,style:{width:"100%"},allowClear:!0},rt.map(P=>t.default.createElement(i.Select.Option,{key:P.value,value:P.value},P.label)))),t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u7C7B\u578B",value:b,onChange:c,style:{width:"100%"},allowClear:!0},nt.map(P=>t.default.createElement(i.Select.Option,{key:P.value,value:P.value},P.label)))),t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u6765\u6E90",value:x,onChange:Y,style:{width:"100%"},allowClear:!0},ot.map(P=>t.default.createElement(i.Select.Option,{key:P.value,value:P.value},P.label)))),ie&&t.default.createElement(i.Col,{span:6},t.default.createElement(wr,{value:f,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:Ft},"\u67E5\u8BE2"),t.default.createElement(i.Button,{onClick:ar},"\u91CD\u7F6E"))))),T&&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")),J&&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:K,pagination:re?{current:O,pageSize:H,total:le,showSizeChanger:!0,showQuickJumper:!0,showTotal:P=>`\u5171 ${P} \u6761`,onChange:(P,de)=>{X(P),fe(de),Q?.(P,de)}}:!1,rowSelection:br,scroll:{x:1500},onRow:P=>({onClick:()=>se?.(P)})})),t.default.createElement(i.Modal,{title:"\u8BA2\u5355\u8BE6\u60C5",visible:u,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"},zt(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: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:At,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:P=>Dt(P.target.value),placeholder:"\u8BF7\u8F93\u5165\u7269\u6D41\u5355\u53F7"})))))},it=Pr;var a=V(ke()),o=V(De());var{TextArea:Gt}=o.Input,Ir=({initialValues:m,mode:r="create",showBasicInfo:l=!0,showReceiverInfo:p=!0,showMoneyInfo:w=!0,showOrderItems:_=!0,showStatusInfo:q=!0,onSubmit:G,onCancel:te,style:ie,className:J})=>{let[T]=o.Form.useForm(),[z,re]=(0,a.useState)("basic"),[ce,se]=(0,a.useState)([]);(0,a.useEffect)(()=>{if(m){let O=m;if(typeof m=="string")try{O=JSON.parse(m)}catch(X){console.error("Failed to parse initialValues:",X),O={}}T.setFieldsValue(O),O.orderItemList&&se(O.orderItemList)}},[m,T]);let ee=async()=>{try{let O=await T.validateFields();G?.(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=()=>{T.resetFields(),te?.()},E=()=>{T.resetFields()},be=()=>{if(typeof m=="string")try{return JSON.parse(m)}catch{return{}}return m||{}},g=r==="view",j=O=>{let X={[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:H,text:fe}=X[O]||{color:"default",text:"\u672A\u77E5"};return a.default.createElement(o.Tag,{color:H},fe)},K=[{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,X)=>`\xA5${(X.productPrice*X.productQuantity).toFixed(2)}`}],$=[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:g}))),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:g})))),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:g},qt.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:g},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:g},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:g}))),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:g})))),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:g}))),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:g}))),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:g})))),a.default.createElement(o.Form.Item,{key:"receiverDetailAddress",name:"receiverDetailAddress",label:"\u8BE6\u7EC6\u5730\u5740"},a.default.createElement(Gt,{rows:2,placeholder:"\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740",disabled:g})),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:g}))),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:g}))))],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:g}))),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:g}))),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:g})))),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:g}))),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:g}))),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:g}))))],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:g},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:g},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:g})),a.default.createElement(o.Form.Item,{key:"note",name:"note",label:"\u8BA2\u5355\u5907\u6CE8"},a.default.createElement(Gt,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u8BA2\u5355\u5907\u6CE8",disabled:g}))],oe=[{key:"basic",label:"\u57FA\u672C\u4FE1\u606F",children:l?$:null},{key:"receiver",label:"\u6536\u8D27\u4FE1\u606F",children:p?ye:null},{key:"money",label:"\u8D39\u7528\u4FE1\u606F",children:w?N:null},{key:"items",label:"\u5546\u54C1\u4FE1\u606F",children:_?a.default.createElement(o.Table,{columns:K,dataSource:ce,rowKey:"id",pagination:!1,scroll:{x:900}}):null},{key:"status",label:"\u72B6\u6001\u4FE1\u606F",children:q?le:null}];return a.default.createElement("div",{className:`mall-order-form ${J||""}`,style:ie},a.default.createElement(o.Card,null,a.default.createElement(o.Form,{form:T,layout:"vertical",initialValues:be(),disabled:g},a.default.createElement(o.Tabs,{activeKey:z,onChange:re,items:oe}),a.default.createElement(o.Divider,null),a.default.createElement(o.Form.Item,null,a.default.createElement(o.Space,null,!g&&a.default.createElement(a.default.Fragment,null,a.default.createElement(o.Button,{type:"primary",onClick:ee},r==="create"?"\u521B\u5EFA":"\u4FDD\u5B58"),a.default.createElement(o.Button,{onClick:E},"\u91CD\u7F6E")),a.default.createElement(o.Button,{onClick:Q},g?"\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},Jt=[{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}],Ce={ENABLED:1,DISABLED:0},Qt=[{label:"\u542F\u7528",value:Ce.ENABLED},{label:"\u7981\u7528",value:Ce.DISABLED}];var{RangePicker:Or}=S.DatePicker,Ht={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:m="mock",api:r,method:l="GET",mockData:p,variableName:w,showCreateButton:_=!0,showFilter:q=!0,showStatistics:G=!0,onCreateCoupon:te,onEditCoupon:ie,onDeleteCoupon:J,style:T,className:z})=>{let[re,ce]=(0,h.useState)(!1),[se,ee]=(0,h.useState)([]),[Q,E]=(0,h.useState)(0),[be,g]=(0,h.useState)(1),[j,K]=(0,h.useState)(10),[$,ye]=(0,h.useState)(""),[N,le]=(0,h.useState)(),[oe,O]=(0,h.useState)(),[X,H]=(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:m,api:r,method:l,mockData:p?(()=>{try{return typeof p=="string"?JSON.parse(p):p}catch{return Ht}})():Ht,variableName:w}),[m,r,l,p,w]),Ae=(0,h.useMemo)(()=>Ye.create(Se),[Se]);(0,h.useEffect)(()=>{ge()},[be,j,Ae]);let ge=async()=>{ce(!0);try{let u=await Ae.fetch({pageNum:be,pageSize:j,name:$,type:N,platform:oe}),e=[],v=0;u?.data?.list?(e=u.data.list,v=u.data.total||e.length):Array.isArray(u?.data)?(e=u.data,v=e.length):Array.isArray(u)&&(e=u,v=e.length),($||N!==void 0||oe!==void 0)&&(e=e.filter(Z=>!($&&!Z.name.toLowerCase().includes($.toLowerCase())||N!==void 0&&Z.type!==N||oe!==void 0&&Z.platform!==oe)),v=e.length),ee(e),E(v)}catch(u){console.error("Failed to fetch coupon list:",u),S.message.error("\u83B7\u53D6\u4F18\u60E0\u5238\u5217\u8868\u5931\u8D25"),ee(ve),E(ve.length)}finally{ce(!1)}},Oe=()=>{g(1),ge()},Te=()=>{ye(""),le(void 0),O(void 0),g(1),ge()},y=()=>{he(null),pe.resetFields(),H(!0)},d=u=>{he(u),pe.setFieldsValue({...u,dateRange:[u.startTime,u.endTime]}),H(!0)},b=u=>{S.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u4F18\u60E0\u5238\u5417\uFF1F",onOk:()=>{J?.(u),S.message.success("\u5220\u9664\u6210\u529F"),ge()}})},c=async()=>{try{let u=await pe.validateFields(),e={...u,startTime:u.dateRange?.[0],endTime:u.dateRange?.[1]};fe?(ie?.(fe.id,e),S.message.success("\u7F16\u8F91\u6210\u529F")):(te?.(e),S.message.success("\u521B\u5EFA\u6210\u529F")),H(!1),ge()}catch(u){console.error("Validation failed:",u)}},x=u=>{let e={[Be.FULL_REDUCTION]:{color:"red",text:"\u6EE1\u51CF\u5238"},[Be.DISCOUNT]:{color:"blue",text:"\u6298\u6263\u5238"}},{color:v,text:Z}=e[u]||{color:"default",text:"\u672A\u77E5"};return h.default.createElement(S.Tag,{color:v},Z)},Y=u=>{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:Z}=e[u]||{color:"default",text:"\u672A\u77E5"};return h.default.createElement(S.Tag,{color:v},Z)},f=[{title:"\u4F18\u60E0\u5238\u540D\u79F0",dataIndex:"name",key:"name",width:150,render:u=>h.default.createElement(S.Tooltip,{title:u},h.default.createElement("span",{className:"coupon-name"},u))},{title:"\u7C7B\u578B",dataIndex:"type",key:"type",width:80,render:u=>x(u)},{title:"\u4F18\u60E0\u5185\u5BB9",key:"content",width:120,render:(u,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:u=>Y(u)},{title:"\u53D1\u884C\u91CF",dataIndex:"count",key:"count",width:80,render:u=>h.default.createElement(S.Badge,{count:u,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:(u,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:(u,e)=>h.default.createElement(S.Space,null,h.default.createElement(S.Button,{type:"link",size:"small",icon:h.default.createElement(qe.EditOutlined,null),onClick:()=>d(e)},"\u7F16\u8F91"),h.default.createElement(S.Button,{type:"link",size:"small",danger:!0,icon:h.default.createElement(qe.DeleteOutlined,null),onClick:()=>b(e.id)},"\u5220\u9664"))}],M={totalCoupons:se.length,activeCoupons:se.filter(u=>u.useCount>0).length,totalUsed:se.reduce((u,e)=>u+e.useCount,0),totalReceived:se.reduce((u,e)=>u+e.receiveCount,0)};return h.default.createElement("div",{className:`mall-coupon-card ${z||""}`,style:T},h.default.createElement(S.Card,null,G&&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")))),q&&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:$,onChange:u=>ye(u.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},Jt.map(u=>h.default.createElement(S.Select.Option,{key:u.value,value:u.value},u.label))),h.default.createElement(S.Select,{placeholder:"\u9002\u7528\u5E73\u53F0",value:oe,onChange:O,style:{width:120},allowClear:!0},St.map(u=>h.default.createElement(S.Select.Option,{key:u.value,value:u.value},u.label))),h.default.createElement(S.Button,{type:"primary",onClick:Oe},"\u67E5\u8BE2"),h.default.createElement(S.Button,{onClick:Te},"\u91CD\u7F6E"))),_&&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:f,dataSource:se,rowKey:"id",loading:re,pagination:{current:be,pageSize:j,total:Q,showSizeChanger:!0,showQuickJumper:!0,showTotal:u=>`\u5171 ${u} \u6761`,onChange:(u,e)=>{g(u),K(e)}}})),h.default.createElement(S.Modal,{title:fe?"\u7F16\u8F91\u4F18\u60E0\u5238":"\u521B\u5EFA\u4F18\u60E0\u5238",visible:X,onOk:c,onCancel:()=>H(!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(u=>h.default.createElement(S.Select.Option,{key:u.value,value:u.value},u.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 C=V(ke()),A=V(De()),Ne=V(ze());var{RangePicker:Ar}=A.DatePicker,Wt={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:m="mock",api:r,method:l="GET",mockData:p,variableName:w,showCreateButton:_=!0,showFilter:q=!0,showStatistics:G=!0,showTimeline:te=!0,onCreatePromotion:ie,onEditPromotion:J,onDeletePromotion:T,onToggleStatus:z,style:re,className:ce})=>{let[se,ee]=(0,C.useState)(!1),[Q,E]=(0,C.useState)([]),[be,g]=(0,C.useState)(0),[j,K]=(0,C.useState)(1),[$,ye]=(0,C.useState)(10),[N,le]=(0,C.useState)(""),[oe,O]=(0,C.useState)(),[X,H]=(0,C.useState)(!1),[fe,he]=(0,C.useState)(null),[pe]=A.Form.useForm(),ve=[{id:1,title:"\u53CC\u5341\u4E00\u5927\u4FC3",startDate:"2024-11-01",endDate:"2024-11-11",status:Ce.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:Ce.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:Ce.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:Ce.ENABLED,createTime:"2024-03-01 10:00:00"}],Se=(0,C.useMemo)(()=>({type:m,api:r,method:l,mockData:p?(()=>{try{return typeof p=="string"?JSON.parse(p):p}catch{return Wt}})():Wt,variableName:w}),[m,r,l,p,w]),Ae=(0,C.useMemo)(()=>Ye.create(Se),[Se]);(0,C.useEffect)(()=>{ge()},[j,$,Ae]);let ge=async()=>{ee(!0);try{let e=await Ae.fetch({pageNum:j,pageSize:$,title:N,status:oe}),v=[],Z=0;e?.data?.list?(v=e.data.list,Z=e.data.total||v.length):Array.isArray(e?.data)?(v=e.data,Z=v.length):Array.isArray(e)&&(v=e,Z=v.length),(N||oe!==void 0)&&(v=v.filter(B=>!(N&&!B.title.toLowerCase().includes(N.toLowerCase())||oe!==void 0&&B.status!==oe)),Z=v.length),E(v),g(Z)}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),g(ve.length)}finally{ee(!1)}},Oe=()=>{K(1),ge()},Te=()=>{le(""),O(void 0),K(1),ge()},y=()=>{he(null),pe.resetFields(),H(!0)},d=e=>{he(e),pe.setFieldsValue({...e,dateRange:[e.startDate,e.endDate]}),H(!0)},b=e=>{A.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u4FC3\u9500\u6D3B\u52A8\u5417\uFF1F",onOk:()=>{T?.(e),A.message.success("\u5220\u9664\u6210\u529F"),ge()}})},c=e=>{let v=e.status===Ce.ENABLED?Ce.DISABLED:Ce.ENABLED;z?.(e.id,v),A.message.success(v===Ce.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),ge()},x=async()=>{try{let e=await pe.validateFields(),v={...e,startDate:e.dateRange?.[0],endDate:e.dateRange?.[1]};fe?(J?.(fe.id,v),A.message.success("\u7F16\u8F91\u6210\u529F")):(ie?.(v),A.message.success("\u521B\u5EFA\u6210\u529F")),H(!1),ge()}catch(e){console.error("Validation failed:",e)}},Y=e=>{let v={[Ce.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528",icon:C.default.createElement(Ne.CheckCircleOutlined,null)},[Ce.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528",icon:C.default.createElement(Ne.CloseCircleOutlined,null)}},{color:Z,text:B,icon:ue}=v[e]||{color:"default",text:"\u672A\u77E5",icon:null};return C.default.createElement(A.Tag,{color:Z,icon:ue},B)},f=[{title:"\u6D3B\u52A8\u540D\u79F0",dataIndex:"title",key:"title",width:200,render:e=>C.default.createElement(A.Tooltip,{title:e},C.default.createElement("span",{className:"promotion-title"},C.default.createElement(Ne.ThunderboltOutlined,{style:{color:"#faad14",marginRight:8}}),e))},{title:"\u6D3B\u52A8\u65F6\u95F4",key:"dateRange",width:220,render:(e,v)=>C.default.createElement(A.Space,null,C.default.createElement(Ne.ClockCircleOutlined,null),C.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)=>C.default.createElement(A.Space,null,C.default.createElement(A.Button,{type:"link",size:"small",icon:C.default.createElement(Ne.EditOutlined,null),onClick:()=>d(v)},"\u7F16\u8F91"),C.default.createElement(A.Button,{type:"link",size:"small",onClick:()=>c(v)},v.status===Ce.ENABLED?"\u7981\u7528":"\u542F\u7528"),C.default.createElement(A.Button,{type:"link",size:"small",danger:!0,icon:C.default.createElement(Ne.DeleteOutlined,null),onClick:()=>b(v.id)},"\u5220\u9664"))}],M={totalPromotions:Q.length,activePromotions:Q.filter(e=>e.status===Ce.ENABLED).length,upcomingPromotions:Q.filter(e=>{let v=new Date;return new Date(e.startDate)>v}).length},u=Q.filter(e=>e.status===Ce.ENABLED).slice(0,5).map(e=>({color:"green",children:C.default.createElement("div",null,C.default.createElement("div",{className:"timeline-title"},e.title),C.default.createElement("div",{className:"timeline-date"},e.startDate," ~ ",e.endDate))}));return C.default.createElement("div",{className:`mall-promotion-card ${ce||""}`,style:re},C.default.createElement(A.Card,null,G&&C.default.createElement("div",{className:"statistics-section"},C.default.createElement(A.Row,{gutter:16},C.default.createElement(A.Col,{span:8},C.default.createElement(A.Statistic,{title:"\u4FC3\u9500\u6D3B\u52A8\u603B\u6570",value:M.totalPromotions,prefix:C.default.createElement(Ne.ThunderboltOutlined,null)})),C.default.createElement(A.Col,{span:8},C.default.createElement(A.Statistic,{title:"\u8FDB\u884C\u4E2D\u7684\u6D3B\u52A8",value:M.activePromotions,valueStyle:{color:"#3f8600"}})),C.default.createElement(A.Col,{span:8},C.default.createElement(A.Statistic,{title:"\u5373\u5C06\u5F00\u59CB",value:M.upcomingPromotions,valueStyle:{color:"#faad14"}})))),q&&C.default.createElement("div",{className:"filter-section"},C.default.createElement(A.Space,{wrap:!0},C.default.createElement(A.Input,{placeholder:"\u6D3B\u52A8\u540D\u79F0",value:N,onChange:e=>le(e.target.value),style:{width:200}}),C.default.createElement(A.Select,{placeholder:"\u6D3B\u52A8\u72B6\u6001",value:oe,onChange:O,style:{width:120},allowClear:!0},Qt.map(e=>C.default.createElement(A.Select.Option,{key:e.value,value:e.value},e.label))),C.default.createElement(A.Button,{type:"primary",onClick:Oe},"\u67E5\u8BE2"),C.default.createElement(A.Button,{onClick:Te},"\u91CD\u7F6E"))),_&&C.default.createElement("div",{className:"action-section"},C.default.createElement(A.Button,{type:"primary",icon:C.default.createElement(Ne.PlusOutlined,null),onClick:y},"\u521B\u5EFA\u4FC3\u9500\u6D3B\u52A8")),C.default.createElement("div",{className:"content-section"},C.default.createElement("div",{className:"table-section"},C.default.createElement(A.Table,{columns:f,dataSource:Q,rowKey:"id",loading:se,pagination:{current:j,pageSize:$,total:be,showSizeChanger:!0,showQuickJumper:!0,showTotal:e=>`\u5171 ${e} \u6761`,onChange:(e,v)=>{K(e),ye(v)}}})),te&&u.length>0&&C.default.createElement("div",{className:"timeline-section"},C.default.createElement(A.Card,{title:"\u6D3B\u52A8\u65F6\u95F4\u7EBF",size:"small"},C.default.createElement(A.Timeline,{items:u}))))),C.default.createElement(A.Modal,{title:fe?"\u7F16\u8F91\u4FC3\u9500\u6D3B\u52A8":"\u521B\u5EFA\u4FC3\u9500\u6D3B\u52A8",visible:X,onOk:x,onCancel:()=>H(!1),width:500},C.default.createElement(A.Form,{form:pe,layout:"vertical"},C.default.createElement(A.Form.Item,{name:"title",label:"\u6D3B\u52A8\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6D3B\u52A8\u540D\u79F0"}]},C.default.createElement(A.Input,{placeholder:"\u8BF7\u8F93\u5165\u6D3B\u52A8\u540D\u79F0"})),C.default.createElement(A.Form.Item,{name:"dateRange",label:"\u6D3B\u52A8\u65F6\u95F4",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6D3B\u52A8\u65F6\u95F4"}]},C.default.createElement(Ar,{style:{width:"100%"}})),C.default.createElement(A.Form.Item,{name:"status",label:"\u6D3B\u52A8\u72B6\u6001",initialValue:Ce.ENABLED},C.default.createElement(A.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},dt=Dr;var k=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},Xt=[{label:"\u7981\u7528",value:Pe.DISABLED},{label:"\u542F\u7528",value:Pe.ENABLED}],Zt=[{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:m,showCreateButton:r=!0,showFilter:l=!0,showStatistics:p=!0,onCreateUser:w,onEditUser:_,onDeleteUser:q,onToggleStatus:G,style:te,className:ie})=>{let[J,T]=(0,k.useState)(!1),[z,re]=(0,k.useState)([]),[ce,se]=(0,k.useState)(0),[ee,Q]=(0,k.useState)(1),[E,be]=(0,k.useState)(10),[g,j]=(0,k.useState)(""),[K,$]=(0,k.useState)(),[ye,N]=(0,k.useState)(!1),[le,oe]=(0,k.useState)(null),[O]=D.Form.useForm(),X=[{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,k.useEffect)(()=>{H()},[ee,E]);let H=async()=>{T(!0);try{await new Promise(b=>setTimeout(b,500));let d=[...X];g&&(d=d.filter(b=>b.username.toLowerCase().includes(g.toLowerCase())||b.nickName?.toLowerCase().includes(g.toLowerCase()))),K!==void 0&&(d=d.filter(b=>b.status===K)),re(d),se(d.length)}catch(d){console.error("Failed to fetch user list:",d),D.message.error("\u83B7\u53D6\u7528\u6237\u5217\u8868\u5931\u8D25")}finally{T(!1)}},fe=()=>{Q(1),H()},he=()=>{j(""),$(void 0),Q(1),H()},pe=()=>{oe(null),O.resetFields(),N(!0)},ve=d=>{oe(d),O.setFieldsValue(d),N(!0)},Se=d=>{D.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u7528\u6237\u5417\uFF1F",onOk:()=>{q?.(d),D.message.success("\u5220\u9664\u6210\u529F"),H()}})},Ae=d=>{let b=d.status===Pe.ENABLED?Pe.DISABLED:Pe.ENABLED;G?.(d.id,b),D.message.success(b===Pe.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),H()},ge=async()=>{try{let d=await O.validateFields();le?(_?.(le.id,d),D.message.success("\u7F16\u8F91\u6210\u529F")):(w?.(d),D.message.success("\u521B\u5EFA\u6210\u529F")),N(!1),H()}catch(d){console.error("Validation failed:",d)}},Oe=d=>{let b={[Pe.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528"},[Pe.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528"}},{color:c,text:x}=b[d]||{color:"default",text:"\u672A\u77E5"};return k.default.createElement(D.Tag,{color:c},x)},Te=[{title:"\u7528\u6237\u4FE1\u606F",key:"userInfo",width:200,render:(d,b)=>k.default.createElement(D.Space,null,k.default.createElement(D.Avatar,{icon:k.default.createElement(Ge.UserOutlined,null),style:{backgroundColor:"#1890ff"}}),k.default.createElement("div",null,k.default.createElement("div",{className:"user-name"},b.nickName||b.username),k.default.createElement("div",{className:"user-username"},"@",b.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:d=>k.default.createElement(D.Space,{wrap:!0},d?.map((b,c)=>k.default.createElement(D.Tag,{key:c,color:"blue"},b)))},{title:"\u72B6\u6001",dataIndex:"status",key:"status",width:80,render:d=>Oe(d)},{title:"\u6700\u540E\u767B\u5F55",dataIndex:"loginTime",key:"loginTime",width:160},{title:"\u64CD\u4F5C",key:"action",width:180,render:(d,b)=>k.default.createElement(D.Space,null,k.default.createElement(D.Button,{type:"link",size:"small",icon:k.default.createElement(Ge.EditOutlined,null),onClick:()=>ve(b)},"\u7F16\u8F91"),k.default.createElement(D.Button,{type:"link",size:"small",onClick:()=>Ae(b)},b.status===Pe.ENABLED?"\u7981\u7528":"\u542F\u7528"),k.default.createElement(D.Button,{type:"link",size:"small",danger:!0,icon:k.default.createElement(Ge.DeleteOutlined,null),onClick:()=>Se(b.id)},"\u5220\u9664"))}],y={totalUsers:X.length,activeUsers:X.filter(d=>d.status===Pe.ENABLED).length,disabledUsers:X.filter(d=>d.status===Pe.DISABLED).length};return k.default.createElement("div",{className:`mall-user-card ${ie||""}`,style:te},k.default.createElement(D.Card,null,p&&k.default.createElement("div",{className:"statistics-section"},k.default.createElement(D.Space,{size:"large"},k.default.createElement("div",{className:"stat-item"},k.default.createElement("div",{className:"stat-value"},y.totalUsers),k.default.createElement("div",{className:"stat-label"},"\u7528\u6237\u603B\u6570")),k.default.createElement(D.Divider,{type:"vertical",style:{height:40}}),k.default.createElement("div",{className:"stat-item"},k.default.createElement("div",{className:"stat-value",style:{color:"#52c41a"}},y.activeUsers),k.default.createElement("div",{className:"stat-label"},"\u6D3B\u8DC3\u7528\u6237")),k.default.createElement(D.Divider,{type:"vertical",style:{height:40}}),k.default.createElement("div",{className:"stat-item"},k.default.createElement("div",{className:"stat-value",style:{color:"#8c8c8c"}},y.disabledUsers),k.default.createElement("div",{className:"stat-label"},"\u5DF2\u7981\u7528")))),l&&k.default.createElement("div",{className:"filter-section"},k.default.createElement(D.Space,{wrap:!0},k.default.createElement(D.Input,{placeholder:"\u7528\u6237\u540D/\u6635\u79F0",value:g,onChange:d=>j(d.target.value),style:{width:200}}),k.default.createElement(D.Select,{placeholder:"\u7528\u6237\u72B6\u6001",value:K,onChange:$,style:{width:120},allowClear:!0},Xt.map(d=>k.default.createElement(D.Select.Option,{key:d.value,value:d.value},d.label))),k.default.createElement(D.Button,{type:"primary",onClick:fe},"\u67E5\u8BE2"),k.default.createElement(D.Button,{onClick:he},"\u91CD\u7F6E"))),r&&k.default.createElement("div",{className:"action-section"},k.default.createElement(D.Button,{type:"primary",icon:k.default.createElement(Ge.PlusOutlined,null),onClick:pe},"\u521B\u5EFA\u7528\u6237")),k.default.createElement(D.Table,{columns:Te,dataSource:z,rowKey:"id",loading:J,pagination:{current:ee,pageSize:E,total:ce,showSizeChanger:!0,showQuickJumper:!0,showTotal:d=>`\u5171 ${d} \u6761`,onChange:(d,b)=>{Q(d),be(b)}}})),k.default.createElement(D.Modal,{title:le?"\u7F16\u8F91\u7528\u6237":"\u521B\u5EFA\u7528\u6237",visible:ye,onOk:ge,onCancel:()=>N(!1),width:500},k.default.createElement(D.Form,{form:O,layout:"vertical"},k.default.createElement(D.Form.Item,{name:"username",label:"\u7528\u6237\u540D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u7528\u6237\u540D"}]},k.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u540D",disabled:!!le})),k.default.createElement(D.Form.Item,{name:"nickName",label:"\u6635\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6635\u79F0"}]},k.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u6635\u79F0"})),k.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"}]},k.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u90AE\u7BB1"})),k.default.createElement(D.Form.Item,{name:"phone",label:"\u624B\u673A\u53F7",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u624B\u673A\u53F7"}]},k.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u624B\u673A\u53F7"})),k.default.createElement(D.Form.Item,{name:"status",label:"\u72B6\u6001",initialValue:Pe.ENABLED},k.default.createElement(D.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},mt=Er;var I=V(ke()),L=V(De()),Je=V(ze());var Lr=({dataSource:m,showCreateButton:r=!0,showFilter:l=!0,showStatistics:p=!0,showPermissionTree:w=!0,onCreateRole:_,onEditRole:q,onDeleteRole:G,onToggleStatus:te,style:ie,className:J})=>{let[T,z]=(0,I.useState)(!1),[re,ce]=(0,I.useState)([]),[se,ee]=(0,I.useState)(0),[Q,E]=(0,I.useState)(1),[be,g]=(0,I.useState)(10),[j,K]=(0,I.useState)(""),[$,ye]=(0,I.useState)(),[N,le]=(0,I.useState)(!1),[oe,O]=(0,I.useState)(null),[X]=L.Form.useForm(),H=[{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,I.useEffect)(()=>{he()},[Q,be]);let he=async()=>{z(!0);try{await new Promise(x=>setTimeout(x,500));let c=[...H];j&&(c=c.filter(x=>x.name.toLowerCase().includes(j.toLowerCase())||x.description?.toLowerCase().includes(j.toLowerCase()))),$!==void 0&&(c=c.filter(x=>x.status===$)),ce(c),ee(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=()=>{K(""),ye(void 0),E(1),he()},Se=()=>{O(null),X.resetFields(),le(!0)},Ae=c=>{O(c),X.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:()=>{G?.(c),L.message.success("\u5220\u9664\u6210\u529F"),he()}})},Oe=c=>{let x=c.status===Ie.ENABLED?Ie.DISABLED:Ie.ENABLED;te?.(c.id,x),L.message.success(x===Ie.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),he()},Te=async()=>{try{let c=await X.validateFields();oe?(q?.(oe.id,c),L.message.success("\u7F16\u8F91\u6210\u529F")):(_?.(c),L.message.success("\u521B\u5EFA\u6210\u529F")),le(!1),he()}catch(c){console.error("Validation failed:",c)}},y=c=>{let x={[Ie.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528"},[Ie.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528"}},{color:Y,text:f}=x[c]||{color:"default",text:"\u672A\u77E5"};return I.default.createElement(L.Tag,{color:Y},f)},d=[{title:"\u89D2\u8272\u540D\u79F0",dataIndex:"name",key:"name",width:150,render:c=>I.default.createElement(L.Space,null,I.default.createElement(Je.TeamOutlined,{style:{color:"#1890ff"}}),I.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=>I.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,x)=>I.default.createElement(L.Space,null,I.default.createElement(L.Button,{type:"link",size:"small",icon:I.default.createElement(Je.EditOutlined,null),onClick:()=>Ae(x)},"\u7F16\u8F91"),I.default.createElement(L.Button,{type:"link",size:"small",onClick:()=>Oe(x)},x.status===Ie.ENABLED?"\u7981\u7528":"\u542F\u7528"),I.default.createElement(L.Button,{type:"link",size:"small",danger:!0,icon:I.default.createElement(Je.DeleteOutlined,null),onClick:()=>ge(x.id)},"\u5220\u9664"))}],b={totalRoles:H.length,activeRoles:H.filter(c=>c.status===Ie.ENABLED).length,totalAdmins:H.reduce((c,x)=>c+x.adminCount,0)};return I.default.createElement("div",{className:`mall-role-card ${J||""}`,style:ie},I.default.createElement(L.Card,null,p&&I.default.createElement("div",{className:"statistics-section"},I.default.createElement(L.Space,{size:"large"},I.default.createElement("div",{className:"stat-item"},I.default.createElement("div",{className:"stat-value"},b.totalRoles),I.default.createElement("div",{className:"stat-label"},"\u89D2\u8272\u603B\u6570")),I.default.createElement(L.Divider,{type:"vertical",style:{height:40}}),I.default.createElement("div",{className:"stat-item"},I.default.createElement("div",{className:"stat-value",style:{color:"#52c41a"}},b.activeRoles),I.default.createElement("div",{className:"stat-label"},"\u542F\u7528\u89D2\u8272")),I.default.createElement(L.Divider,{type:"vertical",style:{height:40}}),I.default.createElement("div",{className:"stat-item"},I.default.createElement("div",{className:"stat-value",style:{color:"#1890ff"}},b.totalAdmins),I.default.createElement("div",{className:"stat-label"},"\u7528\u6237\u603B\u6570")))),l&&I.default.createElement("div",{className:"filter-section"},I.default.createElement(L.Space,{wrap:!0},I.default.createElement(L.Input,{placeholder:"\u89D2\u8272\u540D\u79F0/\u63CF\u8FF0",value:j,onChange:c=>K(c.target.value),style:{width:200}}),I.default.createElement(L.Select,{placeholder:"\u89D2\u8272\u72B6\u6001",value:$,onChange:ye,style:{width:120},allowClear:!0},Zt.map(c=>I.default.createElement(L.Select.Option,{key:c.value,value:c.value},c.label))),I.default.createElement(L.Button,{type:"primary",onClick:pe},"\u67E5\u8BE2"),I.default.createElement(L.Button,{onClick:ve},"\u91CD\u7F6E"))),r&&I.default.createElement("div",{className:"action-section"},I.default.createElement(L.Button,{type:"primary",icon:I.default.createElement(Je.PlusOutlined,null),onClick:Se},"\u521B\u5EFA\u89D2\u8272")),I.default.createElement("div",{className:"content-section"},I.default.createElement("div",{className:"table-section"},I.default.createElement(L.Table,{columns:d,dataSource:re,rowKey:"id",loading:T,pagination:{current:Q,pageSize:be,total:se,showSizeChanger:!0,showQuickJumper:!0,showTotal:c=>`\u5171 ${c} \u6761`,onChange:(c,x)=>{E(c),g(x)}}})),w&&I.default.createElement("div",{className:"permission-section"},I.default.createElement(L.Card,{title:"\u6743\u9650\u6811",size:"small"},I.default.createElement(L.Tree,{checkable:!0,defaultExpandedKeys:["product","order"],treeData:fe}))))),I.default.createElement(L.Modal,{title:oe?"\u7F16\u8F91\u89D2\u8272":"\u521B\u5EFA\u89D2\u8272",visible:N,onOk:Te,onCancel:()=>le(!1),width:500},I.default.createElement(L.Form,{form:X,layout:"vertical"},I.default.createElement(L.Form.Item,{name:"name",label:"\u89D2\u8272\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0"}]},I.default.createElement(L.Input,{placeholder:"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0"})),I.default.createElement(L.Form.Item,{name:"description",label:"\u63CF\u8FF0"},I.default.createElement(L.Input.TextArea,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u89D2\u8272\u63CF\u8FF0"})),I.default.createElement(L.Form.Item,{name:"sort",label:"\u6392\u5E8F",initialValue:0},I.default.createElement(L.Input,{type:"number",placeholder:"\u6392\u5E8F\u503C"})),I.default.createElement(L.Form.Item,{name:"status",label:"\u72B6\u6001",initialValue:Ie.ENABLED},I.default.createElement(L.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},ut=Lr;var F=V(ke());var ae=V(ke()),kt=V(De()),W=V(ze()),{SubMenu:yn}=kt.Menu,wt=[{key:"dashboard",label:"\u5DE5\u4F5C\u53F0",icon:ae.default.createElement(W.DashboardOutlined,null),path:"/dashboard"},{key:"permission",label:"\u6743\u9650\u7BA1\u7406",icon:ae.default.createElement(W.SafetyCertificateOutlined,null),children:[{key:"permission/users",label:"\u7528\u6237\u7BA1\u7406",icon:ae.default.createElement(W.UserOutlined,null),path:"/permission/users"},{key:"permission/roles",label:"\u89D2\u8272\u7BA1\u7406",icon:ae.default.createElement(W.TeamOutlined,null),path:"/permission/roles"},{key:"permission/resources",label:"\u8D44\u6E90\u7BA1\u7406",icon:ae.default.createElement(W.SettingOutlined,null),path:"/permission/resources"},{key:"permission/menus",label:"\u83DC\u5355\u7BA1\u7406",icon:ae.default.createElement(W.FileTextOutlined,null),path:"/permission/menus"}]},{key:"product",label:"\u5546\u54C1\u7BA1\u7406",icon:ae.default.createElement(W.ShoppingOutlined,null),children:[{key:"product/list",label:"\u5546\u54C1\u5217\u8868",icon:ae.default.createElement(W.InboxOutlined,null),path:"/product/list"},{key:"product/add",label:"\u6DFB\u52A0\u5546\u54C1",icon:ae.default.createElement(W.ShoppingOutlined,null),path:"/product/add"},{key:"product/category",label:"\u5546\u54C1\u5206\u7C7B",icon:ae.default.createElement(W.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(W.FileTextOutlined,null),children:[{key:"order/list",label:"\u8BA2\u5355\u5217\u8868",icon:ae.default.createElement(W.FileTextOutlined,null),path:"/order/list"},{key:"order/setting",label:"\u8BA2\u5355\u8BBE\u7F6E",icon:ae.default.createElement(W.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(W.GiftOutlined,null),children:[{key:"marketing/coupon",label:"\u4F18\u60E0\u5238\u7BA1\u7406",icon:ae.default.createElement(W.GiftOutlined,null),path:"/marketing/coupon"},{key:"marketing/promotion",label:"\u4FC3\u9500\u6D3B\u52A8",icon:ae.default.createElement(W.DollarOutlined,null),path:"/marketing/promotion"},{key:"marketing/flash",label:"\u79D2\u6740\u6D3B\u52A8",icon:ae.default.createElement(W.ThunderboltOutlined,null),path:"/marketing/flash"},{key:"marketing/new",label:"\u65B0\u54C1\u63A8\u8350",icon:ae.default.createElement(W.FireOutlined,null),path:"/marketing/new"},{key:"marketing/hot",label:"\u4EBA\u6C14\u63A8\u8350",icon:ae.default.createElement(W.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:m,selectedKey:r,openKeys:l,onMenuClick:p,onOpenChange:w,menuItems:_})=>{let q=_||wt,[G,te]=(0,ae.useState)(q.filter(T=>T.children).map(T=>T.key)),ie=T=>{let z=T[T.length-1];z&&q.some(re=>re.key===z)?(te(T),w(T)):(te(z?[z]:[]),w(z?[z]:[]))},J=({key:T})=>{p(T)};return ae.default.createElement("div",{className:`sidebar-container ${m?"collapsed":""}`},ae.default.createElement("div",{className:"sidebar-logo"},!m&&ae.default.createElement("span",{className:"logo-text"},"Mall Admin"),m&&ae.default.createElement("span",{className:"logo-icon"},"M")),ae.default.createElement(kt.Menu,{mode:"inline",theme:"dark",inlineCollapsed:m,selectedKeys:[r],defaultOpenKeys:G,openKeys:l.length>0?l:G,onClick:J,onOpenChange:ie,items:q.map(T=>T.children&&T.children.length>0?{key:T.key,icon:T.icon,label:T.label,children:T.children.map(z=>({key:z.key,icon:z.icon,label:z.label}))}:{key:T.key,icon:T.icon,label:T.label})}))},Rt=Fr;var xe=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:m,onNavigate:r})=>{let l=p=>p.split("/").map(_=>Ur[_]||_).join(" / ");return!m||m.length===0?null:ct.default.createElement(Pt.Breadcrumb,null,m.map(p=>ct.default.createElement(Pt.Breadcrumb.Item,{key:p.key},ct.default.createElement("a",{onClick:()=>r(p.key)},p.label||l(p.key)))))},er=Br;var Mr=({collapsed:m,onToggleCollapse:r,breadcrumbItems:l,onNavigate:p})=>xe.default.createElement("div",{className:"navbar-container"},xe.default.createElement("div",{className:"navbar-left"},xe.default.createElement("button",{className:"hamburger-btn",onClick:r},m?xe.default.createElement(Me.MenuUnfoldOutlined,null):xe.default.createElement(Me.MenuFoldOutlined,null)),xe.default.createElement(er,{items:l,onNavigate:p})),xe.default.createElement("div",{className:"navbar-right"},xe.default.createElement(Qe.Dropdown,{overlay:xe.default.createElement(Qe.Menu,{items:[{key:"profile",icon:xe.default.createElement(Me.UserOutlined,null),label:"\u4E2A\u4EBA\u4E2D\u5FC3"},{key:"settings",icon:xe.default.createElement(Me.SettingOutlined,null),label:"\u7CFB\u7EDF\u8BBE\u7F6E"},{type:"divider"},{key:"logout",icon:xe.default.createElement(Me.LogoutOutlined,null),label:"\u9000\u51FA\u767B\u5F55",danger:!0}],onClick:({key:G})=>{G==="logout"&&console.log("User logged out")}}),placement:"bottomRight"},xe.default.createElement("div",{className:"user-info"},xe.default.createElement(Qe.Avatar,{size:32,icon:xe.default.createElement(Me.UserOutlined,null),className:"user-avatar"}),xe.default.createElement(Qe.Space,{size:4,className:"username"},xe.default.createElement("span",null,"\u7BA1\u7406\u5458")))))),tr=Mr;var Ze=V(ke());var R=V(ke()),pt=V(De()),je=V(ze()),zr=({tabs:m,activeTabKey:r,onTabClick:l,onCloseTab:p,onCloseOther:w,onCloseAll:_,closableTabs:q=!0})=>{let[G,te]=(0,R.useState)(null),[ie,J]=(0,R.useState)(!1),[T,z]=(0,R.useState)(""),[re,ce]=(0,R.useState)({x:0,y:0}),se=(0,R.useRef)(null);(0,R.useEffect)(()=>{if(se.current&&r){let g=se.current.querySelector(`[data-tab-key="${r}"]`);g&&g.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}},[r]),(0,R.useEffect)(()=>{let g=()=>J(!1);if(ie)return document.addEventListener("click",g),()=>document.removeEventListener("click",g)},[ie]);let ee=(g,j)=>{g.preventDefault(),g.stopPropagation(),z(j),ce({x:g.clientX,y:g.clientY}),J(!0)},Q=g=>{switch(J(!1),g){case"close":p(T);break;case"closeOther":w(T);break;case"closeAll":_();break;case"refresh":window.location.reload();break}};if(!m||m.length===0)return null;let E=[{key:"refresh",icon:R.default.createElement(je.ReloadOutlined,null),label:"\u5237\u65B0\u5F53\u524D\u9875"},{key:"close",icon:R.default.createElement(je.CloseOutlined,null),label:"\u5173\u95ED\u5F53\u524D",disabled:!q||m.find(g=>g.key===T)?.closable===!1},{type:"divider"},{key:"closeOther",icon:R.default.createElement(je.CloseCircleOutlined,null),label:"\u5173\u95ED\u5176\u4ED6",disabled:m.length<=1},{key:"closeAll",icon:R.default.createElement(je.CloseCircleOutlined,null),label:"\u5173\u95ED\u6240\u6709"}],be=R.default.createElement(pt.Menu,{items:E,onClick:({key:g})=>Q(g)});return R.default.createElement(R.default.Fragment,null,R.default.createElement("div",{className:"tab-bar-container"},R.default.createElement("div",{className:"tab-bar-scroll",ref:se},m.map(g=>R.default.createElement("div",{key:g.key,"data-tab-key":g.key,className:`tab-item ${r===g.key?"active":""} ${G===g.key?"hovered":""}`,onClick:()=>l(g.key),onMouseEnter:()=>te(g.key),onMouseLeave:()=>te(null),onContextMenu:j=>ee(j,g.key)},g.icon&&R.default.createElement("span",{className:"tab-icon"},g.icon),R.default.createElement("span",{className:"tab-label"},g.label),q&&g.closable&&R.default.createElement("span",{className:`tab-close-btn ${G===g.key||r===g.key?"visible":""}`,onClick:j=>{j.stopPropagation(),p(g.key)}},R.default.createElement(je.CloseOutlined,{style:{fontSize:10}}))))),q&&m.length>1&&R.default.createElement("div",{className:"tab-actions"},R.default.createElement("button",{className:"close-all-btn",onClick:_,title:"\u5173\u95ED\u5168\u90E8\u6807\u7B7E"},R.default.createElement(je.CloseCircleOutlined,null)))),ie&&R.default.createElement("div",{style:{position:"fixed",left:re.x,top:re.y,zIndex:1e3}},R.default.createElement(pt.Dropdown,{overlay:be,visible:ie,onVisibleChange:J,trigger:["click"]},R.default.createElement("div",{style:{width:0,height:0}}))))},rr=zr;var Yr=({children:m,pageKey:r,tabs:l,activeTabKey:p,onTabClick:w,onCloseTab:_,onCloseOther:q,onCloseAll:G,enableTabs:te=!0,closableTabs:ie=!0,className:J=""})=>Ze.default.createElement("main",{className:`main-content ${J}`},te&&l.length>0&&Ze.default.createElement(rr,{tabs:l,activeTabKey:p,onTabClick:w,onCloseTab:_,onCloseOther:q,onCloseAll:G,closableTabs:ie}),Ze.default.createElement("div",{className:"content-wrapper"},Ze.default.createElement("div",{className:"page-container",key:r},m))),or=Yr;var It=V(ke()),_r=({tab:m,tabKey:r,activeTabKey:l,children:p,className:w,style:_,__designMode:q})=>{let G=l===r,te=q==="design"||G;return It.default.createElement("div",{className:`tab-pane ${G?"tab-pane--active":""} ${w||""}`,style:{..._,display:te?void 0:"none",minHeight:q==="design"&&!p?"200px":void 0},"data-tab-key":r,"data-active":G?"true":"false"},p,q==="design"&&!p&&It.default.createElement("div",{style:{padding:"40px 20px",textAlign:"center",color:"#999",border:"1px dashed #ddd",borderRadius:"4px"}},"\u62D6\u62FD\u7EC4\u4EF6\u5230\u6B64\u5904"))},Xe=_r;var Vr="general",Ot=()=>{try{let m=window.AliLowCodeEngine;if(!m?.project)return;let r=m.project.exportSchema("save"),l=`${Vr}:projectSchema`;localStorage.setItem(l,JSON.stringify(r)),console.log("[AdminLayout] \u{1F4BE} Schema saved to localStorage")}catch(m){console.error("[AdminLayout] Failed to save schema:",m)}},et=(m,r)=>{for(let l of m){if(l.key===r)return l;if(l.children){let p=et(l.children,r);if(p)return p}}},Re=m=>{let r=m.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:m="dashboard",defaultOpenKeys:r,collapsible:l=!0,enableTabs:p=!0,maxTabs:w=10,closableTabs:_=!0,logoText:q="Mall Admin",menuItems:G,style:te,className:ie,children:J,__designMode:T,componentId:z})=>{let re=G||wt,[ce,se]=(0,F.useState)(!1),[ee,Q]=(0,F.useState)(m),[E,be]=(0,F.useState)(r||[]),[g,j]=(0,F.useState)(()=>{let y=et(re,m);return[{key:m,label:y?.label||Re(m),icon:y?.icon,closable:!1,path:y?.path||`/${m}`}]}),[K,$]=(0,F.useState)(m),ye=(0,F.useRef)(K);ye.current=K;let N=(0,F.useRef)(!1);(0,F.useEffect)(()=>{if(T!=="design"||!z||N.current)return;let y=setTimeout(()=>{try{let d=window.AliLowCodeEngine;if(!d?.project?.currentDocument)return;let b=d.project.currentDocument,c=b.getNodeById(z);if(!c){console.log("[AdminLayout] \u26A0\uFE0F AdminLayout node not found");return}let x=c.schema?.children||[];console.log("[AdminLayout] \u{1F50D} Schema children:",x.length,x.map(f=>f.componentName));let Y=x.filter(f=>f.componentName==="TabPane");if(console.log("[AdminLayout] \u{1F50D} Found existing TabPanes:",Y.length),Y.length>0){let f=Y.map(u=>{let e=u.props?.tabKey||"unknown",v=u.props?.tab||Re(e),Z=et(re,e);return console.log("[AdminLayout] \u{1F4CB} Restoring tab:",e,v),{key:e,label:v,icon:Z?.icon,closable:e!=="dashboard",path:Z?.path||`/${e}`}});console.log("[AdminLayout] \u{1F4CB} Restored tabs from schema:",f.map(u=>u.key)),j(f);let M=f[f.length-1];M&&($(M.key),Q(M.key))}else{console.log("[AdminLayout] \u{1F4CB} No TabPane found, creating default dashboard TabPane");let f=b.createNode({componentName:"TabPane",props:{tab:"\u5DE5\u4F5C\u53F0",tabKey:"dashboard",activeTabKey:"dashboard"}});f&&(b.insertNode(c,f),console.log("[AdminLayout] \u2705 Created default TabPane for dashboard"))}N.current=!0}catch(d){console.error("[AdminLayout] Init TabPane error:",d)}},100);return()=>clearTimeout(y)},[z,T,re]),(0,F.useEffect)(()=>{if(T==="design"||!J)return;let d=F.Children.toArray(J).filter(b=>(0,F.isValidElement)(b)?b.type===Xe||b.props?.tabKey:!1);if(d.length>0){let b=d.map(c=>{let x=c.props,Y=x?.tabKey||"unknown",f=x?.tab||Re(Y),M=et(re,Y);return{key:Y,label:f,icon:M?.icon,closable:Y!=="dashboard",path:M?.path||`/${Y}`}});console.log("[AdminLayout] Preview mode - restored tabs:",b.map(c=>c.key)),j(b)}},[J,T,re]),(0,F.useEffect)(()=>{if(T!=="design")return;let y=window.AliLowCodeEngine;if(!y?.project?.currentDocument)return;let d=y.project.currentDocument,b=null,c=()=>{b&&clearTimeout(b),b=setTimeout(()=>{Ot()},500)},x=d.onAddNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onAddNode triggered"),c()}),Y=d.onRemoveNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onRemoveNode triggered"),c()}),f=d.onMountNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onMountNode triggered"),c()});return()=>{b&&clearTimeout(b),x?.(),Y?.(),f?.()}},[T]),(0,F.useEffect)(()=>{if(!(T!=="design"||!z))try{let y=window.AliLowCodeEngine;if(!y?.project?.currentDocument)return;let b=y.project.currentDocument.getNodeById(z);b?.children&&(Array.isArray(b.children)?b.children:b.children.toArray?b.children.toArray():[]).forEach(x=>{x.componentName==="TabPane"&&x.setPropValue("activeTabKey",K)})}catch{}},[K,z,T]);let le=(0,F.useCallback)(()=>{l&&se(y=>!y)},[l]),oe=(0,F.useCallback)((y,d)=>{if(typeof window>"u")return!1;try{let b=window.AliLowCodeEngine;if(!b?.project?.currentDocument)return!1;let c=b.project.currentDocument,x=z?c.getNodeById(z):null;if(!x)return!1;let Y=Array.isArray(x.children)?x.children:x.children?.toArray?x.children.toArray():[];console.log("[AdminLayout] \u{1F50D} All children before create:",Y.map(M=>({id:M.id,name:M.componentName,tabKey:M.props?.tabKey})));for(let M of Y){let u=M.props?.tabKey||M.getPropValue?.("tabKey");if(M.componentName==="TabPane"&&u===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 f=c.createNode({componentName:"TabPane",props:{tab:d,tabKey:y,activeTabKey:ye.current}});return f?(c.insertNode(x,f),console.log("[AdminLayout] \u2705 Created new TabPane:",y,"nodeId:",f.id),setTimeout(()=>Ot(),100),!0):!1}catch(b){return console.error("[AdminLayout] createTabPane error:",b),!1}},[z]),O=(0,F.useCallback)(y=>{if(typeof window>"u")return!1;let d=!1;try{let b=window.AliLowCodeEngine;if(!b?.project?.currentDocument)return!1;let c=b.project.currentDocument,x=z?c.getNodeById(z):null;if(console.log("[AdminLayout] \u{1F5D1}\uFE0F removeTabPane called:",y),console.log("[AdminLayout] componentId:",z),console.log("[AdminLayout] adminLayoutNode:",x?"found":"NOT FOUND"),console.log("[AdminLayout] adminLayoutNode.id:",x?.id),console.log("[AdminLayout] adminLayoutNode.componentName:",x?.componentName),!x)return!1;let Y=[];if(x.children&&(Array.isArray(x.children)?Y=x.children:typeof x.children.toArray=="function"?Y=x.children.toArray():typeof x.children.map=="function"&&(Y=x.children.map(f=>f))),Y.length===0&&x.schema?.children){console.log("[AdminLayout] Trying schema.children...");let f=x.schema.children;Array.isArray(f)&&(Y=f.map(M=>c.getNodeById(M.id)).filter(Boolean))}if(Y.length===0){console.log("[AdminLayout] Trying documentModel.getRoot()...");let f=c.getRoot();console.log("[AdminLayout] Root node:",f?.componentName);let M=(e,v)=>{if(!v)return null;if(e.id===v)return e;if(e.children){let Z=Array.isArray(e.children)?e.children:e.children.toArray?e.children.toArray():[];for(let B of Z){let ue=M(B,v);if(ue)return ue}}return null},u=M(f,z);u&&u.children&&(Y=Array.isArray(u.children)?u.children:u.children.toArray?u.children.toArray():[])}console.log("[AdminLayout] Final children count:",Y.length),console.log("[AdminLayout] Children details:",Y.map(f=>({id:f?.id,name:f?.componentName,tabKey:f?.props?.tabKey||f?.getPropValue?.("tabKey"),childrenCount:f?.children?Array.isArray(f.children)?f.children.length:f.children.toArray?f.children.toArray().length:0:0}))),Y.forEach((f,M)=>{if(console.log(`[AdminLayout] Child[${M}] ${f?.componentName}:`,{id:f?.id,tabKey:f?.props?.tabKey||f?.getPropValue?.("tabKey"),hasChildren:!!f?.children,childrenType:f?.children?Array.isArray(f.children)?"array":typeof f.children.toArray=="function"?"array-like":typeof f.children:"none"}),f?.componentName==="TabPane"&&f?.children){let u=Array.isArray(f.children)?f.children:f.children.toArray?f.children.toArray():[];if(console.log("[AdminLayout] TabPane children:",u.map(e=>({id:e?.id,name:e?.componentName}))),u.length===0){if(console.log("[AdminLayout] Trying alternative methods..."),f.schema?.children&&console.log("[AdminLayout] schema.children:",f.schema.children),typeof f.getChildren=="function"){let e=f.getChildren();console.log("[AdminLayout] getChildren():",e)}f.slots&&console.log("[AdminLayout] slots:",f.slots)}}f?.componentName!=="TabPane"&&console.log("[AdminLayout] \u26A0\uFE0F Found non-TabPane child! This might be a dragged component.")});for(let f of Y){if(!f)continue;let M=f.props?.tabKey||f.getPropValue?.("tabKey");if(f.componentName==="TabPane"&&M===y){console.log("[AdminLayout] \u2705 Found TabPane to remove:",f.id);let u=f.schema?.children;if(u&&Array.isArray(u)&&u.length>0){console.log("[AdminLayout] Removing",u.length,"grandchildren from schema.children");for(let e=u.length-1;e>=0;e--){let v=u[e],Z=c.getNodeById(v.id);if(Z)try{c.removeNode(Z),console.log("[AdminLayout] \u2713 Removed grandchild:",Z.id,Z.componentName)}catch(B){console.warn("[AdminLayout] \u2717 Failed to remove grandchild:",B)}}}else console.log("[AdminLayout] No grandchildren to remove");try{c.removeNode(f),d=!0,console.log("[AdminLayout] \u2705 Removed TabPane node:",y),setTimeout(()=>Ot(),100)}catch(e){console.error("[AdminLayout] Failed to remove TabPane:",e)}break}}return d||console.warn("[AdminLayout] \u26A0\uFE0F TabPane not found for key:",y),d}catch(b){return console.error("[AdminLayout] removeTabPane error:",b),!1}},[z]),X=(0,F.useCallback)(y=>{if(Q(y),!g.find(b=>b.key===y)){let b=et(re,y),c={key:y,label:b?.label||Re(y),icon:b?.icon,closable:y!=="dashboard",path:b?.path||`/${y}`};j(x=>{if(x.length>=w){let Y=x.filter(f=>f.closable);if(Y.length>0)return[...x.filter(f=>f.key!==Y[0].key),c]}return[...x,c]}),T==="design"&&setTimeout(()=>oe(y,b?.label||Re(y)),0)}$(y)},[g,re,w,T,oe]),H=(0,F.useCallback)(y=>be(y),[]),fe=(0,F.useCallback)(y=>{Q(y),$(y)},[]),he=(0,F.useCallback)(y=>{Q(y),$(y)},[]),pe=(0,F.useCallback)(y=>{if(y!=="dashboard"&&(O(y),j(d=>d.filter(b=>b.key!==y)),y===K)){let d=g.filter(b=>b.key!==y);if(d.length>0){let b=g.findIndex(x=>x.key===y),c=d[b]||d[d.length-1];Q(c.key),$(c.key)}}},[g,K,O]),ve=(0,F.useCallback)(y=>{g.forEach(d=>{d.key!==y&&d.key!=="dashboard"&&O(d.key)}),j(d=>d.filter(b=>b.key===y||b.key==="dashboard")),Q(y),$(y)},[g,O]),Se=(0,F.useCallback)(()=>{g.forEach(d=>{d.key!=="dashboard"&&O(d.key)});let y=g.find(d=>d.key==="dashboard");y&&(j([y]),Q("dashboard"),$("dashboard"))},[g,O]),Ae=(0,F.useMemo)(()=>ee==="dashboard"?[]:ee.split("/").length===1?[{key:ee,label:"",path:ee}]:[{key:ee,label:"",path:ee}],[ee]),Te=(0,F.useMemo)(()=>{if(!J)return null;if(T==="design"){let d=F.Children.toArray(J).find(b=>(0,F.isValidElement)(b)?b.props?.tabKey===K:!1);return d&&(0,F.isValidElement)(d)?(0,F.cloneElement)(d,{activeTabKey:K,__designMode:T}):d||null}return F.Children.map(J,y=>(0,F.isValidElement)(y)?(0,F.cloneElement)(y,{activeTabKey:K,__designMode:T}):y)},[J,K,T])||F.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 F.default.createElement("div",{className:`admin-layout ${ce?"is-collapse":""} ${ie||""}`,style:te,"data-active-tab":K},F.default.createElement(Rt,{collapsed:ce,selectedKey:ee,openKeys:E,onMenuClick:X,onOpenChange:H,menuItems:re}),F.default.createElement("div",{className:"layout-right"},F.default.createElement(tr,{collapsed:ce,onToggleCollapse:le,breadcrumbItems:Ae,onNavigate:fe}),F.default.createElement(or,{pageKey:ee,tabs:g,activeTabKey:K,onTabClick:he,onCloseTab:pe,onCloseOther:ve,onCloseAll:Se,enableTabs:p,closableTabs:_,className:ce?"collapsed":""},Te)),l&&F.default.createElement("div",{className:`mobile-overlay ${ce?"":"visible"}`,onClick:le}))},gt=jr;var Kr={ProductList:xt,ProductForm:Ct,OrderList:it,OrderForm:st,CouponCard:lt,PromotionCard:dt,UserCard:mt,RoleCard:ut,AdminLayout:gt,TabPane:Xe},$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,xr=Object.prototype.hasOwnProperty;var ht=(m,r)=>()=>(r||m((r={exports:{}}).exports,r),r.exports),Cr=(m,r)=>{for(var l in r)tt(m,l,{get:r[l],enumerable:!0})},Yt=(m,r,l,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let w of yr(r))!xr.call(m,w)&&w!==l&&tt(m,w,{get:()=>r[w],enumerable:!(p=hr(r,w))||p.enumerable});return m};var V=(m,r,l)=>(l=m!=null?fr(vr(m)):{},Yt(r||!m||!m.__esModule?tt(l,"default",{value:m,enumerable:!0}):l,m)),Sr=m=>Yt(tt({},"__esModule",{value:!0}),m);var De=ht((Jr,_t)=>{_t.exports=window.antd});var ke=ht((Qr,Vt)=>{Vt.exports=Object.assign(window.React,{jsx:window.React.createElement,jsxs:window.React.createElement,Fragment:window.React.Fragment})});var ze=ht((Hr,jt)=>{jt.exports=window.icons});var qr={};Cr(qr,{AdminLayout:()=>gt,CouponCard:()=>lt,OrderForm:()=>st,OrderList:()=>it,ProductForm:()=>Ct,ProductList:()=>xt,PromotionCard:()=>dt,RoleCard:()=>ut,TabPane:()=>Xe,UserCard:()=>mt,default:()=>$r});var _n=V(De());var U=V(ke()),me=V(De()),Ue=V(ze());var Ye=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 w=await p.json();if(this.config.transform)try{w=new Function("data",this.config.transform)(w)}catch(_){console.error("Transform function error:",_)}return w}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,w=p+r.pageSize;return{...l,data:{...l.data,list:l.data.list.slice(p,w)}}}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 w=this.config.dataSource;if(typeof w=="string")try{w=JSON.parse(w)}catch(_){console.error("[VariableAdapter] dataSource JSON \u89E3\u6790\u5931\u8D25:",_)}return w&&typeof w=="object"?w.code===200&&w.data?w:w.list||Array.isArray(w)?{code:200,message:"success",data:{pageNum:1,pageSize:10,total:Array.isArray(w)?w.length:w.total||0,list:Array.isArray(w)?w:w.list||[]}}:{code:200,message:"success",data:w}:{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:m="mock",api:r,method:l="GET",mockData:p,variableName:w,dataSource:_,showFilter:K=!0,showAction:G=!0,showSelection:te=!0,showOperation:ie=!0,showStatus:J=!0,showPagination:T=!0,filterFields:z=[],actionButtons:re=[],columns:ce,batchOperations:se=[],onRowClick:ee,onSearch:Q,onPageChange:E,onActionClick:be,onBatchOperation:g,style:j,className:$})=>{let[q,ye]=U.default.useState(!1),[N,le]=U.default.useState([]),[oe,O]=U.default.useState(0),[X,H]=U.default.useState(1),[fe,he]=U.default.useState(10),[pe,ve]=U.default.useState(""),[Se,Ae]=U.default.useState([]),[ge,Oe]=U.default.useState([]),[Te,y]=U.default.useState(),b=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,U.useMemo)(()=>{let B=p;return B||(B=b),console.log("[ProductList] dataSourceConfig \u91CD\u65B0\u8BA1\u7B97:",{dataSourceType:m,mockData:typeof p=="string"?p.substring(0,100)+"...":p,variableName:w,dataSource:typeof _=="object"?"object":_}),{type:m,api:r||"",method:l,mockData:B,variableName:w||"",dataSource:_}},[m,r,l,p,w,_]);console.log("[ProductList] \u7EC4\u4EF6\u6E32\u67D3\uFF0Cprops:",{dataSourceType:m,api:r,method:l,mockData:typeof p=="string"?p.substring(0,100)+"...":p,variableName:w,dataSource:typeof _=="object"?"object":_,showFilter:K,showAction:G,showSelection:te});let x=(0,U.useMemo)(()=>(console.log("[ProductList] adapter \u91CD\u65B0\u521B\u5EFA, dataSourceType:",m),Ye.create(c)),[c]),Y=(0,U.useCallback)(async()=>{console.log("[ProductList] fetchData \u5F00\u59CB\uFF0C\u53C2\u6570:",{currentPage:X,pageSize:fe,searchText:pe}),ye(!0);try{let B={pageNum:X,pageSize:fe,keyword:pe||void 0};console.log("[ProductList] \u8C03\u7528 adapter.fetch\uFF0C\u53C2\u6570:",B);let ue=await x.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)}},[X,fe,pe,x]);(0,U.useEffect)(()=>{console.log("[ProductList] useEffect \u89E6\u53D1\uFF0C\u5F00\u59CB\u83B7\u53D6\u6570\u636E, dataSourceType:",m),Y()},[Y,m]);let f=()=>{H(1),Y(),Q?.(pe)},M=(B,ue)=>{H(B),he(ue),E?.(B,ue)},u=()=>{Te&&ge.length>0&&g?.(Te,ge)},e=[{title:"\u5546\u54C1\u56FE\u7247",dataIndex:"pic",key:"pic",width:100,render:B=>U.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},...J?[{title:"\u72B6\u6001",dataIndex:"publishStatus",key:"publishStatus",width:100,render:B=>U.default.createElement(me.Switch,{checked:B===1,checkedChildren:"\u4E0A\u67B6",unCheckedChildren:"\u4E0B\u67B6"})}]:[],...ie?[{title:"\u64CD\u4F5C",key:"operation",width:150,render:(B,ue)=>U.default.createElement(me.Space,{size:"small"},U.default.createElement(me.Button,{type:"link",size:"small",onClick:()=>ee?.(ue)},"\u67E5\u770B"),U.default.createElement(me.Button,{type:"link",size:"small"},"\u7F16\u8F91"),U.default.createElement(me.Button,{type:"link",size:"small",danger:!0},"\u5220\u9664"))}]:[]],v=te?{selectedRowKeys:Se,onChange:(B,ue)=>{Ae(B),Oe(ue)}}:void 0,Z=B=>{switch(B){case"plus":return U.default.createElement(Ue.PlusOutlined,null);case"download":return U.default.createElement(Ue.DownloadOutlined,null);case"upload":return U.default.createElement(Ue.UploadOutlined,null);default:return null}};return U.default.createElement("div",{className:`mall-product-list ${$||""}`,style:j},K&&U.default.createElement(me.Card,{className:"mall-product-list-filter",size:"small"},U.default.createElement(me.Space,null,U.default.createElement(me.Input,{placeholder:"\u8BF7\u8F93\u5165\u5546\u54C1\u540D\u79F0\u6216\u7F16\u53F7",prefix:U.default.createElement(Ue.SearchOutlined,null),value:pe,onChange:B=>ve(B.target.value),onPressEnter:f,style:{width:300}}),U.default.createElement(me.Button,{type:"primary",icon:U.default.createElement(Ue.SearchOutlined,null),onClick:f},"\u641C\u7D22"),U.default.createElement(me.Button,{icon:U.default.createElement(Ue.ReloadOutlined,null),onClick:()=>Y()},"\u5237\u65B0"))),G&&U.default.createElement(me.Card,{className:"mall-product-list-action",size:"small"},U.default.createElement(me.Space,null,re.map((B,ue)=>U.default.createElement(me.Button,{key:ue,type:B.type||"default",icon:Z(B.icon),onClick:()=>be?.(B.onClick||"")},B.text)),te&&se.length>0&&U.default.createElement(U.default.Fragment,null,U.default.createElement(me.Select,{placeholder:"\u6279\u91CF\u64CD\u4F5C",value:Te,onChange:y,style:{width:150}},se.map((B,ue)=>U.default.createElement(me.Select.Option,{key:ue,value:B.value},B.text))),U.default.createElement(me.Button,{onClick:u},"\u6267\u884C")))),U.default.createElement("div",{className:"mall-product-list-table"},U.default.createElement(me.Table,{rowKey:"id",columns:ce||e,dataSource:N,loading:q,rowSelection:v,pagination:!1,scroll:{x:1200}})),T&&U.default.createElement("div",{className:"pagination-wrapper"},U.default.createElement(me.Pagination,{current:X,pageSize:fe,total:oe,showSizeChanger:!0,showQuickJumper:!0,showTotal:B=>`\u5171 ${B} \u6761`,onChange:M})))},Kt=Tr;var xt=Kt;var s=V(ke()),n=V(De());var kr=({initialValues:m,mode:r="create",showBasicInfo:l=!0,showPriceInfo:p=!0,showStockInfo:w=!0,showStatusInfo:_=!0,showDescription:K=!0,onSubmit:G,onCancel:te,style:ie,className:J})=>{let[T]=n.Form.useForm(),[z,re]=(0,s.useState)("basic");(0,s.useEffect)(()=>{if(m){let N=m;if(typeof m=="string")try{N=JSON.parse(m)}catch(le){console.error("Failed to parse initialValues:",le),N={}}T.setFieldsValue(N)}},[m,T]);let ce=async()=>{try{let N=await T.validateFields();G?.(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=()=>{T.resetFields(),te?.()},ee=()=>{T.resetFields()},Q=()=>{if(typeof m=="string")try{return JSON.parse(m)}catch{return{}}return m||{}},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}))))],g=[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}))))],$=[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}))))],q=[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?g:null},{key:"stock",label:"\u5E93\u5B58\u4FE1\u606F",children:w?j:null},{key:"status",label:"\u72B6\u6001\u4FE1\u606F",children:_?$:null},{key:"description",label:"\u63CF\u8FF0\u4FE1\u606F",children:K?q:null}];return s.default.createElement("div",{className:`mall-product-form ${J||""}`,style:ie},s.default.createElement(n.Card,null,s.default.createElement(n.Form,{form:T,layout:"vertical",initialValues:Q(),disabled:E},s.default.createElement(n.Tabs,{activeKey:z,onChange:re,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:ee},"\u91CD\u7F6E")),s.default.createElement(n.Button,{onClick:se},E?"\u5173\u95ED":"\u53D6\u6D88"))))))},$t=kr;var Ct=$t;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},_e={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}],qt=[{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:_e.PC},{label:"APP\u8BA2\u5355",value:_e.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:_e.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:_e.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:_e.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:_e.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:_e.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:m="mock",api:r,method:l="GET",mockData:p,variableName:w,dataSource:_,showFilter:K=!0,showStatusFilter:G=!0,showSearch:te=!0,showDatePicker:ie=!0,showActions:J=!0,showBatchOperations:T=!0,showExport:z=!0,showPagination:re=!0,defaultPageSize:ce=10,onRowClick:se,onSearch:ee,onPageChange:Q,onActionClick:E,onBatchOperation:be,style:g,className:j})=>{let[$,q]=(0,t.useState)(!1),[ye,N]=(0,t.useState)([]),[le,oe]=(0,t.useState)(0),[O,X]=(0,t.useState)(1),[H,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,d]=(0,t.useState)(),[b,c]=(0,t.useState)(),[x,Y]=(0,t.useState)(),[f,M]=(0,t.useState)(),[u,e]=(0,t.useState)(!1),[v,Z]=(0,t.useState)(),[B,ue]=(0,t.useState)(!1),[Nt,nr]=(0,t.useState)(),[bt,At]=(0,t.useState)(""),[ft,Dt]=(0,t.useState)(""),Et=(0,t.useMemo)(()=>({type:m,api:r,method:l,mockData:p?(()=>{try{return typeof p=="string"?JSON.parse(p):p}catch{return at}})():at,variableName:w,dataSource:_}),[m,r,l,p,w,_]),Lt=(0,t.useMemo)(()=>Ye.create(Et),[Et]);(0,t.useEffect)(()=>{Ke()},[O,H,Lt]);let Ke=async()=>{q(!0);try{let P={pageNum:O,pageSize:H,orderSn:he||void 0,status:y,orderType:b,sourceType:x,createTime:f?`${f[0]?.format("YYYY-MM-DD")},${f[1]?.format("YYYY-MM-DD")}`:void 0},de=await Lt.fetch(P),Ee=[],$e=0;de?.data?.list?(Ee=de.data.list,$e=de.data.total||Ee.length):Array.isArray(de?.data)?(Ee=de.data,$e=Ee.length):Array.isArray(de)&&(Ee=de,$e=Ee.length),N(Ee),oe($e)}catch(P){console.error("Failed to fetch order list:",P),i.message.error("\u83B7\u53D6\u8BA2\u5355\u5217\u8868\u5931\u8D25"),N(at.data.list),oe(at.data.total)}finally{q(!1)}},Ft=()=>{X(1),Ke(),ee?.({orderSn:he||void 0,status:y,orderType:b,sourceType:x,createTime:f?`${f[0]?.format("YYYY-MM-DD")},${f[1]?.format("YYYY-MM-DD")}`:void 0})},ar=()=>{pe(""),d(void 0),c(void 0),Y(void 0),M(void 0),X(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()},Ut=P=>{Z(P),e(!0),E?.("view",P)},Bt=P=>{nr(P),ue(!0),E?.("deliver",P)},dr=P=>{i.Modal.confirm({title:"\u786E\u8BA4\u5173\u95ED\u8BA2\u5355",content:`\u786E\u5B9A\u8981\u5173\u95ED\u8BA2\u5355 ${P.orderSn} \u5417\uFF1F`,onOk:()=>{E?.("close",P),i.message.success("\u8BA2\u5355\u5DF2\u5173\u95ED"),Ke()}})},mr=P=>{i.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664\u8BA2\u5355",content:`\u786E\u5B9A\u8981\u5220\u9664\u8BA2\u5355 ${P.orderSn} \u5417\uFF1F`,onOk:()=>{E?.("delete",P),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 P={orderId:Nt.id,deliveryCompany:bt,deliverySn:ft};E?.("deliverSubmit",Nt),i.message.success("\u53D1\u8D27\u6210\u529F"),ue(!1),At(""),Dt(""),Ke()},Mt=P=>{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[P]||{color:"default",text:"\u672A\u77E5"};return t.default.createElement(i.Tag,{color:Ee},$e)},zt=P=>{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[P]||{color:"default",text:"\u672A\u77E5"};return t.default.createElement(i.Tag,{color:Ee},$e)},cr=P=>P===_e.APP?t.default.createElement(i.Tag,{color:"purple"},"APP"):t.default.createElement(i.Tag,{color:"geekblue"},"PC"),pr=P=>P===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:P=>t.default.createElement(i.Tooltip,{title:P},t.default.createElement("span",{className:"order-sn"},P))},{title:"\u7528\u6237\u8D26\u53F7",dataIndex:"memberUsername",key:"memberUsername",width:120},{title:"\u8BA2\u5355\u91D1\u989D",dataIndex:"totalAmount",key:"totalAmount",width:120,render:P=>t.default.createElement("span",{className:"order-amount"},"\xA5",P.toFixed(2))},{title:"\u5B9E\u4ED8\u91D1\u989D",dataIndex:"payAmount",key:"payAmount",width:120,render:P=>t.default.createElement("span",{className:"pay-amount"},"\xA5",P.toFixed(2))},{title:"\u652F\u4ED8\u65B9\u5F0F",dataIndex:"payType",key:"payType",width:100,render:P=>zt(P)},{title:"\u8BA2\u5355\u6765\u6E90",dataIndex:"sourceType",key:"sourceType",width:100,render:P=>cr(P)},{title:"\u8BA2\u5355\u7C7B\u578B",dataIndex:"orderType",key:"orderType",width:100,render:P=>pr(P)},{title:"\u8BA2\u5355\u72B6\u6001",dataIndex:"status",key:"status",width:100,render:P=>Mt(P)},{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:(P,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:()=>Ut(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:()=>Bt(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:()=>Ut(de)},"\u8BE6\u60C5"),de.status===ne.PENDING_DELIVERY&&t.default.createElement(i.Button,{type:"link",size:"small",onClick:()=>Bt(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:(P,de)=>{Se(P),ge(de)}};return t.default.createElement("div",{className:`mall-order-list ${j||""}`,style:g},t.default.createElement(i.Card,null,K&&t.default.createElement("div",{className:"filter-section"},t.default.createElement(i.Row,{gutter:[16,16]},te&&t.default.createElement(i.Col,{span:6},t.default.createElement(i.Input,{placeholder:"\u8BA2\u5355\u7F16\u53F7",value:he,onChange:P=>pe(P.target.value),onPressEnter:Ft,prefix:t.default.createElement(we.SearchOutlined,null)})),G&&t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u72B6\u6001",value:y,onChange:d,style:{width:"100%"},allowClear:!0},rt.map(P=>t.default.createElement(i.Select.Option,{key:P.value,value:P.value},P.label)))),t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u7C7B\u578B",value:b,onChange:c,style:{width:"100%"},allowClear:!0},nt.map(P=>t.default.createElement(i.Select.Option,{key:P.value,value:P.value},P.label)))),t.default.createElement(i.Col,{span:4},t.default.createElement(i.Select,{placeholder:"\u8BA2\u5355\u6765\u6E90",value:x,onChange:Y,style:{width:"100%"},allowClear:!0},ot.map(P=>t.default.createElement(i.Select.Option,{key:P.value,value:P.value},P.label)))),ie&&t.default.createElement(i.Col,{span:6},t.default.createElement(wr,{value:f,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:Ft},"\u67E5\u8BE2"),t.default.createElement(i.Button,{onClick:ar},"\u91CD\u7F6E"))))),T&&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")),J&&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:$,pagination:re?{current:O,pageSize:H,total:le,showSizeChanger:!0,showQuickJumper:!0,showTotal:P=>`\u5171 ${P} \u6761`,onChange:(P,de)=>{X(P),fe(de),Q?.(P,de)}}:!1,rowSelection:br,scroll:{x:1500},onRow:P=>({onClick:()=>se?.(P)})})),t.default.createElement(i.Modal,{title:"\u8BA2\u5355\u8BE6\u60C5",visible:u,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"},zt(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: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:At,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:P=>Dt(P.target.value),placeholder:"\u8BF7\u8F93\u5165\u7269\u6D41\u5355\u53F7"})))))},it=Pr;var a=V(ke()),o=V(De());var{TextArea:Gt}=o.Input,Ir=({initialValues:m,mode:r="create",showBasicInfo:l=!0,showReceiverInfo:p=!0,showMoneyInfo:w=!0,showOrderItems:_=!0,showStatusInfo:K=!0,onSubmit:G,onCancel:te,style:ie,className:J})=>{let[T]=o.Form.useForm(),[z,re]=(0,a.useState)("basic"),[ce,se]=(0,a.useState)([]);(0,a.useEffect)(()=>{if(m){let O=m;if(typeof m=="string")try{O=JSON.parse(m)}catch(X){console.error("Failed to parse initialValues:",X),O={}}T.setFieldsValue(O),O.orderItemList&&se(O.orderItemList)}},[m,T]);let ee=async()=>{try{let O=await T.validateFields();G?.(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=()=>{T.resetFields(),te?.()},E=()=>{T.resetFields()},be=()=>{if(typeof m=="string")try{return JSON.parse(m)}catch{return{}}return m||{}},g=r==="view",j=O=>{let X={[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:H,text:fe}=X[O]||{color:"default",text:"\u672A\u77E5"};return a.default.createElement(o.Tag,{color:H},fe)},$=[{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,X)=>`\xA5${(X.productPrice*X.productQuantity).toFixed(2)}`}],q=[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:g}))),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:g})))),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:g},qt.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:g},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:g},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:g}))),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:g})))),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:g}))),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:g}))),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:g})))),a.default.createElement(o.Form.Item,{key:"receiverDetailAddress",name:"receiverDetailAddress",label:"\u8BE6\u7EC6\u5730\u5740"},a.default.createElement(Gt,{rows:2,placeholder:"\u8BF7\u8F93\u5165\u8BE6\u7EC6\u5730\u5740",disabled:g})),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:g}))),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:g}))))],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:g}))),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:g}))),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:g})))),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:g}))),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:g}))),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:g}))))],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:g},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:g},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:g})),a.default.createElement(o.Form.Item,{key:"note",name:"note",label:"\u8BA2\u5355\u5907\u6CE8"},a.default.createElement(Gt,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u8BA2\u5355\u5907\u6CE8",disabled:g}))],oe=[{key:"basic",label:"\u57FA\u672C\u4FE1\u606F",children:l?q:null},{key:"receiver",label:"\u6536\u8D27\u4FE1\u606F",children:p?ye:null},{key:"money",label:"\u8D39\u7528\u4FE1\u606F",children:w?N:null},{key:"items",label:"\u5546\u54C1\u4FE1\u606F",children:_?a.default.createElement(o.Table,{columns:$,dataSource:ce,rowKey:"id",pagination:!1,scroll:{x:900}}):null},{key:"status",label:"\u72B6\u6001\u4FE1\u606F",children:K?le:null}];return a.default.createElement("div",{className:`mall-order-form ${J||""}`,style:ie},a.default.createElement(o.Card,null,a.default.createElement(o.Form,{form:T,layout:"vertical",initialValues:be(),disabled:g},a.default.createElement(o.Tabs,{activeKey:z,onChange:re,items:oe}),a.default.createElement(o.Divider,null),a.default.createElement(o.Form.Item,null,a.default.createElement(o.Space,null,!g&&a.default.createElement(a.default.Fragment,null,a.default.createElement(o.Button,{type:"primary",onClick:ee},r==="create"?"\u521B\u5EFA":"\u4FDD\u5B58"),a.default.createElement(o.Button,{onClick:E},"\u91CD\u7F6E")),a.default.createElement(o.Button,{onClick:Q},g?"\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},Jt=[{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}],Ce={ENABLED:1,DISABLED:0},Qt=[{label:"\u542F\u7528",value:Ce.ENABLED},{label:"\u7981\u7528",value:Ce.DISABLED}];var{RangePicker:Or}=S.DatePicker,Ht={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:m="mock",api:r,method:l="GET",mockData:p,variableName:w,showCreateButton:_=!0,showFilter:K=!0,showStatistics:G=!0,onCreateCoupon:te,onEditCoupon:ie,onDeleteCoupon:J,style:T,className:z})=>{let[re,ce]=(0,h.useState)(!1),[se,ee]=(0,h.useState)([]),[Q,E]=(0,h.useState)(0),[be,g]=(0,h.useState)(1),[j,$]=(0,h.useState)(10),[q,ye]=(0,h.useState)(""),[N,le]=(0,h.useState)(),[oe,O]=(0,h.useState)(),[X,H]=(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:m,api:r,method:l,mockData:p?(()=>{try{return typeof p=="string"?JSON.parse(p):p}catch{return Ht}})():Ht,variableName:w}),[m,r,l,p,w]),Ae=(0,h.useMemo)(()=>Ye.create(Se),[Se]);(0,h.useEffect)(()=>{ge()},[be,j,Ae]);let ge=async()=>{ce(!0);try{let u=await Ae.fetch({pageNum:be,pageSize:j,name:q,type:N,platform:oe}),e=[],v=0;u?.data?.list?(e=u.data.list,v=u.data.total||e.length):Array.isArray(u?.data)?(e=u.data,v=e.length):Array.isArray(u)&&(e=u,v=e.length),(q||N!==void 0||oe!==void 0)&&(e=e.filter(Z=>!(q&&!Z.name.toLowerCase().includes(q.toLowerCase())||N!==void 0&&Z.type!==N||oe!==void 0&&Z.platform!==oe)),v=e.length),ee(e),E(v)}catch(u){console.error("Failed to fetch coupon list:",u),S.message.error("\u83B7\u53D6\u4F18\u60E0\u5238\u5217\u8868\u5931\u8D25"),ee(ve),E(ve.length)}finally{ce(!1)}},Oe=()=>{g(1),ge()},Te=()=>{ye(""),le(void 0),O(void 0),g(1),ge()},y=()=>{he(null),pe.resetFields(),H(!0)},d=u=>{he(u),pe.setFieldsValue({...u,dateRange:[u.startTime,u.endTime]}),H(!0)},b=u=>{S.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u4F18\u60E0\u5238\u5417\uFF1F",onOk:()=>{J?.(u),S.message.success("\u5220\u9664\u6210\u529F"),ge()}})},c=async()=>{try{let u=await pe.validateFields(),e={...u,startTime:u.dateRange?.[0],endTime:u.dateRange?.[1]};fe?(ie?.(fe.id,e),S.message.success("\u7F16\u8F91\u6210\u529F")):(te?.(e),S.message.success("\u521B\u5EFA\u6210\u529F")),H(!1),ge()}catch(u){console.error("Validation failed:",u)}},x=u=>{let e={[Be.FULL_REDUCTION]:{color:"red",text:"\u6EE1\u51CF\u5238"},[Be.DISCOUNT]:{color:"blue",text:"\u6298\u6263\u5238"}},{color:v,text:Z}=e[u]||{color:"default",text:"\u672A\u77E5"};return h.default.createElement(S.Tag,{color:v},Z)},Y=u=>{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:Z}=e[u]||{color:"default",text:"\u672A\u77E5"};return h.default.createElement(S.Tag,{color:v},Z)},f=[{title:"\u4F18\u60E0\u5238\u540D\u79F0",dataIndex:"name",key:"name",width:150,render:u=>h.default.createElement(S.Tooltip,{title:u},h.default.createElement("span",{className:"coupon-name"},u))},{title:"\u7C7B\u578B",dataIndex:"type",key:"type",width:80,render:u=>x(u)},{title:"\u4F18\u60E0\u5185\u5BB9",key:"content",width:120,render:(u,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:u=>Y(u)},{title:"\u53D1\u884C\u91CF",dataIndex:"count",key:"count",width:80,render:u=>h.default.createElement(S.Badge,{count:u,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:(u,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:(u,e)=>h.default.createElement(S.Space,null,h.default.createElement(S.Button,{type:"link",size:"small",icon:h.default.createElement(qe.EditOutlined,null),onClick:()=>d(e)},"\u7F16\u8F91"),h.default.createElement(S.Button,{type:"link",size:"small",danger:!0,icon:h.default.createElement(qe.DeleteOutlined,null),onClick:()=>b(e.id)},"\u5220\u9664"))}],M={totalCoupons:se.length,activeCoupons:se.filter(u=>u.useCount>0).length,totalUsed:se.reduce((u,e)=>u+e.useCount,0),totalReceived:se.reduce((u,e)=>u+e.receiveCount,0)};return h.default.createElement("div",{className:`mall-coupon-card ${z||""}`,style:T},h.default.createElement(S.Card,null,G&&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")))),K&&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:q,onChange:u=>ye(u.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},Jt.map(u=>h.default.createElement(S.Select.Option,{key:u.value,value:u.value},u.label))),h.default.createElement(S.Select,{placeholder:"\u9002\u7528\u5E73\u53F0",value:oe,onChange:O,style:{width:120},allowClear:!0},St.map(u=>h.default.createElement(S.Select.Option,{key:u.value,value:u.value},u.label))),h.default.createElement(S.Button,{type:"primary",onClick:Oe},"\u67E5\u8BE2"),h.default.createElement(S.Button,{onClick:Te},"\u91CD\u7F6E"))),_&&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:f,dataSource:se,rowKey:"id",loading:re,pagination:{current:be,pageSize:j,total:Q,showSizeChanger:!0,showQuickJumper:!0,showTotal:u=>`\u5171 ${u} \u6761`,onChange:(u,e)=>{g(u),$(e)}}})),h.default.createElement(S.Modal,{title:fe?"\u7F16\u8F91\u4F18\u60E0\u5238":"\u521B\u5EFA\u4F18\u60E0\u5238",visible:X,onOk:c,onCancel:()=>H(!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(u=>h.default.createElement(S.Select.Option,{key:u.value,value:u.value},u.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 C=V(ke()),A=V(De()),Ne=V(ze());var{RangePicker:Ar}=A.DatePicker,Wt={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:m="mock",api:r,method:l="GET",mockData:p,variableName:w,showCreateButton:_=!0,showFilter:K=!0,showStatistics:G=!0,showTimeline:te=!0,onCreatePromotion:ie,onEditPromotion:J,onDeletePromotion:T,onToggleStatus:z,style:re,className:ce})=>{let[se,ee]=(0,C.useState)(!1),[Q,E]=(0,C.useState)([]),[be,g]=(0,C.useState)(0),[j,$]=(0,C.useState)(1),[q,ye]=(0,C.useState)(10),[N,le]=(0,C.useState)(""),[oe,O]=(0,C.useState)(),[X,H]=(0,C.useState)(!1),[fe,he]=(0,C.useState)(null),[pe]=A.Form.useForm(),ve=[{id:1,title:"\u53CC\u5341\u4E00\u5927\u4FC3",startDate:"2024-11-01",endDate:"2024-11-11",status:Ce.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:Ce.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:Ce.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:Ce.ENABLED,createTime:"2024-03-01 10:00:00"}],Se=(0,C.useMemo)(()=>({type:m,api:r,method:l,mockData:p?(()=>{try{return typeof p=="string"?JSON.parse(p):p}catch{return Wt}})():Wt,variableName:w}),[m,r,l,p,w]),Ae=(0,C.useMemo)(()=>Ye.create(Se),[Se]);(0,C.useEffect)(()=>{ge()},[j,q,Ae]);let ge=async()=>{ee(!0);try{let e=await Ae.fetch({pageNum:j,pageSize:q,title:N,status:oe}),v=[],Z=0;e?.data?.list?(v=e.data.list,Z=e.data.total||v.length):Array.isArray(e?.data)?(v=e.data,Z=v.length):Array.isArray(e)&&(v=e,Z=v.length),(N||oe!==void 0)&&(v=v.filter(B=>!(N&&!B.title.toLowerCase().includes(N.toLowerCase())||oe!==void 0&&B.status!==oe)),Z=v.length),E(v),g(Z)}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),g(ve.length)}finally{ee(!1)}},Oe=()=>{$(1),ge()},Te=()=>{le(""),O(void 0),$(1),ge()},y=()=>{he(null),pe.resetFields(),H(!0)},d=e=>{he(e),pe.setFieldsValue({...e,dateRange:[e.startDate,e.endDate]}),H(!0)},b=e=>{A.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u4FC3\u9500\u6D3B\u52A8\u5417\uFF1F",onOk:()=>{T?.(e),A.message.success("\u5220\u9664\u6210\u529F"),ge()}})},c=e=>{let v=e.status===Ce.ENABLED?Ce.DISABLED:Ce.ENABLED;z?.(e.id,v),A.message.success(v===Ce.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),ge()},x=async()=>{try{let e=await pe.validateFields(),v={...e,startDate:e.dateRange?.[0],endDate:e.dateRange?.[1]};fe?(J?.(fe.id,v),A.message.success("\u7F16\u8F91\u6210\u529F")):(ie?.(v),A.message.success("\u521B\u5EFA\u6210\u529F")),H(!1),ge()}catch(e){console.error("Validation failed:",e)}},Y=e=>{let v={[Ce.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528",icon:C.default.createElement(Ne.CheckCircleOutlined,null)},[Ce.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528",icon:C.default.createElement(Ne.CloseCircleOutlined,null)}},{color:Z,text:B,icon:ue}=v[e]||{color:"default",text:"\u672A\u77E5",icon:null};return C.default.createElement(A.Tag,{color:Z,icon:ue},B)},f=[{title:"\u6D3B\u52A8\u540D\u79F0",dataIndex:"title",key:"title",width:200,render:e=>C.default.createElement(A.Tooltip,{title:e},C.default.createElement("span",{className:"promotion-title"},C.default.createElement(Ne.ThunderboltOutlined,{style:{color:"#faad14",marginRight:8}}),e))},{title:"\u6D3B\u52A8\u65F6\u95F4",key:"dateRange",width:220,render:(e,v)=>C.default.createElement(A.Space,null,C.default.createElement(Ne.ClockCircleOutlined,null),C.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)=>C.default.createElement(A.Space,null,C.default.createElement(A.Button,{type:"link",size:"small",icon:C.default.createElement(Ne.EditOutlined,null),onClick:()=>d(v)},"\u7F16\u8F91"),C.default.createElement(A.Button,{type:"link",size:"small",onClick:()=>c(v)},v.status===Ce.ENABLED?"\u7981\u7528":"\u542F\u7528"),C.default.createElement(A.Button,{type:"link",size:"small",danger:!0,icon:C.default.createElement(Ne.DeleteOutlined,null),onClick:()=>b(v.id)},"\u5220\u9664"))}],M={totalPromotions:Q.length,activePromotions:Q.filter(e=>e.status===Ce.ENABLED).length,upcomingPromotions:Q.filter(e=>{let v=new Date;return new Date(e.startDate)>v}).length},u=Q.filter(e=>e.status===Ce.ENABLED).slice(0,5).map(e=>({color:"green",children:C.default.createElement("div",null,C.default.createElement("div",{className:"timeline-title"},e.title),C.default.createElement("div",{className:"timeline-date"},e.startDate," ~ ",e.endDate))}));return C.default.createElement("div",{className:`mall-promotion-card ${ce||""}`,style:re},C.default.createElement(A.Card,null,G&&C.default.createElement("div",{className:"statistics-section"},C.default.createElement(A.Row,{gutter:16},C.default.createElement(A.Col,{span:8},C.default.createElement(A.Statistic,{title:"\u4FC3\u9500\u6D3B\u52A8\u603B\u6570",value:M.totalPromotions,prefix:C.default.createElement(Ne.ThunderboltOutlined,null)})),C.default.createElement(A.Col,{span:8},C.default.createElement(A.Statistic,{title:"\u8FDB\u884C\u4E2D\u7684\u6D3B\u52A8",value:M.activePromotions,valueStyle:{color:"#3f8600"}})),C.default.createElement(A.Col,{span:8},C.default.createElement(A.Statistic,{title:"\u5373\u5C06\u5F00\u59CB",value:M.upcomingPromotions,valueStyle:{color:"#faad14"}})))),K&&C.default.createElement("div",{className:"filter-section"},C.default.createElement(A.Space,{wrap:!0},C.default.createElement(A.Input,{placeholder:"\u6D3B\u52A8\u540D\u79F0",value:N,onChange:e=>le(e.target.value),style:{width:200}}),C.default.createElement(A.Select,{placeholder:"\u6D3B\u52A8\u72B6\u6001",value:oe,onChange:O,style:{width:120},allowClear:!0},Qt.map(e=>C.default.createElement(A.Select.Option,{key:e.value,value:e.value},e.label))),C.default.createElement(A.Button,{type:"primary",onClick:Oe},"\u67E5\u8BE2"),C.default.createElement(A.Button,{onClick:Te},"\u91CD\u7F6E"))),_&&C.default.createElement("div",{className:"action-section"},C.default.createElement(A.Button,{type:"primary",icon:C.default.createElement(Ne.PlusOutlined,null),onClick:y},"\u521B\u5EFA\u4FC3\u9500\u6D3B\u52A8")),C.default.createElement("div",{className:"content-section"},C.default.createElement("div",{className:"table-section"},C.default.createElement(A.Table,{columns:f,dataSource:Q,rowKey:"id",loading:se,pagination:{current:j,pageSize:q,total:be,showSizeChanger:!0,showQuickJumper:!0,showTotal:e=>`\u5171 ${e} \u6761`,onChange:(e,v)=>{$(e),ye(v)}}})),te&&u.length>0&&C.default.createElement("div",{className:"timeline-section"},C.default.createElement(A.Card,{title:"\u6D3B\u52A8\u65F6\u95F4\u7EBF",size:"small"},C.default.createElement(A.Timeline,{items:u}))))),C.default.createElement(A.Modal,{title:fe?"\u7F16\u8F91\u4FC3\u9500\u6D3B\u52A8":"\u521B\u5EFA\u4FC3\u9500\u6D3B\u52A8",visible:X,onOk:x,onCancel:()=>H(!1),width:500},C.default.createElement(A.Form,{form:pe,layout:"vertical"},C.default.createElement(A.Form.Item,{name:"title",label:"\u6D3B\u52A8\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6D3B\u52A8\u540D\u79F0"}]},C.default.createElement(A.Input,{placeholder:"\u8BF7\u8F93\u5165\u6D3B\u52A8\u540D\u79F0"})),C.default.createElement(A.Form.Item,{name:"dateRange",label:"\u6D3B\u52A8\u65F6\u95F4",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6D3B\u52A8\u65F6\u95F4"}]},C.default.createElement(Ar,{style:{width:"100%"}})),C.default.createElement(A.Form.Item,{name:"status",label:"\u6D3B\u52A8\u72B6\u6001",initialValue:Ce.ENABLED},C.default.createElement(A.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},dt=Dr;var k=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},Xt=[{label:"\u7981\u7528",value:Pe.DISABLED},{label:"\u542F\u7528",value:Pe.ENABLED}],Zt=[{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:m,showCreateButton:r=!0,showFilter:l=!0,showStatistics:p=!0,onCreateUser:w,onEditUser:_,onDeleteUser:K,onToggleStatus:G,style:te,className:ie})=>{let[J,T]=(0,k.useState)(!1),[z,re]=(0,k.useState)([]),[ce,se]=(0,k.useState)(0),[ee,Q]=(0,k.useState)(1),[E,be]=(0,k.useState)(10),[g,j]=(0,k.useState)(""),[$,q]=(0,k.useState)(),[ye,N]=(0,k.useState)(!1),[le,oe]=(0,k.useState)(null),[O]=D.Form.useForm(),X=[{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,k.useEffect)(()=>{H()},[ee,E]);let H=async()=>{T(!0);try{await new Promise(b=>setTimeout(b,500));let d=[...X];g&&(d=d.filter(b=>b.username.toLowerCase().includes(g.toLowerCase())||b.nickName?.toLowerCase().includes(g.toLowerCase()))),$!==void 0&&(d=d.filter(b=>b.status===$)),re(d),se(d.length)}catch(d){console.error("Failed to fetch user list:",d),D.message.error("\u83B7\u53D6\u7528\u6237\u5217\u8868\u5931\u8D25")}finally{T(!1)}},fe=()=>{Q(1),H()},he=()=>{j(""),q(void 0),Q(1),H()},pe=()=>{oe(null),O.resetFields(),N(!0)},ve=d=>{oe(d),O.setFieldsValue(d),N(!0)},Se=d=>{D.Modal.confirm({title:"\u786E\u8BA4\u5220\u9664",content:"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u7528\u6237\u5417\uFF1F",onOk:()=>{K?.(d),D.message.success("\u5220\u9664\u6210\u529F"),H()}})},Ae=d=>{let b=d.status===Pe.ENABLED?Pe.DISABLED:Pe.ENABLED;G?.(d.id,b),D.message.success(b===Pe.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),H()},ge=async()=>{try{let d=await O.validateFields();le?(_?.(le.id,d),D.message.success("\u7F16\u8F91\u6210\u529F")):(w?.(d),D.message.success("\u521B\u5EFA\u6210\u529F")),N(!1),H()}catch(d){console.error("Validation failed:",d)}},Oe=d=>{let b={[Pe.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528"},[Pe.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528"}},{color:c,text:x}=b[d]||{color:"default",text:"\u672A\u77E5"};return k.default.createElement(D.Tag,{color:c},x)},Te=[{title:"\u7528\u6237\u4FE1\u606F",key:"userInfo",width:200,render:(d,b)=>k.default.createElement(D.Space,null,k.default.createElement(D.Avatar,{icon:k.default.createElement(Ge.UserOutlined,null),style:{backgroundColor:"#1890ff"}}),k.default.createElement("div",null,k.default.createElement("div",{className:"user-name"},b.nickName||b.username),k.default.createElement("div",{className:"user-username"},"@",b.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:d=>k.default.createElement(D.Space,{wrap:!0},d?.map((b,c)=>k.default.createElement(D.Tag,{key:c,color:"blue"},b)))},{title:"\u72B6\u6001",dataIndex:"status",key:"status",width:80,render:d=>Oe(d)},{title:"\u6700\u540E\u767B\u5F55",dataIndex:"loginTime",key:"loginTime",width:160},{title:"\u64CD\u4F5C",key:"action",width:180,render:(d,b)=>k.default.createElement(D.Space,null,k.default.createElement(D.Button,{type:"link",size:"small",icon:k.default.createElement(Ge.EditOutlined,null),onClick:()=>ve(b)},"\u7F16\u8F91"),k.default.createElement(D.Button,{type:"link",size:"small",onClick:()=>Ae(b)},b.status===Pe.ENABLED?"\u7981\u7528":"\u542F\u7528"),k.default.createElement(D.Button,{type:"link",size:"small",danger:!0,icon:k.default.createElement(Ge.DeleteOutlined,null),onClick:()=>Se(b.id)},"\u5220\u9664"))}],y={totalUsers:X.length,activeUsers:X.filter(d=>d.status===Pe.ENABLED).length,disabledUsers:X.filter(d=>d.status===Pe.DISABLED).length};return k.default.createElement("div",{className:`mall-user-card ${ie||""}`,style:te},k.default.createElement(D.Card,null,p&&k.default.createElement("div",{className:"statistics-section"},k.default.createElement(D.Space,{size:"large"},k.default.createElement("div",{className:"stat-item"},k.default.createElement("div",{className:"stat-value"},y.totalUsers),k.default.createElement("div",{className:"stat-label"},"\u7528\u6237\u603B\u6570")),k.default.createElement(D.Divider,{type:"vertical",style:{height:40}}),k.default.createElement("div",{className:"stat-item"},k.default.createElement("div",{className:"stat-value",style:{color:"#52c41a"}},y.activeUsers),k.default.createElement("div",{className:"stat-label"},"\u6D3B\u8DC3\u7528\u6237")),k.default.createElement(D.Divider,{type:"vertical",style:{height:40}}),k.default.createElement("div",{className:"stat-item"},k.default.createElement("div",{className:"stat-value",style:{color:"#8c8c8c"}},y.disabledUsers),k.default.createElement("div",{className:"stat-label"},"\u5DF2\u7981\u7528")))),l&&k.default.createElement("div",{className:"filter-section"},k.default.createElement(D.Space,{wrap:!0},k.default.createElement(D.Input,{placeholder:"\u7528\u6237\u540D/\u6635\u79F0",value:g,onChange:d=>j(d.target.value),style:{width:200}}),k.default.createElement(D.Select,{placeholder:"\u7528\u6237\u72B6\u6001",value:$,onChange:q,style:{width:120},allowClear:!0},Xt.map(d=>k.default.createElement(D.Select.Option,{key:d.value,value:d.value},d.label))),k.default.createElement(D.Button,{type:"primary",onClick:fe},"\u67E5\u8BE2"),k.default.createElement(D.Button,{onClick:he},"\u91CD\u7F6E"))),r&&k.default.createElement("div",{className:"action-section"},k.default.createElement(D.Button,{type:"primary",icon:k.default.createElement(Ge.PlusOutlined,null),onClick:pe},"\u521B\u5EFA\u7528\u6237")),k.default.createElement(D.Table,{columns:Te,dataSource:z,rowKey:"id",loading:J,pagination:{current:ee,pageSize:E,total:ce,showSizeChanger:!0,showQuickJumper:!0,showTotal:d=>`\u5171 ${d} \u6761`,onChange:(d,b)=>{Q(d),be(b)}}})),k.default.createElement(D.Modal,{title:le?"\u7F16\u8F91\u7528\u6237":"\u521B\u5EFA\u7528\u6237",visible:ye,onOk:ge,onCancel:()=>N(!1),width:500},k.default.createElement(D.Form,{form:O,layout:"vertical"},k.default.createElement(D.Form.Item,{name:"username",label:"\u7528\u6237\u540D",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u7528\u6237\u540D"}]},k.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u540D",disabled:!!le})),k.default.createElement(D.Form.Item,{name:"nickName",label:"\u6635\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6635\u79F0"}]},k.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u6635\u79F0"})),k.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"}]},k.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u90AE\u7BB1"})),k.default.createElement(D.Form.Item,{name:"phone",label:"\u624B\u673A\u53F7",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u624B\u673A\u53F7"}]},k.default.createElement(D.Input,{placeholder:"\u8BF7\u8F93\u5165\u624B\u673A\u53F7"})),k.default.createElement(D.Form.Item,{name:"status",label:"\u72B6\u6001",initialValue:Pe.ENABLED},k.default.createElement(D.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},mt=Er;var I=V(ke()),L=V(De()),Je=V(ze());var Lr=({dataSource:m,showCreateButton:r=!0,showFilter:l=!0,showStatistics:p=!0,showPermissionTree:w=!0,onCreateRole:_,onEditRole:K,onDeleteRole:G,onToggleStatus:te,style:ie,className:J})=>{let[T,z]=(0,I.useState)(!1),[re,ce]=(0,I.useState)([]),[se,ee]=(0,I.useState)(0),[Q,E]=(0,I.useState)(1),[be,g]=(0,I.useState)(10),[j,$]=(0,I.useState)(""),[q,ye]=(0,I.useState)(),[N,le]=(0,I.useState)(!1),[oe,O]=(0,I.useState)(null),[X]=L.Form.useForm(),H=[{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,I.useEffect)(()=>{he()},[Q,be]);let he=async()=>{z(!0);try{await new Promise(x=>setTimeout(x,500));let c=[...H];j&&(c=c.filter(x=>x.name.toLowerCase().includes(j.toLowerCase())||x.description?.toLowerCase().includes(j.toLowerCase()))),q!==void 0&&(c=c.filter(x=>x.status===q)),ce(c),ee(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=()=>{$(""),ye(void 0),E(1),he()},Se=()=>{O(null),X.resetFields(),le(!0)},Ae=c=>{O(c),X.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:()=>{G?.(c),L.message.success("\u5220\u9664\u6210\u529F"),he()}})},Oe=c=>{let x=c.status===Ie.ENABLED?Ie.DISABLED:Ie.ENABLED;te?.(c.id,x),L.message.success(x===Ie.ENABLED?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),he()},Te=async()=>{try{let c=await X.validateFields();oe?(K?.(oe.id,c),L.message.success("\u7F16\u8F91\u6210\u529F")):(_?.(c),L.message.success("\u521B\u5EFA\u6210\u529F")),le(!1),he()}catch(c){console.error("Validation failed:",c)}},y=c=>{let x={[Ie.ENABLED]:{color:"success",text:"\u5DF2\u542F\u7528"},[Ie.DISABLED]:{color:"default",text:"\u5DF2\u7981\u7528"}},{color:Y,text:f}=x[c]||{color:"default",text:"\u672A\u77E5"};return I.default.createElement(L.Tag,{color:Y},f)},d=[{title:"\u89D2\u8272\u540D\u79F0",dataIndex:"name",key:"name",width:150,render:c=>I.default.createElement(L.Space,null,I.default.createElement(Je.TeamOutlined,{style:{color:"#1890ff"}}),I.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=>I.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,x)=>I.default.createElement(L.Space,null,I.default.createElement(L.Button,{type:"link",size:"small",icon:I.default.createElement(Je.EditOutlined,null),onClick:()=>Ae(x)},"\u7F16\u8F91"),I.default.createElement(L.Button,{type:"link",size:"small",onClick:()=>Oe(x)},x.status===Ie.ENABLED?"\u7981\u7528":"\u542F\u7528"),I.default.createElement(L.Button,{type:"link",size:"small",danger:!0,icon:I.default.createElement(Je.DeleteOutlined,null),onClick:()=>ge(x.id)},"\u5220\u9664"))}],b={totalRoles:H.length,activeRoles:H.filter(c=>c.status===Ie.ENABLED).length,totalAdmins:H.reduce((c,x)=>c+x.adminCount,0)};return I.default.createElement("div",{className:`mall-role-card ${J||""}`,style:ie},I.default.createElement(L.Card,null,p&&I.default.createElement("div",{className:"statistics-section"},I.default.createElement(L.Space,{size:"large"},I.default.createElement("div",{className:"stat-item"},I.default.createElement("div",{className:"stat-value"},b.totalRoles),I.default.createElement("div",{className:"stat-label"},"\u89D2\u8272\u603B\u6570")),I.default.createElement(L.Divider,{type:"vertical",style:{height:40}}),I.default.createElement("div",{className:"stat-item"},I.default.createElement("div",{className:"stat-value",style:{color:"#52c41a"}},b.activeRoles),I.default.createElement("div",{className:"stat-label"},"\u542F\u7528\u89D2\u8272")),I.default.createElement(L.Divider,{type:"vertical",style:{height:40}}),I.default.createElement("div",{className:"stat-item"},I.default.createElement("div",{className:"stat-value",style:{color:"#1890ff"}},b.totalAdmins),I.default.createElement("div",{className:"stat-label"},"\u7528\u6237\u603B\u6570")))),l&&I.default.createElement("div",{className:"filter-section"},I.default.createElement(L.Space,{wrap:!0},I.default.createElement(L.Input,{placeholder:"\u89D2\u8272\u540D\u79F0/\u63CF\u8FF0",value:j,onChange:c=>$(c.target.value),style:{width:200}}),I.default.createElement(L.Select,{placeholder:"\u89D2\u8272\u72B6\u6001",value:q,onChange:ye,style:{width:120},allowClear:!0},Zt.map(c=>I.default.createElement(L.Select.Option,{key:c.value,value:c.value},c.label))),I.default.createElement(L.Button,{type:"primary",onClick:pe},"\u67E5\u8BE2"),I.default.createElement(L.Button,{onClick:ve},"\u91CD\u7F6E"))),r&&I.default.createElement("div",{className:"action-section"},I.default.createElement(L.Button,{type:"primary",icon:I.default.createElement(Je.PlusOutlined,null),onClick:Se},"\u521B\u5EFA\u89D2\u8272")),I.default.createElement("div",{className:"content-section"},I.default.createElement("div",{className:"table-section"},I.default.createElement(L.Table,{columns:d,dataSource:re,rowKey:"id",loading:T,pagination:{current:Q,pageSize:be,total:se,showSizeChanger:!0,showQuickJumper:!0,showTotal:c=>`\u5171 ${c} \u6761`,onChange:(c,x)=>{E(c),g(x)}}})),w&&I.default.createElement("div",{className:"permission-section"},I.default.createElement(L.Card,{title:"\u6743\u9650\u6811",size:"small"},I.default.createElement(L.Tree,{checkable:!0,defaultExpandedKeys:["product","order"],treeData:fe}))))),I.default.createElement(L.Modal,{title:oe?"\u7F16\u8F91\u89D2\u8272":"\u521B\u5EFA\u89D2\u8272",visible:N,onOk:Te,onCancel:()=>le(!1),width:500},I.default.createElement(L.Form,{form:X,layout:"vertical"},I.default.createElement(L.Form.Item,{name:"name",label:"\u89D2\u8272\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0"}]},I.default.createElement(L.Input,{placeholder:"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0"})),I.default.createElement(L.Form.Item,{name:"description",label:"\u63CF\u8FF0"},I.default.createElement(L.Input.TextArea,{rows:3,placeholder:"\u8BF7\u8F93\u5165\u89D2\u8272\u63CF\u8FF0"})),I.default.createElement(L.Form.Item,{name:"sort",label:"\u6392\u5E8F",initialValue:0},I.default.createElement(L.Input,{type:"number",placeholder:"\u6392\u5E8F\u503C"})),I.default.createElement(L.Form.Item,{name:"status",label:"\u72B6\u6001",initialValue:Ie.ENABLED},I.default.createElement(L.Switch,{checkedChildren:"\u542F\u7528",unCheckedChildren:"\u7981\u7528",defaultChecked:!0})))))},ut=Lr;var F=V(ke());var ae=V(ke()),kt=V(De()),W=V(ze()),{SubMenu:yn}=kt.Menu,wt=[{key:"dashboard",label:"\u5DE5\u4F5C\u53F0",icon:ae.default.createElement(W.DashboardOutlined,null),path:"/dashboard"},{key:"permission",label:"\u6743\u9650\u7BA1\u7406",icon:ae.default.createElement(W.SafetyCertificateOutlined,null),children:[{key:"permission/users",label:"\u7528\u6237\u7BA1\u7406",icon:ae.default.createElement(W.UserOutlined,null),path:"/permission/users"},{key:"permission/roles",label:"\u89D2\u8272\u7BA1\u7406",icon:ae.default.createElement(W.TeamOutlined,null),path:"/permission/roles"},{key:"permission/resources",label:"\u8D44\u6E90\u7BA1\u7406",icon:ae.default.createElement(W.SettingOutlined,null),path:"/permission/resources"},{key:"permission/menus",label:"\u83DC\u5355\u7BA1\u7406",icon:ae.default.createElement(W.FileTextOutlined,null),path:"/permission/menus"}]},{key:"product",label:"\u5546\u54C1\u7BA1\u7406",icon:ae.default.createElement(W.ShoppingOutlined,null),children:[{key:"product/list",label:"\u5546\u54C1\u5217\u8868",icon:ae.default.createElement(W.InboxOutlined,null),path:"/product/list"},{key:"product/add",label:"\u6DFB\u52A0\u5546\u54C1",icon:ae.default.createElement(W.ShoppingOutlined,null),path:"/product/add"},{key:"product/category",label:"\u5546\u54C1\u5206\u7C7B",icon:ae.default.createElement(W.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(W.FileTextOutlined,null),children:[{key:"order/list",label:"\u8BA2\u5355\u5217\u8868",icon:ae.default.createElement(W.FileTextOutlined,null),path:"/order/list"},{key:"order/setting",label:"\u8BA2\u5355\u8BBE\u7F6E",icon:ae.default.createElement(W.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(W.GiftOutlined,null),children:[{key:"marketing/coupon",label:"\u4F18\u60E0\u5238\u7BA1\u7406",icon:ae.default.createElement(W.GiftOutlined,null),path:"/marketing/coupon"},{key:"marketing/promotion",label:"\u4FC3\u9500\u6D3B\u52A8",icon:ae.default.createElement(W.DollarOutlined,null),path:"/marketing/promotion"},{key:"marketing/flash",label:"\u79D2\u6740\u6D3B\u52A8",icon:ae.default.createElement(W.ThunderboltOutlined,null),path:"/marketing/flash"},{key:"marketing/new",label:"\u65B0\u54C1\u63A8\u8350",icon:ae.default.createElement(W.FireOutlined,null),path:"/marketing/new"},{key:"marketing/hot",label:"\u4EBA\u6C14\u63A8\u8350",icon:ae.default.createElement(W.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:m,selectedKey:r,openKeys:l,onMenuClick:p,onOpenChange:w,menuItems:_})=>{let K=_||wt,[G,te]=(0,ae.useState)(K.filter(T=>T.children).map(T=>T.key)),ie=T=>{let z=T[T.length-1];z&&K.some(re=>re.key===z)?(te(T),w(T)):(te(z?[z]:[]),w(z?[z]:[]))},J=({key:T})=>{p(T)};return ae.default.createElement("div",{className:`sidebar-container ${m?"collapsed":""}`},ae.default.createElement("div",{className:"sidebar-logo"},!m&&ae.default.createElement("span",{className:"logo-text"},"Mall Admin"),m&&ae.default.createElement("span",{className:"logo-icon"},"M")),ae.default.createElement(kt.Menu,{mode:"inline",theme:"dark",inlineCollapsed:m,selectedKeys:[r],defaultOpenKeys:G,openKeys:l.length>0?l:G,onClick:J,onOpenChange:ie,items:K.map(T=>T.children&&T.children.length>0?{key:T.key,icon:T.icon,label:T.label,children:T.children.map(z=>({key:z.key,icon:z.icon,label:z.label}))}:{key:T.key,icon:T.icon,label:T.label})}))},Rt=Fr;var xe=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:m,onNavigate:r})=>{let l=p=>p.split("/").map(_=>Ur[_]||_).join(" / ");return!m||m.length===0?null:ct.default.createElement(Pt.Breadcrumb,null,m.map(p=>ct.default.createElement(Pt.Breadcrumb.Item,{key:p.key},ct.default.createElement("a",{onClick:()=>r(p.key)},p.label||l(p.key)))))},er=Br;var Mr=({collapsed:m,onToggleCollapse:r,breadcrumbItems:l,onNavigate:p})=>xe.default.createElement("div",{className:"navbar-container"},xe.default.createElement("div",{className:"navbar-left"},xe.default.createElement("button",{className:"hamburger-btn",onClick:r},m?xe.default.createElement(Me.MenuUnfoldOutlined,null):xe.default.createElement(Me.MenuFoldOutlined,null)),xe.default.createElement(er,{items:l,onNavigate:p})),xe.default.createElement("div",{className:"navbar-right"},xe.default.createElement(Qe.Dropdown,{overlay:xe.default.createElement(Qe.Menu,{items:[{key:"profile",icon:xe.default.createElement(Me.UserOutlined,null),label:"\u4E2A\u4EBA\u4E2D\u5FC3"},{key:"settings",icon:xe.default.createElement(Me.SettingOutlined,null),label:"\u7CFB\u7EDF\u8BBE\u7F6E"},{type:"divider"},{key:"logout",icon:xe.default.createElement(Me.LogoutOutlined,null),label:"\u9000\u51FA\u767B\u5F55",danger:!0}],onClick:({key:G})=>{G==="logout"&&console.log("User logged out")}}),placement:"bottomRight"},xe.default.createElement("div",{className:"user-info"},xe.default.createElement(Qe.Avatar,{size:32,icon:xe.default.createElement(Me.UserOutlined,null),className:"user-avatar"}),xe.default.createElement(Qe.Space,{size:4,className:"username"},xe.default.createElement("span",null,"\u7BA1\u7406\u5458")))))),tr=Mr;var Ze=V(ke());var R=V(ke()),pt=V(De()),je=V(ze()),zr=({tabs:m,activeTabKey:r,onTabClick:l,onCloseTab:p,onCloseOther:w,onCloseAll:_,closableTabs:K=!0})=>{let[G,te]=(0,R.useState)(null),[ie,J]=(0,R.useState)(!1),[T,z]=(0,R.useState)(""),[re,ce]=(0,R.useState)({x:0,y:0}),se=(0,R.useRef)(null);(0,R.useEffect)(()=>{if(se.current&&r){let g=se.current.querySelector(`[data-tab-key="${r}"]`);g&&g.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}},[r]),(0,R.useEffect)(()=>{let g=()=>J(!1);if(ie)return document.addEventListener("click",g),()=>document.removeEventListener("click",g)},[ie]);let ee=(g,j)=>{g.preventDefault(),g.stopPropagation(),z(j),ce({x:g.clientX,y:g.clientY}),J(!0)},Q=g=>{switch(J(!1),g){case"close":p(T);break;case"closeOther":w(T);break;case"closeAll":_();break;case"refresh":window.location.reload();break}};if(!m||m.length===0)return null;let E=[{key:"refresh",icon:R.default.createElement(je.ReloadOutlined,null),label:"\u5237\u65B0\u5F53\u524D\u9875"},{key:"close",icon:R.default.createElement(je.CloseOutlined,null),label:"\u5173\u95ED\u5F53\u524D",disabled:!K||m.find(g=>g.key===T)?.closable===!1},{type:"divider"},{key:"closeOther",icon:R.default.createElement(je.CloseCircleOutlined,null),label:"\u5173\u95ED\u5176\u4ED6",disabled:m.length<=1},{key:"closeAll",icon:R.default.createElement(je.CloseCircleOutlined,null),label:"\u5173\u95ED\u6240\u6709"}],be=R.default.createElement(pt.Menu,{items:E,onClick:({key:g})=>Q(g)});return R.default.createElement(R.default.Fragment,null,R.default.createElement("div",{className:"tab-bar-container"},R.default.createElement("div",{className:"tab-bar-scroll",ref:se},m.map(g=>R.default.createElement("div",{key:g.key,"data-tab-key":g.key,className:`tab-item ${r===g.key?"active":""} ${G===g.key?"hovered":""}`,onClick:()=>l(g.key),onMouseEnter:()=>te(g.key),onMouseLeave:()=>te(null),onContextMenu:j=>ee(j,g.key)},g.icon&&R.default.createElement("span",{className:"tab-icon"},g.icon),R.default.createElement("span",{className:"tab-label"},g.label),K&&g.closable&&R.default.createElement("span",{className:`tab-close-btn ${G===g.key||r===g.key?"visible":""}`,onClick:j=>{j.stopPropagation(),p(g.key)}},R.default.createElement(je.CloseOutlined,{style:{fontSize:10}}))))),K&&m.length>1&&R.default.createElement("div",{className:"tab-actions"},R.default.createElement("button",{className:"close-all-btn",onClick:_,title:"\u5173\u95ED\u5168\u90E8\u6807\u7B7E"},R.default.createElement(je.CloseCircleOutlined,null)))),ie&&R.default.createElement("div",{style:{position:"fixed",left:re.x,top:re.y,zIndex:1e3}},R.default.createElement(pt.Dropdown,{overlay:be,visible:ie,onVisibleChange:J,trigger:["click"]},R.default.createElement("div",{style:{width:0,height:0}}))))},rr=zr;var Yr=({children:m,pageKey:r,tabs:l,activeTabKey:p,onTabClick:w,onCloseTab:_,onCloseOther:K,onCloseAll:G,enableTabs:te=!0,closableTabs:ie=!0,className:J=""})=>Ze.default.createElement("main",{className:`main-content ${J}`},te&&l.length>0&&Ze.default.createElement(rr,{tabs:l,activeTabKey:p,onTabClick:w,onCloseTab:_,onCloseOther:K,onCloseAll:G,closableTabs:ie}),Ze.default.createElement("div",{className:"content-wrapper"},Ze.default.createElement("div",{className:"page-container",key:r},m))),or=Yr;var It=V(ke()),_r=({tab:m,tabKey:r,activeTabKey:l,children:p,className:w,style:_,__designMode:K})=>{let G=l===r,te=K==="design"||G;return It.default.createElement("div",{className:`tab-pane ${G?"tab-pane--active":""} ${w||""}`,style:{..._,display:te?void 0:"none",minHeight:K==="design"&&!p?"200px":void 0,pointerEvents:K==="design"?"auto":void 0},"data-tab-key":r,"data-active":G?"true":"false"},p,K==="design"&&!p&&It.default.createElement("div",{style:{padding:"40px 20px",textAlign:"center",color:"#999",border:"1px dashed #ddd",borderRadius:"4px"}},"\u62D6\u62FD\u7EC4\u4EF6\u5230\u6B64\u5904"))},Xe=_r;var Vr="general",Ot=()=>{try{let m=window.AliLowCodeEngine;if(!m?.project)return;let r=m.project.exportSchema("save"),l=`${Vr}:projectSchema`;localStorage.setItem(l,JSON.stringify(r)),console.log("[AdminLayout] \u{1F4BE} Schema saved to localStorage")}catch(m){console.error("[AdminLayout] Failed to save schema:",m)}},et=(m,r)=>{for(let l of m){if(l.key===r)return l;if(l.children){let p=et(l.children,r);if(p)return p}}},Re=m=>{let r=m.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:m="dashboard",defaultOpenKeys:r,collapsible:l=!0,enableTabs:p=!0,maxTabs:w=10,closableTabs:_=!0,logoText:K="Mall Admin",menuItems:G,style:te,className:ie,children:J,__designMode:T,componentId:z})=>{let re=G||wt,[ce,se]=(0,F.useState)(!1),[ee,Q]=(0,F.useState)(m),[E,be]=(0,F.useState)(r||[]),[g,j]=(0,F.useState)(()=>{let y=et(re,m);return[{key:m,label:y?.label||Re(m),icon:y?.icon,closable:!1,path:y?.path||`/${m}`}]}),[$,q]=(0,F.useState)(m),ye=(0,F.useRef)($);ye.current=$;let N=(0,F.useRef)(!1);(0,F.useEffect)(()=>{if(T!=="design"||!z||N.current)return;let y=setTimeout(()=>{try{let d=window.AliLowCodeEngine;if(!d?.project?.currentDocument)return;let b=d.project.currentDocument,c=b.getNodeById(z);if(!c){console.log("[AdminLayout] \u26A0\uFE0F AdminLayout node not found");return}let x=c.schema?.children||[];console.log("[AdminLayout] \u{1F50D} Schema children:",x.length,x.map(f=>f.componentName));let Y=x.filter(f=>f.componentName==="TabPane");if(console.log("[AdminLayout] \u{1F50D} Found existing TabPanes:",Y.length),Y.length>0){let f=Y.map(u=>{let e=u.props?.tabKey||"unknown",v=u.props?.tab||Re(e),Z=et(re,e);return console.log("[AdminLayout] \u{1F4CB} Restoring tab:",e,v),{key:e,label:v,icon:Z?.icon,closable:e!=="dashboard",path:Z?.path||`/${e}`}});console.log("[AdminLayout] \u{1F4CB} Restored tabs from schema:",f.map(u=>u.key)),j(f);let M=f[f.length-1];M&&(q(M.key),Q(M.key))}else{console.log("[AdminLayout] \u{1F4CB} No TabPane found, creating default dashboard TabPane");let f=b.createNode({componentName:"TabPane",props:{tab:"\u5DE5\u4F5C\u53F0",tabKey:"dashboard",activeTabKey:"dashboard"}});f&&(b.insertNode(c,f),console.log("[AdminLayout] \u2705 Created default TabPane for dashboard"))}N.current=!0}catch(d){console.error("[AdminLayout] Init TabPane error:",d)}},100);return()=>clearTimeout(y)},[z,T,re]),(0,F.useEffect)(()=>{if(T==="design"||!J)return;let d=F.Children.toArray(J).filter(b=>(0,F.isValidElement)(b)?b.type===Xe||b.props?.tabKey:!1);if(d.length>0){let b=d.map(c=>{let x=c.props,Y=x?.tabKey||"unknown",f=x?.tab||Re(Y),M=et(re,Y);return{key:Y,label:f,icon:M?.icon,closable:Y!=="dashboard",path:M?.path||`/${Y}`}});console.log("[AdminLayout] Preview mode - restored tabs:",b.map(c=>c.key)),j(b)}},[J,T,re]),(0,F.useEffect)(()=>{if(T!=="design")return;let y=window.AliLowCodeEngine;if(!y?.project?.currentDocument)return;let d=y.project.currentDocument,b=null,c=()=>{b&&clearTimeout(b),b=setTimeout(()=>{Ot()},500)},x=d.onAddNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onAddNode triggered"),c()}),Y=d.onRemoveNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onRemoveNode triggered"),c()}),f=d.onMountNode?.(()=>{console.log("[AdminLayout] \u{1F4CC} onMountNode triggered"),c()});return()=>{b&&clearTimeout(b),x?.(),Y?.(),f?.()}},[T]),(0,F.useEffect)(()=>{if(!(T!=="design"||!z))try{let y=window.AliLowCodeEngine;if(!y?.project?.currentDocument)return;let b=y.project.currentDocument.getNodeById(z);b?.children&&(Array.isArray(b.children)?b.children:b.children.toArray?b.children.toArray():[]).forEach(x=>{x.componentName==="TabPane"&&x.setPropValue("activeTabKey",$)})}catch{}},[$,z,T]);let le=(0,F.useCallback)(()=>{l&&se(y=>!y)},[l]),oe=(0,F.useCallback)((y,d)=>{if(typeof window>"u")return!1;try{let b=window.AliLowCodeEngine;if(!b?.project?.currentDocument)return!1;let c=b.project.currentDocument,x=z?c.getNodeById(z):null;if(!x)return!1;let Y=Array.isArray(x.children)?x.children:x.children?.toArray?x.children.toArray():[];console.log("[AdminLayout] \u{1F50D} All children before create:",Y.map(M=>({id:M.id,name:M.componentName,tabKey:M.props?.tabKey})));for(let M of Y){let u=M.props?.tabKey||M.getPropValue?.("tabKey");if(M.componentName==="TabPane"&&u===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 f=c.createNode({componentName:"TabPane",props:{tab:d,tabKey:y,activeTabKey:ye.current}});return f?(c.insertNode(x,f),console.log("[AdminLayout] \u2705 Created new TabPane:",y,"nodeId:",f.id),setTimeout(()=>Ot(),100),!0):!1}catch(b){return console.error("[AdminLayout] createTabPane error:",b),!1}},[z]),O=(0,F.useCallback)(y=>{if(typeof window>"u")return!1;let d=!1;try{let b=window.AliLowCodeEngine;if(!b?.project?.currentDocument)return!1;let c=b.project.currentDocument,x=z?c.getNodeById(z):null;if(console.log("[AdminLayout] \u{1F5D1}\uFE0F removeTabPane called:",y),console.log("[AdminLayout] componentId:",z),console.log("[AdminLayout] adminLayoutNode:",x?"found":"NOT FOUND"),console.log("[AdminLayout] adminLayoutNode.id:",x?.id),console.log("[AdminLayout] adminLayoutNode.componentName:",x?.componentName),!x)return!1;let Y=[];if(x.children&&(Array.isArray(x.children)?Y=x.children:typeof x.children.toArray=="function"?Y=x.children.toArray():typeof x.children.map=="function"&&(Y=x.children.map(f=>f))),Y.length===0&&x.schema?.children){console.log("[AdminLayout] Trying schema.children...");let f=x.schema.children;Array.isArray(f)&&(Y=f.map(M=>c.getNodeById(M.id)).filter(Boolean))}if(Y.length===0){console.log("[AdminLayout] Trying documentModel.getRoot()...");let f=c.getRoot();console.log("[AdminLayout] Root node:",f?.componentName);let M=(e,v)=>{if(!v)return null;if(e.id===v)return e;if(e.children){let Z=Array.isArray(e.children)?e.children:e.children.toArray?e.children.toArray():[];for(let B of Z){let ue=M(B,v);if(ue)return ue}}return null},u=M(f,z);u&&u.children&&(Y=Array.isArray(u.children)?u.children:u.children.toArray?u.children.toArray():[])}console.log("[AdminLayout] Final children count:",Y.length),console.log("[AdminLayout] Children details:",Y.map(f=>({id:f?.id,name:f?.componentName,tabKey:f?.props?.tabKey||f?.getPropValue?.("tabKey"),childrenCount:f?.children?Array.isArray(f.children)?f.children.length:f.children.toArray?f.children.toArray().length:0:0}))),Y.forEach((f,M)=>{if(console.log(`[AdminLayout] Child[${M}] ${f?.componentName}:`,{id:f?.id,tabKey:f?.props?.tabKey||f?.getPropValue?.("tabKey"),hasChildren:!!f?.children,childrenType:f?.children?Array.isArray(f.children)?"array":typeof f.children.toArray=="function"?"array-like":typeof f.children:"none"}),f?.componentName==="TabPane"&&f?.children){let u=Array.isArray(f.children)?f.children:f.children.toArray?f.children.toArray():[];if(console.log("[AdminLayout] TabPane children:",u.map(e=>({id:e?.id,name:e?.componentName}))),u.length===0){if(console.log("[AdminLayout] Trying alternative methods..."),f.schema?.children&&console.log("[AdminLayout] schema.children:",f.schema.children),typeof f.getChildren=="function"){let e=f.getChildren();console.log("[AdminLayout] getChildren():",e)}f.slots&&console.log("[AdminLayout] slots:",f.slots)}}f?.componentName!=="TabPane"&&console.log("[AdminLayout] \u26A0\uFE0F Found non-TabPane child! This might be a dragged component.")});for(let f of Y){if(!f)continue;let M=f.props?.tabKey||f.getPropValue?.("tabKey");if(f.componentName==="TabPane"&&M===y){console.log("[AdminLayout] \u2705 Found TabPane to remove:",f.id);let u=f.schema?.children;if(u&&Array.isArray(u)&&u.length>0){console.log("[AdminLayout] Removing",u.length,"grandchildren from schema.children");for(let e=u.length-1;e>=0;e--){let v=u[e],Z=c.getNodeById(v.id);if(Z)try{c.removeNode(Z),console.log("[AdminLayout] \u2713 Removed grandchild:",Z.id,Z.componentName)}catch(B){console.warn("[AdminLayout] \u2717 Failed to remove grandchild:",B)}}}else console.log("[AdminLayout] No grandchildren to remove");try{c.removeNode(f),d=!0,console.log("[AdminLayout] \u2705 Removed TabPane node:",y),setTimeout(()=>Ot(),100)}catch(e){console.error("[AdminLayout] Failed to remove TabPane:",e)}break}}return d||console.warn("[AdminLayout] \u26A0\uFE0F TabPane not found for key:",y),d}catch(b){return console.error("[AdminLayout] removeTabPane error:",b),!1}},[z]),X=(0,F.useCallback)(y=>{if(Q(y),!g.find(b=>b.key===y)){let b=et(re,y),c={key:y,label:b?.label||Re(y),icon:b?.icon,closable:y!=="dashboard",path:b?.path||`/${y}`};j(x=>{if(x.length>=w){let Y=x.filter(f=>f.closable);if(Y.length>0)return[...x.filter(f=>f.key!==Y[0].key),c]}return[...x,c]}),T==="design"&&setTimeout(()=>oe(y,b?.label||Re(y)),0)}q(y)},[g,re,w,T,oe]),H=(0,F.useCallback)(y=>be(y),[]),fe=(0,F.useCallback)(y=>{Q(y),q(y)},[]),he=(0,F.useCallback)(y=>{Q(y),q(y)},[]),pe=(0,F.useCallback)(y=>{if(y!=="dashboard"&&(O(y),j(d=>d.filter(b=>b.key!==y)),y===$)){let d=g.filter(b=>b.key!==y);if(d.length>0){let b=g.findIndex(x=>x.key===y),c=d[b]||d[d.length-1];Q(c.key),q(c.key)}}},[g,$,O]),ve=(0,F.useCallback)(y=>{g.forEach(d=>{d.key!==y&&d.key!=="dashboard"&&O(d.key)}),j(d=>d.filter(b=>b.key===y||b.key==="dashboard")),Q(y),q(y)},[g,O]),Se=(0,F.useCallback)(()=>{g.forEach(d=>{d.key!=="dashboard"&&O(d.key)});let y=g.find(d=>d.key==="dashboard");y&&(j([y]),Q("dashboard"),q("dashboard"))},[g,O]),Ae=(0,F.useMemo)(()=>ee==="dashboard"?[]:ee.split("/").length===1?[{key:ee,label:"",path:ee}]:[{key:ee,label:"",path:ee}],[ee]),Te=(0,F.useMemo)(()=>{if(!J)return null;if(T==="design"){let d=F.Children.toArray(J).find(b=>(0,F.isValidElement)(b)?b.props?.tabKey===$:!1);return d&&(0,F.isValidElement)(d)?(0,F.cloneElement)(d,{activeTabKey:$,__designMode:T}):d||null}return F.Children.map(J,y=>(0,F.isValidElement)(y)?(0,F.cloneElement)(y,{activeTabKey:$,__designMode:T}):y)},[J,$,T])||F.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 F.default.createElement("div",{className:`admin-layout ${ce?"is-collapse":""} ${ie||""}`,style:te,"data-active-tab":$},F.default.createElement(Rt,{collapsed:ce,selectedKey:ee,openKeys:E,onMenuClick:X,onOpenChange:H,menuItems:re}),F.default.createElement("div",{className:"layout-right"},F.default.createElement(tr,{collapsed:ce,onToggleCollapse:le,breadcrumbItems:Ae,onNavigate:fe}),F.default.createElement(or,{pageKey:ee,tabs:g,activeTabKey:$,onTabClick:he,onCloseTab:pe,onCloseOther:ve,onCloseAll:Se,enableTabs:p,closableTabs:_,className:ce?"collapsed":""},Te)),l&&F.default.createElement("div",{className:`mobile-overlay ${ce?"":"visible"}`,onClick:le}))},gt=jr;var Kr={ProductList:xt,ProductForm:Ct,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.7","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.8","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"}}
@@ -386,6 +386,28 @@
386
386
  }
387
387
  }
388
388
 
389
+ // TabPane styles
390
+ .tab-pane {
391
+ width: 100%;
392
+ height: 100%;
393
+ position: relative;
394
+
395
+ // 确保在设计模式下,内部组件可以被正确选中
396
+ // 特别是对于 canvas 元素(如 echarts)
397
+ * {
398
+ pointer-events: auto;
399
+ }
400
+
401
+ // 确保 canvas 元素不会阻止事件传播
402
+ canvas {
403
+ pointer-events: auto;
404
+ }
405
+ }
406
+
407
+ .tab-pane--active {
408
+ display: block;
409
+ }
410
+
389
411
  .mobile-overlay {
390
412
  display: none;
391
413
  }
@@ -24,6 +24,8 @@ const TabPane: React.FC<TabPaneProps> = ({
24
24
  display: shouldShowChildren ? undefined : 'none',
25
25
  // 在设计模式下,确保容器有最小高度,方便拖拽
26
26
  minHeight: __designMode === 'design' && !children ? '200px' : undefined,
27
+ // 在设计模式下,确保 pointer-events 正确传递
28
+ pointerEvents: __designMode === 'design' ? 'auto' : undefined,
27
29
  }}
28
30
  data-tab-key={tabKey}
29
31
  data-active={isActive ? 'true' : 'false'}