Commit 6399992260b049ec2417167a8c1ddac9f8922c2c

Authored by “wangming”
1 parent ffd6aaca

fix: 修复开单升单逻辑Bug,新增历史开单记录服务,更新集团驾驶舱标题

- 修复UpdateForNoDelete方法中升单字段赋值错误(升医美和升生美字段错位)
- 新增历史开单记录服务(LqOrderRecordsService),支持通过会员编号或手机号查询
- 更新集团驾驶舱及相关子页面标题为更专业的名称
antis-ncc-admin/src/components/kpi-drill/billing-analysis.vue
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 <div class="chart-card trend-card"> 6 <div class="chart-card trend-card">
7 <div class="chart-title"> 7 <div class="chart-title">
8 <i class="el-icon-date"></i> 8 <i class="el-icon-date"></i>
9 - 每日开单金额 & 人数 9 + 日度成交趋势
10 </div> 10 </div>
11 <div ref="billingTrendChart" class="chart-mini"></div> 11 <div ref="billingTrendChart" class="chart-mini"></div>
12 </div> 12 </div>
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 <div class="table-header"> 15 <div class="table-header">
16 <div class="table-title"> 16 <div class="table-title">
17 <i class="el-icon-document"></i> 17 <i class="el-icon-document"></i>
18 - 本月成交明细 18 + 成交明细清单
19 </div> 19 </div>
20 <div class="list-filters inline"> 20 <div class="list-filters inline">
21 <el-select v-model="listFilter.store" size="mini" placeholder="门店" style="width: 180px;" clearable 21 <el-select v-model="listFilter.store" size="mini" placeholder="门店" style="width: 180px;" clearable
antis-ncc-admin/src/components/kpi-drill/consume-analysis.vue
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 <div class="chart-card trend-card"> 6 <div class="chart-card trend-card">
7 <div class="chart-title"> 7 <div class="chart-title">
8 <i class="el-icon-date"></i> 8 <i class="el-icon-date"></i>
9 - 每日消耗金额 & 人数 9 + 日度消耗趋势
10 </div> 10 </div>
11 <div ref="consumeTrendChart" class="chart-mini"></div> 11 <div ref="consumeTrendChart" class="chart-mini"></div>
12 </div> 12 </div>
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 <div class="table-header"> 15 <div class="table-header">
16 <div class="table-title"> 16 <div class="table-title">
17 <i class="el-icon-document"></i> 17 <i class="el-icon-document"></i>
18 - 本月消耗明细 18 + 消耗明细清单
19 </div> 19 </div>
20 <div class="list-filters inline"> 20 <div class="list-filters inline">
21 <el-select v-model="listFilter.store" size="mini" placeholder="门店" style="width: 180px;" clearable 21 <el-select v-model="listFilter.store" size="mini" placeholder="门店" style="width: 180px;" clearable
antis-ncc-admin/src/components/kpi-drill/refund-analysis.vue
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 <div class="chart-card"> 6 <div class="chart-card">
7 <div class="chart-title"> 7 <div class="chart-title">
8 <i class="el-icon-s-data"></i> 8 <i class="el-icon-s-data"></i>
9 - 各门店退卡金额分布(不包含转卡) 9 + 门店退卡分布
10 <el-tooltip content="实际退卡额,且不含转卡:产生了实际现金支出的退款" placement="top"> 10 <el-tooltip content="实际退卡额,且不含转卡:产生了实际现金支出的退款" placement="top">
11 <i class="el-icon-info" style="margin-left: 2px; color: #909399; cursor: help;"></i> 11 <i class="el-icon-info" style="margin-left: 2px; color: #909399; cursor: help;"></i>
12 </el-tooltip> 12 </el-tooltip>
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
18 <div class="table-header"> 18 <div class="table-header">
19 <div class="table-title"> 19 <div class="table-title">
20 <i class="el-icon-document"></i> 20 <i class="el-icon-document"></i>
21 - 退卡明细 21 + 退卡明细清单
22 <el-button v-if="selectedStoreName" type="text" size="small" icon="el-icon-refresh" @click="showAllStores" 22 <el-button v-if="selectedStoreName" type="text" size="small" icon="el-icon-refresh" @click="showAllStores"
23 style="margin-left: 12px; color: #409EFF;"> 23 style="margin-left: 12px; color: #409EFF;">
24 显示全部 24 显示全部
antis-ncc-admin/src/views/extend/annualSummary/dashboard/index.vue
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 <!-- 顶部状态栏 & 筛选器 --> 3 <!-- 顶部状态栏 & 筛选器 -->
4 <div class="cockpit-header"> 4 <div class="cockpit-header">
5 <div class="header-left"> 5 <div class="header-left">
6 - <h1 class="page-title">年度经营统计分析</h1> 6 + <h1 class="page-title">年度经营全景报告</h1>
7 </div> 7 </div>
8 <div class="header-right"> 8 <div class="header-right">
9 <el-form :inline="true" :model="query" class="search-form-compact"> 9 <el-form :inline="true" :model="query" class="search-form-compact">
@@ -29,31 +29,31 @@ @@ -29,31 +29,31 @@
29 <!-- 标签页导航 --> 29 <!-- 标签页导航 -->
30 <el-tabs v-model="activeMenu" @tab-click="handleTabClick" class="dashboard-tabs"> 30 <el-tabs v-model="activeMenu" @tab-click="handleTabClick" class="dashboard-tabs">
31 <el-tab-pane name="monthly-trend"> 31 <el-tab-pane name="monthly-trend">
32 - <span slot="label"><i class="el-icon-data-line"></i> 月度趋势分析</span> 32 + <span slot="label"><i class="el-icon-data-line"></i> 月度经营趋势</span>
33 </el-tab-pane> 33 </el-tab-pane>
34 <el-tab-pane name="performance-stat"> 34 <el-tab-pane name="performance-stat">
35 - <span slot="label"><i class="el-icon-trophy"></i> 全年门店业绩表</span> 35 + <span slot="label"><i class="el-icon-trophy"></i> 年度业绩总览</span>
36 </el-tab-pane> 36 </el-tab-pane>
37 <el-tab-pane name="consume-stat"> 37 <el-tab-pane name="consume-stat">
38 - <span slot="label"><i class="el-icon-shopping-cart-2"></i> 全年门店消耗表</span> 38 + <span slot="label"><i class="el-icon-shopping-cart-2"></i> 年度消耗总览</span>
39 </el-tab-pane> 39 </el-tab-pane>
40 <el-tab-pane name="headcount-stat"> 40 <el-tab-pane name="headcount-stat">
41 - <span slot="label"><i class="el-icon-user"></i> 年度门店人头表</span> 41 + <span slot="label"><i class="el-icon-user"></i> 年度客流量总览</span>
42 </el-tab-pane> 42 </el-tab-pane>
43 <el-tab-pane name="persontime-stat"> 43 <el-tab-pane name="persontime-stat">
44 - <span slot="label"><i class="el-icon-user-solid"></i> 年度门店人次表</span> 44 + <span slot="label"><i class="el-icon-user-solid"></i> 年度到店频次总览</span>
45 </el-tab-pane> 45 </el-tab-pane>
46 <el-tab-pane name="project-stat"> 46 <el-tab-pane name="project-stat">
47 - <span slot="label"><i class="el-icon-goods"></i> 年度门店项目数表</span> 47 + <span slot="label"><i class="el-icon-goods"></i> 年度项目量总览</span>
48 </el-tab-pane> 48 </el-tab-pane>
49 <el-tab-pane name="store-indicators"> 49 <el-tab-pane name="store-indicators">
50 - <span slot="label"><i class="el-icon-pie-chart"></i> 门店五项指标统计</span> 50 + <span slot="label"><i class="el-icon-pie-chart"></i> 门店综合指标</span>
51 </el-tab-pane> 51 </el-tab-pane>
52 <el-tab-pane name="bu-indicators"> 52 <el-tab-pane name="bu-indicators">
53 - <span slot="label"><i class="el-icon-s-data"></i> 事业部五项指标统计</span> 53 + <span slot="label"><i class="el-icon-s-data"></i> 事业部综合指标</span>
54 </el-tab-pane> 54 </el-tab-pane>
55 <el-tab-pane name="bu-summary"> 55 <el-tab-pane name="bu-summary">
56 - <span slot="label"><i class="el-icon-tickets"></i> 事业部内部汇总</span> 56 + <span slot="label"><i class="el-icon-tickets"></i> 事业部经营汇总</span>
57 </el-tab-pane> 57 </el-tab-pane>
58 </el-tabs> 58 </el-tabs>
59 59
@@ -67,7 +67,7 @@ @@ -67,7 +67,7 @@
67 <el-card shadow="hover" class="dashboard-card chart-card"> 67 <el-card shadow="hover" class="dashboard-card chart-card">
68 <div slot="header" class="card-title"> 68 <div slot="header" class="card-title">
69 <i class="el-icon-trophy"></i> 69 <i class="el-icon-trophy"></i>
70 - <span>业绩势对比</span> 70 + <span>业绩势对比</span>
71 </div> 71 </div>
72 <div id="perfTrend" class="chart-box"></div> 72 <div id="perfTrend" class="chart-box"></div>
73 </el-card> 73 </el-card>
@@ -76,7 +76,7 @@ @@ -76,7 +76,7 @@
76 <el-card shadow="hover" class="dashboard-card chart-card"> 76 <el-card shadow="hover" class="dashboard-card chart-card">
77 <div slot="header" class="card-title"> 77 <div slot="header" class="card-title">
78 <i class="el-icon-shopping-cart-2"></i> 78 <i class="el-icon-shopping-cart-2"></i>
79 - <span>消耗势对比</span> 79 + <span>消耗势对比</span>
80 </div> 80 </div>
81 <div id="consumeTrend" class="chart-box"></div> 81 <div id="consumeTrend" class="chart-box"></div>
82 </el-card> 82 </el-card>
@@ -87,7 +87,7 @@ @@ -87,7 +87,7 @@
87 <el-card shadow="hover" class="dashboard-card chart-card"> 87 <el-card shadow="hover" class="dashboard-card chart-card">
88 <div slot="header" class="card-title"> 88 <div slot="header" class="card-title">
89 <i class="el-icon-user"></i> 89 <i class="el-icon-user"></i>
90 - <span>客头数走势</span> 90 + <span>客流量趋势</span>
91 </div> 91 </div>
92 <div id="headCountTrend" class="chart-box"></div> 92 <div id="headCountTrend" class="chart-box"></div>
93 </el-card> 93 </el-card>
@@ -96,7 +96,7 @@ @@ -96,7 +96,7 @@
96 <el-card shadow="hover" class="dashboard-card chart-card"> 96 <el-card shadow="hover" class="dashboard-card chart-card">
97 <div slot="header" class="card-title"> 97 <div slot="header" class="card-title">
98 <i class="el-icon-user-solid"></i> 98 <i class="el-icon-user-solid"></i>
99 - <span>客次数走势</span> 99 + <span>到店频次趋势</span>
100 </div> 100 </div>
101 <div id="personTimeTrend" class="chart-box"></div> 101 <div id="personTimeTrend" class="chart-box"></div>
102 </el-card> 102 </el-card>
@@ -105,7 +105,7 @@ @@ -105,7 +105,7 @@
105 <el-card shadow="hover" class="dashboard-card chart-card"> 105 <el-card shadow="hover" class="dashboard-card chart-card">
106 <div slot="header" class="card-title"> 106 <div slot="header" class="card-title">
107 <i class="el-icon-goods"></i> 107 <i class="el-icon-goods"></i>
108 - <span>项目数走势</span> 108 + <span>项目量趋势</span>
109 </div> 109 </div>
110 <div id="projectCountTrend" class="chart-box"></div> 110 <div id="projectCountTrend" class="chart-box"></div>
111 </el-card> 111 </el-card>
@@ -115,7 +115,7 @@ @@ -115,7 +115,7 @@
115 <el-card shadow="hover" class="dashboard-card table-card"> 115 <el-card shadow="hover" class="dashboard-card table-card">
116 <div slot="header" class="card-title"> 116 <div slot="header" class="card-title">
117 <i class="el-icon-s-grid"></i> 117 <i class="el-icon-s-grid"></i>
118 - <span>月度趋势数据列表</span> 118 + <span>月度趋势明细</span>
119 </div> 119 </div>
120 <NCC-table v-loading="trendTableLoading" :data="trendTableData" border stripe style="width: 100%"> 120 <NCC-table v-loading="trendTableLoading" :data="trendTableData" border stripe style="width: 100%">
121 <el-table-column v-for="col in trendTableColumns" :key="col.prop" :prop="col.prop" :label="col.label" 121 <el-table-column v-for="col in trendTableColumns" :key="col.prop" :prop="col.prop" :label="col.label"
@@ -137,7 +137,7 @@ @@ -137,7 +137,7 @@
137 <el-card shadow="hover" class="dashboard-card chart-card"> 137 <el-card shadow="hover" class="dashboard-card chart-card">
138 <div slot="header" class="card-title"> 138 <div slot="header" class="card-title">
139 <i class="el-icon-data-line"></i> 139 <i class="el-icon-data-line"></i>
140 - <span>业绩势图</span> 140 + <span>业绩势图</span>
141 </div> 141 </div>
142 <div id="performanceChart" class="chart-box-large"></div> 142 <div id="performanceChart" class="chart-box-large"></div>
143 </el-card> 143 </el-card>
@@ -145,7 +145,7 @@ @@ -145,7 +145,7 @@
145 <el-card shadow="hover" class="dashboard-card table-card"> 145 <el-card shadow="hover" class="dashboard-card table-card">
146 <div slot="header" class="card-title"> 146 <div slot="header" class="card-title">
147 <i class="el-icon-s-grid"></i> 147 <i class="el-icon-s-grid"></i>
148 - <span>业绩数据列表</span> 148 + <span>业绩明细表</span>
149 </div> 149 </div>
150 <NCC-table v-loading="performanceTableLoading" :data="performanceTableData" border stripe 150 <NCC-table v-loading="performanceTableLoading" :data="performanceTableData" border stripe
151 style="width: 100%"> 151 style="width: 100%">
@@ -168,7 +168,7 @@ @@ -168,7 +168,7 @@
168 <el-card shadow="hover" class="dashboard-card chart-card"> 168 <el-card shadow="hover" class="dashboard-card chart-card">
169 <div slot="header" class="card-title"> 169 <div slot="header" class="card-title">
170 <i class="el-icon-data-line"></i> 170 <i class="el-icon-data-line"></i>
171 - <span>消耗势图</span> 171 + <span>消耗势图</span>
172 </div> 172 </div>
173 <div id="consumeChart" class="chart-box-large"></div> 173 <div id="consumeChart" class="chart-box-large"></div>
174 </el-card> 174 </el-card>
@@ -176,7 +176,7 @@ @@ -176,7 +176,7 @@
176 <el-card shadow="hover" class="dashboard-card table-card"> 176 <el-card shadow="hover" class="dashboard-card table-card">
177 <div slot="header" class="card-title"> 177 <div slot="header" class="card-title">
178 <i class="el-icon-s-grid"></i> 178 <i class="el-icon-s-grid"></i>
179 - <span>消耗数据列表</span> 179 + <span>消耗明细表</span>
180 </div> 180 </div>
181 <NCC-table v-loading="consumeTableLoading" :data="consumeTableData" border stripe style="width: 100%"> 181 <NCC-table v-loading="consumeTableLoading" :data="consumeTableData" border stripe style="width: 100%">
182 <el-table-column v-for="col in consumeTableColumns" :key="col.prop" :prop="col.prop" :label="col.label" 182 <el-table-column v-for="col in consumeTableColumns" :key="col.prop" :prop="col.prop" :label="col.label"
@@ -198,7 +198,7 @@ @@ -198,7 +198,7 @@
198 <el-card shadow="hover" class="dashboard-card chart-card"> 198 <el-card shadow="hover" class="dashboard-card chart-card">
199 <div slot="header" class="card-title"> 199 <div slot="header" class="card-title">
200 <i class="el-icon-data-line"></i> 200 <i class="el-icon-data-line"></i>
201 - <span>人头数走势图</span> 201 + <span>客流量趋势图</span>
202 </div> 202 </div>
203 <div id="headCountChart" class="chart-box-large"></div> 203 <div id="headCountChart" class="chart-box-large"></div>
204 </el-card> 204 </el-card>
@@ -206,7 +206,7 @@ @@ -206,7 +206,7 @@
206 <el-card shadow="hover" class="dashboard-card table-card"> 206 <el-card shadow="hover" class="dashboard-card table-card">
207 <div slot="header" class="card-title"> 207 <div slot="header" class="card-title">
208 <i class="el-icon-s-grid"></i> 208 <i class="el-icon-s-grid"></i>
209 - <span>人头数据列表</span> 209 + <span>客流量明细表</span>
210 </div> 210 </div>
211 <NCC-table v-loading="headCountTableLoading" :data="headCountTableData" border stripe style="width: 100%"> 211 <NCC-table v-loading="headCountTableLoading" :data="headCountTableData" border stripe style="width: 100%">
212 <el-table-column v-for="col in headCountTableColumns" :key="col.prop" :prop="col.prop" 212 <el-table-column v-for="col in headCountTableColumns" :key="col.prop" :prop="col.prop"
@@ -228,7 +228,7 @@ @@ -228,7 +228,7 @@
228 <el-card shadow="hover" class="dashboard-card chart-card"> 228 <el-card shadow="hover" class="dashboard-card chart-card">
229 <div slot="header" class="card-title"> 229 <div slot="header" class="card-title">
230 <i class="el-icon-data-line"></i> 230 <i class="el-icon-data-line"></i>
231 - <span>人次走势图</span> 231 + <span>到店频次趋势图</span>
232 </div> 232 </div>
233 <div id="personTimeChart" class="chart-box-large"></div> 233 <div id="personTimeChart" class="chart-box-large"></div>
234 </el-card> 234 </el-card>
@@ -236,7 +236,7 @@ @@ -236,7 +236,7 @@
236 <el-card shadow="hover" class="dashboard-card table-card"> 236 <el-card shadow="hover" class="dashboard-card table-card">
237 <div slot="header" class="card-title"> 237 <div slot="header" class="card-title">
238 <i class="el-icon-s-grid"></i> 238 <i class="el-icon-s-grid"></i>
239 - <span>人次数据列表</span> 239 + <span>到店频次明细表</span>
240 </div> 240 </div>
241 <NCC-table v-loading="personTimeTableLoading" :data="personTimeTableData" border stripe 241 <NCC-table v-loading="personTimeTableLoading" :data="personTimeTableData" border stripe
242 style="width: 100%"> 242 style="width: 100%">
@@ -259,7 +259,7 @@ @@ -259,7 +259,7 @@
259 <el-card shadow="hover" class="dashboard-card chart-card"> 259 <el-card shadow="hover" class="dashboard-card chart-card">
260 <div slot="header" class="card-title"> 260 <div slot="header" class="card-title">
261 <i class="el-icon-data-line"></i> 261 <i class="el-icon-data-line"></i>
262 - <span>项目数走势图</span> 262 + <span>项目量趋势图</span>
263 </div> 263 </div>
264 <div id="projectCountChart" class="chart-box-large"></div> 264 <div id="projectCountChart" class="chart-box-large"></div>
265 </el-card> 265 </el-card>
@@ -267,7 +267,7 @@ @@ -267,7 +267,7 @@
267 <el-card shadow="hover" class="dashboard-card table-card"> 267 <el-card shadow="hover" class="dashboard-card table-card">
268 <div slot="header" class="card-title"> 268 <div slot="header" class="card-title">
269 <i class="el-icon-s-grid"></i> 269 <i class="el-icon-s-grid"></i>
270 - <span>项目数据列表</span> 270 + <span>项目量明细表</span>
271 </div> 271 </div>
272 <NCC-table v-loading="projectCountTableLoading" :data="projectCountTableData" border stripe 272 <NCC-table v-loading="projectCountTableLoading" :data="projectCountTableData" border stripe
273 style="width: 100%"> 273 style="width: 100%">
antis-ncc-admin/src/views/statisticsList/form9.vue
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 <!-- 顶部状态栏 & 筛选器 --> 3 <!-- 顶部状态栏 & 筛选器 -->
4 <div class="cockpit-header"> 4 <div class="cockpit-header">
5 <div class="header-left"> 5 <div class="header-left">
6 - <h1 class="page-title">集团驾驶舱 <span class="subtitle">本月经营动态监测</span></h1> 6 + <h1 class="page-title">战略决策指挥中心 <span class="subtitle">实时经营态势感知</span></h1>
7 </div> 7 </div>
8 <div class="header-right"> 8 <div class="header-right">
9 <el-form :inline="true" class="search-form-compact"> 9 <el-form :inline="true" class="search-form-compact">
@@ -60,7 +60,7 @@ @@ -60,7 +60,7 @@
60 <el-col :span="8"> 60 <el-col :span="8">
61 <el-card class="dashboard-card member-overview-card" shadow="hover"> 61 <el-card class="dashboard-card member-overview-card" shadow="hover">
62 <div slot="header" class="card-title"> 62 <div slot="header" class="card-title">
63 - <span><i class="el-icon-user-solid"></i> 会员核心指标</span> 63 + <span><i class="el-icon-user-solid"></i> 会员资产全景</span>
64 </div> 64 </div>
65 <div class="member-overview-grid"> 65 <div class="member-overview-grid">
66 <div class="member-stat-item stat-item-1"> 66 <div class="member-stat-item stat-item-1">
@@ -246,7 +246,7 @@ @@ -246,7 +246,7 @@
246 <el-col :span="8"> 246 <el-col :span="8">
247 <el-card class="dashboard-card member-type-card" shadow="hover"> 247 <el-card class="dashboard-card member-type-card" shadow="hover">
248 <div slot="header" class="card-title"> 248 <div slot="header" class="card-title">
249 - <span><i class="el-icon-pie-chart"></i> 会员类型分布</span> 249 + <span><i class="el-icon-pie-chart"></i> 会员结构洞察</span>
250 </div> 250 </div>
251 <div ref="memberTypeChart" class="member-type-chart"></div> 251 <div ref="memberTypeChart" class="member-type-chart"></div>
252 </el-card> 252 </el-card>
@@ -256,7 +256,7 @@ @@ -256,7 +256,7 @@
256 <el-col :span="8"> 256 <el-col :span="8">
257 <el-card class="dashboard-card member-category-card" shadow="hover"> 257 <el-card class="dashboard-card member-category-card" shadow="hover">
258 <div slot="header" class="card-title"> 258 <div slot="header" class="card-title">
259 - <span><i class="el-icon-data-analysis"></i> 会员分类统计</span> 259 + <span><i class="el-icon-data-analysis"></i> 会员价值分层</span>
260 </div> 260 </div>
261 <div class="member-category-content"> 261 <div class="member-category-content">
262 <div ref="memberCategoryChart" class="member-category-chart"></div> 262 <div ref="memberCategoryChart" class="member-category-chart"></div>
@@ -294,7 +294,7 @@ @@ -294,7 +294,7 @@
294 <el-col :span="16"> 294 <el-col :span="16">
295 <el-card class="dashboard-card" shadow="hover"> 295 <el-card class="dashboard-card" shadow="hover">
296 <div slot="header" class="card-title"> 296 <div slot="header" class="card-title">
297 - <span><i class="el-icon-data-line"></i> 营收与服务产出趋势分析</span> 297 + <span><i class="el-icon-data-line"></i> 经营效能趋势</span>
298 <el-radio-group v-model="trendType" size="mini" style="float: right" @change="handleTrendTypeChange"> 298 <el-radio-group v-model="trendType" size="mini" style="float: right" @change="handleTrendTypeChange">
299 <el-radio-button label="month">按月</el-radio-button> 299 <el-radio-button label="month">按月</el-radio-button>
300 <el-radio-button label="day">按天</el-radio-button> 300 <el-radio-button label="day">按天</el-radio-button>
@@ -308,7 +308,7 @@ @@ -308,7 +308,7 @@
308 <el-col :span="8"> 308 <el-col :span="8">
309 <el-card class="dashboard-card funnel-card" shadow="hover"> 309 <el-card class="dashboard-card funnel-card" shadow="hover">
310 <div slot="header" class="card-title"> 310 <div slot="header" class="card-title">
311 - <span><i class="el-icon-filter"></i> 拓客全链路转化漏斗</span> 311 + <span><i class="el-icon-filter"></i> 客户获取转化链</span>
312 </div> 312 </div>
313 <div id="tkFunnelChart" class="chart-box"></div> 313 <div id="tkFunnelChart" class="chart-box"></div>
314 <div class="funnel-stats"> 314 <div class="funnel-stats">
@@ -324,7 +324,7 @@ @@ -324,7 +324,7 @@
324 <!-- 门店排行榜 --> 324 <!-- 门店排行榜 -->
325 <el-col :span="6"> 325 <el-col :span="6">
326 <el-card class="dashboard-card" shadow="hover"> 326 <el-card class="dashboard-card" shadow="hover">
327 - <div slot="header" class="card-title"><span><i class="el-icon-office-building"></i> 门店业绩琅琊榜</span></div> 327 + <div slot="header" class="card-title"><span><i class="el-icon-office-building"></i> 门店卓越榜</span></div>
328 <div class="rank-list"> 328 <div class="rank-list">
329 <div class="rank-item" v-for="(item, idx) in storeRanking" :key="idx" @click="openStoreDataAnalysis(item)" 329 <div class="rank-item" v-for="(item, idx) in storeRanking" :key="idx" @click="openStoreDataAnalysis(item)"
330 style="cursor: pointer;"> 330 style="cursor: pointer;">
@@ -339,7 +339,7 @@ @@ -339,7 +339,7 @@
339 <el-col :span="12"> 339 <el-col :span="12">
340 <el-card class="dashboard-card" shadow="hover"> 340 <el-card class="dashboard-card" shadow="hover">
341 <div slot="header" class="card-title"> 341 <div slot="header" class="card-title">
342 - <span><i class="el-icon-user"></i> 核心员效贡献矩阵</span> 342 + <span><i class="el-icon-user"></i> 团队效能矩阵</span>
343 <el-button-group style="float: right"> 343 <el-button-group style="float: right">
344 <el-button size="mini" :type="coachRankType === 'billing' ? 'primary' : ''" 344 <el-button size="mini" :type="coachRankType === 'billing' ? 'primary' : ''"
345 @click="coachRankType = 'billing'">开单榜</el-button> 345 @click="coachRankType = 'billing'">开单榜</el-button>
@@ -367,7 +367,7 @@ @@ -367,7 +367,7 @@
367 <!-- 金三角排名 --> 367 <!-- 金三角排名 -->
368 <el-col :span="6"> 368 <el-col :span="6">
369 <el-card class="dashboard-card" shadow="hover"> 369 <el-card class="dashboard-card" shadow="hover">
370 - <div slot="header" class="card-title"><span><i class="el-icon-medal"></i> 金三角战队协同榜</span></div> 370 + <div slot="header" class="card-title"><span><i class="el-icon-medal"></i> 协同作战榜</span></div>
371 <div class="rank-list"> 371 <div class="rank-list">
372 <div class="rank-item" v-for="(item, idx) in goldTriangleRankingTop10" :key="idx"> 372 <div class="rank-item" v-for="(item, idx) in goldTriangleRankingTop10" :key="idx">
373 <span class="rank-no" :class="'top' + (idx + 1)">{{ idx + 1 }}</span> 373 <span class="rank-no" :class="'top' + (idx + 1)">{{ idx + 1 }}</span>
@@ -384,14 +384,14 @@ @@ -384,14 +384,14 @@
384 <!-- 到店频次 --> 384 <!-- 到店频次 -->
385 <el-col :span="8"> 385 <el-col :span="8">
386 <el-card class="dashboard-card" shadow="hover"> 386 <el-card class="dashboard-card" shadow="hover">
387 - <div slot="header" class="card-title"><span><i class="el-icon-view"></i> 会员到店频次分布</span></div> 387 + <div slot="header" class="card-title"><span><i class="el-icon-view"></i> 客户活跃度分析</span></div>
388 <div id="visitFreqChart" class="chart-box"></div> 388 <div id="visitFreqChart" class="chart-box"></div>
389 </el-card> 389 </el-card>
390 </el-col> 390 </el-col>
391 <!-- 消耗品项TOP10 --> 391 <!-- 消耗品项TOP10 -->
392 <el-col :span="8"> 392 <el-col :span="8">
393 <el-card class="dashboard-card" shadow="hover"> 393 <el-card class="dashboard-card" shadow="hover">
394 - <div slot="header" class="card-title"><span><i class="el-icon-present"></i> 消耗品项 TOP 10</span></div> 394 + <div slot="header" class="card-title"><span><i class="el-icon-present"></i> 热门服务品项</span></div>
395 <div class="item-rank"> 395 <div class="item-rank">
396 <div class="item-rank-row" v-for="(item, idx) in consumeItemTop10" :key="idx"> 396 <div class="item-rank-row" v-for="(item, idx) in consumeItemTop10" :key="idx">
397 <span class="item-index">{{ idx + 1 }}</span> 397 <span class="item-index">{{ idx + 1 }}</span>
@@ -406,7 +406,7 @@ @@ -406,7 +406,7 @@
406 <!-- 开单品项TOP10 --> 406 <!-- 开单品项TOP10 -->
407 <el-col :span="8"> 407 <el-col :span="8">
408 <el-card class="dashboard-card" shadow="hover"> 408 <el-card class="dashboard-card" shadow="hover">
409 - <div slot="header" class="card-title"><span><i class="el-icon-pie-chart"></i> 开单品项 TOP 10</span></div> 409 + <div slot="header" class="card-title"><span><i class="el-icon-pie-chart"></i> 热销产品品项</span></div>
410 <div class="item-rank"> 410 <div class="item-rank">
411 <div class="item-rank-row" v-for="(item, idx) in billingItemTop10" :key="idx"> 411 <div class="item-rank-row" v-for="(item, idx) in billingItemTop10" :key="idx">
412 <span class="item-index">{{ idx + 1 }}</span> 412 <span class="item-index">{{ idx + 1 }}</span>
@@ -617,12 +617,12 @@ export default { @@ -617,12 +617,12 @@ export default {
617 const d = this.kpiData || {} 617 const d = this.kpiData || {}
618 const tkCount = (this.tkStatisticsData && this.tkStatisticsData.TkCount) ? this.tkStatisticsData.TkCount : 0 618 const tkCount = (this.tkStatisticsData && this.tkStatisticsData.TkCount) ? this.tkStatisticsData.TkCount : 0
619 return [ 619 return [
620 - { tooltip: '本月现金业绩,不包含退款业绩', key: 'billing', label: '本月成交总额', value: this.formatMoney(d.TotalBillingAmount), raw: d.TotalBillingAmount || 0, icon: 'el-icon-wallet', type: 'primary', isMoney: true },  
621 - { tooltip: '', key: 'consume', label: '本月消耗金额', value: this.formatMoney(d.TotalConsumeAmount), raw: d.TotalConsumeAmount || 0, icon: 'el-icon-medal', type: 'success', isMoney: true },  
622 - { tooltip: '成交总额-退款业绩', key: 'net', label: '完成业绩(净额)', value: this.formatMoney(d.CompletedBillingAmount), raw: d.CompletedBillingAmount || 0, icon: 'el-icon-trophy', type: 'warning', isMoney: true },  
623 - { tooltip: '完成业绩(净额)/目标值', key: 'target', label: '开单目标达成', value: d.BillingCompletionRate || 0, raw: d.BillingCompletionRate || 0, icon: 'el-icon-pie-chart', type: 'info', isPercent: true, target: this.formatMoney(d.TargetBillingAmount), targetRaw: d.TargetBillingAmount || 0, status: (d.BillingCompletionRate >= 100) ? 'up' : 'down' },  
624 - { tooltip: '', key: 'tk', label: '本月拓客人数', value: tkCount, raw: tkCount, icon: 'el-icon-user-solid', type: 'danger', isPercent: false, target: null, status: null },  
625 - { tooltip: '实际退卡金额', key: 'refund', label: '退卡总计', value: this.formatMoney(d.TotalRefundAmount), raw: d.TotalRefundAmount || 0, icon: 'el-icon-warning-outline', type: 'error', isMoney: true } 620 + { tooltip: '本月现金业绩,不包含退款业绩', key: 'billing', label: '营收核心指标', value: this.formatMoney(d.TotalBillingAmount), raw: d.TotalBillingAmount || 0, icon: 'el-icon-wallet', type: 'primary', isMoney: true },
  621 + { tooltip: '', key: 'consume', label: '服务产出价值', value: this.formatMoney(d.TotalConsumeAmount), raw: d.TotalConsumeAmount || 0, icon: 'el-icon-medal', type: 'success', isMoney: true },
  622 + { tooltip: '成交总额-退款业绩', key: 'net', label: '净收益达成', value: this.formatMoney(d.CompletedBillingAmount), raw: d.CompletedBillingAmount || 0, icon: 'el-icon-trophy', type: 'warning', isMoney: true },
  623 + { tooltip: '完成业绩(净额)/目标值', key: 'target', label: '目标完成度', value: d.BillingCompletionRate || 0, raw: d.BillingCompletionRate || 0, icon: 'el-icon-pie-chart', type: 'info', isPercent: true, target: this.formatMoney(d.TargetBillingAmount), targetRaw: d.TargetBillingAmount || 0, status: (d.BillingCompletionRate >= 100) ? 'up' : 'down' },
  624 + { tooltip: '', key: 'tk', label: '新客增长量', value: tkCount, raw: tkCount, icon: 'el-icon-user-solid', type: 'danger', isPercent: false, target: null, status: null },
  625 + { tooltip: '实际退卡金额', key: 'refund', label: '风险管控指标', value: this.formatMoney(d.TotalRefundAmount), raw: d.TotalRefundAmount || 0, icon: 'el-icon-warning-outline', type: 'error', isMoney: true }
626 ] 626 ]
627 }, 627 },
628 // 健康师排行榜数据切换 628 // 健康师排行榜数据切换
@@ -713,12 +713,12 @@ export default { @@ -713,12 +713,12 @@ export default {
713 } 713 }
714 // 根据类型设置专业的标题名称 714 // 根据类型设置专业的标题名称
715 const titleMap = { 715 const titleMap = {
716 - billing: '成交数据深度分析',  
717 - consume: '消耗数据深度分析',  
718 - net: '净业绩完成度分析',  
719 - target: '开单目标达成度分析',  
720 - tk: '拓客数据深度分析',  
721 - refund: '退卡数据深度分析' 716 + billing: '营收洞察报告',
  717 + consume: '服务价值分析',
  718 + net: '净收益达成分析',
  719 + target: '目标达成诊断',
  720 + tk: '客户增长分析',
  721 + refund: '风险预警分析'
722 } 722 }
723 723
724 this.drillDialog = { 724 this.drillDialog = {
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqOrderRecords/LqOrderRecordsInfoOutput.cs 0 → 100644
  1 +using System;
  2 +
  3 +namespace NCC.Extend.Entitys.Dto.LqOrderRecords
  4 +{
  5 + /// <summary>
  6 + /// 历史开单记录详情输出
  7 + /// </summary>
  8 + public class LqOrderRecordsInfoOutput
  9 + {
  10 + /// <summary>
  11 + /// 主键ID
  12 + /// </summary>
  13 + public int id { get; set; }
  14 +
  15 + /// <summary>
  16 + /// 开单号
  17 + /// </summary>
  18 + public string orderNo { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 图片名称
  22 + /// </summary>
  23 + public string imageName { get; set; }
  24 +
  25 + /// <summary>
  26 + /// 会员编号
  27 + /// </summary>
  28 + public string memberNo { get; set; }
  29 +
  30 + /// <summary>
  31 + /// 会员手机号
  32 + /// </summary>
  33 + public string memberPhone { get; set; }
  34 +
  35 + /// <summary>
  36 + /// 会员名称
  37 + /// </summary>
  38 + public string memberName { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 备注
  42 + /// </summary>
  43 + public string remarks { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 创建时间
  47 + /// </summary>
  48 + public DateTime? createdAt { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 更新时间
  52 + /// </summary>
  53 + public DateTime? updatedAt { get; set; }
  54 + }
  55 +}
  56 +
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqOrderRecords/LqOrderRecordsListOutput.cs 0 → 100644
  1 +using System;
  2 +
  3 +namespace NCC.Extend.Entitys.Dto.LqOrderRecords
  4 +{
  5 + /// <summary>
  6 + /// 历史开单记录列表输出
  7 + /// </summary>
  8 + public class LqOrderRecordsListOutput
  9 + {
  10 + /// <summary>
  11 + /// 主键ID
  12 + /// </summary>
  13 + public int id { get; set; }
  14 +
  15 + /// <summary>
  16 + /// 开单号
  17 + /// </summary>
  18 + public string orderNo { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 图片名称
  22 + /// </summary>
  23 + public string imageName { get; set; }
  24 +
  25 + /// <summary>
  26 + /// 会员编号
  27 + /// </summary>
  28 + public string memberNo { get; set; }
  29 +
  30 + /// <summary>
  31 + /// 会员手机号
  32 + /// </summary>
  33 + public string memberPhone { get; set; }
  34 +
  35 + /// <summary>
  36 + /// 会员名称
  37 + /// </summary>
  38 + public string memberName { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 备注
  42 + /// </summary>
  43 + public string remarks { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 创建时间
  47 + /// </summary>
  48 + public DateTime? createdAt { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 更新时间
  52 + /// </summary>
  53 + public DateTime? updatedAt { get; set; }
  54 + }
  55 +}
  56 +
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqOrderRecords/LqOrderRecordsListQueryInput.cs 0 → 100644
  1 +using NCC.Common.Filter;
  2 +
  3 +namespace NCC.Extend.Entitys.Dto.LqOrderRecords
  4 +{
  5 + /// <summary>
  6 + /// 历史开单记录列表查询输入
  7 + /// </summary>
  8 + public class LqOrderRecordsListQueryInput : PageInputBase
  9 + {
  10 + /// <summary>
  11 + /// 会员编号
  12 + /// </summary>
  13 + public string memberNo { get; set; }
  14 +
  15 + /// <summary>
  16 + /// 会员手机号
  17 + /// </summary>
  18 + public string memberPhone { get; set; }
  19 + }
  20 +}
  21 +
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_order_records/LqOrderRecordsEntity.cs 0 → 100644
  1 +using NCC.Common.Const;
  2 +using SqlSugar;
  3 +using System;
  4 +
  5 +namespace NCC.Extend.Entitys.lq_order_records
  6 +{
  7 + /// <summary>
  8 + /// 历史开单记录(从老系统迁移)
  9 + /// </summary>
  10 + [SugarTable("lq_order_records")]
  11 + [Tenant(ClaimConst.TENANT_ID)]
  12 + public class LqOrderRecordsEntity
  13 + {
  14 + /// <summary>
  15 + /// 主键ID
  16 + /// </summary>
  17 + [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)]
  18 + public int Id { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 开单号
  22 + /// </summary>
  23 + [SugarColumn(ColumnName = "order_no")]
  24 + public string OrderNo { get; set; }
  25 +
  26 + /// <summary>
  27 + /// 图片名称
  28 + /// </summary>
  29 + [SugarColumn(ColumnName = "image_name")]
  30 + public string ImageName { get; set; }
  31 +
  32 + /// <summary>
  33 + /// 会员编号
  34 + /// </summary>
  35 + [SugarColumn(ColumnName = "member_no")]
  36 + public string MemberNo { get; set; }
  37 +
  38 + /// <summary>
  39 + /// 会员手机号
  40 + /// </summary>
  41 + [SugarColumn(ColumnName = "member_phone")]
  42 + public string MemberPhone { get; set; }
  43 +
  44 + /// <summary>
  45 + /// 会员名称
  46 + /// </summary>
  47 + [SugarColumn(ColumnName = "member_name")]
  48 + public string MemberName { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 备注
  52 + /// </summary>
  53 + [SugarColumn(ColumnName = "remarks")]
  54 + public string Remarks { get; set; }
  55 +
  56 + /// <summary>
  57 + /// 创建时间
  58 + /// </summary>
  59 + [SugarColumn(ColumnName = "created_at")]
  60 + public DateTime? CreatedAt { get; set; }
  61 +
  62 + /// <summary>
  63 + /// 更新时间
  64 + /// </summary>
  65 + [SugarColumn(ColumnName = "updated_at")]
  66 + public DateTime? UpdatedAt { get; set; }
  67 + }
  68 +}
  69 +
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
@@ -1192,11 +1192,11 @@ namespace NCC.Extend.LqKdKdjlb @@ -1192,11 +1192,11 @@ namespace NCC.Extend.LqKdKdjlb
1192 var isMedicalProject = hasMedicalItemInCurrentBilling && await _db.Queryable<LqKdPxmxEntity>().Where(x => x.MemberId == entity.Kdhy && x.IsEffective == StatusEnum.有效.GetHashCode() && x.ItemCategory == "医美" && x.ActualPrice > 0 && x.Px != "61" && x.Glkdbh != id).AnyAsync(); 1192 var isMedicalProject = hasMedicalItemInCurrentBilling && await _db.Queryable<LqKdPxmxEntity>().Where(x => x.MemberId == entity.Kdhy && x.IsEffective == StatusEnum.有效.GetHashCode() && x.ItemCategory == "医美" && x.ActualPrice > 0 && x.Px != "61" && x.Glkdbh != id).AnyAsync();
1193 if (isMedicalProject && MedicalItemInCurrentBillingAmount >= 1000) 1193 if (isMedicalProject && MedicalItemInCurrentBillingAmount >= 1000)
1194 { 1194 {
1195 - entity.UpgradeLifeBeauty = "是"; 1195 + entity.UpgradeMedicalBeauty = "是";
1196 } 1196 }
1197 else 1197 else
1198 { 1198 {
1199 - entity.UpgradeLifeBeauty = "否"; 1199 + entity.UpgradeMedicalBeauty = "否";
1200 } 1200 }
1201 //获取该会员之前开单品项里面是否有科美项目 1201 //获取该会员之前开单品项里面是否有科美项目
1202 var isTechProject = hasTechItemInCurrentBilling && await _db.Queryable<LqKdPxmxEntity>().Where(x => x.MemberId == entity.Kdhy && x.IsEffective == StatusEnum.有效.GetHashCode() && x.ItemCategory == "科美" && x.ActualPrice > 0 && x.Px != "61" && x.Glkdbh != id).AnyAsync(); 1202 var isTechProject = hasTechItemInCurrentBilling && await _db.Queryable<LqKdPxmxEntity>().Where(x => x.MemberId == entity.Kdhy && x.IsEffective == StatusEnum.有效.GetHashCode() && x.ItemCategory == "科美" && x.ActualPrice > 0 && x.Px != "61" && x.Glkdbh != id).AnyAsync();
@@ -1212,11 +1212,11 @@ namespace NCC.Extend.LqKdKdjlb @@ -1212,11 +1212,11 @@ namespace NCC.Extend.LqKdKdjlb
1212 var isLifeProject = hasLifeItemInCurrentBilling && await _db.Queryable<LqKdPxmxEntity>().Where(x => x.MemberId == entity.Kdhy && x.IsEffective == StatusEnum.有效.GetHashCode() && x.ItemCategory == "生美" && x.ActualPrice > 0 && x.Px != "61" && x.Glkdbh != id).AnyAsync(); 1212 var isLifeProject = hasLifeItemInCurrentBilling && await _db.Queryable<LqKdPxmxEntity>().Where(x => x.MemberId == entity.Kdhy && x.IsEffective == StatusEnum.有效.GetHashCode() && x.ItemCategory == "生美" && x.ActualPrice > 0 && x.Px != "61" && x.Glkdbh != id).AnyAsync();
1213 if (isLifeProject) 1213 if (isLifeProject)
1214 { 1214 {
1215 - entity.UpgradeMedicalBeauty = "是"; 1215 + entity.UpgradeLifeBeauty = "是";
1216 } 1216 }
1217 else 1217 else
1218 { 1218 {
1219 - entity.UpgradeMedicalBeauty = "否"; 1219 + entity.UpgradeLifeBeauty = "否";
1220 } 1220 }
1221 //计算储扣总金额 1221 //计算储扣总金额
1222 entity.DeductAmount = input.lqKdKdjlbDeductList.Sum(x => x.Amount ?? 0); 1222 entity.DeductAmount = input.lqKdKdjlbDeductList.Sum(x => x.Amount ?? 0);
netcore/src/Modularity/Extend/NCC.Extend/LqOrderRecordsService.cs 0 → 100644
  1 +using NCC.Common.Core.Manager;
  2 +using NCC.Common.Filter;
  3 +using NCC.Dependency;
  4 +using NCC.DynamicApiController;
  5 +using NCC.FriendlyException;
  6 +using Mapster;
  7 +using Microsoft.AspNetCore.Mvc;
  8 +using SqlSugar;
  9 +using System.Threading.Tasks;
  10 +using NCC.Extend.Entitys.lq_order_records;
  11 +using NCC.Extend.Entitys.Dto.LqOrderRecords;
  12 +
  13 +namespace NCC.Extend
  14 +{
  15 + /// <summary>
  16 + /// 历史开单记录服务(从老系统迁移)
  17 + /// </summary>
  18 + [ApiDescriptionSettings(Tag = "Extend", Name = "LqOrderRecords", Order = 200)]
  19 + [Route("api/Extend/[controller]")]
  20 + public class LqOrderRecordsService : IDynamicApiController, ITransient
  21 + {
  22 + private readonly ISqlSugarRepository<LqOrderRecordsEntity> _lqOrderRecordsRepository;
  23 + private readonly SqlSugarScope _db;
  24 + private readonly IUserManager _userManager;
  25 +
  26 + /// <summary>
  27 + /// 初始化一个<see cref="LqOrderRecordsService"/>类型的新实例
  28 + /// </summary>
  29 + public LqOrderRecordsService(
  30 + ISqlSugarRepository<LqOrderRecordsEntity> lqOrderRecordsRepository,
  31 + IUserManager userManager)
  32 + {
  33 + _lqOrderRecordsRepository = lqOrderRecordsRepository;
  34 + _db = _lqOrderRecordsRepository.Context;
  35 + _userManager = userManager;
  36 + }
  37 +
  38 + /// <summary>
  39 + /// 获取历史开单记录详情
  40 + /// </summary>
  41 + /// <param name="id">主键ID</param>
  42 + /// <returns></returns>
  43 + [HttpGet("{id}")]
  44 + public async Task<dynamic> GetInfo(int id)
  45 + {
  46 + var entity = await _db.Queryable<LqOrderRecordsEntity>().FirstAsync(p => p.Id == id);
  47 + if (entity == null)
  48 + {
  49 + throw NCCException.Oh("未找到该历史开单记录");
  50 + }
  51 + var output = entity.Adapt<LqOrderRecordsInfoOutput>();
  52 + return output;
  53 + }
  54 +
  55 + /// <summary>
  56 + /// 获取历史开单记录列表
  57 + /// </summary>
  58 + /// <param name="input">请求参数</param>
  59 + /// <returns></returns>
  60 + [HttpGet("")]
  61 + public async Task<dynamic> GetList([FromQuery] LqOrderRecordsListQueryInput input)
  62 + {
  63 + var sidx = input.sidx == null ? "id" : input.sidx;
  64 + var sort = input.sort == null ? "desc" : input.sort;
  65 +
  66 + var data = await _db.Queryable<LqOrderRecordsEntity>()
  67 + .WhereIF(!string.IsNullOrEmpty(input.memberNo), p => p.MemberNo.Contains(input.memberNo))
  68 + .WhereIF(!string.IsNullOrEmpty(input.memberPhone), p => p.MemberPhone.Contains(input.memberPhone))
  69 + .Select(it => new LqOrderRecordsListOutput
  70 + {
  71 + id = it.Id,
  72 + orderNo = it.OrderNo,
  73 + imageName = it.ImageName,
  74 + memberNo = it.MemberNo,
  75 + memberPhone = it.MemberPhone,
  76 + memberName = it.MemberName,
  77 + remarks = it.Remarks,
  78 + createdAt = it.CreatedAt,
  79 + updatedAt = it.UpdatedAt
  80 + })
  81 + .MergeTable()
  82 + .OrderBy($"{sidx} {sort}")
  83 + .ToPagedListAsync(input.currentPage, input.pageSize);
  84 +
  85 + return PageResult<LqOrderRecordsListOutput>.SqlSugarPageResult(data);
  86 + }
  87 + }
  88 +}
  89 +