This commit is contained in:
DESKTOP-369JRHT\12997 2024-07-18 14:24:58 +08:00
parent 8a86d5b0e9
commit f7967ec64c
26 changed files with 4468 additions and 0 deletions

View File

@ -0,0 +1,39 @@
import request from '@/utils/request'
// 分页查询所有的订单信息
export function getAppListApi(query) {
return request({
url: 'sys/sysApp/queryByPage',
method: 'get',
params: query
})
}
//
export function deleteAppApi(AppId) {
return request({
url: 'sys/sysApp/' + AppId,
method: 'delete'
})
}
//
export function saveAppApi(data) {
return request({
url: 'sys/sysApp',
method: 'post',
data: data
})
}
// 保存修改信息
export function updateAppApi(data) {
return request({
url: 'sys/sysApp',
method: 'put',
data: data
})
}

View File

@ -0,0 +1,37 @@
import request from '@/utils/request'
// 分页查询所有的订单信息
export function getBannerListApi(query) {
return request({
url: 'sys/sysBanner/queryByPage',
method: 'get',
params: query
})
}
//
export function deleteBannerApi(bannerId) {
return request({
url: 'sys/sysBanner/' + bannerId,
method: 'delete'
})
}
//
export function saveBannerApi(data) {
return request({
url: 'sys/sysBanner',
method: 'post',
data: data
})
}
// 保存修改信息
export function updateBannerApi(data) {
return request({
url: 'sys/sysBanner',
method: 'put',
data: data
})
}

View File

@ -0,0 +1,122 @@
<template>
<div class="app-center">
<div class="app-top">
<el-card :body-style="{ padding: '0px' }">
<div class="box">
<div class="nbox" :class="pointerClass" @click="updateRedio('会员充值订单')">
<div class="fount-box" :style="{ color: radio1 === '会员充值订单' ? '#FF770F' : '#999999' }">会员充值订单</div>
<div class="heng-box" v-if="radio1 == '会员充值订单'"></div>
<div class="heng-box" style="background-color: #FFFFFF" v-else></div>
</div>
<div class="nbox" :class="pointerClass" @click="updateRedio('油品交易订单')">
<div class="fount-box" :style="{ color: radio1 === '油品交易订单' ? '#FF770F' : '#999999' }">油品交易订单</div>
<div class="heng-box" v-if="radio1 == '油品交易订单'"></div>
<div class="heng-box" style="background-color: #FFFFFF" v-else></div>
</div>
<div class="nbox" :class="pointerClass" @click="updateRedio('便利店订单')">
<div class="fount-box" :style="{ color: radio1 === '便利店订单' ? '#FF770F' : '#999999' }">便利店订单</div>
<div class="heng-box" v-if="radio1 == '便利店订单'"></div>
<div class="heng-box" style="background-color: #FFFFFF" v-else></div>
</div>
<div class="nbox" :class="pointerClass" @click="updateRedio('积分兑换订单')">
<div class="fount-box" :style="{ color: radio1 === '积分兑换订单' ? '#FF770F' : '#999999' }">积分兑换订单</div>
<div class="heng-box" v-if="radio1 == '积分兑换订单'"></div>
<div class="heng-box" style="background-color: #FFFFFF" v-else></div>
</div>
</div>
</el-card>
</div>
<jiaoyiduizhang-vip v-if="radio1 === '会员充值订单'"></jiaoyiduizhang-vip>
<jiaoyiduizhang-oil v-if="radio1 === '油品交易订单'"></jiaoyiduizhang-oil>
<jiaoyiduizhang-store v-if="radio1 === '便利店订单'"></jiaoyiduizhang-store>
<jiaoyiduizhang-int v-if="radio1 === '积分兑换订单'"></jiaoyiduizhang-int>
</div>
</template>
<script>
import JiaoyiduizhangVip from "@/views/financialStatement/jiaoyiduizhang/tab/vip.vue";
import JiaoyiduizhangInt from "@/views/financialStatement/jiaoyiduizhang/tab/int.vue";
import JiaoyiduizhangOil from "@/views/financialStatement/jiaoyiduizhang/tab/oil.vue";
import JiaoyiduizhangStore from "@/views/financialStatement/jiaoyiduizhang/tab/store.vue";
export default {
name: "jiaoyiduizhang-list1",
data(){
return{
radio1:'会员充值订单',
pointerClass() {
return 'pointer-cursor';
}
}
},
components:{
JiaoyiduizhangInt,
JiaoyiduizhangVip,
JiaoyiduizhangOil,
JiaoyiduizhangStore,
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
},
updateRedio(data) {
console.log(this.radio1)
this.radio1 = data
}
}
}
</script>
<style scoped>
.app-center{
width: 100%;
box-sizing: border-box;
//padding: 10px;
}
.app-top{
width: 100%;
//margin-bottom: 20px;
height: 60px;
box-sizing: border-box;
}
.el-card__body, .el-main {
padding: 0px;
}
.box{
cursor: pointer;
margin-top: 10px ;
margin-left: 50px;
//height: 40px;
display: flex;
background-color: #FFFFFF;
align-items: center;
//border: 1px solid #EBEEF5;
}
.nbox{
margin-left: 30px;
}
.fount-box{
font-size: 14px;
color: #999999
}
.fount-box2{
font-size: 14px;
color: #999999
}
.heng-box{
background-color: #FF770F;
width: 100%;
height: 2px;
margin-top: 10px;
}
</style>

View File

