Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
2e0aa8c693
@ -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>
|
||||||
|
@ -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
|
||||||
|
@ -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{
|
||||||
|
@ -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
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user