This commit is contained in:
cun-nan 2024-01-27 17:58:07 +08:00
parent c4cad9159b
commit 0e40832516
18 changed files with 619 additions and 79 deletions

View File

@ -126,14 +126,14 @@
<span>{{ scope.row.payTime ? parseTime(scope.row.payTime):"--" }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="getOrdersInfo(scope.row.id)"
type="success" plain round>详情</el-button>
<el-button style="width: 60px" size="mini"
@click="patchwork(scope.row)"
type="primary" plain round>补打</el-button>
<!-- <el-button style="width: 60px" size="mini"-->
<!-- @click="patchwork(scope.row)"-->
<!-- type="primary" plain round>补打</el-button>-->
<el-button style="width: 60px" size="mini"
v-if = "scope.row.status === 'paid'"
@click="handleRefund(scope.row.id)"

View File

@ -157,9 +157,9 @@
</el-table-column>
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="patchwork(scope.row)"
type="primary" plain round>补打</el-button>
<!-- <el-button style="width: 60px" size="mini"-->
<!-- @click="patchwork(scope.row)"-->
<!-- type="primary" plain round>补打</el-button>-->
<el-button style="width: 60px" size="mini"
v-if = "scope.row.status === 'paid'"
@click="handleRefund(scope.row.id)"

View File

@ -206,9 +206,9 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="patchwork(scope.row)"
type="primary" plain round>补打</el-button>
<!-- <el-button style="width: 60px" size="mini"-->
<!-- @click="patchwork(scope.row)"-->
<!-- type="primary" plain round>补打</el-button>-->
<el-button style="width: 60px" size="mini"
@click="handleRefund(scope.row.id)"
v-if = "scope.row.orderStatus === 'paid'"
@ -266,7 +266,7 @@
<div class="box-ge">
<div class="input-box">
<div>{{ getName(oilNameList,oilOrder.oils) }}/{{ getName1(oilGunList,oilOrder.oilGunNum) }}</div>
<div>{{ oilOrder.amount }}</div>
<div>{{ oilOrder.orderAmount }}</div>
</div>
<div class="input-box">
<div>支付方式</div>
@ -284,7 +284,7 @@
<div>优惠合计</div>
<div>{{ oilOrder.discountAmount }}</div>
</div>
<div class="input-box" v-if="oilOrder.orderStatus=='paid'">
<div class="input-box" v-if="oilOrder.userId && oilOrder.orderStatus=='paid' &&(oilOrder.orderAmount - oilOrder.discountAmount - oilOrder.payAmount)>0">
<div>储值卡或囤油卡付款</div>
<div>{{ (oilOrder.orderAmount - oilOrder.discountAmount - oilOrder.payAmount).toFixed(2) }}</div>
</div>
@ -489,7 +489,12 @@
this.$modal.confirm('确定您要补打当前订单吗?当前订单号[' + orderNo + '],请确保云打印机正在运行中').then(function() {
// return delUser(row.id);
}).then(() => {
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
oilOrderInfo(data.id).then( response => {
this.oilOrder = response.data
this.printLocally()
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
})
// this.$modal.msgSuccess(",");
}).catch(() => {});
},
// 退

View File

@ -141,9 +141,9 @@
<!-- <el-button style="width: 60px" size="mini"-->
<!-- @click="getOrdersInfo(scope.row.id)"-->
<!-- type="success" plain round>详情</el-button>-->
<el-button style="width: 60px" size="mini"
@click="patchwork(scope.row)"
type="primary" plain round>补打</el-button>
<!-- <el-button style="width: 60px" size="mini"-->
<!-- @click="patchwork(scope.row)"-->
<!-- type="primary" plain round>补打</el-button>-->
<el-button style="width: 60px" size="mini"
v-if = "scope.row.orderStatus === 'paid'"
@click="handleRefund(scope.row.id)"

View File

