feat(mall): 新增运费模板功能
- 添加运费模板新增和编辑页面
- 实现运费模板数据加载和保存
- 新增世界地址列表接口和相关实体
- 更新BsApi类中的请求URL和参数
- 优化RedisKeyExpirationListener类
4 files added
8 files modified
| | |
| | | package cc.mrbird.febs.common.listener; |
| | | |
| | | import cc.mrbird.febs.common.enumerates.OrderStatusEnum; |
| | | import cc.mrbird.febs.common.utils.AppContants; |
| | | import cc.mrbird.febs.mall.entity.MallOrderInfo; |
| | | import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.connection.Message; |
| | | import org.springframework.data.redis.listener.KeyExpirationEventMessageListener; |
| | | import org.springframework.data.redis.listener.RedisMessageListenerContainer; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2021-04-16 |
| | | **/ |
| | | @Slf4j |
| | | @Component |
| | | //@Component |
| | | public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener { |
| | | |
| | | public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) { |
| | |
| | | import cc.mrbird.febs.mall.entity.MallStoreItem; |
| | | import cc.mrbird.febs.mall.service.IAdminMallGoodsCategoryService; |
| | | import cc.mrbird.febs.mall.service.IApiMallGoodsCategoryService; |
| | | import cc.mrbird.febs.mall.vo.AdminAddAddressTreeVo; |
| | | import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | return new FebsResponse().success().data(mallGoodsCategoryService.findAllCategoryList()); |
| | | } |
| | | |
| | | @GetMapping(value = "/addressMYXL") |
| | | public FebsResponse addressMYXL() { |
| | | return new FebsResponse().success().data(mallGoodsCategoryService.findAllAddressList()); |
| | | } |
| | | |
| | | /** |
| | | * 商品分类-选择 |
| | | */ |
New file |
| | |
| | | package cc.mrbird.febs.mall.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @TableName("mall_address_world") |
| | | public class MallAddressWorld implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | private Long id; |
| | | private Long pid; |
| | | private String path; |
| | | private String level; |
| | | private String name; |
| | | private String nameEn; |
| | | private String namePinyin; |
| | | private String code; |
| | | |
| | | @TableField(exist = false) |
| | | private List<MallAddressWorld> childrens; |
| | | } |
New file |
| | |
| | | package cc.mrbird.febs.mall.mapper; |
| | | |
| | | import cc.mrbird.febs.mall.entity.MallAddressWorld; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | |
| | | public interface MallAddressWorldMapper extends BaseMapper<MallAddressWorld> { |
| | | } |
| | |
| | | package cc.mrbird.febs.mall.service; |
| | | |
| | | import cc.mrbird.febs.mall.entity.MallGoodsCategory; |
| | | import cc.mrbird.febs.mall.vo.AdminWorldAddressVo; |
| | | import cc.mrbird.febs.mall.vo.MallGoodsCategoryVo; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | |
| | | List<MallGoodsCategory> findChildCategoryListById(Long id); |
| | | |
| | | List<MallGoodsCategory> findRecommendCategory(); |
| | | |
| | | List<AdminWorldAddressVo> findAllAddressList(); |
| | | } |
| | |
| | | package cc.mrbird.febs.mall.service.impl; |
| | | |
| | | import cc.mrbird.febs.mall.entity.MallAddressWorld; |
| | | import cc.mrbird.febs.mall.entity.MallGoodsCategory; |
| | | import cc.mrbird.febs.mall.mapper.MallAddressWorldMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallGoodsCategoryMapper; |
| | | import cc.mrbird.febs.mall.service.IApiMallGoodsCategoryService; |
| | | import cc.mrbird.febs.mall.vo.AdminWorldAddressVo; |
| | | import cc.mrbird.febs.mall.vo.MallGoodsCategoryVo; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | @RequiredArgsConstructor |
| | | public class ApiMallGoodsCategoryServiceImpl extends ServiceImpl<MallGoodsCategoryMapper, MallGoodsCategory> implements IApiMallGoodsCategoryService { |
| | | |
| | | private final MallAddressWorldMapper mallAddressWorldMapper; |
| | | |
| | | @Override |
| | | public List<MallGoodsCategoryVo> findAllCategoryList() { |
| | |
| | | public List<MallGoodsCategory> findRecommendCategory() { |
| | | return this.baseMapper.selectRecommendCategoryList(); |
| | | } |
| | | |
| | | @Override |
| | | public List<AdminWorldAddressVo> findAllAddressList() { |
| | | List<AdminWorldAddressVo> objects = new ArrayList<>(); |
| | | LambdaQueryWrapper<MallAddressWorld> addressWorldLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | addressWorldLambdaQueryWrapper.eq(MallAddressWorld::getPid, 131) |
| | | .eq(MallAddressWorld::getLevel, 3) |
| | | .orderByAsc(MallAddressWorld::getId); |
| | | // 执行查询 |
| | | List<MallAddressWorld> mallAddressWorlds = mallAddressWorldMapper.selectList(addressWorldLambdaQueryWrapper); |
| | | if(CollUtil.isNotEmpty(mallAddressWorlds)){ |
| | | mallAddressWorlds.forEach(item -> { |
| | | AdminWorldAddressVo adminWorldAddressVo = new AdminWorldAddressVo(); |
| | | adminWorldAddressVo.setId(item.getId()); |
| | | adminWorldAddressVo.setName(item.getName()+"-"+item.getNameEn()+"-"+item.getNamePinyin()); |
| | | objects.add(adminWorldAddressVo); |
| | | }); |
| | | } |
| | | return objects; |
| | | } |
| | | } |
| | |
| | | * partnerKey : ER5DFRT320D4ed6FAFs3G410Fs977 |
| | | * Endpoint :http://sgp-seaedi.800best.com/Malaysia/kdapi/api/proces |
| | | */ |
| | | String url = "http://sgp-seaedi.800best.com/Malaysia/kdapi/api/proces"; |
| | | // String url = "http://sgp-seaedi.800best.com/Malaysia/kdapi/api/proces"; |
| | | String url = "http://open-sgp.800best.com/api-server/m9api/api/process"; |
| | | String partnerID = "MY_LEADING"; |
| | | String partnerKey = "ER5DFRT320D4ed6FAFs3G410Fs977"; |
| | | String format = "JSON"; |
New file |
| | |
| | | package cc.mrbird.febs.mall.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel(value = "AdminSelectListLeaderVo", description = "信息返回类") |
| | | public class AdminWorldAddressVo { |
| | | private Long id; |
| | | private String name; |
| | | |
| | | } |
| | |
| | | import com.best.javaSdk.kdTraceQuery.request.KdTraceQueryReq; |
| | | import com.best.javaSdk.kdTraceQuery.request.MailNos; |
| | | import com.best.javaSdk.kdTraceQuery.response.KdTraceQueryRsp; |
| | | import com.best.javaSdk.kdTraceQuery.response.TraceLogs; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | |
| | | public class BsApi { |
| | | |
| | | public static void main(String[] args) { |
| | | String url = "http://open-sgp.800best.com/api-server/m9api/api/process"; |
| | | String partnerID = "71"; |
| | | String partnerKey = "G95DIM64"; |
| | | String url = "http://sea-edi-hxtest.800best.com/Malaysia/kdapi/api/process"; |
| | | String partnerID = "M_TEST"; |
| | | String partnerKey = "TEST12345"; |
| | | String format = "JSON"; |
| | | |
| | | Client client = new Client(url, partnerID, partnerKey, format); |
| | |
| | | KdTraceQueryReq tdTraceQueryReq = new KdTraceQueryReq(); |
| | | MailNos mailNos = new MailNos(); |
| | | List<String> mailNo = new ArrayList<>(); |
| | | mailNo.add("JT689574278404"); |
| | | mailNo.add("451238000"); |
| | | mailNos.setMailNo(mailNo); |
| | | tdTraceQueryReq.setMailNos(mailNos); |
| | | tdTraceQueryReq.setLangType("zh-CN"); |
| | | // tdTraceQueryReq.setLangType("en-US"); |
| | | |
| | | KdTraceQueryRsp kdTraceQueryRsp = client.executed(tdTraceQueryReq); |
| | | System.out.println(JSONUtil.parseObj(kdTraceQueryRsp)); |
| | | List<TraceLogs> traceLogs = kdTraceQueryRsp.getTraceLogs(); |
| | | traceLogs.forEach(item1 -> item1.getTraces().getTrace().forEach(trace -> System.out.println(JSONUtil.toJsonStr(trace))) ); |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-carriage-rule-add" lay-title="运费模板新增"> |
| | | <div class="layui-row febs-container"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-fluid" id="carriage-rule-add"> |
| | | <form class="layui-form" action="" lay-filter="carriage-rule-add-form"> |
| | | <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief"> |
| | | <ul class="layui-tab-title"> |
| | | <li class="layui-this">运费模板</li> |
| | | </ul> |
| | | <div class="layui-tab-content"> |
| | | <div class="layui-tab-item layui-show"> |
| | | <blockquote class="layui-elem-quote blue-border">基本信息</blockquote> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">标题:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="ruleName" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">计价方式:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="radio" name="valuationType" value="1" title="按件算" checked /> |
| | | <!-- <input type="radio" name="valuationType" value="2" title="按重量算" />--> |
| | | </div> |
| | | </div> |
| | | |
| | | <blockquote class="layui-elem-quote blue-border">默认规则</blockquote> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">默认运费:</label> |
| | | <div class="layui-input-inline" style="width: 80px"> |
| | | <input type="text" name="basicCntDefault" lay-verify="required" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | <div class="layui-form-mid">件内,</div> |
| | | <div class="layui-input-inline" style="width: 80px"> |
| | | <input type="text" name="basicPriceDefault" lay-verify="required" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | <div class="layui-form-mid">元,</div> |
| | | <div class="layui-form-mid">每增加</div> |
| | | <div class="layui-input-inline" style="width: 80px"> |
| | | <input type="text" name="moreCntDefault" lay-verify="required" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | <div class="layui-form-mid">件,增加运费</div> |
| | | <div class="layui-input-inline" style="width: 80px"> |
| | | <input type="text" name="morePriceDefault" lay-verify="required" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | <div class="layui-form-mid">元。</div> |
| | | </div> |
| | | <div class="layui-form-item multi-rule-table"> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <blockquote class="layui-elem-quote blue-border">为指定省份设置运费</blockquote> |
| | | |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">指定省份:</label> |
| | | <div class="layui-input-block"> |
| | | <div id="province-set"></div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <button type="button" class="layui-btn layui-btn-normal layui-btn" id="test3" >添加</button> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <div class="layui-input-block"> |
| | | <table id="multiRule" lay-filter="multiRule"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item febs-hide"> |
| | | <button class="layui-btn" lay-submit="" lay-filter="carriage-rule-add-form-submit" id="submit">保存</button> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <style> |
| | | .blue-border { |
| | | border-left-color: #2db7f5; |
| | | font-size: 18px; |
| | | } |
| | | </style> |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | | <button class="layui-btn layui-btn-danger layui-btn-sm" type="button" lay-event="delSku">删除</button> |
| | | </div> |
| | | </script> |
| | | <!-- 表格操作栏 end --> |
| | | <script data-th-inline="javascript"> |
| | | layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','dropdown', 'laydate', 'layedit', 'upload', 'element', 'table', 'xmSelect'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | layer = layui.layer, |
| | | table = layui.table, |
| | | formSelects = layui.formSelects, |
| | | treeSelect = layui.treeSelect, |
| | | form = layui.form, |
| | | laydate = layui.laydate, |
| | | eleTree = layui.eleTree, |
| | | $view = $('#carriage-rule-add'), |
| | | layedit = layui.layedit, |
| | | upload = layui.upload, |
| | | validate = layui.validate, |
| | | element = layui.element; |
| | | |
| | | form.render(); |
| | | |
| | | formSelects.render(); |
| | | |
| | | var provinceSet = xmSelect.render({ |
| | | el: '#province-set', |
| | | toolbar: { |
| | | show: true, |
| | | list: [ 'ALL', 'CLEAR', 'REVERSE' ] |
| | | }, |
| | | filterable: true, |
| | | data: [ |
| | | {name: '北京市',value: 1,selected:false}, |
| | | {name: '天津市',value: 2,selected:false}, |
| | | {name: '河北省',value: 3,selected:false}, |
| | | {name: '山西省',value: 4,selected:false}, |
| | | {name: '辽宁省',value: 5,selected:false}, |
| | | |
| | | {name: '吉林省',value: 6,selected:false}, |
| | | {name: '黑龙江省',value: 7,selected:false}, |
| | | {name: '上海市',value: 8,selected:false}, |
| | | {name: '江苏省',value: 9,selected:false}, |
| | | {name: '浙江省',value: 10,selected:false}, |
| | | |
| | | {name: '安徽省',value: 11,selected:false}, |
| | | {name: '福建省',value: 12,selected:false}, |
| | | {name: '江西省',value: 13,selected:false}, |
| | | {name: '山东省',value: 14,selected:false}, |
| | | {name: '河南省',value: 15,selected:false}, |
| | | |
| | | {name: '湖北省',value: 16,selected:false}, |
| | | {name: '湖南省',value: 17,selected:false}, |
| | | {name: '广东省',value: 18,selected:false}, |
| | | {name: '广西壮族自治区',value: 19,selected:false}, |
| | | {name: '海南省',value: 20,selected:false}, |
| | | |
| | | {name: '重庆市',value: 21,selected:false}, |
| | | {name: '四川省',value: 22,selected:false}, |
| | | {name: '贵州省',value: 23,selected:false}, |
| | | {name: '云南省',value: 24,selected:false}, |
| | | {name: '西藏自治区',value: 25,selected:false}, |
| | | |
| | | {name: '陕西省',value: 26,selected:false}, |
| | | {name: '甘肃省',value: 27,selected:false}, |
| | | {name: '青海省',value: 28,selected:false}, |
| | | {name: '宁夏回族自治区',value: 29,selected:false}, |
| | | {name: '内蒙古自治区',value: 30,selected:false}, |
| | | |
| | | {name: '新疆维吾尔自治区',value: 31,selected:false}, |
| | | {name: '台湾省',value: 32,selected:false}, |
| | | {name: '香港特别行政区',value: 33,selected:false}, |
| | | {name: '澳门特别行政区',value: 34,selected:false}, |
| | | ], |
| | | }) |
| | | let provinceChoiceExist = ""; |
| | | $('#test3').on('click', function (){ |
| | | let provinceChoice = provinceSet.getValue('name'); |
| | | if(provinceChoice == null || provinceChoice == ""){ |
| | | febs.alert.warn('指定省份不能为空'); |
| | | return false; |
| | | } |
| | | let provinceChoiceStr = ""; |
| | | for (let i = 0; i < provinceChoice.length; i++) { |
| | | //判断字符串是否出现过 =-1则没有出现 |
| | | if(provinceChoiceExist.indexOf(provinceChoice[i]) != -1){ |
| | | febs.alert.warn('['+provinceChoice[i]+'],指定省份不能重复'); |
| | | return false; |
| | | } |
| | | provinceChoiceStr = provinceChoiceStr + provinceChoice[i]+","; |
| | | provinceChoiceExist = provinceChoiceExist + provinceChoiceStr; |
| | | } |
| | | let data = {}; |
| | | data.areaAddress = provinceChoiceStr; |
| | | data.basicCnt = 1; |
| | | data.basicPrice = 1; |
| | | data.moreCnt = 1; |
| | | data.morePrice = 1; |
| | | addTableDate(data); |
| | | }); |
| | | |
| | | var ruleData=[]; |
| | | var tableIns = table.render({ |
| | | elem: '#multiRule' |
| | | ,limit:999 |
| | | ,toolbar:"#toolbar" |
| | | ,defaultToolbar:[] |
| | | ,cols: [ |
| | | [ |
| | | ,{align: 'center', title: '请选择', colspan: 2} |
| | | ,{field:'areaAddress', title:'指定省份', width:400, rowspan: 2,align: 'center'} |
| | | ,{align: 'center', title: '规则( 2 件内,2 元,每 1 增加件,增加运费 1 元。)', colspan: 4} |
| | | ], |
| | | [ //表头 |
| | | {type: 'checkbox', rowspan: 2,align: 'center' } |
| | | ,{field: 'index', title: '序号', width:100, rowspan: 2,align: 'center'} |
| | | ,{field: 'basicCnt', title: '件内', width:200,edit:'text'} |
| | | ,{field: 'basicPrice', title: '运费', width:200,edit:'text'} |
| | | ,{field: 'moreCnt', title: '每增加', width:200,edit:'text'} |
| | | ,{field: 'morePrice', title: '增加运费', width:200,edit:'text'} |
| | | ]] |
| | | ,data: [] |
| | | }); |
| | | |
| | | table.on('toolbar(multiRule)', function(obj){ |
| | | var data = obj.data; |
| | | var hasData = table.cache['multiRule']; |
| | | var checkData = table.checkStatus('multiRule').data; |
| | | |
| | | if (checkData.length <= 0) { |
| | | febs.alert.warn('请选择删除数据'); |
| | | return; |
| | | } |
| | | if(obj.event === 'delSku'){ |
| | | for (let i = 0; i < checkData.length; i++) { |
| | | var delData = checkData[i]; |
| | | for (let j = 0; j < hasData.length; j++) { |
| | | if (hasData[j].index == delData.index) { |
| | | hasData.splice(j, 1); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | for (let i = 0; i < hasData.length; i++) { |
| | | hasData[i].index = i + 1; |
| | | } |
| | | |
| | | ruleData=hasData; |
| | | reloadTable(hasData); |
| | | } |
| | | }); |
| | | |
| | | function addTableDate(data) { |
| | | var hasData = table.cache['multiRule']; |
| | | |
| | | data.index = hasData.length + 1; |
| | | ruleData.push(data); |
| | | |
| | | reloadTable(ruleData); |
| | | return data.index; |
| | | } |
| | | |
| | | function reloadTable(data) { |
| | | table.reload('multiRule', { |
| | | data : data |
| | | }); |
| | | } |
| | | |
| | | table.on('edit(multiRule)', function(obj){ |
| | | var value = obj.value //得到修改后的值 |
| | | ,data = obj.data //得到所在行所有键值 |
| | | ,field = obj.field; //得到字段 |
| | | |
| | | for (let i = 0; i < ruleData.length; i++) { |
| | | if (ruleData[i].index == data.index) { |
| | | ruleData[i] = data; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | form.on('submit(carriage-rule-add-form-submit)', function (data) { |
| | | data.field.adminCarriageRuleAddInfoDtos = ruleData; |
| | | $.ajax({ |
| | | 'url':ctx + 'admin/goods/carriageRuleAdd', |
| | | 'type':'post', |
| | | 'dataType':'json', |
| | | 'headers' : {'Content-Type' : 'application/json;charset=utf-8'}, //接口json格式 |
| | | 'traditional': true,//ajax传递数组必须添加属性 |
| | | 'data':JSON.stringify(data.field), |
| | | 'success':function (data) { |
| | | if(data.code==200){ |
| | | layer.closeAll(); |
| | | febs.alert.success(data.message); |
| | | $('#febs-carriage-rule').find('#reset').click(); |
| | | }else{ |
| | | febs.alert.warn(data.message); |
| | | } |
| | | }, |
| | | 'error':function () { |
| | | febs.alert.warn('服务器繁忙'); |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | }); |
| | | </script> |
| | |
| | | list: [ 'ALL', 'CLEAR', 'REVERSE' ] |
| | | }, |
| | | filterable: true, |
| | | data: [ |
| | | {name: '北京市',value: 1,selected:false}, |
| | | {name: '天津市',value: 2,selected:false}, |
| | | {name: '河北省',value: 3,selected:false}, |
| | | {name: '山西省',value: 4,selected:false}, |
| | | {name: '辽宁省',value: 5,selected:false}, |
| | | |
| | | {name: '吉林省',value: 6,selected:false}, |
| | | {name: '黑龙江省',value: 7,selected:false}, |
| | | {name: '上海市',value: 8,selected:false}, |
| | | {name: '江苏省',value: 9,selected:false}, |
| | | {name: '浙江省',value: 10,selected:false}, |
| | | |
| | | {name: '安徽省',value: 11,selected:false}, |
| | | {name: '福建省',value: 12,selected:false}, |
| | | {name: '江西省',value: 13,selected:false}, |
| | | {name: '山东省',value: 14,selected:false}, |
| | | {name: '河南省',value: 15,selected:false}, |
| | | |
| | | {name: '湖北省',value: 16,selected:false}, |
| | | {name: '湖南省',value: 17,selected:false}, |
| | | {name: '广东省',value: 18,selected:false}, |
| | | {name: '广西壮族自治区',value: 19,selected:false}, |
| | | {name: '海南省',value: 20,selected:false}, |
| | | |
| | | {name: '重庆市',value: 21,selected:false}, |
| | | {name: '四川省',value: 22,selected:false}, |
| | | {name: '贵州省',value: 23,selected:false}, |
| | | {name: '云南省',value: 24,selected:false}, |
| | | {name: '西藏自治区',value: 25,selected:false}, |
| | | |
| | | {name: '陕西省',value: 26,selected:false}, |
| | | {name: '甘肃省',value: 27,selected:false}, |
| | | {name: '青海省',value: 28,selected:false}, |
| | | {name: '宁夏回族自治区',value: 29,selected:false}, |
| | | {name: '内蒙古自治区',value: 30,selected:false}, |
| | | |
| | | {name: '新疆维吾尔自治区',value: 31,selected:false}, |
| | | {name: '台湾省',value: 32,selected:false}, |
| | | {name: '香港特别行政区',value: 33,selected:false}, |
| | | {name: '澳门特别行政区',value: 34,selected:false}, |
| | | ], |
| | | data: [], |
| | | }) |
| | | febs.get(ctx + 'admin/goodsCategory/addressMYXL', null, function(res) { |
| | | provinceSet.update({ |
| | | // data : res.data, |
| | | data : res.data.map(province => ({ |
| | | name: province.name, |
| | | value: province.id, |
| | | selected: false |
| | | })), |
| | | autoRow: true, |
| | | }); |
| | | }) |
| | | let provinceChoiceExist = ""; |
| | | $('#test3').on('click', function (){ |
| | | let provinceChoice = provinceSet.getValue('name'); |
| | | console.log(provinceChoice); |
| | | if(provinceChoice == null || provinceChoice == ""){ |
| | | febs.alert.warn('指定省份不能为空'); |
| | | return false; |
| | |
| | | list: [ 'ALL', 'CLEAR', 'REVERSE' ] |
| | | }, |
| | | filterable: true, |
| | | data: [ |
| | | {name: '北京市',value: 1,selected:false}, |
| | | {name: '天津市',value: 2,selected:false}, |
| | | {name: '河北省',value: 3,selected:false}, |
| | | {name: '山西省',value: 4,selected:false}, |
| | | {name: '辽宁省',value: 5,selected:false}, |
| | | |
| | | {name: '吉林省',value: 6,selected:false}, |
| | | {name: '黑龙江省',value: 7,selected:false}, |
| | | {name: '上海市',value: 8,selected:false}, |
| | | {name: '江苏省',value: 9,selected:false}, |
| | | {name: '浙江省',value: 10,selected:false}, |
| | | |
| | | {name: '安徽省',value: 11,selected:false}, |
| | | {name: '福建省',value: 12,selected:false}, |
| | | {name: '江西省',value: 13,selected:false}, |
| | | {name: '山东省',value: 14,selected:false}, |
| | | {name: '河南省',value: 15,selected:false}, |
| | | |
| | | {name: '湖北省',value: 16,selected:false}, |
| | | {name: '湖南省',value: 17,selected:false}, |
| | | {name: '广东省',value: 18,selected:false}, |
| | | {name: '广西壮族自治区',value: 19,selected:false}, |
| | | {name: '海南省',value: 20,selected:false}, |
| | | |
| | | {name: '重庆市',value: 21,selected:false}, |
| | | {name: '四川省',value: 22,selected:false}, |
| | | {name: '贵州省',value: 23,selected:false}, |
| | | {name: '云南省',value: 24,selected:false}, |
| | | {name: '西藏自治区',value: 25,selected:false}, |
| | | |
| | | {name: '陕西省',value: 26,selected:false}, |
| | | {name: '甘肃省',value: 27,selected:false}, |
| | | {name: '青海省',value: 28,selected:false}, |
| | | {name: '宁夏回族自治区',value: 29,selected:false}, |
| | | {name: '内蒙古自治区',value: 30,selected:false}, |
| | | |
| | | {name: '新疆维吾尔自治区',value: 31,selected:false}, |
| | | {name: '台湾省',value: 32,selected:false}, |
| | | {name: '香港特别行政区',value: 33,selected:false}, |
| | | {name: '澳门特别行政区',value: 34,selected:false}, |
| | | ], |
| | | data: [], |
| | | }) |
| | | febs.get(ctx + 'admin/goodsCategory/addressMYXL', null, function(res) { |
| | | provinceSet.update({ |
| | | // data : res.data, |
| | | data : res.data.map(province => ({ |
| | | name: province.name, |
| | | value: province.id, |
| | | selected: false |
| | | })), |
| | | autoRow: true, |
| | | }); |
| | | }) |
| | | |
| | | let provinceChoiceExist = ""; |