From 4888ef96061e19769427bf52b0a644da7910331e Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Fri, 18 Jul 2025 16:31:56 +0800 Subject: [PATCH] feat(clothes): 添加服装打印相关功能 --- src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesController.java | 4 src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintOrderVo.java | 24 + src/main/resources/templates/febs/views/modules/clothesType/orderList-bak.html | 522 +++++++++++++++++++++++++++ src/main/resources/templates/index.html | 2 src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java | 7 src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java | 121 ++++++ src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintPatternVo.java | 11 src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintMemberStatureVo.java | 15 src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java | 67 +++ src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 3 src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java | 26 + src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintLocationVo.java | 11 src/main/resources/templates/febs/views/modules/clothesType/orderPrint.html | 249 +++++++++++++ src/main/resources/templates/febs/views/modules/clothesType/orderList.html | 15 src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java | 2 src/main/java/cc/mrbird/febs/mall/service/ClothesTypeService.java | 2 src/main/resources/templates/febs/views/layout.html | 2 src/main/resources/templates/febs/views/login.html | 4 18 files changed, 1,067 insertions(+), 20 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java b/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java index 182908d..7aa560b 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java @@ -20,11 +20,17 @@ import cc.mrbird.febs.mall.dto.clothes.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.service.ClothesTypeService; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesPrintLocationVo; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesPrintMemberStatureVo; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesPrintOrderVo; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesPrintPatternVo; 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 cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSON; +import cn.hutool.json.JSONUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -38,6 +44,7 @@ import java.io.File; import java.io.IOException; import java.io.OutputStream; +import java.math.BigDecimal; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Date; @@ -343,6 +350,66 @@ return clothesTypeService.printOrder(dto); } + public static void main(String[] args) { + AdminClothesPrintOrderVo vo = new AdminClothesPrintOrderVo(); + vo.setOrderNo("20201201"); + vo.setTypeName("T恤"); + vo.setTypeFront("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/1752740706568ab67808fb49940a7930b9e0ab0793238.png"); + vo.setTypeBack("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/1752740734639227e7f5a0f3a4de097a2785305bff825.png"); + vo.setClothName("棉"); + vo.setClothCode("TX"); + vo.setSizeName("XL"); + vo.setSizeCode("XL"); + vo.setArtName("印花"); + vo.setArtCode("C"); + List<AdminClothesPrintPatternVo> patterns = new ArrayList<>(); + AdminClothesPrintPatternVo pattern = new AdminClothesPrintPatternVo(); + pattern.setPatternName("胸口"); + pattern.setPatternCode("front-one"); + pattern.setPatternText("胸口"); + pattern.setPatternImage("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/17527407868773d1ad92c4c2e454396a6fc051c2219bc.png"); + patterns.add(pattern); + + AdminClothesPrintPatternVo pattern1 = new AdminClothesPrintPatternVo(); + pattern1.setPatternName("左下"); + pattern1.setPatternCode("front-two"); + pattern1.setPatternText("左下"); + pattern1.setPatternImage("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/17527407868773d1ad92c4c2e454396a6fc051c2219bc.png"); + patterns.add(pattern1); + AdminClothesPrintPatternVo pattern2 = new AdminClothesPrintPatternVo(); + pattern2.setPatternName("袖口"); + pattern2.setPatternCode("front-three"); + pattern2.setPatternText("袖口"); + pattern2.setPatternImage("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/17527407868773d1ad92c4c2e454396a6fc051c2219bc.png"); + patterns.add(pattern2); + vo.setPatterns( patterns); + + List<AdminClothesPrintLocationVo> locations = new ArrayList<>(); + AdminClothesPrintLocationVo location = new AdminClothesPrintLocationVo(); + location.setLocationName("后背"); + location.setLocationCode("back-one"); + location.setLocationText("后背"); + location.setLocationImage("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/17527407868773d1ad92c4c2e454396a6fc051c2219bc.png"); + locations.add(location); + vo.setLocations(locations); + + AdminClothesPrintMemberStatureVo adminClothesPrintMemberStatureVo = new AdminClothesPrintMemberStatureVo(); + adminClothesPrintMemberStatureVo.setName("会员身高"); + adminClothesPrintMemberStatureVo.setHeightLine(new BigDecimal("170")); + adminClothesPrintMemberStatureVo.setBustLine(new BigDecimal("90")); + adminClothesPrintMemberStatureVo.setWaistLine(new BigDecimal("80")); + adminClothesPrintMemberStatureVo.setWideLine(new BigDecimal("100")); + adminClothesPrintMemberStatureVo.setHipLine(new BigDecimal("100")); + vo.setMemberStature(adminClothesPrintMemberStatureVo); + + + //将vo转换成json字符串 + JSON parse = JSONUtil.parse(vo); + System.out.println(parse.toString()); + + + } + /** * 订单列表-修改物流编号 */ diff --git a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesController.java b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesController.java index 48bf0a4..01ac0bb 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesController.java @@ -56,7 +56,7 @@ return clothesService.clothList(dto); } - @ApiOperation(value = "图案列表", notes = "图案列表") + @ApiOperation(value = "正面图案列表", notes = "图案列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiClothesPatternVo.class) }) @@ -76,7 +76,7 @@ return clothesService.sizeList(dto); } - @ApiOperation(value = "位置列表", notes = "位置列表") + @ApiOperation(value = "反面图案列表", notes = "反面图案列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiClothesLocationVo.class) }) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java index 4904d8e..47699fd 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java @@ -2,20 +2,19 @@ import cc.mrbird.febs.common.controller.BaseController; import cc.mrbird.febs.common.entity.FebsConstant; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.SocialPatternLocationTypeEnum; import cc.mrbird.febs.common.utils.AppContants; import cc.mrbird.febs.common.utils.FebsUtil; import cc.mrbird.febs.common.utils.RedisUtils; +import cc.mrbird.febs.mall.dto.clothes.AdminClothesPrintOrderDto; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.ClothesTypeService; import cc.mrbird.febs.mall.service.IAdminBannerService; import cc.mrbird.febs.mall.vo.AdminLabelSetVo; import cc.mrbird.febs.mall.vo.AdminMallOrderVo; -import cc.mrbird.febs.mall.vo.clothes.AdminClothesDeliverGoodsVo; -import cc.mrbird.febs.mall.vo.clothes.AdminClothesLocationRemarkVo; -import cc.mrbird.febs.mall.vo.clothes.AdminClothesPatternRemarkVo; -import cc.mrbird.febs.mall.vo.clothes.AdminClothesTypeInfoVo; +import cc.mrbird.febs.mall.vo.clothes.*; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -236,6 +235,25 @@ return FebsUtil.view("modules/clothesType/orderList"); } + + + + + /** + * 社区列表-查看评论 + * @return + */ + @GetMapping("/orderPrint/{id}") + @RequiresPermissions("orderPrint:view") + public String orderPrint(@PathVariable Long id, Model model) { + + AdminClothesPrintOrderDto dto = new AdminClothesPrintOrderDto(); + dto.setId(id); + AdminClothesPrintOrderVo adminClothesPrintOrderVo = clothesTypeService.printOrderEvent(dto); + model.addAttribute("orderPrint", adminClothesPrintOrderVo); + return FebsUtil.view("modules/clothesType/orderPrint"); + } + /** * 订单-发货 * @param id diff --git a/src/main/java/cc/mrbird/febs/mall/service/ClothesTypeService.java b/src/main/java/cc/mrbird/febs/mall/service/ClothesTypeService.java index 5986279..860a69c 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/ClothesTypeService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/ClothesTypeService.java @@ -8,6 +8,7 @@ import cc.mrbird.febs.mall.dto.clothes.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.vo.clothes.AdminClothesOrderListVo; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesPrintOrderVo; import cc.mrbird.febs.mall.vo.clothes.AdminClothesSocialCommentVo; import cc.mrbird.febs.mall.vo.clothes.AdminClothesSocialListVo; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -127,4 +128,5 @@ FebsResponse socialMuseUpdate(ClothesSocialMuse dto); FebsResponse printOrder(AdminClothesPrintOrderDto dto); + AdminClothesPrintOrderVo printOrderEvent(AdminClothesPrintOrderDto dto); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java index 9f029d3..8b0d3e1 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesOrderServiceImpl.java @@ -862,7 +862,7 @@ if(ObjectUtil.isNull(orderInfo)){ throw new FebsException("订单不存在"); } - if (member.getId() != orderInfo.getMemberId()) { + if (!ObjectUtil.equal(member.getId(), orderInfo.getMemberId())) { throw new FebsException("无权限操作"); } if (ClothesEnum.UP.getCode() == orderInfo.getDelFlag()) { diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java index 50cfea8..de57410 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java @@ -76,6 +76,11 @@ if(CollUtil.isNotEmpty(list)){ vos = buildApiClothesCategoryInfoVo(list, vos); } + ApiClothesCategoryInfoVo apiClothesCategoryInfoVo = new ApiClothesCategoryInfoVo(); + apiClothesCategoryInfoVo.setId(0L); + apiClothesCategoryInfoVo.setName("全部"); + vos.add(apiClothesCategoryInfoVo); + return new FebsResponse().success().data(vos); } @@ -325,7 +330,7 @@ List<ClothesLocationRemark> clothesLocationRemarks = new ArrayList<>(); List<ClothesPatternRemark> clothesPatternRemarks = new ArrayList<>(); - if(CollUtil.isEmpty(clothesOrderItems)){ + if(CollUtil.isNotEmpty(clothesOrderItems)){ for (ClothesOrderItem item : clothesOrderItems){ if (ClothesOrderItemEnum.CLOTH.getCode() == item.getType()) { ClothesCloth cloth = clothesClothMapper.selectById(item.getItemId()); diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java index 47645d3..25b929a 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java @@ -1239,4 +1239,125 @@ return new FebsResponse().success().data(objectObjectHashMap); } + @Override + public AdminClothesPrintOrderVo printOrderEvent(AdminClothesPrintOrderDto dto) { + + AdminClothesPrintOrderVo vo = new AdminClothesPrintOrderVo(); + + ClothesOrder order = clothesOrderMapper.selectById(dto.getId()); + if (ObjectUtil.isNotNull(order)){ + vo.setOrderNo(order.getOrderNo()); + } + ClothesType clothesType = clothesTypeMapper.selectById(order.getTypeId()); + if (ObjectUtil.isNotNull(clothesType)) { + vo.setTypeName(clothesType.getName()); + vo.setTypeFront(clothesType.getImageFront()); + vo.setTypeBack(clothesType.getImageBack()); + } + List<ClothesOrderItem> clothesOrderItems = clothesOrderItemMapper.selectList( + Wrappers.lambdaQuery(ClothesOrderItem.class) + .eq(ClothesOrderItem::getOrderId, order.getId()) + ); + if(CollUtil.isNotEmpty(clothesOrderItems)){ + String nullStr = "暂无"; + List<AdminClothesPrintLocationVo> locations = new ArrayList<>(); + List<AdminClothesPrintPatternVo> patterns = new ArrayList<>(); + for (ClothesOrderItem item : clothesOrderItems){ + if (ClothesOrderItemEnum.CLOTH.getCode() == item.getType()) { + ClothesCloth cloth = clothesClothMapper.selectById(item.getItemId()); + if (ObjectUtil.isNotNull(cloth)) { + vo.setClothCode(cloth.getCode()); + vo.setClothName(cloth.getName()); + }else{ + vo.setClothCode(nullStr); + vo.setClothName(nullStr); + } + continue; + } else if (ClothesOrderItemEnum.SIZE.getCode() == item.getType()) { + ClothesSize size = clothesSizeMapper.selectById(item.getItemId()); + if (ObjectUtil.isNotNull(size)) { + vo.setSizeName(size.getName()); + vo.setSizeCode(size.getCode()); + }else { + vo.setSizeName(nullStr); + vo.setSizeCode(nullStr); + } + continue; + } else if (ClothesOrderItemEnum.LOCATION.getCode() == item.getType()) { + AdminClothesPrintLocationVo locationVo = new AdminClothesPrintLocationVo(); + ClothesLocation location = clothesLocationMapper.selectById(item.getItemId()); + if (ObjectUtil.isNotNull(location)) { + locationVo.setLocationName(location.getName()); + locationVo.setLocationCode(location.getCode()); + + JSON parse = JSONUtil.parse(item.getRemark()); + locationVo.setLocationText(parse.getByPath("text", String.class)); + locationVo.setLocationImage(parse.getByPath("file", String.class)); + }else{ + locationVo.setLocationName(nullStr); + locationVo.setLocationCode(nullStr); + locationVo.setLocationText(nullStr); + locationVo.setLocationImage(nullStr); + } + locations.add(locationVo); + vo.setLocations( locations); + continue; + } else if (ClothesOrderItemEnum.PATTERN.getCode() == item.getType()) { + AdminClothesPrintPatternVo patternVo = new AdminClothesPrintPatternVo(); + + ClothesPattern pattern = clothesPatternMapper.selectById(item.getItemId()); + if (ObjectUtil.isNotNull(pattern)) { + patternVo.setPatternName(pattern.getName()); + patternVo.setPatternCode(pattern.getCode()); + + JSON parse = JSONUtil.parse(item.getRemark()); + patternVo.setPatternText(parse.getByPath("text", String.class)); + patternVo.setPatternImage(parse.getByPath("file", String.class)); + }else{ + patternVo.setPatternName(nullStr); + patternVo.setPatternCode(nullStr); + patternVo.setPatternText(nullStr); + patternVo.setPatternImage(nullStr); + } + patterns.add(patternVo); + vo.setPatterns( patterns); + continue; + } else if (ClothesOrderItemEnum.ART.getCode() == item.getType()) { + ClothesArt art = clothesArtMapper.selectById(item.getItemId()); + if (ObjectUtil.isNotNull(art)) { + vo.setArtName(art.getName()); + vo.setArtCode(art.getCode()); + }else{ + vo.setArtName(nullStr); + vo.setArtCode(nullStr); + } + continue; + } else if (ClothesOrderItemEnum.CUSTOMIZE.getCode() == item.getType()) { + AdminClothesPrintMemberStatureVo memberStature = new AdminClothesPrintMemberStatureVo(); + ClothesMemberStature clothesMemberStature = clothesMemberStatureMapper.selectById(item.getItemId()); + if (ObjectUtil.isNotNull(clothesMemberStature)) { + memberStature.setName(clothesMemberStature.getName()); + memberStature.setHeightLine(clothesMemberStature.getHeightLine()); + memberStature.setBustLine(clothesMemberStature.getBustLine()); + memberStature.setWaistLine(clothesMemberStature.getWaistLine()); + memberStature.setWideLine(clothesMemberStature.getWideLine()); + memberStature.setHipLine(clothesMemberStature.getHipLine()); + }else{ + memberStature.setName(nullStr); + memberStature.setHeightLine(BigDecimal.ZERO); + memberStature.setBustLine(BigDecimal.ZERO); + memberStature.setWaistLine(BigDecimal.ZERO); + memberStature.setWideLine(BigDecimal.ZERO); + memberStature.setHipLine(BigDecimal.ZERO); + } + vo.setMemberStature(memberStature); + continue; + } else { + continue; + } + } + } + return vo; + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintLocationVo.java b/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintLocationVo.java new file mode 100644 index 0000000..1f46911 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintLocationVo.java @@ -0,0 +1,11 @@ +package cc.mrbird.febs.mall.vo.clothes; + +import lombok.Data; + +@Data +public class AdminClothesPrintLocationVo { + private String locationName; + private String locationCode; + private String locationText; + private String locationImage; +} diff --git a/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintMemberStatureVo.java b/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintMemberStatureVo.java new file mode 100644 index 0000000..112ac06 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintMemberStatureVo.java @@ -0,0 +1,15 @@ +package cc.mrbird.febs.mall.vo.clothes; + +import lombok.Data; + +import java.math.BigDecimal; +@Data +public class AdminClothesPrintMemberStatureVo { + + private String name; + private BigDecimal heightLine; + private BigDecimal bustLine; + private BigDecimal waistLine; + private BigDecimal wideLine; + private BigDecimal hipLine; +} diff --git a/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintOrderVo.java b/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintOrderVo.java new file mode 100644 index 0000000..b411f9b --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintOrderVo.java @@ -0,0 +1,24 @@ +package cc.mrbird.febs.mall.vo.clothes; + +import lombok.Data; + +import java.util.List; + +@Data +public class AdminClothesPrintOrderVo { + private String orderNo; + private String typeName; + private String typeFront; + private String typeBack; + private String clothName; + private String clothCode; + private String sizeName; + private String sizeCode; + private String artName; + private String artCode; + private List<AdminClothesPrintPatternVo> patterns; + private List<AdminClothesPrintLocationVo> locations; + + private AdminClothesPrintMemberStatureVo memberStature; + +} diff --git a/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintPatternVo.java b/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintPatternVo.java new file mode 100644 index 0000000..2affb96 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/vo/clothes/AdminClothesPrintPatternVo.java @@ -0,0 +1,11 @@ +package cc.mrbird.febs.mall.vo.clothes; + +import lombok.Data; + +@Data +public class AdminClothesPrintPatternVo { + private String patternName; + private String patternCode; + private String patternText; + private String patternImage; +} diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml index 539929e..4a0eaa0 100644 --- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml +++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml @@ -453,9 +453,6 @@ <if test="record.status == 5"> and a.status = 7 or b.state in (2,3) </if> - <if test="record.orderType != null"> - and a.order_type=#{record.orderType} - </if> </where> order by a.created_time desc </select> diff --git a/src/main/resources/templates/febs/views/layout.html b/src/main/resources/templates/febs/views/layout.html index e24480f..26bc759 100644 --- a/src/main/resources/templates/febs/views/layout.html +++ b/src/main/resources/templates/febs/views/layout.html @@ -64,7 +64,7 @@ <div class="layui-side-scroll"> <div class="layui-logo" style="cursor: pointer"> <img data-th-src="@{febs/images/logo.png}"> - <span>快乐社区 权限系统</span> + <span>设计 管理系统</span> </div> <script type="text/html" diff --git a/src/main/resources/templates/febs/views/login.html b/src/main/resources/templates/febs/views/login.html index 56d1e29..099073f 100644 --- a/src/main/resources/templates/febs/views/login.html +++ b/src/main/resources/templates/febs/views/login.html @@ -2,7 +2,7 @@ <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> - <title>快乐社区 权限系统</title> + <title>设计 管理系统</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> @@ -19,7 +19,7 @@ <div class="layui-container"> <div class="layui-row"> <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc"> - <div class="layui-logo"><span><b>快乐社区</b> 权限系统</span></div> + <div class="layui-logo"><span><b>设计 </b> 管理系统</span></div> </div> <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div"> <div class="layui-form" lay-filter="login-form"> diff --git a/src/main/resources/templates/febs/views/modules/clothesType/orderList-bak.html b/src/main/resources/templates/febs/views/modules/clothesType/orderList-bak.html new file mode 100644 index 0000000..9bbd856 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/clothesType/orderList-bak.html @@ -0,0 +1,522 @@ +<div class="layui-fluid layui-anim febs-anim" id="febs-clothes-order" lay-title="订单列表"> + <div class="layui-row febs-container"> + <div class="layui-col-md12"> + <div class="layui-card"> + <div class="layui-card-body febs-table-full"> + <form class="layui-form layui-table-form" lay-filter="clothes-order-table-form"> + <div class="layui-form-item"> + <div class="layui-col-md10"> + <div class="layui-inline"> + <label class="layui-form-label">购买人:</label> + <div class="layui-input-inline"> + <input type="text" placeholder="购买人" name="name" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label">订单编号:</label> + <div class="layui-input-inline"> + <input type="text" placeholder="订单编号" name="orderNo" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label">订单状态:</label> + <div class="layui-input-inline"> + <select name="status"> + <option value="">请选择</option> + <option value="1">待支付</option> + <option value="2">待发货</option> + <option value="3">待收货</option> + <option value="4">已完成</option> + <option value="5">已取消</option> + </select> + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label">支付状态:</label> + <div class="layui-input-inline"> + <select name="payResult"> + <option value="">请选择</option> + <option value="1">成功</option> + <option value="2">未成功</option> + </select> + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label">开始时间:</label> + <div class="layui-input-inline"> + <input type="text" name="startTime" id="febs-clothes-order-date-start" lay-verify="date" + placeholder="yyyy-MM-dd HH:mm:ss" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label">结束时间:</label> + <div class="layui-input-inline"> + <input type="text" name="endTime" id="febs-clothes-order-date-end" lay-verify="date" + placeholder="yyyy-MM-dd HH:mm:ss" autocomplete="off" class="layui-input"> + </div> + </div> + </div> + + <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> + <i class="layui-icon"></i> + </div> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> + <i class="layui-icon"></i> + </div> + </div> + </div> + </form> + <table lay-filter="orderClothesTable" lay-data="{id: 'orderClothesTable'}"></table> + <style type="text/css"> + .layui-table cell{ + text-align:center; + height: auto; + white-space: nowrap; /*文本不会换行,在同一行显示*/ + overflow: hidden; /*超出隐藏*/ + text-overflow: ellipsis; /*省略号显示*/ + } + .layui-table img{ + max-width:100px + } + + ::-webkit-scrollbar { + height: 20px !important; + background-color: #f4f4f4; + } + </style> + </div> + </div> + </div> + </div> +</div> +<!-- 表格操作栏 start --> +<script type="text/html" id="user-option"> + <span shiro:lacksPermission="user:view,user:update,user:delete"> + <span class="layui-badge-dot febs-bg-orange"></span> 无权限 + </span> + <a lay-event="edit" shiro:hasPermission="user:update"><i + class="layui-icon febs-edit-area febs-blue"></i></a> +</script> +<script type="text/html" id="tableToolBarClothesOrder"> + <div class="layui-btn-container"> + <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="printSelect">自定义打印</button> + <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="deliverGoods">发货</button> + <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="updateDeliver">修改物流信息</button> + <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="refundOrder">仅退款</button> + <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="confirmOrder">确认收货</button> + <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverTwo">导出待发货订单</button> + <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" id="importDeliver" lay-event="importDeliver">导入发货</button> + </div> +</script> +<!-- 表格操作栏 end --> +<script data-th-inline="none" type="text/javascript"> + // 引入组件并初始化 + layui.use([ 'jquery', 'form', 'table', 'febs', 'formSelects', 'upload','laydate'], function () { + var $ = layui.jquery, + febs = layui.febs, + form = layui.form, + table = layui.table, + upload = layui.upload, + $view = $('#febs-clothes-order'), + $query = $view.find('#query'), + $reset = $view.find('#reset'), + $searchForm = $view.find('form'), + sortObject = {field: 'orderTime', type: 'desc'}, + formSelects = layui.formSelects, + laydate = layui.laydate, + tableIns; + + let currPageOrder = 1;//首先默认值为1,防止出错 + //获取当前页 + currPageOrder = $view.find(".layui-laypage-em").next().html(); + //日期范围 + laydate.render({ + elem: '#febs-clothes-order-date-start',type: 'datetime' + }); + + laydate.render({ + elem: '#febs-clothes-order-date-end',type: 'datetime' + }); + + + form.render(); + + formSelects.render(); + + // 表格初始化 + initClothesOrderTable(); + + table.on('toolbar(orderClothesTable)', function(obj){ + var layEvent = obj.event; + var id = obj.config.id; + var checkStatus = table.checkStatus(id); + if(layEvent === 'printSelect'){ + let data = checkStatus.data; + if (data.length > 1) { + febs.alert.warn('每次只能操作一个订单'); + return; + } + let ids = ""; + for(let i = 0;i < data.length;i++){ + console.log(data[i].status); + if(data[i].status != 2){ + febs.alert.warn('请选择待发货的订单'); + return; + }else{ + ids = data[i].id; + } + } + if(ids == null || ids == ""){ + febs.alert.warn('请选择订单'); + return; + } + printSelectData(ids) + } + + if (layEvent === 'deliverGoods') { + let data = checkStatus.data; + if (data.length > 1) { + febs.alert.warn('每次只能操作一个订单'); + return; + } + let ids = ""; + for(let i = 0;i < data.length;i++){ + if(data[i].status != 2){ + febs.alert.warn('请选择待发货的订单'); + return; + }else{ + ids = data[i].id; + } + } + console.log(ids); + if(ids == null || ids == ""){ + febs.alert.warn('请选择订单'); + return; + } + febs.modal.open('发货', 'modules/clothesType/deliverGoods/' + ids, { + btn: ['确认','取消'], + yes: function (index, layero) { + $('#deliver-update-clothes').find('#submit').trigger('click'); + }, + btn2: function () { + layer.closeAll(); + } + }); + } + + if (layEvent === 'updateDeliver') { + let data = checkStatus.data; + if (data.length > 1) { + febs.alert.warn('每次只能操作一个订单'); + return; + } + let ids = ""; + for(let i = 0;i < data.length;i++){ + if(data[i].status != 2){ + febs.alert.warn('请选择待收货的订单'); + return; + }else{ + ids = data[i].id; + } + } + if(ids == null || ids == ""){ + febs.alert.warn('请选择订单'); + return; + } + febs.modal.open('修改物流信息', 'modules/clothesType/deliverGoods/' + ids, { + btn: ['确认','取消'], + yes: function (index, layero) { + $('#deliver-update-clothes').find('#deliverInfoSubmit').trigger('click'); + }, + btn2: function () { + layer.closeAll(); + } + }); + } + + if(layEvent === 'refundOrder'){ + let data = checkStatus.data; + if (data.length > 1) { + febs.alert.warn('每次只能操作一个订单'); + return; + } + let ids = ""; + for(let i = 0;i < data.length;i++){ + if(data[i].status != 2 ){ + febs.alert.warn('请选择待发货的订单'); + return; + }else{ + ids = data[i].id; + } + } + if(ids == null || ids == ""){ + febs.alert.warn('请选择订单'); + return; + } + febs.modal.confirm('仅退款', '确认退款订单?', function () { + refundOrder(ids); + }); + } + + if(layEvent === 'confirmOrder'){ + let data = checkStatus.data; + let ids = ""; + for(let i = 0;i < data.length;i++){ + if(data[i].status != 3){ + febs.alert.warn('请选择待收货的订单'); + return; + }else{ + ids = ids + data[i].id+","; + } + } + console.log(ids); + if(ids == null || ids == ""){ + febs.alert.warn('请选择订单'); + return; + } + febs.get(ctx + 'admin/clothesType/confirmOrder/'+ids, null, function () { + febs.alert.success('操作成功'); + $query.click(); + }); + } + + if (layEvent == 'exportDeliverTwo') { + let data = checkStatus.data; + let ids = ""; + for(let i = 0;i < data.length;i++){ + if(data[i].status != 2){ + febs.alert.warn('请选择待发货的订单'); + return; + }else if(data[i].deliveryState != 1){ + febs.alert.warn('请选择待配送的订单'); + return; + }else{ + ids = ids + data[i].id+","; + } + } + console.log(ids); + if(ids == null || ids == ""){ + febs.alert.warn('请选择待发货的订单'); + return; + } + window.location.href = ctx + "admin/clothesType/exportOrderList?ids="+ids; + } + + }); + + + /* + * [自定义打印选中行数据] + * @param {[type]} allData [传入选中行] + */ + function printSelectData(allData) { + let orderId = allData; + console.log(orderId); + $.ajax({ + url: '/admin/clothesType/printOrder/'+orderId, + type: "get", + contentType: 'application/json', + success(res) { + console.log(res); + printSelect(res.data); + }, + error(xhr, status, error) { + console.error("AJAX 请求失败:", error); + alert("请求失败,请重试"); + } + }); + } + + function printSelect(data) { + //用于包含内容 + var v = document.createElement("div"); + //页面头部,导入css ,media="print"表示打印时使用该样式 + var f = ["<head>", "<style>", "div{font-size:8px;}", ".main{width:100%;}", + ".main div{width:100%;display:inline-block;}", "</style>", "</head>" + ].join(""); + console.log(data); + var template = + "<div class='main'>" + + "<div style='text-align: center;font-size: 30px;font-weight: bold;margin-bottom: 10px'>订单编号:" + data.orderNo + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>类型:" + data.typeName + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>布料:" + data.clothName + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>编码:" + data.clothCode + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>尺码:" + data.sizeName + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>编码:" + data.sizeCode + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>工艺:" + data.artName + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>编码:" + data.artCode + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>正面图案:" + data.patternName + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>编码:" + data.patternCode + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>文案:" + data.patternText + "</div>" + + "<div class='print-images' style='font-size: 30px;font-weight: bold;'>图片:" + + "<img style='width: 200px; height: 200px; max-width: 80%; margin-top: 5px;' src="+ data.patternImage+">" + + "</div>" + + + "<div style='font-size: 30px;font-weight: bold;'>反面图案:" + data.locationName + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>编码:" + data.locationCode + "</div>" + + "<div style='font-size: 30px;font-weight: bold;'>文案:" + data.locationText + "</div>" + + "<div class='print-images' style='font-size: 30px;font-weight: bold;'>图片:" + + "<img style='width: 200px; height: 200px; max-width: 80%; margin-top: 5px;' src="+ data.locationImage+">" + + "</div>" + + "<div class='print-images' style='font-size: 30px;font-weight: bold;'>正面:" + + "<img style='width: 200px; height: 200px; max-width: 80%; margin-top: 5px;' src="+ data.typeFront+">" + + "</div>" + + "<div class='print-images' style='font-size: 30px;font-weight: bold;'>反面:" + + "<img style='width: 200px; height: 200px; max-width: 80%; margin-top: 5px;' src="+ data.typeBack+">" + + "</div>" + + "</div>" + + v.innerHTML = template; + //新建窗口 + var h = window.open("打印窗口", "_blank"); + //写入拼凑内容 + h.document.write(f + $(v).prop("outerHTML")); + h.document.close(); + //在新窗口的 document 中查找图片 + ensureImagesLoaded(h.document, '.print-images img') + .then(() => h.print()) + .catch(() => layer.msg('部分图片加载失败')); + //调用打印 + h.print(); + //关闭页面 + h.close(); + } + + function ensureImagesLoaded(doc, selector) { + var imgs = $(selector, doc); // 👈 在指定文档中查找 + var promises = []; + + imgs.each(function() { + var img = this; + var promise = new Promise(function(resolve, reject) { + if (img.complete && img.naturalWidth !== 0) { + resolve(); + } else { + $(img).on('load', resolve).on('error', reject); + } + }); + promises.push(promise); + }); + + return Promise.all(promises); + } + + + + function refundOrder(id) { + febs.get(ctx + 'admin/clothesType/refundOrder/' + id, null, function () { + febs.alert.success('操作成功'); + $query.click(); + }); + } + + upload.render({ + elem: '#importDeliver' + ,url: 'admin/clothesType/importDeliver' //此处配置你自己的上传接口即可 + ,accept: 'file' //普通文件 + ,done: function(res){ + console.log("123"); + febs.alert.success('操作成功'); + $query.click(); + } + }); + + + // 初始化表格操作栏各个按钮功能 + table.on('tool(orderClothesTable)', function (obj) { + var data = obj.data, + layEvent = obj.event; + if (layEvent === 'seeOrder') { + febs.modal.open( '订单详情', 'modules/order/orderDetail/' + data.id, { + maxmin: true, + }); + } + }); + + + + // 查询按钮 + $query.on('click', function () { + var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type}); + tableIns.reload({where: params, page: {curr: currPageOrder}}); + }); + + // 刷新按钮 + $reset.on('click', function () { + $searchForm[0].reset(); + sortObject.type = 'null'; + tableIns.reload({where: getQueryParams(), page: {curr: currPageOrder}, initSort: sortObject}); + }); + + function initClothesOrderTable() { + tableIns = febs.table.init({ + elem: $view.find('table'), + id: 'orderClothesTable', + url: ctx + 'admin/clothesType/orderList', + // defaultToolbar: [], + //系统自带打印导出 + totalRow : true, + toolbar: '#tableToolBarClothesOrder', + cols: [[ + {type: 'checkbox', fixed: 'left'}, + {type: 'numbers', title: '', width: 80}, + // {title: '操作', + // templet: function (d) { + // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder">详情</button>' + // },minWidth: 200,align:'center'}, + {field: 'orderNo', title: '订单编号', minWidth: 200,align:'left' ,totalRowText:"合计"}, + {field: 'memberName', title: '购买人', minWidth: 100,align:'left'}, + {field: 'typeName', title: '类型', minWidth: 100,align:'left'}, + // {field: 'goodsName', title: '商品', minWidth: 160,align:'left'}, + // {field: 'typeImage', title: '图片', minWidth: 100,align:'left'}, + {field: 'goodsCnt', title: '数量', minWidth: 120,align:'left'}, + {field: 'status', title: '状态', + templet: function (d) { + if (d.status === 1) { + return '<span style="color:red;">待支付</span>' + } else if (d.status === 2) { + return '<span style="color:green;">待发货</span>' + }else if (d.status === 3) { + return '<span style="color:green;">待收货</span>' + }else if (d.status === 4) { + return '<span style="color:green;">已完成</span>' + }else if (d.status === 5) { + return '<span style="color:green;">已取消</span>' + }else{ + return '' + } + }, minWidth: 80,align:'center'}, + {field: 'amount', title: '总价', minWidth: 80,align:'left', totalRow:true}, + {field: 'discountAmount', title: '优惠', minWidth: 80,align:'left', totalRow:true}, + {field: 'carriage', title: '邮费', minWidth: 80,align:'left', totalRow:true}, + {field: 'realAmount', title: '总金额', minWidth: 100,align:'left', totalRow:true}, + {field: 'orderTime', title: '下单时间', minWidth: 200,align:'left'}, + + {field: 'payMethod', title: '支付方式', minWidth: 100,align:'left'}, + {field: 'payTime', title: '支付时间', minWidth: 120,align:'left'}, + {field: 'remark', title: '备注', minWidth: 160,align:'left'}, + ]] + }); + } + + // 获取查询参数 + function getQueryParams() { + let startTimestr = $searchForm.find('input[name="startTime"]').val().trim(); + let endTimeStr = $searchForm.find('input[name="endTime"]').val().trim(); + if(startTimestr != '' && endTimeStr != '' && startTimestr >= endTimeStr){ + febs.alert.warn('开始时间需要小于结束时间'); + return{}; + } + return { + startTime: $searchForm.find('input[name="startTime"]').val().trim(), + endTime: $searchForm.find('input[name="endTime"]').val().trim(), + name: $searchForm.find('input[name="name"]').val().trim(), + orderNo: $searchForm.find('input[name="orderNo"]').val().trim(), + payResult: $searchForm.find("select[name='payResult']").val(), + status: $searchForm.find("select[name='status']").val(), + }; + } + + }) +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/clothesType/orderList.html b/src/main/resources/templates/febs/views/modules/clothesType/orderList.html index 9bbd856..7fcd9d5 100644 --- a/src/main/resources/templates/febs/views/modules/clothesType/orderList.html +++ b/src/main/resources/templates/febs/views/modules/clothesType/orderList.html @@ -100,7 +100,7 @@ </script> <script type="text/html" id="tableToolBarClothesOrder"> <div class="layui-btn-container"> - <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="printSelect">自定义打印</button> +<!-- <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="printSelect">打印预览</button>--> <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="deliverGoods">发货</button> <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="updateDeliver">修改物流信息</button> <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="refundOrder">仅退款</button> @@ -108,6 +108,10 @@ <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverTwo">导出待发货订单</button> <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" id="importDeliver" lay-event="importDeliver">导入发货</button> </div> +</script> + +<script type="text/html" id="clothesOrderOption"> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="orderPrint:view" lay-event="orderPrint">打印预览</button> </script> <!-- 表格操作栏 end --> <script data-th-inline="none" type="text/javascript"> @@ -427,11 +431,11 @@ table.on('tool(orderClothesTable)', function (obj) { var data = obj.data, layEvent = obj.event; - if (layEvent === 'seeOrder') { - febs.modal.open( '订单详情', 'modules/order/orderDetail/' + data.id, { - maxmin: true, + if (layEvent === 'orderPrint') { + febs.modal.open('订单编号:'+data.orderNo,'modules/clothesType/orderPrint/' + data.id, { + area: ['100%', '100%'], }); - } + }; }); @@ -461,6 +465,7 @@ cols: [[ {type: 'checkbox', fixed: 'left'}, {type: 'numbers', title: '', width: 80}, + {title: '操作', toolbar: '#clothesOrderOption', minWidth: 200, align: 'center'}, // {title: '操作', // templet: function (d) { // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder">详情</button>' diff --git a/src/main/resources/templates/febs/views/modules/clothesType/orderPrint.html b/src/main/resources/templates/febs/views/modules/clothesType/orderPrint.html new file mode 100644 index 0000000..b4796b3 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/clothesType/orderPrint.html @@ -0,0 +1,249 @@ +<style> + + .main{ + width: 750px; + margin: 0 auto; + padding: 0 20px 20px; + box-sizing: border-box; + } + .main .header{ + display: flex; + flex-wrap: wrap; + font-size: 14px; + } + .main .header .item{ + border: 1px solid #333; + border-radius: 2px; + margin: 0 2px; + padding: 0 8px; + } + .main .header .item .name{ + display: inline-block; + border-right: 1px solid #333; + margin-right: 8px; + padding: 3px 8px 3px 0; + } + .main .content{ + width: 100%; + } + .main .content .box{ + width: 100%; + position: relative; + text-align: center; + } + .main .front-box .print-images img, + .main .back-box .print-images img{ + width: 440px; + } + .main .front-box .logo, + .main .back-box .logo{ + width: 100px; + margin-top: 2px; + } + .main .front-box span, + .main .back-box span{ + margin: 0 5px; + font-size: 12px; + color: red; + } + .main .front-front-one{ + position: absolute; + left: 14%; + top: 30%; + text-align: right; + } + .main .front-front-two{ + position: absolute; + left: 9%; + top: 69%; + text-align: right; + } + .main .front-front-three{ + position: absolute; + left: 79%; + top: 65%; + text-align: left; + } + .main .back-front-one{ + position: absolute; + left: 67%; + top: 19%; + text-align: left; + } + .main .memberInfo-table { + border-collapse: collapse; + font-size: 14px; + margin: 10px auto 30px; + } + .main .memberInfo-table, .main .memberInfo-table th, .main .memberInfo-table td { + border: 1px solid #333; + } + .main .memberInfo-table th, .main .memberInfo-table td { + padding: 5px 15px; + text-align: center; + } + .footer{ + width: 100%; + font-size: 16px; + } + .footer>span{ + display: inline-block; + width: 25%; + } + @media print { + .no-print { + display: none !important; + } + } +</style> + +<div id="page"></div> +<div style="text-align: center;margin: 10px 0 20px;" class="no-print"> + <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" onclick="window.print()">打印</button> +</div> + +<script data-th-inline="javascript"> + layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree'], function () { + var $ = layui.$, + febs = layui.febs, + layer = layui.layer, + formSelects = layui.formSelects, + treeSelect = layui.treeSelect, + form = layui.form, + eleTree = layui.eleTree, + orderPrint = [[${orderPrint}]], + $view = $('#page'), + validate = layui.validate, + _deptTree; + + var data = orderPrint; + console.log(data); + + var patternHtml = ''; + if(data.patterns){ + for(var i = 0; i < data.patterns.length; i++) { + patternHtml += "<div class="+"front-"+data.patterns[i].patternCode+">"; + if(data.patterns[i].patternText){ + patternHtml += + "<div>" + + // "<span>" + data.patterns[i].patternName +"</span>" + + // "<span>" + data.patterns[i].patternCode +"</span>" + + "<span>文字:" + data.patterns[i].patternText +"</span>" + + "</div>" + } + if(data.patterns[i].patternImage){ + patternHtml += + "<div class='image-load'>" + + "<img src='"+ data.patterns[i].patternImage+"' class='logo' />" + + "</div>" + + "</div>" + } + } + } + var locationHtml = ''; + if (data.locations){ + for(var i = 0; i < data.locations.length; i++) { + locationHtml += "<div class="+"back-"+data.patterns[i].patternCode+">" + if (data.locations[i].locationText){ + locationHtml += + "<div>" + + // "<span>" + data.locations[i].locationName +"</span>" + + // "<span>" + data.locations[i].locationCode +"</span>" + + "<span>文字:" + data.locations[i].locationText +"</span>" + + "</div>" + } + if (data.locations[i].locationImage){ + locationHtml += + "<div class='image-load'>" + + "<img src='"+ data.locations[i].locationImage+"' class='logo' />" + + "</div>" + + "</div>" + } + } + } + + var memberStatureHtml = ''; + if (data.memberStature){ + memberStatureHtml += + "<table class='memberInfo-table'>" + + "<tr>" + + "<th colspan='9'>"+data.memberStature.name+"</th>" + + "</tr>" + + "<tr>" + + "<td>身高</td>" + + "<td>胸围</td>" + + "<td>腰围</td>" + + "<td>肩宽</td>" + + "<td>臀围</td>" + + "</tr>" + + "<tr>" + + "<td>"+data.memberStature.heightLine+"</td>" + + "<td>"+data.memberStature.bustLine+"</td>" + + "<td>"+data.memberStature.waistLine+"</td>" + + "<td>"+data.memberStature.wideLine+"</td>" + + "<td>"+data.memberStature.hipLine+"</td>" + + "</tr>" + + "</table>" + } + + var mainHtml = "<div class='main'>" + + "<div class='header'>" + + "<div class='item'><span class='name'>类型:</span>" + data.typeName + "</div>" + + "<div class='item'><span class='name'>布料:</span>" + data.clothName+ "("+data.clothCode+")"+ "</div><br>" + + "<div class='item'><span class='name'>尺码:</span>" + data.sizeName + "("+data.sizeCode+")"+ "</div>" + + "<div class='item'><span class='name'>工艺:</span>" + data.artName + "("+data.artCode+")"+ "</div>" + + "</div>" + + "<div class='content'>" + + "<div class='front-box box'>" + + "<div class='print-images'>" + + "<div class='image-load'>" + + "<img src="+ data.typeFront+">" + + "</div>" + + "</div>" + + patternHtml + + "</div>" + + "<div class='back-box box'>" + + "<div class='print-images'>" + + "<div class='image-load'>" + + "<img src="+ data.typeBack+">" + + "</div>" + + "</div>" + + locationHtml + + memberStatureHtml + + "</div>" + + "</div>" + + "<div class='footer'>" + + "<span>审核:</span>" + + "<span>审批:</span>" + + "<span>版师:</span>" + + "<span>工艺师:</span>" + + "</div>" + "</div>"; + + document.querySelector('#page').innerHTML = mainHtml; + + // //在新窗口的 document 中查找图片 + // ensureImagesLoaded(document, '.image-load img') + // .catch(() => layer.msg('图片加载中')); + // + // function ensureImagesLoaded(doc, selector) { + // var imgs = $(selector, doc); // 👈 在指定文档中查找 + // var promises = []; + // + // imgs.each(function() { + // var img = this; + // var promise = new Promise(function(resolve, reject) { + // if (img.complete && img.naturalWidth !== 0) { + // resolve(); + // } else { + // $(img).on('load', resolve).on('error', reject); + // } + // }); + // promises.push(promise); + // }); + // + // return Promise.all(promises); + // } + + }); +</script> \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 1b49752..cf7f0af 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -3,7 +3,7 @@ xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> <head> <meta charset="utf-8"> - <title>快乐社区 权限系统</title> + <title>设计 管理系统</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> -- Gitblit v1.9.1