From 6844012e52912b53d2739759d7b9f5591ac21f24 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 16 May 2022 19:29:55 +0800
Subject: [PATCH] fix goods edit
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 50 +
src/main/resources/mapper/modules/MallGoodsStyleMapper.xml | 15
src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java | 4
src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsSkuMapper.java | 4
src/main/java/cc/mrbird/febs/mall/dto/MailGoodsSkuDto.java | 2
src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsStyleMapper.java | 4
src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html | 1
src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java | 2
src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java | 5
src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html | 938 ++++++++++++++++++---------------
src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java | 43 +
src/main/resources/templates/febs/views/modules/goods/goodsList.html | 3
src/main/resources/mapper/modules/MallGoodsSkuMapper.xml | 12
src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew-bak.html | 521 +++++++++++++++++++
14 files changed, 1,156 insertions(+), 448 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java
index 028efda..3119c67 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java
@@ -3,6 +3,7 @@
import cc.mrbird.febs.common.controller.BaseController;
import cc.mrbird.febs.common.entity.FebsConstant;
import cc.mrbird.febs.common.utils.FebsUtil;
+import cc.mrbird.febs.mall.entity.MallGoods;
import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
import cc.mrbird.febs.mall.service.IAdminMallMemberService;
import cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo;
@@ -76,8 +77,8 @@
@GetMapping("goodsUpdateNew/{id}")
@RequiresPermissions("goodsUpdateNew:update")
public String goodsUpdate(@PathVariable long id, Model model) {
- AdminMailGoodsUpdateVo data = mallGoodsService.getMallGoodsUpdateInfoById(id);
- model.addAttribute("mailGoodsUpdate", data);
+ MallGoods data = mallGoodsService.selectGoodsById(id);
+ model.addAttribute("goodsInfo", data);
return FebsUtil.view("modules/goods/goodsUpdateNew");
}
}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MailGoodsSkuDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MailGoodsSkuDto.java
index 2120122..341079a 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/MailGoodsSkuDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MailGoodsSkuDto.java
@@ -25,6 +25,8 @@
private BigDecimal presentPrice;
+ private BigDecimal costPrice;
+
private Long styleId;
private Long goodsId;
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
index 3917bc0..4967861 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
@@ -4,6 +4,7 @@
import io.swagger.annotations.ApiModel;
import lombok.Data;
+import java.math.BigDecimal;
import java.util.List;
@Data
@@ -37,4 +38,46 @@
private Long categoryId;
private Integer isHot;
+
+ /**
+ * 库存
+ */
+ private Integer stock;
+
+ /**
+ * 销量
+ */
+ private Integer volume;
+
+ /**
+ * 成本价
+ */
+ private BigDecimal costPrice;
+
+
+ /**
+ * 静态倍数
+ */
+ private BigDecimal staticMulti;
+
+ /**
+ * 静态占比
+ */
+ private BigDecimal staticProp;
+
+ /**
+ * 是否多规则 1-是 2-否
+ */
+ private Integer isSku;
+
+ /**
+ * 是否普通商品 1-普通商品 2-套餐
+ */
+ private Integer isNormal;
+
+ private BigDecimal score;
+
+ private Integer goodsType;
+
+ private List<Long> delSkuId;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
index 2427361..b4da1ea 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
@@ -96,8 +96,12 @@
private List<MallGoodsStyle> styles;
@TableField(exist = false)
+ private List<MallGoodsSku> skus;
+
+ @TableField(exist = false)
private List<String> images;
@TableField(exist = false)
private String orderNo;
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsSkuMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsSkuMapper.java
index 65b693f..d4d5900 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsSkuMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsSkuMapper.java
@@ -14,5 +14,9 @@
List<AdminMailGoodsSkuDetailVo> selectByGoodId(@Param("id")Long id);
+ List<MallGoodsSku> selectSkuByGoodsId(@Param("id") Long id);
+
MallGoodsSku selectSkuInfoById(@Param("id") Long id);
+
+ int delSkuByIds(@Param("list") List<Long> ids);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsStyleMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsStyleMapper.java
index c8dd84b..87628e5 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsStyleMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsStyleMapper.java
@@ -4,9 +4,13 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
public interface MallGoodsStyleMapper extends BaseMapper<MallGoodsStyle> {
void deleteByGoodsId(@Param("id")Long id);
MallGoodsStyle selectByStyleName(@Param("name")String styleName, @Param("goodsId")Long id);
+
+ List<MallGoodsStyle> selectByGoodsId(@Param("goodsId") Long goodsId);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java
index b4cc549..c02433a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java
@@ -32,6 +32,8 @@
AdminMailGoodsUpdateVo getMallGoodsUpdateInfoById(long id);
+ MallGoods selectGoodsById(long id);
+
FebsResponse updateMallGoods(MallGoodsUpdateDto mallGoodsUpdateDto);
List<AdminMallGoodsTreeVo> getAllGoodsTree();
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
index d742db5..0ebb028 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -8,6 +8,7 @@
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
import cc.mrbird.febs.mall.vo.*;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -146,7 +147,6 @@
}
}
-
if (CollUtil.isNotEmpty(addMallGoodsSkuDtos)) {
for (AddMallGoodsSkuDto addMallGoodsSkuDto : addMallGoodsSkuDtos) {
MallGoodsStyle mallGoodsStyleSku = mallGoodsStyleMapper.selectByStyleName(addMallGoodsSkuDto.getStyleName(), mallGoods.getId());
@@ -233,6 +233,17 @@
}
@Override
+ public MallGoods selectGoodsById(long id) {
+ MallGoods mallGoods = mallGoodsMapper.selectById(id);
+
+ List<MallGoodsSku> skus = mallGoodsSkuMapper.selectSkuByGoodsId(mallGoods.getId());
+ List<String> thumbs = mallGoodsImagesMapper.selectByGoodId(mallGoods.getId());
+ mallGoods.setImages(thumbs);
+ mallGoods.setSkus(skus);
+ return mallGoods;
+ }
+
+ @Override
@Transactional
public FebsResponse updateMallGoods(MallGoodsUpdateDto mallGoodsUpdateDto) {
String goodsName = mallGoodsUpdateDto.getGoodsName();
@@ -288,21 +299,10 @@
}
//新增商品
MallGoods mallGoods = mallGoodsMapper.selectById(mallGoodsUpdateDto.getId());
- mallGoods.setGoodsNo(mallGoodsUpdateDto.getGoodsNo());
- mallGoods.setGoodsName(mallGoodsUpdateDto.getGoodsName());
- mallGoods.setGoodsIntrodution(mallGoodsUpdateDto.getGoodsIntrodution());
- mallGoods.setUnit(mallGoodsUpdateDto.getUnit());
- mallGoods.setThumb(mallGoodsUpdateDto.getThumb());
- mallGoods.setGoodsDetails(mallGoodsUpdateDto.getGoodsDetails());
- mallGoods.setOriginalPrice(mallGoodsUpdateDto.getOriginalPrice());
- mallGoods.setCategoryId(mallGoodsUpdateDto.getCategoryId());
- mallGoods.setPresentPrice(mallGoodsUpdateDto.getPresentPrice());
- mallGoods.setIsHot(mallGoodsUpdateDto.getIsHot());
-// mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
+ BeanUtil.copyProperties(mallGoodsUpdateDto, mallGoods);
mallGoodsMapper.updateById(mallGoods);
mallGoodsImagesMapper.deleteByGoodsId(mallGoodsUpdateDto.getId());
-
String thumbs = mallGoodsUpdateDto.getThumbs();
if (StrUtil.isNotEmpty(thumbs)) {
List<String> imgs = StrUtil.splitTrim(thumbs, ",");
@@ -319,15 +319,29 @@
}
}
+ // 删除已存在sku
+ List<Long> delSkuIds = mallGoodsUpdateDto.getDelSkuId();
+ if (CollUtil.isNotEmpty(delSkuIds)) {
+ mallGoodsSkuMapper.delSkuByIds(delSkuIds);
+
+ // 如果该样式下sku全删除,则删除该样式
+ List<MallGoodsStyle> styles = mallGoodsStyleMapper.selectByGoodsId(mallGoods.getId());
+ for (MallGoodsStyle style : styles) {
+ if (CollUtil.isEmpty(style.getSkus())) {
+ mallGoodsStyleMapper.deleteById(style.getId());
+ }
+ }
+ }
+
List<MailGoodsSkuDto> mailGoodsSkuDto = mallGoodsUpdateDto.getMailGoodsSkuDto();
Set<String> styles = new HashSet<>();
if (CollUtil.isNotEmpty(mailGoodsSkuDto)) {
for (MailGoodsSkuDto addStyleDto : mailGoodsSkuDto) {
- if (ObjectUtil.isNotEmpty(addStyleDto.getDelLog())) {
- mallGoodsSkuMapper.deleteById(addStyleDto.getId());
+// if (ObjectUtil.isNotEmpty(addStyleDto.getDelLog())) {
+// mallGoodsSkuMapper.deleteById(addStyleDto.getId());
+// mallShoppingCartMapper.deleteByGoodsIdAndSkuId(addStyleDto.getId(), addStyleDto.getGoodsId());
+// }
- mallShoppingCartMapper.deleteByGoodsIdAndSkuId(addStyleDto.getId(), addStyleDto.getGoodsId());
- }
if (ObjectUtil.isEmpty(addStyleDto.getStyleId())) {
MallGoodsStyle mallGoodsStyleSku = mallGoodsStyleMapper.selectByStyleName(addStyleDto.getStyleName(), mallGoods.getId());
if (ObjectUtil.isEmpty(mallGoodsStyleSku)) {
@@ -359,6 +373,7 @@
mallGoodsSku.setPresentPrice(addMallGoodsSkuDto.getPresentPrice());
mallGoodsSku.setStyleId(addMallGoodsSkuDto.getStyleId());
mallGoodsSku.setGoodsId(mallGoods.getId());
+ mallGoodsSku.setCostPrice(addMallGoodsSkuDto.getCostPrice());
mallGoodsSkuMapper.updateById(mallGoodsSku);
} else {
//新增商品规格
@@ -371,6 +386,7 @@
mallGoodsSku.setOriginalPrice(addMallGoodsSkuDto.getOriginalPrice());
mallGoodsSku.setPresentPrice(addMallGoodsSkuDto.getPresentPrice());
mallGoodsSku.setStyleId(mallGoodsStyleSku.getId());
+ mallGoodsSku.setCostPrice(addMallGoodsSkuDto.getCostPrice());
mallGoodsSku.setGoodsId(mallGoods.getId());
mallGoodsSkuMapper.insert(mallGoodsSku);
}
diff --git a/src/main/resources/mapper/modules/MallGoodsSkuMapper.xml b/src/main/resources/mapper/modules/MallGoodsSkuMapper.xml
index 88d4fd9..99771dc 100644
--- a/src/main/resources/mapper/modules/MallGoodsSkuMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsSkuMapper.xml
@@ -25,5 +25,17 @@
where a.goods_id = #{id}
</select>
+ <select id="selectSkuByGoodsId" resultType="cc.mrbird.febs.mall.entity.MallGoodsSku">
+ select a.*, b.name styleName from mall_goods_sku a
+ inner join mall_goods_style b on a.style_id=b.id
+ where a.goods_id=#{id}
+ </select>
+ <delete id="delSkuByIds">
+ delete from mall_goods_sku
+ where id in
+ <foreach collection="list" separator="," close=")" open="(" item="item">
+ #{item}
+ </foreach>
+ </delete>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallGoodsStyleMapper.xml b/src/main/resources/mapper/modules/MallGoodsStyleMapper.xml
index 24119ab..d1bc8de 100644
--- a/src/main/resources/mapper/modules/MallGoodsStyleMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsStyleMapper.xml
@@ -2,6 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cc.mrbird.febs.mall.mapper.MallGoodsStyleMapper">
+ <resultMap id="styleMap" type="cc.mrbird.febs.mall.entity.MallGoodsStyle">
+ <id column="id" property="id" />
+ <result column="goods_id" property="goodsId" />
+ <result property="name" column="name" />
+ <collection property="skus" ofType="cc.mrbird.febs.mall.entity.MallGoodsSku">
+ <id property="id" column="sku_id" />
+ <result property="styleId" column="style_id" />
+ </collection>
+ </resultMap>
+
<delete id="deleteByGoodsId">
delete from mall_goods_style where goods_id = #{id}
</delete>
@@ -12,4 +22,9 @@
select * from mall_goods_style where goods_id = #{goodsId} and name = #{name}
</select>
+ <select id="selectByGoodsId" resultType="cc.mrbird.febs.mall.entity.MallGoodsStyle">
+ select a.*, b.id skuId, b.style_id from mall_goods_style a
+ left join mall_goods_sku b on a.id=b.style_id
+ where a.goods_id=#{goodsId}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
index ab1e3a2..e957b9a 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
@@ -246,7 +246,6 @@
form = layui.form,
laydate = layui.laydate,
eleTree = layui.eleTree,
- member = [[${member}]],
$view = $('#goods-add'),
layedit = layui.layedit,
upload = layui.upload,
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsList.html b/src/main/resources/templates/febs/views/modules/goods/goodsList.html
index 2724666..ce655a6 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsList.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsList.html
@@ -101,8 +101,9 @@
if (layEvent === 'goodsUpdate') {
febs.modal.open('编辑', 'modules/goods/goodsUpdateNew/' + data.id, {
btn: ['提交', '取消'],
+ area:['100%','100%'],
yes: function (index, layero) {
- $('#goods-updatenew').find('#submit').trigger('click');
+ $('#febs-update').find('#submit').trigger('click');
},
btn2: function () {
layer.closeAll();
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew-bak.html b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew-bak.html
new file mode 100644
index 0000000..0a8ff59
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew-bak.html
@@ -0,0 +1,521 @@
+<style>
+ #goods-updatenew {
+ padding: 20px 25px 25px 0;
+ }
+
+ #goods-updatenew .layui-treeSelect .ztree li a, .ztree li span {
+ margin: 0 0 2px 3px !important;
+ }
+ #goods-updatenew #data-permission-tree-block {
+ border: 1px solid #eee;
+ border-radius: 2px;
+ padding: 3px 0;
+ }
+ #user-add .layui-treeSelect .ztree li span.button.switch {
+ top: 1px;
+ left: 3px;
+ }
+
+</style>
+<div class="layui-fluid" id="goods-updatenew">
+ <form class="layui-form" action="" lay-filter="goods-updatenew-form">
+ <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="text" name="goodsName" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+ </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="goodsNo" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+ </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">
+ <select name="categoryId" class="categary-goods-updatenew-category" id="goodsUpdateSelect" >
+ <option value="">请选择</option>
+ </select>
+ </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="unit" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+ </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="originalPrice" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+ </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="presentPrice" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">商品介绍:</label>
+ <div class="layui-input-block">
+ <input type="text" name="goodsIntrodution" autocomplete="off" class="layui-input" >
+ </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="addMallGoodsSkuDtos" autocomplete="off" class="layui-input" id="attrName">
+ </div>
+ </div>
+ <div class="layui-col-lg6">
+ <button type="button" class="layui-btn layui-btn-normal layui-btn-xs" id="test3" >添加</button>
+ </div>
+ </div>
+ <div id="attrWrap"></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-xs" 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>
+ </div>
+ </div>
+ <div class="layui-form-item febs-hide">
+ <label class="layui-form-label">缩略图链接:</label>
+ <div class="layui-input-block">
+ <input type="text" id="thumb" lay-verify="required" name="thumb" autocomplete="off" class="layui-input" readonly>
+ </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-xs" id="thumbsBanner">上传</button>
+ <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
+ <div class="layui-upload-list" id="thumbsBanners"></div>
+ </blockquote>
+ </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="thumbs" lay-verify="required" name="thumbs" autocomplete="off" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">商品详情:</label>
+ <div class="layui-input-block">
+ <textarea id="lay_edit" lay-verify="goodsDetails" name = "goodsDetails" class="layui-textarea">[[${mailGoodsUpdate.goodsDetails}]]</textarea>
+ </div>
+ </div>
+ <div class="layui-row layui-col-space10 layui-form-item">
+ <div class="layui-col-lg6">
+ <label class="layui-form-label">是否热卖:</label>
+ <div class="layui-input-block">
+ <input type="radio" name="isHot" value="1" title="是" >
+ <input type="radio" name="isHot" value="2" title="否" checked="">
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item febs-hide">
+ <button class="layui-btn" lay-submit="" lay-filter="goods-update-form-submit" id="submit"></button>
+ </div>
+<!-- <div class="layui-form-item">-->
+<!-- <div class="layui-form-item" style="text-align:center">-->
+<!-- <button class="layui-btn" lay-submit="" lay-filter="goods-update-form-submit" id="submit">保存</button>-->
+<!-- </div>-->
+<!-- </div>-->
+ </form>
+</div>
+
+<script data-th-inline="javascript">
+ layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','dropdown', 'laydate','layedit','upload'], function () {
+ var $ = layui.jquery,
+ febs = layui.febs,
+ layer = layui.layer,
+ formSelects = layui.formSelects,
+ treeSelect = layui.treeSelect,
+ form = layui.form,
+ laydate = layui.laydate,
+ eleTree = layui.eleTree,
+ mailGoodsUpdate = [[${mailGoodsUpdate}]],
+ $view = $('#goods-add'),
+ layedit = layui.layedit,
+ upload = layui.upload,
+ validate = layui.validate;
+
+ form.render();
+
+ //(下拉框)
+ $.get(ctx + 'admin/goodsCategory/categorys/allTree', function (data) {
+ for (var k in data)
+ {
+ $(".categary-goods-updatenew-category").append("<option value='" + data[k].parentId + "'>" + data[k].name + "</option>");
+ }
+ layui.use('form', function () {
+ var form = layui.form;
+ $("#goodsUpdateSelect").val(mailGoodsUpdate.categoryId)
+ form.render();
+ });
+ });
+
+ //多图片上传
+ upload.render({
+ elem: '#thumbsBanner'
+ ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+ ,multiple: true
+ ,before: function(obj){
+ //预读本地文件示例,不支持ie8
+ obj.preview(function(index, file, result){
+ $('#thumbsBanners').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img" style="width: 100px">')
+ });
+ }
+ ,done: function(res){
+ var thumbs = $("#thumbs").val();
+ if(thumbs == ''){
+ $("#thumbs").val(res.data.src);
+ }else{
+ $("#thumbs").val(thumbs + ',' + res.data.src);
+ }
+ // alert($("#thumb").val());
+ }
+ });
+
+ //图片上传
+ upload.render({
+ elem: '#test2'
+ ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+ ,multiple: true
+ ,before: function(obj){
+ //预读本地文件示例,不支持ie8
+ obj.preview(function(index, file, result){
+ $('#demo2').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img" style="width: 100px">')
+ });
+ }
+ ,done: function(res){
+ // var thumbs = $("#thumb").val();
+ // if(thumbs == ''){
+ $("#thumb").val(res.data.src);
+ // }else{
+ // $("#thumb").val(thumbs + ',' + res.data.src);
+ // }
+ // alert($("#thumb").val());
+ }
+ });
+
+ layedit.set({ //设置图片接口
+ uploadImage: {
+ url: 'admin/goods/uploadFileBase64', //接口url
+ type: 'post',
+ }
+ });
+ //创建一个编辑器
+ var index = layedit.build('lay_edit',{
+ height: 300
+ });
+ //提交时把值同步到文本域中
+ form.verify({
+ //content富文本域中的lay-verify值
+ goodsDetails: function(value) {
+ return layedit.sync(index);
+ }
+ });
+
+ initUserValue();
+
+ function appendSku(sku,skuIndex){
+ var index = skuIndex;
+ let attrNameVal = sku.skuName;
+ let styleName = sku.styleName;
+ let styleId = sku.styleId;
+ let skuId = sku.id;
+ let stockVal = sku.stock;
+ let skuVolume = sku.skuVolume;
+ let originalPrice = sku.originalPrice;
+ let presentPrice = sku.presentPrice;
+ let skuImage = sku.skuImage;
+ $('#attrWrap').append(`
+ <div class="layui-form-item item">
+ <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` + index + `" value="` + skuId + `">
+ </div>
+ </div>
+ <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="delLog` + index + `">
+ </div>
+ </div>
+ <div class="layui-form-item febs-hide">
+ <label class="layui-form-label febs-form-item-require">styleId:</label>
+ <div class="layui-input-block">
+ <input type="text" id="styleId` + index +`" name="styleId` + index + `" value="` + styleId + `">
+ </div>
+ </div>
+ <div style="float:left" >
+ <input type="text" name="styleName` + index + `" value="` + styleName + `" autocomplete="off" class="layui-input" readonly >
+ </div>
+ <div style="float:left" >
+ <div>
+ <input type="text" name="skuName` + index +`" value="` + attrNameVal + `" placeholder="规格名称" autocomplete="off" class="layui-input" >
+ </div>
+ </div>
+ <div style="float:left" >
+ <label class="layui-form-label">图片:</label>
+ <div class="layui-input-block">
+ <div class="layui-upload">
+ <button type="button" class="layui-btn layui-btn-normal layui-btn-xs sku-img" id="skuImg` + index + `">上传</button>
+ <img class="layui-upload-img" src="` + skuImage + `" id="imageUrls` + index + `" style="width: 100px" >
+ </div>
+ </div>
+ </div>
+ <div style="float:left" class="febs-hide">
+ <div>
+ <input type="text" id="skuImage` + index +`" value="` + skuImage + `" name="skuImage` + index + `" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <div style="float:left" >
+ <div>
+ <input type="number" name="stock` + index +`" value="` + stockVal + `" placeholder="库存" autocomplete="off" class="layui-input" >
+ </div>
+ </div>
+ <div style="float:left" >
+ <div>
+ <input type="number" name="skuVolume` + index +`" value="` + skuVolume + `" placeholder="销售数量" autocomplete="off" class="layui-input" >
+ </div>
+ </div>
+ <div style="float:left" >
+ <div>
+ <input type="number" name="originalPrice` + index +`" value="` + originalPrice + `" placeholder="原价" autocomplete="off" class="layui-input" >
+ </div>
+ </div>
+ <div style="float:left" >
+ <div>
+ <input type="number" name="presentPrice` + index + `" value="` + presentPrice + `" placeholder="现价" autocomplete="off" class="layui-input" >
+ </div>
+ </div>
+ <div style="float:left" >
+ <button type="button" class="layui-btn del-attr-btn" data-index="` + index +`">删除</button>
+ </div>
+ </div>
+ `)
+ //普通图片上传
+ upload.render({
+ elem: '#skuImg' + index
+ ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+ ,done: function(res){
+ febs.alert.success(res.data.src);
+ $('#imageUrls' + index).attr('src', res.data.src);
+ $('#skuImage'+ index).val(res.data.src);
+ }
+ });
+ }
+
+ function initUserValue() {
+ var skuIndex = 0;
+ let skuLength = mailGoodsUpdate.mailGoodsSkuDetailVo.length;
+ for(var skuIndex = 0; skuIndex < skuLength; skuIndex++){
+ appendSku(mailGoodsUpdate.mailGoodsSkuDetailVo[skuIndex],skuIndex);
+ }
+ //缩略图图片回显
+ if(mailGoodsUpdate.thumb != null || mailGoodsUpdate.thumb != ''){
+ $('#demo2').append('<img src="'+ mailGoodsUpdate.thumb +'" class="layui-upload-img" style="width: 100px">')
+ $("#thumb").val(mailGoodsUpdate.thumb);
+ }
+ var imagesInitIndex = 0;
+ let imagesInitIndexlength = mailGoodsUpdate.mailGoodsImagesVo.length;
+ for(var imagesInitIndex = 0; imagesInitIndex < imagesInitIndexlength; imagesInitIndex++){
+ console.log(mailGoodsUpdate.mailGoodsImagesVo);
+ $('#thumbsBanners').append('<img src="'+ mailGoodsUpdate.mailGoodsImagesVo[imagesInitIndex] +'" class="layui-upload-img" style="width: 100px">')
+ $("#thumbs").val(mailGoodsUpdate.mailGoodsImagesVo[imagesInitIndex] + ',');
+ }
+
+ form.val("goods-updatenew-form", {
+ "id": mailGoodsUpdate.id,
+ "goodsNo": mailGoodsUpdate.goodsNo,
+ "categoryId": mailGoodsUpdate.categoryId,
+ "mailGoodsSkuDetailVo": mailGoodsUpdate.mailGoodsSkuDetailVo,
+ "mailGoodsImagesVo": mailGoodsUpdate.mailGoodsImagesVo,
+ "unit": mailGoodsUpdate.unit,
+ "originalPrice": mailGoodsUpdate.originalPrice,
+ "presentPrice": mailGoodsUpdate.presentPrice,
+ "goodsIntrodution": mailGoodsUpdate.goodsIntrodution,
+ "thumb": mailGoodsUpdate.thumb,
+ "goodsDetails": mailGoodsUpdate.goodsDetails,
+ "isHot": mailGoodsUpdate.isHot,
+ "isHot": mailGoodsUpdate.isHot,
+ "goodsName": mailGoodsUpdate.goodsName
+ });
+ }
+
+ $('#test3').on('click', function (){
+ var index = $("#attrWrap").children().length;
+ let attrNameVal = $('#attrName').val();
+ if(attrNameVal==null || attrNameVal==""){
+ febs.alert.warn('样式名称不能为空');
+ return false;
+ }
+ $('#attrWrap').append(`
+ <div class="layui-form-item item">
+ <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` + index + `">
+ </div>
+ </div>
+ <div class="layui-form-item febs-hide">
+ <label class="layui-form-label febs-form-item-require">styleId:</label>
+ <div class="layui-input-block">
+ <input type="text" id="styleId` + index +`" name="styleId` + index + `">
+ </div>
+ </div>
+ <div style="float:left" >
+ <input type="text" name="styleName` + index + `" value="` + $('#attrName').val() + `" autocomplete="off" class="layui-input" readonly >
+ </div>
+ <div style="float:left" >
+ <div>
+ <input type="text" name="skuName` + index +`" placeholder="规格名称" autocomplete="off" class="layui-input" >
+ </div>
+ </div>
+ <div style="float:left" >
+ <label class="layui-form-label">图片:</label>
+ <div class="layui-input-block">
+ <div class="layui-upload">
+ <button type="button" class="layui-btn layui-btn-normal layui-btn-xs sku-img" id="skuImg` + index + `">上传</button>
+ <img class="layui-upload-img" id="imageUrls` + index + `" style="width: 100px" >
+ </div>
+ </div>
+ </div>
+ <div style="float:left" class="febs-hide">
+ <div>
+ <input type="text" id="skuImage` + index +`" name="skuImage` + index + `" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <div style="float:left" >
+ <div>
+ <input type="number" name="stock` + index +`" placeholder="库存" autocomplete="off" class="layui-input" >
+ </div>
+ </div>
+ <div style="float:left" >
+ <div>
+ <input type="number" name="skuVolume` + index +`" placeholder="销售数量" autocomplete="off" class="layui-input" >
+ </div>
+ </div>
+ <div style="float:left" >
+ <div>
+ <input type="number" name="originalPrice` + index +`" placeholder="原价" autocomplete="off" class="layui-input" >
+ </div>
+ </div>
+ <div style="float:left" >
+ <div>
+ <input type="number" name="presentPrice` + index + `" placeholder="现价" autocomplete="off" class="layui-input" >
+ </div>
+ </div>
+ <div style="float:left" >
+ <button type="button" class="layui-btn del-attr-btn" data-index="` + index +`">删除</button>
+ </div>
+ </div>
+ `)
+ //普通图片上传
+ upload.render({
+ elem: '#skuImg' + index
+ ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+ ,done: function(res){
+ febs.alert.success(res.data.src);
+ $('#imageUrls' + index).attr('src', res.data.src);
+ $('#skuImage'+ index).val(res.data.src);
+ }
+ });
+ });
+ upload.render({
+ elem: '#skuImg'+index
+ ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+ ,done: function(res){
+ febs.alert.success(res.data.src);
+ $('#imageUrls' + index).attr('src', res.data.src);
+ $('#skuImage'+ index).val(res.data.src);
+ }
+ });
+ $("#attrWrap").on("click",".del-attr-btn",function(){
+ var index = $(this).attr('data-index')
+ if($("input[name='styleId" + index + "']").val() ==null || $("input[name='styleId" + index + "']").val() ==''){
+ $($("#attrWrap").find(".item")[index].remove());
+ }else{
+ $("input[name='delLog" + index + "']").val("delLog");
+ $($("#attrWrap").find(".item")[index].style.display = "none");
+ }
+ });
+ form.on('submit(goods-update-form-submit)', function (data) {
+ let skuArrs = [];
+ var skuArr = $("#attrWrap").find(".item");
+ for(var i = 0;i < skuArr.length;i++){
+ skuArrs.push({
+ id: $("input[name='id" + i + "']").val(),
+ styleName: $("input[name='styleName" + i + "']").val(),
+ styleId: $("input[name='styleId" + i + "']").val(),
+ delLog: $("input[name='delLog" + i + "']").val(),
+ skuName: $("input[name='skuName" + i + "']").val(),
+ skuImage: $("input[name='skuImage" + i + "']").val(),
+ stock: $("input[name='stock" + i + "']").val(),
+ skuVolume: $("input[name='skuVolume" + i + "']").val(),
+ originalPrice:$("input[name='originalPrice" + i + "']").val(),
+ presentPrice: $("input[name='presentPrice" + i + "']").val()
+ })
+ }
+ // if(skuArr.length < 0){
+ // febs.alert.warn("请填写商品规格");
+ // return false;
+ // }
+ // console.log(skuArrs)
+ data.field.mailGoodsSkuDto = skuArrs;
+ console.log(data.field)
+ $.ajax({
+ 'url':ctx + 'admin/goods/updateMallGoods',
+ 'type':'post',
+ 'dataType':'json',
+ 'headers' : {'Content-Type' : 'application/json;charset=utf-8'}, //接口json格式
+ 'traditional': true,//ajax传递数组必须添加属性
+ 'data':JSON.stringify(data.field),
+ 'success':function (data) {
+ if(data.code==0){
+ layer.closeAll();
+ febs.alert.success('操作成功');
+ // var index = parent.layer.getFrameIndex(window.name);
+ // parent.layer.close(index);
+ // febs.alert.success('操作成功');
+ $('#febs-goods').find('#reset').click();
+ }else{
+ febs.alert.warn(data.message);
+ }
+ },
+ 'error':function () {
+ febs.alert.warn('服务器繁忙');
+ }
+ })
+ return false;
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
index 0a8ff59..66094a8 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
@@ -1,181 +1,454 @@
-<style>
- #goods-updatenew {
- padding: 20px 25px 25px 0;
- }
+<div class="layui-fluid layui-anim febs-anim" id="febs-update" 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">
+ <div class="layui-fluid" id="goods-update">
+ <form class="layui-form" action="" lay-filter="goods-update-form">
+ <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
+ <ul class="layui-tab-title">
+ <li class="layui-this">基础信息</li>
+ <li>详情设置</li>
+ <li>价格设置</li>
+ </ul>
+ <input type="text" name="id"
+ placeholder="" autoComplete="off" class="layui-input febs-hide">
+ <div class="layui-tab-content">
+ <div class="layui-tab-item layui-show">
+ <blockquote class="layui-elem-quote blue-border">基本信息设置</blockquote>
+ <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="goodsName" lay-verify="required"
+ placeholder="" autoComplete="off" class="layui-input">
+ </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="goodsNo" lay-verify="required"
+ placeholder="" autoComplete="off" class="layui-input">
+ </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">
+ <select name="categoryId" class="categary-addPeoduct">
+ <option value="">请选择</option>
+ </select>
+ </div>
+ </div>
+ </div>
- #goods-updatenew .layui-treeSelect .ztree li a, .ztree li span {
- margin: 0 0 2px 3px !important;
- }
- #goods-updatenew #data-permission-tree-block {
- border: 1px solid #eee;
- border-radius: 2px;
- padding: 3px 0;
- }
- #user-add .layui-treeSelect .ztree li span.button.switch {
- top: 1px;
- left: 3px;
- }
+ <div class="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="unit" lay-verify="required" placeholder=""
+ autoComplete="off" class="layui-input">
+ </div>
+ </div>
+ </div>
+ <div class="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="stock" lay-verify="required" placeholder=""
+ autoComplete="off" class="layui-input">
+ </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="volume" lay-verify="required"
+ placeholder="" autoComplete="off" class="layui-input">
+ </div>
+ </div>
+ </div>
-</style>
-<div class="layui-fluid" id="goods-updatenew">
- <form class="layui-form" action="" lay-filter="goods-updatenew-form">
- <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="text" name="goodsName" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
- </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="goodsNo" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
- </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">
- <select name="categoryId" class="categary-goods-updatenew-category" id="goodsUpdateSelect" >
- <option value="">请选择</option>
- </select>
- </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="unit" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
- </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="originalPrice" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
- </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="presentPrice" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
- </div>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">商品介绍:</label>
- <div class="layui-input-block">
- <input type="text" name="goodsIntrodution" autocomplete="off" class="layui-input" >
- </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="addMallGoodsSkuDtos" autocomplete="off" class="layui-input" id="attrName">
- </div>
- </div>
- <div class="layui-col-lg6">
- <button type="button" class="layui-btn layui-btn-normal layui-btn-xs" id="test3" >添加</button>
- </div>
- </div>
- <div id="attrWrap"></div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">商品介绍:</label>
+ <div class="layui-input-block">
+ <label>
+ <textarea name="goodsIntrodution" rows="5" autoComplete="off"
+ class="layui-textarea"></textarea>
+ </label>
+ </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-xs" 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>
- </div>
- </div>
- <div class="layui-form-item febs-hide">
- <label class="layui-form-label">缩略图链接:</label>
- <div class="layui-input-block">
- <input type="text" id="thumb" lay-verify="required" name="thumb" autocomplete="off" class="layui-input" readonly>
- </div>
- </div>
+ <blockquote class="layui-elem-quote blue-border">商品类型</blockquote>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">商品类型</label>
+ <div class="layui-input-block">
+ <select name="isNormal" class="goods-type"
+ lay-filter="goods-type-select">
+ <option value="1">普通商品区</option>
+ <option value="2">套餐区</option>
+ </select>
+ </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-xs" id="thumbsBanner">上传</button>
- <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
- <div class="layui-upload-list" id="thumbsBanners"></div>
- </blockquote>
+ <div class="layui-form-item febs-hide tc-set">
+ <label class="layui-form-label">静态倍数</label>
+ <div class="layui-input-block">
+ <input type="text" name="staticMulti" placeholder="请输入静态倍数"
+ autoComplete="off" class="layui-input">
+ <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-form-item febs-hide tc-set">
+ <label class="layui-form-label">静态占比(%)</label>
+ <div class="layui-input-block">
+ <input type="text" name="staticProp" placeholder="请输入静态占比"
+ autoComplete="off" class="layui-input">
+ <div class="layui-form-mid layui-word-aux">所有套餐静态占比相加应等于100%</div>
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-tab-item">
+ <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>
+ </div>
+ </div>
+
+ <div class="layui-form-item febs-hide">
+ <label class="layui-form-label">缩略图链接:</label>
+ <div class="layui-input-block">
+ <input type="text" id="thumb" lay-verify="required" name="thumb"
+ autoComplete="off" class="layui-input" readOnly>
+ </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="thumbsBanner">上传
+ </button>
+ <blockquote class="layui-elem-quote layui-quote-nm"
+ style="margin-top: 10px;">
+ <div class="layui-upload-list" id="thumbsBanners"></div>
+ </blockquote>
+ </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="thumbs" lay-verify="required" name="thumbs"
+ autoComplete="off" class="layui-input" readOnly>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">商品详情:</label>
+ <div class="layui-input-block">
+ <textarea id="lay_edit" lay-verify="goodsDetails" name="goodsDetails"
+ class="layui-textarea"></textarea>
+ </div>
+ </div>
+ </div>
+ <div class="layui-tab-item">
+ <blockquote class="layui-elem-quote blue-border">价格设置</blockquote>
+ <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="originalPrice" lay-verify="required"
+ placeholder="" autoComplete="off" class="layui-input">
+ </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="presentPrice" lay-verify="required"
+ placeholder="" autoComplete="off" class="layui-input">
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">成本价:</label>
+ <div class="layui-input-block">
+ <input type="text" name="costPrice" lay-verify="required" placeholder=""
+ autoComplete="off" class="layui-input">
+ </div>
+ </div>
+
+ <blockquote class="layui-elem-quote blue-border">多规格设置</blockquote>
+ <div class="layui-col-lg6">
+ <label class="layui-form-label">开启多规格:</label>
+ <div class="layui-input-block">
+ <input type="radio" name="isSku" value="1" title="是"
+ lay-filter="isSku"/>
+ <input type="radio" name="isSku" value="2" title="否" lay-filter="isSku"
+ checked/>
+ </div>
+ </div>
+ <div class="layui-form-item multi-sku-table febs-hide">
+ <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="addMallGoodsSkuDtos" autoComplete="off"
+ class="layui-input" id="attrName">
+ </div>
+ </div>
+ <div class="layui-col-lg6">
+ <button type="button"
+ class="layui-btn layui-btn-normal layui-btn" id="test3">
+ 添加
+ </button>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <div class="layui-input-block">
+ <table id="multiSku" lay-filter="multiSku"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="layui-form-item febs-hide" style="text-align:center">
+ <button class="layui-btn" lay-submit="" lay-filter="goods-update-form-submit"
+ id="submit">
+ </button>
+<!-- <button class="layui-btn layui-btn-danger" lay-submit=""-->
+<!-- lay-filter="goods-update-form-cancel" id="cancel">取消-->
+<!-- </button>-->
+ </div>
+ </form>
+ </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="thumbs" lay-verify="required" name="thumbs" autocomplete="off" class="layui-input" readonly>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label febs-form-item-require">商品详情:</label>
- <div class="layui-input-block">
- <textarea id="lay_edit" lay-verify="goodsDetails" name = "goodsDetails" class="layui-textarea">[[${mailGoodsUpdate.goodsDetails}]]</textarea>
- </div>
- </div>
- <div class="layui-row layui-col-space10 layui-form-item">
- <div class="layui-col-lg6">
- <label class="layui-form-label">是否热卖:</label>
- <div class="layui-input-block">
- <input type="radio" name="isHot" value="1" title="是" >
- <input type="radio" name="isHot" value="2" title="否" checked="">
- </div>
- </div>
- </div>
- <div class="layui-form-item febs-hide">
- <button class="layui-btn" lay-submit="" lay-filter="goods-update-form-submit" id="submit"></button>
- </div>
-<!-- <div class="layui-form-item">-->
-<!-- <div class="layui-form-item" style="text-align:center">-->
-<!-- <button class="layui-btn" lay-submit="" lay-filter="goods-update-form-submit" id="submit">保存</button>-->
-<!-- </div>-->
-<!-- </div>-->
- </form>
+ </div>
</div>
+<style>
+ .blue-border {
+ border-left-color: #2db7f5;
+ font-size: 18px;
+ }
+ .layui-table-cell {
+ height: auto;
+ }
+</style>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-danger layui-btn-sm" type="button" lay-event="delSku">删除</button>
+ </div>
+</script>
+<script type="text/html" id="tableImgUpload">
+ <div class="layui-upload">
+ <button type="button" class="layui-btn layui-btn-normal layui-btn-xs sku-img" id="skuImg{{d.index}}">上传
+ </button>
+ </br>
+ <img class="layui-upload-img" id="imageUrls{{d.index}}" style="width: 100px; display:none;"
+ src="{{d.skuImage}}">
+ <input type="text" id="skuImage{{d.index}}" name="skuImage{{d.index}}" autoComplete="off" value="{{d.skuImage}}"
+ class="layui-input febs-hide">
+ </div>
+</script>
+<!-- 表格操作栏 end -->
<script data-th-inline="javascript">
- layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','dropdown', 'laydate','layedit','upload'], function () {
+ layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'dropdown', 'laydate', 'layedit', 'upload', 'element', 'table'], function () {
var $ = layui.jquery,
febs = layui.febs,
layer = layui.layer,
+ table = layui.table,
formSelects = layui.formSelects,
treeSelect = layui.treeSelect,
form = layui.form,
laydate = layui.laydate,
eleTree = layui.eleTree,
- mailGoodsUpdate = [[${mailGoodsUpdate}]],
- $view = $('#goods-add'),
+ goodsInfo = [[${goodsInfo}]],
+ $view = $('#goods-update'),
layedit = layui.layedit,
upload = layui.upload,
- validate = layui.validate;
+ validate = layui.validate,
+ element = layui.element;
form.render();
+ laydate.render({
+ elem: '#febs-form-group-date'
+ });
+
+ formSelects.render();
+
+ var tableSkuData = [];
+ var tableIns = table.render({
+ elem: '#multiSku'
+ , limit: 999
+ , toolbar: "#toolbar"
+ , defaultToolbar: []
+ , cols: [[ //表头
+ {type: 'checkbox'}
+ , {field: 'index', title: '序号', width: 70}
+ , {field: 'styleName', title: '样式', edit: 'text'}
+ , {field: 'skuName', title: '规格', edit: 'text'}
+ , {field: 'presentPrice', title: '现价', edit: 'text'}
+ , {field: 'originalPrice', title: '原价', edit: 'text'}
+ , {field: 'costPrice', title: '成本价', edit: 'text'}
+ , {templet: '#tableImgUpload', title: '缩略图', width: 150}
+ , {field: 'stock', title: '库存', edit: 'text'}
+ , {field: 'skuVolume', title: '销量', edit: 'text'}
+ , {field: 'skuImage', title: '缩略图地址', hide: true}
+ , {field: 'id', title: 'skuId', hide: true}
+ , {field: 'styleId', title: 'styleId', hide: true}
+ ]]
+ , data: []
+ });
+
+ var delSku = [];
+ table.on('toolbar(multiSku)', function (obj) {
+ var data = obj.data;
+
+ var hasData = table.cache['multiSku'];
+ var checkData = table.checkStatus('multiSku').data;
+
+ if (checkData.length <= 0) {
+ febs.alert.warn('请选择删除数据');
+ return;
+ }
+ if (obj.event === 'delSku') {
+ for (let i = 0; i < checkData.length; i++) {
+ var delData = checkData[i];
+ console.log(delData)
+ for (let j = 0; j < hasData.length; j++) {
+ if (hasData[j].index == delData.index) {
+ if (delData.id) {
+ delSku.push(delData.id);
+ }
+
+ hasData.splice(j, 1);
+ break;
+ }
+ }
+ }
+ console.log(delSku);
+
+ for (let i = 0; i < hasData.length; i++) {
+ hasData[i].index = i + 1;
+ }
+
+ tableSkuData = hasData;
+ reloadTable(hasData);
+ }
+ });
+
+ form.on('radio(isSku)', function (data) {
+ if (data.value == 2) {
+ $('.multi-sku-table').hide();
+ } else {
+ $('.multi-sku-table').show();
+ }
+ });
+
+ function addTableDate(data) {
+ var hasData = table.cache['multiSku'];
+
+ data.index = hasData.length + 1;
+ tableSkuData.push(data);
+
+ reloadTable(tableSkuData);
+ return data.index;
+ }
+
+ function reloadTable(data) {
+ table.reload('multiSku', {
+ data: data
+ });
+
+ for (let i = 0; i < data.length; i++) {
+ if (data[i].skuImage) {
+ $('#imageUrls' + (i + 1)).css('display', 'block');
+ }
+ // 重新绑定图片上传
+ bindUpload(i + 1);
+ }
+ }
+
+ table.on('edit(multiSku)', function (obj) {
+ var value = obj.value //得到修改后的值
+ , data = obj.data //得到所在行所有键值
+ , field = obj.field; //得到字段
+
+ for (let i = 0; i < tableSkuData.length; i++) {
+ if (tableSkuData[i].index == data.index) {
+ tableSkuData[i] = data;
+ }
+ }
+ });
+
+ $('#test3').on('click', function () {
+ let attrNameVal = $('#attrName').val();
+ if (attrNameVal == null || attrNameVal == "") {
+ febs.alert.warn('样式名称不能为空');
+ return false;
+ }
+
+ var data = {};
+ data.styleName = attrNameVal;
+ addTableDate(data);
+ });
+
+ function bindUpload(index) {
+ // 普通图片上传
+ upload.render({
+ elem: '#skuImg' + index
+ , url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+ , done: function (res) {
+ febs.alert.success(res.data.src);
+ $('#imageUrls' + index).attr('src', res.data.src);
+ $('#imageUrls' + index).css('display', 'block');
+ $('#skuImage' + index).val(res.data.src);
+
+
+ for (let i = 0; i < tableSkuData.length; i++) {
+ if (tableSkuData[i].index == index) {
+ tableSkuData[i].skuImage = res.data.src;
+ }
+ }
+
+ reloadTable(tableSkuData);
+ }
+ });
+ }
//(下拉框)
$.get(ctx + 'admin/goodsCategory/categorys/allTree', function (data) {
- for (var k in data)
- {
- $(".categary-goods-updatenew-category").append("<option value='" + data[k].parentId + "'>" + data[k].name + "</option>");
+ for (var k in data) {
+ $(".categary-addPeoduct").append("<option value='" + data[k].parentId + "'>" + data[k].name + "</option>");
}
layui.use('form', function () {
var form = layui.form;
- $("#goodsUpdateSelect").val(mailGoodsUpdate.categoryId)
+ // $("#categarySelect").val(member.parentId)
form.render();
});
});
@@ -183,47 +456,41 @@
//多图片上传
upload.render({
elem: '#thumbsBanner'
- ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
- ,multiple: true
- ,before: function(obj){
+ , url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+ , multiple: true
+ , before: function (obj) {
//预读本地文件示例,不支持ie8
- obj.preview(function(index, file, result){
- $('#thumbsBanners').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img" style="width: 100px">')
+ obj.preview(function (index, file, result) {
+ $('#thumbsBanners').append('<img src="' + result + '" alt="' + file.name + '" class="layui-upload-img" style="width: 100px">')
});
}
- ,done: function(res){
+ , done: function (res) {
var thumbs = $("#thumbs").val();
- if(thumbs == ''){
+ if (thumbs == '') {
$("#thumbs").val(res.data.src);
- }else{
+ } else {
$("#thumbs").val(thumbs + ',' + res.data.src);
}
- // alert($("#thumb").val());
}
});
//图片上传
upload.render({
elem: '#test2'
- ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
- ,multiple: true
- ,before: function(obj){
+ , url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+ , multiple: true
+ , before: function (obj) {
//预读本地文件示例,不支持ie8
- obj.preview(function(index, file, result){
- $('#demo2').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img" style="width: 100px">')
+ obj.preview(function (index, file, result) {
+ $('#demo2').append('<img src="' + result + '" alt="' + file.name + '" class="layui-upload-img" style="width: 100px">')
});
}
- ,done: function(res){
- // var thumbs = $("#thumb").val();
- // if(thumbs == ''){
+ , done: function (res) {
$("#thumb").val(res.data.src);
- // }else{
- // $("#thumb").val(thumbs + ',' + res.data.src);
- // }
- // alert($("#thumb").val());
}
});
+ initValue();
layedit.set({ //设置图片接口
uploadImage: {
url: 'admin/goods/uploadFileBase64', //接口url
@@ -231,291 +498,108 @@
}
});
//创建一个编辑器
- var index = layedit.build('lay_edit',{
+ var index = layedit.build('lay_edit', {
height: 300
});
//提交时把值同步到文本域中
form.verify({
//content富文本域中的lay-verify值
- goodsDetails: function(value) {
+ goodsDetails: function (value) {
return layedit.sync(index);
}
});
- initUserValue();
-
- function appendSku(sku,skuIndex){
- var index = skuIndex;
- let attrNameVal = sku.skuName;
- let styleName = sku.styleName;
- let styleId = sku.styleId;
- let skuId = sku.id;
- let stockVal = sku.stock;
- let skuVolume = sku.skuVolume;
- let originalPrice = sku.originalPrice;
- let presentPrice = sku.presentPrice;
- let skuImage = sku.skuImage;
- $('#attrWrap').append(`
- <div class="layui-form-item item">
- <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` + index + `" value="` + skuId + `">
- </div>
- </div>
- <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="delLog` + index + `">
- </div>
- </div>
- <div class="layui-form-item febs-hide">
- <label class="layui-form-label febs-form-item-require">styleId:</label>
- <div class="layui-input-block">
- <input type="text" id="styleId` + index +`" name="styleId` + index + `" value="` + styleId + `">
- </div>
- </div>
- <div style="float:left" >
- <input type="text" name="styleName` + index + `" value="` + styleName + `" autocomplete="off" class="layui-input" readonly >
- </div>
- <div style="float:left" >
- <div>
- <input type="text" name="skuName` + index +`" value="` + attrNameVal + `" placeholder="规格名称" autocomplete="off" class="layui-input" >
- </div>
- </div>
- <div style="float:left" >
- <label class="layui-form-label">图片:</label>
- <div class="layui-input-block">
- <div class="layui-upload">
- <button type="button" class="layui-btn layui-btn-normal layui-btn-xs sku-img" id="skuImg` + index + `">上传</button>
- <img class="layui-upload-img" src="` + skuImage + `" id="imageUrls` + index + `" style="width: 100px" >
- </div>
- </div>
- </div>
- <div style="float:left" class="febs-hide">
- <div>
- <input type="text" id="skuImage` + index +`" value="` + skuImage + `" name="skuImage` + index + `" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div style="float:left" >
- <div>
- <input type="number" name="stock` + index +`" value="` + stockVal + `" placeholder="库存" autocomplete="off" class="layui-input" >
- </div>
- </div>
- <div style="float:left" >
- <div>
- <input type="number" name="skuVolume` + index +`" value="` + skuVolume + `" placeholder="销售数量" autocomplete="off" class="layui-input" >
- </div>
- </div>
- <div style="float:left" >
- <div>
- <input type="number" name="originalPrice` + index +`" value="` + originalPrice + `" placeholder="原价" autocomplete="off" class="layui-input" >
- </div>
- </div>
- <div style="float:left" >
- <div>
- <input type="number" name="presentPrice` + index + `" value="` + presentPrice + `" placeholder="现价" autocomplete="off" class="layui-input" >
- </div>
- </div>
- <div style="float:left" >
- <button type="button" class="layui-btn del-attr-btn" data-index="` + index +`">删除</button>
- </div>
- </div>
- `)
- //普通图片上传
- upload.render({
- elem: '#skuImg' + index
- ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
- ,done: function(res){
- febs.alert.success(res.data.src);
- $('#imageUrls' + index).attr('src', res.data.src);
- $('#skuImage'+ index).val(res.data.src);
- }
+ function initValue() {
+ var images = goodsInfo.images;
+ var thumbs = images.join(",");
+ form.val("goods-update-form", {
+ "id": goodsInfo.id,
+ "goodsName": goodsInfo.goodsName,
+ "goodsNo": goodsInfo.goodsNo,
+ "unit": goodsInfo.unit,
+ "stock": goodsInfo.stock,
+ "volume": goodsInfo.volume,
+ "goodsIntrodution": goodsInfo.goodsIntrodution,
+ "isNormal": goodsInfo.isNormal,
+ "staticMulti": goodsInfo.staticMulti,
+ "staticProp": goodsInfo.staticProp,
+ "originalPrice": goodsInfo.originalPrice,
+ "presentPrice": goodsInfo.presentPrice,
+ "costPrice": goodsInfo.costPrice,
+ "isSku": goodsInfo.isSku,
+ "thumb": goodsInfo.thumb,
+ "thumbs": thumbs
});
+
+ if (goodsInfo.isNormal == 2) {
+ $(".tc-set").show();
+ }
+
+ if (goodsInfo.isSku == 1) {
+ $(".multi-sku-table").show();
+ }
+
+ var skus = goodsInfo.skus;
+ for (let i = 0; i < skus.length; i++) {
+ skus[i].index = i+1;
+ }
+
+ for (let i = 0; i < images.length; i++) {
+ $('#thumbsBanners').append('<img src="' + images[i] + '" alt="" class="layui-upload-img" style="width: 100px">')
+ }
+
+ $('#demo2').append('<img src="' + goodsInfo.thumb + '" alt="" class="layui-upload-img" style="width: 100px">')
+ layedit.setContent(index, "1234", false);
+ tableSkuData = skus;
+ reloadTable(skus);
}
- function initUserValue() {
- var skuIndex = 0;
- let skuLength = mailGoodsUpdate.mailGoodsSkuDetailVo.length;
- for(var skuIndex = 0; skuIndex < skuLength; skuIndex++){
- appendSku(mailGoodsUpdate.mailGoodsSkuDetailVo[skuIndex],skuIndex);
- }
- //缩略图图片回显
- if(mailGoodsUpdate.thumb != null || mailGoodsUpdate.thumb != ''){
- $('#demo2').append('<img src="'+ mailGoodsUpdate.thumb +'" class="layui-upload-img" style="width: 100px">')
- $("#thumb").val(mailGoodsUpdate.thumb);
- }
- var imagesInitIndex = 0;
- let imagesInitIndexlength = mailGoodsUpdate.mailGoodsImagesVo.length;
- for(var imagesInitIndex = 0; imagesInitIndex < imagesInitIndexlength; imagesInitIndex++){
- console.log(mailGoodsUpdate.mailGoodsImagesVo);
- $('#thumbsBanners').append('<img src="'+ mailGoodsUpdate.mailGoodsImagesVo[imagesInitIndex] +'" class="layui-upload-img" style="width: 100px">')
- $("#thumbs").val(mailGoodsUpdate.mailGoodsImagesVo[imagesInitIndex] + ',');
- }
-
- form.val("goods-updatenew-form", {
- "id": mailGoodsUpdate.id,
- "goodsNo": mailGoodsUpdate.goodsNo,
- "categoryId": mailGoodsUpdate.categoryId,
- "mailGoodsSkuDetailVo": mailGoodsUpdate.mailGoodsSkuDetailVo,
- "mailGoodsImagesVo": mailGoodsUpdate.mailGoodsImagesVo,
- "unit": mailGoodsUpdate.unit,
- "originalPrice": mailGoodsUpdate.originalPrice,
- "presentPrice": mailGoodsUpdate.presentPrice,
- "goodsIntrodution": mailGoodsUpdate.goodsIntrodution,
- "thumb": mailGoodsUpdate.thumb,
- "goodsDetails": mailGoodsUpdate.goodsDetails,
- "isHot": mailGoodsUpdate.isHot,
- "isHot": mailGoodsUpdate.isHot,
- "goodsName": mailGoodsUpdate.goodsName
- });
- }
-
- $('#test3').on('click', function (){
- var index = $("#attrWrap").children().length;
- let attrNameVal = $('#attrName').val();
- if(attrNameVal==null || attrNameVal==""){
- febs.alert.warn('样式名称不能为空');
- return false;
- }
- $('#attrWrap').append(`
- <div class="layui-form-item item">
- <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` + index + `">
- </div>
- </div>
- <div class="layui-form-item febs-hide">
- <label class="layui-form-label febs-form-item-require">styleId:</label>
- <div class="layui-input-block">
- <input type="text" id="styleId` + index +`" name="styleId` + index + `">
- </div>
- </div>
- <div style="float:left" >
- <input type="text" name="styleName` + index + `" value="` + $('#attrName').val() + `" autocomplete="off" class="layui-input" readonly >
- </div>
- <div style="float:left" >
- <div>
- <input type="text" name="skuName` + index +`" placeholder="规格名称" autocomplete="off" class="layui-input" >
- </div>
- </div>
- <div style="float:left" >
- <label class="layui-form-label">图片:</label>
- <div class="layui-input-block">
- <div class="layui-upload">
- <button type="button" class="layui-btn layui-btn-normal layui-btn-xs sku-img" id="skuImg` + index + `">上传</button>
- <img class="layui-upload-img" id="imageUrls` + index + `" style="width: 100px" >
- </div>
- </div>
- </div>
- <div style="float:left" class="febs-hide">
- <div>
- <input type="text" id="skuImage` + index +`" name="skuImage` + index + `" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div style="float:left" >
- <div>
- <input type="number" name="stock` + index +`" placeholder="库存" autocomplete="off" class="layui-input" >
- </div>
- </div>
- <div style="float:left" >
- <div>
- <input type="number" name="skuVolume` + index +`" placeholder="销售数量" autocomplete="off" class="layui-input" >
- </div>
- </div>
- <div style="float:left" >
- <div>
- <input type="number" name="originalPrice` + index +`" placeholder="原价" autocomplete="off" class="layui-input" >
- </div>
- </div>
- <div style="float:left" >
- <div>
- <input type="number" name="presentPrice` + index + `" placeholder="现价" autocomplete="off" class="layui-input" >
- </div>
- </div>
- <div style="float:left" >
- <button type="button" class="layui-btn del-attr-btn" data-index="` + index +`">删除</button>
- </div>
- </div>
- `)
- //普通图片上传
- upload.render({
- elem: '#skuImg' + index
- ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
- ,done: function(res){
- febs.alert.success(res.data.src);
- $('#imageUrls' + index).attr('src', res.data.src);
- $('#skuImage'+ index).val(res.data.src);
- }
- });
- });
upload.render({
- elem: '#skuImg'+index
- ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
- ,done: function(res){
+ elem: '#skuImg' + index
+ , url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
+ , done: function (res) {
febs.alert.success(res.data.src);
$('#imageUrls' + index).attr('src', res.data.src);
- $('#skuImage'+ index).val(res.data.src);
+ $('#skuImage' + index).val(res.data.src);
}
});
- $("#attrWrap").on("click",".del-attr-btn",function(){
- var index = $(this).attr('data-index')
- if($("input[name='styleId" + index + "']").val() ==null || $("input[name='styleId" + index + "']").val() ==''){
- $($("#attrWrap").find(".item")[index].remove());
- }else{
- $("input[name='delLog" + index + "']").val("delLog");
- $($("#attrWrap").find(".item")[index].style.display = "none");
- }
- });
+
form.on('submit(goods-update-form-submit)', function (data) {
- let skuArrs = [];
- var skuArr = $("#attrWrap").find(".item");
- for(var i = 0;i < skuArr.length;i++){
- skuArrs.push({
- id: $("input[name='id" + i + "']").val(),
- styleName: $("input[name='styleName" + i + "']").val(),
- styleId: $("input[name='styleId" + i + "']").val(),
- delLog: $("input[name='delLog" + i + "']").val(),
- skuName: $("input[name='skuName" + i + "']").val(),
- skuImage: $("input[name='skuImage" + i + "']").val(),
- stock: $("input[name='stock" + i + "']").val(),
- skuVolume: $("input[name='skuVolume" + i + "']").val(),
- originalPrice:$("input[name='originalPrice" + i + "']").val(),
- presentPrice: $("input[name='presentPrice" + i + "']").val()
- })
- }
- // if(skuArr.length < 0){
- // febs.alert.warn("请填写商品规格");
- // return false;
- // }
- // console.log(skuArrs)
- data.field.mailGoodsSkuDto = skuArrs;
- console.log(data.field)
+ console.log(tableSkuData);
+ data.field.mailGoodsSkuDto = tableSkuData;
+ data.field.delSkuId=delSku;
$.ajax({
- 'url':ctx + 'admin/goods/updateMallGoods',
- 'type':'post',
- 'dataType':'json',
- 'headers' : {'Content-Type' : 'application/json;charset=utf-8'}, //接口json格式
+ 'url': ctx + 'admin/goods/updateMallGoods',
+ 'type': 'post',
+ 'dataType': 'json',
+ 'headers': {'Content-Type': 'application/json;charset=utf-8'}, //接口json格式
'traditional': true,//ajax传递数组必须添加属性
- 'data':JSON.stringify(data.field),
- 'success':function (data) {
- if(data.code==0){
+ 'data': JSON.stringify(data.field),
+ 'success': function (data) {
+ if (data.code == 200) {
layer.closeAll();
- febs.alert.success('操作成功');
- // var index = parent.layer.getFrameIndex(window.name);
- // parent.layer.close(index);
- // febs.alert.success('操作成功');
+ febs.alert.success(data.message);
$('#febs-goods').find('#reset').click();
- }else{
+ } else {
febs.alert.warn(data.message);
}
},
- 'error':function () {
+ 'error': function () {
febs.alert.warn('服务器繁忙');
}
})
return false;
});
+
+ form.on('select(goods-type-select)', function (data) {
+ $('.tc-set').each(function () {
+ if (data.value == 2) {
+ $(this).show();
+ } else {
+ $(this).hide();
+ }
+ })
+ });
+
});
</script>
\ No newline at end of file
--
Gitblit v1.9.1