This commit is contained in:
zhaohengkun 2024-09-30 18:16:20 +08:00
commit fe942e2224
23 changed files with 627 additions and 458 deletions

View File

@ -11,7 +11,7 @@ VUE_APP_BASE_API = '/dev-api'
VUE_APP_PUBLIC_PATH = '/'
# 后端接口地址
VUE_APP_SERVER_URL = 'http://127.0.0.1:8080/'
VUE_APP_SERVER_URL = 'http://192.168.31.178:8080/'
# http://192.168.0.121:8080/

View File

@ -332,93 +332,177 @@
</div>
<div class="d-s" style="justify-content: space-between">
<el-form-item label="适用时间段" style="width: 45%;">
<el-radio-group v-model="ruleForm.availableType">
<el-radio :label="'1'" style="margin-bottom: 15px">每周
<el-select v-model="ruleForm.availableWeek" multiple placeholder="请选择周日期">
<el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-radio>
<el-radio :label="'2'" style="margin-bottom: 15px">每月
<el-select v-model="ruleForm.availableDay" multiple placeholder="请选择每月固定日期">
<el-option v-for="item in monthList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-radio>
<el-form-item label="时间段设置" prop="availableOrUn">
<el-radio-group v-model="ruleForm.availableOrUn">
<el-radio :label="'0'">适用时间段</el-radio>
<el-radio :label="'1'">不可用时间段</el-radio>
</el-radio-group>
<div class="d-s">
<div class="malou">时间段</div>
<el-time-select
style="margin-right: 10px"
placeholder="起始时间"
v-model="ruleForm.availablePeriodStart"
:picker-options="{
start: '00:00',
step: '00:15',
end: '24:00'
}">
</el-time-select>
<el-time-select
placeholder="结束时间"
v-model="ruleForm.availablePeriodEnd"
:picker-options="{
start: '00:00',
step: '00:15',
end: '24:00',
minTime: ruleForm.availablePeriodStart
}">
</el-time-select>
</div>
</el-form-item>
<el-form-item label="不适用时间段" style="width: 50%;">
<el-radio-group v-model="ruleForm.unAvailableType">
<div>
<el-radio label="1" style="margin-bottom: 15px">每周
<el-select v-model="ruleForm.unAvailableWeek" multiple placeholder="请选择周日期">
<el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
<el-form-item v-if="ruleForm.availableOrUn == '0'" label="适用时间段" prop="suitTimeSlotType">
<div style="width: 100px;margin-top: 10px">
<el-radio-group v-model="ruleForm.availableType">
<div style="display: flex; width: 500px;margin-bottom: 15px;">
<el-radio :label="'1'">每周</el-radio>
<el-checkbox-group v-model="weekDay" style="margin-left: 20px" :disabled="ruleForm.availableType!='1'">
<el-checkbox v-for="(item,index) in weekList" :key="index" :label="item"></el-checkbox>
</el-checkbox-group>
</div>
<el-radio :label="'2'">每月
<el-select :disabled="ruleForm.availableType!='2'" v-model="monthDay" placeholder="请选择每月固定日期" multiple style="margin-left: 20px">
<el-option
v-for="item in 31"
:key="item+''"
:label="item+'日'"
:value="item+''">
</el-option>
</el-select>
</el-radio>
</div>
<div>
<el-radio label="2" style="margin-bottom: 15px">每月
<el-select v-model="ruleForm.unAvailableDay" multiple placeholder="请选择每月固定日期">
<el-option v-for="item in monthList" :key="item.value" :label="item.label" :value="item.value">
</el-radio-group>
</div>
<div style="margin-top: 20px">
<el-form-item label="时间段" label-width="70px">
<el-time-picker
v-model="ruleForm.availablePeriodStart"
format="HH:mm"
value-format="HH:mm"
placeholder="请选择开始时间点">
</el-time-picker>
<el-time-picker
v-model="ruleForm.availablePeriodEnd"
format="HH:mm"
value-format="HH:mm"
placeholder="请选择结束时间点">
</el-time-picker>
</el-form-item>
</div>
</el-form-item>
<el-form-item v-else label="不适用时间段" prop="noUseTimeType">
<div>
<el-radio-group v-model="ruleForm.unAvailableType">
<el-radio :label="'1'">每周
<el-checkbox-group v-model="weekDay1" style="margin-left: 20px" :disabled="ruleForm.unAvailableType!='1'">
<el-checkbox v-for="(item,index) in weekList" :key="index" :label="item"></el-checkbox>
</el-checkbox-group>
</el-radio>
<el-radio :label="'2'">每月
<el-select :disabled="ruleForm.unAvailableType!='2'" v-model="monthDay1" placeholder="请选择每月固定日期" multiple style="margin-left: 20px">
<el-option
v-for="item in 31"
:key="item+''"
:label="item+'日'"
:value="item+''">
</el-option>
</el-select>
</el-radio>
</div>
</el-radio-group>
<div class="d-s">
<div class="malou">时间段</div>
<el-time-select
style="margin-right: 10px"
placeholder="起始时间"
v-model="ruleForm.unAvailablePeriodStart"
:picker-options="{
start: '00:00',
step: '00:15',
end: '24:00'
}">
</el-time-select>
<el-time-select
placeholder="结束时间"
v-model="ruleForm.unAvailablePeriodEnd"
:picker-options="{
start: '00:00',
step: '00:15',
end: '24:00',
minTime: ruleForm.availablePeriodStart
}">
</el-time-select>
</el-radio-group>
</div>
<div style="margin-top: 20px">
<el-form-item label="时间段" prop="noUseTimeFront" label-width="70px">
<el-time-picker
v-model="ruleForm.unAvailablePeriodStart"
format="HH:mm"
value-format="HH:mm"
placeholder="请选择开始时间点">
</el-time-picker>
<el-time-picker
v-model="ruleForm.unAvailablePeriodEnd"
format="HH:mm"
value-format="HH:mm"
placeholder="请选择结束时间点">
</el-time-picker>
</el-form-item>
</div>
</el-form-item>
<!-- <el-form-item label="适用时间段" style="width: 45%;">-->
<!-- <el-radio-group v-model="ruleForm.availableType">-->
<!-- <el-radio :label="'1'" style="margin-bottom: 15px">每周-->
<!-- <el-select v-model="ruleForm.availableWeek" multiple placeholder="请选择周日期">-->
<!-- <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-radio>-->
<!-- <el-radio :label="'2'" style="margin-bottom: 15px">每月-->
<!-- <el-select v-model="ruleForm.availableDay" multiple placeholder="请选择每月固定日期">-->
<!-- <el-option v-for="item in monthList" :key="item.value" :label="item.label" :value="item.value">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-radio>-->
<!-- </el-radio-group>-->
<!-- <div class="d-s">-->
<!-- <div class="malou">时间段</div>-->
<!-- <el-time-select-->
<!-- style="margin-right: 10px"-->
<!-- placeholder="起始时间"-->
<!-- v-model="ruleForm.availablePeriodStart"-->
<!-- :picker-options="{-->
<!-- start: '00:00',-->
<!-- step: '00:15',-->
<!-- end: '24:00'-->
<!-- }">-->
<!-- </el-time-select>-->
<!-- <el-time-select-->
<!-- placeholder="结束时间"-->
<!-- v-model="ruleForm.availablePeriodEnd"-->
<!-- :picker-options="{-->
<!-- start: '00:00',-->
<!-- step: '00:15',-->
<!-- end: '24:00',-->
<!-- minTime: ruleForm.availablePeriodStart-->
<!-- }">-->
<!-- </el-time-select>-->
<!-- </div>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="不适用时间段" style="width: 50%;">-->
<!-- <el-radio-group v-model="ruleForm.unAvailableType">-->
<!-- <div>-->
<!-- <el-radio label="1" style="margin-bottom: 15px">每周-->
<!-- <el-select v-model="ruleForm.unAvailableWeek" multiple placeholder="请选择周日期">-->
<!-- <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-radio>-->
<!-- </div>-->
<!-- <div>-->
<!-- <el-radio label="2" style="margin-bottom: 15px">每月-->
<!-- <el-select v-model="ruleForm.unAvailableDay" multiple placeholder="请选择每月固定日期">-->
<!-- <el-option v-for="item in monthList" :key="item.value" :label="item.label" :value="item.value">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-radio>-->
<!-- </div>-->
<!-- </el-radio-group>-->
<!-- <div class="d-s">-->
<!-- <div class="malou">时间段</div>-->
<!-- <el-time-select-->
<!-- style="margin-right: 10px"-->
<!-- placeholder="起始时间"-->
<!-- v-model="ruleForm.unAvailablePeriodStart"-->
<!-- :picker-options="{-->
<!-- start: '00:00',-->
<!-- step: '00:15',-->
<!-- end: '24:00'-->
<!-- }">-->
<!-- </el-time-select>-->
<!-- <el-time-select-->
<!-- placeholder="结束时间"-->
<!-- v-model="ruleForm.unAvailablePeriodEnd"-->
<!-- :picker-options="{-->
<!-- start: '00:00',-->
<!-- step: '00:15',-->
<!-- end: '24:00',-->
<!-- minTime: ruleForm.availablePeriodStart-->
<!-- }">-->
<!-- </el-time-select>-->
<!-- </div>-->
<!-- </el-form-item>-->
</div>
<div class="d-s" style="justify-content: space-between">
<el-form-item label="每人领券限制" required style="width: 45%;">
@ -524,35 +608,7 @@ export default {
threelist: [],
goodsList: [],
orderShow: false,
weekList: [
{
label: "周一",
value: "周一"
},
{
label: "周二",
value: "周二"
},
{
label: "周三",
value: "周三"
},
{
label: "周四",
value: "周四"
},
{
label: "周五",
value: "周五"
}, {
label: "周六",
value: "周六"
}, {
label: "周天",
value: "周天"
}
],
weekList: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
monthList: [
{
label: "每月1号",
@ -720,7 +776,12 @@ export default {
}],
oilNumberList: [],
oilNameList: [],
weekDay: [],
monthDay: [],
weekDay1: [],
monthDay1: [],
ruleForm: {
availableOrUn:'0',
productIdList:[],
productIds:'',
productLimit:1,
@ -844,17 +905,20 @@ export default {
this.centerDialogVisible = !this.centerDialogVisible
getCardCoupon(id).then(res => {
this.ruleForm = res.data
if (this.ruleForm.availableOrUn == null || this.ruleForm.availableOrUn == ''){
this.ruleForm.availableOrUn = '0'
}
if (res.data.unAvailableWeek) {
this.ruleForm.unAvailableWeek = res.data.unAvailableWeek.split(",")
this.weekDay1 = res.data.unAvailableWeek.split(",")
}
if (res.data.unAvailableDay) {
this.ruleForm.unAvailableDay = res.data.unAvailableDay.split(",")
this.monthDay1 = res.data.unAvailableDay.split(",")
}
if (res.data.availableWeek) {
this.ruleForm.availableWeek = res.data.availableWeek.split(",")
this.weekDay = res.data.availableWeek.split(",")
}
if (res.data.availableDay) {
this.ruleForm.availableDay = res.data.availableDay.split(",")
this.monthDay = res.data.availableDay.split(",")
}
if (res.data.membershipLevel) {
this.ruleForm.membershipLevel = res.data.membershipLevel.split(",")
@ -1072,18 +1136,18 @@ export default {
},
addBlock() {
if (this.ruleForm.unAvailableWeek) {
this.ruleForm.unAvailableWeek = this.ruleForm.unAvailableWeek.toString()
}
if (this.ruleForm.unAvailableDay) {
this.ruleForm.unAvailableDay = this.ruleForm.unAvailableDay.toString()
}
if (this.ruleForm.availableWeek) {
this.ruleForm.availableWeek = this.ruleForm.availableWeek.toString()
}
if (this.ruleForm.availableDay) {
this.ruleForm.availableDay = this.ruleForm.availableDay.toString()
}
// if (this.ruleForm.unAvailableWeek) {
// this.ruleForm.unAvailableWeek = this.ruleForm.unAvailableWeek.toString()
// }
// if (this.ruleForm.unAvailableDay) {
// this.ruleForm.unAvailableDay = this.ruleForm.unAvailableDay.toString()
// }
// if (this.ruleForm.availableWeek) {
// this.ruleForm.availableWeek = this.ruleForm.availableWeek.toString()
// }
// if (this.ruleForm.availableDay) {
// this.ruleForm.availableDay = this.ruleForm.availableDay.toString()
// }
if (this.ruleForm.membershipLevel) {
this.ruleForm.membershipLevel = this.ruleForm.membershipLevel.toString()
}
@ -1091,6 +1155,10 @@ export default {
this.ruleForm.oilNumber = this.ruleForm.oilNumber.toString()
}
let productIds = this.ruleForm.productIdList + ''
this.ruleForm.availableWeek = this.weekDay + ''
this.ruleForm.availableDay = this.monthDay + ''
this.ruleForm.unAvailableWeek = this.weekDay1 + ''
this.ruleForm.unAvailableDay = this.monthDay1 + ''
this.ruleForm.productIds = productIds
if (!this.ruleForm.id) {

View File

@ -3,6 +3,7 @@ package com.fuint.business.fleet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fuint.framework.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -72,6 +73,7 @@ public class FleetConsumeRecord extends BaseEntity implements Serializable {
/**
* 订单完成时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date paymentTime;
/**
* 创建者

View File

@ -24,8 +24,9 @@
ORDER BY create_time DESC
</select>
<select id="selectGrowthValueChangeList" resultType="com.fuint.business.fleet.vo.FleetConsumeRecordVo">
SELECT * , mt.name storeName FROM fleet_consume_record fc
SELECT * , mt.name storeName , fi.card_type cardType FROM fleet_consume_record fc
left join mt_store mt on mt.id = fc.store_id
left join fleet_info fi on fi.id = fc.fleet_id
<where>
<if test="fleetConsumeRecord.storeId != null and fleetConsumeRecord.storeId != ''">
and fc.store_id = #{fleetConsumeRecord.storeId}
@ -36,8 +37,11 @@
<if test="fleetConsumeRecord.fleetId != null and fleetConsumeRecord.fleetId != ''">
and fc.fleet_id = #{fleetConsumeRecord.fleetId}
</if>
<if test="fleetConsumeRecord.fromType != null and fleetConsumeRecord.fromType != ''">
and fc.from_type = #{fleetConsumeRecord.fromType}
</if>
<if test="fleetConsumeRecord.startTime != null and fleetConsumeRecord.startTime != ''">
and fc.create_time between #{fleetConsumeRecord.startTime} and #{fleetConsumeRecord.endTime}
and fc.payment_time between #{fleetConsumeRecord.startTime} and #{fleetConsumeRecord.endTime}
</if>
</where>

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.fleet.entity.FleetInfo;
import com.fuint.business.fleet.vo.FleetInfoUniVo;
import com.fuint.business.fleet.vo.FleetInfoVo;
import com.fuint.framework.web.ResponseObject;
import java.util.List;
@ -98,4 +99,10 @@ public interface FleetInfoService {
* @return
*/
int ifFleetAdmin(Integer fleetId);
/**
* 车队卡支付
* @param orderId
*/
int payFleet(String orderId, Double money);
}

View File

@ -2,6 +2,7 @@ package com.fuint.business.fleet.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -9,8 +10,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuint.business.fleet.entity.FleetConsumeRecord;
import com.fuint.business.fleet.entity.FleetInfo;
import com.fuint.business.fleet.entity.FleetMember;
import com.fuint.business.fleet.mapper.FleetConsumeRecordMapper;
import com.fuint.business.fleet.mapper.FleetInfoMapper;
import com.fuint.business.fleet.mapper.FleetMemberMapper;
import com.fuint.business.fleet.service.FleetInfoService;
@ -18,6 +21,8 @@ import com.fuint.business.fleet.vo.FleetInfoUniVo;
import com.fuint.business.fleet.vo.FleetInfoVo;
import com.fuint.business.member.entity.LJStaff;
import com.fuint.business.member.service.ILJStaffService;
import com.fuint.business.order.entity.AllOrderInfo;
import com.fuint.business.order.mapper.AllOrderInfoMapper;
import com.fuint.business.store.mapper.MtStoreMapper;
import com.fuint.business.storeInformation.entity.LJStore;
import com.fuint.business.storeInformation.service.ILJStoreService;
@ -76,6 +81,12 @@ public class FleetInfoServiceImpl extends ServiceImpl<FleetInfoMapper, FleetInfo
@Resource
private ILJStoreService iljStoreService;
@Autowired
private AllOrderInfoMapper allOrderInfoMapper;
@Autowired
private FleetConsumeRecordMapper fleetConsumeRecordMapper;
@Override
public IPage<FleetInfoVo> queryPage(Page page, FleetInfoVo fleetInfo) {
@ -395,6 +406,64 @@ public class FleetInfoServiceImpl extends ServiceImpl<FleetInfoMapper, FleetInfo
return 0;
}
/**
* 车队卡支付
*
* @param orderId
*/
@Override
public int payFleet(String orderId, Double money) {
AllOrderInfo allOrderInfo = allOrderInfoMapper.selectOne(new LambdaQueryWrapper<AllOrderInfo>()
.eq(AllOrderInfo::getId, orderId));
if (ObjectUtil.isEmpty(allOrderInfo)) {
throw new RuntimeException("订单不存在");
}
//获取车队订单表的订单信息
FleetConsumeRecord fleetConsumeRecord = fleetConsumeRecordMapper.selectOne(new LambdaQueryWrapper<FleetConsumeRecord>()
.eq(FleetConsumeRecord::getOrderNo, allOrderInfo.getOrderNo()));
if (ObjectUtil.isEmpty(fleetConsumeRecord)) {
throw new RuntimeException("车队订单不存在");
}
// 获取当前车队卡
FleetInfo fleetInfo = baseMapper.selectOne(new LambdaQueryWrapper<FleetInfo>()
.eq(FleetInfo::getId, fleetConsumeRecord.getFleetId()));
//判断支付金额是否超过当前余额
if (money > fleetInfo.getTotalBalance()){
throw new RuntimeException("支付金额超过当前余额");
}
//更新时间
DateTime now = DateUtil.date();
//计算车队的赠送金额与充值金额比例
double recharge = fleetInfo.getRechargeAmount() / fleetInfo.getTotalBalance();
double give = fleetInfo.getGiveAmount() / fleetInfo.getTotalBalance();
//更新当前余额
fleetInfo.setTotalBalance(fleetInfo.getTotalBalance() - money);
//更新赠送金额与充值金额
fleetInfo.setRechargeAmount(fleetInfo.getRechargeAmount() - (money * recharge));
fleetInfo.setGiveAmount(fleetInfo.getGiveAmount() - (money * give));
fleetInfo.setUpdateTime(now);
//更新车队卡余额
baseMapper.updateById(fleetInfo);
//更新订单状态
allOrderInfo.setStatus("paid");
allOrderInfo.setPayTime(now);
allOrderInfo.setUpdateTime(now);
allOrderInfoMapper.updateById(allOrderInfo);
//更新车队订单表
fleetConsumeRecord.setOrderStatus("paid");
fleetConsumeRecord.setPaymentTime(now);
fleetConsumeRecord.setUpdateTime(now);
//计算扣完款后的余额
fleetConsumeRecord.setAfterTheChange(fleetInfo.getTotalBalance());
return fleetConsumeRecordMapper.updateById(fleetConsumeRecord);
}
/**
* 创建用户的基础信息

View File

@ -307,10 +307,12 @@ public class FleetMemberServiceImpl extends ServiceImpl<FleetMemberMapper, Fleet
// }
if (fleetMember.getAdjustType().equals("0")) {
fleetLinesChange.setRemainingCreditLimit(fleetMember1.getRemainingCreditLimit() + fleetMember.getAdjustLimit());
fleetMember.setSecondaryCardLimit(fleetMember1.getRemainingCreditLimit() + fleetMember.getAdjustLimit());
fleetMember.setSecondaryCardLimit(fleetMember1.getSecondaryCardLimit() + fleetMember.getAdjustLimit());
fleetMember.setRemainingCreditLimit(fleetMember1.getRemainingCreditLimit() + fleetMember.getAdjustLimit());
} else {
fleetLinesChange.setRemainingCreditLimit(fleetMember1.getRemainingCreditLimit() - fleetMember.getAdjustLimit());
fleetMember.setSecondaryCardLimit(fleetMember1.getRemainingCreditLimit() - fleetMember.getAdjustLimit());
fleetMember.setSecondaryCardLimit(fleetMember1.getSecondaryCardLimit() - fleetMember.getAdjustLimit());
fleetMember.setRemainingCreditLimit(fleetMember1.getRemainingCreditLimit() - fleetMember.getAdjustLimit());
}
}
fleetLinesChange.setCreateBy(nowAccountInfo.getId().toString());

View File

@ -12,4 +12,5 @@ public class FleetConsumeRecordVo extends FleetConsumeRecord {
private String endTime;
private String fleetName;
private String storeName;
private String cardType;
}

View File

@ -1,11 +1,11 @@
# \u57FA\u672C\u914D\u7F6E
server.port=8080
env.profile=dev
#env.properties.path=D:/my_project/oil-station/fuintBackend/configure/
env.properties.path=D:/Code/yuzhan/oil-station/fuintBackend/configure/
#env.properties.path=D:/workspaces/oil-stations/fuintBackend/configure/
#env.properties.path=F:/work/oilSystem/fuintBackend/configure/
#env.properties.path=D:/oil/new-oil/oilSystem/fuintBackend/configure/
#env.properties.path=D:/work/oilSystem/fuintBackend/configure/
#env.properties.path=D:/code/bulidmap/oil-station/fuintBackend/configure
env.properties.path=D:/Code/yuzhan/oil-station/fuintBackend/configure
#env.properties.path=/www/wwwroot/shenlanshuke/oilAdmin/
# \u6570\u636E\u5E93\u914D\u7F6E

View File

@ -107,6 +107,7 @@
}
.el-dialog__body {
padding: 30px;
padding-top: 0px;
}
.el-dialog__title,.el-dialog__close{
color: #fff;

View File

@ -198,7 +198,7 @@
.el-form--inline .el-form-item {
margin-right: 44px;
}

View File

@ -121,16 +121,16 @@
<el-tab-pane label="全部" name='first'></el-tab-pane>
<el-tab-pane v-for="(item,index) in giftCategoryList" :label="item.categoryName" :name='item.id.toString()'></el-tab-pane>
</el-tabs>
<div style="width: 200px; ">
<el-input v-model="queryParams.giftName" @input="getGift()" placeholder="请输入内容"></el-input>
</div>
</div>
<div style="width: 200px;margin-left: 2%; ">
<el-input v-model="queryParams.giftName" @input="getGift()" placeholder="请输入内容"></el-input>
</div>
<div class="wrap-right">
<div class="ts-box">
<div class="wrap-right-box" v-for="(item,index) in giftList" :key="item.id" @click="addGift(item)">
<el-card shadow="hover" >
<div class="new_card" >
<el-badge :hidden="!item.markPurchases>0" :value="item.markPurchases" class="item">
<div class="box-six">
<img :src="imagePath+item.coverImage" >
@ -155,7 +155,7 @@
</div>
</div>
</el-badge>
</el-card>
</div>
</div>
</div>
</div>
@ -1383,6 +1383,7 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
overflow: hidden;
margin: 0px 10px;
height: 98vh;
background: #fff;
/*background: white;*/
}
.center-top{
@ -1685,7 +1686,7 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
}
.wrap-right{
width: 100%;
height: 78vh;
background: white;
overflow: auto;
}
@ -1695,16 +1696,20 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
}
.wrap-right-box{
width: 205px;
width: 20%;
height: 270px;
/*margin-right: 10px;*/
/*margin-bottom: 10px;*/
margin: 5px;
display: flex;
align-items: center;
justify-content: center;
}
.box-six{
width: 100%;
height: 160px;
width: 164px;
height: 150px;
img{
width: 100%;
height: 100%;
@ -1778,4 +1783,18 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
margin: 8px 10px;
cursor: pointer;
}
.new_card{
border: 1px solid #eceff1;
box-sizing: border-box;
padding: 10px;
border-radius: 8px;
}
//
.center-left{
width: 33%;
border-radius: 8px;
overflow: hidden;
height: 98vh;
position: relative;
}
</style>

View File

@ -9,7 +9,7 @@
v-model="queryParams2.unitName"
placeholder="单位名称"
clearable
style="width: 240px;"
style="width: 200px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -18,7 +18,7 @@
v-model="queryParams2.personCredit"
placeholder="挂账人"
clearable
style="width: 240px;"
style="width: 200px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -27,7 +27,7 @@
v-model="queryParams2.contactMobile"
placeholder="联系电话"
clearable
style="width: 240px;"
style="width: 200px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -36,7 +36,7 @@
v-model="queryParams2.status"
placeholder="状态"
clearable
style="width: 240px"
style="width: 200px"
>
<el-option label="启用" value="qy"/>
<el-option label="禁用" value="jy"/>
@ -67,67 +67,43 @@
<!-- 统计-->
<div class="top_news">
<div class="box-gang">
<div class="box">
<div class="size-bole">{{ total3 }}</div>
<div class="size-hui">
<div class="nei">挂账单位总数</div>
<div class="icon-img">
<img src="../../../assets/images/cut/组 4666@2x.png" alt="">
</div>
<div class="box2">
<div style="font-size: 26px;color: #0DC291;font-weight: bold;margin-top: 5px">
{{total3 || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #0DC291"></div>
<div style="font-weight: bold;font-size: 13px;margin-left: 5px">挂账单位总数</div>
</div>
</div>
<div class="box">
<div class="size-hui"></div>
<div class="size-bole">{{ allCreditLimit || 0 }}</div>
<div class="size-hui">
<div class="nei">预设挂账总额</div>
<div class="icon-img">
<img src="../../../assets/images/cut/组 4666@2x.png" alt="">
</div>
<div class="box2">
<div style="font-size: 26px;color: #00CAFF;font-weight: bold;margin-top: 5px">
{{allCreditLimit || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #00CAFF"></div>
<div style="font-weight: bold;font-size: 13px;margin-left: 5px">预设挂账总额</div>
</div>
</div>
<div class="box1">
<div class="size-bole">{{ allUsedCreditLimit || 0 }}</div>
<div class="size-hui">
<div class="nei">已使用挂账总额</div>
<div class="icon-img">
<img src="../../../assets/images/cut/组 5017@2x.png" alt="">
</div>
<div class="box2">
<div style="font-size: 26px;color: #F44522;font-weight: bold;margin-top: 5px">
{{allUsedCreditLimit || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #F44522"></div>
<div style="font-weight: bold;font-size: 13px;margin-left: 5px">已使用挂账总额</div>
</div>
</div>
<div class="box1">
<div class="size-bole">{{ allResidueCreditLimit || 0 }}</div>
<div class="size-hui">
<div class="nei">剩余可挂账总额</div>
<div class="icon-img">
<img src="../../../assets/images/cut/组 5017@2x.png" alt="">
</div>
<div class="box2">
<div style="font-size: 26px;color: #FA6400;font-weight: bold;margin-top: 5px">
{{allResidueCreditLimit || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #FA6400"></div>
<div style="font-weight: bold;font-size: 13px;margin-left: 5px">剩余可挂账总额</div>
</div>
</div>
</div>
<!-- <div class="box-gang">-->
<!-- <div class="box">-->
<!-- <div class="size-hui">挂账笔数</div>-->
<!-- <div class="size-bole">{{ total3 }}</div>-->
<!-- </div>-->
<!-- <div class="box">-->
<!-- <div class="size-hui">挂账总额</div>-->
<!-- <div class="size-bole">{{ allAmount }}</div>-->
<!-- </div>-->
<!-- <div class="box">-->
<!-- <div class="size-hui">归还笔数</div>-->
<!-- <div class="size-bole">{{ returnTotal }}</div>-->
<!-- </div>-->
<!-- <div class="box">-->
<!-- <div class="size-hui">归还总额</div>-->
<!-- <div class="size-bole">{{ returnAllAmount }}</div>-->
<!-- </div>-->
<!-- <div class="box">-->
<!-- <div class="size-hui">未还金额</div>-->
<!-- <div class="size-bole">{{ noReturnAllAmount }}</div>-->
<!-- </div>-->
<!-- </div>-->
<div class="table-box">
<el-table
:data="creditUnitList"
@ -1702,4 +1678,14 @@ import {getLodop} from "@/api/LodopFuncs";
padding: 15px;
margin-bottom: 10px;
}
.box2 {
padding: 5px;
margin-right: 20px;
margin-bottom: 20px;
padding-left: 20px;
width: 211px;
height: 70px;
border-radius: 6px 6px 6px 6px;
border: 1px solid #FF9655;
}
</style>

View File

@ -48,6 +48,7 @@
</div>
</div>
</div>
<!-- -->
<div class="center-left-hj">
<div class="hj-box" style="justify-content: left">油品:{{ oilAmount.toFixed(2) }}</div>
<div class="hj-box" style="border-left: 1px solid #d1d1d4; border-right: 1px solid #d1d1d4;">商品:{{ goodsAmount.toFixed(2) }}</div>
@ -56,15 +57,10 @@
<div style="overflow-y: scroll;height: 42vh">
<div class="center-left-hj" v-show="isMember && refuelMoney && refuelMoney.length>0">
<div>
<!-- <el-checkbox-->
<!-- style="color: black;font-size: 16px"-->
<!-- v-model="checkAll3" @change="handleCheckAllChange3">-->
<!-- </el-checkbox>-->
囤油卡
<div style="margin: 5px 0" v-for="(item,index) in refuelMoney" :key="index">
{{ item.type }}
锁价{{ item.lockupPrice ? item.lockupPrice : 0.00 }}/L
<!-- 余额{{ item.refuelMoney ? item.refuelMoney : 0.00 }}L-->
</div>
</div>
<div v-if="oilCardAmount>0">- {{ oilCardAmount }}</div>
@ -118,8 +114,6 @@
<div style="width: 200px">{{ getName(oilNameList,item.oilName) }}_{{getName1(gunList,item.gunName)}}</div>
<div style="line-height: 20px;width:150px;font-size: 12px;text-align: right">
<div style="color: red">-{{ item.discount }}</div>
<!-- <div v-if="item.type=='满减优惠'" style="color: grey">消费满{{ item.full }}立减{{ item.reduce }}</div>-->
<!-- <div v-else style="color: grey">消费满{{ item.full }}每升优惠{{ item.liters }}</div>-->
</div>
</div>
</el-checkbox>
@ -129,7 +123,7 @@
<el-checkbox
style="color: black;font-size: 16px"
v-model="checkAll2" @change="handleCheckAllChange2">
</el-checkbox><!-- :indeterminate="isIndeterminate2"-->
</el-checkbox>
等级优惠
</div>
</el-popover>
@ -152,20 +146,6 @@
placement="bottom-start"
width="400"
trigger="click">
<!-- <div>-->
<!-- <el-radio-group v-model="checkedCities5" @input="handleCheckedCitiesChange5">-->
<!-- <el-radio v-for="(item,index) in couponDiscount"-->
<!-- :label="item.gunName" :key="index" style="display: flex;">-->
<!-- <div style="display: flex;justify-content: space-between;height: 40px;line-height: 40px;">-->
<!-- <div style="width: 200px">{{ getName(oilNameList,item.oilName) }}_{{getName1(gunList,item.gunName)}}</div>-->
<!-- <div style="line-height: 20px;width:150px;font-size: 12px;text-align: right">-->
<!-- <div style="color: red">-{{ item.discount }}</div>-->
<!--&lt;!&ndash; <div style="color: grey">{{ item.full }}{{ item.reduce }}</div>&ndash;&gt;-->
<!-- </div>-->
<!-- </div>-->
<!-- </el-radio>-->
<!-- </el-radio-group>-->
<!-- </div>-->
<div slot="reference">
<el-checkbox
style="color: black;font-size: 16px"
@ -195,10 +175,6 @@
</div>
<div class="bottom-posi">
<div class="center-left-wrap">
<!-- <div class="wrap-box" value="oilCard"
:class="{ 'wrap-box2': 'oilCard' == payType }" >
<span @click="payMethod('oilCard')">囤油卡</span>
</div>-->
<div class="wrap-box" value="balance" @click="payMethod('balance')"
:class="{ 'wrap-box2': 'balance' == payType }" >
<span>储值卡</span>
@ -4808,6 +4784,27 @@
border: 1px solid #30a1ff;
}
.center-left-bottom{
width: 100%;
background-color: white;
border-radius: 8px;
box-sizing: border-box;
padding: 10px;
display: flex;
align-items: center;
justify-content: space-between;
}
.center-left-lv{
width: 60%;
height: 80px;
background: linear-gradient( 312deg, #FF945B 0%, #FEB37C 100%);
color: white;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
}
.wrap-box2{
background: #30a1ff !important;
color: white;
@ -4844,16 +4841,7 @@
box-sizing: border-box;
overflow: auto;
}
.center-left-bottom{
width: 100%;
background-color: white;
border-radius: 8px;
box-sizing: border-box;
padding: 10px;
display: flex;
align-items: center;
justify-content: space-between;
}
.bottom-qk{
border: 1px solid #99a9bf;
box-sizing: border-box;
@ -4904,17 +4892,7 @@
.price-red{
color: red;
}
.center-left-lv{
width: 60%;
height: 80px;
background: linear-gradient( 312deg, #FF945B 0%, #FEB37C 100%);
color: white;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
}
.th-box{
width: 100%;
display: flex;

View File

@ -17,7 +17,7 @@
placement="bottom"
trigger="click">
trigger="hover">
<div> 储值卡1000.00 </div>
<div> 储值卡1000.00 </div>
<div> 储值卡1000.00 </div>
@ -114,20 +114,7 @@
</div>
</div>
<!-- <div class="three-top">-->
<!-- <div class="addbor">-->
<!-- <div class="">扫码支付</div>-->
<!-- <div class="or_num">0.00</div>-->
<!-- </div>-->
<!-- <div class="addbor">-->
<!-- <div class="">找零</div>-->
<!-- <div class="or_num">0.00</div>-->
<!-- </div>-->
<!-- <div class="addbor">-->
<!-- <div class="">加油员</div>-->
<!-- <div class="or_num">0.00</div>-->
<!-- </div>-->
<!-- </div>-->
<div class="er-box"></div>
<div class="wrap-box">
<div class="f-box" v-for="(item,index) in payList" :class="{'f-acvite' : item.dictValue == payWay }"
@ -214,7 +201,9 @@
<div class="orerate_name">操作</div>
</div>
<!-- 渲染商品列表 -->
<div class="taber-box" v-for="(item,index) in goodsList" :key="index">
<div class="goods_name">
<!-- <img src="../../../assets/images/goods.png" style="width: 30px;height: 30px">-->
{{ item.name }}
@ -222,7 +211,7 @@
<div class="stock_name">{{ item.stock }}</div>
<div class="u-price_name">{{ item.retailPrice }}</div>
<div class="u-price_name">{{ item.retailPrice }}</div>
<div class="num_name"> <el-input-number v-model="item.num" size="mini" :min="1" :max="999" label="描述文字"></el-input-number></div>
<div class="num_name"> <el-input-number v-model="goodsList[index].num" @change="handleCilone" :max="9999" size="mini" ></el-input-number></div>
<div class="orerate_name">
<span style="color: red;cursor: pointer" @click="deleteGoods(item.id)">删除</span>
</div>
@ -253,11 +242,11 @@
width="800px"
>
<div class="ds-tc">
<div class="ds-tc" style="margin-top: -20px">
<div class="left_tc">
<div class="t-tc">
<div style="font-size: 18px;font-weight: bold">所有卡券</div>
<div style="font-size: 16px;color: #ff9655">打印所有二维码</div>
</div>
<div class="wrap-tc">
<div class="tc_wa" :class="{'tc-active' : freeIndex == index }" @click="setFreeIndex(index)"
@ -278,11 +267,16 @@
<div style="font-weight: 600;font-size: 16px;color: #333333;margin-bottom: 5px">使用规则</div>
<div>优惠说明价值10元代金券一张消费满100可用</div>
<div style="margin-top: 20px;text-align: end">
<el-button type="primary" >确定赠送</el-button>
</div>
</div>
</div>
<div style="display: flex;justify-content: center">
<el-button type="primary" >确定赠送</el-button>
</div>
</el-dialog>
@ -647,6 +641,7 @@ export default {
num: '0'
},
],
nums:0,
payList: [
],
//
@ -808,6 +803,9 @@ export default {
},
methods: {
handleCilone(value){
console.log(value)
},
/**
* 获取优惠总金额
* */
@ -1165,6 +1163,7 @@ export default {
restVipUser(){
this.userInfo = false
this.chooseVipUser = {}
this.userMobile = ''
this.getActivity()
this.getCoupon()
},
@ -2121,7 +2120,7 @@ input {
}
.left_input {
width: 70%;
width: 80%;
overflow: hidden;
box-sizing: border-box;
display: flex;
@ -2162,9 +2161,9 @@ input {
margin-top: 15px;
}
.tc_wa{
width: 32%;
width: 30%;
margin-bottom: 4%;
margin-right: 1%;
margin-right: 3%;
box-sizing: border-box;
padding: 10px;
background: url("./imgs/dx.png") no-repeat;
@ -2187,4 +2186,7 @@ input {
.el-radio-group .or_num{
float: right;
}
.el-dialog__body{
padding-top: 0px !important;
}
</style>

View File

@ -110,9 +110,10 @@ export default {
</div>
<div v-if="tabIndex == 0">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm">
<el-form-item label="充值金额" prop="price" >
<el-form-item label="充值金额" prop="price" style="margin-bottom: 10px" >
</el-form-item>
<div class="d-s">
<div class="k_kang" v-for="(item,index) in cardList" :key="index" @click="chooseActive(item,index)" >
{{item.activeName}}
<img src="../imgs/r-j.png" class="p-img" v-if="kIndex == index" >

View File

@ -38,14 +38,14 @@
<el-date-picker
v-model="beginTime"
style="width: 140px"
style="width: 200px"
type="date"
placeholder="开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
style="width: 200px"
type="date"
placeholder="结束日期">
</el-date-picker>
@ -65,8 +65,7 @@
<div class="box-gang">
<div class="box2">
<div style="font-size: 26px;color: #0DC291;font-weight: bold;margin-top: 5px">
{{ orderStatistics.theTotalAmountOfTheOrder ? orderStatistics.theTotalAmountOfTheOrder : 0 }}/
{{ orderStatistics.numberOfStrokes ? orderStatistics.numberOfStrokes : 0 }}
{{ orderStatistics.theTotalAmountOfTheOrder ? orderStatistics.theTotalAmountOfTheOrder : 0 }}/{{ orderStatistics.numberOfStrokes ? orderStatistics.numberOfStrokes : 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #0DC291"></div>
@ -84,8 +83,7 @@
</div>
<div class="box2">
<div style="font-size: 26px;color: #F44522;font-weight: bold;margin-top: 5px">
{{ orderStatistics.oilDiscounts ? orderStatistics.oilDiscounts : 0 }}/
{{ seekZeroAmount }}
{{ orderStatistics.oilDiscounts ? orderStatistics.oilDiscounts : 0 }}/{{ seekZeroAmount }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #F44522"></div>
@ -94,8 +92,7 @@
</div>
<div class="box2">
<div style="font-size: 26px;color: #FA6400;font-weight: bold;margin-top: 5px">
{{ orderStatistics.numberOfStrokesByOil ? orderStatistics.numberOfStrokesByOil : 0 }}/
{{ orderStatistics.theTotalAmountOfOil ? orderStatistics.theTotalAmountOfOil : 0 }}
{{ orderStatistics.numberOfStrokesByOil ? orderStatistics.numberOfStrokesByOil : 0 }}/{{ orderStatistics.theTotalAmountOfOil ? orderStatistics.theTotalAmountOfOil : 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #FA6400"></div>
@ -104,8 +101,7 @@
</div>
<div class="box2">
<div style="font-size: 26px;color: #FE59E5;font-weight: bold;margin-top: 5px">
{{ orderStatistics.numberOfStrokesByGoods ? orderStatistics.numberOfStrokesByGoods : 0 }}/
{{ orderStatistics.theTotalAmountOfTheItem ? orderStatistics.theTotalAmountOfTheItem : 0 }}
{{ orderStatistics.numberOfStrokesByGoods ? orderStatistics.numberOfStrokesByGoods : 0 }}/{{ orderStatistics.theTotalAmountOfTheItem ? orderStatistics.theTotalAmountOfTheItem : 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #FE59E5"></div>
@ -1516,6 +1512,7 @@ export default {
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
@ -1529,7 +1526,6 @@ export default {
text-align: left;
font-style: normal;
text-transform: none;
.nei {
width: 150px;
}
@ -1596,7 +1592,7 @@ export default {
box-sizing: border-box;
padding: 20px;
margin: 0 auto;
min-height: 82vh;
min-height: 84vh;
}
.top_new{
display: flex;
@ -1604,9 +1600,10 @@ export default {
height: 65px;
background: #fff;
width: 98%;
margin: 10px auto;
margin: 5px auto;
border-radius: 8px;
box-sizing: border-box;
padding: 15px
}
</style>

View File

@ -2,7 +2,7 @@
<template>
<div>
<div class="top_new">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form :model="queryParams" ref="queryForm" size="small" style="width: 100%" :inline="true" v-show="showSearch">
<el-form-item label="" prop="staffId">
<el-select
v-model="queryParams.staffId"
@ -62,19 +62,22 @@
</el-date-picker>
</el-form-item>
<el-form-item >
<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="exportExcelGoodsOrder()">导出</el-button>
</el-form-item>
</el-form>
<div style="height: 32px;width: 20%">
<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="exportExcelGoodsOrder()">导出</el-button>
</div>
</div>
<div class="cot-box">
<div>
<div class="box-gang">
<div class="box2">
<div style="font-size: 26px;color: #0DC291;font-weight: bold;margin-top: 5px">
{{ orderStatistics.theTotalAmount || 0 }}/
{{ orderStatistics.numberOfProducts || 0 }}
{{ orderStatistics.theTotalAmount || 0 }}/{{ orderStatistics.numberOfProducts || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #0DC291"></div>
@ -101,8 +104,7 @@
</div>
<div class="box2">
<div style="font-size: 26px;color: #FA6400;font-weight: bold;margin-top: 5px">
{{ orderStatistics.wechat || 0 }}/
{{ orderStatistics.alipay || 0 }}
{{ orderStatistics.wechat || 0 }}/{{ orderStatistics.alipay || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #FA6400"></div>
@ -111,8 +113,7 @@
</div>
<div class="box2">
<div style="font-size: 26px;color: #2B63F4;font-weight: bold;margin-top: 5px">
{{ orderStatistics.wechat || 0 }}/
{{ orderStatistics.alipay || 0 }}
{{ orderStatistics.wechat || 0 }}/{{ orderStatistics.alipay || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #2B63F4"></div>
@ -924,14 +925,14 @@ export default {
margin: 0 auto;
}
.el-form--inline .el-form-item {
margin-right: 30px;
}
.top_new{
display: flex;
justify-content: space-between;
background: #fff;
width: 98%;
width: 100%;
margin: 10px auto;
border-radius: 8px;
box-sizing: border-box;

View File

@ -3,99 +3,106 @@
<template>
<div>
<div class="top_new">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="" prop="staffId">
<el-select
v-model="queryParams.staffId"
clearable
placeholder="请选择操作人">
<el-option v-for="item in staffList" :key="item.id" :label="item.realName" :value="item.id">
<span style="float: left">{{ item.realName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.mobile }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="">
<el-input v-model="queryParams.orderNo" clearable placeholder="请输入订单号"></el-input>
</el-form-item>
<el-form-item label="" prop="terminal">
<el-select
v-model="queryParams.terminal"
clearable
placeholder="请选择订单类型"
>
<el-option v-for="item in terminalList"
:key="item.id"
:label="item.dictLabel"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="oilGunNum">
<el-select
v-model="queryParams.oilGunNum"
filterable
clearable
placeholder="请选择油品油号"
>
<el-option v-for="item in oilGunList"
:key="item.id"
:label="item.gunName"
:value="item.id">
<span style="float: left">{{ item.oilName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.gunName }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="oilGunNum">
<el-select
v-model="queryParams.oilGunNum"
filterable
clearable
placeholder="请选择油枪"
>
<el-option v-for="item in oilGunList"
:key="item.id"
:label="item.gunName"
:value="item.id">
<span style="float: left">{{ item.oilName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.gunName }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType">
<el-select
v-model="queryParams.payType"
clearable
placeholder="请选择支付方式"
>
<el-option v-for="item in payList"
:key="item.id"
:label="item.dictLabel"
:value="item.dictValue">
</el-option>
<el-option label="电子囤油卡" value="oilCard"/>
<el-option label="电子电子储值卡" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="">
<el-input v-model="queryParams.payUser" clearable placeholder="请输入付款用户"></el-input>
</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 :model="queryParams" width="100%" ref="queryForm" size="small" :inline="true" label-width="68px">
<div style=" width: 1645px; display: flex; justify-content: space-between">
<el-form-item label="" prop="staffId">
<el-select
v-model="queryParams.staffId"
clearable
placeholder="请选择操作人">
<el-option v-for="item in staffList" :key="item.id" :label="item.realName" :value="item.id">
<span style="float: left">{{ item.realName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.mobile }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="">
<el-input v-model="queryParams.orderNo" clearable placeholder="请输入订单号"></el-input>
</el-form-item>
<el-form-item label="" prop="terminal">
<el-select
v-model="queryParams.terminal"
clearable
placeholder="请选择订单类型"
>
<el-option v-for="item in terminalList"
:key="item.id"
:label="item.dictLabel"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="oilGunNum">
<el-select
v-model="queryParams.oilGunNum"
filterable
clearable
placeholder="请选择油品油号"
>
<el-option v-for="item in oilGunList"
:key="item.id"
:label="item.gunName"
:value="item.id">
<span style="float: left">{{ item.oilName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.gunName }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="oilGunNum">
<el-select
v-model="queryParams.oilGunNum"
filterable
clearable
placeholder="请选择油枪"
>
<el-option v-for="item in oilGunList"
:key="item.id"
:label="item.gunName"
:value="item.id">
<span style="float: left">{{ item.oilName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.gunName }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType">
<el-select
v-model="queryParams.payType"
clearable
placeholder="请选择支付方式"
>
<el-option v-for="item in payList"
:key="item.id"
:label="item.dictLabel"
:value="item.dictValue">
</el-option>
<el-option label="电子囤油卡" value="oilCard"/>
<el-option label="电子电子储值卡" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="">
<el-input v-model="queryParams.payUser" clearable placeholder="请输入付款用户"></el-input>
</el-form-item>
</div>
<el-form-item label="" >
<el-date-picker
v-model="beginTime"
style="width: 215px"
type="date"
placeholder="开始日期">
</el-date-picker>
<span >
</span>
<el-date-picker
v-model="endTime"
style="width: 215px"
type="date"
placeholder="结束日期">
</el-date-picker>
</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>
@ -109,8 +116,7 @@
<div class="box-gang">
<div class="box2">
<div style="font-size: 26px;color: #0DC291;font-weight: bold;margin-top: 5px">
{{ orderStatistics.theTotalAmountOfOil || 0 }}/
{{ orderStatistics.numberOfOilPens || 0 }}
{{ orderStatistics.theTotalAmountOfOil || 0 }}/{{ orderStatistics.numberOfOilPens || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #0DC291"></div>
@ -137,8 +143,7 @@
</div>
<div class="box2">
<div style="font-size: 26px;color: #FA6400;font-weight: bold;margin-top: 5px">
{{ orderStatistics.wechat || 0 }}/
{{ orderStatistics.alipay || 0 }}
{{ orderStatistics.wechat || 0 }}/{{ orderStatistics.alipay || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #FA6400"></div>
@ -147,8 +152,7 @@
</div>
<div class="box2">
<div style="font-size: 26px;color: #2B63F4;font-weight: bold;margin-top: 5px">
{{ orderStatistics.wechat || 0 }}/
{{ orderStatistics.alipay || 0 }}
{{ orderStatistics.wechat || 0 }}/{{ orderStatistics.alipay || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #2B63F4"></div>
@ -157,8 +161,7 @@
</div>
<div class="box2">
<div style="font-size: 26px;color: #FE59E5;font-weight: bold;margin-top: 5px">
{{ orderStatistics.wechat || 0 }}/
{{ orderStatistics.alipay || 0 }}
{{ orderStatistics.wechat || 0 }}/{{ orderStatistics.alipay || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #FE59E5"></div>
@ -913,6 +916,7 @@ export default {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap; /* 允许内容换行 */
}
@ -933,7 +937,7 @@ export default {
}
.el-form--inline .el-form-item {
margin-right: 44px;
}
.size-hui {
@ -1021,7 +1025,6 @@ export default {
.box2 {
padding: 5px;
margin-right: 20px;
margin-bottom: 20px;
padding-left: 20px;
width: 211px;
@ -1044,13 +1047,12 @@ export default {
height: 120px;
background: #fff;
width: 98%;
margin: 10px auto;
margin: 5px auto;
border-radius: 8px;
box-sizing: border-box;
padding: 15px;
margin-bottom: 10px;
}
.new_bottom{
min-height: 80vh;
min-height: 65vh;
}
</style>

View File

@ -60,19 +60,21 @@
</el-date-picker>
</el-form-item>
<el-form-item >
<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="exportExcelVip()">导出</el-button>
</el-form-item>
</el-form>
<div style="height: 32px;width: 16%">
<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="exportExcelVip()">导出</el-button>
</div>
</div>
<div class="cot-box">
<div>
<div class="box-gang">
<div class="box2">
<div style="font-size: 26px;color: #0DC291;font-weight: bold;margin-top: 5px">
{{ orderStatistics.totalAmountReceived || 0 }}/
{{ orderStatistics.numberOfTopUps || 0 }}
{{ orderStatistics.totalAmountReceived || 0 }}/{{ orderStatistics.numberOfTopUps || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #0DC291"></div>
@ -99,8 +101,7 @@
</div>
<div class="box2">
<div style="font-size: 26px;color: #FA6400;font-weight: bold;margin-top: 5px">
{{ orderStatistics.wechat || 0 }}/
{{ orderStatistics.alipay || 0 }}
{{ orderStatistics.wechat || 0 }}/{{ orderStatistics.alipay || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #FA6400"></div>
@ -109,8 +110,7 @@
</div>
<div class="box2">
<div style="font-size: 26px;color: #2B63F4;font-weight: bold;margin-top: 5px">
{{ orderStatistics.wechat || 0 }}/
{{ orderStatistics.alipay || 0 }}
{{ orderStatistics.wechat || 0 }}/{{ orderStatistics.alipay || 0 }}
</div>
<div class="size-hui">
<div style="width: 8px;height: 8px;border-radius: 4px;background: #2B63F4"></div>
@ -669,9 +669,7 @@ export default {
color: grey;
margin: 10px 0;
}
.el-form--inline .el-form-item {
margin-right: 4px !important;
}
.box1 {
padding: 5px;

View File

@ -27,7 +27,8 @@
</view>
</view>
<view class="but-sub" @click="show=!show">兑换</view>
<!-- <view class="but-sub" @click="show=!show">兑换</view> -->
<view class="but-sub" @click="goExchange">兑换</view>
<u-modal :show="show" :title="title" :content='content' :showCancelButton='true' @confirm="confirm"
@cancel="cancel" confirmColor="#FA6400"></u-modal>
@ -87,7 +88,12 @@
}).then(res => {
console.log(res, 89)
if (res.code == 200) {
this.content = '礼品卡已兑换成功,请在礼品卡兑换记录中查看!'
if(res.data.id){
this.content = '礼品卡已兑换成功,请在礼品卡兑换记录中查看!'
}else {
this.content = '礼品卡兑换失败。'
}
} else {
this.content = '礼品卡兑换失败。'
}

View File

@ -25,10 +25,14 @@
<view style="width: 85%;">
<view class="right-box">
<view class="l-text">{{item.fromType}}</view>
<view class="r-text">{{item.cardPaymentAmount}}</view>
<view class="r-text">
<span v-if="item.change_type == 1">+</span>
<span v-else>-</span>
{{item.cardPaymentAmount}}
</view>
</view>
<view class="right-box">
<view class="">储值卡</view>
<view class="">{{item.cardType}}</view>
<view class="">余额{{item.afterTheChange}}</view>
</view>
<view class="right-box">
@ -39,7 +43,8 @@
</view>
<u-datetime-picker :show="show" v-model="value1" mode="year-month" @cancel="cancel1"
@confirm="confirm1"></u-datetime-picker>
<u-picker :show="show1" :columns="columnsBalance" keyName="label" @cancel="cancel" @confirm="confirmBalance"></u-picker>
<u-picker :show="show1" :columns="columnsBalance" keyName="label" @cancel="cancel"
@confirm="confirmBalance"></u-picker>
</view>
<view v-if="type==1">
<view class="tab-bs">
@ -105,7 +110,7 @@
show: false,
show1: false,
value1: Number(new Date()),
fleetBalance:0,
fleetBalance: 0,
columns: [
[{
label: '全部类型',
@ -120,14 +125,17 @@
],
columnsBalance: [
[{
label:'全部类型',
type:null
label: '全部类型',
type: null
}, {
label:'油品'
label: '油品',
type: '油品'
}, {
label:'积分兑换'
label: '积分兑换',
type: "积分兑换"
}, {
label:"会员充值"
label: "会员充值",
type: '会员充值'
}]
],
queryParams: {
@ -149,7 +157,7 @@
this.queryParams.fleetId = e.fleetId
// console.log('this.fleetId', this.fleetId);
this.storeId = uni.getStorageSync("storeId"),
this.getFleetBalance()
this.getFleetBalance()
},
onShow() {
this.query.chainStoreId = uni.getStorageSync('chainStoreId');
@ -165,7 +173,8 @@
type: "",
storeId: uni.getStorageSync("storeId"),
changeReason: "",
startTime: ""
startTime: "",
fromType: null
}
this.getList()
},
@ -179,6 +188,8 @@
methods: {
getindex(index) {
this.type = index
this.queryParams.startTime = null
this.value1 = Number(new Date())
if (index == 1) {
this.getFleetLinesChange()
} else if (index == 0) {
@ -198,8 +209,8 @@
})
},
//
getFleetBalance(){
getFleetBalance() {
request({
url: '/fleetInfo/' + this.queryParams.fleetId,
method: 'get',
@ -247,15 +258,16 @@
this.getFleetLinesChange()
this.show1 = false
},
confirmBalance(e) {
this.queryParams.pageNo = 1
console.log("获取的e:", e);
if (e.value[0] == '全部类型') {
this.queryParams.formType = null
this.queryParams.fromType = null
} else {
this.queryParams.formType = e.value[0].type
this.queryParams.fromType = e.value[0].type
}
console.log('this.queryParams:', this.queryParams);
this.getList()
this.show1 = false
},
@ -274,7 +286,12 @@
confirm1(e) {
this.queryParams.startTime = this.timestampToString(e.value)
this.queryParams.pageNo = 1
this.getFleetLinesChange()
if (this.type == 1) {
this.getFleetLinesChange()
} else {
this.getList()
}
this.show = false
},
cancel1() {

View File

@ -42,7 +42,7 @@
<view class="but-sub" @click="submitFrom()">确认</view>
<u-picker :show="show" :columns="columns" @cancel="cancel" @confirm="confirm"></u-picker>
<u-picker :show="show" :columns="columns" keyName="label" @cancel="cancel" @confirm="confirm"></u-picker>
</view>
</view>
@ -62,7 +62,13 @@
value1: true,
show: false,
columns: [
['增加', '扣除']
[{
label:'增加',
value: 0
}, {
label:'扣除',
value: 1
}]
],
memberInfo: {},
memberId: ''
@ -91,52 +97,52 @@
},
methods: {
submitFrom(){
if (this.memberInfo.adjustType!=''){
submitFrom() {
if (this.memberInfo.adjustType == '') {
uni.showToast({
title:'请选择调整类型',
icon:'none'
title: '请选择调整类型',
icon: 'none'
})
return
}
if (!this.memberInfo.adjustLimit){
if (!this.memberInfo.adjustLimit) {
uni.showToast({
title:'请输入调整额度',
icon:'none'
title: '请输入调整额度',
icon: 'none'
})
return
}
request({
url: 'fleetMember/editLimitPC',
method: 'put',
data:this.memberInfo
data: this.memberInfo
}).then(res => {
if (res.data==1){
if (res.data == 1) {
uni.navigateBack()
}else if (res.data==2){
} else if (res.data == 2) {
uni.showToast({
title:'共享副卡-不限额,暂不支持修改',
icon:'none'
title: '共享副卡-不限额,暂不支持修改',
icon: 'none'
})
}else if (res.data==3){
} else if (res.data == 3) {
uni.showToast({
title:'当前车队卡剩余额度不足,无法扣除',
icon:'none'
title: '当前车队卡剩余额度不足,无法扣除',
icon: 'none'
})
}else if (res.data==4){
} else if (res.data == 4) {
uni.showToast({
title:'当前车队卡剩余额度不足,无法扣除',
icon:'none'
title: '当前车队卡剩余额度不足,无法扣除',
icon: 'none'
})
}else if (res.data==5){
} else if (res.data == 5) {
uni.showToast({
title:'当前副卡剩余额度不足,无法扣除',
icon:'none'
title: '当前副卡剩余额度不足,无法扣除',
icon: 'none'
})
}else{
} else {
uni.showToast({
title:'修改失败,请联系管理员',
icon:'none'
title: '修改失败,请联系管理员',
icon: 'none'
})
}
})
@ -153,8 +159,10 @@
this.show = false
},
confirm(e) {
this.memberInfo.adjustType = e.indexs[0]
console.log(this.memberInfo.adjustType,e.indexs[0],e,130);
// this.memberInfo.adjustType = e.indexs[0]
this.memberInfo.adjustType = e.value[0].value
console.log("this.memberInfo.adjustType",this.memberInfo.adjustType);
console.log(this.memberInfo.adjustType, e.indexs[0], e, 130);
this.show = false
},
goback() {