@ -0,0 +1,300 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<el-card class="box-card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="" prop="deptId" style="width: 180px">
<el-select
v-model="queryParams.deptId"
clearable
placeholder="所属机构"
>
<el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="请输入商品名称" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
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 label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="支付状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
<el-tag type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="商品名称" > </el-table-column>
<el-table-column prop="payTime" align="center" label="消耗积分" > </el-table-column>
<el-table-column prop="payTime" align="center" label="数量" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="getOrdersInfo(scope.row)"
type="success" plain round>详情</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
exportExcelTradingApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
export default {
name: "jiaoyiduizhang-int",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
//
staffList:[],
ordersInfo:{},
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
deptList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
},
total:0,
}
},
created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = start
this.endTime = new Date()
this.isSysDate = true
this.getList();
this.getDeptList();
},
methods:{
getDeptList() {
getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
this.deptList = response.data.records;
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
exportExcelTradingApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
},
//
getList(val){
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.total = response.data.total;
this.isSysDate = false
})
this.getOrderStatistics()
},
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
}
this.beginTime = ""
this.endTime = ""
this.handleQuery();
},
}
}
</script>
<style scoped>
.box-card{
width: 100%;
margin: 0px 20px 20px 20px;
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
.table-box{
width: 100%;
}
</style>

View File

@ -0,0 +1,292 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<el-card class="box-card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="" prop="deptId" style="width: 180px">
<el-select
v-model="queryParams.deptId"
clearable
placeholder="所属机构"
>
<el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="请输入油号" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
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 label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="支付状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
<el-tag type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="油号" > </el-table-column>
<el-table-column prop="payTime" align="center" label="油枪" > </el-table-column>
<el-table-column prop="payTime" align="center" label="升数" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
exportExcelTradingApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
export default {
name: "jiaoyiduizhang-oil",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
//
staffList:[],
ordersInfo:{},
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
deptList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
},
total:0,
}
},
created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = start
this.endTime = new Date()
this.isSysDate = true
this.getList();
this.getDeptList();
},
methods:{
getDeptList() {
getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
this.deptList = response.data.records;
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
exportExcelTradingApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
},
//
getList(val){
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.total = response.data.total;
this.isSysDate = false
})
this.getOrderStatistics()
},
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
}
this.beginTime = ""
this.endTime = ""
this.handleQuery();
},
}
}
</script>
<style scoped>
.box-card{
width: 100%;
margin: 0px 20px 20px 20px;
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
.table-box{
width: 100%;
}
</style>

View File

@ -0,0 +1,299 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<el-card class="box-card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="" prop="deptId" style="width: 180px">
<el-select
v-model="queryParams.deptId"
clearable
placeholder="所属机构"
>
<el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="请输入商品名称" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
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 label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="支付状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
<el-tag type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="商品品类" > </el-table-column>
<el-table-column prop="payTime" align="center" label="商品名称" > </el-table-column>
<el-table-column prop="payTime" align="center" label="数量" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="getOrdersInfo(scope.row)"
type="success" plain round>详情</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
exportExcelTradingApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
export default {
name: "jiaoyiduizhang-store",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
//
staffList:[],
ordersInfo:{},
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
deptList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
},
total:0,
}
},
created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = start
this.endTime = new Date()
this.isSysDate = true
this.getList();
this.getDeptList();
},
methods:{
getDeptList() {
getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
this.deptList = response.data.records;
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
exportExcelTradingApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
},
//
getList(val){
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.total = response.data.total;
this.isSysDate = false
})
this.getOrderStatistics()
},
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
}
this.beginTime = ""
this.endTime = ""
this.handleQuery();
},
}
}
</script>
<style scoped>
.box-card{
width: 100%;
margin: 0px 20px 20px 20px;
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
.table-box{
width: 100%;
}
</style>

View File

@ -0,0 +1,292 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<el-card class="box-card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="" prop="deptId" style="width: 180px">
<el-select
v-model="queryParams.deptId"
clearable
placeholder="所属机构"
>
<el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="会员手机号" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
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 label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="支付状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
<el-tag type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="会员名称" > </el-table-column>
<el-table-column prop="payTime" align="center" label="会员手机号" > </el-table-column>
<el-table-column prop="payTime" align="center" label="卡类型" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="createTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
exportExcelTradingApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
export default {
name: "jiaoyiduizhang-vip",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
//
staffList:[],
ordersInfo:{},
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
deptList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
},
total:0,
}
},
created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = start
this.endTime = new Date()
this.isSysDate = true
this.getList();
this.getDeptList();
},
methods:{
getDeptList() {
getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
this.deptList = response.data.records;
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
exportExcelTradingApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
},
//
getList(val){
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.total = response.data.total;
this.isSysDate = false
})
this.getOrderStatistics()
},
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
}
this.beginTime = ""
this.endTime = ""
this.handleQuery();
},
}
}
</script>
<style scoped>
.box-card{
width: 100%;
margin: 0px 20px 20px 20px;
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
.table-box{
width: 100%;
}
</style>

View File

@ -0,0 +1,122 @@
<template>
<div class="app-center">
<div class="app-top">
<el-card :body-style="{ padding: '0px' }">
<div class="box">
<div class="nbox" :class="pointerClass" @click="updateRedio('会员分析')">
<div class="fount-box" :style="{ color: radio1 === '会员分析' ? '#FF770F' : '#999999' }">会员分析</div>
<div class="heng-box" v-if="radio1 == '会员分析'"></div>
<div class="heng-box" style="background-color: #FFFFFF" v-else></div>
</div>
<div class="nbox" :class="pointerClass" @click="updateRedio('油品分析')">
<div class="fount-box" :style="{ color: radio1 === '油品分析' ? '#FF770F' : '#999999' }">油品分析</div>
<div class="heng-box" v-if="radio1 == '油品分析'"></div>
<div class="heng-box" style="background-color: #FFFFFF" v-else></div>
</div>
<div class="nbox" :class="pointerClass" @click="updateRedio('便利店分析')">
<div class="fount-box" :style="{ color: radio1 === '便利店订单' ? '#FF770F' : '#999999' }">便利店分析</div>
<div class="heng-box" v-if="radio1 == '便利店分析'"></div>
<div class="heng-box" style="background-color: #FFFFFF" v-else></div>
</div>
<div class="nbox" :class="pointerClass" @click="updateRedio('积分商城分析')">
<div class="fount-box" :style="{ color: radio1 === '积分商城分析' ? '#FF770F' : '#999999' }">积分商城分析</div>
<div class="heng-box" v-if="radio1 == '积分商城分析'"></div>
<div class="heng-box" style="background-color: #FFFFFF" v-else></div>
</div>
</div>
</el-card>
</div>
<yunyingfenxi-vip v-if="radio1 === '会员分析'"></yunyingfenxi-vip>
<yunyingfenxi-oil v-if="radio1 === '油品分析'"></yunyingfenxi-oil>
<yunyingfenxi-store v-if="radio1 === '便利店分析'"></yunyingfenxi-store>
<yunyingfenxi-int v-if="radio1 === '积分商城分析'"></yunyingfenxi-int>
</div>
</template>
<script>
import yunyingfenxiVip from "@/views/financialStatement/yunyingfenxi/tab/vip.vue";
import yunyingfenxiInt from "@/views/financialStatement/yunyingfenxi/tab/int.vue";
import yunyingfenxiOil from "@/views/financialStatement/yunyingfenxi/tab/oil.vue";
import yunyingfenxiStore from "@/views/financialStatement/yunyingfenxi/tab/store.vue";
export default {
name: "yunyingfenxi-list1",
data(){
return{
radio1:'会员充值订单',
pointerClass() {
return 'pointer-cursor';
}
}
},
components:{
yunyingfenxiInt,
yunyingfenxiVip,
yunyingfenxiOil,
yunyingfenxiStore,
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
},
updateRedio(data) {
console.log(this.radio1)
this.radio1 = data
}
}
}
</script>
<style scoped>
.app-center{
width: 100%;
box-sizing: border-box;
//padding: 10px;
}
.app-top{
width: 100%;
//margin-bottom: 20px;
height: 60px;
box-sizing: border-box;
}
.el-card__body, .el-main {
padding: 0px;
}
.box{
cursor: pointer;
margin-top: 10px ;
margin-left: 50px;
//height: 40px;
display: flex;
background-color: #FFFFFF;
align-items: center;
//border: 1px solid #EBEEF5;
}
.nbox{
margin-left: 30px;
}
.fount-box{
font-size: 14px;
color: #999999
}
.fount-box2{
font-size: 14px;
color: #999999
}
.heng-box{
background-color: #FF770F;
width: 100%;
height: 2px;
margin-top: 10px;
}
</style>

View File

