Merge remote-tracking branch 'origin/main'

This commit is contained in:
sw 2024-11-06 08:39:03 +08:00
commit 2e0aa8c693
6 changed files with 330 additions and 252 deletions

View File

@ -166,7 +166,7 @@
<span v-else-if="scope.row.type=='3'">储值卡</span> <span v-else-if="scope.row.type=='3'">储值卡</span>
<span v-else-if="scope.row.type=='4'">积分</span> <span v-else-if="scope.row.type=='4'">积分</span>
<span v-else-if="scope.row.type=='5'">囤油卡</span> <span v-else-if="scope.row.type=='5'">囤油卡</span>
<span v-else-if="scope.row.type=='6'">油品加商品(收银台订单)</span> <span v-else-if="scope.row.type=='6'">收银台订单</span>
<span v-else-if="scope.row.type=='7'">挂账订单</span> <span v-else-if="scope.row.type=='7'">挂账订单</span>
<span v-else="">其他</span> <span v-else="">其他</span>
</template> </template>

View File

@ -15,9 +15,27 @@
<el-option label="小程序" value="applet"/> <el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/> <el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/> <el-option label="POS端" value="POS"/>
<el-option label="平台" value="PC"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="" prop="payChannel"> <el-form-item label="" prop="payChannel">
<el-select
v-model="queryParams.type"
clearable
placeholder="请选择订单分类"
>
<el-option label="油品" value="1"/>
<el-option label="商品" value="2"/>
<el-option label="储值卡" value="3"/>
<el-option label="积分" value="4"/>
<el-option label="囤油卡" value="5"/>
<el-option label="收银台订单" value="6"/>
<el-option label="挂账订单" value="7"/>
<el-option label="pos" value="8"/>
</el-select>
</el-form-item>
<!-- <el-form-item label="" prop="payChannel">
<el-select <el-select
v-model="queryParams.payChannel" v-model="queryParams.payChannel"
clearable clearable
@ -27,7 +45,7 @@
<el-option label="收银台" value="cashier"/> <el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/> <el-option label="POS端" value="POS"/>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item label="" prop="payType"> <el-form-item label="" prop="payType">
@ -42,7 +60,7 @@
<el-option label="余额" value="balance"/> <el-option label="余额" value="balance"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="" prop="payType"> <!-- <el-form-item label="" prop="payType">
<el-select <el-select
v-model="queryParams.payType" v-model="queryParams.payType"
clearable clearable
@ -53,7 +71,19 @@
<el-option label="支付宝" value="ALIPAY"/> <el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/> <el-option label="余额" value="balance"/>
</el-select> </el-select>
</el-form-item> -->
<el-form-item label="" prop="paymentChannel">
<el-select v-model="queryParams.paymentChannel" placeholder="请选择支付渠道" clearable>
<el-option
v-for="dicts in this.dict"
:key="dicts.dictValue"
:label="dicts.dictLabel"
:value="dicts.dictValue"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="" prop="status"> <el-form-item label="" prop="status">
<el-select <el-select
v-model="queryParams.status" v-model="queryParams.status"
@ -63,122 +93,114 @@
<el-option label="已支付" value="paid"/> <el-option label="已支付" value="paid"/>
<el-option label="未支付" value="unpaid"/> <el-option label="未支付" value="unpaid"/>
<el-option label="已退款" value="refund"/> <el-option label="已退款" value="refund"/>
<el-option label="支付失败" value="payFail"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="" style="margin-right: 0px" prop="status"> <el-form-item label="" prop="staffId">
<el-select <el-select v-model="queryParams.staffId" placeholder="请选择员工" clearable>
v-model="queryParams.status" <el-option
clearable v-for="dicts in this.staffList"
placeholder="请选择员工" :key="dicts.acctId"
> :label="dicts.accountName"
<el-option label="已支付" value="paid"/> :value="dicts.acctId"
<el-option label="未支付" value="unpaid"/> />
<el-option label="已退款" value="refund"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="" prop="status">
<el-select <el-form-item label="" prop="userName">
v-model="queryParams.status" <el-input v-model="queryParams.userName" placeholder="请输入付款用户"></el-input>
clearable
placeholder="请输入付款用户"
>
<el-option label="已支付" value="paid"/>
<el-option label="未支付" value="unpaid"/>
<el-option label="已退款" value="refund"/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
<el-date-picker <el-date-picker
v-model="beginTime" v-model="queryParams.dataRange"
style="width: 140px" type="daterange"
type="date" range-separator="至"
placeholder="交易开始日期"> start-placeholder="开始日期"
</el-date-picker> end-placeholder="结束日期"
format="yyyy-MM-dd"
<el-date-picker value-format="yyyy-MM-dd"
v-model="endTime" >
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item style="float: right; margin-right: 0px "> <el-form-item style="float: right; margin-right: 0px ">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
<el-button type="primary" icon="el-icon-search" >导出</el-button> <el-button type="primary" icon="el-icon-search" @click="exportExcelCashier">导出</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="wit_box" > <div class="wit_box" >
<div class="box-gang"> <div class="box-gang">
<div class="box"> <div class="box">
<el-tooltip class="item" effect="dark" content="999999/999999999999" placement="top-start" > <el-tooltip class="item" effect="dark" content="微信收款(元)/ 笔数" placement="top-start" >
<div class="size-bole">{{ wechat}}/{{ wechats}}</div> <div class="size-bole">{{ wechat}}/{{ wechats}}</div>
</el-tooltip> </el-tooltip>
<div class="size-hui"> <div class="size-hui">
<div class="dian" style="background: #0DC291"></div> <div class="dian" style="background: #0DC291"></div>
<div class="nei">微信收款/笔数</div> <div class="nei">微信收款/ 笔数</div>
</div> </div>
</div> </div>
<div class="box"> <div class="box">
<el-tooltip class="item" effect="dark" content="999999/999999999999" placement="top-start"> <el-tooltip class="item" effect="dark" content="支付宝收款(元)/ 笔数" placement="top-start">
<div class="size-bole" style="color:#00CAFF;">{{ orderStatistics.alipay?orderStatistics.alipay:0 }}/0</div> <div class="size-bole" style="color:#00CAFF;">{{ orderStatistics.alipay?orderStatistics.alipay:0 }}/0</div>
</el-tooltip> </el-tooltip>
<div class="size-hui"> <div class="size-hui">
<div class="dian" style="background: #00CAFF"></div> <div class="dian" style="background: #00CAFF"></div>
<div class="nei">支付宝收款/笔数</div> <div class="nei">支付宝收款/ 笔数</div>
</div> </div>
</div> </div>
<div class="box"> <div class="box">
<el-tooltip class="item" effect="dark" content="999999/999999999999" placement="top-start"> <el-tooltip class="item" effect="dark" content="云闪付收款(元)/ 笔数" placement="top-start">
<div class="size-bole" style="color:#F44522;" >{{ orderStatistics.balance?orderStatistics.balance:0 }}/0</div> <div class="size-bole" style="color:#F44522;" >{{ orderStatistics.balance?orderStatistics.balance:0 }}/0</div>
</el-tooltip> </el-tooltip>
<div class="size-hui"> <div class="size-hui">
<div class="dian" style="background: #F44522"></div> <div class="dian" style="background: #F44522"></div>
<div class="nei">云闪付收款/笔数</div> <div class="nei">云闪付收款/ 笔数</div>
</div> </div>
</div> </div>
<div class="box"> <div class="box">
<el-tooltip class="item" effect="dark" content="999999/999999999999" placement="top-start"> <el-tooltip class="item" effect="dark" content="pos机收款/ 笔数" placement="top-start">
<div class="size-bole" style="color:#FF7E00;" >{{orderStatistics.balanceCount?orderStatistics.balanceCount:0}}/0</div> <div class="size-bole" style="color:#FF7E00;" >{{orderStatistics.balanceCount?orderStatistics.balanceCount:0}}/0</div>
</el-tooltip> </el-tooltip>
<div class="size-hui"> <div class="size-hui">
<div class="dian" style="background: #FF7E00"></div> <div class="dian" style="background: #FF7E00"></div>
<div class="nei">pos机收款/笔数</div> <div class="nei">pos机收款/ 笔数</div>
</div> </div>
</div> </div>
<div class="box"> <div class="box">
<el-tooltip class="item" effect="dark" content="999999/999999999999" placement="top-start"> <el-tooltip class="item" effect="dark" content="现金收款(元)/ 笔数" placement="top-start">
<div class="size-bole" style="color:#0D2ED8;">{{ orderStatistics.cash?orderStatistics.cash:0 }}/0</div> <div class="size-bole" style="color:#0D2ED8;">{{ orderStatistics.cash?orderStatistics.cash:0 }}/0</div>
</el-tooltip> </el-tooltip>
<div class="size-hui"> <div class="size-hui">
<div class="dian" style="background: #0D2ED8"></div> <div class="dian" style="background: #0D2ED8"></div>
<div class="nei">现金收款/笔数</div> <div class="nei">现金收款/ 笔数</div>
</div> </div>
</div> </div>
<div class="box"> <div class="box">
<el-tooltip class="item" effect="dark" content="999999/999999999999" placement="top-start"> <el-tooltip class="item" effect="dark" content="会员消费(元)/ 笔数" placement="top-start">
<div class="size-bole" style="color:#790DD8;">{{orderStatistics.cashcount?orderStatistics.cashcount:0}}/0</div> <div class="size-bole" style="color:#790DD8;">{{orderStatistics.cashcount?orderStatistics.cashcount:0}}/0</div>
</el-tooltip> </el-tooltip>
<div class="size-hui"> <div class="size-hui">
<div class="dian" style="background: #790DD8"></div> <div class="dian" style="background: #790DD8"></div>
<div class="nei">会员消费/笔数</div> <div class="nei">会员消费/ 笔数</div>
</div> </div>
</div> </div>
<div class="box"> <div class="box">
<el-tooltip class="item" effect="dark" content="999999/999999999999" placement="top-start"> <el-tooltip class="item" effect="dark" content="挂帐收款(元)/ 笔数" placement="top-start">
<div class="size-bole" style="color:#D80D54;">999999/999999999999</div> <div class="size-bole" style="color:#D80D54;">0/0</div>
</el-tooltip> </el-tooltip>
<div class="size-hui"> <div class="size-hui">
<div class="dian" style="background: #D80D54"></div> <div class="dian" style="background: #D80D54"></div>
<div class="nei">挂帐收款/笔数</div> <div class="nei">挂帐收款/ 笔数</div>
</div> </div>
</div> </div>
</div> </div>
@ -225,7 +247,7 @@
<span type="danger" v-else>--</span> <span type="danger" v-else>--</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="userName" align="center" label="用户手机号" > </el-table-column> <el-table-column prop="userMobile" align="center" label="用户手机号" > </el-table-column>
<el-table-column prop="payType" align="center" label="支付方式"> <el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span> <span v-if="scope.row.payType=='CASH'">现金</span>
@ -319,15 +341,22 @@ import {
exportExcelTradingApi, getmyDataApi, exportExcelTradingApi, getmyDataApi,
getRunningWaterByTissueApi, getRunningWaterByTissueApi,
getTissueByDataApi, getTissueByDataApi,
getTradingPageApi getTradingPageApi,
transactionList,
getDicts,
getStaffByStorId
} from "@/api/allOrder"; } from "@/api/allOrder";
export default { export default {
name: "reconciliation-trading", name: "reconciliation-trading",
data(){ data(){
return{ return{
wechat:999999999999999,
wechats:999999999999999, dict:{},
wechat:0,
wechats:0,
radio1:"油号选错", radio1:"油号选错",
loading:false, loading:false,
dialogVisible:false, dialogVisible:false,
@ -387,8 +416,28 @@ export default {
// this.getList(); // this.getList();
this.getDicts();
this.getStaffByStorId();
}, },
methods:{ 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() { async getDeptList() {
// getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => { // getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
// this.deptList = response.data.records; // this.deptList = response.data.records;
@ -426,22 +475,16 @@ export default {
}, },
// //
async getList(val){ async getList(val) {
// await this.getDeptList() transactionList(this.queryParams).then(response => {
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 => {
this.orderList = response.data.records; this.orderList = response.data.records;
this.total = response.data.total; this.total = response.data.total;
this.isSysDate = false this.isSysDate = false
// this.getDeptList()
this.getOrderStatistics()
}) })
}, },
getOrdersInfo(data) { getOrdersInfo(data) {
this.dialogVisible = true; this.dialogVisible = true;
this.ordersInfo = data this.ordersInfo = data

View File

@ -123,7 +123,7 @@ export default {
} }
.table-box { .table-box {
width: 100%; width: 100%;
height: 66vh; height: 81vh;
overflow: auto; overflow: auto;
background: #FFF; background: #FFF;
box-sizing: border-box; box-sizing: border-box;
@ -133,7 +133,8 @@ export default {
} }
.hui_box{ .hui_box{
box-sizing: border-box; box-sizing: border-box;
padding: 15px; padding: 10px;
padding-bottom: 0px;
background: #f6f8f9; background: #f6f8f9;
} }
.top-box{ .top-box{

View File

@ -87,14 +87,14 @@
</div> </div>
<el-dialog center :title="title" :close-on-click-modal="false" :visible.sync="open" width="42%" append-to-body> <el-dialog center :title="title" :close-on-click-modal="false" :visible.sync="open" width="42%" append-to-body>
<el-form :model="form" label-width="80px" > <el-form ref="form" :model="form" :rules="rules" label-width="80px" >
<!-- 通知名称 --> <!-- 通知名称 -->
<el-form-item label="通知名称" :required="true"> <el-form-item label="通知名称" prop="notificationName" :required="true">
<el-input v-model="form.notificationName" placeholder="请输入通知名称" ></el-input> <el-input v-model="form.notificationName" placeholder="请输入通知名称" ></el-input>
</el-form-item> </el-form-item>
<!-- 通知类型 --> <!-- 通知类型 -->
<el-form-item label="通知类型" :required="true"> <el-form-item label="通知类型" prop="notificationType" :required="true">
<el-select v-model="form.notificationType" placeholder="请选择通知类型" style="width: 100%"> <el-select v-model="form.notificationType" placeholder="请选择通知类型" style="width: 100%">
<el-option label="到期通知" value="到期通知"></el-option> <el-option label="到期通知" value="到期通知"></el-option>
<el-option label="库存预警" value="库存预警"></el-option> <el-option label="库存预警" value="库存预警"></el-option>
@ -104,7 +104,7 @@
</el-form-item> </el-form-item>
<!-- 通知模板 --> <!-- 通知模板 -->
<el-form-item label="通知模板" :required="true"> <el-form-item label="通知模板" prop="templateContent" :required="true">
<el-input type="textarea" v-model="form.templateContent" :rows="3" placeholder="请输入通知内容" <el-input type="textarea" v-model="form.templateContent" :rows="3" placeholder="请输入通知内容"
:maxlength="200" show-word-limit ></el-input> :maxlength="200" show-word-limit ></el-input>
<div> <div>
@ -115,7 +115,7 @@
</div> </div>
</el-form-item> </el-form-item>
<!-- 接收角色 --> <!-- 接收角色 -->
<el-form-item label="接收角色" :required="true"> <el-form-item label="接收角色" prop="recipientRoles" :required="true">
<el-select v-model="form.recipientRoles" multiple placeholder="请选择角色" style="width: 100%"> <el-select v-model="form.recipientRoles" multiple placeholder="请选择角色" style="width: 100%">
<el-option v-for="item in dutyList1" :label="item.dutyName" :value="item.dutyId"></el-option> <el-option v-for="item in dutyList1" :label="item.dutyName" :value="item.dutyId"></el-option>
</el-select> </el-select>
@ -125,7 +125,7 @@
<el-switch v-model="form.templateStatus" active-color="#13ce66" inactive-color="#ff4949"></el-switch> <el-switch v-model="form.templateStatus" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
</el-form-item> </el-form-item>
<!-- 发送条件 --> <!-- 发送条件 -->
<el-form-item label="发送条件" style="margin-bottom: 10px" :required="true"> <el-form-item label="发送条件" prop="conditions" style="margin-bottom: 10px" :required="true">
<div v-for="(condition, index) in form.conditions" :key="index" class="condition-group" <div v-for="(condition, index) in form.conditions" :key="index" class="condition-group"
style="margin-bottom: 10px"> style="margin-bottom: 10px">
<el-select v-model="condition.field" placeholder="请选择条件" style="width: 35%;margin-right: 10px" <el-select v-model="condition.field" placeholder="请选择条件" style="width: 35%;margin-right: 10px"
@ -151,7 +151,7 @@
</el-form> </el-form>
<div style="display: flex; justify-content: center; align-items: center;margin-top: 30px"> <div style="display: flex; justify-content: center; align-items: center;margin-top: 30px">
<el-button @click="handleReset">取消</el-button> <el-button @click="handleReset">取消</el-button>
<el-button type="primary" @click="handleSubmit">保存</el-button> <el-button type="primary" @click="handleSubmit('form' )">保存</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@ -206,6 +206,24 @@ export default {
legalRepresentativeContact: '', legalRepresentativeContact: '',
appStatus: '', 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: [], roleList: [],
}; };
}, },
@ -264,38 +282,34 @@ export default {
// }); // });
// }, // },
handleSubmit() { handleSubmit(formName) {
this.open = false
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() { handleReset() {
this.open = false this.open = false

View File

@ -66,7 +66,7 @@
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@blur="getStoreAmount"> >
</el-date-picker> </el-date-picker>
</div> </div>
</div> </div>
@ -277,6 +277,11 @@ export default
props: ["accountId"], props: ["accountId"],
data() { data() {
return { return {
//
chart:null,
chart1:null,
chart2:null,
amountList: [ amountList: [
// "" , // "" ,
// "" , // "" ,
@ -345,15 +350,20 @@ export default
dataShows: {}, dataShows: {},
} }
}, },
watch: {
value1: function (newValue, oldValue) {
this.getDataAnalysis()
this.getStoreAmount()
},
},
created() { created() {
let nowDate = new Date(); let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000) let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
this.value1 = [parseTime(oneWeekAgo), parseTime(nowDate)] this.value1 = [parseTime(oneWeekAgo), parseTime(nowDate)]
this.countValue = [parseTime(oneWeekAgo), parseTime(nowDate)] this.countValue = [parseTime(oneWeekAgo), parseTime(nowDate)]
this.showValue = [parseTime(oneWeekAgo), parseTime(nowDate)] this.showValue = [parseTime(oneWeekAgo), parseTime(nowDate)]
this.getStoreTotal() this.getStoreTotal()
// this.selectChildByDeptIdApi()
this.getStoreAmount()
this.selectBannerList() this.selectBannerList()
let start = new Date(); let start = new Date();
start.setHours(0) start.setHours(0)
@ -365,13 +375,17 @@ export default
this.getHardwareList() this.getHardwareList()
this.getNoticeList() this.getNoticeList()
this.getEmployeList() this.getEmployeList()
//
this.getStoreAmount()
this.getDataAnalysis() this.getDataAnalysis()
//
this.getDataShow() this.getDataShow()
this.getDataCount() this.getDataCount()
}, },
mounted() { mounted() {
setTimeout(() => { setTimeout(() => {
this.initChart(); this.initChart();
this.initChartPieChart();
}, 2000); }, 2000);
}, },
@ -407,8 +421,6 @@ export default
} else if (command == '自定义') { } else if (command == '自定义') {
this.disabled = false this.disabled = false
} }
this.getStoreAmount()
this.getDataAnalysis()
}, },
goList() { goList() {
this.$router.push('/notificationList/index') 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() { getDataAnalysis() {
let data = { let data = {
startTime: this.value1[0], startTime: this.value1[0],
endTime: this.value1[1] endTime: this.value1[1]
} }
//
getOilPercentage(data).then(res => { Promise.all([
this.dataAnalysisOilNumberList = res.data getOilPercentage(data),
console.log("饼状图一数据",this.dataAnalysisOilNumberList ) getOilAndGoodsPercentage(data),
}) getOilAndGoodsAndVipAndPoints(data)
// ]).then(([res1, res2, res3]) => {
getOilAndGoodsPercentage(data).then(res => {
this.dataAnalysisIfOilList = res.data this.dataAnalysisOilNumberList = res1.data;
console.log("饼状图二数据",this.dataAnalysisIfOilList) this.dataAnalysisIfOilList = res2.data;
}) this.dataAnalysisAllList = res3.data;
//
getOilAndGoodsAndVipAndPoints(data).then(res => { this.initChartPieChartUpdate();
this.dataAnalysisAllList = res.data }).catch(error => {
console.log("饼状图三数据",this.dataAnalysisAllList ) console.error('Error fetching data:', error);
}) });
//
// this.initChart()
}, },
// //
getDataShow() { getDataShow() {
@ -687,7 +708,7 @@ export default
this.queryParams.ancestors = item.ancestors this.queryParams.ancestors = item.ancestors
} }
}) })
this.getStoreAmount() this.getDataAnalysis()
}, },
// banner // banner
selectBannerList() { selectBannerList() {
@ -713,27 +734,13 @@ export default
this.storeTotal = res.data 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) { countPercentage(upNum, downNum) {
let percentage = 0; let percentage = 0;
percentage = (upNum / downNum) * 100 percentage = (upNum / downNum) * 100
return percentage.toFixed(2) return percentage.toFixed(2)
}, },
initChart() { 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 chart3 = echarts.init(document.getElementById('ctct'))
const chart4 = echarts.init(document.getElementById('cccf')) const chart4 = echarts.init(document.getElementById('cccf'))
let dataList = [] let dataList = []
@ -801,6 +808,124 @@ export default
showCount.push(a) 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 = { const option = {
color: [ color: [
'#36b713', '#36b713',
@ -922,115 +1047,9 @@ export default
} }
] ]
}; };
if (this.chart) this.chart.setOption(option);
const option3 = { if (this.chart1) this.chart1.setOption(option1);
tooltip: { if (this.chart2) this.chart2.setOption(option2);
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)
}, },
@ -1252,7 +1271,7 @@ export default
background: #fff; background: #fff;
box-sizing: border-box; box-sizing: border-box;
padding: 20px; padding: 20px;
margin-top: 20px; margin-top:15px;
} }
.anniu-h { .anniu-h {

View File

@ -856,6 +856,7 @@
SELECT SELECT
ai.*, ai.*,
mu.NAME AS userName, mu.NAME AS userName,
mu.mobile AS userMobile,
mc.merchant_name as merchantName, mc.merchant_name as merchantName,
mt.account_name as createBy mt.account_name as createBy
FROM FROM