帆布新增旗杆

This commit is contained in:
2026-03-31 14:37:41 +08:00
vanhempi f8374b1be3
commit 64e2c7062d
3 muutettua tiedostoa jossa 357 lisäystä ja 317 poistoa
@@ -4417,8 +4417,12 @@ public class ProductService {
return priceList; return priceList;
case "帆布": case "帆布":
priceList = new PriceUtils().getFbPrice(dto, number, width, length, count, priceList); priceList = new PriceUtils().getFbPrice(dto, number, width, length, count, priceList);
List<String> carftList = dto.getCraft() == null ? new ArrayList<>() : Arrays.asList(dto.getCraft());
for (Product product : priceList) { for (Product product : priceList) {
if (product.getCount() != null && number != null) { if (product.getCount() != null && number != null) {
if (carftList.contains("伸缩杆70-120CM")) {
product.setPrice(product.getPrice() + 2 * Math.max(dto.getPcount(), 1));
}
product.setWeight(df.format(0.28 * width * length * product.getCount() / 10000 * number)); product.setWeight(df.format(0.28 * width * length * product.getCount() / 10000 * number));
} }
} }
@@ -3692,7 +3692,7 @@ public class PriceUtils {
if (area < 7.5) { if (area < 7.5) {
basePrice = 90; basePrice = 90;
} else { } else {
basePrice = 70; basePrice = 80;
} }
return Math.max(Math.ceil(area * basePrice * 1.2), 50); return Math.max(Math.ceil(area * basePrice * 1.2), 50);
+342 -306
Näytä tiedosto
@@ -1,330 +1,366 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Insert title here</title> <title>Insert title here</title>
<%@include file="/views/common.jsp"%> <%@include file="/views/common.jsp" %>
</head> </head>
<body> <body>
<div class="big_box"> <div class="big_box">
<div class="left_div"> <div class="left_div">
<h1 class="h1">帆布</h1> <span style="color:red;font-weight:700;"></span> <h1 class="h1">帆布</h1> <span style="color:red;font-weight:700;"></span>
<hr> <hr>
<form class="layui-form"> <form class="layui-form">
<input type="hidden" name="proTypeValue" id="proTypeValue" class="layui-input" value="帆布" /> <input type="hidden" name="proTypeValue" id="proTypeValue" class="layui-input" value="帆布"/>
<div class="layui-form-item"> <div class="layui-form-item">
<input type="radio" lay-filter="stickerKind" name="stickerKind" value="常规" title="常规" checked="checked"> <input type="radio" lay-filter="stickerKind" name="stickerKind" value="常规" title="常规" checked="checked">
<input type="radio" lay-filter="stickerKind" name="stickerKind" value="套餐" title="套餐"> <input type="radio" lay-filter="stickerKind" name="stickerKind" value="套餐" title="套餐">
</div> </div>
<p> <p>
材质 材质
</p> </p>
<div class="layui-form-item"> <div class="layui-form-item">
<select name="ui_fb_name" id="ui_fb_name" lay-filter="ui_fb_name" class="select" lay-search> <select name="ui_fb_name" id="ui_fb_name" lay-filter="ui_fb_name" class="select" lay-search>
<option value="1">露营布</option> <option value="1">露营布</option>
<option value="2">摆摊布</option> <option value="2">摆摊布</option>
</select> </select>
</div> </div>
<div class="ui_normal"> <div class="ui_normal">
<p> <p>
尺寸(CM/厘米) <span style="font-size:14px;color:red">输入格式: 长 * 宽 </span> 尺寸(CM/厘米) <span style="font-size:14px;color:red">输入格式: 长 * 宽 </span>
<input type="checkbox" name="switchSize" class="switchSizeCoupon" lay-filter="switchSizeCoupon" title="自定义尺寸" lay-skin="primary"> <input type="checkbox" name="switchSize" class="switchSizeCoupon" lay-filter="switchSizeCoupon" title="自定义尺寸" lay-skin="primary">
</p> </p>
<div class="layui-form-item ui_size"> <div class="layui-form-item ui_size">
<select name="size" id="ui_size" class="select"> <select name="size" id="ui_size" class="select">
<option value="100*45">100*45</option> <option value="100*45">100*45</option>
<option value="45*45">45*45</option> <option value="45*45">45*45</option>
</select> </select>
</div> </div>
<span class="ui_zdy_size" style="display:none"> <span class="ui_zdy_size" style="display:none">
<input type="text" id="ui_zdy_size" placeholder="格式:长*宽" class="layui-input" autocomplete="off"> <input type="text" id="ui_zdy_size" placeholder="格式:长*宽" class="layui-input" autocomplete="off">
</span> </span>
<p> <p>
数量(个) 数量(个)
</p> </p>
<div class="layui-form-item"> <div class="layui-form-item">
<input type="text" placeholder="请输入整数" autocomplete="off" name="count" class="layui-input" id="count"> <input type="text" placeholder="请输入整数" autocomplete="off" name="count" class="layui-input" id="count">
</div> </div>
<p> <p>
款数 款数
</p> </p>
<div class="layui-form-item"> <div class="layui-form-item">
<input type="text" placeholder="请输入整数" autocomplete="off" name="number" id="number" value="1" class="layui-input" lay-verify="number"> <input type="text" placeholder="请输入整数" autocomplete="off" name="number" id="number" value="1" class="layui-input"
</div> lay-verify="number">
</div> </div>
<p> </div>
客户旺旺 <p>
</p> 客户旺旺
<div class="layui-form-item"> </p>
<input type="text" placeholder="请输入客户旺旺号" autocomplete="off" name="wangwang" id="wangwang" class="layui-input"> <div class="layui-form-item">
</div> <input type="text" placeholder="请输入客户旺旺号" autocomplete="off" name="wangwang" id="wangwang" class="layui-input">
<p> </div>
工艺<span style="font-size:14px;color:red">木棍长度50cm</span> <p>
</p> 工艺<span style="font-size:14px;color:red">木棍长度50cm</span>
<div class="layui-form-item"> </p>
<input type="checkbox" name="craft" value="封边" title="封边" lay-filter="craft"> <div class="layui-form-item">
<div class="layui-inline ui_feb" style="width:100px;display:none"> <div class="layui-input-block">
<select name="fb" class="select fb" lay-filter="fb"> 工艺:
<option value="1" selected>上封边</option> <input type="checkbox" name="craft" value="封边" title="封边" lay-filter="craft">
<option value="2">下封边</option> <div class="layui-inline ui_feb" style="width:100px;display:none">
<option value="3">左封边</option> <select name="fb" class="select fb" lay-filter="fb">
<option value="4">右封边</option> <option value="1" selected>上封边</option>
<option value="5">下封边</option> <option value="2">下封边</option>
<option value="6">左封边</option> <option value="3">左封边</option>
</select> <option value="4">右封边</option>
</div> <option value="5">上下封边</option>
<input type="checkbox" name="craft" value="四角打孔" title="四角打孔" lay-filter="craft"> <option value="6">左右封边</option>
<input type="checkbox" name="craft" value="净裁" title="净裁" lay-filter="craft"> </select>
<input type="checkbox" name="craft" value="吊耳" title="吊耳" lay-filter="craft"> </div>
<span class="ui_normal"> <input type="checkbox" name="craft" value="四角打孔" title="四角打孔" lay-filter="craft">
<input type="checkbox" name="craft" value="净裁" title="净裁" lay-filter="craft">
<input type="checkbox" name="craft" value="吊耳" title="吊耳" lay-filter="craft">
<span class="ui_normal">
<input type="checkbox" name="craft" value="缝兜" title="缝兜" lay-filter="craft"> <input type="checkbox" name="craft" value="缝兜" title="缝兜" lay-filter="craft">
</span> </span>
<input type="checkbox" name="craft" value="木棍" title="木棍" lay-filter="craft"> </div>
</div> <div class="layui-input-block">
<hr> 配件:
<div class="layui-form-item"> <input type="checkbox" name="craft" value="木棍" title="木棍" lay-filter="craft">
<button class="layui-btn" lay-submit="" lay-filter="acount_btn">计算</button> <input type="checkbox" name="craft" value="伸缩杆70-120CM" title="伸缩杆70-120CM" lay-filter="craft">
<button type="reset" class="layui-btn layui-btn-primary">重置</button> <div class="layui-inline ui_shensuo" style="width:100px;display:none">
</div> <input name="pcount" class="layui-input" value="1"/>
<h2>计算结果-<button type="button" class="layui-btn layui-btn-primary layui-btn-sm copyResult" onclick="copyResult()">点击复制</button></h2> </div>
<div> </div>
<textarea rows="11" cols="75" id="span_result" readonly="readonly"></textarea> </div>
<%@include file="../acountExpressFee.jsp"%> <hr>
</div> <div class="layui-form-item">
<div > <button class="layui-btn" lay-submit="" lay-filter="acount_btn">计算</button>
<table class="layui-hide" id="priceTable" lay-filter="priceTable"></table> <button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div> </div>
</form> <h2>计算结果-
</div> <button type="button" class="layui-btn layui-btn-primary layui-btn-sm copyResult" onclick="copyResult()">点击复制</button>
<div class="right_div" style="margin-left:50px;"> </h2>
<div class="layui-carousel" id="test1"> <div>
<div carousel-item id="carousel"></div> <textarea rows="11" cols="75" id="span_result" readonly="readonly"></textarea>
<br> <%@include file="../acountExpressFee.jsp" %>
<div id="remark" style="font-size:20px;color:red"></div> </div>
</div> <div>
</div> <table class="layui-hide" id="priceTable" lay-filter="priceTable"></table>
</div> </div>
</form>
</div>
<div class="right_div" style="margin-left:50px;">
<div class="layui-carousel" id="test1">
<div carousel-item id="carousel"></div>
<br>
<div id="remark" style="font-size:20px;color:red"></div>
</div>
</div>
</div>
</body> </body>
<%@include file="/views/copyResult.jsp"%> <%@include file="/views/copyResult.jsp" %>
<script> <script>
layui.use(['table','form','carousel'], function(){ layui.use(['table', 'form', 'carousel'], function () {
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功 var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
var carousel = layui.carousel; var carousel = layui.carousel;
var table = layui.table; var table = layui.table;
//建造实例 //建造实例
ins = carousel.render({}); ins = carousel.render({});
var html = " "; var html = " ";
var remark = " "; var remark = " ";
// 清空轮播图 // 清空轮播图
$("#carousel").empty(); $("#carousel").empty();
$("#remark").empty(); $("#remark").empty();
$.ajax({ $.ajax({
url:"${pageContext.request.contextPath}/getImgs", url: "${pageContext.request.contextPath}/getImgs",
type:"GET", type: "GET",
data:{ data: {
proTypeValue : $("#proTypeValue").val(), proTypeValue: $("#proTypeValue").val(),
kindValue : $('input[name="kindValue"]').val() kindValue: $('input[name="kindValue"]').val()
}, },
success : function(result) { success: function (result) {
for (let i = 0; i < result.length; i++) { for (let i = 0; i < result.length; i++) {
// 只留一个remark // 只留一个remark
remark = ""; remark = "";
html += '<div><img style="width:'+result[0].imgWidth+'px" src="' +result[i].imgUrl+ '"></div>'; html += '<div><img style="width:100%;height: 100%;object-fit: contain" src="' + result[i].imgUrl + '"></div>';
remark += '<div><span>' +result[i].remark+ '<span/></div>'; remark += '<div><span>' + result[i].remark + '<span/></div>';
} }
$("#carousel").append(html); $("#carousel").append(html);
// 如果没有说明,就不显示null // 如果没有说明,就不显示null
if(remark.indexOf("null") < 0){ if (remark.indexOf("null") < 0) {
$("#remark").append(remark); $("#remark").append(remark);
} }
// 如果没有轮播图就隐藏 // 如果没有轮播图就隐藏
if(result.length == 0){ if (result.length == 0) {
document.getElementById("test1").style.display = "none"; //隐藏 document.getElementById("test1").style.display = "none"; //隐藏
}else{ } else {
document.getElementById("test1").style.display = "block"; //显示 document.getElementById("test1").style.display = "block"; //显示
ins.reload({ ins.reload({
elem: '#test1', elem: '#test1',
width: result[0].imgWidth, //设置容器宽度 width: result[0].imgWidth, //设置容器宽度
height: result[0].imgHeight height: result[0].imgHeight
}); });
} }
} }
}); });
// 自定义尺寸 // 自定义尺寸
form.on('checkbox(switchSizeCoupon)', function(data) { form.on('checkbox(switchSizeCoupon)', function (data) {
if(data.elem.checked){ if (data.elem.checked) {
$('.switchSizeCoupon').val("on") $('.switchSizeCoupon').val("on")
$(".ui_zdy_size").show(); $(".ui_zdy_size").show();
$("#ui_zdy_size").attr("name","size"); $("#ui_zdy_size").attr("name", "size");
$(".ui_size").hide(); $(".ui_size").hide();
$("#ui_size").attr("name",""); $("#ui_size").attr("name", "");
$(".ui_zdy_size").find(":input").attr("disabled", false); $(".ui_zdy_size").find(":input").attr("disabled", false);
$(".ui_size").find(":input").attr("disabled", true); $(".ui_size").find(":input").attr("disabled", true);
} else { } else {
$('.switchSizeCoupon').val("off") $('.switchSizeCoupon').val("off")
$(".ui_size").show(); $(".ui_size").show();
$("#ui_size").attr("name","size"); $("#ui_size").attr("name", "size");
$(".ui_zdy_size").hide(); $(".ui_zdy_size").hide();
$("#ui_zdy_size").attr("name",""); $("#ui_zdy_size").attr("name", "");
$(".ui_size").find(":input").attr("disabled", false); $(".ui_size").find(":input").attr("disabled", false);
$(".ui_zdy_size").find(":input").attr("disabled", true); $(".ui_zdy_size").find(":input").attr("disabled", true);
// 恢复标准数量的时候会被禁用,加这个解决 // 恢复标准数量的时候会被禁用,加这个解决
form.render(); form.render();
} }
}); });
form.on('checkbox(craft)', function(data){ form.on('checkbox(craft)', function (data) {
if($("input[name='craft']:checked").val() == "封边"){ let craft_list = [];
$(".ui_feb").show(); craft_list.push($("select[name='craft'] option:selected").val());
$(".ui_feb select").attr("disabled", false); $("input[name='craft']:checked").each(function () {
}else{ if (!$(this).is(':disabled')) {
$(".ui_feb").hide(); craft_list.push($(this).val());
$(".ui_feb select").attr("disabled", true); }
} }
form.render(); );
}); if ($("input[name='craft']:checked").val() == "封边") {
$(".ui_feb").show();
$(".ui_feb select").attr("disabled", false);
} else {
$(".ui_feb").hide();
$(".ui_feb select").attr("disabled", true);
}
if (craft_list.includes("伸缩杆70-120CM")) {
$(".ui_shensuo").show();
} else {
$(".ui_shensuo").hide();
}
form.render();
});
form.on('radio(stickerKind)', function(data) { form.on('radio(stickerKind)', function (data) {
if(data.value == "常规"){ if (data.value == "常规") {
$(".ui_normal").show(); $(".ui_normal").show();
$(".ui_normal").find(":input").attr("disabled", false); $(".ui_normal").find(":input").attr("disabled", false);
}else{ } else {
$(".ui_normal").hide(); $(".ui_normal").hide();
$(".ui_normal").find(":input").attr("disabled", true); $(".ui_normal").find(":input").attr("disabled", true);
} }
form.render('radio'); form.render('radio');
}); });
// 点击计算,计算价格 // 点击计算,计算价格
form.on('submit(acount_btn)', function(data) { form.on('submit(acount_btn)', function (data) {
var number= $("#number").val(); var number = $("#number").val();
var size = $("#size").val(); var size = $("#size").val();
var count = $("#count").val(); var count = $("#count").val();
var kind = $("#kindValue option:selected").text(); var kind = $("#kindValue option:selected").text();
var craft = $("input[name='craft']:checked").val(); var craft = $("input[name='craft']:checked").val();
var stickerKind = $("input[name='stickerKind']:checked").val(); var stickerKind = $("input[name='stickerKind']:checked").val();
if($("input[name='switchSize']:checked").val() == "on"){ if ($("input[name='switchSize']:checked").val() == "on") {
if($("#ui_zdy_size").val().split("*")[0] < 25 || $("#ui_zdy_size").val().split("*")[1] < 25){ if ($("#ui_zdy_size").val().split("*")[0] < 25 || $("#ui_zdy_size").val().split("*")[1] < 25) {
layer.msg('帆布最小尺寸25*25cm',{offset:['300px','300px']},function(){}); layer.msg('帆布最小尺寸25*25cm', {offset: ['300px', '300px']}, function () {
return false; });
} return false;
if($("#ui_zdy_size").val().split("*")[0] > 140 && $("#ui_zdy_size").val().split("*")[1] > 140){ }
layer.msg('帆布尺寸超过140cm需要拼接!',{offset:['300px','300px']},function(){}); if ($("#ui_zdy_size").val().split("*")[0] > 140 && $("#ui_zdy_size").val().split("*")[1] > 140) {
} layer.msg('帆布尺寸超过140cm需要拼接!', {offset: ['300px', '300px']}, function () {
} });
var craft = []; }
$("input:checkbox[name='craft']:checked").each(function(i) { }
// 没有被禁用的工艺加到arr中 var craft = [];
if(!$(this).is(':disabled')){ $("input:checkbox[name='craft']:checked").each(function (i) {
craft.push($(this).val()); // 没有被禁用的工艺加到arr中
} if (!$(this).is(':disabled')) {
}); if ($(this).val() == "伸缩杆70-120CM") {
if(stickerKind == "常规"){ craft.push($("input[name='pcount']").val() + "个" + $(this).val())
if(!count){ } else {
layer.msg('请填写数量!',{offset:['300px','300px']},function(){}); craft.push($(this).val())
return false; }
} }
} });
$.ajax({ if (stickerKind == "常规") {
url : "${path}/getThanSum", if (!count) {
type : "GET", layer.msg('请填写数量!', {offset: ['300px', '300px']}, function () {
data : $(".big_box form").serialize(), });
success : function(result) { return false;
if(result.code == 100){ }
layer.msg(result.msg,{offset:['300px','300px']},function(){}); }
return false; $.ajax({
} url: "${path}/getThanSum",
var data = result.data.proList; type: "GET",
if($("input[name='switchSize']:checked").val() == "on"){ data: $(".big_box form").serialize(),
size = $("#ui_zdy_size").val(); success: function (result) {
}else{ if (result.code == 100) {
size = $("#ui_size option:selected").val(); layer.msg(result.msg, {offset: ['300px', '300px']}, function () {
} });
var fb_name = $("#ui_fb_name option:selected").text(); return false;
}
var data = result.data.proList;
if ($("input[name='switchSize']:checked").val() == "on") {
size = $("#ui_zdy_size").val();
} else {
size = $("#ui_size option:selected").val();
}
var fb_name = $("#ui_fb_name option:selected").text();
if(craft == "封边" || craft == "打孔"){ if (craft == "封边" || craft == "打孔") {
craft = craft + "绳子"; craft = craft + "绳子";
} }
var span_result = '帆布 - ' + fb_name + '-' + craft + '-' ; var span_result = '帆布 - ' + fb_name + '-';
if(stickerKind == "套餐"){ if (stickerKind == "套餐") {
span_result += "套餐"+ data[0].price + "元\n150*60cm 2条\n130*60cm 2条\n"; span_result += "套餐" + data[0].price + "元\n150*60cm 2条\n130*60cm 2条\n";
}else{ span_result += "工艺:" + craft.join(",") + "\n"
span_result += size +' CM (同款内容)\n'; } else {
if(number > 1){ span_result += size + ' CM (同款内容)\n';
for (let i = 0; i < data.length; i++) { span_result += "工艺:" + craft.join(",") + "\n"
span_result += number + '款 各' + data[i].count + "条,共" + data[i].price + "元" + '\n' if (number > 1) {
data[i].number = number; for (let i = 0; i < data.length; i++) {
} span_result += number + '款 各' + data[i].count + "条,共" + data[i].price + "元" + '\n'
}else{ data[i].number = number;
for (let i = 0; i < data.length; i++) { }
span_result += number + '款 ' + data[i].count + "条,共" + data[i].price + "元" + '\n' } else {
data[i].number = number; for (let i = 0; i < data.length; i++) {
} span_result += number + '款 ' + data[i].count + "条,共" + data[i].price + "元" + '\n'
} data[i].number = number;
} }
span_result += '包邮,免费设计呢~(偏远地区需补邮费)' }
$("#span_result").val(span_result); }
span_result += '包邮,免费设计呢~(偏远地区需补邮费)'
$("#span_result").val(span_result);
//计算完自动复制文本 //计算完自动复制文本
var e=document.getElementById("span_result");//对象是content var e = document.getElementById("span_result");//对象是content
if (e.value != "") { if (e.value != "") {
e.select();//选择对象 e.select();//选择对象
document.execCommand("Copy");//执行浏览器复制命令 document.execCommand("Copy");//执行浏览器复制命令
} }
//生成表格 //生成表格
table.render({ table.render({
elem : '#priceTable', elem: '#priceTable',
even : true, //隔行变色 even: true, //隔行变色
data : data, // 赋值已知数据 data: data, // 赋值已知数据
width : 500, width: 500,
cols : [ [ cols: [[
{ {
field : 'number', field: 'number',
width : '12%', width: '12%',
align : "center", align: "center",
title : '款数' title: '款数'
},{ }, {
field : 'count', field: 'count',
width : '16%', width: '16%',
align : "center", align: "center",
title : '数量' title: '数量'
},{ }, {
field : 'price', field: 'price',
width : '16%', width: '16%',
align : "center", align: "center",
title : '报价' title: '报价'
},{ }, {
field : 'wangwang', field: 'wangwang',
align : "center", align: "center",
width : '16%', width: '16%',
title : '折扣价' title: '折扣价'
},{ }, {
field : 'wangwang', field: 'wangwang',
align : "center", align: "center",
width : '19%', width: '19%',
title : '跳楼价' title: '跳楼价'
},{ }, {
field : 'weight', field: 'weight',
width : '21%', width: '21%',
align : "center", align: "center",
title : '重量(kg' title: '重量(kg'
} }
] ], ]],
done: function () { done: function () {
} }
}); });
} }
}); });
return false; return false;
}); });
}); });
</script> </script>
</html> </html>