@ -0,0 +1,300 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<el-card class="box-card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="" prop="deptId" style="width: 180px">
<el-select
v-model="queryParams.deptId"
clearable
placeholder="所属机构"
>
<el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="请输入商品名称" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
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 label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="支付状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
<el-tag type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="商品名称" > </el-table-column>
<el-table-column prop="payTime" align="center" label="消耗积分" > </el-table-column>
<el-table-column prop="payTime" align="center" label="数量" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="getOrdersInfo(scope.row)"
type="success" plain round>详情</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
exportExcelTradingApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
export default {
name: "yunyingfenxi-int",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
//
staffList:[],
ordersInfo:{},
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
deptList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
},
total:0,
}
},
created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = start
this.endTime = new Date()
this.isSysDate = true
this.getList();
this.getDeptList();
},
methods:{
getDeptList() {
getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
this.deptList = response.data.records;
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
exportExcelTradingApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
},
//
getList(val){
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.total = response.data.total;
this.isSysDate = false
})
this.getOrderStatistics()
},
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
}
this.beginTime = ""
this.endTime = ""
this.handleQuery();
},
}
}
</script>
<style scoped>
.box-card{
width: 100%;
margin: 0px 20px 20px 20px;
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
.table-box{
width: 100%;
}
</style>

View File

@ -0,0 +1,292 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<el-card class="box-card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="" prop="deptId" style="width: 180px">
<el-select
v-model="queryParams.deptId"
clearable
placeholder="所属机构"
>
<el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="请输入油号" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
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 label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="支付状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
<el-tag type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="油号" > </el-table-column>
<el-table-column prop="payTime" align="center" label="油枪" > </el-table-column>
<el-table-column prop="payTime" align="center" label="升数" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
exportExcelTradingApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
export default {
name: "yunyingfenxi-oil",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
//
staffList:[],
ordersInfo:{},
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
deptList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
},
total:0,
}
},
created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = start
this.endTime = new Date()
this.isSysDate = true
this.getList();
this.getDeptList();
},
methods:{
getDeptList() {
getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
this.deptList = response.data.records;
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
exportExcelTradingApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
},
//
getList(val){
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.total = response.data.total;
this.isSysDate = false
})
this.getOrderStatistics()
},
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
}
this.beginTime = ""
this.endTime = ""
this.handleQuery();
},
}
}
</script>
<style scoped>
.box-card{
width: 100%;
margin: 0px 20px 20px 20px;
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
.table-box{
width: 100%;
}
</style>

View File

@ -0,0 +1,299 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<el-card class="box-card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="" prop="deptId" style="width: 180px">
<el-select
v-model="queryParams.deptId"
clearable
placeholder="所属机构"
>
<el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="请输入商品名称" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
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 label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="支付状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
<el-tag type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="商品品类" > </el-table-column>
<el-table-column prop="payTime" align="center" label="商品名称" > </el-table-column>
<el-table-column prop="payTime" align="center" label="数量" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="getOrdersInfo(scope.row)"
type="success" plain round>详情</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
exportExcelTradingApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
export default {
name: "yunyingfenxi-store",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
//
staffList:[],
ordersInfo:{},
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
deptList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
},
total:0,
}
},
created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = start
this.endTime = new Date()
this.isSysDate = true
this.getList();
this.getDeptList();
},
methods:{
getDeptList() {
getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
this.deptList = response.data.records;
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
exportExcelTradingApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
},
//
getList(val){
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.total = response.data.total;
this.isSysDate = false
})
this.getOrderStatistics()
},
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
}
this.beginTime = ""
this.endTime = ""
this.handleQuery();
},
}
}
</script>
<style scoped>
.box-card{
width: 100%;
margin: 0px 20px 20px 20px;
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
.table-box{
width: 100%;
}
</style>

View File

@ -0,0 +1,292 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<el-card class="box-card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="" prop="deptId" style="width: 180px">
<el-select
v-model="queryParams.deptId"
clearable
placeholder="所属机构"
>
<el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="会员手机号" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
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 label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="支付状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
<el-tag type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="会员名称" > </el-table-column>
<el-table-column prop="payTime" align="center" label="会员手机号" > </el-table-column>
<el-table-column prop="payTime" align="center" label="卡类型" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="createTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
exportExcelTradingApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
export default {
name: "yunyingfenxi-vip",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
//
staffList:[],
ordersInfo:{},
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
deptList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
},
total:0,
}
},
created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = start
this.endTime = new Date()
this.isSysDate = true
this.getList();
this.getDeptList();
},
methods:{
getDeptList() {
getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
this.deptList = response.data.records;
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
exportExcelTradingApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
},
//
getList(val){
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.total = response.data.total;
this.isSysDate = false
})
this.getOrderStatistics()
},
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
}
this.beginTime = ""
this.endTime = ""
this.handleQuery();
},
}
}
</script>
<style scoped>
.box-card{
width: 100%;
margin: 0px 20px 20px 20px;
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
.table-box{
width: 100%;
}
</style>

View File

@ -0,0 +1,296 @@
<template>
<div class="app-container">
<el-card >
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="" prop="orgName">
<el-input
v-model="queryParams.orgName"
placeholder="请输入机构名称"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="legalRepresentativeContact">
<el-input
v-model="queryParams.legalRepresentativeContact"
placeholder="请输入法人联系方式"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="appStatus">
<el-input
v-model="queryParams.appStatus"
placeholder="请选择小程序状态"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
<el-button
type="primary"
@click="handleAdd"
>新增小程序配置</el-button>
</el-form-item>
</el-form>
</el-card>
<!-- 列表信息-->
<el-card style="margin-top: 20px" >
<el-table :data="tableData" style="width: 100%">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="orgName" label="机构名称"></el-table-column>
<el-table-column prop="unifiedSocialCreditCode" label="统一社会信用代码"></el-table-column>
<el-table-column prop="appId" label="小程序appID"></el-table-column>
<el-table-column prop="appKey" label="密钥"></el-table-column>
<el-table-column prop="legalRepresentativeName" label="法人姓名"></el-table-column>
<el-table-column prop="legalRepresentativeWeChat" label="法人微信号"></el-table-column>
<el-table-column prop="legalRepresentativeContact" label="法人联系方式"></el-table-column>
<el-table-column prop="appStatus" label="小程序状态">
<template slot-scope="scope">
<el-switch
v-model="scope.row.appStatus"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</template>
</el-table-column>
<el-table-column prop="createByName" label="创建人"></el-table-column>
<el-table-column prop="createTime" label="创建时间"></el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="edit(scope.row)"
>编辑</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="del(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
<el-dialog :title="title" :close-on-click-modal="false" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="deviceInfo" label-width="80px">
<el-form :model="deviceInfo" ref="deviceForm" label-width="120px">
<el-form-item label="机构名称" prop="orgName">
<el-input v-model="deviceInfo.orgName" style="width: 300px"></el-input>
</el-form-item>
<!-- <el-form-item label="机构名称" prop="orgName">-->
<!-- <el-input v-model="deviceInfo.orgName" style="width: 300px"></el-input>-->
<!-- </el-form-item>-->
<!-- -->
<el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode">
<el-input v-model="deviceInfo.unifiedSocialCreditCode"></el-input>
</el-form-item>
<el-form-item label="小程序appID" prop="appId">
<el-input v-model="deviceInfo.appId"></el-input>
</el-form-item>
<el-form-item label="密钥" prop="appKey">
<el-input v-model="deviceInfo.appKey"></el-input>
</el-form-item>
<el-form-item label="法人姓名" prop="legalRepresentativeName">
<el-input v-model="deviceInfo.legalRepresentativeName"></el-input>
</el-form-item>
<el-form-item label="法人微信号" prop="legalRepresentativeWeChat">
<el-input v-model="deviceInfo.legalRepresentativeWeChat"></el-input>
</el-form-item>
<el-form-item label="法人联系方式" prop="legalRepresentativeContact">
<el-input v-model="deviceInfo.legalRepresentativeContact"></el-input>
</el-form-item>
<el-form-item label="小程序状态" prop="appStatus">
<el-switch
v-model="deviceInfo.appStatus"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('deviceForm')">提交</el-button>
</el-form-item>
</el-form>
</el-form>
</el-dialog>
</div>
</template>
<script>
import {deleteAppApi, getAppListApi, saveAppApi, updateAppApi} from "@/api/sys/app";
export default {
name: "printIndex",
data() {
return {
tableData: [],
deviceInfo: {
id: null, // id
orgName: '', //
unifiedSocialCreditCode: '', //
appId: '', // appID
appKey: '', //
legalRepresentativeName: '', //
legalRepresentativeWeChat: '', //
legalRepresentativeContact: '', //
appStatus: false, //
createByName: '',
},
//
open: false,
title:"",
total:0,
//
queryParams: {
page: 1,
pageSize: 10,
orgName:'',
legalRepresentativeContact:'',
appStatus:'',
},
};
},
created() {
this.getList()
},
methods: {
getList(){
getAppListApi(this.queryParams).then(res=>{
this.tableData = res.data.records;
this.total = res.data.total
})
},
getsSubmitDeviceInfo(){},
submitForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
//
// API
this.submitDeviceInfo();
} else {
//
return false;
}
});
},
submitDeviceInfo() {
//
console.log('提交设备信息数据:', this.deviceInfo);
if (this.deviceInfo.id) {
updateAppApi(this.deviceInfo).then(res=>{
if(res.code === 200) {
this.getList()
this.open = false
}
})
}else {
saveAppApi(this.deviceInfo).then(res=>{
if(res.code === 200) {
this.getList()
this.open = false
}
})
}
},
handleQuery(){
this.getList()
},
resetQuery(){
this.queryParams = {
page: 1,
pageSize: 10,
deviceName:'',
},
this.getList()
},
handleAdd(e) {
this.clean()
this.open = true;
this.title = "增加设备"
},
edit(e) {
this.clean()
this.open = true;
this.title = "编辑设备"
this.deviceInfo = e
console.log('提交设备信息数据:', this.deviceInfo);
},
del(e) {
this.$confirm('此操作将永久删除该设备, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteAppApi(e.id).then(res=>{
if (res.code == 200) {
this.$message({
type: 'success',
message: '删除成功!'
});
this.getList()
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
clean() {
this.deviceInfo= {
id: null, // id
orgName: '', //
unifiedSocialCreditCode: '', //
appId: '', // appID
appKey: '', //
legalRepresentativeName: '', //
legalRepresentativeWeChat: '', //
legalRepresentativeContact: '', //
appStatus: false, //
createByName: '',
}
},
}
};
</script>
<style lang="scss" scoped>
.common-dialog >>> .el-upload--picture-card {
width: 60px;
height: 50px;
line-height: 60px;
}
</style>

View File

@ -0,0 +1,373 @@
<template>
<div class="app-container">
<el-card >
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="" prop="name">
<el-input
v-model="queryParams.bannerName"
placeholder="请输入banner图名称"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item style="float: right">-->
<el-form-item label="" prop="bannerName">
<el-select v-model="queryParams.systemPosition" placeholder="请选择系统位置">
<el-option
v-for="item in systemPositionList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="bannerName">
<el-select v-model="queryParams.systemPosition" placeholder="请选择系统位置">
<el-option
v-for="item in systemPositionList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
<el-button
type="primary"
icon="el-icon-plus"
@click="handleAdd"
>新增banner图</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- &lt;!&ndash; 列表信息&ndash;&gt;-->
<!-- <el-card style="margin-top: 20px" >-->
<el-table :data="tableData" style="width: 100%">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="bannerName" label="banner名称"></el-table-column>
<el-table-column prop="productImage" label="图片">
<template slot-scope="scope">
<el-image
style="width: 50px; height: 50px"
:src="imagePath+scope.row.productImage"
:preview-src-list="[imagePath + scope.row.productImage]"
fit="cover">
</el-image>
</template>
</el-table-column>
<el-table-column prop="systemPosition" label="系统位置"></el-table-column>
<el-table-column prop="sortOrder" label="排序号"></el-table-column>
<el-table-column prop="productImage" label="banner图链接"></el-table-column>
<el-table-column prop="note" label="备注"></el-table-column>
<el-table-column prop="bannerStatus" label="banner图状态">
<template slot-scope="scope">
<el-switch
v-model="scope.row.bannerStatus"
active-color="#13ce66"
inactive-color="#ff4949"
@change="changeStatus(scope.row)"
>
</el-switch>
</template>
</el-table-column>
<el-table-column prop="createByName" label="创建人"></el-table-column>
<el-table-column prop="createTime" label="创建时间"></el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="edit(scope.row)"
>编辑</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="del(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
<el-dialog :title="title" :close-on-click-modal="false" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="deviceInfo" label-width="80px">
<el-form :model="deviceInfo" ref="deviceForm" label-width="120px">
<el-form-item label="bannerName" prop="machineCode">
<el-input v-model="deviceInfo.bannerName" style="width: 300px"></el-input>
</el-form-item>
<el-form-item label="图片" prop="uploadAction">
<el-upload
:action="uploadAction"
list-type="picture-card"
:class="{hide:hideUpload}"
:file-list="uploadFiles"
:auto-upload="true"
:show-file-list="false"
:headers="uploadHeader"
:on-success="handleUploadSuccessCover">
<img
v-if="this.deviceInfo.productImage"
:src="imagePath + this.deviceInfo.productImage"
class="list-img"
/>
<i v-if="!this.deviceInfo.productImage" class="el-icon-plus"></i>
</el-upload>
</el-form-item>
<el-form-item label="系统位置" prop="deviceName">
<el-select v-model="deviceInfo.systemPosition" placeholder="系统位置">
<el-option
v-for="item in systemPositionList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="排序号" prop="userId">
<el-input v-model="deviceInfo.sortOrder"></el-input>
</el-form-item>
<!-- <el-form-item label="Banner链接" prop="appKey">-->
<!-- <el-input v-model="deviceInfo.bannerLink"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="Banner状态" prop="bannerStatus">
<el-switch
v-model="deviceInfo.bannerStatus"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</el-form-item>
<el-form-item label="备注" prop="appSecret">
<el-input v-model="deviceInfo.note"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('deviceForm')">提交</el-button>
</el-form-item>
</el-form>
</el-form>
</el-dialog>
</div>
</template>
<script>
import {deleteBannerApi, getBannerListApi, saveBannerApi, updateBannerApi} from "@/api/sys/banner";
import { getToken } from '@/utils/auth'
export default {
name: "printIndex",
data() {
return {
tableData: [],
deviceInfo: {
id: null, // id
bannerName: '', // Banner
productImage: '', //
systemPosition: '', //
sortOrder: null, //
bannerLink: '', // Banner
bannerStatus: false, // Banner
note: '', //
createByName: '', //
},
systemPositionList:[{
value: '首页',
label: '首页'
}, {
value: '系统首页',
label: '系统首页'
},],
//
open: false,
title:"",
total:0,
//
queryParams: {
page: 1,
pageSize: 10,
bannerName:'',
systemPosition:'',
bannerStatus:'',
},
//
uploadAction: process.env.VUE_APP_BASE_API + 'backendApi/file/upload',
uploadHeader: { 'Access-Token' : getToken() }, //
uploadFiles: [
{name:"nihao",
url:'http://localhost:8008/static/uploadImages/20231103/ffbbe7d3ee1441fdaf706802fa0f176a.png'}
],
//
imagePath: process.env.VUE_APP_BASE_API,
//
hideUpload: false,
};
},
created() {
this.getList()
},
methods: {
getList(){
getBannerListApi(this.queryParams).then(res=>{
this.tableData = res.data.records;
this.total = res.data.total
})
},
submitForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
//
this.submitDeviceInfo();
} else {
//
return false;
}
});
},
submitDeviceInfo() {
//
console.log('提交设备信息数据:', this.deviceInfo);
if (this.deviceInfo.id) {
updateBannerApi(this.deviceInfo).then(res=>{
if(res.code === 200) {
this.getList()
this.open = false
}
})
}else {
saveBannerApi(this.deviceInfo).then(res=>{
if(res.code === 200) {
this.getList()
this.open = false
}
})
}
},
changeStatus(data){
updateBannerApi(data).then(res=>{
if(res.code === 200) {
this.$message({
type: 'success',
message: '修改状态成功!'
});
this.getList()
}
})
},
//
handleUploadSuccessCover(file) {
this.deviceInfo.productImage = file.data.fileName;
this.deviceInfo.productImage = file.data.fileName;
},
handleQuery(){
this.getList()
},
resetQuery(){
this.queryParams = {
page: 1,
pageSize: 10,
deviceName:'',
},
this.getList()
},
handleAdd(e) {
this.clean()
this.open = true;
this.title = "新增banner图"
},
edit(e) {
this.clean()
this.open = true;
this.title = "修改banner图"
this.deviceInfo = e
},
del(e) {
this.$confirm('此操作将永久删除该banner图, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteBannerApi({id:e.id}).then(res=>{
if (res.code == 200) {
this.$message({
type: 'success',
message: '删除成功!'
});
this.getList()
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
clean() {
this.deviceInfo= {
id: null, // id
bannerName: '', // Banner
productImage: '', //
systemPosition: '', //
sortOrder: null, //
bannerLink: '', // Banner
bannerStatus: false, // Banner
note: '', //
createByName: '', //
}
},
}
};
</script>
<style lang="scss" scoped>
.common-dialog >>> .el-upload--picture-card {
width: 60px;
height: 50px;
line-height: 60px;
}
.d-dialog >>> .el-upload--picture-card {
width: 100px;
height: 100px;
line-height: 100px;
}
.d-dialog >>> .avatar-uploader .el-upload {
width: 100px;
height: 100px;
}
.d-dialog >>> .el-upload-list--picture-card .el-upload-list__item {
width: 100px;
height: 100px;
}
.list-img{
width: 98px;
height: 98px;
}
</style>

View File

@ -0,0 +1,93 @@
package com.fuint.business.sys.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.sys.entity.SysApp;
import com.fuint.business.sys.service.SysAppService;
import com.fuint.framework.web.BaseController;
import com.fuint.framework.web.ResponseObject;
import org.springframework.web.bind.annotation.*;
import io.lettuce.core.dynamic.annotation.Param;
import javax.annotation.Resource;
/**
* 小程序配置表(SysApp)表控制层
*
* @author wangh
* @since 2024-07-16 16:46:31
*/
@RestController
@RequestMapping("sys/sysApp")
public class SysAppController extends BaseController {
/**
* 服务对象
*/
@Resource
private SysAppService sysAppService;
/**
* 分页查询
*
* @param sysApp 筛选条件
* @param pageNo 分页对象
* @return 查询结果
*/
@GetMapping("queryByPage")
public ResponseObject queryByPage(@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
@Param("sysApp") SysApp sysApp) {
Page page = new Page(pageNo, pageSize);
IPage< SysApp> iPageList = this.sysAppService.queryByPage(page, sysApp);
return getSuccessResult(iPageList);
}
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("{id}")
public ResponseObject queryById(@PathVariable("id") Integer id) {
return getSuccessResult(this.sysAppService.queryById(id));
}
/**
* 新增数据
*
* @param sysApp 实体
* @return 新增结果
*/
@PostMapping
public ResponseObject add(@RequestBody SysApp sysApp) {
return getSuccessResult(this.sysAppService.insert(sysApp));
}
/**
* 编辑数据
*
* @param sysApp 实体
* @return 编辑结果
*/
@PutMapping
public ResponseObject edit(@RequestBody SysApp sysApp) {
return getSuccessResult(this.sysAppService.update(sysApp));
}
/**
* 删除数据
*
* @param id 主键
* @return 删除是否成功
*/
@DeleteMapping("{id}")
public ResponseObject deleteById(@PathVariable("id") Integer id) {
return getSuccessResult(this.sysAppService.deleteById(id));
}
}

View File

@ -0,0 +1,93 @@
package com.fuint.business.sys.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.sys.entity.SysBanner;
import com.fuint.business.sys.service.SysBannerService;
import com.fuint.framework.web.BaseController;
import com.fuint.framework.web.ResponseObject;
import org.springframework.web.bind.annotation.*;
import io.lettuce.core.dynamic.annotation.Param;
import javax.annotation.Resource;
/**
* 存储Banner信息的表(SysBanner)表控制层
*
* @author wangh
* @since 2024-07-16 16:42:34
*/
@RestController
@RequestMapping("sys/sysBanner")
public class SysBannerController extends BaseController {
/**
* 服务对象
*/
@Resource
private SysBannerService sysBannerService;
/**
* 分页查询
*
* @param sysBanner 筛选条件
* @param pageNo 分页对象
* @return 查询结果
*/
@GetMapping("queryByPage")
public ResponseObject queryByPage(@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
@Param("sysBanner") SysBanner sysBanner) {
Page page = new Page(pageNo, pageSize);
IPage< SysBanner> iPageList = this.sysBannerService.queryByPage(page, sysBanner);
return getSuccessResult(iPageList);
}
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("{id}")
public ResponseObject queryById(@PathVariable("id") Integer id) {
return getSuccessResult(this.sysBannerService.queryById(id));
}
/**
* 新增数据
*
* @param sysBanner 实体
* @return 新增结果
*/
@PostMapping
public ResponseObject add(@RequestBody SysBanner sysBanner) {
return getSuccessResult(this.sysBannerService.insert(sysBanner));
}
/**
* 编辑数据
*
* @param sysBanner 实体
* @return 编辑结果
*/
@PutMapping
public ResponseObject edit(@RequestBody SysBanner sysBanner) {
return getSuccessResult(this.sysBannerService.update(sysBanner));
}
/**
* 删除数据
*
* @param id 主键
* @return 删除是否成功
*/
@DeleteMapping("{id}")
public ResponseObject deleteById(@PathVariable("id") Integer id) {
return getSuccessResult(this.sysBannerService.deleteById(id));
}
}

View File

@ -0,0 +1,68 @@
package com.fuint.business.sys.entity;
import com.fuint.repository.model.base.BaseEntity;
import lombok.Data;
/**
* 小程序配置表(SysApp)实体类
*
* @author wangh
* @since 2024-07-16 16:46:31
*/
@Data
public class SysApp extends BaseEntity {
private static final long serialVersionUID = -49243765149526047L;
/**
* 自增的主键用于唯一标识每条记录
*/
private Integer id;
private Integer storeId;
/**
* 机构名称字符长度最多50不能为空且唯一
*/
private String orgName;
private String deptId; // 机构id
private String appKey; // 密钥
/**
* 统一社会信用代码字符长度最多18不能为空
*/
private String unifiedSocialCreditCode;
/**
* 小程序appID字符长度最多18不能为空
*/
private String appId;
/**
* 法人姓名字符长度最多10不能为空
*/
private String legalRepresentativeName;
/**
* 法人微信
*/
private String legalRepresentativeWechat;
/**
* 法人编号字符长度最多30可以为空
*/
private String legalRepresentativeId;
/**
* 法人联系方式字符长度最多20可以为空
*/
private String legalRepresentativeContact;
/**
* 小程序状态枚举类型可选值为"启用""停用"不能为空
*/
private Boolean appStatus;
private String createByName;
}

View File

@ -0,0 +1,60 @@
package com.fuint.business.sys.entity;
import com.fuint.repository.model.base.BaseEntity;
import lombok.Data;
/**
* 存储Banner信息的表(SysBanner)实体类
*
* @author wangh
* @since 2024-07-16 16:42:34
*/
@Data
public class SysBanner extends BaseEntity {
private static final long serialVersionUID = 132479844949819856L;
/**
* 自增
*/
private Integer id;
private Integer storeId;
/**
* Banner名称字符长度最多50不能为空且唯一
*/
private String bannerName;
/**
* 商品图片二进制数据类型用于存储图片文件
*/
private String productImage;
/**
* 系统位置枚举类型可选值为"首页""系统首页"
*/
private String systemPosition;
/**
* 排序号整数类型最大字符长度5不能为空
*/
private Integer sortOrder;
/**
* Banner链接字符长度最多200可以为空
*/
private String bannerLink;
/**
* Banner状态枚举类型可选值为"启用""停用"不能为空
*/
private Boolean bannerStatus;
/**
* 备注字符长度最多200可以为空
*/
private String note;
private String createByName;
}

View File

@ -0,0 +1,85 @@
package com.fuint.business.sys.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.sys.entity.SysApp;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 小程序配置表(SysApp)表数据库访问层
*
* @author wangh
* @since 2024-07-16 16:46:31
*/
public interface SysAppMapper {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
SysApp queryById(Integer id);
/**
* 查询指定行数据
*
* @param sysApp 查询条件
* @param page 分页对象
* @return 对象列表
*/
IPage<SysApp> queryAllByLimit(@Param("page") Page page, @Param("sysApp")SysApp sysApp);
/**
* 统计总行数
*
* @param sysApp 查询条件
* @return 总行数
*/
long count(SysApp sysApp);
/**
* 新增数据
*
* @param sysApp 实例对象
* @return 影响行数
*/
int insert(@Param("sysApp") SysApp sysApp);
/**
* 批量新增数据MyBatis原生foreach方法
*
* @param entities List<SysApp> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<SysApp> entities);
/**
* 批量新增或按主键更新数据MyBatis原生foreach方法
*
* @param entities List<SysApp> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常请自行校验入参
*/
int insertOrUpdateBatch(@Param("entities") List<SysApp> entities);
/**
* 修改数据
*
* @param sysApp 实例对象
* @return 影响行数
*/
int update(SysApp sysApp);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Integer id);
}

