import {Component,inject,signal,OnInit} from '@angular/core';
import {OperationsService} from '../operations.service';
import {StoreCreditAccountComponent} from '../components/store-credit-account.component';
interface StoreHome {storeId:number;storeObjectId:string;storeName:string;summary:{total:number;todayNew:number;studying:number};}
@Component({selector:'app-store-home',standalone:true,imports:[StoreCreditAccountComponent],template:`
门店工作台
{{data()?.storeName||'我的门店'}}
本店会员、排课、陪练、工资与学习记录
@if(error()){
{{error()}}
}
@if(loading()&&!data()){正在读取本店数据…
}
@if(data();as d){本店学生{{d.summary.total}}学习中{{d.summary.studying}}今日新增{{d.summary.todayNew}}}
`,styles:[`:host{display:block;color:#213e38}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}h1{margin:8px 0}header p,span{color:#667e74}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.summary article{background:#fff;border:1px solid #d9e5df;border-radius:16px;padding:24px}.summary strong{display:block;font-size:32px;margin-top:12px;color:#18745f}button{padding:12px 18px;border-radius:10px;background:#18745f;color:white;border:0;text-decoration:none;cursor:pointer}.error{color:#a33322}@media(max-width:600px){.summary article{padding:14px}}`]})
export class StoreHomeComponent implements OnInit {
private readonly operations=inject(OperationsService);data=signal(null);loading=signal(false);error=signal('');
ngOnInit(){void this.load();}
async load(){if(this.loading())return;this.loading.set(true);this.error.set('');try{this.data.set(await this.operations.request('ops/store/home'));}catch(e){this.error.set(e instanceof Error?e.message:'本店数据加载失败');}finally{this.loading.set(false);}}
}