src/main/java/cc/mrbird/febs/mall/controller/AdminMallTeamLeaderController.java
@@ -49,8 +49,26 @@ */ @PostMapping("leaderUpdate") @ControllerEndpoint(operation = "团长信息--审核", exceptionMessage = "审核失败") public FebsResponse leaderUpdate(@Valid AdminLeaderUpdateDto adminLeaderUpdateDto) { return iAdminMallTeamLeaderService.leaderUpdate(adminLeaderUpdateDto); public FebsResponse leaderUpdate(@Valid MallTeamLeader mallTeamLeader) { return iAdminMallTeamLeaderService.leaderUpdate(mallTeamLeader); } /** * 团长-开启返利 */ @GetMapping("startProfit/{id}") @ControllerEndpoint(operation = "团长-开启返利", exceptionMessage = "操作失败") public FebsResponse startProfit(@NotNull(message = "{required}") @PathVariable Long id) { return iAdminMallTeamLeaderService.startProfit(id); } /** * 团长-关闭返利 */ @GetMapping("closeProfit/{id}") @ControllerEndpoint(operation = "团长-关闭返利", exceptionMessage = "操作失败") public FebsResponse closeProfit(@NotNull(message = "{required}") @PathVariable Long id) { return iAdminMallTeamLeaderService.closeProfit(id); } src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java
@@ -5,7 +5,9 @@ import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; import cc.mrbird.febs.common.utils.FebsUtil; import cc.mrbird.febs.mall.entity.DataDictionaryCustom; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; import cc.mrbird.febs.mall.mapper.MallMemberMapper; import cc.mrbird.febs.mall.service.IAdminMallTeamLeaderService; import cc.mrbird.febs.mall.vo.AdminLeaderBonusSettingVo; import cc.mrbird.febs.mall.vo.AdminMallTeamLeaderVo; @@ -25,6 +27,7 @@ private final IAdminMallTeamLeaderService iAdminMallTeamLeaderService; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; private final MallMemberMapper mallMemberMapper; /** * 团长信息--列表 @@ -59,7 +62,8 @@ @GetMapping("addLeader/{id}") public String addLeader(@PathVariable long id, Model model) { model.addAttribute("memberId", id); MallMember mallMember = mallMemberMapper.selectById(id); model.addAttribute("mallMember", mallMember); return FebsUtil.view("modules/leader/addLeader"); } src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderAddDto.java
@@ -18,9 +18,9 @@ //团长姓名 private String name; //手机号码 // private String phone; private String phone; //团长特征码 // private String uniqueCode; private String uniqueCode; //自提点照片 private String addressPic; //省 @@ -37,4 +37,6 @@ private Double longitude; //纬度 private Double latitude; //团长返利百分比如0.15表示15% private String bonusPercent; } src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderUpdateDto.java
@@ -1,5 +1,6 @@ package cc.mrbird.febs.mall.dto; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import lombok.Data; @@ -7,9 +8,41 @@ @Data @ApiModel(value = "AdminLeaderUpdateDto", description = "接收参数类") public class AdminLeaderUpdateDto { @NotNull(message = "ID不能为空") private Long id; //用户ID private Long memberId; //申请状态 1:审核通过 2:审核不通过 3:申请中 4:已取消 private Integer state; public static final Integer STATE_YES = 1; public static final Integer STATE_NO = 2; public static final Integer STATE_ING = 3; public static final Integer STATE_CANCEL = 4; //团长姓名 private String name; //手机号码 private String phone; //团长特征码 private String uniqueCode; //自提点照片 private String addressPic; //小区名称 private String addressArea; //详细地址 private String detailAddress; //经度 private Double longitude; //纬度 private Double latitude; @TableField(exist = false) private Double distance; private String wxCodeImg; //团长返利开关 1:开启 2:关闭 private Integer profitSwitch; //团长返利百分比如0.15表示15% private String bonusPercent; @NotNull(message = "审核结果不能为空") private int isOk; src/main/java/cc/mrbird/febs/mall/entity/MallTeamLeader.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import javax.validation.constraints.NotNull; import java.util.Date; //团长信息表 @@ -48,5 +49,12 @@ private Double distance; private String wxCodeImg; //团长返利开关 1:开启 2:关闭 private Integer profitSwitch; //团长返利百分比如0.15表示15% private String bonusPercent; @TableField(exist = false) private int isOk; } src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java
@@ -19,7 +19,7 @@ AdminMallTeamLeaderVo getMallTeamLederInfoById(long id); FebsResponse leaderUpdate(AdminLeaderUpdateDto adminLeaderUpdateDto); FebsResponse leaderUpdate(MallTeamLeader mallTeamLeader); List<AdminSelectListLeaderVo> selectList(MallTeamLeader mallTeamLeader); @@ -28,4 +28,8 @@ IPage<MallLeaderStock> leaderGoodsUpdate(QueryRequest request, MallLeaderStock mallLeaderStock); FebsResponse addLeader(AdminLeaderAddDto adminLeaderAddDto); FebsResponse startProfit(Long id); FebsResponse closeProfit(Long id); } src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
@@ -71,20 +71,30 @@ } @Override public FebsResponse leaderUpdate(AdminLeaderUpdateDto adminLeaderUpdateDto) { Long id = adminLeaderUpdateDto.getId(); MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id); Integer state = mallTeamLeader.getState(); if(MallTeamLeader.STATE_ING != state){ return new FebsResponse().fail().message("只有【待审核】状态才能提交!"); public FebsResponse leaderUpdate(MallTeamLeader mallTeamLeader) { Long id = mallTeamLeader.getId(); MallTeamLeader mallTeamLeaders = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(mallTeamLeaders)){ return new FebsResponse().fail().message("团长信息不存在,刷新重试"); } int isOk = adminLeaderUpdateDto.getIsOk(); // Integer state = mallTeamLeader.getState(); // if(MallTeamLeader.STATE_ING != state){ // return new FebsResponse().fail().message("只有【待审核】状态才能提交!"); // } Double bonusPercent = Double.parseDouble(mallTeamLeader.getBonusPercent()); if(1 <= bonusPercent || 0 > bonusPercent){ return new FebsResponse().fail().message("请输入合适的百分比小数"); } int isOk = mallTeamLeader.getIsOk(); if(MallTeamLeader.STATE_YES == isOk){ mallTeamLeader.setState(MallTeamLeader.STATE_YES); mallTeamLeader.setProfitSwitch(2); this.baseMapper.updateById(mallTeamLeader); } if(MallTeamLeader.STATE_NO == isOk){ mallTeamLeader.setState(MallTeamLeader.STATE_NO); mallTeamLeader.setProfitSwitch(2); this.baseMapper.updateById(mallTeamLeader); } return new FebsResponse().success().message("审核成功"); @@ -145,6 +155,10 @@ if(CollUtil.isNotEmpty(mallTeamLeaderCancel)){ return new FebsResponse().fail().message("当前用户无法申请"); } Double bonusPercent = Double.parseDouble(adminLeaderAddDto.getBonusPercent()); if(1 <= bonusPercent || 0 > bonusPercent){ return new FebsResponse().fail().message("请输入合适的百分比小数"); } MallTeamLeader mallTeamLeader = MallTeamLeaderConversion.INSTANCE.adminDtoToEntity(adminLeaderAddDto); mallTeamLeader.setUniqueCode(mallMember.getInviteId()); mallTeamLeader.setMemberId(memberId); @@ -154,4 +168,34 @@ this.baseMapper.insert(mallTeamLeader); return new FebsResponse().success(); } @Override public FebsResponse startProfit(Long id) { MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(mallTeamLeader)){ return new FebsResponse().fail().message("团长信息不存在,刷新重试"); } Integer state = mallTeamLeader.getState(); if(1!=state){ return new FebsResponse().fail().message("目前还不是团长,无法操作"); } mallTeamLeader.setProfitSwitch(1); this.baseMapper.updateById(mallTeamLeader); return new FebsResponse().success(); } @Override public FebsResponse closeProfit(Long id) { MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(mallTeamLeader)){ return new FebsResponse().fail().message("团长信息不存在,刷新重试"); } Integer state = mallTeamLeader.getState(); if(1!=state){ return new FebsResponse().fail().message("目前还不是团长,无法操作"); } mallTeamLeader.setProfitSwitch(2); this.baseMapper.updateById(mallTeamLeader); return new FebsResponse().success(); } } src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
@@ -80,6 +80,9 @@ mallTeamLeader.setMemberId(memberId); mallTeamLeader.setState(MallTeamLeader.STATE_ING); mallTeamLeader.setUniqueCode(member.getInviteId()); //申请团长默认关闭返利,返利比例为0 mallTeamLeader.setProfitSwitch(2); mallTeamLeader.setBonusPercent("0"); this.baseMapper.insert(mallTeamLeader); return new FebsResponse().success().message("申请成功"); } src/main/java/cc/mrbird/febs/mall/vo/AdminMallTeamLeaderVo.java
@@ -40,4 +40,9 @@ private Date createdTime; //团战提成收益 private BigDecimal totalProfit; //团长返利开关 1:开启 2:关闭 private Integer profitSwitch; //团长返利百分比如0.15表示15% private String bonusPercent; } src/main/resources/templates/febs/views/modules/leader/addLeader.html
@@ -29,33 +29,29 @@ </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">姓名:</label> <div class="layui-input-block"> <input type="text" name="name" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">手机号码:</label> <div class="layui-input-block"> <input type="text" name="phone" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" > <input type="text" name="phone" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">省:</label> <label class="layui-form-label febs-form-item-require">团长码:</label> <div class="layui-input-block"> <input type="text" id="province" name="province" placeholder="" lay-verify="required" autocomplete="off" class="layui-input" > <input type="text" name="uniqueCode" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">市:</label> <label class="layui-form-label febs-form-item-require">收益率:</label> <div class="layui-input-block"> <input type="text" name="city" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" > </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">区:</label> <div class="layui-input-block"> <input type="text" name="township" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" > </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">详细地址:</label> <div class="layui-input-block"> <input type="text" name="detailAddress" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" > <input type="text" name="bonusPercent" lay-verify="text" autocomplete="off" class="layui-input" > <div class="layui-form-mid layui-word-aux">请输入0到1之间的小数,团长收益百分比如0.15表示15%</div> </div> </div> <div class="layui-form-item"> @@ -68,7 +64,6 @@ <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">自提点照片:</label> <div class="layui-input-block"> <!-- <img alt="头像" data-th-src="${leaderInfo.addressPic}" readonly>--> <button type="button" class="layui-btn" id="imageUpload" style="background-color: #009688; margin-bottom: 2px">图片上传</button> <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;"> <div class=" layui-upload-list view-images" id="addressPicImage"> @@ -77,6 +72,13 @@ <div> <input type="text" id="addressPic" name="addressPic" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly> </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="text" id="detailAddress" name="detailAddress" class="layui-input"> <div class="layui-form-mid layui-word-aux">地图选择后,可以继续填写楼栋单元号</div> </div> </div> <div class="layui-form-item"> @@ -118,7 +120,7 @@ febs = layui.febs, layer = layui.layer, form = layui.form, memberId = [[${memberId}]], mallMember = [[${mallMember}]], upload = layui.upload, $view = $('#user-addLeader'), $viewMap = $('#febs-map-demo'), @@ -136,7 +138,27 @@ febs.alert.success('经度:' + e.lnglat.getLng() + ',纬度:' + e.lnglat.getLat()+e.province); $("#longitude").val(e.lnglat.getLng()); $("#latitude").val(e.lnglat.getLat()); //这边是数组 var lnglatXY=[e.lnglat.getLng(),e.lnglat.getLat()]; regeocoder(lnglatXY); }); //坐标-地址 function regeocoder(lnglatXY) { //逆地理编码 var geocoder = new AMap.Geocoder({ radius: 1000, extensions: "all" }); geocoder.getAddress(lnglatXY, function(status, result) { if (status === 'complete' && result.info === 'OK') { geocoder_CallBack(result); } }); } function geocoder_CallBack(data) { var address = data.regeocode.formattedAddress; //返回地址描述 document.getElementById("detailAddress").value=address; } form.render(); upload.render({ @@ -158,7 +180,10 @@ function initUserValue() { form.val("user-addLeader-form", { "memberId": memberId, "memberId": mallMember.id, "name": mallMember.name, "phone": mallMember.phone, "uniqueCode": mallMember.inviteId, }); } src/main/resources/templates/febs/views/modules/leader/leaderList.html
@@ -62,6 +62,13 @@ <a lay-event="edit" shiro:hasPermission="user:update"><i class="layui-icon febs-edit-area febs-blue"></i></a> </script> <script type="text/html" id="upOrDownSwitch"> {{# if(d.profitSwitch === 1) { }} <input type="checkbox" value={{d.id}} lay-text="开启|关闭" checked lay-skin="switch" lay-filter="upOrDownSwitch"> {{# } else { }} <input type="checkbox" value={{d.id}} lay-text="开启|关闭" lay-skin="switch" lay-filter="upOrDownSwitch"> {{# } }} </script> <!-- 表格操作栏 end --> <script data-th-inline="none" type="text/javascript"> // 引入组件并初始化 @@ -111,7 +118,7 @@ }); } if (layEvent === 'leaderCancel') { febs.modal.confirm('取消', '用户被取消团长资格将无法再次申请', function () { febs.modal.confirm('拉黑', '团长被拉黑,将无法再次申请团长', function () { leaderCancel(data.id); }); } @@ -168,6 +175,8 @@ {field: 'addressArea', title: '自提点名称', minWidth: 150,align:'left'}, {field: 'detailAddress', title: '自提点地址', minWidth: 150,align:'left'}, {field: 'totalProfit', title: '收益', minWidth: 150,align:'left'}, {field: 'profitSwitch', title: '是否返利', templet: '#upOrDownSwitch', minWidth: 100,align:'center'}, {field: 'bonusPercent', title: '返利比例', minWidth: 150,align:'left'}, // {field: 'phone', title: '电话', minWidth: 150,align:'left'}, {field: 'state', title: '状态', templet: function (d) { @@ -190,7 +199,8 @@ + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="leaderUpdate" shiro:hasPermission="user:update">审核</button>' }else if(d.state === 1) { return '' + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="leaderCancel" shiro:hasPermission="user:update">取消</button>' + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="leaderUpdate" shiro:hasPermission="user:update">修改</button>' + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="leaderCancel" shiro:hasPermission="user:update">拉黑</button>' // + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="leaderGoodsUpdate" shiro:hasPermission="user:update">团长商品设置</button>' }else{ return ''; @@ -200,14 +210,28 @@ }); } form.on('switch(startOrCloseSwitch)', function (data) { form.on('switch(upOrDownSwitch)', function (data) { if (data.elem.checked) { startAct(data.value); startProfit(data.value); } else { closeAct(data.value); closeProfit(data.value); } }) function startProfit(id) { febs.get(ctx + 'admin/leader/startProfit/' + id, null, function () { febs.alert.success('开启成功'); $query.click(); }); } function closeProfit(id) { febs.get(ctx + 'admin/leader/closeProfit/' + id, null, function () { febs.alert.success('关闭成功'); $query.click(); }); } // 获取查询参数 function getQueryParams() { return { src/main/resources/templates/febs/views/modules/leader/leaderUpdate.html
@@ -31,62 +31,75 @@ <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">姓名:</label> <div class="layui-input-block"> <input type="text" name="name" class="layui-input" readonly> <input type="text" name="name" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">手机号码:</label> <div class="layui-input-block"> <input type="text" name="phone" class="layui-input" readonly> <input type="text" name="phone" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">省:</label> <label class="layui-form-label febs-form-item-require">收益率:</label> <div class="layui-input-block"> <input type="text" name="province" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">市:</label> <div class="layui-input-block"> <input type="text" name="city" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">区:</label> <div class="layui-input-block"> <input type="text" name="township" class="layui-input" readonly> <input type="text" name="bonusPercent" lay-verify="text" autocomplete="off" class="layui-input" > <div class="layui-form-mid layui-word-aux">请输入0到1之间的小数,团长收益百分比如0.15表示15%</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="text" name="detailAddress" class="layui-input" readonly> <input type="text" id="detailAddress" name="detailAddress" class="layui-input"> <div class="layui-form-mid layui-word-aux">地图选择后,可以继续填写楼栋单元号</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="text" name="addressArea" class="layui-input" readonly> <input type="text" name="addressArea" class="layui-input"> <div class="layui-form-mid layui-word-aux">小区名称(自提点名称)</div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">自提点照片:</label> <div class="layui-input-block"> <img alt="头像" data-th-src="${leaderInfo.addressPic}" readonly> <button type="button" class="layui-btn" id="imageUpload" style="background-color: #009688; margin-bottom: 2px">图片上传</button> <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;"> <div class=" layui-upload-list view-images" id="addressPicImage"> </div> </blockquote> <div> <input type="text" id="addressPic" name="addressPic" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">地图选择:</label> <div class="layui-input-block"> <div class="layui-fluid layui-anim febs-anim" id="febs-map-demo" lay-title="高德地图"> <div class="layui-row febs-container"> <div class="layui-card"> <div style="padding: .1rem;"> <div id="container" class="map"></div> </div> </div> </div> </div> <div class="layui-form-mid layui-word-aux">自提点位置</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="text" name="longitude" class="layui-input" readonly> <input type="text" id="longitude" name="longitude" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">纬度:</label> <div class="layui-input-block"> <input type="text" name="latitude" class="layui-input" readonly> <input type="text" id="latitude" name="latitude" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> @@ -103,30 +116,86 @@ </div> <script data-th-inline="javascript"> layui.use(['febs', 'form', 'formSelects', 'treeSelect', 'eleTree'], function () { layui.use(['febs', 'form', 'formSelects', 'treeSelect', 'eleTree', 'upload'], function () { var $ = layui.$, febs = layui.febs, layer = layui.layer, form = layui.form, leaderInfo = [[${leaderInfo}]], $view = $('#febs-leader-update'), $viewMap = $('#febs-map-demo'), upload = layui.upload, _deptTree; $viewMap.find('#container').css({"height": document.documentElement.clientHeight - 97 + 'px'}); var map = new AMap.Map("container", { center: [leaderInfo.longitude, leaderInfo.latitude], resizeEnable: true, zoom: 14 //初始地图级别 }); //为地图注册click事件获取鼠标点击出的经纬度坐标 map.on('click', function (e) { console.log(e); febs.alert.success('经度:' + e.lnglat.getLng() + ',纬度:' + e.lnglat.getLat()); $("#longitude").val(e.lnglat.getLng()); $("#latitude").val(e.lnglat.getLat()); //这边是数组 var lnglatXY=[e.lnglat.getLng(),e.lnglat.getLat()]; regeocoder(lnglatXY); }); //坐标-地址 function regeocoder(lnglatXY) { //逆地理编码 var geocoder = new AMap.Geocoder({ radius: 1000, extensions: "all" }); geocoder.getAddress(lnglatXY, function(status, result) { if (status === 'complete' && result.info === 'OK') { geocoder_CallBack(result); } }); } function geocoder_CallBack(data) { var address = data.regeocode.formattedAddress; //返回地址描述 document.getElementById("detailAddress").value=address; } upload.render({ elem: '#imageUpload' ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 ,multiple: false ,before: function(obj){ //预读本地文件示例,不支持ie8 obj.preview(function(index, file, result){ $('#addressPicImage').html('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img" style="width: 100px">') }); } ,done: function(res){ $("#addressPic").val(res.data.src); } }); form.render(); initUserValue(); function initUserValue() { //图片回显 if(leaderInfo.addressPic != null || leaderInfo.addressPic != ''){ $('#addressPicImage').append('<img src="'+ leaderInfo.addressPic +'" class="layui-upload-img" style="width: 100px">') } form.val("febs-leader-update-form", { "id": leaderInfo.id, "name": leaderInfo.name, "phone": leaderInfo.phone, "addressPic": leaderInfo.addressPic, "province": leaderInfo.province, "city": leaderInfo.city, "township": leaderInfo.township, // "province": leaderInfo.province, // "city": leaderInfo.city, // "township": leaderInfo.township, "addressArea": leaderInfo.addressArea, "detailAddress": leaderInfo.detailAddress, "longitude": leaderInfo.longitude, "bonusPercent": leaderInfo.bonusPercent, "latitude": leaderInfo.latitude }); } src/main/resources/templates/index.html
@@ -20,7 +20,7 @@ securityJsCode:'8fd9b92f6e07b1f18d3ae39b42ff71bc', } </script> <script src="https://webapi.amap.com/maps?v=1.4.15&key=04934a2cf5cfa8a29ffcf0fdcfaabb5f&plugin=AMap.Autocomplete,AMap.PolyEditor"></script> <script src="https://webapi.amap.com/maps?v=1.4.15&key=04934a2cf5cfa8a29ffcf0fdcfaabb5f&plugin=AMap.Autocomplete,AMap.PolyEditor,AMap.Geocoder"></script> <link href="https://unpkg.com/@wangeditor/editor@5.0.1/dist/css/style.css" rel="stylesheet"> <script src="https://unpkg.com/@wangeditor/editor@latest/dist/index.js"></script> <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>