View File

@ -0,0 +1,85 @@
package com.fuint.business.sys.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.sys.entity.SysBanner;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 存储Banner信息的表(SysBanner)表数据库访问层
*
* @author wangh
* @since 2024-07-16 16:42:34
*/
public interface SysBannerMapper {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
SysBanner queryById(Integer id);
/**
* 查询指定行数据
*
* @param sysBanner 查询条件
* @param page 分页对象
* @return 对象列表
*/
IPage<SysBanner> queryAllByLimit(@Param("page") Page page, @Param("sysBanner") SysBanner sysBanner);
/**
* 统计总行数
*
* @param sysBanner 查询条件
* @return 总行数
*/
long count(SysBanner sysBanner);
/**
* 新增数据
*
* @param sysBanner 实例对象
* @return 影响行数
*/
int insert(@Param("sysBanner") SysBanner sysBanner);
/**
* 批量新增数据MyBatis原生foreach方法
*
* @param entities List<SysBanner> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<SysBanner> entities);
/**
* 批量新增或按主键更新数据MyBatis原生foreach方法
*
* @param entities List<SysBanner> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常请自行校验入参
*/
int insertOrUpdateBatch(@Param("entities") List<SysBanner> entities);
/**
* 修改数据
*
* @param sysBanner 实例对象
* @return 影响行数
*/
int update(SysBanner sysBanner);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Integer id);
}

