收银台

This commit is contained in:
cun-nan 2023-11-11 18:04:49 +08:00
parent 5d67b7cbb3
commit 79134699fd
23 changed files with 1416 additions and 430 deletions

View File

@ -7,85 +7,85 @@
<el-option v-for="item in storeList" :key="item.id+''" :label="item.name" :value="item.id+''"/>
</el-select>
</el-form-item>
<el-form-item label="会员号" prop="userNo">
<el-input
v-model="queryParams.userNo"
placeholder="请输入会员号"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input
v-model="queryParams.mobile"
placeholder="请输入会员手机号"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入会员名称"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="会员等级" prop="gradeId">
<el-select
v-model="queryParams.gradeId"
clearable
placeholder="全部"
>
<el-option v-for="grade in userGradeList" :key="grade.id+''" :label="grade.name" :value="grade.id+''"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="balance">
<el-select
v-model="ifBalance"
clearable
placeholder="全部"
>
<el-option label="有储值余额" value="haveBalance"/>
<el-option label="无储值余额" value="noHaveBalance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status">
<el-select
v-model="queryParams.official"
placeholder="全部"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.official"
:key="dict.value"
:label="dict.label"
:value="dict.value"
<el-form-item label="会员号" prop="userNo">
<el-input
v-model="queryParams.userNo"
placeholder="请输入会员号"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-select>
</el-form-item>
<el-form-item label="注册时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
size="medium"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input
v-model="queryParams.mobile"
placeholder="请输入会员手机号"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入会员名称"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="会员等级" prop="gradeId">
<el-select
v-model="queryParams.gradeId"
clearable
placeholder="全部"
>
<el-option v-for="grade in userGradeList" :key="grade.id+''" :label="grade.name" :value="grade.id+''"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="balance">
<el-select
v-model="ifBalance"
clearable
placeholder="全部"
>
<el-option label="有储值余额" value="haveBalance"/>
<el-option label="无储值余额" value="noHaveBalance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status">
<el-select
v-model="queryParams.official"
placeholder="全部"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.official"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="注册时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
size="medium"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></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-form-item>
</el-form>
<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-form-item>
</el-form>
</el-card>
<el-card style="margin-top: 20px">
@ -192,16 +192,6 @@
<div>{{ scope.row.cardBalance ? scope.row.cardBalance.toFixed(2) : '0.00' }}</div>
</template>
</el-table-column>
<!-- <el-table-column label="升数卡" align="center" prop="literCard">-->
<!-- <template slot-scope="scope">-->
<!-- <div>{{ scope.row.literCard ? scope.row.literCard.toFixed(2) : '0.00' }}L</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="加油金" align="center" prop="balance">-->
<!-- <template slot-scope="scope">-->
<!-- <div>{{ scope.row.refuelMoney ? scope.row.refuelMoney.toFixed(2) : '0.00' }}</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="积分" align="center" prop="points">
<template slot-scope="scope">
<div><span>{{ scope.row.points ? scope.row.points : '0.00' }}</span></div>
@ -571,13 +561,8 @@ export default {
this.getStatistic();
this.getConfig();
this.getUserList();
// this.test();
},
methods: {
//
// test(){
// paymentApi().then( response => {})
// },
//
goDedi(id){
this.$router.push({

View File

@ -1,6 +1,7 @@
package com.fuint.api.fuyou.service.impl;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import com.fuint.api.fuyou.entity.Builder;
import com.fuint.api.fuyou.entity.Const;
@ -114,6 +115,7 @@ public class FyPayServiceImpl implements FyPayService {
String str = reqMap.get("sign");
if (Utils.verifySign(reqMap, str)){
OilOrder oilOrder = oilOrderService.selectOilOrderByOrderNo(orderNo);
List<OilOrder> list = oilOrderService.selectOilOrder(orderNo);
LJOrder goodsOrder = goodsOrderService.selectGoodsOrder(orderNo);
CashierOrder cashierOrder = cashierOrderService.selectCashierOrder(orderNo);
Date date = new Date();
@ -128,6 +130,13 @@ public class FyPayServiceImpl implements FyPayService {
if (!ObjectUtil.isEmpty(cashierOrder)){
cashierOrder.setStatus("paid");
}
if (ArrayUtil.isEmpty(list)){
for (OilOrder order : list) {
order.setOrderStatus("paid");
order.setPayTime(date);
oilOrderService.updateOilOrder(order);
}
}
resMap.put("msg","success");
}else if (reqMap.get("trans_stat").equals("USERPAYING")){
resMap.put("msg","unpaid");
@ -141,6 +150,12 @@ public class FyPayServiceImpl implements FyPayService {
if (!ObjectUtil.isEmpty(cashierOrder)){
cashierOrder.setStatus("payFail");
}
if (!ArrayUtil.isEmpty(list)){
for (OilOrder order : list) {
order.setOrderStatus("payFail");
oilOrderService.updateOilOrder(order);
}
}
}
if (!ObjectUtil.isEmpty(oilOrder)){
oilOrderService.updateOilOrder(oilOrder);

View File

@ -7,10 +7,7 @@ import com.fuint.business.order.service.CashierOrderService;
import com.fuint.framework.web.BaseController;
import com.fuint.framework.web.ResponseObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* 收银员订单信息 controller层
@ -36,4 +33,15 @@ public class CashierOrderController extends BaseController {
IPage<CashierOrder> list = cashierOrderService.selectCashierOrderList(page,order);
return getSuccessResult(list);
}
/**
* 根据id查询收银台订单详情
* @param id
* @return
*/
@GetMapping("/{id}")
public ResponseObject cashierOrderInfo(@PathVariable Integer id){
CashierOrder cashierOrder = cashierOrderService.queryCashierOrder(id);
return getSuccessResult(cashierOrder);
}
}

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.order.entity.LJOrder;
import com.fuint.business.order.entity.OilOrder;
import com.fuint.business.order.service.OilOrderService;
import com.fuint.business.order.vo.OilOrderVo;
import com.fuint.framework.web.BaseController;
import com.fuint.framework.web.ResponseObject;
import org.springframework.beans.factory.annotation.Autowired;
@ -58,6 +59,7 @@ public class OilOrderController extends BaseController {
OilOrder order = orderService.selectOilOrderByOrderNo(orderNo);
return getSuccessResult(order);
}
/**
* 根据订单号模糊查询订单信息
* @param map
@ -69,4 +71,19 @@ public class OilOrderController extends BaseController {
List<OilOrder> list = orderService.selectOilOrder(orderNo);
return getSuccessResult(list);
}
/**
* 根据订单号模糊查询订单信息
* @param map
* @return
*/
@PostMapping("/orderNoVo")
public ResponseObject oilOrderList(@Validated @RequestBody Map<String,String> map){
String orderNo = map.get("orderNo");
List<OilOrderVo> oilOrderVos = null;
if (orderNo!=null && !orderNo.equals("")){
oilOrderVos = orderService.queryOilOrderByOrderNo(orderNo);
}
return getSuccessResult(oilOrderVos);
}
}

View File

@ -5,12 +5,11 @@ import com.fuint.business.order.vo.OrderGoodsVo;
import com.fuint.framework.web.BaseController;
import com.fuint.framework.web.ResponseObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 商品订单信息 controller层
@ -23,12 +22,17 @@ public class OrderGoodsController extends BaseController {
/**
* 根据订单id查询商品订单信息
* @param orderId
* @param map
* @return
*/
@GetMapping("/{orderId}")
public ResponseObject list(@PathVariable Integer orderId){
List<OrderGoodsVo> list = orderGoodsService.selectOrderGoods(orderId);
@PostMapping("/orderList")
public ResponseObject list(@Validated @RequestBody Map<String,String> map){
String id = map.get("orderId");
List<OrderGoodsVo> list = null;
if (id!=null && !id.equals("")){
Integer orderId = Integer.valueOf(id);
list = orderGoodsService.selectOrderGoods(orderId);
}
return getSuccessResult(list);
}
}

View File

@ -50,6 +50,22 @@ public class CashierOrder extends BaseEntity implements Serializable {
* 订单号
*/
private String orderNo;
/**
* 油品订单金额
*/
private Double oilOrderAmount;
/**
* 商品订单金额
*/
private Double goodsOrderAmount;
/**
* 油品优惠金额
*/
private Double oilDiscountAmount;
/**
* 商品优惠金额
*/
private Double goodsDiscountAmount;
/**
* 订单金额
*/

View File

@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.order.entity.CashierOrder;
import com.fuint.business.order.vo.CashierOrderVo;
import org.apache.ibatis.annotations.Param;
public interface CashierOrderMapper extends BaseMapper<CashierOrder> {
/**
* 根据条件分页查询订单信息
@ -14,4 +16,11 @@ public interface CashierOrderMapper extends BaseMapper<CashierOrder> {
* @return
*/
public IPage<CashierOrder> selectCashierOrderList(Page page, @Param("order") CashierOrder order);
/**
* 根据id查询收银台订单详情
* @param id
* @return
*/
public CashierOrderVo selectCashierOrderById(@Param("id") int id);
}

View File

@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.order.entity.OilOrder;
import com.fuint.business.order.vo.OilOrderVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 油品订单表 Mapper层
*/
@ -17,4 +20,11 @@ public interface OilOrderMapper extends BaseMapper<OilOrder> {
* @return
*/
public IPage<OilOrder> selectOilOrderList(Page page, @Param("order") OilOrder order);
/**
* 根据订单号模糊查询油品订单信息
* @param orderNo
* @return
*/
public List<OilOrderVo> selectOilOrderByOrderNo(@Param("orderNo") String orderNo);
}

View File

@ -23,5 +23,11 @@
</if>
</where>
</select>
<select id="selectCashierOrderById" resultType="com.fuint.business.order.vo.CashierOrderVo"
parameterType="int">
select co.*,st.real_name,st.mobile from cashier_order co
inner join mt_staff st on co.staff_id = st.id
where co.id = #{id};
</select>
</mapper>

View File

@ -35,5 +35,13 @@
</if>
</where>
</select>
<select id="selectOilOrderByOrderNo" resultType="com.fuint.business.order.vo.OilOrderVo"
parameterType="string">
select oil.*,onu.oil_price from oil_order oil
inner join oil_number onu on oil.oils = onu.oil_name
<where>
oil.order_no like concat(#{orderNo}, '%')
</where>
</select>
</mapper>

View File

@ -17,6 +17,13 @@ public interface CashierOrderService extends IService<CashierOrder> {
*/
public IPage<CashierOrder> selectCashierOrderList(Page page, CashierOrder order);
/**
* 根据id查询商品订单信息
* @param id
* @return
*/
public CashierOrder queryCashierOrder(int id);
/**
* 根据订单号查询商品订单信息
* @param orderNo

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fuint.business.order.entity.OilOrder;
import com.fuint.business.order.vo.OilOrderVo;
import java.util.List;
import java.util.Map;
@ -34,6 +35,13 @@ public interface OilOrderService extends IService<OilOrder> {
*/
public List<OilOrder> selectOilOrder(String orderNo);
/**
* 根据订单号模糊查询商品订单信息
* @param orderNo
* @return
*/
public List<OilOrderVo> queryOilOrderByOrderNo(String orderNo);
/**
* 添加油品订单信息
* @param map

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuint.business.order.entity.CashierOrder;
import com.fuint.business.order.mapper.CashierOrderMapper;
import com.fuint.business.order.service.CashierOrderService;
import com.fuint.business.order.vo.CashierOrderVo;
import com.fuint.common.dto.AccountInfo;
import com.fuint.common.util.TokenUtil;
import org.springframework.stereotype.Service;
@ -22,6 +23,12 @@ public class CashierOrderServiceImpl extends ServiceImpl<CashierOrderMapper, Cas
return cashierOrderIPage;
}
@Override
public CashierOrder queryCashierOrder(int id) {
CashierOrderVo cashierOrderVo = baseMapper.selectCashierOrderById(id);
return cashierOrderVo;
}
@Override
public CashierOrder selectCashierOrder(String orderNo) {
QueryWrapper queryWrapper = new QueryWrapper<>();

View File

@ -19,6 +19,7 @@ import com.fuint.business.order.service.CashierOrderService;
import com.fuint.business.order.service.LJOrderService;
import com.fuint.business.order.service.OilOrderService;
import com.fuint.business.order.service.OrderGoodsService;
import com.fuint.business.order.vo.OilOrderVo;
import com.fuint.business.userManager.entity.UserBalance;
import com.fuint.business.userManager.service.UserBalanceService;
import com.fuint.common.dto.AccountInfo;
@ -61,6 +62,12 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
return order;
}
@Override
public List<OilOrderVo> queryOilOrderByOrderNo(String orderNo) {
List<OilOrderVo> oilOrderVos = baseMapper.selectOilOrderByOrderNo(orderNo);
return oilOrderVos;
}
@Override
public List<OilOrder> selectOilOrder(String orderNo) {
QueryWrapper queryWrapper = new QueryWrapper<>();
@ -155,6 +162,10 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
cashierOrder.setPayTime(new Date());
}
cashierOrder.setOrderNo(orderNo);
cashierOrder.setGoodsOrderAmount(goodsAmount);
cashierOrder.setGoodsDiscountAmount(goodsDiscount);
cashierOrder.setOilOrderAmount(oilAmount);
cashierOrder.setOilDiscountAmount(oilDiscount);
OilOrder oilOrder1 = null;
LJOrder ljOrder1 = null;
@ -226,12 +237,12 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
List<JSONObject> goods = JSONArray.parseArray(goodsOrder, JSONObject.class);
// 查询商品订单号
OilOrder order1 = this.selectOilOrderByOrderNo(orderNo);
LJOrder ljOrder2 = orderService.selectGoodsOrder(orderNo);
// 添加商品订单记录表
OrderGoods orderGoods = new OrderGoods();
for (JSONObject good : goods) {
orderGoods.setOrderId(order1.getId());
orderGoods.setOrderId(ljOrder2.getId());
orderGoods.setGoodsId(Integer.valueOf(good.get("id").toString()));
orderGoods.setNum(Integer.valueOf(good.get("num").toString()));
orderGoodsService.insertOrderGoods(orderGoods);

View File

@ -0,0 +1,12 @@
package com.fuint.business.order.vo;
import com.fuint.business.order.entity.CashierOrder;
import lombok.Data;
@Data
public class CashierOrderVo extends CashierOrder {
// 员工姓名
private String realName;
// 员工手机号
private String mobile;
}

View File

@ -1,25 +1,10 @@
package com.fuint.business.order.vo;
import com.fuint.business.order.entity.OilOrder;
import lombok.Data;
@Data
public class OilOrderVo {
// 油品id
private Integer id;
// 油品订单金额
private Double orderAmount;
// 油号
private String oils;
// 油枪
private Integer oilGunNum;
// 加油数量
private Double oilNum;
public class OilOrderVo extends OilOrder {
// 油品单价
private Double oilPrice;
// 员工id
private Integer staffId;
// 员工姓名
private String name;
// 员工账号
private String mobile;
}

View File

@ -8,3 +8,11 @@ export function listCashierOrder(query) {
params: query
})
}
// 根据id查询油品订单列表
export function cashierOrder(id) {
return request({
url: '/business/cashierOrder/'+id,
method: 'get',
})
}

View File

@ -10,10 +10,11 @@ export function listOrder(query) {
}
// 根据订单id查询商品订单信息
export function getOrderGoods(orderId) {
export function getOrderGoods(data) {
return request({
url: '/business/orderGoods/' + orderId,
method: 'get',
url: '/business/orderGoods/orderList',
method: 'post',
data: data,
})
}

View File

@ -36,7 +36,7 @@ export function goodsOrder(data) {
})
}
// 根据订单号查询油品订单信息
// 根据订单号模糊查询油品订单信息
export function oilOrders(data) {
return request({
url: '/business/oilOrder/orderNos',
@ -44,3 +44,12 @@ export function oilOrders(data) {
data: data
})
}
// 根据订单号模糊查询油品订单信息
export function oilOrderList(data) {
return request({
url: '/business/oilOrder/orderNoVo',
method: 'post',
data: data
})
}

View File

@ -96,18 +96,12 @@
</el-table-column>
<el-table-column label="订单金额组成">
<el-table-column
prop="oilOrderId"
prop="oilOrderAmount"
label="油品金额">
<template slot-scope="scope">
<span>{{ getOilPrice(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column
prop="goodsOrderId"
prop="goodsOrderAmount"
label="商品金额">
<template slot-scope="scope">
<span>{{ getGoodsOrder(scope.row.goodsOrderId) }}</span>
</template>
</el-table-column>
</el-table-column>
@ -125,16 +119,22 @@
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column label="注册时间" align="center" width="160" prop="payTime">
<el-table-column label="交易时间" align="center" width="160" prop="payTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.payTime) }}</span>
<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">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini" type="success" plain round>详情</el-button>
<el-button style="width: 60px" size="mini" type="primary" plain round>补打</el-button>
<el-button style="width: 60px" size="mini" type="danger" plain round>退款</el-button>
<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="handleRefund(scope.row.id)"
type="danger" plain round>退款</el-button>
</template>
</el-table-column>
@ -144,28 +144,148 @@
<div class="pagination-box">
<el-pagination
background
v-show="total>0"
layout="prev, pager, next"
:total="1000">
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@current-change="getList">
</el-pagination>
</div>
</el-card>
<!-- 订单详情-->
<el-dialog
title="订单详情"
:visible.sync="dialogVisible">
<div>
<el-descriptions>
<el-descriptions-item label="收银员姓名">{{ cashierOrder.realName }}</el-descriptions-item>
<el-descriptions-item label="收银员账号">{{ cashierOrder.mobile }}</el-descriptions-item>
<el-descriptions-item label="订单编号">{{ cashierOrder.orderNo }}</el-descriptions-item>
<el-descriptions-item label="订单金额">{{ cashierOrder.amount }}</el-descriptions-item>
<el-descriptions-item label="油品金额">{{ cashierOrder.oilOrderAmount }}</el-descriptions-item>
<el-descriptions-item label="商品金额">{{ cashierOrder.goodsOrderAmount }}</el-descriptions-item>
<el-descriptions-item label="油品优惠总额">{{ cashierOrder.oilDiscountAmount }}</el-descriptions-item>
<el-descriptions-item label="商品优惠总额">{{ cashierOrder.goodsDiscountAmount }}</el-descriptions-item>
<el-descriptions-item label="实付金额">{{ cashierOrder.payAmount }}</el-descriptions-item>
<el-descriptions-item label="付款方式">
<el-tag v-if="cashierOrder.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="cashierOrder.status == 'paid'">已支付</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</el-descriptions-item>
<el-descriptions-item label="交易时间">
{{ cashierOrder.payTime ? parseTime(cashierOrder.payTime):"--" }}
</el-descriptions-item>
</el-descriptions>
</div>
<div>
<el-descriptions :column="1" direction="vertical">
<el-descriptions-item label="油品详情">
<el-table
:data="oilInfo"
style="width: 100%">
<el-table-column label="油品金额" prop="orderAmount">
<template slot-scope="scope">
<span>{{ scope.row.orderAmount }}</span>
</template>
</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>
</template>
</el-table-column>
<el-table-column label="加油升数" align="center" prop="oilNum" >
<template slot-scope="scope">
<span>{{ scope.row.oilNum }}L</span>
</template>
</el-table-column>
<el-table-column label="油品单价" align="center" prop="amount">
<template slot-scope="scope">
<span>{{ scope.row.oilPrice }}/L</span>
</template>
</el-table-column>
</el-table>
</el-descriptions-item>
<el-descriptions-item label="商品详情">
<el-table
:data="goodsInfo"
style="width: 100%">
<el-table-column label="商品名称" prop="name"/>
<el-table-column label="单价" align="center" prop="retailPrice">
<template slot-scope="scope">
<span v-if="cashierOrder.payUser == '散客'">{{ scope.row.retailPrice }}</span>
<span v-else>{{ scope.row.memberPrice }}</span>
</template>
</el-table-column>
<el-table-column label="数量" align="center" prop="num"/>
<el-table-column label="合计" align="center" prop="num">
<template slot-scope="scope">
<span v-if="cashierOrder.payUser == '散客'">{{ scope.row.retailPrice * scope.row.num }}</span>
<span v-else>{{ scope.row.memberPrice * scope.row.num }}</span>
</template>
</el-table-column>
</el-table>
</el-descriptions-item>
</el-descriptions>
</div>
</el-dialog>
<!-- 订单退款-->
<el-dialog
title="订单退款"
width="25%"
:visible.sync="dialogRefund">
<div style="text-align: center;font-weight: bold">
<span style="font-size: 35px">{{ cashierOrder.amount }}</span>
</div>
<div class="tk">退款金额</div>
<div class="tk">退款单号{{ cashierOrder.orderNo }}</div>
<div style="margin: 10px 0">
退款原因<br/>
<el-radio-group v-model="radio1" style="margin: 10px 0">
<el-radio-button label="油号选错"></el-radio-button>
<el-radio-button label="金额错误"></el-radio-button>
<el-radio-button label="其他原因"></el-radio-button>
</el-radio-group>
</div>
<div>
<el-input placeholder="请输入密码" v-model="password" show-password></el-input>
<br/>
<span style="color: grey;font-size: 12px">退款仅支持全额退款,退款金额将按照支付信息原路退回优惠券储值卡等原路退回处理</span>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogRefund = false"> </el-button>
<el-button type="primary" @click="dialogRefund = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {listCashierOrder} from "@/api/cashier/cashierorder";
import {cashierOrder, listCashierOrder} from "@/api/cashier/cashierorder";
import {queryStaffs} from "@/api/cashier/staff";
import {oilOrders} from "@/api/cashier/oilorder";
import {getGoodsOrder} from "@/api/cashier/goodsorder";
import {oilOrderList, oilOrders} from "@/api/cashier/oilorder";
import {getOilNameList} from "@/api/cashier/oilnumgun";
import {getOrderGoods} from "@/api/cashier/goodsorder";
export default {
name: "order_Cashier",
data(){
return{
//
oilAmount:0,
// 退
password:"",
radio1:"油号选错",
//
oilNameList:[],
//
oilInfo:[],
//
goodsInfo:[],
//
cashierOrder:{},
dialogVisible:false,
dialogRefund:false,
//
staffList:[],
//
@ -178,60 +298,60 @@
pageSize: 10,
},
total:0,
labelPosition: 'right',
formLabelAlign: {
name: '',
},
tableData: [{
date: '2016-05-03',
name: '王小狼',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-02',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-04',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-01',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-08',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-06',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-07',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}]
// labelPosition: 'right',
// formLabelAlign: {
// name: '',
// },
// tableData: [{
// date: '2016-05-03',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-02',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-04',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-01',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-08',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-06',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-07',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }]
}
},
created() {
@ -239,16 +359,54 @@
this.getStaffList();
},
methods:{
getGoodsOrder(id){
let amount = 0;
getGoodsOrder({id:id}).then( response => {
console.log(response)
})
return amount;
//
patchwork(data){
const orderNo = data.orderNo
this.$modal.confirm('确定您要补打当前订单吗?当前订单号[' + orderNo + '],请确保云打印机正在运行中').then(function() {
// return delUser(row.id);
}).then(() => {
this.$modal.msgSuccess("打印指令已发送打印机,请查看打印结果");
}).catch(() => {});
},
//
getOilPrice(data){
// 退
handleRefund(id){
this.dialogRefund = true;
cashierOrder(id).then( response => {
this.cashierOrder = response.data
})
},
//
getName(oilNameList,id){
let name = ""
let _this = this;
if(oilNameList!=null && oilNameList!=""){
oilNameList.forEach(item => {
if (item.id == id){
name = item.oilName;
_this.oilType = item.oilType;
}
})
}
return name;
},
//
getOrdersInfo(id){
this.dialogVisible = true;
cashierOrder(id).then( response => {
this.cashierOrder = response.data
this.getOilList(this.cashierOrder.orderNo)
this.getGoodsLists(this.cashierOrder.goodsOrderId)
})
},
getOilList(orderNo){
oilOrderList({orderNo:orderNo}).then( response => {
this.oilInfo = response.data
})
},
getGoodsLists(id){
getOrderGoods({orderId:id}).then( response => {
this.goodsInfo = response.data;
})
},
//
getList(val){
@ -265,6 +423,9 @@
queryStaffs().then( response => {
this.staffList = response.data;
})
getOilNameList().then( response => {
this.oilNameList = response.data;
})
},
//
handleQuery() {
@ -343,5 +504,10 @@
.top-app-sou{
width: 20%;
}
.tk{
text-align: center;
color: grey;
margin: 10px 0;
}
</style>

View File

@ -218,56 +218,56 @@ export default {
},
//
payList:[],
tableData: [{
date: '2016-05-03',
name: '王小狼',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-02',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-04',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-01',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-08',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-06',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}, {
date: '2016-05-07',
name: '王小虎',
province: '上海',
city: '普陀区',
address: '上海市普陀区金沙江路 1518 弄',
zip: 200333
}]
// tableData: [{
// date: '2016-05-03',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-02',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-04',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-01',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-08',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-06',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }, {
// date: '2016-05-07',
// name: '',
// province: '',
// city: '',
// address: ' 1518 ',
// zip: 200333
// }]
}
},
created() {

File diff suppressed because it is too large Load Diff

View File

@ -98,7 +98,7 @@
<el-descriptions-item label="绑定信息"></el-descriptions-item>
<el-descriptions-item label="会员状态">
<el-tag v-if="form.status == 'qy'">启用</el-tag>
<el-tag v-else>禁用</el-tag>
<el-tag v-else type="danger">禁用</el-tag>
</el-descriptions-item>
<el-descriptions-item label="加油次数">{{form.consumeNum}}</el-descriptions-item>
<el-descriptions-item label="加油总金额">{{form.refuelMoney}}</el-descriptions-item>