diff --git a/dist.zip b/dist.zip new file mode 100644 index 0000000..e9adab6 Binary files /dev/null and b/dist.zip differ diff --git a/src/page/index/components/CoreBusinessData/CoreBusinessData.less b/src/page/index/components/CoreBusinessData/CoreBusinessData.less index eda2cba..bd056e8 100644 --- a/src/page/index/components/CoreBusinessData/CoreBusinessData.less +++ b/src/page/index/components/CoreBusinessData/CoreBusinessData.less @@ -54,6 +54,7 @@ color: #FFFFFF; text-align: left; font-style: normal; + white-space: nowrap; } .busninessItemAddBox { @@ -88,6 +89,7 @@ letter-spacing: 2px; text-align: right; font-style: normal; + white-space: nowrap; } .busninessItemValue { @@ -108,6 +110,7 @@ font-style: normal; margin-left: 10px; margin-right: 7px; + white-space: nowrap; } } } @@ -140,13 +143,14 @@ line-height: 29px; text-align: left; font-style: normal; - + white-space: nowrap; } .newCoreBusinessItemValueBox { margin-top: 5px; display: flex; align-items: flex-end; + white-space: nowrap; .newCoreBusinessItemValue { font-family: Bahnschrift, Bahnschrift; @@ -163,6 +167,7 @@ background-clip: text; -webkit-text-fill-color: transparent; color: transparent; + white-space: nowrap; } .newCoreBusinessItemUnit { @@ -174,6 +179,7 @@ text-align: center; font-style: normal; margin-left: 5px; + white-space: nowrap; } } diff --git a/src/page/index/components/CoreBusinessData/CoreBusinessData.vue b/src/page/index/components/CoreBusinessData/CoreBusinessData.vue index 79a47b5..fe3b218 100644 --- a/src/page/index/components/CoreBusinessData/CoreBusinessData.vue +++ b/src/page/index/components/CoreBusinessData/CoreBusinessData.vue @@ -3,39 +3,63 @@ import moment from 'moment'; import { handleGetFiveNumber } from '../../../../options/serveice'; import { handleGetMonthlyBusinessRevenue, handleGetRealData } from '../../service'; import CenterTitle from '../CenterTitle/CenterTitle.vue'; +import NumberRoller from '../TradingAlert/NumberRoller.vue'; import './CoreBusinessData.less' -import { onMounted, onBeforeUnmount, ref, reactive, watch } from 'vue'; +import { onMounted, onBeforeUnmount, ref, reactive, watch, computed } from 'vue'; // 总营收 let revenueAmonut = ref({ value: 0, - unit: "元" + unit: "元", + displayValue: 0 // 用于滚动显示的值 }) // 油品消耗 let oilConsumption = ref({ value: 0, - unit: "" + unit: "", + displayValue: 0 // 用于滚动显示的值 }) // 加水量 let waterAddition = ref({ value: 0, - unit: "" + unit: "", + displayValue: 0 // 用于滚动显示的值 }) // 尿素 let urea = ref({ value: 0, - unit: "" + unit: "", + displayValue: 0 // 用于滚动显示的值 }) // 充电次数 let chargingCycles = ref({ value: 0, - unit: "" + unit: "", + displayValue: 0 // 用于滚动显示的值 }) +// 防止重复调用的标志 +let isFetching = ref(false) +// 定时器变量 - 为不同业务类型设置单独的定时器 +let revenueTimer: any = null // 门店营收定时器 +let chargingTimer: any = null // 充电定时器 +let waterTimer: any = null // 加水定时器 +let ureaTimer: any = null // 尿素定时器 +let oilTimer: any = null // 油品定时器 + +// 切换显示状态:true显示金额,false显示数量 +let isShowingAmount = ref(true) +// 切换显示定时器 +let displaySwitchTimer: any = null + onMounted(async () => { await handleGetMapRealData() + // 启动定时更新,每5秒增加1000 + startPeriodicUpdate() + // 启动显示切换定时器 + startDisplaySwitch() }) // 拿到传入的数据 @@ -48,15 +72,27 @@ const props = defineProps<{ watch( () => props.currentService, (newVal, oldVal) => { - handleGetMapRealData() + // 只有当服务区真正发生变化时才重新获取数据 + if (newVal?.SERVERPART_ID !== oldVal?.SERVERPART_ID) { + handleGetMapRealData() + // 重启定时器,确保在新服务区下也能正常更新 + restartPeriodicUpdate() + } }, { deep: true } -); +); // 拿到实时数据 const handleGetMapRealData = async () => { + // 防止重复调用 + if (isFetching.value) { + return + } + + isFetching.value = true + const req: any = { - serverPartId: props.currentService?.SERVERPART_ID || "" + serverPartId: props.currentService?.SERVERPART_ID || "" } let CoreBusinessData = sessionStorage.getItem('CoreBusinessData') @@ -64,7 +100,7 @@ const handleGetMapRealData = async () => { if (CoreBusinessData) { data = JSON.parse(CoreBusinessData) } else { - data = await handleGetRealData(req) + data = await handleGetRealData(req) sessionStorage.setItem("CoreBusinessData", JSON.stringify(data)) } @@ -82,20 +118,28 @@ const handleGetMapRealData = async () => { // 门店营收 if (item.dataType === 1000) { let obj: any = { - value: handleGetPonitFixed(item.totalAmount), - unit: item.totalAmountUnit + value: parseFloat(handleGetPonitFixed(item.totalAmount)) || 0, + unit: item.totalAmountUnit || '', + totalCount: parseFloat(handleGetPonitFixed(item.totalCount)) || 0, + totalCountUnit: item.totalCountUnit || '' } // let obj: any = { // value: item.totalAmount.toString().length > 8 ? Number((item.totalAmount / 10000).toFixed(2)).toLocaleString() : Number(item.totalAmount).toLocaleString(), // unit: item.totalAmount.toString().length > 8 ? '万元' : '元' // } + console.log('objobjobjobjobj', obj); + aiObj["门店营收"] = `${item.totalAmount}${item.totalAmountUnit}` revenueAmonut.value = obj + // 启动滚动动画 + startSingleNumberAnimation(revenueAmonut) } else if (item.dataType === 2000) { // 油品消耗 let obj: any = { - value: handleGetPonitFixed(item.totalCount), - unit: item.totalCountUnit + value: parseFloat(handleGetPonitFixed(item.totalAmount)) || 0, + unit: item.totalAmountUnit || '', + totalCount: parseFloat(handleGetPonitFixed(item.totalCount)) || 0, + totalCountUnit: item.totalCountUnit || '', } // let obj: any = { // value: item.totalCount.toString().length > 8 ? Number((item.totalCount / 10000).toFixed(2)).toLocaleString() : Number(item.totalCount).toLocaleString(), @@ -103,11 +147,15 @@ const handleGetMapRealData = async () => { // } aiObj["油品消耗"] = `${item.totalCount}${item.totalCountUnit}` oilConsumption.value = obj + // 启动滚动动画 + startSingleNumberAnimation(oilConsumption) } else if (item.dataType === 3000) { // 加水量 let obj: any = { - value: handleGetPonitFixed(item.totalCount), - unit: item.totalCountUnit + value: parseFloat(handleGetPonitFixed(item.totalAmount)) || 0, + unit: item.totalAmountUnit || '', + totalCount: parseFloat(handleGetPonitFixed(item.totalCount)) || 0, + totalCountUnit: item.totalCountUnit || '', } // let obj: any = { // value: item.totalCount.toString().length > 8 ? Number((item.totalCount / 10000).toFixed(2)).toLocaleString() : Number(item.totalCount).toLocaleString(), @@ -115,11 +163,15 @@ const handleGetMapRealData = async () => { // } aiObj["加水量"] = `${item.totalCount}${item.totalCountUnit}` waterAddition.value = obj + // 启动滚动动画 + startSingleNumberAnimation(waterAddition) } else if (item.dataType === 4000) { // 尿素 let obj: any = { - value: handleGetPonitFixed(item.totalCount), - unit: item.totalCountUnit + value: parseFloat(handleGetPonitFixed(item.totalAmount)) || 0, + unit: item.totalAmountUnit || '', + totalCount: parseFloat(handleGetPonitFixed(item.totalCount)) || 0, + totalCountUnit: item.totalCountUnit || '', } // let obj: any = { // value: item.totalCount.toString().length > 8 ? Number((item.totalCount / 10000).toFixed(2)).toLocaleString() : Number(item.totalCount).toLocaleString(), @@ -127,18 +179,26 @@ const handleGetMapRealData = async () => { // } aiObj["尿素"] = `${item.totalCount}${item.totalCountUnit}` urea.value = obj + // 启动滚动动画 + startSingleNumberAnimation(urea) } else if (item.dataType === 5000) { // 充电次数 let obj: any = { - value: handleGetPonitFixed(item.totalTicket), - unit: item.totalTicketUnit + value: parseFloat(handleGetPonitFixed(item.totalAmount)) || 0, + unit: item.totalAmountUnit || '', + totalCount: parseFloat(handleGetPonitFixed(item.totalCount)) || 0, + totalCountUnit: item.totalCountUnit || '', } // let obj: any = { // value: item.totalTicket.toString().length > 8 ? Number((item.totalTicket / 10000).toFixed(2)).toLocaleString() : Number(item.totalCount).toLocaleString(), // unit: item.totalTicket.toString().length > 8 ? '万单' : '单' // } aiObj["充电次数"] = `${item.totalTicket}${item.totalTicketUnit}` + console.log('objobjobjobj', obj); + chargingCycles.value = obj + // 启动滚动动画 + startSingleNumberAnimation(chargingCycles) } }) } @@ -221,11 +281,277 @@ const handleGetMapRealData = async () => { sessionStorage.setItem("CoreBusinessDataMonthAI", JSON.stringify(aiObjMonthSum)) } + // 重置调用标志 + isFetching.value = false } -// 拿到小数点后两位 -const handleGetPonitFixed = (str: string) => { - const num = parseFloat(str); // 先转为number类型 - return isNaN(num) ? "0.00" : num.toFixed(2); +// 拿到小数点后转为数字 +const handleGetPonitFixed = (str: string | number) => { + const num = parseFloat(String(str)); // 确保转为字符串再转为number + return isNaN(num) ? 0 : num; // 直接返回数字,不是字符串 +} + +// 生成随机数函数,支持主区间概率 +const generateRandomValue = (min: number, max: number, mainMin: number, mainMax: number, mainProb: number = 0.7): number => { + // mainProb 概率落在主区间内 + if (Math.random() < mainProb) { + // 主区间 + return Math.random() * (mainMax - mainMin) + mainMin + } else { + // 全区间 + return Math.random() * (max - min) + min + } +} + +// 获取随机时间间隔(秒) +const getRandomInterval = (minSeconds: number, maxSeconds: number): number => { + return Math.floor(Math.random() * (maxSeconds - minSeconds + 1) + minSeconds) * 1000 +} + +// 门店营收更新:1-5秒内金额随机1-100元(主区间15-25元,留1位小数) +const updateRevenue = () => { + const randomAmount = generateRandomValue(1, 100, 15, 25, 0.7) + console.log('🔍 DEBUG randomAmount:', randomAmount) + + // 根据当前显示模式更新不同的字段 + if (isShowingAmount.value) { + // 显示金额模式 - 更新金额字段 + const currentValue = parseFloat(revenueAmonut.value.value) || 0 + const unit = revenueAmonut.value.unit || '' + const actualAmount = unit.includes('万元') ? randomAmount / 10000 : randomAmount + revenueAmonut.value.value = (currentValue + actualAmount) + console.log('💰 门店营收金额增加:', actualAmount + unit, '当前总值:', revenueAmonut.value.value) + } else { + // 显示数量模式 - 更新数量字段 + const currentValue = parseFloat(revenueAmonut.value.totalCount) || 0 + const unit = revenueAmonut.value.totalCountUnit || '' + const actualAmount = unit.includes('万单') ? randomAmount / 100 : randomAmount // 假设数量单位是万单 + revenueAmonut.value.totalCount = (currentValue + actualAmount) + console.log('💰 门店营收数量增加:', actualAmount + unit, '当前总值:', revenueAmonut.value.totalCount) + } + + // 1-5秒随机间隔 + revenueTimer = setTimeout(updateRevenue, getRandomInterval(1, 5)) +} + +// 充电更新:1-5秒内,数量随机增加(0-3笔订单,主区间1笔),金额1-100元(主区间15-35元,留两位小数) +const updateCharging = () => { + const orders = Math.random() < 0.7 ? 1 : Math.floor(Math.random() * 4) // 主区间1笔 + + // 根据当前显示模式更新不同的字段 + if (isShowingAmount.value) { + // 显示金额模式 - 更新金额字段 + const randomAmount = generateRandomValue(1, 100, 15, 35, 0.7) + const currentValue = parseFloat(chargingCycles.value.value) || 0 + const unit = chargingCycles.value.unit || '' + const actualAmount = unit.includes('万元') ? randomAmount / 10000 : randomAmount + chargingCycles.value.value = (currentValue + actualAmount) + console.log('⚡ 充电金额增加:', actualAmount + unit, '当前总值:', chargingCycles.value.value) + } else { + // 显示数量模式 - 更新数量字段 + const currentValue = parseFloat(chargingCycles.value.totalCount) || 0 + const unit = chargingCycles.value.totalCountUnit || '' + const actualAmount = unit.includes('万单') ? orders / 10000 : orders + chargingCycles.value.totalCount = (currentValue + actualAmount) + console.log('⚡ 充电数量增加:', actualAmount + unit, `(${orders}笔)`, '当前总值:', chargingCycles.value.totalCount) + } + + // 1-5秒随机间隔 + chargingTimer = setTimeout(updateCharging, getRandomInterval(1, 5)) +} + +// 加水更新:1分钟内,加注吨数随机增加(0-1.2吨,主区间0.3-0.7吨,留两位小数) +const updateWater = () => { + const randomAmount = generateRandomValue(0, 1.2, 0.3, 0.7, 0.7) // 按吨数累加 + + // 根据当前显示模式更新不同的字段 + if (isShowingAmount.value) { + // 显示金额模式 - 更新金额字段 + const revenueAmount = generateRandomValue(10, 500, 50, 150, 0.7) // 金额范围 + const currentValue = parseFloat(waterAddition.value.value) || 0 + const unit = waterAddition.value.unit || '' + const actualAmount = unit.includes('万元') ? revenueAmount / 10000 : revenueAmount + waterAddition.value.value = (currentValue + actualAmount) + console.log('💧 加水金额增加:', actualAmount + unit, '当前总值:', waterAddition.value.value) + } else { + // 显示数量模式 - 更新数量字段 + const currentValue = parseFloat(waterAddition.value.totalCount) || 0 + const unit = waterAddition.value.totalCountUnit || '' + const actualAmount = unit.includes('万吨') ? randomAmount / 10000 : randomAmount + waterAddition.value.totalCount = (currentValue + actualAmount) + console.log('💧 加水数量增加:', actualAmount + unit, '(原始值:', randomAmount.toFixed(2) + '吨)', '当前总值:', waterAddition.value.totalCount) + } + + // 1分钟间隔 + waterTimer = setTimeout(updateWater, 60000) +} + +// 尿素更新:1分钟内,加注吨数随机增加(0-0.2吨,主区间0.06-0.10吨,留两位小数) +const updateUrea = () => { + const randomAmount = generateRandomValue(0, 0.2, 0.06, 0.10, 0.7) // 按吨数累加 + + // 根据当前显示模式更新不同的字段 + if (isShowingAmount.value) { + // 显示金额模式 - 更新金额字段 + const revenueAmount = generateRandomValue(20, 800, 80, 200, 0.7) // 金额范围 + const currentValue = parseFloat(urea.value.value) || 0 + const unit = urea.value.unit || '' + const actualAmount = unit.includes('万元') ? revenueAmount / 10000 : revenueAmount + urea.value.value = (currentValue + actualAmount) + console.log('🧪 尿素金额增加:', actualAmount + unit, '当前总值:', urea.value.value) + } else { + // 显示数量模式 - 更新数量字段 + const currentValue = parseFloat(urea.value.totalCount) || 0 + const unit = urea.value.totalCountUnit || '' + const actualAmount = unit.includes('万吨') ? randomAmount / 10000 : randomAmount + urea.value.totalCount = (currentValue + actualAmount) + console.log('🧪 尿素数量增加:', actualAmount + unit, '(原始值:', randomAmount.toFixed(3) + '吨)', '当前总值:', urea.value.totalCount) + } + + // 1分钟间隔 + ureaTimer = setTimeout(updateUrea, 60000) +} + +// 油品更新:1-5秒内,加注吨数随机增加(0-0.1吨,主区间0.020-0.050吨,留三位小数) +const updateOil = () => { + const randomAmount = generateRandomValue(0, 0.1, 0.020, 0.050, 0.7) // 按吨数累加 + + // 根据当前显示模式更新不同的字段 + if (isShowingAmount.value) { + // 显示金额模式 - 更新金额字段 + const revenueAmount = generateRandomValue(50, 1000, 100, 300, 0.7) // 金额范围 + const currentValue = parseFloat(oilConsumption.value.value) || 0 + const unit = oilConsumption.value.unit || '' + const actualAmount = unit.includes('万元') ? revenueAmount / 10000 : revenueAmount + oilConsumption.value.value = (currentValue + actualAmount) + console.log('⛽ 油品金额增加:', actualAmount + unit, '当前总值:', oilConsumption.value.value) + } else { + // 显示数量模式 - 更新数量字段 + const currentValue = parseFloat(oilConsumption.value.totalCount) || 0 + const unit = oilConsumption.value.totalCountUnit || '' + const actualAmount = unit.includes('万吨') ? randomAmount / 10000 : randomAmount + oilConsumption.value.totalCount = (currentValue + actualAmount) + console.log('⛽ 油品数量增加:', actualAmount + unit, '(原始值:', randomAmount.toFixed(3) + '吨)', '当前总值:', oilConsumption.value.totalCount) + } + + // 1-5秒随机间隔 + oilTimer = setTimeout(updateOil, getRandomInterval(1, 5)) +} + +// 启动所有定时器 +const startPeriodicUpdate = () => { + // 清除所有现有定时器 + clearAllTimers() + + console.log('🚀 启动业务数据实时更新') + + // 延迟启动,避免同时更新 + setTimeout(updateRevenue, 1000) // 1秒后启动营收更新 + setTimeout(updateCharging, 2000) // 2秒后启动充电更新 + setTimeout(updateWater, 10000) // 10秒后启动加水更新 + setTimeout(updateUrea, 15000) // 15秒后启动尿素更新 + setTimeout(updateOil, 3000) // 3秒后启动油品更新 +} + +// 清除所有定时器 +const clearAllTimers = () => { + if (revenueTimer) { clearTimeout(revenueTimer); revenueTimer = null } + if (chargingTimer) { clearTimeout(chargingTimer); chargingTimer = null } + if (waterTimer) { clearTimeout(waterTimer); waterTimer = null } + if (ureaTimer) { clearTimeout(ureaTimer); ureaTimer = null } + if (oilTimer) { clearTimeout(oilTimer); oilTimer = null } +} + +// 重启定时器函数 +const restartPeriodicUpdate = () => { + console.log('🔄 重启所有业务定时器') + startPeriodicUpdate() +} + +// 启动显示切换定时器 +const startDisplaySwitch = () => { + displaySwitchTimer = setInterval(() => { + isShowingAmount.value = !isShowingAmount.value + console.log(`🔄 切换显示模式: ${isShowingAmount.value ? '金额' : '数量'}`) + }, 5000) // 每5秒切换一次 +} + +// 组件卸载时清除定时器 +onBeforeUnmount(() => { + clearAllTimers() + if (displaySwitchTimer) { + clearInterval(displaySwitchTimer) + displaySwitchTimer = null + } +}) + +// 数字滚动动画函数 +const animateNumber = (targetRef: any, startValue: number, endValue: number) => { + const duration = 1500 // 动画时长1.5秒 + const startTime = Date.now() + + const animate = () => { + const currentTime = Date.now() + const elapsed = currentTime - startTime + const progress = Math.min(elapsed / duration, 1) + + // 使用easeOutCubic缓动函数 + const easeOutCubic = 1 - Math.pow(1 - progress, 3) + const currentValue = startValue + (endValue - startValue) * easeOutCubic + + // 更新显示值 + targetRef.value.displayValue = currentValue + + if (progress < 1) { + requestAnimationFrame(animate) + } + } + + requestAnimationFrame(animate) +} + +// 为单个数据启动滚动动画 +const startSingleNumberAnimation = (targetRef: any) => { + const targetValue = parseFloat(targetRef.value.value) || 0 + const startValue = 0 + animateNumber(targetRef, startValue, targetValue) +} + +// 为每个数据创建计算属性 +const revenueDisplay = computed(() => getDisplayData(revenueAmonut)) +const oilDisplay = computed(() => getDisplayData(oilConsumption)) +const waterDisplay = computed(() => getDisplayData(waterAddition)) +const ureaDisplay = computed(() => getDisplayData(urea)) +const chargingDisplay = computed(() => getDisplayData(chargingCycles)) + +// 计算属性:根据显示状态获取当前显示的值和单位 +const getDisplayData = (dataRef: any) => { + if (isShowingAmount.value) { + // 显示金额 + return { + value: Number(dataRef.value.value) || 0, + unit: dataRef.value.unit || '', + decimals: 1 // 金额显示1位小数 + } + } else { + // 显示数量 + const totalCount = dataRef.value.totalCount + const totalCountUnit = dataRef.value.totalCountUnit + + // 如果有数量数据就显示数量,否则显示金额 + const value = totalCount ? Number(totalCount) : Number(dataRef.value.value) || 0 + const unit = totalCountUnit || dataRef.value.unit || '' + + return { + value: value, + unit: unit, + decimals: totalCount ? 2 : 1 // 有数量数据时显示2位小数 + } + } +} + +// 获取当前显示模式的标签 +const getDisplayLabel = (defaultLabel: string) => { + return isShowingAmount.value ? `今日${defaultLabel}营收` : `今日${defaultLabel}数量` } defineExpose({ @@ -241,10 +567,13 @@ defineExpose({
-
今日营收
+
{{ getDisplayLabel('') }}
-
{{ revenueAmonut.value }}
-
{{ revenueAmonut.unit }}
+
+ +
+
{{ revenueDisplay.unit }}
- +
会员消费笔数
-
133
+
104
会员总销售额
-
27,734.10
+
47,550.60
@@ -65,48 +65,48 @@ import SmallTitle from '../smallTitle/smallTitle.vue'
工会会员
-
512
+
1782
会员占比
-
4.02%
+
11.82%
会员转化率
-
15.06%
+
32.17%
会员增长率
-
0.74%
+
0.97%
- +
-
23
+
99
购买人数
-
23
-
+
480.31
+
人均消费金额
-
208.53
+
461.66
客单价
-
29.17%
+
2.02%
会员复购率
diff --git a/src/page/index/components/PageMap/PageMap.vue b/src/page/index/components/PageMap/PageMap.vue index 8bf0286..2a8a423 100644 --- a/src/page/index/components/PageMap/PageMap.vue +++ b/src/page/index/components/PageMap/PageMap.vue @@ -172,6 +172,11 @@ const handleGetServiceList = async () => { defaultServerPartList = res; allServerPartIdList = allId; + SPREGIONTYPECOLORLIST.push({ + label: '美丽公路项目', + value: 130 + }) + SPREGIONTYPECOLORList = SPREGIONTYPECOLORLIST; SPREGIONTYPECOLOR.value = SPREGIONTYPETYPEObj; diff --git a/src/page/index/components/TradingAlert/NumberRoller.vue b/src/page/index/components/TradingAlert/NumberRoller.vue new file mode 100644 index 0000000..ce512ec --- /dev/null +++ b/src/page/index/components/TradingAlert/NumberRoller.vue @@ -0,0 +1,55 @@ + + + \ No newline at end of file diff --git a/src/page/index/components/TradingAlert/TradingAlert.vue b/src/page/index/components/TradingAlert/TradingAlert.vue index 44010fb..2c25cc2 100644 --- a/src/page/index/components/TradingAlert/TradingAlert.vue +++ b/src/page/index/components/TradingAlert/TradingAlert.vue @@ -1,7 +1,8 @@ @@ -85,22 +190,26 @@ defineExpose({
-
{{ (TradingOtherData?.sum || 0) }}
+
+ +
交易预警总数
-
{{ (TradingOtherData?.value || 0) - }}
+
+ +
必查项
-
{{ (TradingOtherData?.data || 0) }} +
+
抽查项
diff --git a/src/page/index/components/supplierListBox/supplierListBox.vue b/src/page/index/components/supplierListBox/supplierListBox.vue index 413656b..4380e08 100644 --- a/src/page/index/components/supplierListBox/supplierListBox.vue +++ b/src/page/index/components/supplierListBox/supplierListBox.vue @@ -82,12 +82,12 @@ defineExpose({
-
供应商/家
+
电商及工会福利/家
14
-
品牌方/家
+
绿色云品品牌厂家/家
@@ -97,14 +97,14 @@ defineExpose({
-
自有品牌水/家
+
自有水品牌厂家/家
2
-
零售批发类/家
+
快消品零售批发/家
diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo index 94e39d0..02b940e 100644 --- a/tsconfig.tsbuildinfo +++ b/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/main.ts","./src/shims-vue.d.ts","./src/vite-env.d.ts","./src/options/serveice.ts","./src/page/index/service.ts","./src/page/login/service.ts","./src/request/newrequest.ts","./src/request/request.ts","./src/request/requestcode.ts","./src/request/requestconfig.ts","./src/request/requestlocal.ts","./src/request/requestpos.ts","./src/request/requesttest.ts","./src/router/index.ts","./src/stores/counter.ts","./src/app.vue","./src/page/index/index.vue","./src/page/index/components/accountsreceivablewarning/accountsreceivablewarning.vue","./src/page/index/components/analysisofmember/analysisofmember.vue","./src/page/index/components/announcementtopic/announcementtopic.vue","./src/page/index/components/annualaccountsreceivable/annualaccountsreceivable.vue","./src/page/index/components/arealegend/arealegend.vue","./src/page/index/components/assessmentscoring/assessmentscoring.vue","./src/page/index/components/assessmentscoringranking/assessmentscoringranking.vue","./src/page/index/components/basicmessagebox/basicmessagebox.vue","./src/page/index/components/brandconsumptionlevel/brandconsumptionlevel.vue","./src/page/index/components/branddetail/branddetail.vue","./src/page/index/components/brandlisttbox/brandlisttbox.vue","./src/page/index/components/businesscase/businesscase.vue","./src/page/index/components/businessstructure/businessstructure.vue","./src/page/index/components/busytradingranking/busytradingranking.vue","./src/page/index/components/centertitle/centertitle.vue","./src/page/index/components/consumptionconversion/consumptionconversion.vue","./src/page/index/components/consumptionlevel/consumptionlevel.vue","./src/page/index/components/consumptionperiod/consumptionperiod.vue","./src/page/index/components/contractinformation/contractinformation.vue","./src/page/index/components/corebusinessdata/corebusinessdata.vue","./src/page/index/components/corecategory/corecategory.vue","./src/page/index/components/customeragegroup/customeragegroup.vue","./src/page/index/components/customerconsumptionpreferences/customerconsumptionpreferences.vue","./src/page/index/components/customergroup/customergroup.vue","./src/page/index/components/customergroupstay/customergroupstay.vue","./src/page/index/components/dailyinspection/dailyinspection.vue","./src/page/index/components/deductiontype/deductiontype.vue","./src/page/index/components/detailedpayment/detailedpayment.vue","./src/page/index/components/festivalrevenue/festivalrevenue.vue","./src/page/index/components/festivalrevenuesuminfo/festivalrevenuesuminfo.vue","./src/page/index/components/gendercustomergroup/gendercustomergroup.vue","./src/page/index/components/highqualitymerchants/highqualitymerchants.vue","./src/page/index/components/hotproductlist/hotproductlist.vue","./src/page/index/components/mallorderstatistics/mallorderstatistics.vue","./src/page/index/components/membermall/index.vue","./src/page/index/components/merchantcategory/merchantcategory.vue","./src/page/index/components/merchantratingranking/merchantratingranking.vue","./src/page/index/components/multiindustryincome/multiindustryincome.vue","./src/page/index/components/overviewofservicearea/overviewofservicearea.vue","./src/page/index/components/pagemap/pagemap.vue","./src/page/index/components/passengerflowchanges/passengerflowchanges.vue","./src/page/index/components/paymentprogress/paymentprogress.vue","./src/page/index/components/preferencetype/preferencetype.vue","./src/page/index/components/privaterideservice/privaterideservice.vue","./src/page/index/components/regionalrevenue/regionalrevenue.vue","./src/page/index/components/returnrate/returnrate.vue","./src/page/index/components/salescomparison/salescomparison.vue","./src/page/index/components/signedclients/signedclients.vue","./src/page/index/components/thismonthbenefits/thismonthbenefits.vue","./src/page/index/components/todaytrend/todaytrend.vue","./src/page/index/components/totalaccountsreceivable/totalaccountsreceivable.vue","./src/page/index/components/tradingalert/tradingalert.vue","./src/page/index/components/trendoftrafficflow/trendoftrafficflow.vue","./src/page/index/components/vehiclemodelstay/vehiclemodelstay.vue","./src/page/index/components/vehiclestayanalysis/vehiclestayanalysis.vue","./src/page/index/components/vehiclesentering/vehiclesentering.vue","./src/page/index/components/modaltitle/modaltitle.vue","./src/page/index/components/newbigtitlebox/newbigtitlebox.vue","./src/page/index/components/noticelistbox/noticelistbox.vue","./src/page/index/components/pagetop/pagetop.vue","./src/page/index/components/smalltitle/smalltitle.vue","./src/page/index/components/supplierlistbox/supplierlistbox.vue","./src/page/login/login.vue"],"version":"5.6.3"} \ No newline at end of file +{"root":["./src/main.ts","./src/shims-vue.d.ts","./src/vite-env.d.ts","./src/options/serveice.ts","./src/page/index/service.ts","./src/page/login/service.ts","./src/request/newrequest.ts","./src/request/request.ts","./src/request/requestcode.ts","./src/request/requestconfig.ts","./src/request/requestlocal.ts","./src/request/requestpos.ts","./src/request/requesttest.ts","./src/router/index.ts","./src/stores/counter.ts","./src/app.vue","./src/page/index/index.vue","./src/page/index/components/accountsreceivablewarning/accountsreceivablewarning.vue","./src/page/index/components/analysisofmember/analysisofmember.vue","./src/page/index/components/announcementtopic/announcementtopic.vue","./src/page/index/components/annualaccountsreceivable/annualaccountsreceivable.vue","./src/page/index/components/arealegend/arealegend.vue","./src/page/index/components/assessmentscoring/assessmentscoring.vue","./src/page/index/components/assessmentscoringranking/assessmentscoringranking.vue","./src/page/index/components/basicmessagebox/basicmessagebox.vue","./src/page/index/components/brandconsumptionlevel/brandconsumptionlevel.vue","./src/page/index/components/branddetail/branddetail.vue","./src/page/index/components/brandlisttbox/brandlisttbox.vue","./src/page/index/components/businesscase/businesscase.vue","./src/page/index/components/businessstructure/businessstructure.vue","./src/page/index/components/busytradingranking/busytradingranking.vue","./src/page/index/components/centertitle/centertitle.vue","./src/page/index/components/consumptionconversion/consumptionconversion.vue","./src/page/index/components/consumptionlevel/consumptionlevel.vue","./src/page/index/components/consumptionperiod/consumptionperiod.vue","./src/page/index/components/contractinformation/contractinformation.vue","./src/page/index/components/corebusinessdata/corebusinessdata.vue","./src/page/index/components/corecategory/corecategory.vue","./src/page/index/components/customeragegroup/customeragegroup.vue","./src/page/index/components/customerconsumptionpreferences/customerconsumptionpreferences.vue","./src/page/index/components/customergroup/customergroup.vue","./src/page/index/components/customergroupstay/customergroupstay.vue","./src/page/index/components/dailyinspection/dailyinspection.vue","./src/page/index/components/deductiontype/deductiontype.vue","./src/page/index/components/detailedpayment/detailedpayment.vue","./src/page/index/components/festivalrevenue/festivalrevenue.vue","./src/page/index/components/festivalrevenuesuminfo/festivalrevenuesuminfo.vue","./src/page/index/components/gendercustomergroup/gendercustomergroup.vue","./src/page/index/components/highqualitymerchants/highqualitymerchants.vue","./src/page/index/components/hotproductlist/hotproductlist.vue","./src/page/index/components/mallorderstatistics/mallorderstatistics.vue","./src/page/index/components/membermall/index.vue","./src/page/index/components/merchantcategory/merchantcategory.vue","./src/page/index/components/merchantratingranking/merchantratingranking.vue","./src/page/index/components/multiindustryincome/multiindustryincome.vue","./src/page/index/components/overviewofservicearea/overviewofservicearea.vue","./src/page/index/components/pagemap/pagemap.vue","./src/page/index/components/passengerflowchanges/passengerflowchanges.vue","./src/page/index/components/paymentprogress/paymentprogress.vue","./src/page/index/components/preferencetype/preferencetype.vue","./src/page/index/components/privaterideservice/privaterideservice.vue","./src/page/index/components/regionalrevenue/regionalrevenue.vue","./src/page/index/components/returnrate/returnrate.vue","./src/page/index/components/salescomparison/salescomparison.vue","./src/page/index/components/signedclients/signedclients.vue","./src/page/index/components/thismonthbenefits/thismonthbenefits.vue","./src/page/index/components/todaytrend/todaytrend.vue","./src/page/index/components/totalaccountsreceivable/totalaccountsreceivable.vue","./src/page/index/components/tradingalert/numberroller.vue","./src/page/index/components/tradingalert/tradingalert.vue","./src/page/index/components/trendoftrafficflow/trendoftrafficflow.vue","./src/page/index/components/vehiclemodelstay/vehiclemodelstay.vue","./src/page/index/components/vehiclestayanalysis/vehiclestayanalysis.vue","./src/page/index/components/vehiclesentering/vehiclesentering.vue","./src/page/index/components/modaltitle/modaltitle.vue","./src/page/index/components/newbigtitlebox/newbigtitlebox.vue","./src/page/index/components/noticelistbox/noticelistbox.vue","./src/page/index/components/pagetop/pagetop.vue","./src/page/index/components/smalltitle/smalltitle.vue","./src/page/index/components/supplierlistbox/supplierlistbox.vue","./src/page/login/login.vue"],"version":"5.6.3"} \ No newline at end of file