View File

@ -0,0 +1,176 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fuint.business.sys.mapper.SysAppMapper">
<resultMap type="com.fuint.business.sys.entity.SysApp" id="SysAppMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="orgName" column="org_name" jdbcType="VARCHAR"/>
<result property="unifiedSocialCreditCode" column="unified_social_credit_code" jdbcType="VARCHAR"/>
<result property="appId" column="app_id" jdbcType="VARCHAR"/>
<result property="legalRepresentativeName" column="legal_representative_name" jdbcType="VARCHAR"/>
<result property="legalRepresentativeId" column="legal_representative_id" jdbcType="VARCHAR"/>
<result property="legalRepresentativeContact" column="legal_representative_contact" jdbcType="VARCHAR"/>
<result property="appStatus" column="app_status" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="VARCHAR"/>
<result property="createByName" column="create_by_name" jdbcType="VARCHAR"/>
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="SysAppMap">
select
id,org_name,unified_social_credit_code,app_id,legal_representative_name,
legal_representative_id,legal_representative_contact.app_status
from sys_app
where id = #{id}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="SysAppMap">
select
id,org_name,unified_social_credit_code,app_id,legal_representative_name,
legal_representative_id,legal_representative_contact,app_status,create_time,create_by_name
from sys_app
<where>
<if test="sysApp.id != null">
and id = #{sysAppid}
</if>
<if test="sysApp.orgName != null and sysApp.orgName != ''">
and org_name = #{sysApp.orgName}
</if>
<if test="sysApp.unifiedSocialCreditCode != null and sysApp.unifiedSocialCreditCode != ''">
and unified_social_credit_code = #{sysApp.unifiedSocialCreditCode}
</if>
<if test="sysApp.appId != null and sysApp.appId != ''">
and app_id = #{sysApp.appId}
</if>
<if test="sysApp.legalRepresentativeName != null and sysApp.legalRepresentativeName != ''">
and legal_representative_name = #{sysApp.legalRepresentativeName}
</if>
<if test="sysApp.legalRepresentativeId != null and sysApp.legalRepresentativeId != ''">
and legal_representative_id = #{sysApp.legalRepresentativeId}
</if>
<if test="sysApp.legalRepresentativeContact != null and sysApp.legalRepresentativeContact != ''">
and legal_representative_contact = #{sysApp.legalRepresentativeContact}
</if>
<if test="sysApp.appStatus != null">
and app_status = #{sysApp.appStatus}
</if>
</where>
</select>
<!--统计总行数-->
<select id="count" resultType="java.lang.Long">
select count(1)
from sys_app
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="orgName != null and orgName != ''">
and org_name = #{orgName}
</if>
<if test="unifiedSocialCreditCode != null and unifiedSocialCreditCode != ''">
and unified_social_credit_code = #{unifiedSocialCreditCode}
</if>
<if test="appId != null and appId != ''">
and app_id = #{appId}
</if>
<if test="legalRepresentativeName != null and legalRepresentativeName != ''">
and legal_representative_name = #{legalRepresentativeName}
</if>
<if test="legalRepresentativeId != null and legalRepresentativeId != ''">
and legal_representative_id = #{legalRepresentativeId}
</if>
<if test="legalRepresentativeContact != null and legalRepresentativeContact != ''">
and legal_representative_contact = #{legalRepresentativeContact}
</if>
<if test="appStatus != null">
and app_status = #{appStatus}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into sys_app(org_name,
unified_social_credit_code,
app_id,
legal_representative_name,
legal_representative_id,
legal_representative_contact,
legal_representative_wechat,
app_key,
app_status)
values (#{sysApp.orgName},
#{sysApp.unifiedSocialCreditCode},
#{sysApp.appId},
#{sysApp.legalRepresentativeName},
#{sysApp.legalRepresentativeId},
#{sysApp.legalRepresentativeContact},
#{sysApp.legalRepresentativeWechat},
#{sysApp.appKey},
#{sysApp.appStatus})
</insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into sys_app(org_name,unified_social_credit_code,app_id,legal_representative_name,
legal_representative_id,legal_representative_contact.app_status)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.orgName}#{entity.unifiedSocialCreditCode}#{entity.appId}#{entity.legalRepresentativeName}#{entity.legalRepresentativeId}#{entity.legalRepresentativeContact}#{entity.appStatus})
</foreach>
</insert>
<insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
insert into sys_app(org_name,unified_social_credit_code,app_id,legal_representative_name,
legal_representative_id,legal_representative_contact.app_status)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.orgName}#{entity.unifiedSocialCreditCode}#{entity.appId}#{entity.legalRepresentativeName}#{entity.legalRepresentativeId}#{entity.legalRepresentativeContact}#{entity.appStatus})
</foreach>
on duplicate key update
org_name = values(org_name)unified_social_credit_code = values(unified_social_credit_code)app_id = values(app_id)legal_representative_name = values(legal_representative_name)legal_representative_id = values(legal_representative_id)legal_representative_contact = values(legal_representative_contact)app_status = values(app_status)
</insert>
<!--通过主键修改数据-->
<update id="update">
update sys_app
<set>
<if test="orgName != null and orgName != ''">
org_name = #{orgName},
</if>
<if test="unifiedSocialCreditCode != null and unifiedSocialCreditCode != ''">
unified_social_credit_code = #{unifiedSocialCreditCode},
</if>
<if test="appId != null and appId != ''">
app_id = #{appId},
</if>
<if test="legalRepresentativeName != null and legalRepresentativeName != ''">
legal_representative_name = #{legalRepresentativeName},
</if>
<if test="legalRepresentativeId != null and legalRepresentativeId != ''">
legal_representative_id = #{legalRepresentativeId},
</if>
<if test="legalRepresentativeContact != null and legalRepresentativeContact != ''">
legal_representative_contact = #{legalRepresentativeContact},
</if>
<if test="legalRepresentativeContact != null">
legal_representative_wechat = #{legalRepresentativeWeChat},
</if>
<if test="key != null and key != ''">
key = #{key},
</if>
<if test="appStatus != null">
app_status = #{appStatus},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from sys_app where id = #{id}
</delete>
</mapper>