@ -155,22 +155,22 @@
<span>{{ scope.row.remark ? scope.row.remark:"--" }}</span>
</template>
</el-table-column>
<el-table-column prop="fringeBenefit" label="附加福利">
<template slot-scope="scope">
<span>{{ scope.row.fringeBenefit ? scope.row.fringeBenefit:"--" }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<!-- <el-button size="mini" type="text" icon="el-icon-edit">更多操作</el-button>-->
<el-button style="width: 60px" size="mini"
@click="patchwork(scope.row)"
type="primary" plain round>补打</el-button>
<!-- <el-table-column prop="fringeBenefit" label="附加福利">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ scope.row.fringeBenefit ? scope.row.fringeBenefit:"&#45;&#45;" }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- &lt;!&ndash; <el-button size="mini" type="text" icon="el-icon-edit">更多操作</el-button>&ndash;&gt;-->
<!-- <el-button style="width: 60px" size="mini"-->
<!-- @click="patchwork(scope.row)"-->
<!-- type="primary" plain round>补打</el-button>-->
<!-- <el-button style="width: 60px" size="mini"-->
<!-- @click="handleRefund(scope.row.id)"-->
<!-- type="danger" plain round>退款</el-button>-->
</template>
</el-table-column>
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</div>
@ -217,7 +217,33 @@
<el-button type="primary" @click="refundConfirmed()"> </el-button>
</span>
</el-dialog>
</div>
<!-- 支付成功后小票打印内容-->
<div id="reportSuccess" ref="report" class="box-center" v-show="false">
<div class="box-title">订单统计</div>
<div class="input-box">
<div>支付方式</div>
<div v-if="oilOrder.paymentType == 'CASH'">现金</div>
<div v-else-if="oilOrder.paymentType == 'WECHAT'">微信</div>
<div v-else-if="oilOrder.paymentType == 'ALIPAY'">支付宝</div>
<div v-else-if="oilOrder.paymentType == 'UNIONPAY'">银联二维码</div>
</div>
<div class="input-box">
<div>储值卡面值</div>
<div>{{ oilOrder.bidBalance }}</div>
</div>
<div class="input-box">
<div>赠送金额</div>
<div>{{ oilOrder.giftBalance }}</div>
</div>
<div class="input-box">
<div>实付金额</div>
<div>{{ oilOrder.rechargeBalance }}</div>
</div>
</div>
</div>
</template>
<script>

View File

