From f43970a061d3c90520b4e8f48caa17a204d9a085 Mon Sep 17 00:00:00 2001 From: 移动系统liao <liaoxujun@qq.com> Date: 星期四, 15 八月 2024 10:19:38 +0800 Subject: [PATCH] 完供应商自主维护商品api和后台基础管理页面 --- CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html | 271 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 238 insertions(+), 33 deletions(-) diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html index a90f7d1..e33a034 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html @@ -61,6 +61,13 @@ <div class="layui-form-mid layui-word-aux"> <button href="javascript:void(0);" class="add-brand layui-btn layui-btn-normal layui-btn-xs">娣诲姞鍝佺墝</button> </div> + + <div class="layui-form-item"> + <label for="areaId" class="layui-form-label ">鎵�灞炲湴鍖�</label> + <div class="layui-input-block layui-inline-4 address-class"> + <input type="hidden" name="areaId"> + </div> + </div> </div> <div class="layui-form-item"> @@ -182,7 +189,7 @@ 1銆侀�夋嫨瀵瑰簲鐨勩�愬晢鍝佺被鍨嬨�戯紝灏嗚繘鍏ュSKU璐у搧妯″紡銆傚悓鏃跺鏋滅被鍒湁鍙傛暟锛屼篃灏嗚繘琛屾樉绀鸿缃��<br /> 2銆佽缃SKU鍚庯紝鍟嗗搧鏈韩鐨勪环鏍煎彧鍋氬澶栧睍绀虹敤锛屽疄闄呬互杩涘叆鍟嗗搧璇︽儏閫夋嫨涓嶅悓璐у搧涓哄噯銆�<br /> 3銆佽揣鍝丼KU缁勫悎灞炴�у�煎彧鏀寔锛氫腑鏂囥�佽嫳鏂囥�佹暟瀛椼�佸ぇ鍐欑鍙凤紝灏忓啓绗﹀彿涓変釜锛�-銆�/銆�.锛夛級<br /> - 4銆佽揣鍙峰繀椤讳负SN瀛楁瘝寮�澶�<br /> + 4銆佽揣鍝佺紪鐮佸繀椤讳负SN瀛楁瘝寮�澶�<br /> 5銆佸鏋滀笉璁剧疆鍗曡揣鍝侀噸閲忥紝灏嗛粯璁や娇鐢ㄥ晢鍝侀噸閲忎负1涓崟浣嶇殑閲嶉噺銆� </blockquote>--> @@ -190,7 +197,7 @@ <label for="brandId" class="layui-form-label">浣i噾璁剧疆</label> <div class="layui-input-inline layui-inline-6" pane> {{# layui.each(d.data.productsDistributionType, function(index, item){ }} - <input type="radio" name="goods[productsDistributionType]" value="{{ item.value }}" title="{{ item.description }}" {{item.value===1?'checked="checked"':''}}> + <input type="radio" name="goods[productsDistributionType]" value="{{ item.value }}" title="{{ item.description }}" {{item.value===2?'checked="checked"':''}}> {{# }); }} </div> </div> @@ -222,10 +229,22 @@ <div class="layui-form" id="batchSetting" style="display:none;"> <div class="layui-tab" lay-filter="batchSetting-hash"> <ul class="layui-tab-title"> + <li lay-id="22">SKU閫夋嫨</li> <li class="layui-this" lay-id="11">鍙傛暟璁剧疆</li> <li lay-id="22">鍥剧墖璁剧疆</li> </ul> <div class="layui-tab-content"> + <div class="layui-tab-item"> + <div class="layui-form-item"> + <label class="layui-form-label">SKU閫夋嫨</label> + <div class="layui-input-block" id="skuSetImage"></div> + </div> + <div class="layui-form-item layui-center"> + + <button class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs" onclick="SellAll()">鍏ㄩ��</button> + <button class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs" onclick="SellNoOne()">鍏ㄤ笉閫�</button> + </div> + </div> <div class="layui-tab-item layui-show"> <div class="layui-form-item"> @@ -234,7 +253,7 @@ <input class="layui-input" id="oneKeySetWeight"> </div> <div class="layui-input-inline layui-inline-2"> - <button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(4)"> + <button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySetByName('product[weight]')"> <i class="layui-icon layui-icon-set"></i>纭畾 </button> </div> @@ -278,7 +297,7 @@ <i class="layui-icon layui-icon-set"></i>纭畾 </button> </div> - <label class="layui-form-label"> 涓�绾ц繑鐜�</label> + <label class="layui-form-label">鏅�氱敤鎴疯喘涔拌繑鐜�</label> <div class="layui-input-inline layui-inline-2"> <input class="layui-input" id="oneKeySetLevelOne"> </div> @@ -309,7 +328,7 @@ </div> </div> <div class="layui-form-item"> - <label class="layui-form-label">甯傚満浠�</label> + <label class="layui-form-label">鎸囧闆跺敭浠�</label> <div class="layui-input-inline layui-inline-2"> <input class="layui-input" id="oneKeySetMktPrice"> </div> @@ -331,10 +350,7 @@ </div> <div class="layui-tab-item"> - <div class="layui-form-item"> - <label class="layui-form-label">SKU閫夋嫨</label> - <div class="layui-input-block" id="skuSetImage"></div> - </div> + <div class="layui-form-item"> <label class="layui-form-label" for="avatarImage">鍥剧墖锛�</label> <div class="layui-input-inline" style="margin-left:20px;"> @@ -440,18 +456,20 @@ <tr> <th>榛樿璐у搧</th> <th>鍥剧墖</th> - <th>璐у彿</th> + <th>璐у搧缂栫爜</th> <th>SKU</th> <th>閲嶉噺(鍏�)</th> - <th>璧犻�佺Н鍒�</th> - <th>绉垎鏈�澶�<br />鍙姷閲戦</th> - <th>搴撳瓨</th> + <th>搴撳瓨鏁伴噺</th> + <th style="width: 60px;">寤鸿闆跺敭浠�</th> <th><i class="required-color">*</i>閿�鍞环</th> - <th>鎴愭湰浠�</th> - <th>甯傚満浠�</th> - <th>涓�绾ц繑鐜�</th> - <th>浜岀骇杩旂幇</th> - <th>涓夌骇杩旂幇</th> + <th>缁忛攢鍟嗕环</th> + <th>鎴愭湰浠�</th> + + <th style="width: 60px;">鎺ㄥ箍缁忛攢鍟嗛噰璐繑鐜�</th> + <th>鎺ㄥ箍鐢ㄦ埛璐拱杩旂幇</th> + <th style="width: 80px;">鏄惁鏀寔瀹氬埗</th> + <!-- <th>浜岀骇杩旂幇</th> + <!-- <th>涓夌骇杩旂幇</th> --> --> <th>鎿嶄綔</th> </tr> </thead> @@ -483,7 +501,7 @@ </div> </td> <td> - <input type="text" name="product[sn][]" value="{{item.sn}}" placeholder="璐у彿" class="layui-input layui-inline-3"> + <input type="text" name="product[sn][]" value="{{item.sn}}" placeholder="璐у搧缂栫爜" class="layui-input layui-inline-3"> </td> <td> <input type="hidden" name="product[spesDesc][]" value="{{item.spesDesc}}" placeholder="SKU" class="layui-input"> @@ -492,33 +510,44 @@ <td> <input type="number" name="product[weight][]" value="{{item.weight}}" placeholder="閲嶉噺" class="layui-input layui-inline-1"> </td> - <td> + <!-- <td> <input type="number" name="product[points][]" value="{{item.points}}" placeholder="绉垎" class="layui-input layui-inline-1"> - </td> - <td> + </td> --> + <!-- <td> <input type="text" name="product[pointsDeduction][]" value="{{item.pointsDeduction}}" placeholder="閲戦" class="layui-input layui-inline-1"> - </td> + </td> --> <td class="have-add-td"> <input type="number" name="product[stock][]" value="{{item.stock}}" placeholder="搴撳瓨" class="layui-input layui-inline-1 goods-stock"> + </td> + <td> + <input type="text" name="product[mktprice][]" value="{{item.mktprice}}" placeholder="鎸囧闆跺敭浠�" class="layui-input layui-inline-1"> </td> <td> <input type="text" name="product[price][]" value="{{item.price}}" placeholder="閿�鍞环" class="layui-input layui-inline-1"> </td> <td> + <input type="text" name="product[distributionPrice][]" value="{{item.distributionPrice||'0'}}" placeholder="缁忛攢鍟嗕环鏍�" class="layui-input layui-inline-1"> + </td> + <td> <input type="text" name="product[costprice][]" value="{{item.costprice}}" placeholder="鎴愭湰浠�" class="layui-input layui-inline-1"> </td> + <td> - <input type="text" name="product[mktprice][]" value="{{item.mktprice}}" placeholder="甯傚満浠�" class="layui-input layui-inline-1"> + <input type="text" name="product[distributionCutMoney][]" value="{{item.distributionCutMoney||'0'}}" placeholder="缁忛攢鍟嗚喘涔拌繑鐜�" class="layui-input layui-inline-1"> </td> <td> - <input type="text" name="product[levelOne][]" value="{{item.levelOne}}" placeholder="涓�绾ц繑鐜�" class="layui-input layui-inline-1"> + <input type="text" name="product[cutMoney][]" value="{{item.cutMoney||'0'}}" placeholder="鏅�氱敤鎴疯喘涔拌繑鐜�" class="layui-input layui-inline-1"> + </td> + <td> + <!-- <input type="checkbox" name="product[isCustomizable][]" value="{{item.isCustomizable||'false'}}" placeholder="鏅�氱敤鎴疯喘涔拌繑鐜�" class="layui-input layui-inline-1"> --> + <input type="checkbox" name="product[isCustomizable][]" title="鏀寔|涓嶆敮鎸�" lay-skin="switch" value="{{item.distributionCutMoney||'false'}}" lay-filter="isCustomizable" class="isCustomizable"> </td> - <td> + <!-- <td> <input type="text" name="product[levelTwo][]" value="{{item.levelTwo}}" placeholder="浜岀骇杩旂幇" class="layui-input layui-inline-1"> </td> <td> <input type="text" name="product[levelThree][]" value="{{item.levelThree}}" placeholder="涓夌骇杩旂幇" class="layui-input layui-inline-1"> - </td> + </td> --> <td> <a class="layui-btn layui-btn-danger layui-btn-xs del-class" lay-active="delTr">鍒犻櫎</a> </td> @@ -593,11 +622,11 @@ <div class="layui-input-inline"> <button type="button" class="layui-btn layui-btn-warm layui-btn-sm" lay-active="getGenerateSpecBtn"><i class="layui-icon layui-icon-export"></i>鐢熸垚SKU璐у搧鍒楄〃</button> </div> - <div class="layui-input-inline"> + <!-- <div class="layui-input-inline"> <button type="button" class="aKeySetBtn layui-btn layui-btn-warm layui-btn-sm"> <i class="layui-icon layui-icon-set"></i>涓�閿缃� </button> - </div> + </div> --> </div> </div> <div id="more_spec"></div> @@ -623,10 +652,11 @@ {{# }); }} </select> </script> -<!--//涓�閿缃甋KU鍥剧墖鏃惰嚜鍔ㄧ敓鎴愰�変腑鐨凷KU--> +<script src="/views/liao.js"></script> +<!--涓�閿缃甋KU鍥剧墖鏃惰嚜鍔ㄧ敓鎴愰�変腑鐨凷KU--> <script id="imageSetMoreSku_tpl" type="text/html"> {{# layui.each(d, function(index, item){ }} - <input type="checkbox" name="skuAttrValue" value="{{item}}" title="{{item}}" lay-filter="skuAttrValue-filter"> + <input type="checkbox" name="skuAttrValue" value="{{item}}" title="{{item}}" class="class_onkeySet_checkbox_creat" lay-filter="skuAttrValue-filter"> {{# }); }} </script> @@ -702,7 +732,99 @@ 'Authorization': Authorization } }); + /*****************************************************************/ + //鍦板尯閫夋嫨 + function changeareaIdArea(i, max_i) { + //娓呴櫎鍚庨潰鑺傜偣 + for (var x = i + 1; x <= 6; x++) { //鏈�澶�6灞傦紝瓒冲浜� + $("select[name='areaId_" + x + "']").remove(); + } + var val = $("select[name='areaId_" + i + "']").val(); + if (val != "") { + //鍙栧瓙鑺傜偣鏁版嵁锛岀劧鍚庢樉绀轰笅涓�绾� + coreHelper.Post("Api/Tools/GetAreaChildren", { id: val }, function (e) { + if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹� + if (e.length > 0) { + var str = ""; + str += "<select lay-ignore name='areaId_" + (i + 1) + "' dep='" + (i + 1) + "' class='select-address'>"; + str += "<option value='' >璇烽�夋嫨</option>"; + $.each(e, function (h, z) { + str += "<option value='" + z.id + "' >" + z.name + "</option>"; + }); + str += "</select>"; + $("select[name='areaId_" + i + "']").after(str); + //浠ヤ笂鏁版嵁杈撳嚭瀹岋紝浠ヤ笅缁戝畾浜嬩欢 + $("select[name='areaId_" + (i + 1) + "']").change(function () { + changeareaIdArea(i + 1, i + 2); + }); + + //濡傛灉鏈夎繑鍥炲�硷紝灏辫鏄庣渷甯傚尯娌℃湁閫夋嫨鍒版渶缁堣妭鐐� + if (1 == 1) { + $("input[name='areaId']").val(""); + } else { + $("input[name='areaId']").val($("select[name='areaId_" + i + "']").val()); + } + } else { + $("input[name='areaId']").val($("select[name='areaId_" + i + "']").val()); + } + }); + } else { + if (1 == 1) { + $("input[name='areaId']").val(""); + } else { + //绗竴绾х殑鍏冪礌灏辩洿鎺ヨ祴鍊间负绌哄氨鏄簡 + if (i == 1) { + $("input[name='areaId']").val(""); + } else { + i--; + $("input[name='areaId']").val($("select[name='areaId_" + i + "']").val()); + } + + } + } + } + coreHelper.Post("Api/Tools/GetAreaCheckedList", { id: 0 }, function (data) { + + + var str = ""; + $.each(data, function (i, n) { + + str += "<select lay-ignore name='areaId_" + (i + 1) + "' dep='" + (i + 1) + "' class='select-address'>"; + str += `<option value= ${(d.data.areaId??0)===0?" selected='selected'":''} >璇烽�夋嫨</option>`; + if(n.list.length>0) + { $.each(n.list, function (h, z) { + if (n.hasOwnProperty('info') && n.info?.id == z.id) { + str += "<option value='" + z.id + "' selected='selected'>" + z.name + "</option>"; + } else { + str += "<option value='" + z.id + "' >" + z.name + "</option>"; + } + }); + } + else + { + $.each(n.thisList, function (h, z) { + if (n.hasOwnProperty('info') && n.info?.id == z.id) { + str += "<option value='" + z.id + "' selected='selected'>" + z.name + "</option>"; + } else { + str += "<option value='" + z.id + "' >" + z.name + "</option>"; + } + }); + } + str += "</select>"; + }); + $("input[name='areaId']").after(str); + //浠ヤ笂鏁版嵁杈撳嚭瀹岋紝浠ヤ笅缁戝畾浜嬩欢 + $.each(data, function (i, n) { + + if (i < (data.length)) { + $("select[name='areaId_" + (i + 1) + "']").change(function () { + changeareaIdArea(i + 1, data.length); + }); + } + }); + }); + /*****************************************************************/ //鑾峰彇鍟嗗搧绫诲瀷 types = d.data.types; // 娓叉煋鍟嗗搧鍒嗙被 @@ -1087,7 +1209,7 @@ form.verify({ money: [/((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/, '璇疯緭鍏ラ噾棰�'], verifybn: [/^[\S]{0,30}$/, '鍟嗗搧缂栫爜鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'], - verifysn: [/^[\S]{0,30}$/, '璐у彿鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'], + verifysn: [/^[\S]{0,30}$/, '璐у搧缂栫爜鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'], verifyname: [/^.{0,200}$/, '鍟嗗搧鍚嶇О鏈�澶у彧鍏佽杈撳叆200浣嶅瓧绗�'], verifybrief: [/^.{0,255}$/, '鍟嗗搧绠�浠嬫渶澶у彧鍏佽杈撳叆255浣嶅瓧绗�'], verifyimageIds: [/^[\S]{0,255}$/, '榛樿鍥剧墖 鍥剧墖id鏈�澶у彧鍏佽杈撳叆255浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'], @@ -1346,7 +1468,13 @@ } form.render(); }); - + + // 鐩戝惉寮�鍏冲垏鎹簨浠� + form.on('switch(isCustomizable)', function(data){ + var elem = data.elem; // 褰撳墠寮�鍏冲厓绱� + elem.value=true; + + }); function openSpecBox(is_open) { if (is_open == '0') { $("input[name=openSpec]").val("1"); @@ -1473,6 +1601,7 @@ }, createbn: function () { var bn = layui.coreHelper.getSN('BN'); + $("#bn").val(bn); } , createSn: function () { @@ -1502,6 +1631,7 @@ view2.innerHTML = html; }); form.render("radio"); + } //璧嬪�兼暟鎹� @@ -1731,9 +1861,19 @@ goods.unit = field['goods[unit]']; goods.weight = field['goods[weight]']; goods.openSpec = parseInt(field.openSpec); + if (isNumericString(field["areaId_1"])) { + goods.areaCode+=`${field["areaId_1"]}`; + if (isNumericString(field["areaId_2"])) + goods.areaCode+=`,${field["areaId_2"]}`; + if (isNumericString(field["areaId_3"])) + goods.areaCode+=`,${field["areaId_3"]}`; + } else { + + } //澶氬弬鏁颁骇鍝佸簱鐢熸垚鍒楄〃闆嗗悎 var products = []; var productsCount = parseInt(field['productsCount']); + for (var i = 0; i < productsCount; i++) { var productModel = {}; productModel.costprice = field['product[costprice][' + i + ']']; @@ -1754,6 +1894,13 @@ productModel.levelThree = field['product[levelThree][' + i + ']']; productModel.pointsDeduction = field['product[pointsDeduction][' + i + ']']; productModel.points = field['product[points][' + i + ']']; + debugger + //鐧惧垎鍏垫硶娣诲姞 + productModel.isCustomizable = field['product[isCustomizable][' + i + ']']; + productModel.points = field['product[points][' + i + ']']; + productModel.distributionPrice = field['product[distributionPrice][' + i + ']']; + productModel.distributionCutMoney = field['product[distributionCutMoney][' + i + ']']; + productModel.cutMoney = field['product[cutMoney][' + i + ']']; products.push(productModel); } //浼氬憳浠锋牸妯″瀷 @@ -1807,7 +1954,65 @@ } $('#imageIds').val(imgs); } + function SellAll() + { + // 閫夊彇ID涓篒D_onkeySet_checkbox_creat鐨刢heckbox鍏冪礌 +var checkBoxes = $(".class_onkeySet_checkbox_creat"); +// 璁剧疆閫変腑鐘舵�� +checkBoxes.prop("checked", true); + +// 濡傛灉浣跨敤浜哃ayui Form妯″潡锛屽埛鏂拌〃鍗曠姸鎬� +if (typeof layui.form !== 'undefined') { + layui.form.render(); +} + } + + function SellNoOne() + { + // 閫夊彇ID涓篒D_onkeySet_checkbox_creat鐨刢heckbox鍏冪礌 +var checkBoxes = $(".class_onkeySet_checkbox_creat"); + +// 璁剧疆閫変腑鐘舵�� +checkBoxes.prop("checked", false); + +// 濡傛灉浣跨敤浜哃ayui Form妯″潡锛屽埛鏂拌〃鍗曠姸鎬� +if (typeof layui.form !== 'undefined') { + layui.form.render(); +} + } + function setInputsValueTo(element, prefix, value) { + // 浣跨敤querySelectorAll鑾峰彇鎵�鏈塱nput鍏冪礌锛屽叾涓璶ame灞炴�т互prefix寮�澶� + const inputs = element.querySelectorAll(`input[name^="${prefix}["]`); + + // 閬嶅巻鎵�鏈夋壘鍒扮殑input鍏冪礌 + inputs.forEach(input => { + // 妫�鏌ame灞炴�ф槸鍚︿笌prefix鍖归厤 + if (new RegExp(`^${prefix}\\[\\d+\\]$`).test(input.name)) { + // 璁剧疆input鐨勫�间负鎸囧畾鐨剉alue + input.value = value; + } + }); + } + + + + + + + function oneKeySetByName(name) + { + debugger + + setInputsValueTo(document.getElementById('productsTbody'),name,12); + // 璋冪敤閫掑綊鍑芥暟锛屽紑濮嬮亶鍘嗘寚瀹氱埗鍏冪礌鍙婂叾瀛愬瓩鍏冪礌 + // setValuesRecursively($("#yourParentElementId")); // 鏇挎崲涓哄疄闄呯埗鍏冪礌鐨処D + // 瀹氫箟瑕侀亶鍘嗙殑鐖跺厓绱狅紙渚嬪锛氫竴涓猟iv锛� +//var parentElement = $("#productsTbody tr"); // 鏇挎崲涓哄疄闄呯埗鍏冪礌鐨処D + +// 浣跨敤姝e垯琛ㄨ揪寮忓尮閰峮ame灞炴�т负scol[1-4]鐨刬nput鍏冪礌 +//parentElement.find(`input[${name}^='scol['][${name}$=']']`).val(12); + } function oneKeySet(tag) { var curValue = 0; if (tag == 4) { -- Gitblit v1.9.1