View File

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fuint.business.sys.mapper.SysBannerMapper">
<resultMap type="com.fuint.business.sys.entity.SysBanner" id="SysBannerMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="bannerName" column="banner_name" jdbcType="VARCHAR"/>
<result property="productImage" column="product_image" jdbcType="VARCHAR"/>
<result property="systemPosition" column="system_position" jdbcType="INTEGER"/>
<result property="sortOrder" column="sort_order" jdbcType="INTEGER"/>
<result property="bannerLink" column="banner_link" jdbcType="VARCHAR"/>
<result property="bannerStatus" column="banner_status" jdbcType="INTEGER"/>
<result property="note" column="note" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="VARCHAR"/>
<result property="createByName" column="create_by_name" jdbcType="VARCHAR"/>
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="SysBannerMap">
select
id,banner_name,product_image,system_position,sort_order,banner_link,banner_status,note,create_time
from sys_banner
where id = #{id}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="SysBannerMap">
select
id,banner_name,product_image,system_position,sort_order,banner_link,banner_status,note,create_time,create_by_name
from sys_banner
<where>
<if test="sysBanner.id != null">
and id = #{sysBanner.id}
</if>
<if test="sysBanner.bannerName != null and sysBanner.bannerName != ''">
and banner_name = #{sysBanner.bannerName}
</if>
<if test="sysBanner.productImage != null and sysBanner.productImage != ''">
and product_image = #{sysBanner.productImage}
</if>
<if test="sysBanner.systemPosition != null and sysBanner.systemPosition != ''">
and system_position = #{sysBanner.systemPosition}
</if>
<if test="sysBanner.sortOrder != null">
and sort_order = #{sysBanner.sortOrder}
</if>
<if test="sysBanner.bannerLink != null and sysBanner.bannerLink != ''">
and banner_link = #{sysBanner.bannerLink}
</if>
<if test="sysBanner.bannerStatus != null">
and banner_status = #{sysBanner.bannerStatus}
</if>
<if test="sysBanner.note != null and note != ''">
and note = #{sysBanner.note}
</if>
</where>
</select>
<!--统计总行数-->
<select id="count" resultType="java.lang.Long">
select count(1)
from sys_banner
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="bannerName != null and bannerName != ''">
and banner_name = #{bannerName}
</if>
<if test="productImage != null and productImage != ''">
and product_image = #{productImage}
</if>
<if test="systemPosition != null">
and system_position = #{systemPosition}
</if>
<if test="sortOrder != null">
and sort_order = #{sortOrder}
</if>
<if test="bannerLink != null and bannerLink != ''">
and banner_link = #{bannerLink}
</if>
<if test="bannerStatus != null">
and banner_status = #{bannerStatus}
</if>
<if test="note != null and note != ''">
and note = #{note}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into sys_banner(banner_name,product_image,system_position,sort_order,banner_link,banner_status,note)
values (#{sysBanner.bannerName},
#{sysBanner.productImage},
#{sysBanner.systemPosition},
#{sysBanner.sortOrder},
#{sysBanner.bannerLink},
#{sysBanner.bannerStatus},
#{sysBanner.note})
</insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into sys_banner(banner_name,product_image,system_position,sort_order,banner_link,banner_status,note)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.bannerName},#{entity.productImage},#{entity.systemPosition}#{entity.sortOrder}#{entity.bannerLink}#{entity.bannerStatus}#{entity.note})
</foreach>
</insert>
<insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
insert into sys_banner(banner_name,product_image,system_position,sort_order,banner_link,banner_status,note)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.bannerName}#{entity.productImage}#{entity.systemPosition}#{entity.sortOrder}#{entity.bannerLink}#{entity.bannerStatus}#{entity.note})
</foreach>
on duplicate key update
banner_name = values(banner_name)product_image = values(product_image)system_position = values(system_position)sort_order = values(sort_order)banner_link = values(banner_link)banner_status = values(banner_status)note = values(note)
</insert>
<!--通过主键修改数据-->
<update id="update">
update sys_banner
<set>
<if test="bannerName != null and bannerName != ''">
banner_name = #{bannerName},
</if>
<if test="productImage != null and productImage != ''">
product_image = #{productImage},
</if>
<if test="systemPosition != null">
system_position = #{systemPosition},
</if>
<if test="sortOrder != null">
sort_order = #{sortOrder},
</if>
<if test="bannerLink != null and bannerLink != ''">
banner_link = #{bannerLink},
</if>
<if test="bannerStatus != null">
banner_status = #{bannerStatus},
</if>
<if test="note != null and note != ''">
note = #{note},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from sys_banner where id = #{id}
</delete>
</mapper>

