From 99903892ce17ac598b1ceadf9bb145fb1527540b Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 19 Jan 2024 16:09:19 +0800 Subject: [PATCH] fapiao --- src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java | 3 src/main/java/cc/mrbird/febs/mall/vo/AdminInvoiceDetailVo.java | 47 +++++ src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java | 25 ++ src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java | 7 src/main/resources/templates/febs/views/modules/order/invoiceDetail.html | 248 +++++++++++++++++++++++++++ src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java | 17 + src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java | 57 ++++- src/main/resources/templates/febs/views/modules/order/invoiceList.html | 80 +------- src/main/java/cc/mrbird/febs/mall/mapper/MallInvoiceMapper.java | 5 src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java | 4 src/main/resources/mapper/modules/MallInvoiceMapper.xml | 20 ++ 11 files changed, 426 insertions(+), 87 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java index 8090049..30ab00c 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java @@ -676,4 +676,21 @@ return new FebsResponse().success().data(data); } + /** + * 发票列表-订单子表 + */ + @GetMapping(value = "/invoiceItemList") + public FebsResponse invoiceItemList() { + return new FebsResponse().success().data(mallInvoiceService.invoiceItemList()); + } + + /** + * 发票列表-上传发票 + */ + @PostMapping("addInvoiceUrl") + @ControllerEndpoint(operation = " 发票列表-上传发票", exceptionMessage = "操作失败") + public FebsResponse addInvoiceUrl(@Valid MallInvoice mallInvoice) { + return mallInvoiceService.addInvoiceUrl(mallInvoice); + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java index 7ee1dda..a91c4db 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java @@ -8,8 +8,10 @@ import cc.mrbird.febs.mall.entity.MallExpressInfo; import cc.mrbird.febs.mall.entity.MallOrderRefund; import cc.mrbird.febs.mall.mapper.MallExpressInfoMapper; +import cc.mrbird.febs.mall.mapper.MallInvoiceMapper; import cc.mrbird.febs.mall.mapper.MallOrderRefundMapper; import cc.mrbird.febs.mall.service.IAdminMallOrderService; +import cc.mrbird.febs.mall.service.MallInvoiceService; import cc.mrbird.febs.mall.vo.*; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -29,6 +31,7 @@ public class ViewMallOrderController extends BaseController { private final IAdminMallOrderService adminMallOrderService; + private final MallInvoiceMapper mallInvoiceMapper; private final MallOrderRefundMapper mallOrderRefundMapper; @@ -266,4 +269,26 @@ return FebsUtil.view("modules/order/invoiceList"); } + /** + * 发票列表-详情 + * @param id + * @param model + * @return + */ + @GetMapping("invoiceDetail/{id}") + @RequiresPermissions("invoiceDetail:view") + public String invoiceDetail(@PathVariable long id, Model model) { + String existToken = redisUtils.getString("ADMIN_INVOICE_ID"); + if (StrUtil.isNotBlank(existToken)) { + Object o = redisUtils.get(existToken); + if (ObjectUtil.isNotEmpty(o)) { + redisUtils.del(existToken); + } + } + redisUtils.set("ADMIN_INVOICE_ID", id, -1); + AdminInvoiceDetailVo data = mallInvoiceMapper.getAdminInvoiceDetailVoById(id); + model.addAttribute("invoiceDetail", data); + return FebsUtil.view("modules/order/invoiceDetail"); + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java index d2a07b9..3bdbce5 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java @@ -52,4 +52,7 @@ @TableField(exist = false) private long[] orderIdsStr; + + @TableField(exist = false) + private String unit; } diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallInvoiceMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallInvoiceMapper.java index cbcf691..74c7d8a 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallInvoiceMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallInvoiceMapper.java @@ -3,6 +3,8 @@ import cc.mrbird.febs.mall.dto.AdminMallInvoiceDto; import cc.mrbird.febs.mall.dto.ApiMallInvoiceDto; import cc.mrbird.febs.mall.entity.MallInvoice; +import cc.mrbird.febs.mall.entity.MallOrderItem; +import cc.mrbird.febs.mall.vo.AdminInvoiceDetailVo; import cc.mrbird.febs.mall.vo.ApiMallInvoiceVo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -18,4 +20,7 @@ List<MallInvoice> selectByFapiaoApplyIdAndMemberId(@Param("fapiaoApplyId")String fapiaoApplyId, @Param("memberId")Long memberId); IPage<MallInvoice> getInvoiceListInPage(Page<MallInvoice> page, @Param("record")AdminMallInvoiceDto mallInvoiceDto); + + AdminInvoiceDetailVo getAdminInvoiceDetailVoById(@Param("id")long id); + List<MallOrderItem> getInvoiceItemList(@Param("record")MallInvoice mallInvoice); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java b/src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java index 8ab26c2..2c8fa1c 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java @@ -5,7 +5,10 @@ import cc.mrbird.febs.mall.dto.AdminMallInvoiceDto; import cc.mrbird.febs.mall.dto.ApiMallInvoiceDto; import cc.mrbird.febs.mall.entity.MallInvoice; +import cc.mrbird.febs.mall.entity.MallOrderItem; import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.List; public interface MallInvoiceService { @@ -19,4 +22,8 @@ void mallInvoiceJob(); IPage<MallInvoice> getInvoiceList(AdminMallInvoiceDto mallInvoiceDto, QueryRequest request); + + List<MallOrderItem> invoiceItemList(); + + FebsResponse addInvoiceUrl(MallInvoice mallInvoice); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java index c2d42ef..6d55625 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java @@ -4,6 +4,7 @@ import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.enumerates.OrderStatusEnum; import cc.mrbird.febs.common.utils.LoginUserUtil; +import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.mall.dto.AdminMallInvoiceDto; import cc.mrbird.febs.mall.dto.ApiMallInvoiceDto; import cc.mrbird.febs.mall.entity.MallInvoice; @@ -34,6 +35,7 @@ private final MallOrderInfoMapper mallOrderInfoMapper; private final MallOrderItemMapper mallOrderItemMapper; + private final RedisUtils redisUtils; @Override public FebsResponse getInvoices(ApiMallInvoiceDto apiMallInvoiceDto) { MallMember member = LoginUserUtil.getLoginUser(); @@ -65,26 +67,28 @@ String payOrderNo = mallOrderInfo.getPayOrderNo(); List<MallInvoice> mallInvoices = this.baseMapper.selectByFapiaoApplyIdAndMemberId(payOrderNo, memberId); if(CollUtil.isNotEmpty(mallInvoices)){ - continue; + MallInvoice mallInvoice = mallInvoices.get(0); + mallInvoice.setStatus(mallOrderInfo.getStatus()); + this.baseMapper.updateById(mallInvoice); + }else{ + MallInvoice mallInvoice = new MallInvoice(); + mallInvoice.setMemberId(memberId); + mallInvoice.setFapiaoApplyId(payOrderNo); + mallInvoice.setOrderNo(mallOrderInfo.getOrderNo()); + mallInvoice.setOrderId(mallOrderInfo.getId()); + mallInvoice.setStatus(mallOrderInfo.getStatus()); + mallInvoice.setAmount(mallOrderInfo.getAmount()); + List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(mallOrderInfo.getId()); + mallInvoice.setGoodsImg(mallOrderItemList.get(0).getSkuImage()); + mallInvoice.setState(0); + this.baseMapper.insert(mallInvoice); } - MallInvoice mallInvoice = new MallInvoice(); - mallInvoice.setMemberId(memberId); - mallInvoice.setFapiaoApplyId(payOrderNo); - mallInvoice.setOrderNo(mallOrderInfo.getOrderNo()); - mallInvoice.setOrderId(mallOrderInfo.getId()); - mallInvoice.setStatus(mallOrderInfo.getStatus()); - mallInvoice.setAmount(mallOrderInfo.getAmount()); - List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(mallOrderInfo.getId()); - mallInvoice.setGoodsImg(mallOrderItemList.get(0).getSkuImage()); - mallInvoice.setState(0); - this.baseMapper.insert(mallInvoice); /** * 更新订单为已开票 */ mallOrderInfo.setIsInvoice(1); mallOrderInfoMapper.updateById(mallOrderInfo); - } } @@ -94,4 +98,31 @@ Page<MallInvoice> page = new Page<>(request.getPageNum(), request.getPageSize()); return this.baseMapper.getInvoiceListInPage(page, mallInvoiceDto); } + + @Override + public List<MallOrderItem> invoiceItemList() { + Long existToken = Long.parseLong(redisUtils.getString("ADMIN_INVOICE_ID")); + MallInvoice mallInvoice = this.baseMapper.selectById(existToken); + if(ObjectUtil.isEmpty(mallInvoice)){ + return null; + } + return this.baseMapper.getInvoiceItemList(mallInvoice); + } + + @Override + public FebsResponse addInvoiceUrl(MallInvoice mallInvoice) { + Long id = mallInvoice.getId(); + MallInvoice mallInvoiceOld = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(mallInvoiceOld)){ + return new FebsResponse().fail().message("开票信息异常。"); + } + Integer status = mallInvoiceOld.getStatus(); + if(OrderStatusEnum.FINISH.getValue() != status){ + return new FebsResponse().fail().message("订单还未完成,请勿开发票。"); + } + mallInvoiceOld.setInvoiceUrl(mallInvoice.getInvoiceUrl()); + mallInvoiceOld.setState(2); + this.baseMapper.updateById(mallInvoiceOld); + return new FebsResponse().success(); + } } diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminInvoiceDetailVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminInvoiceDetailVo.java new file mode 100644 index 0000000..043767f --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminInvoiceDetailVo.java @@ -0,0 +1,47 @@ +package cc.mrbird.febs.mall.vo; + +import lombok.Data; +import java.math.BigDecimal; + +@Data +public class AdminInvoiceDetailVo { + private Long id; + /** + *【购买方类型】 购买方类型 + * 可选取值: + * INDIVIDUAL: 个人 + * ORGANIZATION: 单位 + */ + private String type; + /** + *【名称】 购买方名称 + */ + private String name; + /** + *【纳税人识别号】 购买方纳税人识别号,购买方类型为ORGANIZATION时必须存在 + */ + private String taxpayerId; + /** + *【地址】 购买方地址 + */ + private String address; + /** + *【电话】 购买方电话 + */ + private String telephone; + /** + *【开户银行】 购买方开户银行 + */ + private String bankName; + /** + *【银行账号】 购买方银行账号 + */ + private String bankAccount; + + private String orderNo;//订单编号 + + private BigDecimal amount;//订单金额 + + private String invoiceUrl;//订单编号 + +} diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java index 24070ac..8ea75df 100644 --- a/src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java @@ -361,8 +361,8 @@ if(ObjectUtil.isNotEmpty(mallOrderInfo)){ //更新订单状态 - mallOrderInfo.setIsInvoice(1); - mallOrderInfoMapper.updateById(mallOrderInfo); +// mallOrderInfo.setIsInvoice(1); +// mallOrderInfoMapper.updateById(mallOrderInfo); //获取用户的抬头信息 String userInvoiceInfo = getUserInvoiceInfo(fapiao_apply_id); JSONObject userInvoiceInfoJson = JSONUtil.parseObj(userInvoiceInfo); diff --git a/src/main/resources/mapper/modules/MallInvoiceMapper.xml b/src/main/resources/mapper/modules/MallInvoiceMapper.xml index 537d3a5..e717aa3 100644 --- a/src/main/resources/mapper/modules/MallInvoiceMapper.xml +++ b/src/main/resources/mapper/modules/MallInvoiceMapper.xml @@ -38,14 +38,30 @@ <if test="record.state != null"> and a.state = #{record.state} </if> - <if test="record.orderNo != null"> + <if test="record.orderNo != null and record.orderNo != ''"> and a.order_no = #{record.orderNo} </if> - <if test="record.payOrderNo != null"> + <if test="record.payOrderNo != null and record.payOrderNo != ''"> and a.fapiao_apply_id = #{record.payOrderNo} </if> </where> order by a.created_time desc </select> + <select id="getAdminInvoiceDetailVoById" resultType="cc.mrbird.febs.mall.vo.AdminInvoiceDetailVo"> + select + a.* + from mall_invoice a + where id = #{id} + </select> + + <select id="getInvoiceItemList" resultType="cc.mrbird.febs.mall.entity.MallOrderItem"> + select + a.*, + b.unit + from mall_order_item a + left join mall_goods b on a.goods_id = b.id + where order_id = #{record.orderId} + </select> + </mapper> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/order/invoiceDetail.html b/src/main/resources/templates/febs/views/modules/order/invoiceDetail.html new file mode 100644 index 0000000..215ac03 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/order/invoiceDetail.html @@ -0,0 +1,248 @@ +<style> + #invoice-info { + padding: 20px 25px 25px 0; + } + + #invoice-info .layui-treeSelect .ztree li a, .ztree li span { + margin: 0 0 2px 3px !important; + } + #invoice-info #data-permission-tree-block { + border: 1px solid #eee; + border-radius: 2px; + padding: 3px 0; + } + #invoice-info .layui-treeSelect .ztree li span.button.switch { + top: 1px; + left: 3px; + } + +</style> +<div class="layui-fluid" id="invoice-info"> + <blockquote class="layui-elem-quote blue-border">抬头信息</blockquote> + <form class="layui-form" action="" lay-filter="invoice-info-form"> + <div class="layui-card"> + <div class="layui-form-item febs-hide"> + <label class="layui-form-label febs-form-item-require">id:</label> + <div class="layui-input-block"> + <input type="text" name="id"> + </div> + </div> + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">开票类型:</label> + <div class="layui-input-block"> + <input type="radio" name="type" value="INDIVIDUAL" title="个人" checked="" readonly> + <input type="radio" name="type" value="ORGANIZATION" title="单位" readonly> + </div> + </div> + </div> + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">名称:</label> + <div class="layui-input-block"> + <input type="text" name="name" autocomplete="off" class="layui-input" readonly> + </div> + </div> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">识别号:</label> + <div class="layui-input-block"> + <input type="text" name="taxpayerId" autocomplete="off" class="layui-input" readonly> + </div> + </div> + </div> + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">地址:</label> + <div class="layui-input-block"> + <input type="text" name="address" autocomplete="off" class="layui-input" readonly> + </div> + </div> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">电话:</label> + <div class="layui-input-block"> + <input type="text" name="telephone" autocomplete="off" class="layui-input" readonly> + </div> + </div> + </div> + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">开户银行:</label> + <div class="layui-input-block"> + <input type="text" name="bankName" autocomplete="off" class="layui-input" readonly> + </div> + </div> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">银行账号:</label> + <div class="layui-input-block"> + <input type="text" name="bankAccount" autocomplete="off" class="layui-input" readonly> + </div> + </div> + </div> + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">订单编号:</label> + <div class="layui-input-block"> + <input type="text" name="orderNo" autocomplete="off" class="layui-input" readonly> + </div> + </div> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">订单金额:</label> + <div class="layui-input-block"> + <input type="text" name="amount" autocomplete="off" class="layui-input" readonly> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">发票:</label> + <div class="layui-input-block"> + <div class="layui-upload"> + <button type="button" class="layui-btn layui-btn-normal layui-btn" id="test2">上传发票</button> + <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;"> + <div class="layui-upload-list" id="demo2"></div> + </blockquote> + <div class="layui-word-aux">双击图片删除</div> + </div> + </div> + </div> + <div class="layui-form-item febs-hide"> + <label class="layui-form-label">发票链接:</label> + <div class="layui-input-block"> + <input type="text" id="invoiceUrl" lay-verify="required" name="invoiceUrl" autocomplete="off" class="layui-input" readonly> + </div> + </div> + <div class="layui-row layui-col-space10 layui-form-item" style="text-align: center;"> + <button class="layui-btn layui-btn-normal" lay-submit="" + lay-filter="invoice-detail-form-submit" id="submit">保存</button> + </div> + </div> + </form> +</div> + <blockquote class="layui-elem-quote blue-border">订单详情</blockquote> + <div class="layui-card-body febs-table-full"> + <table id="invoiceOrderItemTable" lay-filter="invoiceOrderItemTable"></table> + </div> + +<script data-th-inline="javascript"> + layui.use(['upload','febs', 'form', 'formSelects', 'validate', 'treeSelect', 'table','eleTree'], function () { + var $ = layui.$, + febs = layui.febs, + layer = layui.layer, + table = layui.table, + formSelects = layui.formSelects, + treeSelect = layui.treeSelect, + form = layui.form, + eleTree = layui.eleTree, + invoiceDetail = [[${invoiceDetail}]], + $view = $('#invoice-info'), + validate = layui.validate, + upload = layui.upload, + _deptTree; + + form.render(); + + table.render({ + elem: '#invoiceOrderItemTable' + ,cols: [[ //表头 + {field: 'skuName', title: '货物、应税劳务、服务名称', minWidth: 300,align:'left'}, + {field: 'skuName', title: '规格型号', minWidth: 150,align:'left'}, + {field: 'unit', title: '单位', minWidth: 100,align:'left'}, + {field: 'cnt', title: '数量', minWidth: 100,align:'left'}, + {field: 'price', title: '单价', minWidth: 100,align:'left'}, + {field: 'amount', title: '金额', minWidth: 150,align:'left'} + ]] + ,data: [] + }); + dicDataReq("invoiceOrderItemTable"); + function dicDataReq(type) { + $.get(ctx + 'admin/order/invoiceItemList/', function (r) { + if (r.code === 200) { + var data = r.data; + table.reload('invoiceOrderItemTable', { + data : data + }); + } + }); + } + // 表格初始化 + initInvoiceDetailValue(); + function initInvoiceDetailValue() { + if(invoiceDetail.invoiceUrl != null || invoiceDetail.invoiceUrl != ''){ + $('#demo2').append('<img src="'+ invoiceDetail.invoiceUrl +'" class="layui-upload-img" style="width: 100px">') + $("#invoiceUrl").val(invoiceDetail.invoiceUrl); + } + form.val("invoice-info-form", { + "id": invoiceDetail.id, + "type": invoiceDetail.type, + "name": invoiceDetail.name, + "taxpayerId": invoiceDetail.taxpayerId, + "address": invoiceDetail.address, + "telephone": invoiceDetail.telephone, + "bankName": invoiceDetail.bankName, + "bankAccount": invoiceDetail.bankAccount, + "orderNo": invoiceDetail.orderNo, + "invoiceUrl": invoiceDetail.invoiceUrl, + "amount": invoiceDetail.amount + }); + } + + //图片上传 + upload.render({ + elem: '#test2' + ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 + // ,multiple: true + ,accept: 'file' + ,before: function(obj){ + //预读本地文件示例,不支持ie8 + obj.preview(function(index, file, result){ + if ($("#invoiceUrl").val()) { + $('#demo2').html('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">') + } else { + $('#demo2').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">') + } + }); + } + ,done: function(res){ + var item = this.item; + //如果上传失败 + if(res.code !== 0){ + return layer.msg('上传失败'); + } + $("#invoiceUrl").val(res.data.src); + layer.msg('上传完毕', {icon: 1}); + imgUnBind(".single-image"); + imgSingleBind(); + } + ,error: function(err){ + return layer.msg('上传失败'); + } + }); + + function imgUnBind(className) { + $(className).each(function() { + $(this).unbind('dblclick'); + }) + } + + function imgSingleBind() { + $(".single-image").each(function(index, element) { + $(this).on("dblclick", function() { + var imgThumb = $(".single-image")[index]; + $(imgThumb).remove(); + $("#invoiceUrl").val(""); + + imgUnBind(".single-image"); + imgSingleBind(); + }); + }) + } + + form.on('submit(invoice-detail-form-submit)', function (data) { + febs.post(ctx + 'admin/order/addInvoiceUrl', data.field, function () { + layer.closeAll(); + febs.alert.success('操作成功'); + $('#febs-invoice').find('#query').click(); + }); + return false; + }); + }); +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/order/invoiceList.html b/src/main/resources/templates/febs/views/modules/order/invoiceList.html index 84a4cd7..88fd2ae 100644 --- a/src/main/resources/templates/febs/views/modules/order/invoiceList.html +++ b/src/main/resources/templates/febs/views/modules/order/invoiceList.html @@ -23,8 +23,8 @@ <div class="layui-input-inline"> <select name="state"> <option value="">请选择</option> - <option value="0">未开票</option> - <option value="1">开票中</option> + <option value="0">待申请</option> + <option value="1">待开票</option> <option value="2">已开票</option> </select> </div> @@ -102,68 +102,13 @@ // 表格初始化 initInvoiceTable(); - upload.render({ - elem: '#importDeliver' - ,url: 'admin/order/importDeliver' //此处配置你自己的上传接口即可 - ,accept: 'file' //普通文件 - ,done: function(res){ - console.log("123"); - febs.alert.success('操作成功'); - $query.click(); - } - }); - // 初始化表格操作栏各个按钮功能 table.on('tool(invoiceTable)', function (obj) { var data = obj.data, layEvent = obj.event; - if (layEvent === 'deliverGoods') { - febs.modal.open('发货', 'modules/order/deliverGoods/' + data.id, { - btn: ['确认','取消'], - yes: function (index, layero) { - $('#deliver-update').find('#submit').trigger('click'); - // $query.click(); - }, - btn2: function () { - layer.closeAll(); - } - }); - } - if (layEvent === 'updateDeliver') { - febs.modal.open('修改物流信息', 'modules/order/deliverGoods/' + data.id, { - btn: ['确认','取消'], - yes: function (index, layero) { - $('#deliver-update').find('#deliverInfoSubmit').trigger('click'); - // $query.click(); - }, - btn2: function () { - layer.closeAll(); - } - }); - } - if (layEvent === 'seeOrder') { - febs.modal.open( '订单详情', 'modules/order/orderDetail/' + data.id, { - maxmin: true, - }); - } - if (layEvent === 'cancelOrder') { - febs.modal.confirm('取消订单', '确认取消订单?', function () { - cancelOrder(data.id); - }); - } - if (layEvent === 'seePayImage') { - var t = $view.find('#seePayImage'+data.id+''); - //页面层 - layer.open({ - type: 1, - title: "支付凭证", - skin: 'layui-layer-rim', //加上边框 - area: ['80%', '80%'], //宽高 - shadeClose: true, //开启遮罩关闭 - end: function (index, layero) { - return false; - }, - content: '<div style="text-align:center"><img src="' + $(t).attr('src') + '" /></div>' + if (layEvent === 'seeInvoiceDetail') { + febs.modal.open('开票信息', 'modules/order/invoiceDetail/'+ data.id, { + area:['100%','100%'], }); } }); @@ -203,7 +148,7 @@ templet: function (d) { if (d.type === 'INDIVIDUAL') { return '<span style="color:red;">个人</span>' - } else if (d.status === 'ORGANIZATION') { + } else if (d.type === 'ORGANIZATION') { return '<span style="color:green;">单位</span>' }else{ return '' @@ -249,17 +194,12 @@ }, minWidth: 100,align:'center'}, {title: '操作', templet: function (d) { - if(d.status === 2){ - return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' - +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="deliverGoods" shiro:hasPermission="user:update">发货</button>' - }else if(d.status === 3){ - return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' - +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="updateDeliver" shiro:hasPermission="user:update">修改物流信息</button>' + if(d.status === 4){ + return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeInvoiceDetail" shiro:hasPermission="user:update">开票信息</button>' }else{ - return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' + return '' } - - },minWidth: 200,align:'center', fixed:'right'} + },minWidth: 300,align:'center', fixed:'right'} ]] }); } -- Gitblit v1.9.1