Merge branch 'huangzhenbao-admin' into comclib-analytics

- Resolved rename conflicts by keeping docs/project_spec/ structure
- Added new admin modules: finance, decoration, kefu
- Enhanced marketing and product management features
- Updated analytics components and profile page
- Consolidated documentation under pages/mall/admin/docs/
This commit is contained in:
comlibmb
2026-02-05 10:43:24 +08:00
178 changed files with 34805 additions and 10752 deletions

View File

@@ -79,8 +79,14 @@ export default {
})
const option = {
grid: { left: 40, right: 20, top: 20, bottom: 40 },
tooltip: { trigger: 'axis' },
grid: { left: 40, right: 20, top: 40, bottom: 40 },
tooltip: {
show: true,
trigger: 'axis',
backgroundColor: 'rgba(255, 255, 255, 0.9)',
textStyle: { color: '#666', fontSize: 12 },
confine: true
},
xAxis: {
type: 'category',
boundaryGap: false,
@@ -95,9 +101,11 @@ export default {
axisLabel: { color: 'rgba(0,0,0,0.45)', fontSize: 10 }
},
series: [{
name: '数据',
data: d,
type: 'line',
smooth: true,
showSymbol: false,
symbolSize: 0,
lineStyle: { width: 2, color: '#1890ff' },
areaStyle: {

View File

@@ -75,7 +75,8 @@ export default {
name: s.name,
type: 'line',
smooth: true,
symbolSize: 6,
showSymbol: false,
symbolSize: 0,
itemStyle: { color: s.color },
lineStyle: { width: 2 },
data: s.data
@@ -83,19 +84,26 @@ export default {
})
const option = {
grid: { left: 50, right: 30, top: 20, bottom: 40 },
tooltip: { trigger: 'axis' },
grid: { left: 50, right: 30, top: 40, bottom: 60 },
tooltip: {
show: true,
trigger: 'axis',
confine: true,
backgroundColor: 'rgba(255, 255, 255, 0.9)',
textStyle: { color: '#666', fontSize: 12 }
},
legend: {
show: true,
top: 0,
left: 'center',
right: 20,
itemWidth: 12,
itemHeight: 2,
textStyle: { fontSize: 12, color: '#333' }
textStyle: { fontSize: 11, color: '#666' }
},
xAxis: {
type: 'category',
boundaryGap: false,
data: this.xLabels,
data: this.xLabels.map(s => String(s)),
axisLine: { lineStyle: { color: 'rgba(0,0,0,0.1)' } },
axisLabel: {
color: 'rgba(0,0,0,0.45)',

View File

@@ -69,18 +69,29 @@ export default {
if (!this.items || this.items.length === 0) return
const data = (this.items as Array<any>).map((it) => {
const itemStyle = it.itemStyle ? this.toPlainObject(it.itemStyle) : {} as any
if (it.color && !itemStyle.color) {
itemStyle.color = it.color
}
return {
name: String(it.name),
name: String(it.name || it.label),
value: Number(it.value),
itemStyle: this.toPlainObject(it.itemStyle)
itemStyle: itemStyle
}
})
const option = {
tooltip: { trigger: 'item', formatter: '{b}: {c} ({d}%)' },
color: ['#1890ff', '#2ec7c9', '#b6a2de', '#5ab1ef', '#ffb980', '#d87a80'],
tooltip: {
show: true,
trigger: 'item',
formatter: '{b}: {c} ({d}%)',
backgroundColor: 'rgba(255, 255, 255, 0.9)',
textStyle: { color: '#666', fontSize: 12 }
},
legend: {
orient: 'vertical',
right: 10,
right: 20,
top: 'center',
itemWidth: 10,
itemHeight: 10,
@@ -89,7 +100,7 @@ export default {
series: [{
type: 'pie',
radius: ['45%', '70%'],
center: ['35%', '50%'],
center: ['40%', '50%'],
data: data,
avoidLabelOverlap: true,
label: {
@@ -97,6 +108,7 @@ export default {
},
labelLine: { show: false },
itemStyle: {
borderRadius: 4,
borderWidth: 2,
borderColor: '#fff'
}