View File

@ -0,0 +1,58 @@
package com.fuint.business.sys.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.sys.entity.SysApp;
import io.lettuce.core.dynamic.annotation.Param;
/**
* 小程序配置表(SysApp)表服务接口
*
* @author wangh
* @since 2024-07-16 16:46:31
*/
public interface SysAppService {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
SysApp queryById(Integer id);
/**
* 分页查询
*
* @param sysApp 筛选条件
* @param page 分页对象
* @return 查询结果
*/
IPage<SysApp> queryByPage(@Param("page") Page page, SysApp sysApp);
/**
* 新增数据
*
* @param sysApp 实例对象
* @return 实例对象
*/
SysApp insert(SysApp sysApp);
/**
* 修改数据
*
* @param sysApp 实例对象
* @return 实例对象
*/
SysApp update(SysApp sysApp);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean deleteById(Integer id);
}

View File

@ -0,0 +1,58 @@
package com.fuint.business.sys.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.sys.entity.SysBanner;
import io.lettuce.core.dynamic.annotation.Param;
/**
* 存储Banner信息的表(SysBanner)表服务接口
*
* @author wangh
* @since 2024-07-16 16:42:34
*/
public interface SysBannerService {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
SysBanner queryById(Integer id);
/**
* 分页查询
*
* @param sysBanner 筛选条件
* @param page 分页对象
* @return 查询结果
*/
IPage<SysBanner> queryByPage(@Param("page") Page page, SysBanner sysBanner);
/**
* 新增数据
*
* @param sysBanner 实例对象
* @return 实例对象
*/
SysBanner insert(SysBanner sysBanner);
/**
* 修改数据
*
* @param sysBanner 实例对象
* @return 实例对象
*/
SysBanner update(SysBanner sysBanner);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean deleteById(Integer id);
}