@ -460,8 +460,7 @@ public class ActiveExchangeServiceImpl implements ActiveExchangeService {
List<ActiveDiscountPayVO> activeFuletVOLists = oilOrderMapper.selectActiveFules(storeId,paymentActiveDTO.getAmount(),paymentActiveDTO.getOilId(),paymentActiveDTO.getMtUserLevel());
activeFuletVOList.addAll(activeFuletVOLists);
//优惠券
//paymentActiveDTO.setUserId(userId);
paymentActiveDTO.setUserId(117);
paymentActiveDTO.setUserId(userId);
if (ObjectUtils.isNotEmpty(paymentActiveDTO.getUserId())){
userId = paymentActiveDTO.getUserId();
}
@ -837,16 +836,19 @@ public class ActiveExchangeServiceImpl implements ActiveExchangeService {
//消费有礼
List<ActiveConsumptionVO> activeConsumptionVOS = oilOrderMapper.selectActiveConsumption(paymentActiveDTO.getStoreId(), paymentActiveDTO.getAmount());
//连锁店信息
LJUser ljUserVo = userService.queryUserByUserId(TokenUtil.getNowAccountInfo().getId());
if (paymentActiveDTO.getUserId()==null){
paymentActiveDTO.setUserId(TokenUtil.getNowAccountInfo().getId());
}
LJUser ljUserVo = userService.queryUserByUserId(paymentActiveDTO.getUserId());
Integer storeId1 = paymentActiveDTO.getStoreId();
Integer chainStoreId = iljStoreService.selectStoreByStoreId(storeId1).getChainStoreId();
//用户余额
UserBalance userBalance = userBalanceService.selectUserBalance(TokenUtil.getNowAccountInfo().getId(),chainStoreId);
UserBalance userBalance = userBalanceService.selectUserBalance(paymentActiveDTO.getUserId(),chainStoreId);
UserBalance userBalance1 = new UserBalance();
if (CollectionUtils.isNotEmpty(activeConsumptionVOS)){
for (ActiveConsumptionVO activeConsumptionVO : activeConsumptionVOS) {
if (activeConsumptionVO.getAdaptUserType().equals("2") && activeConsumptionVO.getOilId().contains(paymentActiveDTO.getOilId().toString()) &&
activeConsumptionVO.getAdaptUser().contains(paymentActiveDTO.getMtUserLevel().toString()) || activeConsumptionVO.getAdaptUserType().equals("0") && activeConsumptionVO.getOilId().contains(paymentActiveDTO.getOilId().toString())
StringUtils.isNotEmpty(activeConsumptionVO.getAdaptUser()) && activeConsumptionVO.getAdaptUser().contains(paymentActiveDTO.getMtUserLevel().toString()) || activeConsumptionVO.getAdaptUserType().equals("0") && activeConsumptionVO.getOilId().contains(paymentActiveDTO.getOilId().toString())
|| activeConsumptionVO.getAdaptUserType().equals("1") && activeConsumptionVO.getOilId().contains(paymentActiveDTO.getOilId().toString()) && StringUtils.isNotEmpty(paymentActiveDTO.getMtUserLevel().toString())){
//如果满足条件/给当前用户加积分
//用户 (新用户新建 老用户叠加)
@ -857,7 +859,7 @@ public class ActiveExchangeServiceImpl implements ActiveExchangeService {
}
userBalanceService.updateUserBalance(userBalance);
}else {
userBalance1.setMtUserId(TokenUtil.getNowAccountInfo().getId());
userBalance1.setMtUserId(paymentActiveDTO.getUserId());
userBalance1.setChainStoreId(chainStoreId);
//积分
if (ObjectUtils.isNotEmpty(activeConsumptionVO.getPoints())){
@ -876,7 +878,7 @@ public class ActiveExchangeServiceImpl implements ActiveExchangeService {
CardFavorableRecord cardFavorableRecord = new CardFavorableRecord();
cardFavorableRecord.setCardFavorableId(activeConsumptionChild.getVouchersId());
cardFavorableRecord.setStoreId(storeId1);
cardFavorableRecord.setMtUserId(TokenUtil.getNowAccountInfo().getId());
cardFavorableRecord.setMtUserId(paymentActiveDTO.getUserId());
cardFavorableRecord.setName(ljUserVo.getName());
cardFavorableRecord.setMobile(ljUserVo.getMobile());
cardFavorableRecord.setStatus("0");

View File

@ -44,6 +44,10 @@ public class OilOrder extends BaseEntity implements Serializable {
* 优惠券id
*/
private Integer couponId;
/**
* 活动id
*/
private Integer activeId;
/**
* 提成金额
*/

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fuint.business.order.mapper.OrderGoodsMapper">
<sql id="selectOrderGoods">
select mog.id,mog.order_id,mog.goods_id as goods_id,mg.id as goodsId,mg.name,mg.retail_price,mg.member_price,mog.num
select mog.id,mog.order_id,mog.goods_id as goods_id,mg.id as goodsId,mg.name,mg.retail_price,mg.member_price,mog.num,mg.unit
from mt_order_goods mog inner join mt_goods mg on mog.goods_id = mg.id
</sql>

View File

@ -80,6 +80,18 @@ public interface OilOrderService extends IService<OilOrder> {
*/
public Map<String,Object> insertOilOrder(Map<String ,String> map);
/**
* 消费有礼调用接口
* @param storeId 店铺id
* @param userId 用户id
* @param activeId 活动id
* @param cardFavorableId 优惠券id
* @param type 活动类型
* @param orderAmount 订单金额
* @param oilId 油品id
*/
void updateCardAndActiveById(Integer storeId,Integer userId,Integer activeId,Integer cardFavorableId,String type,Double orderAmount,Integer oilId);
/**
* 扫描小程序中二维码所处理的逻辑
* @param map

View File

@ -18,6 +18,8 @@ import com.fuint.business.convenienceSore.entity.LJGoods;
import com.fuint.business.convenienceSore.entity.SaleDetail;
import com.fuint.business.convenienceSore.service.LJGoodsService;
import com.fuint.business.convenienceSore.service.SaleDetailService;
import com.fuint.business.marketingActivity.activeExchange.vo.PaymentActiveVO;
import com.fuint.business.marketingActivity.cardFavorable.service.CardFavorableRecordService;
import com.fuint.business.marketingActivity.cardFule.entity.CardFuelRecord;
import com.fuint.business.marketingActivity.cardFule.mapper.CardFuelRecordMapper;
import com.fuint.business.marketingActivity.cardValue.entity.CardValueRecord;
@ -102,6 +104,8 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
private ChainStoreConfigService chainStoreConfigService;
@Autowired
private SaleDetailService saleDetailService;
@Autowired
private CardFavorableRecordService cardFavorableRecordService;
@Override
public IPage<OilOrder> selectOilOrderList(Page page, OilOrder order) {
@ -368,9 +372,12 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
order.setInvoicing("未开票");
order.setOrderStatus(payStatus);
order.setTankId(Integer.valueOf(jsonObjects.get(0).get("tankId").toString()));
order.setActiveId(Integer.valueOf(jsonObjects.get(i).get("activeId").toString()));
order.setCouponId(Integer.valueOf(jsonObjects.get(i).get("cardFavorableId").toString()));
if (payType.equals("CASH")){
order.setPayTime(new Date());
this.addOilTrack(jsonObjects.get(i),storeId);
this.updateCardAndActiveById(storeId,userId,order.getActiveId(),order.getCouponId(),jsonObjects.get(i).get("type").toString(),order.getOrderAmount(), Integer.valueOf(order.getOils()));
}
if (map.get("allAmount").equals("0")){
order.setPayTime(new Date());
@ -460,6 +467,24 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
return orders;
}
// 调用消费有礼接口
public void updateCardAndActiveById(Integer storeId,Integer userId,Integer activeId,Integer cardFavorableId,String type,Double orderAmount,Integer oilId){
if (userId!=null){
LJUserVo userVo = userService.selectUserById(userId, storeId);
PaymentActiveVO paymentActiveVO = new PaymentActiveVO();
paymentActiveVO.setUserId(userId);
paymentActiveVO.setMtUserLevel(userVo.getGradeId());
paymentActiveVO.setStoreId(storeId);
paymentActiveVO.setActiveId(activeId);
paymentActiveVO.setCardFavorableId(cardFavorableId);
paymentActiveVO.setType(type);
paymentActiveVO.setOrderAmount(BigDecimal.valueOf(orderAmount));
paymentActiveVO.setOilId(oilId);
cardFavorableRecordService.updateCardAndActiveById(paymentActiveVO);
}
}
@Override
public Map<String,String> scanAppletQrCode(Map<String, String> map) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
@ -957,6 +982,10 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
String isOilStorageCard = map.get("isOilStorageCard");
// 储值卡消费金额
String balanceAmount = map.get("balanceAmount");
// 活动id
String activeId = map.get("activeId");
// 优惠券id
String cardFavorableId = map.get("cardFavorableId");
Integer tankId = Integer.valueOf(map.get("tankId"));
Map<String, Object> applet = new HashMap<>();
@ -1091,6 +1120,8 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
// 修改订单的优惠金额和支付金额
oilOrder.setDiscountAmount(Double.valueOf(discountAmount));
oilOrder.setPayAmount(payAmount);
oilOrder.setActiveId(Integer.valueOf(activeId));
oilOrder.setCouponId(Integer.valueOf(cardFavorableId));
this.updateOilOrder(oilOrder);
return applet;

View File

@ -12,4 +12,5 @@ public class OrderGoodsVo {
private String retailPrice;
private String memberPrice;
private Integer num;
private String unit;
}

View File

@ -763,7 +763,7 @@
<div class="input-box" v-for="(item,index) in goodsOrder" :key="index">
<div>{{ item.name }}</div>
<div v-if="isMember == false">{{ item.retailPrice }}</div>
<div v-else>{{ item.memberPrice }}</div>
<div v-else>{{ item.memberPrice }}</div>
</div>
<div class="input-box">
<div>支付方式</div>
@ -1839,6 +1839,9 @@
_this.paymentActive.storeId = item.storeId
getPaymentActive(_this.paymentActive).then(res => {
item.activeId = res.data.activeId
item.cardFavorableId = res.data.cardFavorableId
item.type = res.data.type
let discount = {type:"",discount:0,oilName:item.oilName,gunName:item.gunName}
let oilData = {oilName:item.oilName,oilPreferential: {}}
// this.preferentialData1 = res.data
@ -2273,7 +2276,7 @@
this.form.type = this.type;
//
if (this.select == "元"){
let num = this.form.amount/this.form.oilPrice
let num = this.form.amount/(this.form.oilPrice ? this.form.oilPrice : 1)
this.form.liters = (Math.ceil(num*100)/100).toFixed(2)
}else {
this.form.liters = this.form.amount
@ -2570,12 +2573,15 @@
_this.seekZero = 0
_this.loading = false;
_this.amount = 0
for (let i =0;i<_this.oilPreferentialData.length;i++){
_this.oilPreferentialData[i].oilPreferential.storeId = response.data.oilOrder.storeId
_this.oilPreferentialData[i].oilPreferential.userId = response.data.oilOrder.userId
_this.oilPreferentialData[i].oilPreferential.cardFavorableId = _this.cardFavorableId
usePaymentActive(_this.oilPreferentialData[i].oilPreferential).then(res => {})
}
// for (let i =0;i<_this.oilPreferentialData.length;i++){
// _this.oilPreferentialData[i].oilPreferential.storeId = response.data.oilOrder.storeId
// _this.oilPreferentialData[i].oilPreferential.orderAmount = response.data.oilOrder.orderAmount
// _this.oilPreferentialData[i].oilPreferential.userId = response.data.oilOrder.userId
// _this.oilPreferentialData[i].oilPreferential.oilId = response.data.oilOrder.oils
// _this.oilPreferentialData[i].oilPreferential.mtUserLevel = _this.member.gradeId
// _this.oilPreferentialData[i].oilPreferential.cardFavorableId = _this.cardFavorableId
// usePaymentActive(_this.oilPreferentialData[i].oilPreferential).then(res => {})
// }
_this.printLocally()
_this.resetting1()
return;
@ -2702,12 +2708,9 @@
let timer = setInterval(function (){
// "234520231228115544f073f4"
cashierOrderByOrderNo({orderNo:_this.orderNo}).then( response => {
if (response.data!=null){
if (response.data.status == "unpaid"){
_this.isQuery = true;
_this.dialogVisiblejLoading = true
}
if (response.data){
if (response.data.status == "paid"){
this.$modal.msgError(418)
_this.isPay = true;
_this.isPaySuccess = true;
_this.isQuery = false;
@ -2715,13 +2718,17 @@
_this.printLocally()
_this.loading = false;
if (response.data.oilOrderAmount>0){
for (let i =0;i<_this.oilPreferentialData.length;i++){
_this.oilPreferentialData[i].oilPreferential.storeId = response.data.oilOrder.storeId
_this.oilPreferentialData[i].oilPreferential.userId = response.data.oilOrder.userId
_this.oilPreferentialData[i].oilPreferential.cardFavorableId = _this.oilPreferentialData[_this.oilPreferentialData.length-1].cardFavorableId
usePaymentActive(_this.oilPreferentialData[i].oilPreferential).then(res => {})
}
// for (let i =0;i<_this.oilPreferentialData.length;i++){
// _this.oilPreferentialData[i].oilPreferential.storeId = response.data.storeId
// _this.oilPreferentialData[i].oilPreferential.orderAmount = response.data.oilOrderAmount
// _this.oilPreferentialData[i].oilPreferential.userId = response.data.userId
// _this.oilPreferentialData[i].oilPreferential.oilId = response.data.oils
// _this.oilPreferentialData[i].oilPreferential.mtUserLevel = _this.member.gradeId
// _this.oilPreferentialData[i].oilPreferential.cardFavorableId = _this.oilPreferentialData[_this.oilPreferentialData.length-1].cardFavorableId
// usePaymentActive(_this.oilPreferentialData[i].oilPreferential).then(res => {})
// }
}
clearInterval(timer);
}
@ -2733,12 +2740,23 @@
_this.loading = false;
clearInterval(timer);
}
if (response.data.status == "unpaid"){
_this.isQuery = true;
}
}
_this.resetting1();
})
},500)
// 15
if (_this.isQuery){
setTimeout(function () {
_this.dialogVisiblejLoading = true
},15000)
}
let timer2 = setInterval(function () {
if (_this.isQuery || !_this.dialogVisiblej) {
if (!_this.isQuery || !_this.dialogVisiblej) {
_this.loading = false;
// _this.isPay = true;
// _this.countdown()
@ -2754,7 +2772,7 @@
_this.loading = false;
_this.isPay = true;
this.isPaySuccess = false;
}, 10000)
}, 15000)
},
//

View File

@ -207,7 +207,7 @@
</el-table-column>
<el-table-column label="油号油枪" align="center" prop="terminal">
<template slot-scope="scope">
<span>{{ getName(oilNameList,scope.row.oils) }}/{{ scope.row.oilGunNum }}</span>
<span>{{ getName(oilNameList,scope.row.oils) }}/{{ getName1(oilGunList,scope.row.oilGunNum) }}</span>
</template>
</el-table-column>
<el-table-column label="加油升数" align="center" prop="oilNum" >
@ -274,6 +274,62 @@
<el-button type="primary" @click="refundConfirmed()"> </el-button>
</span>
</el-dialog>
<!-- 支付成功后小票打印内容-->
<div id="reportSuccess" ref="report" class="box-center" v-show="false">
<div class="box-title">订单统计</div>
<div class="box-ge">
<div v-for="item in oilInfo" :key="item.id">
<div class="input-box">
<div>{{ getName(oilNameList,item.oils) }}/{{ getName1(oilGunList,item.oilGunNum) }}</div>
<div>{{ item.orderAmount }}</div>
</div>
<div class="input-box">
<div>加油升数</div>
<div>{{ item.oilNum }}L</div>
</div>
</div>
<div v-for="item in goodsInfo" :key="item.id">
<div class="input-box">
<div>商品名称</div>
<div>{{ item.name }}</div>
</div>
<div class="input-box">
<div>商品数量</div>
<div>{{ item.num }}{{ item.unit }}</div>
</div>
<div class="input-box" v-if="!cashierOrder.userId">
<div>商品单价</div>
<div>{{ item.retailPrice }}</div>
</div>
<div class="input-box" v-else>
<div>商品单价</div>
<div>{{ item.memberPrice }}</div>
</div>
</div>
<div class="input-box">
<div>支付方式</div>
<div v-if="cashierOrder.payType == 'CASH'">现金</div>
<div v-else-if="cashierOrder.payType == 'WECHAT'">微信</div>
<div v-else-if="cashierOrder.payType == 'ALIPAY'">支付宝</div>
<div v-else-if="cashierOrder.payType == 'UNIONPAY'">银联二维码</div>
<div v-else>小程序码</div>
</div>
<div class="input-box">
<div>合计</div>
<div>{{ cashierOrder.amount }}</div>
</div>
<div class="input-box">
<div>实付款</div>
<div>{{ cashierOrder.payAmount }}</div>
</div>
<div class="input-box" v-if="cashierOrder.seekZero>0">
<div>找零金额</div>
<div>{{ cashierOrder.seekZero }}</div>
</div>
</div>
</div>
</div>
</template>
@ -290,6 +346,8 @@ import {getOilNameList} from "@/api/cashier/oilnumgun";
import {getOrderGoods} from "@/api/cashier/goodsorder";
import {exportExcelCashierApi} from "@/api/order/exportExcel";
import {refundApi} from "@/api/cashier/refund";
import {getLodop} from "@/api/LodopFuncs";
import {getOilNumberGun} from "@/api/cashier/oilGuns";
export default {
name: "order_Cashier",
@ -304,6 +362,7 @@ import {refundApi} from "@/api/cashier/refund";
oilInfo:[],
//
goodsInfo:[],
oilGunList:[],
//
cashierOrder:{},
loading:false,
@ -336,6 +395,7 @@ import {refundApi} from "@/api/cashier/refund";
this.getList();
this.getOrderStatistics();
this.getStaffList();
this.getOilGunList();
},
methods:{
@ -372,13 +432,100 @@ import {refundApi} from "@/api/cashier/refund";
})
return name;
},
async printLocally() {
//
let LODOP = getLodop(); //
LODOP.PRINT_INIT();
var bodyStyle = `<style>
.input-box{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 5px 0px;
}
.box-ge{
border-bottom: 1px solid #000000 ;
box-sizing: border-box;
padding: 10px;
}
.box-title{
font-size: 18px;
text-align: center;
align-items: center;
margin-top: 15px;
}
.input-hui{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 15px 0px;
background: #b2b2b2;
box-sizing: border-box;
padding: 5px 0px;
}
.input-hui-frou{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 15px 0px;
background: #b2b2b2;
box-sizing: border-box;
padding: 5px 0px;
div{
width: 25%;
text-align: left;
}
}
.input-box-frou{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 5px 0px;
div{
width: 25%;
text-align: left;
}
}
.box-center{
height: 500px;
}
</style>
`
var fromHtml = bodyStyle+this.$refs.report.innerHTML
LODOP.ADD_PRINT_HTM(0, 0, "100%", "100%", fromHtml);
LODOP.SET_PRINT_MODE("FULL_WIDTH_FOR_OVERFLOW",true);
// LODOP.ADD_PRINT_BARCODE(10,40,100,100,'QRCode','123456789');
// let preview = LODOP.PREVIEW();
// console.log("preview",preview);
LODOP.PRINT();
},
//
patchwork(data){
const orderNo = data.orderNo
this.$modal.confirm('确定您要补打当前订单吗?当前订单号[' + orderNo + '],请确保云打印机正在运行中').then(function() {
// return delUser(row.id);
}).then(() => {
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
}).then(async () => {
await cashierOrder(data.id).then( response => {
this.cashierOrder = response.data
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
})
await this.getOilList(this.cashierOrder.orderNo)
await this.getGoodsLists(this.cashierOrder.goodsOrderId)
this.printLocally()
}).catch(() => {});
},
// 退
@ -431,6 +578,32 @@ import {refundApi} from "@/api/cashier/refund";
})
},
//
getOilGunList(){
getOilNumberGun().then(res => {
res.data.forEach(item => {
if (item.oilGunList.length>0){
item.oilGunList.forEach(i => {
i.oilName = item.oilName
this.oilGunList.push(i)
})
}
})
})
},
//
getName1(oilNameList,id){
let name = ""
let _this = this;
if(oilNameList!=null && oilNameList!=""){
oilNameList.forEach(item => {
if (item.id == id){
name = item.gunName;
}
})
}
return name;
},
//
getName(oilNameList,id){
let name = ""
@ -454,13 +627,13 @@ import {refundApi} from "@/api/cashier/refund";
this.getGoodsLists(this.cashierOrder.goodsOrderId)
})
},
getOilList(orderNo){
oilOrderList({orderNo:orderNo}).then( response => {
async getOilList(orderNo){
await oilOrderList({orderNo:orderNo}).then( response => {
this.oilInfo = response.data
})
},
getGoodsLists(id){
getOrderGoods({orderId:id}).then( response => {
async getGoodsLists(id){
await getOrderGoods({orderId:id}).then( response => {
this.goodsInfo = response.data;
})
},

View File

@ -225,6 +225,51 @@
</el-dialog>
</el-card>
<!-- 支付成功后小票打印内容-->
<div id="reportSuccess" ref="report" class="box-center" v-show="false">
<div class="box-title">订单统计</div>
<div class="box-ge">
<div v-for="item in goodsList" :key="item.id">
<div class="input-box">
<div>商品名称</div>
<div>{{ item.name }}</div>
</div>
<div class="input-box">
<div>商品数量</div>
<div>{{ item.num }}{{ item.unit }}</div>
</div>
<div class="input-box" v-if="!goods.userId">
<div>商品单价</div>
<div>{{ item.retailPrice }}</div>
</div>
<div class="input-box" v-else>
<div>商品单价</div>
<div>{{ item.memberPrice }}</div>
</div>
</div>
<div class="input-box">
<div>支付方式</div>
<div v-if="goods.payType == 'CASH'">现金</div>
<div v-else-if="goods.payType == 'WECHAT'">微信</div>
<div v-else-if="goods.payType == 'ALIPAY'">支付宝</div>
<div v-else-if="goods.payType == 'UNIONPAY'">银联二维码</div>
</div>
<div class="input-box">
<div>合计</div>
<div>{{ goods.amount }}</div>
</div>
<div class="input-box" v-if="goods.discount>0">
<div>优惠合计</div>
<div>{{ goods.discount }}</div>
</div>
<div class="input-box">
<div>实付款</div>
<div>{{ goods.payAmount }}</div>
</div>
</div>
</div>
</div>
</template>
@ -235,6 +280,7 @@ import {getDicts} from "@/api/dict/data";
import { exportExcelGoodsOrderApi } from "@/api/order/exportExcel";
import {cashierOrder} from "@/api/cashier/cashierorder";
import {refundApi, getOrderInfoApi} from "@/api/cashier/refund";
import {getLodop} from "@/api/LodopFuncs";
export default {
name: "order_Cashier",
@ -307,13 +353,102 @@ export default {
this.orderStatistics = res.data;
})
},
async printLocally() {
//
let LODOP = getLodop(); //
LODOP.PRINT_INIT();
var bodyStyle = `<style>
.input-box{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 5px 0px;
}
.box-ge{
border-bottom: 1px solid #000000 ;
box-sizing: border-box;
padding: 10px;
}
.box-title{
font-size: 18px;
text-align: center;
align-items: center;
margin-top: 15px;
}
.input-hui{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 15px 0px;
background: #b2b2b2;
box-sizing: border-box;
padding: 5px 0px;
}
.input-hui-frou{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 15px 0px;
background: #b2b2b2;
box-sizing: border-box;
padding: 5px 0px;
div{
width: 25%;
text-align: left;
}
}
.input-box-frou{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 5px 0px;
div{
width: 25%;
text-align: left;
}
}
.box-center{
height: 500px;
}
</style>
`
var fromHtml = bodyStyle+this.$refs.report.innerHTML
LODOP.ADD_PRINT_HTM(0, 0, "100%", "100%", fromHtml);
LODOP.SET_PRINT_MODE("FULL_WIDTH_FOR_OVERFLOW",true);
// LODOP.ADD_PRINT_BARCODE(10,40,100,100,'QRCode','123456789');
// let preview = LODOP.PREVIEW();
// console.log("preview",preview);
LODOP.PRINT();
},
//
patchwork(data){
const orderNo = data.orderNo
this.$modal.confirm('确定您要补打当前订单吗?当前订单号[' + orderNo + '],请确保云打印机正在运行中').then(function() {
// return delUser(row.id);
}).then(() => {
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
}).then(async () => {
await getGoodsOrder({"id":data.id}).then( response => {
this.goods = response.data
})
await getOrderGoods({orderId:data.id}).then( response => {
this.goodsList = response.data
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
})
this.printLocally()
}).catch(() => {});
},
// 退

View File

@ -268,7 +268,7 @@
<div class="box-ge">
<div class="input-box">
<div>{{ getName(oilNameList,oilOrder.oils) }}/{{ getName1(oilGunList,oilOrder.oilGunNum) }}</div>
<div>{{ oilOrder.amount }}</div>
<div>{{ oilOrder.orderAmount }}</div>
</div>
<div class="input-box">
<div>支付方式</div>
@ -286,7 +286,7 @@
<div>优惠合计</div>
<div>{{ oilOrder.discountAmount }}</div>
</div>
<div class="input-box" v-if="oilOrder.orderStatus=='paid'">
<div class="input-box" v-if="oilOrder.userId && oilOrder.orderStatus=='paid' &&(oilOrder.orderAmount - oilOrder.discountAmount - oilOrder.payAmount)>0">
<div>储值卡或囤油卡付款</div>
<div>{{ (oilOrder.orderAmount - oilOrder.discountAmount - oilOrder.payAmount).toFixed(2) }}</div>
</div>
@ -495,9 +495,17 @@
patchwork(data){
const orderNo = data.orderNo
this.$modal.confirm('确定您要补打当前订单吗?当前订单号[' + orderNo + '],请确保云打印机正在运行中').then(function() {
// return oilOrderInfo(data.id).then( response => {
// this.oilOrder = response.data
// this.printLocally()
// })
// return delUser(row.id);
}).then(() => {
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
}).then(async () => {
await oilOrderInfo(data.id).then( response => {
this.oilOrder = response.data
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
})
this.printLocally()
}).catch(() => {});
},
// 退

View File

@ -206,6 +206,42 @@
<el-button type="primary" @click="refundConfirmed()"> </el-button>
</span>
</el-dialog>
<!-- 支付成功后小票打印内容-->
<div id="reportSuccess" ref="report" class="box-center" v-show="false">
<div class="box-title">订单统计</div>
<div class="box-ge">
<div class="input-box">
<div>{{ getName(oilNameList,oilOrder.oils) }}/{{ getName1(oilGunList,oilOrder.oilGunNum) }}</div>
<div>{{ oilOrder.orderAmount }}</div>
</div>
<div class="input-box">
<div>支付方式</div>
<div v-if="oilOrder.payType == 'CASH'">现金</div>
<div v-else-if="oilOrder.payType == 'WECHAT'">微信</div>
<div v-else-if="oilOrder.payType == 'ALIPAY'">支付宝</div>
<div v-else-if="oilOrder.payType == 'UNIONPAY'">银联二维码</div>
<div v-else>小程序码</div>
</div>
<div class="input-box">
<div>合计</div>
<div>{{ oilOrder.orderAmount }}</div>
</div>
<div class="input-box" v-if="oilOrder.discountAmount>0">
<div>优惠合计</div>
<div>{{ oilOrder.discountAmount }}</div>
</div>
<div class="input-box" v-if="oilOrder.userId && oilOrder.orderStatus=='paid' &&(oilOrder.orderAmount - oilOrder.discountAmount - oilOrder.payAmount)>0">
<div>储值卡或囤油卡付款</div>
<div>{{ (oilOrder.orderAmount - oilOrder.discountAmount - oilOrder.payAmount).toFixed(2) }}</div>
</div>
<div class="input-box">
<div>实付款</div>
<div>{{ oilOrder.payAmount }}</div>
</div>
</div>
</div>
</div>
</template>
@ -218,11 +254,13 @@ import {listOilOrder, oilOrderInfo} from "@/api/cashier/oilorder";
import {getOilNameList} from "@/api/cashier/oilnumgun";
import {getOilNumberGun} from "@/api/cashier/oilGuns";
import {refundApi} from "@/api/cashier/refund";
import {getLodop} from "@/api/LodopFuncs";
export default {
name: "order_Cashier",
data(){
return{
oilOrder:{},
//
queryParams: {
page: 1,
@ -344,13 +382,98 @@ import {refundApi} from "@/api/cashier/refund";
this.staffList = response.data;
})
},
async printLocally() {
//
let LODOP = getLodop(); //
LODOP.PRINT_INIT();
var bodyStyle = `<style>
.input-box{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 5px 0px;
}
.box-ge{
border-bottom: 1px solid #000000 ;
box-sizing: border-box;
padding: 10px;
}
.box-title{
font-size: 18px;
text-align: center;
align-items: center;
margin-top: 15px;
}
.input-hui{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 15px 0px;
background: #b2b2b2;
box-sizing: border-box;
padding: 5px 0px;
}
.input-hui-frou{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 15px 0px;
background: #b2b2b2;
box-sizing: border-box;
padding: 5px 0px;
div{
width: 25%;
text-align: left;
}
}
.input-box-frou{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 5px 0px;
div{
width: 25%;
text-align: left;
}
}
.box-center{
height: 500px;
}
</style>
`
var fromHtml = bodyStyle+this.$refs.report.innerHTML
LODOP.ADD_PRINT_HTM(0, 0, "100%", "100%", fromHtml);
LODOP.SET_PRINT_MODE("FULL_WIDTH_FOR_OVERFLOW",true);
// LODOP.ADD_PRINT_BARCODE(10,40,100,100,'QRCode','123456789');
// let preview = LODOP.PREVIEW();
// console.log("preview",preview);
LODOP.PRINT();
},
//
patchwork(data){
const orderNo = data.orderNo
this.$modal.confirm('确定您要补打当前订单吗?当前订单号[' + orderNo + '],请确保云打印机正在运行中').then(function() {
// return delUser(row.id);
}).then(() => {
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
}).then(async () => {
await oilOrderInfo(data.id).then( response => {
this.oilOrder = response.data
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
})
this.printLocally()
}).catch(() => {});
},
// 退

View File

@ -159,11 +159,11 @@
<span>{{ scope.row.remark ? scope.row.remark:"--" }}</span>
</template>
</el-table-column>
<el-table-column prop="fringeBenefit" label="附加福利">
<template slot-scope="scope">
<span>{{ scope.row.fringeBenefit ? scope.row.fringeBenefit:"--" }}</span>
</template>
</el-table-column>
<!-- <el-table-column prop="fringeBenefit" label="附加福利">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ scope.row.fringeBenefit ? scope.row.fringeBenefit:"&#45;&#45;" }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<!-- <el-button size="mini" type="text" icon="el-icon-edit">更多操作</el-button>-->

View File

@ -308,6 +308,8 @@
tankId : uni.getStorageSync("tankId"),
// tankId : 6,
isUseChildCard:this.isUseChildCard,
activeId:this.preferentialData.activeId,
cardFavorableId:this.preferentialData.cardFavorableId,
};
let _this = this;
request({