This commit is contained in:
2025-04-08 17:17:49 +08:00
parent 4d3b80fcc2
commit 8250ce13d1
7 changed files with 432 additions and 7 deletions
@@ -2073,6 +2073,9 @@ public class ProductService {
// 产品价格倍数 // 产品价格倍数
for (Product product : priceList) { for (Product product : priceList) {
product.setPrice(Math.ceil(product.getPrice() * product.getPriceMultiple())); product.setPrice(Math.ceil(product.getPrice() * product.getPriceMultiple()));
if ("菜单".equals(dto.getKind2Label())) {
product.setPrice(product.getPrice() + 10);
}
} }
// 工艺----如果有覆膜亮膜哑膜价格一致 // 工艺----如果有覆膜亮膜哑膜价格一致
+30 -2
View File
@@ -986,8 +986,36 @@ public class PriceUtils {
} }
if ("6".equals(kind)) { if ("6".equals(kind)) {
if ("".equals(kind2)) { if ("".equals(kind2)) {
double priceArr[] = {50, 34, 27, 27, 26, 25}; double price = 0;
list = acountTag600Price(area, count, priceArr, shengzi, flag, list); int[][] prices = {
{144, 148, 166, 188, 193, 210, 232, 249, 251, 273, 317, 392, 464, 476, 674, 1028, 1802},
{228, 238, 248, 255, 256, 258, 260, 268, 270, 278, 322, 397, 469, 481, 679, 1033, 1807},
{330, 345, 350, 380, 386, 390, 420, 428, 430, 465, 538, 665, 780, 800, 1108, 1665, 2920},
{480, 520, 530, 560, 568, 580, 591, 629, 633, 686, 791, 971, 1141, 1170, 1644, 2486, 4329},
{800, 820, 860, 870, 880, 900, 955, 1016, 1023, 1107, 1276, 1563, 1838, 1885, 2645, 3997, 6955},
{1400, 1430, 1450, 1527, 1560, 1690, 1852, 1969, 1982, 2145, 2470, 3022, 3549, 3640, 5102, 7702, 13390}
};
int[] count_list = {500, 1000, 2000, 3000, 5000, 10000};
double[] areas = {16, 25, 30, 35, 36, 40, 45, 48.6, 49, 54, 64, 81, 97.2, 100, 145.8, 225, 400};
for (int i = 0; i < count_list.length; i++) {
int count_item = count_list[i];
if (list.size() > 2) {
break;
}
if (count > count_item) {
continue;
}
int count_index = Arrays.binarySearch(count_list, count_item);
price = 0;
if (count_index >= 0) {
price = new PriceUtils().TablePrice(area * 1000, prices[count_index], areas);
}
Product product = new Product();
product.setCount(count_item);
product.setPrice(Math.ceil(price));
list.add(product);
}
} else if ("单面烫黄金".equals(kind2)) { } else if ("单面烫黄金".equals(kind2)) {
double priceArr[] = {68, 48, 37, 36, 35, 34}; double priceArr[] = {68, 48, 37, 36, 35, 34};
list = acountTag600Price(area, count, priceArr, shengzi, flag, list); list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
+4 -1
View File
@@ -40,6 +40,9 @@ public class ZsPrice {
double price = 60; double price = 60;
double l = 438.0; double l = 438.0;
double w = 304.0; double w = 304.0;
if ("10".equals(dto.getKindValue())) {
price = 90;
}
if ((length < 8.55 && width < 5.4) || (width < 8.55 && length < 5.4)) { if ((length < 8.55 && width < 5.4) || (width < 8.55 && length < 5.4)) {
length = 8.55; length = 8.55;
width = 5.4; width = 5.4;
@@ -53,7 +56,7 @@ public class ZsPrice {
// 需要多少张大纸 = 数量 * 款数 /每张做多少个 ===总数量/每张多少个 // 需要多少张大纸 = 数量 * 款数 /每张做多少个 ===总数量/每张多少个
int num = (int) Math.ceil(count * number / max); int num = (int) Math.ceil(count * number / max);
if ("10".equals(dto.getKindValue())) { if ("10".equals(dto.getKindValue())) {
price += (num - 1) * 25; price += (num - 1) * 30;
} else { } else {
price += (num - 1) * 15; price += (num - 1) * 15;
} }
+383
View File
@@ -0,0 +1,383 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<%@include file="/views/common.jsp" %>
</head>
<!-- 菜单 -->
<style>
.edge .layui-edge {
right: 10px;
}
</style>
<body>
<div class="big_box">
<div class="left_div">
<h1 class="h2">菜单</h1> <span style="color:red;font-weight:700;"></span>
<hr>
<form class="layui-form">
<p>
材质
</p>
<div class="layui-form-item">
<select name="kindValue" id="kindValue" lay-filter="kindValue" class="select">
<option value="0">双胶80克彩色印刷</option>
<option value="1">商务250克铜版纸</option>
<option value="2">商务200克铜版纸</option>
<option value="3" selected="selected">商务157克铜版纸</option>
</select>
</div>
</form>
<form class="layui-form">
<input type="hidden" name="proTypeValue" id="proTypeValue" class="layui-input" value="14">
<input type="hidden" name="kind2Label" class="layui-input" value="菜单">
<!-- <p>
规格
</p>
<div class="layui-form-item">
<select name="kind2Value" id="kind2Value" lay-filter="kind2Value" class="select">
<option value="0">42*28.5 CM</option>
<option value="1" selected="selected">28.5*21 CM</option>
<option value="2">21*14 CM</option>
</select>
</div> -->
<p>
尺寸(CM/厘米) <span style="font-size:14px;color:red">输入格式: 长 * 宽</span>
</p>
<div class="layui-form-item">
<input type="text" placeholder="格式:长*宽" name="size" id="size" class="layui-input" lay-verify="required"
autocomplete="off">
</div>
<p>
数量(个)
</p>
<div class="layui-form-item">
<select name="count" id="count" class="select">
<option value="500">500</option>
<option value="1000">1000</option>
<option value="2000">2000</option>
<option value="3000">3000</option>
<option value="5000">5000</option>
<option value="10000">10000</option>
</select>
</div>
<p>
款数
</p>
<div class="layui-form-item">
<input type="text" placeholder="请输入整数" autocomplete="off" name="number" id="number" value="1"
class="layui-input" lay-verify="number">
</div>
<p>
客户旺旺
</p>
<div class="layui-form-item">
<input type="text" placeholder="请输入客户旺旺号" autocomplete="off" name="wangwang" id="wangwang"
class="layui-input">
</div>
<p>
工艺
</p>
<div class="layui-input-block craft">
<input type="checkbox" name="craft" lay-filter="switch" value="折页" title="折页">
<div class="layui-inline edge zheyeHide" style="width: 60px; display:none">
<select name="zheye" class="select zheye" lay-filter="zheye">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</div>
<div class="layui-inline edge zheyeHide" style="width: 120px; display:none">
<select name="ui_type" id="ui_type">
<option value="1">对折</option>
<option value="2">荷包折</option>
<option value="3">对对折</option>
<option value="4">外三折</option>
<option value="5">四联风琴折</option>
<option value="6">五联风琴折</option>
</select>
</div>
<input type="checkbox" name="craft" class="disab yh" lay-filter="switch" value="压痕" title="压痕" disabled>
<div class="layui-inline edge yahenHide" style="width: 60px; display:none">
<select name="yahen" class="select yahen" lay-filter="yahen">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</div>
<input type="checkbox" name="craft" class="disab fm" lay-filter="switch" value="单面覆膜" title="单面覆膜"
disabled>
<input type="checkbox" name="craft" class="disab fm" lay-filter="switch" value="双面覆膜" title="双面覆膜"
disabled>
<input type="checkbox" name="craft" class="disab mq" lay-filter="switch" value="模切" title="异形模切">
</div>
<hr>
<div class="layui-form-item">
<button class="layui-btn" lay-submit="" lay-filter="acount_btn">计算</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
<h2>计算结果-
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm copyResult"
onclick="copyResult()">点击复制
</button>
</h2>
<div>
<textarea rows="11" cols="75" id="span_result" readonly="readonly"></textarea>
<%@include file="../acountExpressFee.jsp" %>
</div>
<!--<h2>下单备注-<button type="button" class="layui-btn layui-btn-primary layui-btn-sm copyResult" onclick="copyBz()">点击复制</button></h2>
<div>
<textarea rows="5" cols="75" id="bz_result" readonly="readonly"></textarea>
</div>-->
<div>
<table class="layui-hide" id="priceTable" lay-filter="priceTable"></table>
</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>
<script src="../../js/carousel.js" charset="utf-8"></script>
<%@include file="/views/copyResult.jsp" %>
<script>
layui.use(['table', 'form', 'carousel'], function () {
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
var carousel = layui.carousel;
var table = layui.table;
//建造实例
ins = carousel.render({});
var checkZheye = 0;
form.on('checkbox(switch)', function (data) {
// 覆膜只能选一个
var fumoLen = $(".fm:checked").length;
if (fumoLen > 1) {
$(data.elem).next().attr("class", "layui-unselect layui-form-checkbox");
$(data.elem).prop("checked", false);
layer.msg('[ 单面覆膜 - 双面覆膜 ]不能同时选择!', {
offset: ['300px', '300px']
}, {icon: 5});
return false;
}
if (data.value == '折页') {
if (data.elem.checked) {
$(".zheyeHide").show();
checkZheye = 1;
} else {
$(".zheyeHide").hide();
checkZheye = 0;
}
}
if (data.value == '压痕') {
if (data.elem.checked) {
$(".yahenHide").show();
} else {
$(".yahenHide").hide();
}
}
})
function setRemark() {
let kindValue = $("select[name='kindValue'] option:checked").val();
$("#remark").empty();
let html = '';
if (kindValue == 3) {
html = '预计发货时间:<br>福建:直角裁切 (2-3天发货) 圆通 顺丰 <br>江苏:直角裁切 (2-3天发货) 韵达 顺丰<br>福建:直角折页 (3-4天发货) 圆通 顺丰 <br>江苏:直角折页 (3-4天发货) 韵达 顺丰<br>福建:异形模切 (4-5天发货) 圆通 顺丰'
}
if (kindValue == 2) {
html = '预计发货时间:<br>江苏:直角裁切 (2-3天发货) 韵达 顺丰<br>江苏:直角折页/压痕 (3-4天发货) 韵达 顺丰<br>江苏:异形模切 (4-5天发货) 韵达 顺丰'
}
if (kindValue == 1) {
html = '预计发货时间:<br>江苏:直角裁切 (2-3天发货) 韵达 顺丰<br>江苏:直角折页/压痕 (3-4天发货) 韵达 顺丰<br>江苏:异形模切 (4-5天发货) 韵达 顺丰'
}
if (kindValue == 0) {
html = '预计发货时间:<br>江苏:直角裁切 (2-3天发货) 韵达 顺丰<br>江苏:直角折页/压痕 (3-4天发货) 韵达 顺丰<br>福建:异形模切 (4-5天发货) 圆通 顺丰'
}
$("#remark").append('<div><span>' + html + '<span/></div>');
}
form.on('select(kindValue)', function (data) {
// 80克、157克纸张的时候无覆膜
if (data.value == "0" || data.value == "3") {
$(".disab").attr("disabled", true);
} else {
$(".disab").attr("disabled", false);
}
// 157克铜版纸的时候可以选择模切
if (data.value == "3") {
$(".mq").attr("disabled", false);
}
form.render('checkbox');
setRemark()
});
// 点击计算,计算价格
form.on('submit(acount_btn)', function (data) {
var kindData = {
0: "双胶80克彩色印刷",
1: "250克铜版纸",
2: "200克铜版纸",
3: "157克铜版纸"
};
var kind2Data = {
0: "42*28.5 CM",
1: "28.5*21 CM",
2: "21*14 CM"
};
var kind = kindData[$("#kindValue").val()];
var kind2 = kind2Data[$("#kind2Value").val()];
var number = $("#number").val();
var size = $("#size").val();
if ((size.split("*")[0] > 140 || size.split("*")[1] > 110) && (size.split("*")[0] > 110 || size.split("*")[1] > 140)) {
layer.msg("菜单尺寸不能超过140*110 cm", {offset: ['300px', '300px']}, function () {
});
return false;
}
if (((size.split("*")[0] < 10 || size.split("*")[1] < 14) && (size.split("*")[0] < 14 || size.split("*")[1] < 10)) && checkZheye == 1) {
layer.msg("14*10 cm 以下无法‘折’", {offset: ['300px', '300px']}, function () {
});
return false;
}
// 判断能否折
var bigSize = parseInt(size.split("*")[0] / 9) > parseInt(size.split("*")[1] / 9) ? parseInt(size.split("*")[0] / 9) : parseInt(size.split("*")[1] / 9)
if (bigSize < $(".zheye").val() && checkZheye == 1) {
layer.msg("该尺寸无法" + $(".zheye").val() + " 折!!每一页的成品不能小于9 cm", {offset: ['300px', '300px']}, function () {
});
return false;
}
var arr = [];
$("input:checkbox[name='craft']:checked").each(function (i) {
// 没有被禁用的工艺加到arr中
if (!$(this).is(':disabled')) {
arr.push($(this).val());
}
});
console.log('-----选中的值-----', arr);
if ($("#kindValue").val() == 1 || $("#kindValue").val() == 2) {
if (arr[0] == '折页' && arr[1] != '压痕') {
layer.msg("200克以上材质折页必须选压痕", {offset: ['300px', '300px']}, function () {
});
return false;
}
}
$.ajax({
url: "${path}/getThanSum",
type: "GET",
data: $(".big_box form").serialize(),
success: function (result) {
if (result.code == 100) {
layer.msg(result.msg, {offset: ['300px', '300px']}, function () {
});
return false;
}
var data = result.data.proList;
var span_result = "菜单 - " + kind + ' - ' + size + ' 厘米 -(同款内容)\n' + "工艺 :" + arr + "\n";
if (number > 1) {
for (let i = 0; i < data.length; i++) {
span_result += number + '款 各' + data[i].count + "个,共" + data[i].price + "元" + '\n'
data[i].number = number;
}
} else {
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);
var count = $("#count option:selected").val();
var craft = "";
for (let i = 0; i < arr.length; i++) {
if (arr[i].indexOf("折页") >= 0) {
console.log(arr[i]);
craft = $("#ui_type option:selected").text();
} else {
craft += arr[i];
}
}
console.log(craft);
getRemark("菜单", size, count + "个", kind, number, craft, "");
//计算完自动复制文本
var e = document.getElementById("span_result");//对象是content
if (e.value != "") {
e.select();//选择对象
document.execCommand("Copy");//执行浏览器复制命令
}
//生成表格
table.render({
elem: '#priceTable',
even: true, //隔行变色
data: data, // 赋值已知数据
width: 500,
cols: [[
{
field: 'number',
width: '12%',
align: "center",
title: '款数'
}, {
field: 'count',
width: '16%',
align: "center",
title: '数量'
}, {
field: 'price',
width: '16%',
align: "center",
title: '报价'
},/* {
field : 'wangwang',
align : "center",
width : '16%',
title : '折扣价',
templet : function(d) {
return Math.ceil(d.price * 0.98)
}
},{
field : 'wangwang',
align : "center",
width : '19%',
title : '跳楼价',
templet : function(d) {
return Math.ceil(d.price * 0.96)
}
}, */{
field: 'weight',
width: '21%',
align: "center",
title: '重量(kg'
}
]],
done: function () {
}
});
}
});
return false;
});
});
</script>
</html>
+9 -1
View File
@@ -88,7 +88,9 @@
<input type="radio" name="ui_jx" value="异形" title="异形"> <input type="radio" name="ui_jx" value="异形" title="异形">
<br/> <br/>
<input type="radio" name="craftShua" value="单面" title="单面" checked="checked"> <input type="radio" name="craftShua" value="单面" title="单面" checked="checked">
<input type="radio" name="craftShua" value="双面" title="双面"> <span id="shuangmian">
<input type="radio" name="craftShua" value="双面" title="双面">
</span>
<br/> <br/>
<input type="checkbox" name="ui_dk" lay-filter="switch" value="打孔" title="打孔"> <input type="checkbox" name="ui_dk" lay-filter="switch" value="打孔" title="打孔">
<input type="checkbox" name="craft" value="背胶" title="背胶"> <input type="checkbox" name="craft" value="背胶" title="背胶">
@@ -184,6 +186,12 @@
var html = " "; var html = " ";
// 清空轮播图 // 清空轮播图
$("#carousel").empty(); $("#carousel").empty();
$("#shuangmian").show();
$("input[name='craftShua'][value='单面']").attr("checked", true);
if (data.value == 10) {
$("#shuangmian").hide();
}
form.render();
$.ajax({ $.ajax({
url: "${pageContext.request.contextPath}/getImgs", url: "${pageContext.request.contextPath}/getImgs",
type: "GET", type: "GET",
+2 -2
View File
@@ -7,8 +7,8 @@ class="layui-input" value="吊牌"> -->
<p> <p>
尺寸(CM/厘米) <span style="font-size:14px;color:red">输入格式: 长 * 宽</span> 尺寸(CM/厘米) <span style="font-size:14px;color:red">输入格式: 长 * 宽</span>
<!-- <span class="addOrCut"> --> <!-- <span class="addOrCut"> -->
<button type="button" title="点击添加尺寸" class="layui-btn layui-btn-primary layui-btn-sm button" onclick="AddInput()"><i <%-- <button type="button" title="点击添加尺寸" class="layui-btn layui-btn-primary layui-btn-sm button" onclick="AddInput()"><i--%>
class="layui-icon">组合</i></button> <%-- class="layui-icon">组合</i></button>--%>
<button type="button" title="点击移除尺寸" class="layui-btn layui-btn-primary layui-btn-sm button" onclick="CutInput()"><i <button type="button" title="点击移除尺寸" class="layui-btn layui-btn-primary layui-btn-sm button" onclick="CutInput()"><i
class="layui-icon">单张</i></button> class="layui-icon">单张</i></button>
<!-- </span> --> <!-- </span> -->
+1 -1
View File
@@ -41,7 +41,7 @@
<p> <p>
尺寸(CM/厘米) <span style="font-size: 14px; color: red">输入格式: 长 * 宽</span> 尺寸(CM/厘米) <span style="font-size: 14px; color: red">输入格式: 长 * 宽</span>
<span class="addOrCutTags"> <span class="addOrCutTags">
<button type="button" title="点击添加尺寸" class="layui-btn layui-btn-primary layui-btn-sm button" onclick="AddInputTags()"><i class="layui-icon">组合</i></button> <%-- <button type="button" title="点击添加尺寸" class="layui-btn layui-btn-primary layui-btn-sm button" onclick="AddInputTags()"><i class="layui-icon">组合</i></button>--%>
<button type="button" title="点击移除尺寸" class="layui-btn layui-btn-primary layui-btn-sm button" onclick="CutInputTags()"><i class="layui-icon">单张</i></button> <button type="button" title="点击移除尺寸" class="layui-btn layui-btn-primary layui-btn-sm button" onclick="CutInputTags()"><i class="layui-icon">单张</i></button>
</span> </span>
</p> </p>