canopy.jsp 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  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. <title>Insert title here</title>
  9. <%@include file="/views/common.jsp" %>
  10. </head>
  11. <!-- 黑卡 -->
  12. <style>
  13. </style>
  14. <body>
  15. <div class="big_box">
  16. <div class="left_div">
  17. <h1 class="h2">天幕</h1> <span style="color:red;font-weight:700;"></span>
  18. <hr>
  19. <form class="layui-form">
  20. <p>
  21. 材质
  22. </p>
  23. <div class="layui-form-item">
  24. <select name="kindValue" id="kindValue" lay-filter="kindValue" class="select">
  25. <option value=""></option>
  26. <option value="银胶涤纶布">银胶涤纶布</option>
  27. <option value="黑胶涤纶布">黑胶涤纶布</option>
  28. </select>
  29. </div>
  30. <input type="hidden" name="proTypeValue" class="layui-input" value="天幕">
  31. <input type="hidden" id="proTypeValue" value="天幕">
  32. <p>
  33. 尺寸(CM/厘米) <span style="font-size:14px;color:red">输入格式: 长 * 宽</span>
  34. <span>
  35. <input type="checkbox" name="switchSize" lay-filter="switchSize" title="自定义尺寸">
  36. </span>
  37. </p>
  38. <div class="layui-form-item">
  39. <select name="size" id="size" class="layui-form-select">
  40. <option value="290*290">290*290cm</option>
  41. <option value="420*390">420*390cm</option>
  42. <option value="420*490">420*490cm</option>
  43. </select>
  44. </div>
  45. <div class="layui-form-item" style="display: none">
  46. <input type="text" name="size" id="diySize" placeholder="格式:长*宽" class="layui-input" autocomplete="off">
  47. </div>
  48. <p>
  49. 数量(个)
  50. </p>
  51. <div class="layui-form-item">
  52. <input type="text" placeholder="请输入整数" autocomplete="off" name="count" id="count" class="layui-input"
  53. lay-verify="number">
  54. </div>
  55. <p>
  56. 款数
  57. </p>
  58. <div class="layui-form-item">
  59. <input type="text" placeholder="请输入整数" autocomplete="off" name="number" id="number" value="1"
  60. class="layui-input" lay-verify="number">
  61. </div>
  62. <p>
  63. 安装包(五件套)<span style="font-size:14px;color:red">伸缩杆:直径2.5厘米2根、防风绳: 4米固定8条、地钉: 8颗、三角扣:(车间车在各个吊耳上面)、安装包</span>
  64. </p>
  65. <div class="layui-form-item" style="display: flex;align-items: center">
  66. 配件:
  67. <input type="checkbox" name="craft" lay-filter="switch" value="防风绳" title="防风绳">
  68. <span class="layui-inline" id="ffs" style="display: none;width: 100px;align-items: center">
  69. <input type="text" name="pcount" value="0" placeholder="请输入整数" class="layui-input" autocomplete="off"><span
  70. style="flex-shrink: 0">(4米/条)</span>
  71. </span>
  72. <input type="checkbox" name="craft" lay-filter="switch" value="安装包" title="安装包" checked>
  73. <span class="layui-inline" id="shuliang" style="display: flex;width: 100px;align-items: center">
  74. <input type="text" name="shuliang" value="0" placeholder="请输入整数" class="layui-input" autocomplete="off"><span
  75. style="flex-shrink: 0">套</span>
  76. </span>
  77. </div>
  78. <%-- <p>--%>
  79. <%-- 印刷<span--%>
  80. <%-- style="font-size:14px;color:red">印刷内容空白 工艺是模切的话 文件名要备注定制</span>--%>
  81. <%-- </p>--%>
  82. <%-- <div class="layui-input-block">--%>
  83. <%-- <input type="radio" name="craft" lay-filter="switch" value="空白" title="空白" lay-skin="primary">--%>
  84. <%-- <input type="radio" name="craft" lay-filter="switch" value="定制" title="定制" lay-skin="primary" checked>--%>
  85. <%-- </div>--%>
  86. <p>
  87. 工艺
  88. </p>
  89. <div class="layui-input-block">
  90. <input type="checkbox" name="craft" lay-filter="switch" value="裁切吊耳" title="裁切吊耳">
  91. <input type="checkbox" name="craft" lay-filter="switch" value="模切吊耳" title="模切吊耳">
  92. </div>
  93. <hr>
  94. <div class="layui-form-item">
  95. <button class="layui-btn" lay-submit="" lay-filter="acount_btn">计算</button>
  96. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  97. </div>
  98. <h2>计算结果-
  99. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm copyResult"
  100. onclick="copyResult()">点击复制
  101. </button>
  102. </h2>
  103. <div>
  104. <textarea rows="11" cols="75" id="span_result" readonly="readonly"></textarea>
  105. <%@include file="../acountExpressFee.jsp" %>
  106. </div>
  107. <div>
  108. <table class="layui-hide" id="priceTable" lay-filter="priceTable"></table>
  109. </div>
  110. </form>
  111. </div>
  112. <div class="right_div" style="margin-left:50px;">
  113. <div class="layui-carousel" id="test1">
  114. <div carousel-item id="carousel"></div>
  115. <br>
  116. <div id="remark" style="font-size:20px;color:red"></div>
  117. </div>
  118. </div>
  119. </div>
  120. </body>
  121. <script src="../../js/carousel.js" charset="utf-8"></script>
  122. <%@include file="/views/copyResult.jsp" %>
  123. <script>
  124. layui.use(['table', 'form', 'carousel'], function () {
  125. var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
  126. var carousel = layui.carousel;
  127. var table = layui.table;
  128. //建造实例
  129. ins = carousel.render({});
  130. function getProductImage(craft) {
  131. $("#carousel").empty();
  132. $("#remark").empty();
  133. let data = {proTypeValue: "天幕"}
  134. let remark = "";
  135. let html = "";
  136. if (craft != '' && craft == '定制') {
  137. data.craftValue = craft;
  138. }
  139. $.ajax({
  140. url: "${pageContext.request.contextPath}/getImgs",
  141. type: "GET",
  142. data,
  143. //dataType : "json",
  144. success: function (result) {
  145. for (let i = 0; i < result.length; i++) {
  146. // 只留一个remark
  147. remark = "";
  148. html += '<div><img style="width:100%;height: 100%;object-fit: contain" src="' + result[i].imgUrl + '"></div>';
  149. remark += '<div><span>' + result[0].remark + '<span/></div>';
  150. }
  151. $("#carousel").append(html);
  152. // 如果没有说明,就不显示null
  153. if (remark.indexOf("null") < 0) {
  154. $("#remark").append(remark);
  155. }
  156. // 如果没有轮播图就隐藏
  157. if (result.length == 0) {
  158. document.getElementById("test1").style.display = "none"; //隐藏
  159. } else {
  160. document.getElementById("test1").style.display = "block"; //显示
  161. ins.reload({
  162. elem: '#test1',
  163. width: result[0].imgWidth, //设置容器宽度
  164. height: result[0].imgHeight
  165. });
  166. }
  167. }
  168. });
  169. }
  170. form.on("radio(switch)", (data) => {
  171. getProductImage(data.elem.checked ? data.value : '');
  172. })
  173. form.on('checkbox(switchSize)', function (data) {
  174. $("#diySize").parent().hide()
  175. $("#size").parent().show()
  176. $("#size").attr("disabled", false);
  177. $("#diySize").attr("disabled", true);
  178. if (data.elem.checked) {
  179. $("#diySize").parent().show()
  180. $("#size").parent().hide()
  181. $("#size").attr("disabled", true);
  182. $("#diySize").attr("disabled", false);
  183. }
  184. form.render();
  185. })
  186. const carft_list1 = ["裁切", "模切"];
  187. const carft_list2 = ["防风绳", "安装包"];
  188. form.on("checkbox(switch)", (data) => {
  189. let craft_list = []
  190. $("input[name='craft']:checked").each(function () {
  191. if (!$(this).is("disabled")) {
  192. craft_list.push($(this).val())
  193. }
  194. })
  195. const carft1 = carft_list1.filter(craft => craft_list.includes(craft));
  196. if (carft1.length > 1) {
  197. $(data.elem).next().attr("class", "layui-unselect layui-form-checkbox");
  198. $(data.elem).prop("checked", false);
  199. layer.msg('裁切-模切不能同时选择!', {offset: ['300px', '300px']}, function () {
  200. });
  201. return false;
  202. }
  203. // const carft2 = carft_list2.filter(craft => craft_list.includes(craft));
  204. // if (carft2.length > 1) {
  205. // $(data.elem).next().attr("class", "layui-unselect layui-form-checkbox");
  206. // $(data.elem).prop("checked", false);
  207. // layer.msg('防风绳-安装包不能同时选择!', {offset: ['300px', '300px']}, function () {
  208. // });
  209. // return false;
  210. // }
  211. if (data.value == '安装包') {
  212. if (data.elem.checked) {
  213. $("#shuliang").css("display", "flex");
  214. } else {
  215. $("input[name='shuliang']").val(0)
  216. $("#shuliang").hide()
  217. }
  218. }
  219. if (data.value == '防风绳') {
  220. if (data.elem.checked) {
  221. $("#ffs").css("display", "flex");
  222. } else {
  223. $("input[name='pcount']").val(0)
  224. $("#ffs").hide()
  225. }
  226. }
  227. getProductImage(data.elem.checked ? data.value : '');
  228. })
  229. // 点击计算,计算价格
  230. form.on('submit(acount_btn)', function (data) {
  231. let size = $("#size").val();
  232. let count = $("#count").val();
  233. let craft_list = [];
  234. $("input[name='craft']:checked").each(function () {
  235. if (!$(this).is("disabled")) {
  236. craft_list.push($(this).val())
  237. }
  238. })
  239. let shuliang = $("input[name='shuliang']").val();
  240. if (craft_list.includes("安装包") && shuliang == 0) {
  241. layer.msg('请输入安装包数量!', {offset: ['300px', '300px']}, function () {
  242. });
  243. return false;
  244. }
  245. if ($("input[name='switchSize']").is(":checked")) {
  246. size = $("#diySize").val();
  247. }
  248. if (!size) {
  249. layer.msg('请输入尺寸!', {offset: ['300px', '300px']}, function () {
  250. });
  251. return false;
  252. }
  253. if (!count) {
  254. layer.msg('请输入数量!', {offset: ['300px', '300px']}, function () {
  255. });
  256. return false;
  257. }
  258. if (size.split("*")[0] < 50 || size.split("*")[1] < 50) {
  259. layer.msg('天幕最小尺寸50*50cm!', {offset: ['300px', '300px']}, function () {
  260. });
  261. return false;
  262. }
  263. if (size.split("*")[0] > 160 || size.split("*")[1] > 160) {
  264. layer.msg('天幕尺寸超过160cm需要拼接!', {offset: ['300px', '300px']}, function () {
  265. });
  266. }
  267. $.ajax({
  268. url: "${path}/getThanSum",
  269. type: "GET",
  270. data: $(".big_box form").serialize(),
  271. success: function (result) {
  272. if (result.code == 100) {
  273. layer.msg(result.msg, {offset: ['300px', '300px']}, function () {
  274. });
  275. return false;
  276. }
  277. let arr = [];
  278. let data = result.data.proList;
  279. let kind = $("select[name='kindValue'] option:selected").val();
  280. let number = $("#number").val();
  281. let shuliang = $("input[name='shuliang']").val() || 0;
  282. let pcount = $("input[name='pcount']").val() || 0;
  283. $("input[name='craft']:checked").each(function () {
  284. if (!$(this).is("disabled")) {
  285. if ($(this).val() == "安装包") {
  286. arr.push($(this).val() + shuliang)
  287. } else if ($(this).val() == "防风绳") {
  288. arr.push($(this).val() + pcount)
  289. } else {
  290. arr.push($(this).val())
  291. }
  292. }
  293. })
  294. let span_result = kind + ' - ' + size + ' 厘米 -(同款内容)\n' + "工艺 :" + arr.join(",") + "\n";
  295. if (number > 1) {
  296. for (let i = 0; i < data.length; i++) {
  297. span_result += number + '款 各' + data[i].count + "个,共" + data[i].price + "元" + '\n'
  298. data[i].number = number;
  299. }
  300. } else {
  301. for (let i = 0; i < data.length; i++) {
  302. span_result += number + '款 ' + data[i].count + "个,共" + data[i].price + "元" + '\n'
  303. data[i].number = number;
  304. }
  305. }
  306. span_result += '包邮,免费设计呢~(偏远地区需补邮费)'
  307. $("#span_result").val(span_result);
  308. getRemark($("#proTypeValue").val(), size, count, kind, number, arr, "");
  309. //计算完自动复制文本
  310. var e = document.getElementById("span_result");//对象是content
  311. if (e.value != "") {
  312. e.select();//选择对象
  313. document.execCommand("Copy");//执行浏览器复制命令
  314. }
  315. //生成表格
  316. table.render({
  317. elem: '#priceTable',
  318. even: true, //隔行变色
  319. data: data, // 赋值已知数据
  320. width: 500,
  321. cols: [[
  322. {
  323. field: 'number',
  324. width: '12%',
  325. align: "center",
  326. title: '款数'
  327. }, {
  328. field: 'count',
  329. width: '16%',
  330. align: "center",
  331. title: '数量'
  332. }, {
  333. field: 'price',
  334. width: '16%',
  335. align: "center",
  336. title: '报价'
  337. }, {
  338. field: 'weight',
  339. width: '21%',
  340. align: "center",
  341. title: '重量(kg)'
  342. }
  343. ]],
  344. done: function () {
  345. }
  346. });
  347. }
  348. });
  349. return false;
  350. });
  351. });
  352. </script>
  353. </html>