# 2022-02-09

### 1.3.5 开源社区版(会员专业版同步修改):
无
### 0.1.5 会员专业版:
【升级】nuget升级常用组件到最新版本。
【修复】服务商品列表图片组件从image调整为u--image组件。#I4RUC6
【优化】规范coreshop-goods.vue组件for循环未定义key的问题。
【修复】修复因升级uview版本导致【商品选项卡goodTabBar组件】切换失效的问题。
【新增】微信自定义交易组件增加【商品审核结果回调】,【类目审核结果回调】微信服务器消息推送处理。
【优化】调整自定义交易组件sku价格为decimal(18, 2)类型,方便小数处理。
【优化】微信自定义交易组件增加图片同步至微信侧功能。
【优化】重命名一些方法名称大小写。
【新增】首页设计轮播图增加高度设置功能。#I4SWEA
【修复】优化在苹果6/7/8plus及安卓一些机型出现分享海报弹窗文字被遮挡的问题。#I4SWCA
This commit is contained in:
JianWeie
2022-02-09 02:07:06 +08:00
parent 8e3adda57b
commit 05df55d7ec
43 changed files with 1044 additions and 535 deletions

View File

@@ -4,6 +4,7 @@ var allWidget = {
"name": "图片轮播",
"value": {
"duration": 2500,
"height": 130,
"list": [{
"image": "/static/images/common/empty-banner.png",
"linkType": '',

View File

@@ -28,7 +28,7 @@ layui.define(['laytpl', 'layer', 'element', 'util'], function (exports) {
//额外增加
, apiUrl: '/' //api请求地址
, fileUrl: '/' //资源请求地址
, noImagePicUrl: layui.cache.base + 'style/res/noImage.jpg' //api请求地址
, noImagePicUrl: 'https://files.cdn.coreshop.cn/static/images/empty/noImage.jpg' //api请求地址
//自定义响应字段
, response: {

View File

@@ -822,6 +822,13 @@
<p class="layout-tip">轮播图自动切换的间隔时间,单位:毫秒</p>
</div>
</div>
<div class="content-item">
<span class="item-label">高度:</span>
<div class="number-content ml20">
<input type="number" :step="10" v-model.number="selectWg.value.height" :min="0" class="number-input">
<p class="layout-tip">默认高度为130px单位像素</p>
</div>
</div>
<draggable element="ul" :list="selectWg.value.list"
:options="{group:{ name:'slideList'}, ghostClass: 'ghost',animation: 150,handle:'.drag-block'}">
<li v-for="(item, index) in selectWg.value.list" :key="index">

View File

@@ -158,11 +158,14 @@
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
if (res.code > 0) { return layer.msg('上传失败'); }
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
$('#viewImgBoxlicenseImage').attr('src', res.data.fileUrl);
$("#licenseImageInput").val(res.data.fileUrl);
@@ -182,11 +185,14 @@
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
//$('#viewImgBoxlicenseImage').attr('src', result);
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
if (res.code > 0) { return layer.msg('上传失败'); }
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
imgs.push(res.data.fileUrl);
$('#certificateImage').val(imgs);

View File

@@ -166,11 +166,14 @@
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
if (res.code > 0) { return layer.msg('上传失败'); }
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
$('#viewImgBoxlicenseImage').attr('src', res.data.fileUrl);
$("#licenseImageInput").val(res.data.fileUrl);
@@ -190,11 +193,14 @@
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
//$('#viewImgBoxlicenseImage').attr('src', result);
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
if (res.code > 0) { return layer.msg('上传失败'); }
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
imgs.push(res.data.fileUrl);
$('#certificateImage').val(imgs);

View File

@@ -133,12 +133,21 @@
//{ field: 'level3', title: '三级类目', sort: false, width: 105 },
{ field: 'level3Name', title: '三级类目名称', sort: false, width: 105 },
{
field: 'certificateImage', title: '资质材料', width: 100, sort: false,
field: 'certificateImage', title: '资质材料', width: 180, sort: false,
templet: function (d) {
if (d.certificateImage) {
return '<a href="javascript:void(0);" onclick=layui.coreHelper.viewImage("' + d.certificateImage + '")><image style="max-width:28px;max-height:28px;" src="' + d.certificateImage + '"/></a>';
var arr = d.certificateImage.split(',');
if (Array.isArray(arr) && arr.length) {
var html = '';
for (var i = 0; i < arr.length; i++) {
html += '<a href="javascript:void(0);" onclick=layui.coreHelper.viewImage("' + arr[i] + '")><image style="max-width:28px;max-height:28px;" src="' + arr[i] + '?x-oss-process=image/resize,m_lfit,h_200,w_200"/></a>&nbsp;'
}
return html;
} else {
return '<a href="javascript:void(0);" onclick=layui.coreHelper.viewImage("' + setter.noImagePicUrl + '")><image style="max-width:30px;max-height:30px;" src="' + setter.noImagePicUrl + '"/></a>';
}
} else {
return '<a href="javascript:void(0);" onclick=layui.coreHelper.viewImage("' + setter.noImagePicUrl + '")><image style="max-width:30px;max-height:30px;" src="' + setter.noImagePicUrl + '"/></a>';
return '';
}
}
},

View File

@@ -26,13 +26,6 @@
</div>
</div>
<!--<div class="layui-form-item">
<label for="headImg" class="layui-form-label layui-form-required">主图列表</label>
<div class="layui-input-block">
<input name="headImg" id="headImg" lay-verify="required|verifyheadImg" class="layui-input" lay-reqText="请输入主图列表" placeholder="请输入主图列表" />
</div>
</div>-->
<div class="layui-form-item">
<label for="brand_id" class="layui-form-label layui-form-required">品牌id</label>
<div class="layui-input-inline layui-inline-4">
@@ -58,53 +51,34 @@
<input type="hidden" name="headImg" id="headImg" class="layui-input" placeholder="请上传缩略图" lay-reqText="请上传缩略图" />
<button type="button" class="layui-btn layui-btn-sm" id="upBtnimageIds"><i class="layui-icon"></i></button>
</div>
<div class="layui-form-mid">
图集[建议数量控制在10张以内]
<div class="layui-input-inline layui-inline-5">
<button type="button" class="layui-btn layui-btn-sm" lay-active="doSycnWeChatProductImages"><i class="layui-icon"></i></button>
</div>
<div class="layui-input-inline layui-inline-12">
请保证图集地址域名为store.mp.video.tencent-cloud.commmbizurl.cnmmecimage.cn/p/中某个
</div>
</div>
<div class="layui-form-item ">
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
<div class="layui-upload-list" id="upload-more-list"></div>
</blockquote>
<div class="layui-form-item">
<div class="layui-upload-list" id="upload-more-list"></div>
</div>
<fieldset class="layui-elem-field layui-field-title site-title"><legend><a name="products">货品</a></legend></fieldset>
<div id="products">
</div>
<!--<div class="layui-form-item">
<label for="qualificationPics" class="layui-form-label layui-form-required">商品资质图片列表</label>
<div class="layui-input-block">
<input name="qualificationPics" lay-verify="required|verifyqualificationPics" class="layui-input" lay-reqText="请输入商品资质图片列表" placeholder="请输入商品资质图片列表" />
</div>
</div>-->
<div class="layui-form-item layui-form-text">
<label for="descInfoDesc" class="layui-form-label layui-form-required">商品详情图文</label>
<div class="layui-input-block">
<!--<div id="descInfoDesc"></div>-->
<div class="document-editor">
<div class="toolbar-container" id="toolbar-container"></div>
<div class="content-container">
<div id="editor"></div>
</div>
</div>
</div>
</div>
<!--<div class="layui-form-item">
<label for="descInfoImgs" class="layui-form-label layui-form-required">商品详情图片列表</label>
<div class="layui-input-block">
<input name="descInfoImgs" lay-verify="required|verifydescInfoImgs" class="layui-input" lay-reqText="请输入商品详情图片列表" placeholder="请输入商品详情图片列表" />
</div>
</div>-->
<div class="layui-form-item text-right core-hidden">
<input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-WeChatTransactionComponentGood-createForm-submit" id="LAY-app-WeChatTransactionComponentGood-createForm-submit" value="确认添加">
</div>
@@ -112,18 +86,38 @@
</script>
<script id="image_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="imgdiv">
<img src="{{ item }}" class="layui-upload-img" onclick='layui.coreHelper.viewImage("{{ item }}")' style="width: 100px;height:100px;">
<div id="operate">
<div><a class="del" onclick="delImg(this,'{{ item }}')">删除</a>|<a class="setmain" onclick="setDefault(this,'{{ item }}')"></a>|<a class="setmain" onclick="upLoadImage(this,'{{ item }}')"></a></div>
</div>
</div>
{{# }); }}
<table class="layui-table" lay-size="sm">
<colgroup>
<col width="110">
<col>
<col width="150">
</colgroup>
<thead>
<tr>
<th>图片</th>
<th>地址</th>
<th>操作</th>
</tr>
</thead>
<tbody id="productsTbody">
{{# layui.each(d, function(index, item){ }}
<tr data-index="{{ index }}">
<td>
<img src="{{ item }}" id="img{{ index }}" class="layui-upload-img" onclick='layui.coreHelper.viewImage("{{ item }}")' style="width: 100px; height: 100px;">
</td>
<td>
<input type="text" value="{{ item }}" class="layui-input" readonly="readonly" />
</td>
<td>
<a class="layui-btn layui-btn-xs" lay-active="delImg">删除</a>
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-active="setDefault">设为主图</a>
</td>
</tr>
{{# }); }}
</tbody>
</table>
</script>
<script id="getSpec_tpl" type="text/html">
<table class="layui-table" lay-size="sm">
<colgroup>
@@ -153,19 +147,14 @@
<tbody id="productsTbody">
{{# layui.each(d, function(index, item){ }}
<tr>
<td>
<td rowspan="2">
<input type="hidden" value="{{item.id}}" name="product[outProductId][]" />
<input type="hidden" value="{{item.id}}" name="product[outSkuId][]" />
<input type="checkbox" name="product[isDefalut][]" {{item.isDefalut? 'checked="true"':''}} value="{{item.isDefalut? '1':'0'}}" lay-skin="switch" lay-text="是|否" disabled>
</td>
<td class="spec-td">
<div class="spec_image">
<div class="spec_image_item">
<img src="{{ item.images && item.images !='null'? item.images : layui.setter.noImagePicUrl }}" id="productImagesSrc" style="width:60px;height:60px">
</div>
<!--<input type="hidden" id="productImagesInput" name="product[thumbImg][]" value="{{ item.images && item.images !='null'? item.images : layui.setter.noImagePicUrl }}">-->
<input type="hidden" id="productImagesInput" name="product[thumbImg][]" value="{{layui.setter.noImagePicUrl}}">
</div>
<td class="spec-td" rowspan="2" style="text-align: center;">
<img src="{{ item.images && item.images !='null'? item.images : layui.setter.noImagePicUrl }}" style="width:80px;height:80px">
<button type="button" class="layui-btn layui-btn-xs" style="margin-top: 10px;" lay-active="doSycnWeChatProductImagesSingle"><i class="layui-icon"></i></button>
</td>
<td>
<input type="text" name="product[barCode][]" value="{{item.sn}}" readonly="readonly" placeholder="货号" class="layui-input layui-inline-3">
@@ -190,13 +179,16 @@
<input type="checkbox" name="product[isSelect][]" checked="checked" lay-skin="primary">
</td>
</tr>
<tr>
<td colspan="6">
<input type="text" name="product[thumbImg][]" value="{{ item.images && item.images !='null'? item.images : layui.setter.noImagePicUrl }}" class="layui-input layui-inline-14" readonly="readonly" />
</td>
</tr>
{{# }); }}
</tbody>
</table>
</script>
<script>
var $;
var imgs = [];
@@ -303,14 +295,14 @@
window.editor.setData(ids.intro);
//if (ids.images) {
// imgs = ids.images.split(',');
// $('#headImg').val(imgs);
// var getTpl = image_tpl.innerHTML, viewBox = document.getElementById('upload-more-list');
// laytpl(getTpl).render(imgs, function (html) {
// viewBox.innerHTML = html;
// });
//}
if (ids.images) {
imgs = ids.images.split(',');
$('#headImg').val(imgs);
var getTpl = image_tpl.innerHTML, viewBox = document.getElementById('upload-more-list');
laytpl(getTpl).render(imgs, function (html) {
viewBox.innerHTML = html;
});
}
$('#skuCount').val(ids.sku.length);
@@ -354,41 +346,110 @@
});
}
});
},
upLoadImage: function (othis) {
var imgDiv = $(othis).parent().parent();
var imageUrl = imgDiv.find('img').attr("src");
},
delImg: function (othis) {
var imgDiv = $(othis).parent().parent();
imgDiv.remove();
var imageUrl = imgDiv.find('img').attr("src");
var index = imgs.indexOf(imageUrl);
if (index > -1) {
imgs.splice(index, 1);
}
$('#headImg').val(imgs);
console.log(imgs);
refreshImages();
},
setDefault: function (othis) {
var imgDiv = $(othis).parent().parent();
$("#upload-more-list").prepend(imgDiv);
var imageUrl = imgDiv.find('img').attr("src");
var index = imgs.indexOf(imageUrl);
if (index > -1) {
imgs.unshift(imgs.splice(index, 1)[0]);
}
$('#headImg').val(imgs);
console.log(imgs);
refreshImages();
},
doSycnWeChatProductImages: function () {
if (imgs.length > 0) {
//执行交换url操作
coreHelper.Post("Api/Tools/MiNiShopOpenComponent2_UploadImgByUrlArr", { id: imgs }, function (res) {
if (debug) { console.log(res); } //开启调试返回数据
if (res.code == 0) {
imgs = res.data;
$('#headImg').val(imgs);
refreshImages();
}
});
} else {
layer.msg('请先上传图片或选择商品获取图集');
}
},
doSycnWeChatProductImagesSingle: function (othis) {
var imgObj = $(othis).prev().attr('src');
console.log(imgObj);
coreHelper.Post("Api/Tools/MiNiShopOpenComponent2_UploadImgByUrlSingle", { id: imgObj }, function (res) {
if (debug) { console.log(res); } //开启调试返回数据
if (res.code == 0) {
$(othis).parent().parent().next().find("input[name='product[thumbImg][]']").val(res.data);
} else {
layer.msg(res.msg);
}
});
},
});
function refreshImages() {
var getTpl = image_tpl.innerHTML, view = document.getElementById('upload-more-list');
laytpl(getTpl).render(imgs, function (html) {
view.innerHTML = html;
});
console.log(imgs);
}
//设为默认图
function setDefault(obj, imageUrl) {
var imgDiv = $(obj).parent().parent();
$("#upload-more-list").prepend(imgDiv);
var index = imgs.indexOf(imageUrl);
if (index > -1) {
imgs.unshift(imgs.splice(index, 1)[0]);
}
$('#headImg').val(imgs);
console.log(imgs);
refreshImages();
}
//图集上传
upload.render({
elem: '#upBtnimageIds'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
imgs.push(res.data.fileUrl);
$('#headImg').val(imgs);
refreshImages();
}
, error: function () {
return layer.msg('上传失败,请重试!');
}
});
//图集上传
$('#upBtnimageIds').click(function () {
cropperImg.cropImg({
aspectRatio: 1 / 1,
onCrop: function (data) {
var loadIndex = layer.load(2);
coreHelper.Post("api/Tools/MiNiShopOpenComponent2_UploadImgByBase64", { base64: data }, function (res) {
if (0 === res.code) {
imgs.push(res.data.fileUrl);
$('#headImg').val(imgs);
var getTpl = image_tpl.innerHTML, view = document.getElementById('upload-more-list');
laytpl(getTpl).render(imgs, function (html) {
view.innerHTML = html;
});
layer.msg(res.msg);
layer.close(loadIndex);
} else {
layer.close(loadIndex);
layer.msg(res.msg, { icon: 2, anim: 6 });
}
});
}
});
});
form.verify({
verifyoutProductId: [/^.{0,50}$/, '商品序列最大只允许输入50位字符'],
verifytitle: [/^.{0,255}$/, '商品标题最大只允许输入255位字符'],
verifypath: [/^.{0,255}$/, '小程序路径最大只允许输入255位字符'],
@@ -399,28 +460,7 @@
});
//重载form
form.render(null, 'LAY-app-WeChatTransactionComponentGood-createForm');
})
};
//删除图片
function delImg(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
imgDiv.remove();
var index = imgs.indexOf(imageUrl);
if (index > -1) {
imgs.splice(index, 1);
}
$('#headImg').val(imgs);
}
//设为默认图
function setDefault(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
$("#upload-more-list").prepend(imgDiv);
var index = imgs.indexOf(imageUrl);
if (index > -1) {
imgs.unshift(imgs.splice(index, 1)[0]);
}
$('#headImg').val(imgs);
}
</script>
</script>

View File

@@ -1,8 +1,8 @@
<script type="text/html" template lay-done="layui.data.sendParams(d);">
<div class="layui-form coreshop-form layui-form-pane transactioncomponent" lay-filter="LAY-app-WeChatTransactionComponentGood-editForm" id="LAY-app-WeChatTransactionComponentGood-editForm">
<input type="hidden" name="id" value="{{d.params.data.model.id }}" />
<input type="hidden" name="productId" value="{{d.params.data.model.id }}" />
<input type="hidden" name="outProductId" id="outProductId" value="{{d.params.data.model.id }}" />
<input type="hidden" name="productId" value="{{d.params.data.model.productId }}" />
<input type="hidden" name="outProductId" id="outProductId" value="{{d.params.data.model.outProductId }}" />
<input type="hidden" name="skuCount" id="skuCount" value="0" />
<div class="layui-form-item">
@@ -19,7 +19,6 @@
</div>
</div>
<div class="layui-form-item">
<label for="brand_id" class="layui-form-label layui-form-required">品牌id</label>
<div class="layui-input-inline layui-inline-4">
@@ -45,23 +44,22 @@
<input type="hidden" name="headImg" id="headImg" value="{{d.params.data.model.headImg || '' }}" class="layui-input" placeholder="请上传缩略图" lay-reqText="请上传缩略图" />
<button type="button" class="layui-btn layui-btn-sm" id="upBtnimageIds"><i class="layui-icon"></i></button>
</div>
<div class="layui-form-mid">
图集[建议数量控制在10张以内]
<div class="layui-input-inline layui-inline-5">
<button type="button" class="layui-btn layui-btn-sm" lay-active="doSycnWeChatProductImages"><i class="layui-icon"></i></button>
</div>
<div class="layui-input-inline layui-inline-12">
请保证图集地址域名为store.mp.video.tencent-cloud.commmbizurl.cnmmecimage.cn/p/中某个
</div>
</div>
<div class="layui-form-item ">
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
<div class="layui-upload-list" id="upload-more-list"></div>
</blockquote>
<div class="layui-form-item">
<div class="layui-upload-list" id="upload-more-list"></div>
</div>
<fieldset class="layui-elem-field layui-field-title site-title"><legend><a name="products">货品</a></legend></fieldset>
<div id="products">
</div>
<div class="layui-form-item layui-form-text">
<label for="descInfoDesc" class="layui-form-label layui-form-required">商品详情图文</label>
<div class="layui-input-block">
@@ -74,29 +72,45 @@
</div>
</div>
<div class="layui-form-item text-right core-hidden">
<input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-WeChatTransactionComponentGood-editForm-submit" id="LAY-app-WeChatTransactionComponentGood-editForm-submit" value="确认编辑">
</div>
</div>
</script>
<script id="image_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="imgdiv">
<img src="{{ item }}" class="layui-upload-img" onclick='layui.coreHelper.viewImage("{{ item }}")' style="width: 100px;height:100px;">
<div id="operate">
<div><a class="del" onclick="delImg(this,'{{ item }}')">删除</a>|<a class="setmain" onclick="setDefault(this,'{{ item }}')"></a></div>
</div>
</div>
{{# }); }}
<table class="layui-table" lay-size="sm">
<colgroup>
<col width="110">
<col>
<col width="150">
</colgroup>
<thead>
<tr>
<th>图片</th>
<th>地址</th>
<th>操作</th>
</tr>
</thead>
<tbody id="productsTbody">
{{# layui.each(d, function(index, item){ }}
<tr data-index="{{ index }}">
<td>
<img src="{{ item }}" id="img{{ index }}" class="layui-upload-img" onclick='layui.coreHelper.viewImage("{{ item }}")' style="width: 100px; height: 100px;">
</td>
<td>
<input type="text" value="{{ item }}" class="layui-input" readonly="readonly" />
</td>
<td>
<a class="layui-btn layui-btn-xs" lay-active="delImg">删除</a>
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-active="setDefault">设为主图</a>
</td>
</tr>
{{# }); }}
</tbody>
</table>
</script>
<script id="getSpec_tpl" type="text/html">
<table class="layui-table" lay-size="sm">
<colgroup>
@@ -126,18 +140,14 @@
<tbody id="productsTbody">
{{# layui.each(d.products, function(index, item){ }}
<tr>
<td>
<td rowspan="2">
<input type="hidden" value="{{item.id}}" name="product[outProductId][]" />
<input type="hidden" value="{{item.id}}" name="product[outSkuId][]" />
<input type="hidden" value="{{d.sku[index].outSkuId}}" name="product[outSkuId][]" />
<input type="checkbox" name="product[isDefalut][]" {{item.isDefalut? 'checked="true"':''}} value="{{item.isDefalut? '1':'0'}}" lay-skin="switch" lay-text="是|否" disabled>
</td>
<td class="spec-td">
<div class="spec_image">
<div class="spec_image_item">
<img src="{{ item.images && item.images !='null'? item.images : layui.setter.noImagePicUrl }}" id="productImagesSrc" style="width:60px;height:60px">
</div>
<input type="hidden" id="productImagesInput" name="product[thumbImg][]" value="{{ item.images && item.images !='null'? item.images : layui.setter.noImagePicUrl }}">
</div>
<td class="spec-td" rowspan="2" style="text-align: center;">
<img src="{{ d.sku[index].thumbImg}}" style="width:80px;height:80px">
<button type="button" class="layui-btn layui-btn-xs" style="margin-top: 10px;" lay-active="doSycnWeChatProductImagesSingle"><i class="layui-icon"></i></button>
</td>
<td>
<input type="text" name="product[barCode][]" value="{{item.sn}}" readonly="readonly" placeholder="货号" class="layui-input layui-inline-3">
@@ -147,19 +157,24 @@
{{item.spesDesc}}
</td>
<td class="have-add-td">
<input type="number" name="product[stockNum][]" value="{{item.stock}}" placeholder="库存" class="layui-input layui-inline-1 goods-stock">
<input type="number" name="product[stockNum][]" value="{{d.sku[index].stockNum}}" placeholder="库存" class="layui-input layui-inline-1 goods-stock">
</td>
<td>
<input type="number" name="product[salePrice][]" value="{{item.price}}" placeholder="销售价" class="layui-input layui-inline-1">
<input type="number" name="product[salePrice][]" value="{{d.sku[index].salePrice}}" placeholder="销售价" class="layui-input layui-inline-1">
</td>
<td>
<input type="number" name="product[costprice][]" value="{{item.costprice}}" placeholder="成本价" class="layui-input layui-inline-1">
<input type="number" name="product[costprice][]" value="{{d.sku[index].costprice}}" placeholder="成本价" class="layui-input layui-inline-1">
</td>
<td>
<input type="number" name="product[marketPrice][]" value="{{item.mktprice}}" placeholder="市场价" class="layui-input layui-inline-1">
<input type="number" name="product[marketPrice][]" value="{{d.sku[index].marketPrice}}" placeholder="市场价" class="layui-input layui-inline-1">
</td>
<td>
<input type="checkbox" name="product[isSelect][]" checked="checked" lay-skin="primary">
<td rowspan="2">
<input type="checkbox" name="product[isSelect][]" {{d.sku[index].isSelect? 'checked="true"':''}} lay-skin="primary">
</td>
</tr>
<tr>
<td colspan="6">
<input type="text" name="product[thumbImg][]" value="{{ d.sku[index].thumbImg}}" class="layui-input layui-inline-14" readonly="readonly" />
</td>
</tr>
{{# }); }}
@@ -188,9 +203,6 @@
, laytpl = layui.laytpl
, coreHelper = layui.coreHelper;
//加载编辑器
var Authorization = layui.data(layui.setter.tableName)[layui.setter.request.tokenName];
//加载编辑器
var Authorization = layui.data(layui.setter.tableName)[layui.setter.request.tokenName];
//重点代码 适配器
@@ -251,7 +263,6 @@
console.error(error);
});
if (d.params.data.model.headImg) {
imgs = d.params.data.model.headImg.split(',');
$('#headImg').val(imgs);
@@ -261,7 +272,6 @@
});
}
$('#skuCount').val(d.params.data.products.length);
//初始化商品信息
@@ -271,8 +281,6 @@
viewBox.innerHTML = html;
});
//处理属性 为 lay-active 的所有元素事件
util.event('lay-active', {
goods_show: function () {
@@ -299,7 +307,6 @@
$('#path').val('pages/goods/goodDetails/goodDetails?id=' + ids.id);
window.editor.setData(ids.intro);
if (ids.images) {
imgs = ids.images.split(',');
$('#headImg').val(imgs);
@@ -351,37 +358,108 @@
});
}
});
}
});
//图集上传
$('#upBtnimageIds').click(function () {
cropperImg.cropImg({
aspectRatio: 1 / 1,
onCrop: function (data) {
var loadIndex = layer.load(2);
coreHelper.Post("api/Tools/UploadFilesFByBase64", { base64: data }, function (res) {
if (0 === res.code) {
imgs.push(res.data.fileUrl);
},
upLoadImage: function (othis) {
var imgDiv = $(othis).parent().parent();
var imageUrl = imgDiv.find('img').attr("src");
},
delImg: function (othis) {
var imgDiv = $(othis).parent().parent();
imgDiv.remove();
var imageUrl = imgDiv.find('img').attr("src");
var index = imgs.indexOf(imageUrl);
if (index > -1) {
imgs.splice(index, 1);
}
$('#headImg').val(imgs);
console.log(imgs);
refreshImages();
},
setDefault: function (othis) {
var imgDiv = $(othis).parent().parent();
$("#upload-more-list").prepend(imgDiv);
var imageUrl = imgDiv.find('img').attr("src");
var index = imgs.indexOf(imageUrl);
if (index > -1) {
imgs.unshift(imgs.splice(index, 1)[0]);
}
$('#headImg').val(imgs);
console.log(imgs);
refreshImages();
},
doSycnWeChatProductImages: function () {
if (imgs.length > 0) {
//执行交换url操作
coreHelper.Post("Api/Tools/MiNiShopOpenComponent2_UploadImgByUrlArr", { id: imgs }, function (res) {
if (debug) { console.log(res); } //开启调试返回数据
if (res.code == 0) {
imgs = res.data;
$('#headImg').val(imgs);
var getTpl = image_tpl.innerHTML, view = document.getElementById('upload-more-list');
laytpl(getTpl).render(imgs, function (html) {
view.innerHTML = html;
});
layer.msg(res.msg);
layer.close(loadIndex);
} else {
layer.close(loadIndex);
layer.msg(res.msg, { icon: 2, anim: 6 });
refreshImages();
}
});
} else {
layer.msg('请先上传图片或选择商品获取图集');
}
});
},
doSycnWeChatProductImagesSingle: function (othis) {
var imgObj = $(othis).prev().attr('src');
console.log(imgObj);
coreHelper.Post("Api/Tools/MiNiShopOpenComponent2_UploadImgByUrlSingle", { id: imgObj }, function (res) {
if (debug) { console.log(res); } //开启调试返回数据
if (res.code == 0) {
$(othis).parent().parent().next().find("input[name='product[thumbImg][]']").val(res.data);
} else {
layer.msg(res.msg);
}
});
},
});
function refreshImages() {
var getTpl = image_tpl.innerHTML, view = document.getElementById('upload-more-list');
laytpl(getTpl).render(imgs, function (html) {
view.innerHTML = html;
});
console.log(imgs);
}
//设为默认图
function setDefault(obj, imageUrl) {
var imgDiv = $(obj).parent().parent();
$("#upload-more-list").prepend(imgDiv);
var index = imgs.indexOf(imageUrl);
if (index > -1) {
imgs.unshift(imgs.splice(index, 1)[0]);
}
$('#headImg').val(imgs);
console.log(imgs);
refreshImages();
}
//图集上传
upload.render({
elem: '#upBtnimageIds'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
imgs.push(res.data.fileUrl);
$('#headImg').val(imgs);
refreshImages();
}
, error: function () {
return layer.msg('上传失败,请重试!');
}
});
form.verify({
@@ -398,28 +476,4 @@
})
};
//删除图片
function delImg(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
imgDiv.remove();
var index = imgs.indexOf(imageUrl);
if (index > -1) {
imgs.splice(index, 1);
}
$('#headImg').val(imgs);
}
//设为默认图
function setDefault(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
$("#upload-more-list").prepend(imgDiv);
var index = imgs.indexOf(imageUrl);
if (index > -1) {
imgs.unshift(imgs.splice(index, 1)[0]);
}
$('#headImg').val(imgs);
}
</script>