新增伸缩手拉旗,新增熨斗,限制鼠标垫尺寸

This commit is contained in:
2026-03-28 11:47:08 +08:00
parent b2d74bf0f3
commit 7b2f033fe6
5 changed files with 440 additions and 229 deletions
@@ -357,7 +357,7 @@ public class ProductController {
}
String size = product.getSize();
if (("17".equals(product.getProTypeValue()) && "6".equals(product.getKindValue())) || "手拉旗".equals(product.getProTypeValue())) {
if (("17".equals(product.getProTypeValue()) && "6".equals(product.getKindValue())) || ("手拉旗".equals(product.getProTypeValue()) && "常规".equals(product.getStickerKind()))) {
if (!StringUtils.isEmpty(size)) {
String sizeList[] = size.split(",");
size = sizeList[0];
@@ -251,7 +251,7 @@ public class ProductService {
String sizeList[] = size.split(",");
size = sizeList[0];
}
} else if ("手拉旗".equals(proType)) {
} else if (("手拉旗".equals(dto.getProTypeValue()) && "常规".equals(dto.getStickerKind()))) {
size += "*" + dto.getWidth();
}
int count = dto.getCount();
@@ -2690,7 +2690,12 @@ public class ProductService {
}
apprise = product.getPrice();
}
if (craft_list.contains("熨斗")) {
dto.setPo_number(dto.getPo_number() == null ? 1 : dto.getPo_number());
for (Product product : priceList) {
product.setPrice(product.getPrice() + 40 * Math.max(dto.getPo_number(), 1));
}
}
return priceList;
}
if (length <= 2) {
@@ -2705,6 +2710,7 @@ public class ProductService {
// 1006 1003 1005 1037 1058 1002 1033 1045 卓盛 航和 米笛儿 竹范 领淘文具 榆家 涛莱 拼多多uv单独报价
List<String> crafts = new ArrayList<>(dto.getCraft() == null ? new ArrayList<>() : Arrays.asList(dto.getCraft()));
crafts.remove("刮板");
crafts.remove("熨斗");
crafts.remove("哑光");
if (crafts.size() > 0 && "烫金".equals(crafts.get(0))) {
crafts.remove(0);
@@ -2729,6 +2735,7 @@ public class ProductService {
product.setPrice(product.getPrice() + 2 * Math.max(dto.getPcount(), 1));
}
}
if ("宠物转印贴".equals(dto.getKind())) {
for (Product product : priceList) {
product.setPrice(Math.ceil(product.getPrice() == 50 ? product.getPrice() : product.getPrice() * 1.3));
@@ -4483,11 +4490,39 @@ public class ProductService {
/*
* if(kind.equals("1")) { if(length == 70 && width == 24) { priceList = new FgqPrice().getSlqSpeicPrice(count, priceList, 1); }else if(length == 50 && width == 17) { priceList = new FgqPrice().getSlqSpeicPrice(count, priceList, 2); }else { priceList = new FgqPrice().getSlqPrice(count, priceList); } }else {
*/
priceList = new FgqPrice().getSlqPrice(count, priceList);
if ("常规".equals(dto.getStickerKind())) {
priceList = new FgqPrice().getSlqPrice(count, priceList);
}
if ("伸缩手拉旗".equals(dto.getStickerKind())) {
double base_price = 0;
if ((length == 24 && width == 70) || (length == 70 && width == 24)) {
base_price = 30;
}
if ((length == 24 && width == 50) || (length == 50 && width == 24)) {
base_price = 30;
}
if ((length == 24 && width == 100) || (length == 100 && width == 24)) {
base_price = 35;
}
if ((length == 17 && width == 70) || (length == 70 && width == 17)) {
base_price = 30;
}
if ((length == 17 && width == 50) || (length == 50 && width == 17)) {
base_price = 30;
}
if ((length == 17 && width == 100) || (length == 100 && width == 17)) {
base_price = 35;
}
Product product = new Product();
product.setCount(dto.getCount());
product.setNumber(number);
product.setPrice(Math.ceil(base_price * dto.getCount()));
priceList.add(product);
}
/* } */
for (Product product : priceList) {
product.setPrice(Math.floor(product.getPrice() * number));
product.setWeight(df.format(length * width * product.getCount() / 10000 * number * 0.075));
}
return priceList;
@@ -5398,6 +5433,9 @@ public class ProductService {
pro.setWeight(df.format(width * length * 1.2 * count * 0.1 / 1000 * Double.parseDouble(kind)));
priceList.add(pro);
}
for (Product product : priceList) {
product.setPrice(Math.ceil(product.getPrice() * number));
}
return priceList;
}
+42
View File
@@ -180,6 +180,16 @@
<input type="text" name="pcount" class="layui-input layui-inline" value="1">
</div>
</div>
<span id="yundou">
<input type="checkbox" name="craft" lay-filter="craftZhuan" value="熨斗" title="熨斗"
class="craftZhuan">
<div class="layui-inline" id="yundouNumber" style="width: 80px;display: none">
<div style="display:flex;align-items: center">
<span style="flex-shrink: 0">数量:</span>
<input type="text" name="po_number" class="layui-input layui-inline" value="1">
</div>
</div>
</span>
</div>
<div class="layui-input-block">
其他工艺:
@@ -336,6 +346,11 @@
$("#sehu_number").hide();
$(".tjselect select").prop("disabled", true);
$("#sehu_number select").prop("disabled", true);
$("#guaban").hide();
$("#guaban").find(":input").attr("disabled", true);
$("#yundou").hide();
$("#yundouNumber").hide();
$("#yundou").find(":input").attr("disabled", true);
if (kindData.value == "金属标") {
// 切换为品种单选框
$(".metal").show();
@@ -368,10 +383,15 @@
if (craftChecked) {
$(`input[name='craft'][value='冷转印']+div`).click();
}
craftChecked = $(`input[name='craft'][value='熨斗']`).is(":checked");
if (craftChecked) {
$(`input[name='craft'][value='熨斗']+div`).click();
}
if (kindData.value == "UV转印贴") {
$(".zhuanuv").show();
$(".zhuanuv").find(":input").attr("disabled", false);
}
}
form.render();//必须写
@@ -415,12 +435,31 @@
layer.msg('[烫画,冷转印]不能选择刮板配件!', {offset: ['300px', '300px']}, {icon: 5});
return false;
}
if (craft_list.indexOf("烫画") > -1) {
$("#yundou").show();
} else {
$("#yundou").hide();
let craftChecked = $(`input[name='craft'][value='熨斗']`).is(":checked");
if (craftChecked) {
$(`input[name='craft'][value='熨斗']+div`).click();
}
}
let most = 1;
if (craft_list.indexOf("刮板") > -1) {
most = 2;
$("#guaban").show();
$("#guaban").find(":input").attr("disabled", false);
} else {
$("#guaban").hide();
$("#guaban").find(":input").attr("disabled", true);
}
if (craft_list.indexOf("熨斗") > -1) {
most = 2;
$("#yundouNumber").show();
$("#yundouNumber").find(":input").attr("disabled", false);
} else {
$("#yundouNumber").hide();
$("#yundouNumber").find(":input").attr("disabled", true);
}
if (craftZhuan > most) {
@@ -470,6 +509,9 @@
} else if ($(this).val() == "刮板") {
let co_count = $("input[name='pcount']").val();
craftShua.push($(this).val() + co_count + "个");
} else if ($(this).val() == "熨斗") {
let co_count = $("input[name='po_number']").val();
craftShua.push($(this).val() + co_count + "个");
} else {
craftShua.push($(this).val());
}
@@ -259,6 +259,11 @@
});
return false;
}
if (Number.parseFloat(size.split("*")[0]) % 1 !== 0 || Number.parseFloat(size.split("*")[1]) % 1 !== 0) {
layer.msg('尺寸不能存在小数点!', {offset: ['300px', '300px']}, function () {
});
return false;
}
$("input:checkbox[name='craft']:checked").each(function (i) {
// 没有被禁用的工艺加到arr中
if (!$(this).is(':disabled')) {
+350 -224
View File
@@ -1,234 +1,360 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
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"%>
<meta charset="UTF-8">
<title>Insert title here</title>
<%@include file="/views/common.jsp" %>
</head>
<style>
.craftItem .layui-form-select .layui-edge {
right: 20px;
}
</style>
<body>
<div class="big_box">
<div class="left_div">
<h1 class="h1">手拉旗</h1> <span style="color:red;font-weight:700;"></span>
<hr>
<form class="layui-form">
<input type="hidden" name="proTypeValue" id="proTypeValue" class="layui-input" value="手拉旗" />
<p>
材质
</p>
<div class="layui-form-item">
<select name="kindValue" id="kindValue" lay-filter="kindValue" class="select" lay-search>
<option value=""></option>
<option value="1">春亚布</option>
<option value="2">贡缎布</option>
</select>
</div>
<p>
宽度
</p>
<div class="layui-form-item">
<select name="width" id="width" class="select">
<option value="17">17cm</option>
<option value="24">24cm</option>
</select>
</div>
<p>
长度(CM/厘米)
</p>
<div class="layui-form-item">
<input type="text" placeholder="请输入长度" name="size" id="size" class="layui-input" autocomplete="off">
</div>
<p>
数量(个)
</p>
<div class="layui-form-item">
<input type="text" placeholder="请输入整数" autocomplete="off" name="count" class="layui-input" id="count">
</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>
<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>
<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>
<div class="big_box">
<div class="left_div">
<h1 class="h1">手拉旗</h1> <span style="color:red;font-weight:700;"></span>
<hr>
<form class="layui-form">
<input type="hidden" name="proTypeValue" id="proTypeValue" class="layui-input" value="手拉旗"/>
<div class="layui-form-item">
<input type="radio" lay-filter="stickerKind" name="stickerKind" value="常规" title="常规" checked>
<input type="radio" lay-filter="stickerKind" name="stickerKind" value="伸缩手拉旗" title="伸缩手拉旗">
</div>
<p>
材质
</p>
<div class="layui-form-item">
<select name="kindValue" id="kindValue" lay-filter="kindValue" class="select" lay-search>
<option value=""></option>
<option value="1">春亚布</option>
<option value="2">贡缎布</option>
</select>
</div>
<div class="layui-form-item changgui">
<p>
宽度
</p>
<div class="layui-form-item">
<select name="width" id="width" class="select">
<option value="17">17cm</option>
<option value="24">24cm</option>
</select>
</div>
<p>
长度(CM/厘米)
</p>
<div class="layui-form-item">
<input type="text" placeholder="请输入长度" name="size" id="size" class="layui-input" autocomplete="off">
</div>
</div>
<div class="layui-form-item shensuo" style="display: none">
<p>
尺寸
</p>
<div class="layui-form-item">
<select name="size" id="shensuosize" class="select">
<option value="24*70">24*70cm</option>
<option value="24*50">24*50cm</option>
<option value="24*100">24*100cm</option>
<option value="17*70">17*70cm</option>
<option value="17*50">17*50cm</option>
<option value="17*100">17*100cm</option>
</select>
</div>
</div>
<p>
数量(个)
</p>
<div class="layui-form-item">
<input type="text" placeholder="请输入整数" autocomplete="off" name="count" class="layui-input" id="count">
</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>
<div class="layui-form-item craftItem" style="display: none">
<p>
工艺
</p>
<div class="layui-form-item">
<div class="layui-input-block">
印面工艺:
<input type="checkbox" name="craft" lay-filter="ui_craft" value="单面印刷" title="单面印刷" checked>
</div>
<div class="layui-input-block">
配件:
<input type="checkbox" name="craft" lay-filter="ui_craft" value="手柄" title="手柄" checked>
<div id="ccolor" class="layui-inline" style="width: 90px">
<select name="shen_color" class="select">
<option value="黑色" selected>黑色</option>
<option value="灰色">灰色</option>
</select>
</div>
</div>
</div>
</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>
<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>
<%@include file="/views/copyResult.jsp"%>
<%@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 html = " ";
var remark = " ";
// 清空轮播图
$("#carousel").empty();
$("#remark").empty();
$.ajax({
url:"${pageContext.request.contextPath}/getImgs",
type:"GET",
data:{
proTypeValue : $("#proTypeValue").val(),
},
success : function(result) {
for (let i = 0; i < result.length; i++) {
// 只留一个remark
remark = "";
html += '<div><img style="width:'+result[0].imgWidth+'px" src="' +result[i].imgUrl+ '"></div>';
remark += '<div><span>' +result[i].remark+ '<span/></div>';
}
$("#carousel").append(html);
// 如果没有说明,就不显示null
if(remark.indexOf("null") < 0){
$("#remark").append(remark);
}
// 如果没有轮播图就隐藏
if(result.length == 0){
document.getElementById("test1").style.display = "none"; //隐藏
}else{
document.getElementById("test1").style.display = "block"; //显示
ins.reload({
elem: '#test1',
width: result[0].imgWidth, //设置容器宽度
height: result[0].imgHeight
});
}
}
});
// 点击计算,计算价格
form.on('submit(acount_btn)', function(data) {
var number= $("#number").val();
var length = $("#size").val();
var width = $("#width option:selected").val();
var count = $("#count").val();
var kind = $("#kindValue option:selected").text();
var craft = $("input[name='craft']:checked").val();
if(!length){
layer.msg('请填写长度!',{offset:['300px','300px']},function(){});
return false;
}
if(length > 100){
layer.msg('最大长度100cm',{offset:['300px','300px']},function(){});
return false;
}
if(!count){
layer.msg('请填写数量!',{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;
if((length == 70 && width == 24)||(length == 50 && width == 17)){
kind += "(特价)";
}
var span_result = '手拉旗 - ' + kind + '-' + length + '*' + width +' CM (同款内容)\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 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 : '折扣价'
},{
field : 'wangwang',
align : "center",
width : '19%',
title : '跳楼价'
},{
field : 'weight',
width : '21%',
align : "center",
title : '重量(kg'
}
] ],
done: function () {
}
});
}
});
return false;
});
});
layui.use(['table', 'form', 'carousel'], function () {
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
var carousel = layui.carousel;
var table = layui.table;
$(".shensuo").hide();
$(".shensuo select").attr("display", true);
form.render();
//建造实例
ins = carousel.render({});
getImages();
function getImages() {
let stickerKind = $("input[name='stickerKind']:checked").val();
var html = " ";
var remark = " ";
// 清空轮播图
$("#carousel").empty();
$("#remark").empty();
$.ajax({
url: "${pageContext.request.contextPath}/getImgs",
type: "GET",
data: {
proTypeValue: $("#proTypeValue").val(), kindValue: stickerKind
},
success: function (result) {
for (let i = 0; i < result.length; i++) {
// 只留一个remark
remark = "";
html += '<div><img style="width:100%;height: 100%;object-fit: contain" src="' + result[i].imgUrl + '"></div>';
remark += '<div><span>' + result[i].remark + '<span/></div>';
}
$("#carousel").append(html);
// 如果没有说明,就不显示null
if (remark.indexOf("null") < 0) {
$("#remark").append(remark);
}
// 如果没有轮播图就隐藏
if (result.length == 0) {
document.getElementById("test1").style.display = "none"; //隐藏
} else {
document.getElementById("test1").style.display = "block"; //显示
ins.reload({
elem: '#test1',
width: result[0].imgWidth, //设置容器宽度
height: result[0].imgHeight
});
}
}
});
}
form.on("radio(stickerKind)", function (data) {
$(".shensuo").hide();
$(".changgui").hide();
$(".shensuo select").attr("disabled", true);
$(".changgui select").attr("disabled", true);
$(".changgui ").find("input").attr("disabled", true);
$(".craftItem").hide();
$(".craftItem").find("input").attr("disabled", true);
let html = '';
if (data.value == "常规") {
$(".changgui").show();
$(".changgui select").attr("disabled", false);
$(".changgui ").find("input").attr("disabled", false);
html = `<option value="1">春亚布</option>
<option value="2">贡缎布</option>`;
}
if (data.value == "伸缩手拉旗") {
$(".shensuo").show();
$(".shensuo select").attr("disabled", false);
$(".shensuo ").find("input").attr("disabled", false);
$(".craftItem").show();
$(".craftItem").find("input").attr("disabled", false);
html = `<option value="1">PET</option>`;
}
$("#kindValue").empty();
$("#kindValue").append(html);
getImages();
form.render();
})
form.on("checkbox(ui_craft)",function(data){
$(data.elem).prop("checked", true);
layer.msg("工艺无法取消", {offset: ['300px', '300px']}, function () {
});
form.render();
return false;
})
// 点击计算,计算价格
form.on('submit(acount_btn)', function (data) {
var number = $("#number").val();
var length = $("#size").val();
var width = $("#width option:selected").val();
var count = $("#count").val();
var kind = $("#kindValue option:selected").text();
var size = $("#shensuosize option:selected").val();
let stickerKind = $("input[name='stickerKind']:checked").val();
if (stickerKind == "常规") {
if (!length) {
layer.msg('请填写长度!', {offset: ['300px', '300px']}, function () {
});
return false;
}
if (length > 100) {
layer.msg('最大长度100cm', {offset: ['300px', '300px']}, function () {
});
return false;
}
}
if (!count) {
layer.msg('请填写数量!', {offset: ['300px', '300px']}, function () {
});
return false;
}
let craft_list = [];
$("input[name='craft']:checked").each(function () {
if (!$(this).is(':disabled')) {
if ($(this).val() == "手柄") {
craft_list.push($("#ccolor option:selected").val() + $(this).val());
} else {
craft_list.push($(this).val());
}
}
}
);
$.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 = '';
if (stickerKind == "常规") {
if ((length == 70 && width == 24) || (length == 50 && width == 17)) {
kind += "(特价)";
}
span_result = '手拉旗 - ' + kind + ' - ' + length + '*' + width + ' CM (同款内容)\n';
}
if (stickerKind == "伸缩手拉旗") {
span_result = '伸缩手拉旗 - ' + kind + ' - ' + size + ' CM (同款内容)\n';
span_result += "工艺:" + craft_list.join(",") + "\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 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: '折扣价'
}, {
field: 'wangwang',
align: "center",
width: '19%',
title: '跳楼价'
}, {
field: 'weight',
width: '21%',
align: "center",
title: '重量(kg'
}
]],
done: function () {
}
});
}
});
return false;
});
});
</script>
</html>