<!DOCTYPE HTML>
|
<html xmlns:th="http://www.thymeleaf.org">
|
<head>
|
<meta charset="utf-8">
|
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
<meta name="renderer" content="webkit|ie-comp|ie-stand">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport"
|
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
|
<meta http-equiv="Cache-Control" content="no-siteapp"/>
|
<!-- 本框架基本脚本和样式 -->
|
<script type="text/javascript"
|
th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
|
<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
|
<!-- 富文本编辑器 -->
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/ueditor.config.js}"></script>
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/ueditor.all.js}">
|
</script>
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/lang/zh-cn/zh-cn.js}"></script>
|
<style type="text/css">
|
#projBox {
|
max-height: 400px;
|
overflow: scroll;
|
overflow-x: hidden;
|
}
|
|
</style>
|
</head>
|
<body>
|
<div class="ibox-content">
|
<form class="form-horizontal" id="dataform"
|
onsubmit="javascripr:return false;">
|
|
<input autocomplete="off" type="hidden" name="id" th:value="${obj?.id}">
|
|
<input autocomplete="off" type="hidden" name="salePlatform" value="线下">
|
<div class="form-group">
|
<label class="col-sm-2 control-label">商品名称<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3">
|
<input autocomplete="off" th:value="${obj?.name}" class="form-control" name="name"
|
dataType="*1-200" nullmsg="商品名称不能为空" errormsg="不能超过200">
|
<div class="Validform_checktip"></div>
|
</div>
|
<label class="col-sm-2 control-label">状态<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3">
|
<select class="form-control selectFlag" name="staus" nullmsg="状态不能为空" dataType="*" id="staus"
|
data-filed="name"
|
data-value="name"
|
th:data-def="${obj?.staus}"
|
th:data-url="@{/admin/dataDictionary/showDataDictionary}"
|
data-param="{type:'项目状态'}" >
|
<option value=''>请选择项目状态</option>
|
</select>
|
|
|
|
|
|
<div class="Validform_checktip"></div>
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
<label class="col-sm-2 control-label">售价<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3">
|
<input autocomplete="off" th:value="${obj?.sealPice}" class="form-control" name="sealPice"
|
id="sealPice" dataType="price" nullmsg="请填写售价"
|
errormsg="售价可为两位小数的正数">
|
<div class="Validform_checktip"></div>
|
</div>
|
|
<label class="col-sm-2 control-label">参考价<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3">
|
<input autocomplete="off" th:value="${obj?.referencePice}" class="form-control"
|
name="referencePice" dataType="price" nullmsg="请填写参考价"
|
errormsg="参考价可为两位小数的正数">
|
<div class="Validform_checktip"></div>
|
</div>
|
</div>
|
|
|
<div class="form-group">
|
<label class="col-sm-2 control-label">销量</label>
|
<div class="col-sm-3" >
|
<input autocomplete="off" name="realSealCount" type="text" class="form-control"
|
th:value="${obj?.realSealCount}"
|
dataType="n" ignore="ignore" nullmsg="请填写销量" errormsg="请填写数字">
|
<div class="Validform_checktip"></div>
|
</div>
|
|
|
<label class="col-sm-2 control-label">是否单会员只买一次<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3">
|
<select class="form-control" name="isOnce" id="isOnce"
|
nullmsg="不能为空,请选择" dataType="*">
|
<option value=''>--请选择--</option>
|
<option value='是' th:selected="${obj?.isOnce == '是'}">是</option>
|
<option value='否' th:selected="${obj?.isOnce == '否'}">否</option>
|
</select>
|
<div class="Validform_checktip"></div>
|
</div>
|
</div>
|
<div class="form-group">
|
|
<label class="col-sm-2 control-label">分类<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3">
|
<select class="form-control select2" size="1" name="cateId"
|
id="parentId" dataType="*" nullmsg="请选择分类">
|
<option value="" selected="selected">--选择分类--</option>
|
</select>
|
<div class="Validform_checktip"></div>
|
</div>
|
|
<label class="col-sm-2 control-label">类型</label>
|
<div class="col-sm-3">
|
<input autocomplete="off" type="text" class="form-control" name="goodType"
|
th:value="${obj?.goodType}" id="goodType" readonly="readonly">
|
</div>
|
</div>
|
<div class="form-group">
|
<label class="col-sm-2 control-label">介绍</label>
|
<div class="col-sm-3">
|
<input autocomplete="off" type="text" class="form-control" name="introduction" maxlength="200"
|
dataType="*1-200" ignore="ignore" errormsg="介绍不能超过200字符"
|
th:value="${obj?.introduction}">
|
<div class="Validform_checktip"></div>
|
</div>
|
<label class="col-sm-2 control-label">自动下架时间</label>
|
<div class="col-sm-3">
|
<input autocomplete="off" type="text" class="form-control datetimepicker"
|
name="saleOffTime" readonly="readonly"
|
th:value="${#dates.format(obj?.saleOffTime, 'yyyy-MM-dd')}"
|
>
|
</div>
|
</div>
|
<div class="form-group">
|
<label class="col-sm-2 control-label">是否赠送<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3">
|
<select class="form-control" name="isPresent" id="isPresent"
|
nullmsg="不能为空,请选择" dataType="*">
|
<option value=''>--请选择--</option>
|
<option value='是' th:selected="${obj?.isPresent == '是'}">是</option>
|
<option value='否' th:selected="${obj?.isPresent == '否'}">否</option>
|
</select>
|
<div class="Validform_checktip"></div>
|
</div>
|
|
|
|
</div>
|
|
<div class="form-group">
|
<div class="validity" style="display: none">
|
<label class="col-sm-2 control-label">有效期(单位月)<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3 ">
|
<input autocomplete="off" type="text" class="form-control" name="validity"
|
ignore="ignore" dataType="*" nullmsg="有效期为必填" id="validity"
|
th:value="${obj?.validity}">
|
<div class="Validform_checktip"></div>
|
</div>
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
<div class="validity" style="display: none">
|
<label class="col-sm-2 control-label">是否为套餐卡<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3 ">
|
<select class="form-control" name="isCourse" onchange="changeCourse(this)" id="isCourse"
|
title="如果选套餐卡则必须填写,最大消耗次数"
|
nullmsg="不能为空请选择" dataType="*">
|
<option value='Y' th:selected="${obj?.isCourse == '是'}">是</option>
|
<option value='N' th:selected="${obj?.isCourse == '否'}">否</option>
|
</select>
|
<div class="Validform_checktip"></div>
|
</div>
|
</div>
|
<div id="carUseCountBox">
|
<label class="col-sm-2 control-label">最大消耗次数</label>
|
<div class="col-sm-3">
|
<input autocomplete="off" type="number" class="form-control" name="carUseCount"
|
dataType="n" data-toggle="tooltip" id="carUseCount" ignore='ignore' title="不填或者填0为不限次数"
|
placeholder="不填或者填0为不限次数"
|
th:value="${obj?.carUseCount}">
|
<div class="Validform_checktip"></div>
|
</div>
|
</div>
|
</div>
|
|
<div class="form-group">
|
<label class="col-sm-2 control-label">最大销售数量</label>
|
<div class="col-sm-3">
|
<input autocomplete="off" th:value="${obj?.carMaxSaleCount}" class="form-control" id="carMaxSaleCount"
|
name="carMaxSaleCount" data-toggle="tooltip"
|
title="销售数量为商品可销售的最大次数,数量为0则为无限制" dataType="n" nullmsg="请填写最大销售数量"
|
errormsg="数量为数字">
|
<div class="Validform_checktip"></div>
|
</div>
|
</div>
|
|
|
<!-- =====绑定商品和项目begin====== -->
|
<div id="warp1" th:if="${obj?.goodType ne '项目'}">
|
<div class="form-group">
|
<label class="col-sm-2 control-label">添加商品 <span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3">
|
<button class="btn btn-success btn-sm "
|
onclick="openPruductList()" type="button">添加
|
</button>
|
</div>
|
</div>
|
<div class="form-group">
|
<div class="col-sm-8 col-md-offset-2">
|
<table class="table table-striped table-hover table-bordered"
|
id="mgrid">
|
<thead>
|
<tr>
|
<th>序号</th>
|
<th>产品名称</th>
|
<th>产品类型</th>
|
<th>绑定价<span class="text-danger">*</span></th>
|
<th class="isShowNum">数量<span class="text-danger">*</span></th>
|
<th class="isShowStatus">状态<span class="text-danger">*</span></th>
|
<th>操作</th>
|
</tr>
|
</thead>
|
<tbody id="cpId1">
|
|
</tbody>
|
|
</table>
|
</div>
|
</div>
|
</div>
|
|
|
<div id="warp2" th:if="${obj?.goodType ne '家居产品'}">
|
<div class="form-group">
|
<label class="col-sm-2 control-label">添加项目<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-3">
|
<button class="btn btn-success btn-sm" onclick="openProjList()"
|
type="button">添加
|
</button>
|
</div>
|
</div>
|
<div class="form-group">
|
<div class="col-sm-8 col-md-offset-2" id="projBox">
|
<table class="table table-striped table-hover table-bordered"
|
id="mgrid">
|
<thead>
|
<tr>
|
<th>序号</th>
|
<th>项目名称</th>
|
<th>项目类型</th>
|
<th width="140px" class="isShowNum">绑定价<span
|
class="text-danger">*</span></th>
|
<th width="140px" class="isShowNum">次数<span
|
class="text-danger">*</span></th>
|
<th width="140px" class="isShowNum">单次扣减次数<span
|
class="text-danger">*</span></th>
|
<th>操作</th>
|
</tr>
|
</thead>
|
<tbody id="projId">
|
|
</tbody>
|
|
</table>
|
</div>
|
</div>
|
</div>
|
|
<!-- =====绑定商品和项目end===== -->
|
|
|
<div class="form-group">
|
<label class="col-sm-2 control-label">上传图片</label>
|
<div class="col-sm-4">
|
<input autocomplete="off" th:value="${obj?.img}" name="img" id="img"
|
class="form-control upload-input" type="text" /> <a
|
class="btn btn-primary radius upload-a">选择图片
|
</a>
|
</div>
|
</div>
|
|
<div class="form-group">
|
<label class="col-sm-2 control-label">详细描述</label>
|
<div class="col-sm-8">
|
<script style="width: 100%; height: 500px" id="mobileDetails"
|
name="artcontent" type="text/plain" th:utext="${obj?.description}"></script></div>
|
</div>
|
|
|
<div class="form-group ">
|
<div class="col-sm-12 text-center">
|
<button onclick="myForm.submit()" class="btn btn-success radius">保存</button>
|
<a href="javascript:;"
|
onclick="MTools.closeForm()" class="btn btn-danger radius">取消</a>
|
</div>
|
</div>
|
|
</form>
|
|
|
</div>
|
|
|
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
|
<script th:inline="javascript">
|
MUI.initImgUpload(".upload-input");
|
var mobileEditor = UE.getEditor('mobileDetails');
|
|
var obj =/*[[${obj}]]*/
|
|
//定义一个标记记录是否选择了套餐卡
|
var isCourse = true;
|
|
//改变是否为套餐卡
|
function changeCourse(node) {
|
if ($(node).val() == 'N') {
|
isCourse = false;
|
$("#carUseCountBox").hide();
|
} else {
|
isCourse = true;
|
$("#carUseCountBox").show();
|
}
|
}
|
|
|
$(".select2").select2({
|
'width': '100%'
|
});
|
$(function () {
|
$("[data-toggle='tooltip']").tooltip();
|
})
|
var goodsAttr = '';
|
//已选择的产品集合
|
var totalGoods = [];
|
//已选择的项目集合
|
var totalProducts = [];
|
//表单js对象
|
var myForm = null;
|
//富文本编辑器对象
|
//var editor=null;
|
//定义是否可以编辑
|
var temp =true;
|
$(function () {
|
|
|
//改变标题
|
parent.layer.title("新增" + $.query.get('goodType'), parent.layer
|
.getFrameIndex(window.name));
|
|
//初始化时间格式
|
var initParam = {
|
format: "yyyy-mm-dd", //默认显示年与日,如果想显示十分秒:"yyyy-mm-dd hh:ii:ss"
|
minView: "2", //"month",只显示年月日的选择,不会再跳转去选择时分秒;如果想要选择时分秒的:"hour"
|
|
};
|
MTools.ininDatetimepicker(initParam);
|
//初始化select
|
MTools.autoFullSelect({
|
selecteder: ".selectFlag"
|
});
|
console.log("自动填充");
|
readInitData();
|
writeDate();
|
writeProjDate();
|
//初始化类型
|
initGoodAttr();
|
myForm = MForm.initForm({
|
beforeSubmit: function () {
|
|
|
//是否绑定明细
|
var bodyTrs = $("#cpId1").find("tr");
|
var bodyTrs2 = $("#projId").find("tr");
|
if (bodyTrs.length == 0 && bodyTrs2.length == 0) {
|
layer.msg("请添加明细", {
|
icon: 2
|
});
|
return false;
|
}
|
var flag = false;
|
//非疗程卡则必须填写项目绑定次数
|
console.log('$("#isCourse").val()==' + $("#isCourse").val())
|
if ($("#isCourse").val() == 'N') {
|
$(".projNumber").each(function () {
|
if ($(this).val() == null || $(this).val() == '') {
|
layer.msg("普通套餐必须填写项目绑定次数", {icon: 2});
|
flag = true;
|
}
|
});
|
}
|
if (flag) {
|
return false;
|
}
|
|
|
},
|
invokeUrl: basePath + "/admin/shoppinggoods/addOrModify",
|
afterSubmit: function () {
|
parent.myGrid.serchData();
|
},
|
});
|
|
|
//初始化商城产品类型列表
|
initFunctionList();
|
});
|
|
function readInitData() {
|
//初始化库存列表
|
var projItemsL =/*[[${obj?.assembleGoods}]]*/
|
if (projItemsL) {
|
totalGoods=projItemsL;
|
}
|
|
|
var assembleProj =/*[[${obj?.assembleProj}]]*/
|
if (assembleProj) {
|
for (var i = 0; i < assembleProj.length; i++) {
|
var projItem = assembleProj[i];
|
var proj = projItem.projInfo;
|
if (proj != null && proj != '') {
|
var projInfo = new Object();
|
var obj = new Object();
|
//项目本身的属性
|
obj.projName = projItem.name;
|
obj.projTypeName = projItem.projInfo.projTypeName;
|
obj.id = projItem.projInfo.id;
|
//组合信息
|
obj.assembleId = projItem.id;
|
//商品id
|
obj.shoppingGoodsId = projItem.shoppingGoodsId;
|
//项目次数
|
obj.total = projItem.total;
|
//绑定价
|
obj.price = projItem.price;
|
//单次扣减数量
|
obj.deductionNum = projItem.deductionNum;
|
console.log(obj);
|
totalProducts[i] = obj;
|
}
|
}
|
}
|
}
|
|
function changeGoodType(type) {
|
if (type == '家居产品') {
|
$(".isShowNum").hide();
|
$(".isShowStatus").show();
|
$("#warp1").show();
|
$("#warp2").hide();
|
goodsAttr = type;
|
}
|
if (type == '项目') {
|
$(".isShowNum").hide();
|
$("#warp2").show();
|
$("#warp1").hide();
|
}
|
if (type == '套餐') {
|
$("#warp2").show();
|
$("#warp1").show();
|
$(".isShowNum").show();
|
$(".isShowStatus").hide();
|
goodsAttr = '家居产品';
|
//如果是套餐有有效期,且做数据验证,不为空
|
$(".validity").show();
|
$(".validity").attr("ignore", "");
|
}
|
$("#goodType").val(type);
|
}
|
|
function openPruductList() {
|
var shopName = "总店";
|
var type = $("#goodType").val();
|
if (type == '') {
|
layer.msg("请选择类型", {
|
icon: 2
|
});
|
return false;
|
}
|
layer.full(layer
|
.open({
|
type: 2,
|
title: "选择产品",
|
area: [MUI.SIZE_L, '400px'],
|
content: [basePath + '/admin/redirect/hive/products/select-sku-list']
|
}));
|
}
|
|
//添加产品回调
|
function callback(arr) {
|
removeDouble(arr, totalGoods);
|
writeDate();
|
}
|
|
//删除选中的元素
|
function delSelectItem(node, id) {
|
//根据列表的id找到元素相应下表的元素
|
for (var i = 0; i < totalGoods.length; i++) {
|
if (totalGoods[i].id == id) {
|
totalGoods.splice(i, 1);
|
break;
|
|
}
|
}
|
//移除tr
|
$(node).closest('tr').remove();
|
$("#cpId1").find("tr").each(function (i) {
|
$(this).find("td").eq(0).html(i + 1);
|
});
|
calculateTotalPrice();
|
}
|
|
//填写数据到html
|
function writeDate() {
|
var html = "";
|
var flagType = $("#goodType").val();
|
for (var i = 0; i < totalGoods.length; i++) {
|
if (!totalGoods[i].price) {
|
totalGoods[i].price = "";
|
}
|
if (!totalGoods[i].assembleId) {
|
totalGoods[i].assembleId = "";
|
}
|
if (!totalGoods[i].total) {
|
totalGoods[i].total = "";
|
}
|
var select = '<select class="form-control autoFull" name="assembleGoods[' + i + '].status" nullmsg="状态不能为空" dataType="*"'
|
+ 'data-filed="name" data-value="name" data-def="' + totalGoods[i].status + '" data-url=' + basePath + '/admin/dataDictionary/showDataDictionary'
|
+ ' data-param="{type:\'产品状态\'}"><option value="">--请选择产品状态--</option> </select>'
|
+ '<div class="Validform_checktip"></div>';
|
html += '<tr>'
|
+ '<td>'
|
+ (i + 1)
|
+ '</td>'
|
+ '<td>'
|
+ totalGoods[i].goods.name
|
+ '<input autocomplete="off" type="hidden" name="assembleGoods[' + i + '].id" value="' + totalGoods[i].assembleId + '"> <input autocomplete="off" type="hidden" name="assembleGoods[' + i + '].assembleSkuId" value="' + totalGoods[i].goods.id + '"></td>'
|
+ '<td>'
|
+ totalGoods[i].goods.goodsSortName
|
+ '</td>'
|
+ '<td><input autocomplete="off" onblur="calculateTotalPrice()" min="1" maxlength="8" datatype="price" id="p' + i + '" nullmsg="绑定价不能为空" errormsg="请填写正数可为两位小数" class="form-control skuItems" name="assembleGoods['
|
+ i + '].price" value="' + totalGoods[i].price
|
+ '"><div class="Validform_checktip"></div></td>'
|
if (flagType == '套餐') {
|
html += '<td class="isShowNum" ><input autocomplete="off" onblur="calculateTotalPrice()" datatype="n" type="number" maxlength="8" errormsg="请填写正数" id="c' + i + '" nullmsg="数量不能为空" class="form-control " name="assembleGoods[' + i + '].total" value="' + totalGoods[i].total + '"><div class="Validform_checktip"></div></td>';
|
}
|
if (flagType == '家居产品') {
|
//显示状态,且数量默认为1
|
html += '<td>'
|
+ select
|
+ '<input autocomplete="off" type="hidden" name="assembleGoods[' + i + '].total" value="1"></td>';
|
}
|
if (totalGoods[i].assembleId == null || totalGoods[i].assembleId == '' || temp) {
|
html += '<td class="center"><a style="text-decoration: none" class="fa fa-trash" onClick="delSelectItem(this,'
|
+ totalGoods[i].id
|
+ ')" href="javascript:;" title="删除"></a></td>';
|
} else {
|
html += '<td class="center"></td>';
|
}
|
|
html += '</tr>';
|
}
|
$("#cpId1").html(html);
|
MTools.autoFullSelect();
|
}
|
|
//-------------------------去重方法-begin---------------------------------
|
|
//赋值或者去重复
|
function removeDouble(arr, srcArr) {
|
console.log("arr:" + arr);
|
console.log(arr);
|
console.log("srcArr:" + srcArr);
|
console.log(srcArr);
|
|
if(goodsAttr=='家居产品'){
|
var obj = new Object();
|
obj.goods = arr[0];
|
srcArr[0] = obj;
|
return;
|
}
|
|
if (srcArr == null) {
|
for (var i = 0; i < arr.length; i++) {
|
var obj = new Object();
|
obj.goods = arr[i];
|
srcArr[srcArr.length] = obj;
|
}
|
} else {
|
for (var i = 0; i < arr.length; i++) {
|
//去重
|
var isDouble = false;
|
for (var j = 0; j < srcArr.length; j++) {
|
if (arr[i].id == srcArr[j].id) {
|
isDouble = true;
|
break;
|
}
|
}
|
//如果不重复
|
if (!isDouble) {
|
var obj = new Object();
|
obj.goods = arr[i];
|
srcArr[srcArr.length] = obj;
|
}
|
}
|
}
|
}
|
|
//赋值或者去重复
|
function removeDoubleProj(arr, srcArr) {
|
if (srcArr == null) {
|
srcArr = arr;
|
} else {
|
for (var i = 0; i < arr.length; i++) {
|
//去重
|
var isDouble = false;
|
for (var j = 0; j < srcArr.length; j++) {
|
if (arr[i].id == srcArr[j].id) {
|
isDouble = true;
|
break;
|
}
|
}
|
//如果不重复
|
if (!isDouble) {
|
srcArr[srcArr.length] = arr[i];
|
}
|
}
|
}
|
}
|
|
function initGoodAttr() {
|
var getGoodsAttr = $.query.get('goodType');
|
var goodType = obj?obj.goodType:"";
|
if (goodType != '') {
|
changeGoodType(goodType);
|
} else {
|
changeGoodType(getGoodsAttr);
|
}
|
}
|
|
//-------------------------公共的去重方法-end---------------------------------
|
|
//---------------------------------项目-----------------------------------
|
function openProjList() {
|
var type = $("#goodType").val();
|
if (type == '') {
|
layer.msg("请选择类型", {
|
icon: 2
|
});
|
return false;
|
}
|
layer.full(layer
|
.open({
|
type: 2,
|
title: "选择项目",
|
maxmin: true,
|
area: [MUI.SIZE_L, '400px'],
|
content: [basePath + '/admin/redirect/hive/products/select-proj-list?type='
|
+ type]
|
}));
|
}
|
|
//回调
|
function callbackProj(arr) {
|
//如果类型为项目的话只能添加一个,因此每次添加都会清楚原来的数据
|
var type = $("#goodType").val();
|
if (type == '项目') {
|
if (totalProducts.length > 0 && (arr[0].id != totalProducts[0].id)) {
|
totalProducts = [];
|
}
|
}
|
removeDoubleProj(arr, totalProducts);
|
writeProjDate();
|
}
|
|
//写项目到表格
|
|
function writeProjDate() {
|
var html = "";
|
var flagType = $("#goodType").val();
|
//更新的话,不给出删除列
|
/* var flagId="${obj.id}"; */
|
for (var i = 0; i < totalProducts.length; i++) {
|
if (!totalProducts[i].total) {
|
totalProducts[i].total = "";
|
}
|
if (!totalProducts[i].assembleId) {
|
totalProducts[i].assembleId = "";
|
}
|
if (!totalProducts[i].price) {
|
totalProducts[i].price = "";
|
}
|
if (!totalProducts[i].projTypeName) {
|
totalProducts[i].projTypeName = "";
|
}
|
if (!totalProducts[i].deductionNum) {
|
totalProducts[i].deductionNum = "1";
|
}
|
html += '<tr>'
|
+ '<td>'
|
+ (i + 1)
|
+ '</td>'
|
+ '<td>'
|
+ totalProducts[i].projName
|
+ '<input autocomplete="off" type="hidden" name="assembleProj[' + i + '].id" value="' + totalProducts[i].assembleId + '"> <input autocomplete="off" type="hidden" name="assembleProj[' + i + '].assembleProjId" value="' + totalProducts[i].id + '"></td>'
|
+ '<td>' + totalProducts[i].projTypeName + '</td>';
|
if (flagType == '套餐') {
|
html += '<td><input autocomplete="off" onblur="calculateTotalPrice()" maxlength="8" datatype="price" nullmsg="绑定价不能为空" id="a' + i + '" errormsg="请填写正数可为两位小数" class="form-control projItem" name="assembleProj['
|
+ i
|
+ '].price" value="'
|
+ totalProducts[i].price
|
+ '"> <div class="Validform_checktip"></div></td>'
|
+ '<td><input autocomplete="off" onblur="calculateTotalPrice()" datatype="n" type="number" maxlength="8" nullmsg="数量不能为空" ignore="ignore" errormsg="请填写正数" id="n' + i + '" class="form-control projNumber" name="assembleProj[' + i + '].total" value="' + totalProducts[i].total + '"> <div class="Validform_checktip"></div></td>'
|
+ '<td><input autocomplete="off" datatype="n" type="number" maxlength="8" nullmsg="扣减数量不能为空" ignore="ignore" errormsg="请填写正数" id="m' + i + '" class="form-control projNumber" name="assembleProj[' + i + '].deductionNum" value="' + totalProducts[i].deductionNum + '"> <div class="Validform_checktip"></div></td>';
|
;
|
}
|
|
if (totalProducts[i].assembleId == null || totalProducts[i].assembleId == '' || temp) {
|
html += '<td class="center" ><a style="text-decoration: none" class="fa fa-trash" onClick="delSelectProjItem(this,'
|
+ totalProducts[i].id
|
+ ')" href="javascript:;" title="删除"></a></td>'
|
} else {
|
html += '<td class="center"></td>';
|
}
|
|
|
/* if(flagId==''){ */
|
|
/* } */
|
html += '</tr>'
|
}
|
$("#projId").html(html);
|
}
|
|
function delSelectProjItem(node, id) {
|
// 根据列表的项目的id找到元素相应下表的元素
|
for (var i = 0; i < totalProducts.length; i++) {
|
if (totalProducts[i].id == id) {
|
totalProducts.splice(i, 1);
|
break;
|
}
|
}
|
|
//移除tr
|
$(node).closest('tr').remove();
|
$("#projId").find("tr").each(function (i) {
|
$(this).find("td").eq(0).html(i + 1);
|
});
|
|
calculateTotalPrice();
|
}
|
|
/**
|
* 初始化商城产品类型:category列表
|
*/
|
function initFunctionList() {
|
$.AjaxProxy({
|
a: false,
|
c: false,
|
p: {
|
salePlatform: '线下'
|
}
|
}).invoke(basePath + "/admin/shoppinggoodscategory/all", function (loj) {
|
$("#parentId").createSelectTree(loj.attr("result").rows, {
|
append: true,
|
value: "name",
|
defaultValue: obj ? obj.cateId : ""
|
});
|
});
|
|
}
|
|
//自动计算总价
|
function calculateTotalPrice() {
|
var type = $("#goodType").val();
|
if (type == '套餐') {
|
var totalMoney = Number(0);
|
//计算绑定的商品总价
|
$(".skuItems").each(function (i) {
|
var index = $(this).attr("id").substring(1, 2);
|
console.log("index=" + index);
|
var p = $(this).val();
|
var c = $("#c" + index).val();
|
console.log("c=" + c);
|
if (p != '' && c != '') {
|
//totalMoney=parseFloat(totalMoney)+parseFloat(p);
|
totalMoney = accAdd(parseFloat(totalMoney), parseFloat(accMul(p, c)));
|
console.log("total=" + totalMoney);
|
}
|
});
|
//计算套餐项目总价
|
//计算绑定的商品总价
|
$(".projItem").each(function (i) {
|
var index = $(this).attr("id").substring(1, 2);
|
var p = $(this).val();
|
var c = $("#n" + index).val();
|
if (p != '' && c != '') {
|
//totalMoney=parseFloat(totalMoney).add(parseFloat(p));
|
totalMoney = accAdd(parseFloat(totalMoney), parseFloat(accMul(p, c)));
|
}
|
});
|
$("#sealPice").val(totalMoney);
|
console.log("totalMoney=" + totalMoney);
|
}
|
}
|
</script>
|
</body>
|
</html>
|