View File

@ -0,0 +1,90 @@
package com.fuint.business.sys.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.sys.entity.SysApp;
import com.fuint.business.sys.mapper.SysAppMapper;
import com.fuint.business.sys.service.SysAppService;
import org.springframework.stereotype.Service;
import com.fuint.common.util.TokenUtil;
import io.lettuce.core.dynamic.annotation.Param;
import com.fuint.common.dto.AccountInfo;
import javax.annotation.Resource;
/**
* 小程序配置表(SysApp)表服务实现类
*
* @author wangh
* @since 2024-07-16 16:46:31
*/
@Service("sysAppService")
public class SysAppServiceImpl implements SysAppService {
@Resource
private SysAppMapper sysAppMapper;
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
@Override
public SysApp queryById(Integer id) {
return this.sysAppMapper.queryById(id);
}
/**
* 分页查询
*
* @param sysApp 筛选条件
* @param page 分页对象
* @return 查询结果
*/
@Override
public IPage<SysApp> queryByPage(@Param("page") Page page, SysApp sysApp) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
// sysApp.setStoreId(nowAccountInfo.getStoreId());
return this.sysAppMapper.queryAllByLimit(page, sysApp);
}
/**
* 新增数据
*
* @param sysApp 实例对象
* @return 实例对象
*/
@Override
public SysApp insert(SysApp sysApp) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
// sysApp.setStoreId(nowAccountInfo.getStoreId());
sysApp.setCreateByName(nowAccountInfo.getRealName());
this.sysAppMapper.insert(sysApp);
return sysApp;
}
/**
* 修改数据
*
* @param sysApp 实例对象
* @return 实例对象
*/
@Override
public SysApp update(SysApp sysApp) {
this.sysAppMapper.update(sysApp);
return this.queryById(sysApp.getId());
}
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Integer id) {
return this.sysAppMapper.deleteById(id) > 0;
}
}

View File

@ -0,0 +1,91 @@
package com.fuint.business.sys.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.sys.entity.SysBanner;
import com.fuint.business.sys.mapper.SysBannerMapper;
import com.fuint.business.sys.service.SysBannerService;
import org.springframework.stereotype.Service;
import com.fuint.common.util.TokenUtil;
import io.lettuce.core.dynamic.annotation.Param;
import com.fuint.common.dto.AccountInfo;
import javax.annotation.Resource;
/**
* 存储Banner信息的表(SysBanner)表服务实现类
*
* @author wangh
* @since 2024-07-16 16:42:34
*/
@Service("sysBannerService")
public class SysBannerServiceImpl implements SysBannerService {
@Resource
private SysBannerMapper sysBannerMapper;
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
@Override
public SysBanner queryById(Integer id) {
return this.sysBannerMapper.queryById(id);
}
/**
* 分页查询
*
* @param sysBanner 筛选条件
* @param page 分页对象
* @return 查询结果
*/
@Override
public IPage<SysBanner> queryByPage(@Param("page") Page page, SysBanner sysBanner) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
// sysBanner.setStoreId(nowAccountInfo.getStoreId());
return this.sysBannerMapper.queryAllByLimit(page, sysBanner);
}
/**
* 新增数据
*
* @param sysBanner 实例对象
* @return 实例对象
*/
@Override
public SysBanner insert(SysBanner sysBanner) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
sysBanner.setStoreId(nowAccountInfo.getStoreId());
sysBanner.setCreateByName(nowAccountInfo.getRealName());
this.sysBannerMapper.insert(sysBanner);
return sysBanner;
}
/**
* 修改数据
*
* @param sysBanner 实例对象
* @return 实例对象
*/
@Override
public SysBanner update(SysBanner sysBanner) {
this.sysBannerMapper.update(sysBanner);
return this.queryById(sysBanner.getId());
}
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Integer id) {
return this.sysBannerMapper.deleteById(id) > 0;
}
}