3 files added
10 files modified
| | |
| | | import cc.mrbird.febs.mall.entity.*; |
| | | import cc.mrbird.febs.mall.service.IAdminMallMemberService; |
| | | import cc.mrbird.febs.mall.service.IApiMallMemberService; |
| | | import cc.mrbird.febs.mall.vo.AdminAgentLevelOptionTreeVo; |
| | | import cc.mrbird.febs.mall.vo.AdminMallAddressInfoVo; |
| | | import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo; |
| | | import cc.mrbird.febs.mall.vo.AdminMallSalesmansTreeVo; |
| | | import cc.mrbird.febs.mall.vo.*; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.ibatis.annotations.Param; |
| | |
| | | return mallMemberService.getAddressTree(); |
| | | } |
| | | |
| | | /** |
| | | * 销售员业绩列表 |
| | | */ |
| | | @GetMapping("salesmanAchieveList") |
| | | public FebsResponse salesmanAchieveList(MallSalesman mallSalesman, QueryRequest request) { |
| | | Map<String, Object> data = getDataTable(mallMemberService.getSalesmanAchieveList(mallSalesman, request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | /** |
| | | * 销售员业绩列表-省 |
| | | */ |
| | | @GetMapping("salesmanAchieve/tree") |
| | | @ControllerEndpoint(exceptionMessage = "销售员业绩列表") |
| | | public List<AdminSalesmanAchieveVo> getSalesmanAchieveTree(){ |
| | | return mallMemberService.getSalesmanAchieveTree(); |
| | | } |
| | | |
| | | } |
| | |
| | | return FebsUtil.view("modules/mallMember/addressAmountList"); |
| | | } |
| | | |
| | | /** |
| | | * 地址金额统计列表 |
| | | */ |
| | | @GetMapping("salesmanAchieveList") |
| | | @RequiresPermissions("salesmanAchieveList:view") |
| | | public String salesmanAchieveList() { |
| | | return FebsUtil.view("modules/mallMember/salesmanAchieveList"); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | private String name; |
| | | |
| | | private String province; |
| | | |
| | | private String city; |
| | | |
| | | private String remark; |
| | | |
| | | private Integer state; |
| | |
| | | |
| | | import cc.mrbird.febs.mall.entity.MallAddressInfo; |
| | | import cc.mrbird.febs.mall.entity.MallSalesman; |
| | | import cc.mrbird.febs.mall.vo.AdminAgentSelectVo; |
| | | import cc.mrbird.febs.mall.vo.AdminMallAddressInfoVo; |
| | | import cc.mrbird.febs.mall.vo.AdminMallSalesmansTreeVo; |
| | | import cc.mrbird.febs.mall.vo.*; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | Integer selectSumOrderCntByProvinceAndCity(@Param("province")String province, @Param("city")String city); |
| | | |
| | | List<AdminMallAddressInfoVo> selectProvince(); |
| | | |
| | | IPage<AdminSalesmanAchieveVo> selectSalesmanAchieveListInPage(Page<AdminSalesmanAchieveVo> page, @Param("record")MallSalesman mallSalesman); |
| | | |
| | | List<AdminSalesmanAchieveVo> selectSalesmanAchieveProvince(); |
| | | |
| | | List<AdminMemberOrderVo> selectAdminMemberOrderVoBySalesmanId(@Param("salesmanId")Long salesmanId); |
| | | } |
| | |
| | | IPage<AdminMallAddressInfoVo> getAddressAmountList(MallAddressInfo mallAddressInfo, QueryRequest request); |
| | | |
| | | List<AdminMallAddressInfoVo> getAddressTree(); |
| | | |
| | | IPage<AdminSalesmanAchieveVo> getSalesmanAchieveList(MallSalesman mallSalesman, QueryRequest request); |
| | | |
| | | List<AdminSalesmanAchieveVo> getSalesmanAchieveTree(); |
| | | } |
| | |
| | | return mallSalesmanMapper.selectProvince(); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminSalesmanAchieveVo> getSalesmanAchieveList(MallSalesman mallSalesman, QueryRequest request) { |
| | | Page<AdminSalesmanAchieveVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminSalesmanAchieveVo> adminSalesmanAchieveVoIPage = mallSalesmanMapper.selectSalesmanAchieveListInPage(page, mallSalesman); |
| | | List<AdminSalesmanAchieveVo> records = adminSalesmanAchieveVoIPage.getRecords(); |
| | | if(CollUtil.isNotEmpty(records)){ |
| | | for(AdminSalesmanAchieveVo adminSalesmanAchieveVo : records){ |
| | | Long salesmanId = adminSalesmanAchieveVo.getSalesmanId(); |
| | | List<AdminMemberOrderVo> adminMemberOrderVos = mallSalesmanMapper.selectAdminMemberOrderVoBySalesmanId(salesmanId); |
| | | adminSalesmanAchieveVo.setAdminMemberOrderVos(adminMemberOrderVos); |
| | | } |
| | | } |
| | | return adminSalesmanAchieveVoIPage; |
| | | } |
| | | |
| | | @Override |
| | | public List<AdminSalesmanAchieveVo> getSalesmanAchieveTree() { |
| | | return mallSalesmanMapper.selectSalesmanAchieveProvince(); |
| | | } |
| | | |
| | | private String refererIds(String parentId) { |
| | | boolean flag = false; |
| | | if (StrUtil.isBlank(parentId)) { |
New file |
| | |
| | | package cc.mrbird.febs.mall.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @ApiModel(value = "AdminRankAwardVo", description = "信息返回类") |
| | | public class AdminMemberOrderVo { |
| | | |
| | | private Long orderId; |
| | | |
| | | private String memberName; |
| | | |
| | | private String memberPhone; |
| | | |
| | | private String memberAddress; |
| | | |
| | | private String orderNo; |
| | | |
| | | private String orderAmount; |
| | | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createdTime; |
| | | |
| | | } |
New file |
| | |
| | | package cc.mrbird.febs.mall.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @ApiModel(value = "AdminRankAwardVo", description = "信息返回类") |
| | | public class AdminSalesmanAchieveVo { |
| | | |
| | | //省 |
| | | private String province; |
| | | //市 |
| | | private String city; |
| | | |
| | | private Long salesmanId; |
| | | |
| | | private String salesmanName; |
| | | |
| | | private Integer memberCnt; |
| | | |
| | | private List<AdminMemberOrderVo> adminMemberOrderVos; |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | a.province |
| | | FROM mall_address_info a |
| | | group by a.province |
| | | </select> |
| | | </select> |
| | | |
| | | <select id="selectSalesmanAchieveListInPage" resultType="cc.mrbird.febs.mall.vo.AdminSalesmanAchieveVo"> |
| | | SELECT |
| | | a.province, |
| | | a.city, |
| | | a.name salesmanName, |
| | | a.id salesmanId, |
| | | (select count(b.id) from mall_member b where b.salesmans_id = a.id) memberCnt |
| | | FROM mall_salesman a |
| | | <where> |
| | | <if test="record != null" > |
| | | <if test="record.province != null and record.province != ''"> |
| | | and a.province = #{record.province} |
| | | </if> |
| | | <if test="record.city != null and record.city != ''"> |
| | | and a.city = #{record.city} |
| | | </if> |
| | | </if> |
| | | </where> |
| | | ORDER BY |
| | | memberCnt DESC, a.province ASC |
| | | </select> |
| | | |
| | | <select id="selectSalesmanAchieveProvince" resultType="cc.mrbird.febs.mall.vo.AdminSalesmanAchieveVo"> |
| | | SELECT |
| | | a.province |
| | | FROM mall_salesman a |
| | | group by a.province |
| | | </select> |
| | | |
| | | <select id="selectAdminMemberOrderVoBySalesmanId" resultType="cc.mrbird.febs.mall.vo.AdminMemberOrderVo"> |
| | | select |
| | | c.name memberName, |
| | | c.phone memberPhone, |
| | | a.address memberAddress, |
| | | a.id orderId, |
| | | a.order_no orderNo, |
| | | a.CREATED_TIME createdTime, |
| | | a.amount orderAmount |
| | | from |
| | | mall_order_info a |
| | | left join mall_member c on a.member_id = c.id |
| | | where |
| | | a.status in (2, 3, 4) |
| | | and a.order_type = 1 |
| | | and a.member_id in ( |
| | | select |
| | | b.id |
| | | from mall_member b |
| | | where |
| | | b.salesmans_id = #{salesmanId} |
| | | ) |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">省:</label> |
| | | <div class="layui-input-inline" style="padding-right:13px;"> |
| | | <select name="province" id="selProvince" lay-filter="provinceChange" lay-verify="required"></select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">城市:</label> |
| | | <div class="layui-input-inline" style="padding-right:14px;"> |
| | | <select name="city" id="selCity" lay-filter="cityChange" lay-verify="required"></select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label">备注:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="remark" autocomplete="off" class="layui-input" > |
| | |
| | | </div> |
| | | </form> |
| | | </div> |
| | | <script> |
| | | </script> |
| | | |
| | | <script data-th-inline="javascript"> |
| | | layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','dropdown', 'laydate', 'layedit', 'upload', 'element', 'table', 'xmSelect'], function () { |
| | |
| | | form.render(); |
| | | formSelects.render(); |
| | | |
| | | |
| | | //定义数组,存储省份信息 |
| | | var province = ["北京", "上海", "天津", "重庆", "浙江", "江苏", "广东", "福建", "湖南", "湖北", "辽宁", |
| | | "吉林", "黑龙江", "河北", "河南", "山东", "陕西", "甘肃", "新疆", "青海", "山西", "四川", |
| | | "贵州", "安徽", "江西", "云南", "内蒙古", "西藏", "广西", "宁夏", "海南", "香港", "澳门", "台湾"]; |
| | | |
| | | //定义数组,存储城市信息 |
| | | var beijing = ["东城区", "西城区", "海淀区", "朝阳区", "丰台区", "石景山区", "通州区", "顺义区", "房山区", "大兴区", "昌平区", "怀柔区", "平谷区", "门头沟区", "延庆县", "密云县"]; |
| | | var shanghai = ["浦东新区", "徐汇区", "长宁区", "普陀区", "闸北区", "虹口区", "杨浦区", "黄浦区", "卢湾区", "静安区", "宝山区", "闵行区", "嘉定区", "金山区", "松江区", "青浦区", "南汇区", "奉贤区", "崇明县"]; |
| | | var tianjing = ["河东", "南开", "河西", "河北", "和平", "红桥", "东丽", "津南", "西青", "北辰", "塘沽", "汉沽", "大港", "蓟县", "宝坻", "宁河", "静海", "武清"]; |
| | | var chongqing = ["渝中区", "大渡口区", "江北区", "沙坪坝区", "九龙坡区", "南岸区", "北碚区", "万盛区", "双桥区", "渝北区", "巴南区", "万州区", "涪陵区", "黔江区", "长寿区", "江津区", "合川区", "永川区", "南川区"]; |
| | | var jiangsu = ["南京", "无锡", "常州", "徐州", "苏州", "南通", "连云港", "淮安", "扬州", "盐城", "镇江", "泰州", "宿迁"]; |
| | | var zhejiang = ["杭州", "宁波", "温州", "嘉兴", "湖州", "绍兴", "金华", "衢州", "舟山", "台州", "利水"]; |
| | | var guangdong = ["广州", "韶关", "深圳", "珠海", "汕头", "佛山", "江门", "湛江", "茂名", "肇庆", "惠州", "梅州", "汕尾", "河源", "阳江", "清远", "东莞", "中山", "潮州", "揭阳"]; |
| | | var fujiang = ["福州", "厦门", "莆田", "三明", "泉州", "漳州", "南平", "龙岩", "宁德"]; |
| | | var hunan = ["长沙", "株洲", "湘潭", "衡阳", "邵阳", "岳阳", "常德", "张家界", "益阳", "郴州", "永州", "怀化", "娄底", "湘西土家苗族自治区"]; |
| | | var hubei = ["武汉", "襄阳", "黄石", "十堰", "宜昌", "鄂州", "荆门", "孝感", "荆州", "黄冈", "咸宁", "随州", "恩施土家族苗族自治州"]; |
| | | var liaoning = ["沈阳", "大连", "鞍山", "抚顺", "本溪", "丹东", "锦州", "营口", "阜新", "辽阳", "盘锦", "铁岭", "朝阳", "葫芦岛"]; |
| | | var jilin = ["长春", "吉林", "四平", "辽源", "通化", "白山", "松原", "白城", "延边朝鲜族自治区"]; |
| | | var heilongjiang = ["哈尔滨", "齐齐哈尔", "鸡西", "牡丹江", "佳木斯", "大庆", "伊春", "黑河", "大兴安岭"]; |
| | | var hebei = ["石家庄", "保定", "唐山", "邯郸", "承德", "廊坊", "衡水", "秦皇岛", "张家口"]; |
| | | var henan = ["郑州", "洛阳", "商丘", "安阳", "南阳", "开封", "平顶山", "焦作", "新乡", "鹤壁", "许昌", "漯河", "三门峡", "信阳", "周口", "驻马店", "济源"]; |
| | | var shandong = ["济南", "青岛", "菏泽", "淄博", "枣庄", "东营", "烟台", "潍坊", "济宁", "泰安", "威海", "日照", "滨州", "德州", "聊城", "临沂"]; |
| | | var shangxi = ["西安", "宝鸡", "咸阳", "渭南", "铜川", "延安", "榆林", "汉中", "安康", "商洛"]; |
| | | var gansu = ["兰州", "嘉峪关", "金昌", "金川", "白银", "天水", "武威", "张掖", "酒泉", "平凉", "庆阳", "定西", "陇南", "临夏", "合作"]; |
| | | var qinghai = ["西宁", "海东地区", "海北藏族自治州", "黄南藏族自治州", "海南藏族自治州", "果洛藏族自治州", "玉树藏族自治州", "海西蒙古族藏族自治州"]; |
| | | var xinjiang = ["乌鲁木齐", "奎屯", "石河子", "昌吉", "吐鲁番", "库尔勒", "阿克苏", "喀什", "伊宁", "克拉玛依", "塔城", "哈密", "和田", "阿勒泰", "阿图什", "博乐"]; |
| | | var shanxi = ["太原", "大同", "阳泉", "长治", "晋城", "朔州", "晋中", "运城", "忻州", "临汾", "吕梁"]; |
| | | var sichuan = ["成都", "自贡", "攀枝花", "泸州", "德阳", "绵阳", "广元", "遂宁", "内江", "乐山", "南充", "眉山", "宜宾", "广安", "达州", "雅安", "巴中", "资阳", "阿坝藏族羌族自治州", "甘孜藏族自治州", "凉山彝族自治州"]; |
| | | var guizhou = ["贵阳", "六盘水", "遵义", "安顺", "黔南布依族苗族自治州", "黔西南布依族苗族自治州", "黔东南苗族侗族自治州", "铜仁", "毕节"]; |
| | | var anhui = ["合肥", "芜湖", "安庆", "马鞍山", "阜阳", "六安", "滁州", "宿州", "蚌埠", "巢湖", "淮南", "宣城", "亳州", "淮北", "铜陵", "黄山", "池州"]; |
| | | var jiangxi = ["南昌", "九江", "景德镇", "萍乡", "新余", "鹰潭", "赣州", "宜春", "上饶", "吉安", "抚州"]; |
| | | var yunnan = ["昆明", "曲靖", "玉溪", "保山", "昭通", "丽江", "普洱", "临沧", "楚雄彝族自治州", "大理白族自治州", "红河哈尼族彝族自治州", "文山壮族苗族自治州", "西双版纳傣族自治州", "德宏傣族景颇族自治州", "怒江傈僳族自治州", "迪庆藏族自治州"]; |
| | | var neimenggu = ["呼和浩特", "包头", "乌海", "赤峰", "通辽", "鄂尔多斯", "呼伦贝尔", "巴彦淖尔", "乌兰察布"]; |
| | | var guangxi = ["南宁", "柳州", "桂林", "梧州", "北海", "防城港", "钦州", "贵港", "玉林", "百色", "贺州", "河池", "崇左"]; |
| | | var xizang = ["拉萨", "昌都地区", "林芝地区", "山南地区", "日喀则地区", "那曲地区", "阿里地区"]; |
| | | var ningxia = ["银川", "石嘴山", "吴忠", "固原", "中卫"]; |
| | | var hainan = ["海口", "三亚"]; |
| | | var xianggang = ["中西区", "湾仔区", "东区", "南区", "九龙城区", "油尖旺区", "观塘区", "黄大仙区", "深水埗区", "北区", "大埔区", "沙田区", "西贡区", "元朗区", "屯门区", "荃湾区", "葵青区", "离岛区"]; |
| | | var taiwan = ["台北", "高雄", "基隆", "台中", "台南", "新竹", "嘉义"]; |
| | | var aomeng = ["澳门半岛", "氹仔岛", "路环岛"]; |
| | | |
| | | //页面加载方法 |
| | | $(function () { |
| | | layui.use('form', function () { |
| | | form = layui.form; |
| | | |
| | | //各种基于事件的操作,下面会有进一步介绍 |
| | | //设置省份数据 |
| | | setProvince(); |
| | | //监听下拉事件 |
| | | form.on('select(provinceChange)', function (data) { |
| | | setCity(data.value); |
| | | }); |
| | | //监听下拉事件 |
| | | form.on('select(cityChange)', function (data) { |
| | | // alert(data.value); |
| | | // $("#selCity").val(data.value) |
| | | // data.field.city = data.value; |
| | | }); |
| | | }); |
| | | |
| | | }); |
| | | |
| | | |
| | | //设置省份数据 |
| | | function setProvince() { |
| | | //给省份下拉列表赋值 |
| | | |
| | | var $sel = $("#selProvince"); |
| | | |
| | | //获取对应省份城市 |
| | | for (var i = 0, len = province.length; i < len; i++) { |
| | | modelVal = province[i]; |
| | | var option = $("<option value='" + province[i] + "'>" + province[i] + "</option>"); |
| | | |
| | | //添加到 select 元素中 |
| | | $sel.append(option); |
| | | } |
| | | form.render('select'); |
| | | setCity($($sel.get(0)).val()); |
| | | |
| | | } |
| | | |
| | | |
| | | //根据选中的省份获取对应的城市 |
| | | function setCity(provinec) { |
| | | var $city = $("#selCity"); |
| | | var proCity, option, modelVal; |
| | | |
| | | //通过省份名称,获取省份对应城市的数组名 |
| | | switch (provinec) { |
| | | case "北京": |
| | | proCity = beijing; |
| | | break; |
| | | case "上海": |
| | | proCity = shanghai; |
| | | break; |
| | | case "天津": |
| | | proCity = tianjing; |
| | | break; |
| | | case "重庆": |
| | | proCity = chongqing; |
| | | break; |
| | | case "浙江": |
| | | proCity = zhejiang; |
| | | break; |
| | | case "江苏": |
| | | proCity = jiangsu; |
| | | break; |
| | | case "广东": |
| | | proCity = guangdong; |
| | | break; |
| | | case "福建": |
| | | proCity = fujiang; |
| | | break; |
| | | case "湖南": |
| | | proCity = hunan; |
| | | break; |
| | | case "湖北": |
| | | proCity = hubei; |
| | | break; |
| | | case "辽宁": |
| | | proCity = liaoning; |
| | | break; |
| | | case "吉林": |
| | | proCity = jilin; |
| | | break; |
| | | case "黑龙江": |
| | | proCity = heilongjiang; |
| | | break; |
| | | case "河北": |
| | | proCity = hebei; |
| | | break; |
| | | case "河南": |
| | | proCity = henan; |
| | | break; |
| | | case "山东": |
| | | proCity = shandong; |
| | | break; |
| | | case "陕西": |
| | | proCity = shangxi; |
| | | break; |
| | | case "甘肃": |
| | | proCity = gansu; |
| | | break; |
| | | case "新疆": |
| | | proCity = xinjiang; |
| | | break; |
| | | case "青海": |
| | | proCity = qinghai; |
| | | break; |
| | | case "山西": |
| | | proCity = shanxi; |
| | | break; |
| | | case "四川": |
| | | proCity = sichuan; |
| | | break; |
| | | case "贵州": |
| | | proCity = guizhou; |
| | | break; |
| | | case "安徽": |
| | | proCity = anhui; |
| | | break; |
| | | case "江西": |
| | | proCity = jiangxi; |
| | | break; |
| | | case "云南": |
| | | proCity = yunnan; |
| | | break; |
| | | case "内蒙古": |
| | | proCity = neimenggu; |
| | | break; |
| | | case "西藏": |
| | | proCity = xizang; |
| | | break; |
| | | case "广西": |
| | | proCity = guangxi; |
| | | break; |
| | | case "宁夏": |
| | | proCity = ningxia; |
| | | break; |
| | | case "海南": |
| | | proCity = hainan; |
| | | break; |
| | | case "香港": |
| | | proCity = xianggang; |
| | | break; |
| | | case "澳门": |
| | | proCity = aomeng; |
| | | break; |
| | | case "台湾": |
| | | proCity = taiwan; |
| | | break; |
| | | } |
| | | |
| | | //先清空之前绑定的值 |
| | | $city.empty(); |
| | | |
| | | //设置对应省份的城市 |
| | | for (var i = 0, len = proCity.length; i < len; i++) { |
| | | modelVal = proCity[i]; |
| | | option = "<option value='" + proCity[i] + "'>" + proCity[i] + "</option>"; |
| | | |
| | | //添加 |
| | | $city.append(option); |
| | | } |
| | | form.render('select'); |
| | | } |
| | | |
| | | form.on('submit(salesman-add-form-submit)', function (data) { |
| | | // data.field.city = $view.find('form').find("select[name='city']").val() |
| | | // alert(data.field.city); |
| | | febs.post(ctx + 'admin/mallMember/addSalesman', data.field, function () { |
| | | layer.closeAll(); |
| | | febs.alert.success('操作成功'); |
| | |
| | | cols: [[ |
| | | {field: 'id', title: '序号', minWidth: 100,align:'left'}, |
| | | {field: 'name', title: '姓名', minWidth: 100,align:'left'}, |
| | | {field: 'province', title: '省', minWidth: 100,align:'left'}, |
| | | {field: 'city', title: '市', minWidth: 100,align:'left'}, |
| | | {field: 'remark', title: '备注', minWidth: 140,align:'left'}, |
| | | {field: 'state', title: '状态', |
| | | templet: function (d) { |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-salesman-achieve-list" lay-title="推销员业绩"> |
| | | <div class="layui-row febs-container"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body febs-table-full"> |
| | | <form class="layui-form layui-table-form" lay-filter="salesman-achieve-table-form"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">省:</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="province" class="province-select-category" id="provinceSelect"> |
| | | <option value="">请选择</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> |
| | | <i class="layui-icon"></i> |
| | | </div> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> |
| | | <i class="layui-icon"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | <table lay-filter="salesmanAchieveTable" lay-data="{id: 'salesmanAchieveTable'}"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 表格操作栏 start --> |
| | | <script type="text/html" id="user-option"> |
| | | <span shiro:lacksPermission="user:view,user:update,user:delete"> |
| | | <span class="layui-badge-dot febs-bg-orange"></span> 无权限 |
| | | </span> |
| | | <a lay-event="edit" shiro:hasPermission="user:update"><i |
| | | class="layui-icon febs-edit-area febs-blue"></i></a> |
| | | </script> |
| | | <style> |
| | | .layui-form-onswitch { |
| | | background-color: #5FB878 !important; |
| | | } |
| | | .thead {background-color: rgba(255, 175, 16,0.2);text-align: center;} |
| | | .tbody { |
| | | background-color: rgba(255, 175, 16, 0.1); |
| | | text-align: center; |
| | | width:100px; |
| | | } |
| | | </style> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | | // 引入组件并初始化 |
| | | layui.use([ 'jquery', 'form', 'table', 'febs'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | table = layui.table, |
| | | $view = $('#febs-salesman-achieve-list'), |
| | | $query = $view.find('#query'), |
| | | $reset = $view.find('#reset'), |
| | | $searchForm = $view.find('form'), |
| | | sortObject = {field: 'phone', type: null}, |
| | | tableIns; |
| | | //(下拉框) |
| | | $.get(ctx + 'admin/mallMember/salesmanAchieve/tree', function (data) { |
| | | for (var k in data) |
| | | { |
| | | $(".province-select-category").append("<option value='" + data[k].province + "'>" + data[k].province + "</option>"); |
| | | } |
| | | layui.use('form', function () { |
| | | var form = layui.form; |
| | | form.render(); |
| | | }); |
| | | }); |
| | | form.render(); |
| | | |
| | | // 表格初始化 |
| | | initTable(); |
| | | |
| | | // 初始化表格操作栏各个按钮功能 |
| | | table.on('tool(salesmanAchieveTable)', function (obj) { |
| | | var data = obj.data, |
| | | layEvent = obj.event; |
| | | }); |
| | | |
| | | // 查询按钮 |
| | | $query.on('click', function () { |
| | | var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type}); |
| | | tableIns.reload({where: params, page: {curr: 1}}); |
| | | }); |
| | | |
| | | // 刷新按钮 |
| | | $reset.on('click', function () { |
| | | $searchForm[0].reset(); |
| | | sortObject.type = 'null'; |
| | | tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject}); |
| | | }); |
| | | |
| | | function initTable() { |
| | | tableIns = febs.table.init({ |
| | | elem: $view.find('table'), |
| | | id: 'salesmanAchieveTable', |
| | | url: ctx + 'admin/mallMember/salesmanAchieveList', |
| | | totalRow : true, |
| | | toolbar: '#tableToolBar', |
| | | cols: [[ |
| | | {field: 'province', title: '省', width: 200,align:'center',totalRowText:"合计"}, |
| | | {field: 'city', title: '市', width: 200,align:'center'}, |
| | | {field: 'salesmanName', title: '推销员', width: 200,align:'center', totalRow:true}, |
| | | {field: 'memberCnt', title: '总人数', width: 200,align:'center', totalRow:true}, |
| | | {width: 200,align:'center'}, |
| | | {width: 200,align:'center'}, |
| | | {width: 200,align:'center'}, |
| | | {width: 200,align:'center'} |
| | | ]] |
| | | }); |
| | | } |
| | | |
| | | // 单击父表表格中的某一行 |
| | | table.on('row(salesmanAchieveTable)',function (obj) { |
| | | //得到当前行元素数据 |
| | | var data = obj.data; |
| | | if(true) { |
| | | // 实现手风琴效果 |
| | | $('.thead').remove(); |
| | | $('.tbody').remove(); |
| | | } |
| | | // 展示子表数据 |
| | | if(data.adminMemberOrderVos.length > 0) { |
| | | // 单击行显示出的表格的表体 |
| | | for(var i = data.adminMemberOrderVos.length-1;i >=0;i--) { |
| | | var html = '<tr class="tbody">' + |
| | | '<td></td>\n' + |
| | | '<td>'+data.adminMemberOrderVos[i].orderId+'</td>\n' + |
| | | '<td>'+data.adminMemberOrderVos[i].memberName+'</td>\n' + |
| | | '<td>'+data.adminMemberOrderVos[i].memberPhone+'</td>\n' + |
| | | '<td>'+data.adminMemberOrderVos[i].memberAddress+'</td>\n' + |
| | | '<td>'+data.adminMemberOrderVos[i].orderNo+'</td>\n' + |
| | | '<td>'+data.adminMemberOrderVos[i].orderAmount+'</td>\n' + |
| | | '<td>'+data.adminMemberOrderVos[i].createdTime+'</td>\n' + |
| | | '</tr>'; |
| | | obj.tr.after(html); |
| | | } |
| | | |
| | | // 单击行显示出的表格的表头 |
| | | var html = '<tr class="thead">\n' + |
| | | ' <td></td>\n' + |
| | | ' <td>序号</td>\n' + |
| | | ' <td>客户姓名</td>\n' + |
| | | ' <td>联系电话</td>\n' + |
| | | ' <td>地址</td>\n' + |
| | | ' <td>订单编号</td>\n' + |
| | | ' <td>下单金额</td>\n' + |
| | | ' <td>下单时间</td>\n' + |
| | | ' <td></td>\n' + |
| | | ' </tr>'; |
| | | obj.tr.after(html); |
| | | |
| | | } |
| | | |
| | | }); |
| | | |
| | | // 获取查询参数 |
| | | function getQueryParams() { |
| | | return { |
| | | province: $searchForm.find("select[name='province']").val(), |
| | | // memberName: $searchForm.find('input[name="memberName"]').val().trim(), |
| | | // name: $searchForm.find('input[name="name"]').val().trim(), |
| | | // phone: $searchForm.find('input[name="phone"]').val().trim(), |
| | | // state: $searchForm.find("select[name='state']").val() |
| | | }; |
| | | } |
| | | |
| | | }) |
| | | </script> |
| | |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">省:</label> |
| | | <div class="layui-input-inline" style="padding-right:13px;"> |
| | | <select name="province" id="selProvince" lay-filter="provinceChange" lay-verify="required"></select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">城市:</label> |
| | | <div class="layui-input-inline" style="padding-right:14px;"> |
| | | <select name="city" id="selCity" lay-filter="cityChange" lay-verify="required"></select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label">备注:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="remark" autocomplete="off" class="layui-input" > |
| | |
| | | form = layui.form, |
| | | mallSalesman = [[${mallSalesman}]]; |
| | | form.render(); |
| | | |
| | | |
| | | //定义数组,存储省份信息 |
| | | var province = ["北京", "上海", "天津", "重庆", "浙江", "江苏", "广东", "福建", "湖南", "湖北", "辽宁", |
| | | "吉林", "黑龙江", "河北", "河南", "山东", "陕西", "甘肃", "新疆", "青海", "山西", "四川", |
| | | "贵州", "安徽", "江西", "云南", "内蒙古", "西藏", "广西", "宁夏", "海南", "香港", "澳门", "台湾"]; |
| | | |
| | | //定义数组,存储城市信息 |
| | | var beijing = ["东城区", "西城区", "海淀区", "朝阳区", "丰台区", "石景山区", "通州区", "顺义区", "房山区", "大兴区", "昌平区", "怀柔区", "平谷区", "门头沟区", "延庆县", "密云县"]; |
| | | var shanghai = ["浦东新区", "徐汇区", "长宁区", "普陀区", "闸北区", "虹口区", "杨浦区", "黄浦区", "卢湾区", "静安区", "宝山区", "闵行区", "嘉定区", "金山区", "松江区", "青浦区", "南汇区", "奉贤区", "崇明县"]; |
| | | var tianjing = ["河东", "南开", "河西", "河北", "和平", "红桥", "东丽", "津南", "西青", "北辰", "塘沽", "汉沽", "大港", "蓟县", "宝坻", "宁河", "静海", "武清"]; |
| | | var chongqing = ["渝中区", "大渡口区", "江北区", "沙坪坝区", "九龙坡区", "南岸区", "北碚区", "万盛区", "双桥区", "渝北区", "巴南区", "万州区", "涪陵区", "黔江区", "长寿区", "江津区", "合川区", "永川区", "南川区"]; |
| | | var jiangsu = ["南京", "无锡", "常州", "徐州", "苏州", "南通", "连云港", "淮安", "扬州", "盐城", "镇江", "泰州", "宿迁"]; |
| | | var zhejiang = ["杭州", "宁波", "温州", "嘉兴", "湖州", "绍兴", "金华", "衢州", "舟山", "台州", "利水"]; |
| | | var guangdong = ["广州", "韶关", "深圳", "珠海", "汕头", "佛山", "江门", "湛江", "茂名", "肇庆", "惠州", "梅州", "汕尾", "河源", "阳江", "清远", "东莞", "中山", "潮州", "揭阳"]; |
| | | var fujiang = ["福州", "厦门", "莆田", "三明", "泉州", "漳州", "南平", "龙岩", "宁德"]; |
| | | var hunan = ["长沙", "株洲", "湘潭", "衡阳", "邵阳", "岳阳", "常德", "张家界", "益阳", "郴州", "永州", "怀化", "娄底", "湘西土家苗族自治区"]; |
| | | var hubei = ["武汉", "襄阳", "黄石", "十堰", "宜昌", "鄂州", "荆门", "孝感", "荆州", "黄冈", "咸宁", "随州", "恩施土家族苗族自治州"]; |
| | | var liaoning = ["沈阳", "大连", "鞍山", "抚顺", "本溪", "丹东", "锦州", "营口", "阜新", "辽阳", "盘锦", "铁岭", "朝阳", "葫芦岛"]; |
| | | var jilin = ["长春", "吉林", "四平", "辽源", "通化", "白山", "松原", "白城", "延边朝鲜族自治区"]; |
| | | var heilongjiang = ["哈尔滨", "齐齐哈尔", "鸡西", "牡丹江", "佳木斯", "大庆", "伊春", "黑河", "大兴安岭"]; |
| | | var hebei = ["石家庄", "保定", "唐山", "邯郸", "承德", "廊坊", "衡水", "秦皇岛", "张家口"]; |
| | | var henan = ["郑州", "洛阳", "商丘", "安阳", "南阳", "开封", "平顶山", "焦作", "新乡", "鹤壁", "许昌", "漯河", "三门峡", "信阳", "周口", "驻马店", "济源"]; |
| | | var shandong = ["济南", "青岛", "菏泽", "淄博", "枣庄", "东营", "烟台", "潍坊", "济宁", "泰安", "威海", "日照", "滨州", "德州", "聊城", "临沂"]; |
| | | var shangxi = ["西安", "宝鸡", "咸阳", "渭南", "铜川", "延安", "榆林", "汉中", "安康", "商洛"]; |
| | | var gansu = ["兰州", "嘉峪关", "金昌", "金川", "白银", "天水", "武威", "张掖", "酒泉", "平凉", "庆阳", "定西", "陇南", "临夏", "合作"]; |
| | | var qinghai = ["西宁", "海东地区", "海北藏族自治州", "黄南藏族自治州", "海南藏族自治州", "果洛藏族自治州", "玉树藏族自治州", "海西蒙古族藏族自治州"]; |
| | | var xinjiang = ["乌鲁木齐", "奎屯", "石河子", "昌吉", "吐鲁番", "库尔勒", "阿克苏", "喀什", "伊宁", "克拉玛依", "塔城", "哈密", "和田", "阿勒泰", "阿图什", "博乐"]; |
| | | var shanxi = ["太原", "大同", "阳泉", "长治", "晋城", "朔州", "晋中", "运城", "忻州", "临汾", "吕梁"]; |
| | | var sichuan = ["成都", "自贡", "攀枝花", "泸州", "德阳", "绵阳", "广元", "遂宁", "内江", "乐山", "南充", "眉山", "宜宾", "广安", "达州", "雅安", "巴中", "资阳", "阿坝藏族羌族自治州", "甘孜藏族自治州", "凉山彝族自治州"]; |
| | | var guizhou = ["贵阳", "六盘水", "遵义", "安顺", "黔南布依族苗族自治州", "黔西南布依族苗族自治州", "黔东南苗族侗族自治州", "铜仁", "毕节"]; |
| | | var anhui = ["合肥", "芜湖", "安庆", "马鞍山", "阜阳", "六安", "滁州", "宿州", "蚌埠", "巢湖", "淮南", "宣城", "亳州", "淮北", "铜陵", "黄山", "池州"]; |
| | | var jiangxi = ["南昌", "九江", "景德镇", "萍乡", "新余", "鹰潭", "赣州", "宜春", "上饶", "吉安", "抚州"]; |
| | | var yunnan = ["昆明", "曲靖", "玉溪", "保山", "昭通", "丽江", "普洱", "临沧", "楚雄彝族自治州", "大理白族自治州", "红河哈尼族彝族自治州", "文山壮族苗族自治州", "西双版纳傣族自治州", "德宏傣族景颇族自治州", "怒江傈僳族自治州", "迪庆藏族自治州"]; |
| | | var neimenggu = ["呼和浩特", "包头", "乌海", "赤峰", "通辽", "鄂尔多斯", "呼伦贝尔", "巴彦淖尔", "乌兰察布"]; |
| | | var guangxi = ["南宁", "柳州", "桂林", "梧州", "北海", "防城港", "钦州", "贵港", "玉林", "百色", "贺州", "河池", "崇左"]; |
| | | var xizang = ["拉萨", "昌都地区", "林芝地区", "山南地区", "日喀则地区", "那曲地区", "阿里地区"]; |
| | | var ningxia = ["银川", "石嘴山", "吴忠", "固原", "中卫"]; |
| | | var hainan = ["海口", "三亚"]; |
| | | var xianggang = ["中西区", "湾仔区", "东区", "南区", "九龙城区", "油尖旺区", "观塘区", "黄大仙区", "深水埗区", "北区", "大埔区", "沙田区", "西贡区", "元朗区", "屯门区", "荃湾区", "葵青区", "离岛区"]; |
| | | var taiwan = ["台北", "高雄", "基隆", "台中", "台南", "新竹", "嘉义"]; |
| | | var aomeng = ["澳门半岛", "氹仔岛", "路环岛"]; |
| | | |
| | | //页面加载方法 |
| | | $(function () { |
| | | layui.use('form', function () { |
| | | form = layui.form; |
| | | |
| | | //各种基于事件的操作,下面会有进一步介绍 |
| | | //设置省份数据 |
| | | setProvince(); |
| | | //监听下拉事件 |
| | | form.on('select(provinceChange)', function (data) { |
| | | setCity(data.value); |
| | | }); |
| | | //监听下拉事件 |
| | | form.on('select(cityChange)', function (data) { |
| | | // alert(data.value); |
| | | // $("#selCity").val(data.value) |
| | | // data.field.city = data.value; |
| | | }); |
| | | }); |
| | | |
| | | }); |
| | | |
| | | |
| | | //设置省份数据 |
| | | function setProvince() { |
| | | //给省份下拉列表赋值 |
| | | |
| | | var $sel = $("#selProvince"); |
| | | |
| | | //获取对应省份城市 |
| | | for (var i = 0, len = province.length; i < len; i++) { |
| | | modelVal = province[i]; |
| | | var option = $("<option value='" + province[i] + "'>" + province[i] + "</option>"); |
| | | |
| | | //添加到 select 元素中 |
| | | $sel.append(option); |
| | | } |
| | | form.render('select'); |
| | | setCity($($sel.get(0)).val()); |
| | | |
| | | } |
| | | |
| | | |
| | | //根据选中的省份获取对应的城市 |
| | | function setCity(provinec) { |
| | | var $city = $("#selCity"); |
| | | var proCity, option, modelVal; |
| | | |
| | | //通过省份名称,获取省份对应城市的数组名 |
| | | switch (provinec) { |
| | | case "北京": |
| | | proCity = beijing; |
| | | break; |
| | | case "上海": |
| | | proCity = shanghai; |
| | | break; |
| | | case "天津": |
| | | proCity = tianjing; |
| | | break; |
| | | case "重庆": |
| | | proCity = chongqing; |
| | | break; |
| | | case "浙江": |
| | | proCity = zhejiang; |
| | | break; |
| | | case "江苏": |
| | | proCity = jiangsu; |
| | | break; |
| | | case "广东": |
| | | proCity = guangdong; |
| | | break; |
| | | case "福建": |
| | | proCity = fujiang; |
| | | break; |
| | | case "湖南": |
| | | proCity = hunan; |
| | | break; |
| | | case "湖北": |
| | | proCity = hubei; |
| | | break; |
| | | case "辽宁": |
| | | proCity = liaoning; |
| | | break; |
| | | case "吉林": |
| | | proCity = jilin; |
| | | break; |
| | | case "黑龙江": |
| | | proCity = heilongjiang; |
| | | break; |
| | | case "河北": |
| | | proCity = hebei; |
| | | break; |
| | | case "河南": |
| | | proCity = henan; |
| | | break; |
| | | case "山东": |
| | | proCity = shandong; |
| | | break; |
| | | case "陕西": |
| | | proCity = shangxi; |
| | | break; |
| | | case "甘肃": |
| | | proCity = gansu; |
| | | break; |
| | | case "新疆": |
| | | proCity = xinjiang; |
| | | break; |
| | | case "青海": |
| | | proCity = qinghai; |
| | | break; |
| | | case "山西": |
| | | proCity = shanxi; |
| | | break; |
| | | case "四川": |
| | | proCity = sichuan; |
| | | break; |
| | | case "贵州": |
| | | proCity = guizhou; |
| | | break; |
| | | case "安徽": |
| | | proCity = anhui; |
| | | break; |
| | | case "江西": |
| | | proCity = jiangxi; |
| | | break; |
| | | case "云南": |
| | | proCity = yunnan; |
| | | break; |
| | | case "内蒙古": |
| | | proCity = neimenggu; |
| | | break; |
| | | case "西藏": |
| | | proCity = xizang; |
| | | break; |
| | | case "广西": |
| | | proCity = guangxi; |
| | | break; |
| | | case "宁夏": |
| | | proCity = ningxia; |
| | | break; |
| | | case "海南": |
| | | proCity = hainan; |
| | | break; |
| | | case "香港": |
| | | proCity = xianggang; |
| | | break; |
| | | case "澳门": |
| | | proCity = aomeng; |
| | | break; |
| | | case "台湾": |
| | | proCity = taiwan; |
| | | break; |
| | | } |
| | | |
| | | //先清空之前绑定的值 |
| | | $city.empty(); |
| | | |
| | | //设置对应省份的城市 |
| | | for (var i = 0, len = proCity.length; i < len; i++) { |
| | | modelVal = proCity[i]; |
| | | option = "<option value='" + proCity[i] + "'>" + proCity[i] + "</option>"; |
| | | |
| | | //添加 |
| | | $city.append(option); |
| | | } |
| | | form.render('select'); |
| | | } |
| | | initUserValue(); |
| | | function initUserValue() { |
| | | form.val("salesman-update-form", { |
| | | "id": mallSalesman.id, |
| | | "name": mallSalesman.name, |
| | | "province": mallSalesman.province, |
| | | "city": mallSalesman.city, |
| | | "remark": mallSalesman.remark |
| | | }); |
| | | } |