diff --git a/fuintAdmin/src/views/financialStatement/reconciliation/tab/favourable.vue b/fuintAdmin/src/views/financialStatement/reconciliation/tab/favourable.vue index b537981f9..ff666ea2a 100644 --- a/fuintAdmin/src/views/financialStatement/reconciliation/tab/favourable.vue +++ b/fuintAdmin/src/views/financialStatement/reconciliation/tab/favourable.vue @@ -166,7 +166,7 @@ 储值卡 积分 囤油卡 - 油品加商品(收银台订单) + 收银台订单 挂账订单 其他 diff --git a/fuintAdmin/src/views/handover/info/rec/trading.vue b/fuintAdmin/src/views/handover/info/rec/trading.vue index ba07af3b1..22264a062 100644 --- a/fuintAdmin/src/views/handover/info/rec/trading.vue +++ b/fuintAdmin/src/views/handover/info/rec/trading.vue @@ -15,9 +15,27 @@ + + + + + + + + + + + + + + @@ -42,7 +60,7 @@ - + + + + + + + + - - - - - + + + - - - - - - + + + + + - - 至 - + v-model="queryParams.dataRange" + type="daterange" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd" + > 搜索 重置 - 导出 + 导出 - + {{ wechat}}/{{ wechats}} - 微信收款(元)/笔数 + 微信收款(元)/ 笔数 - + {{ orderStatistics.alipay?orderStatistics.alipay:0 }}/0 - 支付宝收款(元)/笔数 + 支付宝收款(元)/ 笔数 - + {{ orderStatistics.balance?orderStatistics.balance:0 }}/0 - 云闪付收款(元)/笔数 + 云闪付收款(元)/ 笔数 - + {{orderStatistics.balanceCount?orderStatistics.balanceCount:0}}/0 - pos机收款(元)/笔数 + pos机收款(元)/ 笔数 - + {{ orderStatistics.cash?orderStatistics.cash:0 }}/0 - 现金收款(元)/笔数 + 现金收款(元)/ 笔数 - + {{orderStatistics.cashcount?orderStatistics.cashcount:0}}/0 - 会员消费(元)/笔数 + 会员消费(元)/ 笔数 - - 999999/999999999999 + + 0/0 - 挂帐收款(元)/笔数 + 挂帐收款(元)/ 笔数 @@ -225,7 +247,7 @@ -- - + 现金 @@ -319,15 +341,22 @@ import { exportExcelTradingApi, getmyDataApi, getRunningWaterByTissueApi, getTissueByDataApi, - getTradingPageApi + getTradingPageApi, + transactionList, + getDicts, + getStaffByStorId } from "@/api/allOrder"; export default { name: "reconciliation-trading", data(){ return{ - wechat:999999999999999, - wechats:999999999999999, + + dict:{}, + + + wechat:0, + wechats:0, radio1:"油号选错", loading:false, dialogVisible:false, @@ -387,8 +416,28 @@ export default { // this.getList(); + this.getDicts(); + this.getStaffByStorId(); + }, methods:{ + + async getDicts() { + getDicts("payment_channel").then(response => { + this.dict = response.data; + }) + getDicts("payment_type").then(response => { + this.dictPayType = response.data; + }) + }, + + async getStaffByStorId() { + getStaffByStorId().then(response => { + this.staffList = response.data; + }) + }, + + async getDeptList() { // getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => { // this.deptList = response.data.records; @@ -426,22 +475,16 @@ export default { }, // 获取列表信息 - async getList(val){ - // await this.getDeptList() - let dateRange = [] - if (this.beginTime && this.endTime) { - dateRange.push(this.beginTime.toLocaleDateString()) - dateRange.push(this.endTime.toLocaleDateString()) - } - getTradingPageApi(this.addDateRange(this.queryParams,dateRange)).then( response => { + async getList(val) { + transactionList(this.queryParams).then(response => { this.orderList = response.data.records; this.total = response.data.total; this.isSysDate = false - // this.getDeptList() - this.getOrderStatistics() - }) }, + + + getOrdersInfo(data) { this.dialogVisible = true; this.ordersInfo = data diff --git a/fuintAdmin/src/views/notificationList/index.vue b/fuintAdmin/src/views/notificationList/index.vue index bdbdce4b3..36ab9d4cb 100644 --- a/fuintAdmin/src/views/notificationList/index.vue +++ b/fuintAdmin/src/views/notificationList/index.vue @@ -123,7 +123,7 @@ export default { } .table-box { width: 100%; - height: 66vh; + height: 81vh; overflow: auto; background: #FFF; box-sizing: border-box; @@ -133,7 +133,8 @@ export default { } .hui_box{ box-sizing: border-box; - padding: 15px; + padding: 10px; + padding-bottom: 0px; background: #f6f8f9; } .top-box{ diff --git a/fuintAdmin/src/views/power/page/mode.vue b/fuintAdmin/src/views/power/page/mode.vue index bfbc704fd..a799169d5 100644 --- a/fuintAdmin/src/views/power/page/mode.vue +++ b/fuintAdmin/src/views/power/page/mode.vue @@ -87,14 +87,14 @@ - + - + - + @@ -104,7 +104,7 @@ - + @@ -115,7 +115,7 @@ - + @@ -125,7 +125,7 @@ - + 取消 - 保存 + 保存 @@ -206,6 +206,24 @@ export default { legalRepresentativeContact: '', appStatus: '', }, + rules: { + notificationName: [ + { required: true, message: '不能为空', trigger: 'blur' }, + ], + notificationType:[ + { required: true, message: '不能为空', trigger: 'blur' }, + ], + templateContent:[ + { required: true, message: '不能为空', trigger: 'blur' }, + ], + recipientRoles:[ + { required: true, message: '不能为空', trigger: 'blur' }, + ], + conditions:[ + { required: true, message: '不能为空', trigger: 'blur' }, + ], + }, + roleList: [], }; }, @@ -264,38 +282,34 @@ export default { // }); // }, - handleSubmit() { - this.open = false + handleSubmit(formName) { + + this.$refs[formName].validate((valid) =>{ + if (valid) { + // 表单验证通过,可以提交数据 + this.open = false + if (this.form.id) { + updateSysNotifyApi(this.form).then(res => { + if (res.code === 200) { + this.getList() + this.open = false + } + }) + } else { + saveSysNotifyApi(this.form).then(res => { + if (res.code === 200) { + this.getList() + this.open = false + } + }) + } + + } + + }) + - // 在这里调用接口提交设备信息数据 - console.log('提交设备信息数据:', this.form); - if (this.form.conditions.length === 0 || this.form.conditions[0].field == '') { - this.form.conditions = '' - this.$message({ - type: 'info', - message: '请选择发送条件!' - }); - return - } else { - this.form.conditions = JSON.stringify(this.form.conditions) - } - this.form.recipientRoles = JSON.stringify(this.form.recipientRoles) - if (this.form.id) { - updateSysNotifyApi(this.form).then(res => { - if (res.code === 200) { - this.getList() - this.open = false - } - }) - } else { - saveSysNotifyApi(this.form).then(res => { - if (res.code === 200) { - this.getList() - this.open = false - } - }) - } }, handleReset() { this.open = false diff --git a/fuintAdmin/src/views/shopowner.vue b/fuintAdmin/src/views/shopowner.vue index c0ef95a0e..657d9154a 100644 --- a/fuintAdmin/src/views/shopowner.vue +++ b/fuintAdmin/src/views/shopowner.vue @@ -66,7 +66,7 @@ range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" - @blur="getStoreAmount"> + > @@ -277,6 +277,11 @@ export default props: ["accountId"], data() { return { + //数据分析 饼状图 + chart:null, + chart1:null, + chart2:null, + amountList: [ // "今日" , // "昨日" , @@ -345,15 +350,20 @@ export default dataShows: {}, } }, + watch: { + value1: function (newValue, oldValue) { + this.getDataAnalysis() + this.getStoreAmount() + }, + }, created() { + let nowDate = new Date(); let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000) this.value1 = [parseTime(oneWeekAgo), parseTime(nowDate)] this.countValue = [parseTime(oneWeekAgo), parseTime(nowDate)] this.showValue = [parseTime(oneWeekAgo), parseTime(nowDate)] this.getStoreTotal() - // this.selectChildByDeptIdApi() - this.getStoreAmount() this.selectBannerList() let start = new Date(); start.setHours(0) @@ -365,13 +375,17 @@ export default this.getHardwareList() this.getNoticeList() this.getEmployeList() + //数据看板 + this.getStoreAmount() this.getDataAnalysis() + // this.getDataShow() this.getDataCount() }, mounted() { setTimeout(() => { this.initChart(); + this.initChartPieChart(); }, 2000); }, @@ -407,8 +421,6 @@ export default } else if (command == '自定义') { this.disabled = false } - this.getStoreAmount() - this.getDataAnalysis() }, goList() { this.$router.push('/notificationList/index') @@ -608,29 +620,38 @@ export default } }) }, - // 获取数据分析信息 + // 数据看板 油品 会员充值 商品 积分 统计数据 + getStoreAmount() { + let data = { + startTime: this.value1[0], + endTime: this.value1[1] + } + getDataBoardNew(data).then(res => { + this.storeAmount = res.data + }) + }, + // 数据看板 三个饼状图 getDataAnalysis() { let data = { startTime: this.value1[0], endTime: this.value1[1] } - //获取第一个饼状图数据 - getOilPercentage(data).then(res => { - this.dataAnalysisOilNumberList = res.data - console.log("饼状图一数据",this.dataAnalysisOilNumberList ) - }) - //获取第二个饼状图数据 - getOilAndGoodsPercentage(data).then(res => { - this.dataAnalysisIfOilList = res.data - console.log("饼状图二数据",this.dataAnalysisIfOilList) - }) - //获取第三个饼状图数据 - getOilAndGoodsAndVipAndPoints(data).then(res => { - this.dataAnalysisAllList = res.data - console.log("饼状图三数据",this.dataAnalysisAllList ) - }) - // - // this.initChart() + + Promise.all([ + getOilPercentage(data), + getOilAndGoodsPercentage(data), + getOilAndGoodsAndVipAndPoints(data) + ]).then(([res1, res2, res3]) => { + + this.dataAnalysisOilNumberList = res1.data; + this.dataAnalysisIfOilList = res2.data; + this.dataAnalysisAllList = res3.data; + + this.initChartPieChartUpdate(); + }).catch(error => { + console.error('Error fetching data:', error); + }); + }, //油站首页数据展示 getDataShow() { @@ -687,7 +708,7 @@ export default this.queryParams.ancestors = item.ancestors } }) - this.getStoreAmount() + this.getDataAnalysis() }, // banner图 selectBannerList() { @@ -713,27 +734,13 @@ export default this.storeTotal = res.data }) }, - getStoreAmount() { - let data = { - startTime: this.value1[0], - endTime: this.value1[1] - } - getDataBoardNew(data).then(res => { - this.storeAmount = res.data - this.getDataAnalysis() - this.initChart() - }) - - }, countPercentage(upNum, downNum) { let percentage = 0; percentage = (upNum / downNum) * 100 return percentage.toFixed(2) }, initChart() { - const chart = echarts.init(document.getElementById('ccc')) - const chart1 = echarts.init(document.getElementById('cccc')) - const chart2 = echarts.init(document.getElementById('ccct')) + const chart3 = echarts.init(document.getElementById('ctct')) const chart4 = echarts.init(document.getElementById('cccf')) let dataList = [] @@ -801,6 +808,124 @@ export default showCount.push(a) }) + + const option3 = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'cross', + crossStyle: { + color: '#999' + } + } + }, + legend: { + data: this.dataCount.oilNames, + left: 'right' + }, + xAxis: [ + { + type: 'category', + // data: ['中建锦绣广场1站', '中建锦绣广场2站', '中建锦绣广场3站', '中建锦绣广场4站', '中建锦绣广场5站', '中建锦绣广场6站', '中建锦绣广场7站'], + data: times, + axisPointer: { + type: 'shadow' + }, + axisLabel: { + interval: 0, + // rotate: 30 + } + } + ], + yAxis: [ + { + type: 'value', + name: '金额(元)', + // min: 0, + // max: 10000, + // interval: 2000, + axisLabel: { + formatter: '{value}' + } + } + + ], + dataset: { + source: count + }, + + series: countType, + grid: { + left: '3%', + right: '3%', + bottom: '3%', + containLabel: true + } + }; + const option4 = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'cross', + crossStyle: { + color: '#999' + } + } + }, + legend: { + data: this.dataShows.oilNames, + left: 'right' + + }, + xAxis: [ + { + type: 'category', + data: showTimes, + axisPointer: { + type: 'shadow' + }, + axisLabel: { + interval: 0, + // rotate: 30 + } + } + ], + yAxis: [ + { + type: 'value', + name: '金额(元)', + axisLabel: { + formatter: '{value}' + } + } + ], + dataset: { + source: showCount + }, + series: showCountType, + grid: { + left: '3%', + right: '3%', + bottom: '5%', + containLabel: true + } + }; + + + chart3.setOption(option3) + chart4.setOption(option4) + + }, + + //数据分析 饼状图 ECharts 图初始化 + initChartPieChart(){ + this.chart = echarts.init(document.getElementById('ccc')) + this.chart1 = echarts.init(document.getElementById('cccc')) + this.chart2 = echarts.init(document.getElementById('ccct')) + this.initChartPieChartUpdate() + }, + //数据分析 饼状图 ECharts 渲染 + initChartPieChartUpdate(){ const option = { color: [ '#36b713', @@ -922,115 +1047,9 @@ export default } ] }; - - const option3 = { - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'cross', - crossStyle: { - color: '#999' - } - } - }, - legend: { - data: this.dataCount.oilNames, - left: 'right' - }, - xAxis: [ - { - type: 'category', - // data: ['中建锦绣广场1站', '中建锦绣广场2站', '中建锦绣广场3站', '中建锦绣广场4站', '中建锦绣广场5站', '中建锦绣广场6站', '中建锦绣广场7站'], - data: times, - axisPointer: { - type: 'shadow' - }, - axisLabel: { - interval: 0, - // rotate: 30 - } - } - ], - yAxis: [ - { - type: 'value', - name: '金额(元)', - // min: 0, - // max: 10000, - // interval: 2000, - axisLabel: { - formatter: '{value}' - } - } - - ], - dataset: { - source: count - }, - - series: countType, - grid: { - left: '3%', - right: '3%', - bottom: '3%', - containLabel: true - } - }; - const option4 = { - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'cross', - crossStyle: { - color: '#999' - } - } - }, - legend: { - data: this.dataShows.oilNames, - left: 'right' - - }, - xAxis: [ - { - type: 'category', - data: showTimes, - axisPointer: { - type: 'shadow' - }, - axisLabel: { - interval: 0, - // rotate: 30 - } - } - ], - yAxis: [ - { - type: 'value', - name: '金额(元)', - axisLabel: { - formatter: '{value}' - } - } - ], - dataset: { - source: showCount - }, - series: showCountType, - grid: { - left: '3%', - right: '3%', - bottom: '5%', - containLabel: true - } - }; - - chart.setOption(option) - chart1.setOption(option1) - chart2.setOption(option2) - chart3.setOption(option3) - chart4.setOption(option4) - + if (this.chart) this.chart.setOption(option); + if (this.chart1) this.chart1.setOption(option1); + if (this.chart2) this.chart2.setOption(option2); }, @@ -1252,7 +1271,7 @@ export default background: #fff; box-sizing: border-box; padding: 20px; - margin-top: 20px; + margin-top:15px; } .anniu-h { diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/AllOrderInfoMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/AllOrderInfoMapper.xml index 71cddb122..ec9d361ea 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/AllOrderInfoMapper.xml +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/AllOrderInfoMapper.xml @@ -856,6 +856,7 @@ SELECT ai.*, mu.NAME AS userName, + mu.mobile AS userMobile, mc.merchant_name as merchantName, mt.account_name as createBy FROM