metal.jsp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8" %>
  3. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta charset="UTF-8">
  8. <%@include file="/views/common.jsp" %>
  9. </head>
  10. <!-- 金属标 -->
  11. <style>
  12. </style>
  13. <body>
  14. <div class="big_box">
  15. <div class="left_div">
  16. <h1 class="h1">金属标</h1> <span style="color:red;font-weight:700;"></span>
  17. <hr>
  18. <form class="layui-form">
  19. <input type="hidden" name="proTypeValue" id="proTypeValue" class="layui-input" value="金属标">
  20. <p>
  21. 地址
  22. </p>
  23. <input type="text" name="address" class="layui-input"/>
  24. <p>
  25. 车间
  26. </p>
  27. <div class="layui-form-item">
  28. <div class="layui-form-item">
  29. <select class="select" name="plantName">
  30. <option value="金大">金大</option>
  31. <option value="鑫灿">鑫灿</option>
  32. <option value="紫瑶">紫瑶</option>
  33. </select>
  34. </div>
  35. </div>
  36. <p>
  37. 产品种类
  38. </p>
  39. <div class="layui-form-item">
  40. <input type="radio" lay-filter="kind" name="kind" value="金属标" title="金属标">
  41. <%-- <input type="radio" lay-filter="kind" name="kind" value="UV转印贴" title="UV转印贴">--%>
  42. </div>
  43. <div class="metal">
  44. <p>
  45. 颜色
  46. </p>
  47. <div class="layui-form-item">
  48. <select id="color" lay-filter="color" class="select" name="tcolor">
  49. <option value="金色">金色</option>
  50. <option value="银色">银色</option>
  51. <option value="蓝色">蓝色</option>
  52. <option value="绿色">绿色</option>
  53. <option value="红色">红色</option>
  54. <option value="黑色">黑色</option>
  55. <option value="橙色">橙色</option>
  56. <option value="紫色">紫色</option>
  57. <option value="玫红色">玫红色</option>
  58. <option value="玫瑰金色">玫瑰金色</option>
  59. </select>
  60. </div>
  61. <p>
  62. 印色
  63. </p>
  64. <div class="layui-form-item">
  65. <input type="radio" name="craftMo" lay-filter="craftMo" value="单色" title="单色" checked="checked">
  66. <input type="radio" name="craftMo" lay-filter="craftMo" value="双色" title="双色">
  67. <input type="radio" name="craftMo" lay-filter="craftMo" value="彩色(三色)" title="彩色(三色)">
  68. <input type="radio" name="craftMo" lay-filter="craftMo" value="彩色(四色)" title="彩色(四色)">
  69. </div>
  70. <p>
  71. 尺寸(CM/厘米) <span style="font-size:14px;color:red">输入格式: 长 * 宽</span>
  72. </p>
  73. <div class="layui-form-item">
  74. <input type="text" placeholder="格式:长*宽" name="size" id="size" class="layui-input"
  75. autocomplete="off">
  76. </div>
  77. <span style="color:red;font-weight:700;">金属标尺寸不能超过29*19 cm</span>
  78. <p>
  79. 数量(个)
  80. </p>
  81. <div class="layui-form-item">
  82. <input type="text" placeholder="请输入整数" autocomplete="off" name="count" class="layui-input"
  83. id="count1">
  84. </div>
  85. </div>
  86. <div class="UVSticker" style="display:none" id="UVSticker">
  87. <p>
  88. 尺寸(CM/厘米) <span style="font-size:14px;color:red">输入格式: 长 * 宽</span>
  89. </p>
  90. <div class="layui-form-item">
  91. <input type="text" placeholder="格式:长*宽" name="size" id="UVSize" class="layui-input"
  92. autocomplete="off">
  93. </div>
  94. <%-- <span style="color:red;font-weight:700;">UV转印贴尺寸不能超过500*58cm,加工艺不能超过42*28.5cm</span>--%>
  95. <span style="color:red;font-weight:700;">UV转印贴尺寸不能超过500*58cm</span>
  96. <p>
  97. 数量(个)
  98. </p>
  99. <!-- <div class="count">
  100. <div class="layui-form-item">
  101. <select name="count" class="select">
  102. <option value="10">10</option>
  103. <option value="20">20</option>
  104. <option value="30">30</option>
  105. <option value="50">50</option>
  106. <option value="100">100</option>
  107. <option value="200">200</option>
  108. <option value="500">500</option>
  109. <option value="1000">1000</option>
  110. <option value="2000">2000</option>
  111. <option value="5000">5000</option>
  112. <option value="10000">10000</option>
  113. </select>
  114. </div>
  115. </div> -->
  116. <div class="layui-form-item">
  117. <input type="text" name="count" id="count" placeholder="请输入整数" class="layui-input"
  118. autocomplete="off">
  119. </div>
  120. </div>
  121. <p>
  122. 款数
  123. </p>
  124. <div class="layui-form-item">
  125. <input type="text" placeholder="请输入整数" autocomplete="off" name="number" id="number" value="1"
  126. class="layui-input" lay-verify="number">
  127. </div>
  128. <p>
  129. 客户旺旺
  130. </p>
  131. <div class="layui-form-item">
  132. <input type="text" placeholder="请输入客户旺旺号" autocomplete="off" name="wangwang" id="wangwang"
  133. class="layui-input">
  134. </div>
  135. <div class="UVSticker" style="display:none">
  136. <p>
  137. 工艺
  138. </p>
  139. <div class="layui-form-item">
  140. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="专金" title="专金"
  141. class="craftZhuan">
  142. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="专银" title="专银"
  143. class="craftZhuan">
  144. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="烫金" title="烫金"
  145. class="craftZhuan">
  146. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="烫银" title="烫银"
  147. class="craftZhuan">
  148. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="烫蓝" title="烫蓝"
  149. class="craftZhuan">
  150. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="烫红" title="烫红"
  151. class="craftZhuan">
  152. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="烫黑" title="烫黑"
  153. class="craftZhuan">
  154. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="镭射银" title="镭射银"
  155. class="craftZhuan">
  156. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="镭射金" title="镭射金"
  157. class="craftZhuan">
  158. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="玫瑰金" title="玫瑰金"
  159. class="craftZhuan">
  160. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="印刷+烫金" title="印刷+烫金"
  161. class="craftZhuan">
  162. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="印刷+烫银" title="印刷+烫银"
  163. class="craftZhuan">
  164. <input type="checkbox" name="craft" lay-filter="craftZhuan" value="双面贴" title="双面贴"
  165. class="craftZhuan">
  166. </div>
  167. <div class="layui-form-item">
  168. <input type="radio" name="craftQie" calss="moqie" value="模切" lay-skin="primary" title="模切"
  169. checked="checked">
  170. </div>
  171. </div>
  172. <div class="layui-form-item">
  173. <button class="layui-btn" lay-submit="" lay-filter="acount_btn">计算</button>
  174. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  175. </div>
  176. <h2>计算结果-
  177. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm copyResult"
  178. onclick="copyResult()">点击复制
  179. </button>
  180. </h2>
  181. <div>
  182. <textarea rows="11" cols="75" id="span_result" readonly="readonly"></textarea>
  183. <%@include file="../acountExpressFee.jsp" %>
  184. </div>
  185. <!--<h2>下单备注-<button type="button" class="layui-btn layui-btn-primary layui-btn-sm copyResult" onclick="copyBz()">点击复制</button></h2>
  186. <div>
  187. <textarea rows="5" cols="75" id="bz_result" readonly="readonly"></textarea>
  188. </div>-->
  189. <div>
  190. <table class="layui-hide" id="priceTable" lay-filter="priceTable"></table>
  191. </div>
  192. </form>
  193. </div>
  194. <div class="right_div" style="margin-left:50px;">
  195. <div class="layui-carousel" id="test1">
  196. <div carousel-item id="carousel"></div>
  197. <br>
  198. <div id="remark" style="font-size:20px;color:red"></div>
  199. </div>
  200. </div>
  201. </div>
  202. </body>
  203. <%@include file="/views/copyResult.jsp" %>
  204. <script>
  205. layui.use(['table', 'form', 'carousel'], function () {
  206. var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
  207. var carousel = layui.carousel;
  208. var table = layui.table;
  209. function getProductImage() {
  210. var html = " ";
  211. var remark = " ";
  212. let craft = $("input[name='craft']:checked").val();
  213. let craftMo = $("input[name='craftMo']:checked").val();
  214. let data = {
  215. proTypeValue: $('input[name="kind"]:checked').val()
  216. }
  217. if (data.proTypeValue == '金属标' && (craftMo == '双色' || craftMo == '彩色(三色)')) {
  218. data.craftValue = craftMo;
  219. }
  220. if (data.proTypeValue == 'UV转印贴') {
  221. data.craftValue = craft;
  222. }
  223. // 清空轮播图
  224. $("#carousel").empty();
  225. $("#remark").empty();
  226. $.ajax({
  227. url: "${pageContext.request.contextPath}/getImgs",
  228. type: "GET",
  229. data,
  230. success: function (result) {
  231. for (let i = 0; i < result.length; i++) {
  232. // 只留一个remark
  233. remark = "";
  234. html += '<div><img style="width:' + result[0].imgWidth + 'px" src="' + result[i].imgUrl + '"></div>';
  235. remark += '<div><span>' + result[i].remark + '<span/></div>';
  236. }
  237. $("#carousel").append(html);
  238. // 如果没有说明,就不显示null
  239. if (remark.indexOf("null") < 0) {
  240. $("#remark").append(remark);
  241. }
  242. // 如果没有轮播图就隐藏
  243. if (result.length == 0) {
  244. document.getElementById("test1").style.display = "none"; //隐藏
  245. } else {
  246. document.getElementById("test1").style.display = "block"; //显示
  247. ins.reload({
  248. elem: '#test1',
  249. width: result[0].imgWidth, //设置容器宽度
  250. height: result[0].imgHeight
  251. });
  252. }
  253. }
  254. });
  255. }
  256. //建造实例
  257. ins = carousel.render({});
  258. form.on("radio(craftMo)", function (data) {
  259. getProductImage()
  260. })
  261. form.on('radio(kind)', function (kindData) {
  262. getProductImage()
  263. if (kindData.value == "金属标") {
  264. // 切换为品种单选框
  265. $(".metal").show();
  266. $(".metal").find(":input").attr("disabled", false);
  267. $(".UVSticker").hide();
  268. $(".UVSticker").find(":input").attr("disabled", true);
  269. $(".diyCount").hide();
  270. $(".count").hide();
  271. $(".diyCount").find(":input").attr("disabled", true);
  272. $(".count").find(":input").attr("disabled", true);
  273. } else {
  274. // 少数量、专版打印的时候,切换为品种下拉框
  275. $(".UVSticker").show();
  276. $(".UVSticker").find(":input").attr("disabled", false);
  277. $(".count").show();
  278. $(".count").find(":input").attr("disabled", false);
  279. $(".metal").hide();
  280. $(".metal").find(":input").attr("disabled", true);
  281. }
  282. form.render();//必须写
  283. })
  284. // 自定义数量
  285. /* form.on('checkbox(switchCount)', function(data) {
  286. if(data.elem.checked){
  287. $(".diyCount").show();
  288. $(".count").hide();
  289. $(".diyCount").find(":input").attr("disabled", false);
  290. $(".count").find(":input").attr("disabled", true);
  291. } else {
  292. $(".count").show();
  293. $(".diyCount").hide();
  294. $(".count").find(":input").attr("disabled", false);
  295. $(".diyCount").find(":input").attr("disabled", true);
  296. // 恢复标准数量的时候会被禁用,加这个解决
  297. form.render();
  298. }
  299. }) */
  300. form.on('checkbox(craftZhuan)', function (data) {
  301. // 专金专银只能选一个
  302. var craftZhuan = $(".craftZhuan:checked").length;
  303. if (craftZhuan > 1) {
  304. $(data.elem).next().attr("class", "layui-unselect layui-form-checkbox");
  305. $(data.elem).prop("checked", false);
  306. layer.msg('[专金 - 专银]不能同时选择!', {offset: ['300px', '300px']}, {icon: 5});
  307. return false;
  308. }
  309. getProductImage()
  310. })
  311. // 点击计算,计算价格
  312. form.on('submit(acount_btn)', function (data) {
  313. var kind = $('input[name="kind"]:checked').val()
  314. var number = $("#number").val();
  315. var craftMo = $("input[name='craftMo']:checked").val();
  316. if (kind == '金属标') {
  317. var size = $("#size").val();
  318. var color = $("#color").val();
  319. } else {
  320. var size = $("#UVSize").val();
  321. var craftMo = $('input[name="craftMo"]:checked').val();
  322. var craftShua = [$('input[name="craft"]:checked').val()];
  323. }
  324. if (!kind) {
  325. layer.msg("请选择产品种类!", {offset: ['300px', '300px']}, function () {
  326. });
  327. return false;
  328. }
  329. if (!size) {
  330. layer.msg("请填写尺寸!", {offset: ['300px', '300px']}, function () {
  331. });
  332. return false;
  333. }
  334. // 选中‘自定义数量’
  335. /* if($('input[name="switchCount"]:checked').length != 0){
  336. if ($("#count").val() > 10) {
  337. layer.msg("自定义数量只能填写十以内的整数",{offset:['300px','300px']},function(){});
  338. return false;
  339. }
  340. } */
  341. if (kind == '金属标') {
  342. if ((size.split("*")[0] > 29 || size.split("*")[1] > 19) && (size.split("*")[0] > 19 || size.split("*")[1] > 29)) {
  343. layer.msg("【金属标】尺寸不能超过29*19 cm", {offset: ['300px', '300px']}, function () {
  344. });
  345. return false;
  346. }
  347. } else {
  348. if ((size.split("*")[0] > 500 || size.split("*")[1] > 58) && (size.split("*")[0] > 58 || size.split("*")[1] > 500)) {
  349. layer.msg("【UV转印贴】尺寸不能超过500*58 cm", {offset: ['300px', '300px']}, function () {
  350. });
  351. return false;
  352. }
  353. if (craftShua != "" && craftShua != "双面贴" && (size.split("*")[0] > 42 || size.split("*")[1] > 28.5) && (size.split("*")[0] > 28.5 || size.split("*")[1] > 42)) {
  354. layer.msg("【UV转印贴】带工艺尺寸不能超过42*28.5 cm", {offset: ['300px', '300px']}, function () {
  355. });
  356. return false;
  357. }
  358. }
  359. $.ajax({
  360. url: "${path}/getProductPrice",
  361. type: "GET",
  362. data: $(".big_box form").serialize(),
  363. success: function (result) {
  364. if (result.code == 100) {
  365. layer.msg(result.msg, {offset: ['300px', '300px']}, function () {
  366. });
  367. return false;
  368. }
  369. var data = result.data.proList;
  370. if (kind == '金属标') {
  371. var span_result = '金属标 - ' + color + ' - ' + size + '厘米 -' + craftMo + '-(同款内容)\n';
  372. for (let i = 0; i < data.length; i++) {
  373. span_result += number + '款 各' + data[i].count + "个,共" + data[i].price + "元" + '\n'
  374. data[i].number = number;
  375. let providePrices = data[i].providePrices;
  376. if (providePrices && providePrices.length > 0) {
  377. for (let item in providePrices) {
  378. span_result += providePrices[item].name + ":" + providePrices[item].price + "元。共" + Number(data[i].price + providePrices[item].price).toFixed(2) + '\n'
  379. }
  380. }
  381. }
  382. } else {
  383. var span_result = 'UV转印贴 - ' + craftShua + ' - ' + size + '厘米 -(同款内容) - ' + [data[0].msg] + '\n';
  384. for (let i = 0; i < data.length; i++) {
  385. span_result += number + '款 各' + data[i].count + "个,共" + data[i].price + "元" + '\n'
  386. data[i].number = number;
  387. data[i].kindLabel = 'UV转印贴'
  388. let providePrices = data[i].providePrices;
  389. if (providePrices && providePrices.length > 0) {
  390. for (let item in providePrices) {
  391. span_result += providePrices[item].name + ":" + providePrices[item].price + "元。共" + Number(data[i].price + providePrices[item].price).toFixed(2) + '\n'
  392. }
  393. }
  394. }
  395. }
  396. span_result += '包邮,免费设计呢~(偏远地区需补邮费)'
  397. $("#span_result").val(span_result);
  398. var craft = "";
  399. var count = "";
  400. var kindValue = "";
  401. if ($("#UVSticker").css("display") == "none") {
  402. count = $("#count1").val();
  403. kindValue = color;
  404. } else {
  405. count = $("#count").val();
  406. craft = "模切";
  407. craft += craftShua;
  408. }
  409. getRemark(kind, size, count + "张", kindValue, number, craft, "");
  410. //计算完自动复制文本
  411. var e = document.getElementById("span_result");//对象是content
  412. if (e.value != "") {
  413. e.select();//选择对象
  414. document.execCommand("Copy");//执行浏览器复制命令
  415. }
  416. //生成表格
  417. table.render({
  418. elem: '#priceTable',
  419. even: true, //隔行变色
  420. data: data, // 赋值已知数据
  421. width: 500,
  422. cols: [[
  423. {
  424. field: 'number',
  425. width: '12%',
  426. align: "center",
  427. title: '款数'
  428. }, {
  429. field: 'count',
  430. width: '16%',
  431. align: "center",
  432. title: '数量'
  433. }, {
  434. field: 'price',
  435. width: '16%',
  436. align: "center",
  437. title: '报价'
  438. }, {
  439. field: 'wangwang',
  440. align: "center",
  441. width: '16%',
  442. title: '折扣价'
  443. }, {
  444. field: 'wangwang',
  445. align: "center",
  446. width: '19%',
  447. title: '跳楼价'
  448. }, {
  449. field: 'weight',
  450. width: '21%',
  451. align: "center",
  452. title: '重量(kg)'
  453. }
  454. ]],
  455. done: function () {
  456. }
  457. });
  458. }
  459. });
  460. return false;
  461. });
  462. });
  463. </script>
  464. </html>