Commit 12d0046c3997d36ca093d1eb3cde484d20b1f8bd

Authored by guzijian
1 parent c3360b89

feat: 新增清运派单新增应用用户管理

trash-garbage/src/main/java/com/trash/garbage/controller/GarbageOrderController.java
1 package com.trash.garbage.controller; 1 package com.trash.garbage.controller;
2 2
3 3
  4 +import com.github.pagehelper.PageHelper;
  5 +import com.trash.common.annotation.Log;
4 import com.trash.common.config.trashConfig; 6 import com.trash.common.config.trashConfig;
  7 +import com.trash.common.core.domain.AjaxResult;
  8 +import com.trash.common.core.page.PageDomain;
  9 +import com.trash.common.core.page.TableSupport;
  10 +import com.trash.common.enums.BusinessType;
  11 +import com.trash.common.utils.StringUtils;
5 import com.trash.common.utils.file.FileUploadUtils; 12 import com.trash.common.utils.file.FileUploadUtils;
  13 +import com.trash.common.utils.poi.ExcelUtil;
  14 +import com.trash.common.utils.sql.SqlUtil;
6 import com.trash.framework.config.ServerConfig; 15 import com.trash.framework.config.ServerConfig;
7 import com.trash.garbage.custom.BizException; 16 import com.trash.garbage.custom.BizException;
8 import com.trash.garbage.global.Result; 17 import com.trash.garbage.global.Result;
9 import com.trash.garbage.global.ResultCode; 18 import com.trash.garbage.global.ResultCode;
10 -import com.trash.garbage.pojo.dto.EvaluateDto;  
11 -import com.trash.garbage.pojo.dto.OrderDto;  
12 -import com.trash.garbage.pojo.dto.OrderUpdateDto;  
13 -import com.trash.garbage.pojo.dto.UploadDto; 19 +import com.trash.garbage.pojo.domain.GarOrder;
  20 +import com.trash.garbage.pojo.dto.*;
14 import com.trash.garbage.pojo.vo.OrderDetailVo; 21 import com.trash.garbage.pojo.vo.OrderDetailVo;
15 import com.trash.garbage.service.GarOrderService; 22 import com.trash.garbage.service.GarOrderService;
16 import org.springframework.beans.factory.annotation.Autowired; 23 import org.springframework.beans.factory.annotation.Autowired;
  24 +import org.springframework.security.access.prepost.PreAuthorize;
17 import org.springframework.validation.annotation.Validated; 25 import org.springframework.validation.annotation.Validated;
18 import org.springframework.web.bind.annotation.*; 26 import org.springframework.web.bind.annotation.*;
19 import org.springframework.web.multipart.MultipartFile; 27 import org.springframework.web.multipart.MultipartFile;
20 28
21 import java.io.IOException; 29 import java.io.IOException;
22 import java.util.HashMap; 30 import java.util.HashMap;
  31 +import java.util.List;
23 import java.util.Map; 32 import java.util.Map;
24 33
25 /** 34 /**
@@ -84,4 +93,38 @@ public class GarbageOrderController { @@ -84,4 +93,38 @@ public class GarbageOrderController {
84 return Result.OK(garOrderService.uploadImageUrlByType(dto)); 93 return Result.OK(garOrderService.uploadImageUrlByType(dto));
85 } 94 }
86 95
  96 + /**
  97 + * 导出清运派单列表
  98 + */
  99 + @PreAuthorize("@ss.hasPermi('garbage:order:export')")
  100 + @Log(title = "清运派单", businessType = BusinessType.EXPORT)
  101 + @GetMapping("/export")
  102 + public AjaxResult export(GarOrder garOrder) {
  103 + List<GarOrder> list = garOrderService.queryOrderListByGarOrder(garOrder);
  104 + ExcelUtil<GarOrder> util = new ExcelUtil<GarOrder>(GarOrder.class);
  105 + return util.exportExcel(list, "order");
  106 + }
  107 +
  108 + @GetMapping("list")
  109 + public Result<?> queryOrderList(OrderWebDto dto) {
  110 + startPage();
  111 + return Result.OK(garOrderService.queryOrderListByGarOrderPage(dto));
  112 + }
  113 +
  114 +
  115 + @GetMapping("/webDetail/{id}")
  116 + public Result<OrderDetailVo> queryOrderWebDetail(@PathVariable("id") String id) {
  117 + return Result.OK(garOrderService.queryOrderWebDetail(id));
  118 + }
  119 +
  120 + protected void startPage() {
  121 + PageDomain pageDomain = TableSupport.buildPageRequest();
  122 + Integer pageNum = pageDomain.getPageNum();
  123 + Integer pageSize = pageDomain.getPageSize();
  124 + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
  125 + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
  126 + PageHelper.startPage(pageNum, pageSize, orderBy);
  127 + }
  128 + }
  129 +
87 } 130 }
trash-garbage/src/main/java/com/trash/garbage/controller/GarbageUserController.java
1 package com.trash.garbage.controller; 1 package com.trash.garbage.controller;
2 2
3 3
  4 +import com.github.pagehelper.PageHelper;
  5 +import com.trash.common.annotation.Log;
  6 +import com.trash.common.core.domain.AjaxResult;
  7 +import com.trash.common.core.page.PageDomain;
  8 +import com.trash.common.core.page.TableSupport;
  9 +import com.trash.common.enums.BusinessType;
  10 +import com.trash.common.utils.StringUtils;
  11 +import com.trash.common.utils.poi.ExcelUtil;
  12 +import com.trash.common.utils.sql.SqlUtil;
4 import com.trash.garbage.global.Result; 13 import com.trash.garbage.global.Result;
5 import com.trash.garbage.pojo.domain.GarAddress; 14 import com.trash.garbage.pojo.domain.GarAddress;
6 import com.trash.garbage.pojo.domain.GarUser; 15 import com.trash.garbage.pojo.domain.GarUser;
@@ -8,7 +17,7 @@ import com.trash.garbage.pojo.dto.AddressDto; @@ -8,7 +17,7 @@ import com.trash.garbage.pojo.dto.AddressDto;
8 import com.trash.garbage.pojo.dto.LoginDto; 17 import com.trash.garbage.pojo.dto.LoginDto;
9 import com.trash.garbage.service.GarUserService; 18 import com.trash.garbage.service.GarUserService;
10 import org.springframework.beans.factory.annotation.Autowired; 19 import org.springframework.beans.factory.annotation.Autowired;
11 -import org.springframework.http.HttpRequest; 20 +import org.springframework.security.access.prepost.PreAuthorize;
12 import org.springframework.validation.annotation.Validated; 21 import org.springframework.validation.annotation.Validated;
13 import org.springframework.web.bind.annotation.*; 22 import org.springframework.web.bind.annotation.*;
14 23
@@ -87,5 +96,49 @@ public class GarbageUserController { @@ -87,5 +96,49 @@ public class GarbageUserController {
87 return Result.OK(); 96 return Result.OK();
88 } 97 }
89 98
  99 + @PreAuthorize("@ss.hasPermi('GarUser:GarUser:list')")
  100 + @GetMapping("/list")
  101 + public Result<?> list(GarUser garUser) {
  102 + startPage();
  103 + return Result.OK(garUserService.queryListByUserPages(garUser));
  104 + }
  105 +
  106 + protected void startPage() {
  107 + PageDomain pageDomain = TableSupport.buildPageRequest();
  108 + Integer pageNum = pageDomain.getPageNum();
  109 + Integer pageSize = pageDomain.getPageSize();
  110 + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
  111 + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
  112 + PageHelper.startPage(pageNum, pageSize, orderBy);
  113 + }
  114 + }
  115 +
  116 + /**
  117 + * 导出建筑垃圾-用户列表
  118 + */
  119 + @PreAuthorize("@ss.hasPermi('GarUser:GarUser:export')")
  120 + @Log(title = "建筑垃圾-用户", businessType = BusinessType.EXPORT)
  121 + @GetMapping("/export")
  122 + public AjaxResult export(GarUser garUser) {
  123 + List<GarUser> list = garUserService.queryListByUser(garUser);
  124 + ExcelUtil<GarUser> util = new ExcelUtil<GarUser>(GarUser.class);
  125 + return util.exportExcel(list, "GarUser");
  126 + }
  127 +
  128 + /**
  129 + * 获取建筑垃圾-用户详细信息
  130 + */
  131 + @PreAuthorize("@ss.hasPermi('GarUser:GarUser:query')")
  132 + @GetMapping(value = "/{garUserId}")
  133 + public Result<?> getInfo(@PathVariable("garUserId") String garUserId) {
  134 + return Result.OK(garUserService.getById(garUserId));
  135 + }
  136 +
  137 + @PostMapping
  138 + public AjaxResult addGarUser(GarUser garUser) {
  139 + List<GarUser> list = garUserService.queryListByUser(garUser);
  140 + ExcelUtil<GarUser> util = new ExcelUtil<GarUser>(GarUser.class);
  141 + return util.exportExcel(list, "GarUser");
  142 + }
90 143
91 } 144 }
trash-garbage/src/main/java/com/trash/garbage/pojo/dto/OrderWebDto.java 0 → 100644
  1 +package com.trash.garbage.pojo.dto;
  2 +
  3 +import lombok.ToString;
  4 +
  5 +import javax.validation.constraints.NotEmpty;
  6 +
  7 +@ToString
  8 +public class OrderWebDto {
  9 + /**
  10 + * 公司名称
  11 + */
  12 + @NotEmpty(message = "公司名称不能为空")
  13 + private String garOrderCompanyName;
  14 +
  15 + /**
  16 + * 取消订单
  17 + */
  18 + private Integer garCancelFlag;
  19 + private Integer garOrderHandlerStatus;
  20 +
  21 + public String getGarOrderCompanyName() {
  22 + return garOrderCompanyName;
  23 + }
  24 +
  25 + public void setGarOrderCompanyName(String garOrderCompanyName) {
  26 + this.garOrderCompanyName = garOrderCompanyName;
  27 + }
  28 +
  29 + public Integer getGarCancelFlag() {
  30 + return garCancelFlag;
  31 + }
  32 +
  33 + public void setGarCancelFlag(Integer garCancelFlag) {
  34 + this.garCancelFlag = garCancelFlag;
  35 + }
  36 +
  37 + public Integer getGarOrderHandlerStatus() {
  38 + return garOrderHandlerStatus;
  39 + }
  40 +
  41 + public void setGarOrderHandlerStatus(Integer garOrderHandlerStatus) {
  42 + this.garOrderHandlerStatus = garOrderHandlerStatus;
  43 + }
  44 +}
trash-garbage/src/main/java/com/trash/garbage/service/GarOrderService.java
@@ -3,10 +3,7 @@ package com.trash.garbage.service; @@ -3,10 +3,7 @@ package com.trash.garbage.service;
3 import com.baomidou.mybatisplus.extension.service.IService; 3 import com.baomidou.mybatisplus.extension.service.IService;
4 import com.github.pagehelper.PageInfo; 4 import com.github.pagehelper.PageInfo;
5 import com.trash.garbage.pojo.domain.GarOrder; 5 import com.trash.garbage.pojo.domain.GarOrder;
6 -import com.trash.garbage.pojo.dto.EvaluateDto;  
7 -import com.trash.garbage.pojo.dto.OrderDto;  
8 -import com.trash.garbage.pojo.dto.OrderUpdateDto;  
9 -import com.trash.garbage.pojo.dto.UploadDto; 6 +import com.trash.garbage.pojo.dto.*;
10 import com.trash.garbage.pojo.vo.OrderDetailVo; 7 import com.trash.garbage.pojo.vo.OrderDetailVo;
11 8
12 import java.util.List; 9 import java.util.List;
@@ -57,4 +54,10 @@ public interface GarOrderService extends IService&lt;GarOrder&gt; { @@ -57,4 +54,10 @@ public interface GarOrderService extends IService&lt;GarOrder&gt; {
57 String uploadImageUrlByType(UploadDto dto); 54 String uploadImageUrlByType(UploadDto dto);
58 55
59 String evaluateOrder(EvaluateDto dto); 56 String evaluateOrder(EvaluateDto dto);
  57 +
  58 + List<GarOrder> queryOrderListByGarOrder(GarOrder garOrder);
  59 +
  60 + PageInfo queryOrderListByGarOrderPage(OrderWebDto dto);
  61 +
  62 + OrderDetailVo queryOrderWebDetail(String id);
60 } 63 }
trash-garbage/src/main/java/com/trash/garbage/service/GarUserService.java
1 package com.trash.garbage.service; 1 package com.trash.garbage.service;
2 2
3 import com.aliyuncs.exceptions.ClientException; 3 import com.aliyuncs.exceptions.ClientException;
  4 +import com.github.pagehelper.PageInfo;
4 import com.trash.garbage.pojo.domain.GarAddress; 5 import com.trash.garbage.pojo.domain.GarAddress;
5 import com.trash.garbage.pojo.domain.GarUser; 6 import com.trash.garbage.pojo.domain.GarUser;
6 import com.baomidou.mybatisplus.extension.service.IService; 7 import com.baomidou.mybatisplus.extension.service.IService;
7 import com.trash.garbage.pojo.dto.AddressDto; 8 import com.trash.garbage.pojo.dto.AddressDto;
8 import com.trash.garbage.pojo.dto.LoginDto; 9 import com.trash.garbage.pojo.dto.LoginDto;
9 -import org.springframework.http.HttpRequest;  
10 10
11 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletRequest;
12 import java.util.List; 12 import java.util.List;
@@ -33,4 +33,8 @@ public interface GarUserService extends IService&lt;GarUser&gt; { @@ -33,4 +33,8 @@ public interface GarUserService extends IService&lt;GarUser&gt; {
33 void updateUserInfo(GarUser user); 33 void updateUserInfo(GarUser user);
34 34
35 String logout(HttpServletRequest request); 35 String logout(HttpServletRequest request);
  36 +
  37 + PageInfo queryListByUserPages(GarUser garUser);
  38 +
  39 + List<GarUser> queryListByUser(GarUser garUser);
36 } 40 }
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderServiceImpl.java
@@ -3,10 +3,12 @@ package com.trash.garbage.service.impl; @@ -3,10 +3,12 @@ package com.trash.garbage.service.impl;
3 import java.util.ArrayList; 3 import java.util.ArrayList;
4 import java.util.Collections; 4 import java.util.Collections;
5 import java.util.List; 5 import java.util.List;
  6 +import java.util.Objects;
6 7
7 -import com.trash.common.utils.StringUtils;  
8 import com.trash.enterprise.domain.TransportationEnterprise; 8 import com.trash.enterprise.domain.TransportationEnterprise;
9 import com.trash.enterprise.service.ITransportationEnterpriseService; 9 import com.trash.enterprise.service.ITransportationEnterpriseService;
  10 +import com.trash.garbage.pojo.dto.*;
  11 +import org.apache.commons.lang3.StringUtils;
10 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
12 import org.springframework.transaction.annotation.Transactional; 14 import org.springframework.transaction.annotation.Transactional;
@@ -26,10 +28,6 @@ import com.trash.garbage.pojo.domain.GarOrder; @@ -26,10 +28,6 @@ import com.trash.garbage.pojo.domain.GarOrder;
26 import com.trash.garbage.pojo.domain.GarOrderEvaluate; 28 import com.trash.garbage.pojo.domain.GarOrderEvaluate;
27 import com.trash.garbage.pojo.domain.GarOrderImage; 29 import com.trash.garbage.pojo.domain.GarOrderImage;
28 import com.trash.garbage.pojo.domain.GarUser; 30 import com.trash.garbage.pojo.domain.GarUser;
29 -import com.trash.garbage.pojo.dto.EvaluateDto;  
30 -import com.trash.garbage.pojo.dto.OrderDto;  
31 -import com.trash.garbage.pojo.dto.OrderUpdateDto;  
32 -import com.trash.garbage.pojo.dto.UploadDto;  
33 import com.trash.garbage.pojo.vo.OrderDetailVo; 31 import com.trash.garbage.pojo.vo.OrderDetailVo;
34 import com.trash.garbage.service.GarOrderEvaluateService; 32 import com.trash.garbage.service.GarOrderEvaluateService;
35 import com.trash.garbage.service.GarOrderImageService; 33 import com.trash.garbage.service.GarOrderImageService;
@@ -265,6 +263,64 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -265,6 +263,64 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
265 return "已评价"; 263 return "已评价";
266 } 264 }
267 265
  266 + @Override
  267 + public List<GarOrder> queryOrderListByGarOrder(GarOrder garOrder) {
  268 + LambdaQueryWrapper<GarOrder> qw = createQueryWrapper(garOrder);
  269 + return list(qw);
  270 + }
  271 +
  272 + private LambdaQueryWrapper<GarOrder> createQueryWrapper(GarOrder garOrder) {
  273 + return new LambdaQueryWrapper<GarOrder>()
  274 + .eq(StringUtils.isNotEmpty(garOrder.getGarOrderAddress()), GarOrder::getGarOrderAddress, garOrder.getGarOrderAddress())
  275 + .eq(!Objects.isNull(garOrder.getGarCancelFlag()), GarOrder::getGarCancelFlag, garOrder.getGarCancelFlag())
  276 + .eq(!Objects.isNull(garOrder.getGarOrderHandlerStatus()), GarOrder::getGarOrderHandlerStatus, garOrder.getGarOrderHandlerStatus())
  277 + .eq(!Objects.isNull(garOrder.getGarEvaluateFlag()), GarOrder::getGarEvaluateFlag, garOrder.getGarEvaluateFlag());
  278 + }
  279 +
  280 + @Override
  281 + public PageInfo queryOrderListByGarOrderPage(OrderWebDto dto) {
  282 + LambdaQueryWrapper<GarOrder> qw = new LambdaQueryWrapper<>();
  283 + qw.eq(StringUtils.isNotEmpty(dto.getGarOrderCompanyName()), GarOrder::getGarOrderCompanyName, dto.getGarOrderCompanyName())
  284 + .eq(dto.getGarOrderHandlerStatus() != null, GarOrder::getGarOrderHandlerStatus, dto.getGarOrderHandlerStatus())
  285 + .eq(dto.getGarCancelFlag() != null, GarOrder::getGarCancelFlag, dto.getGarCancelFlag());
  286 + List<GarOrder> list = list(qw);
  287 + PageInfo<GarOrder> pageInfo = new PageInfo<>(list);
  288 + return pageInfo;
  289 + }
  290 +
  291 + @Override
  292 + public OrderDetailVo queryOrderWebDetail(String id) {
  293 + GarOrder order = this.getById(id);
  294 + LambdaQueryWrapper<GarOrderImage> qwi = new LambdaQueryWrapper<>();
  295 + qwi.eq(GarOrderImage::getGarOrderId, id);
  296 + OrderDetailVo vo = new OrderDetailVo();
  297 + List<DriverVo> driverVos = null;
  298 + BeanUtils.copyBeanProp(vo, order);
  299 + List<GarOrderImage> imageList = garOrderImageService.list(qwi);
  300 + for (GarOrderImage image : imageList) {
  301 + if (GlobalStatus.GarOrderStatus.CANCEL_FLAG_NO.getValue().equals(image.getGarOrderImageType())) {
  302 + vo.getCurrentImages().add(image.getGarOrderImageUrl());
  303 + }
  304 + if (GlobalStatus.GarOrderStatus.IMAGE_TYPE_PUT_ON.getValue().equals(image.getGarOrderImageType())) {
  305 + vo.getPutOnImages().add(image.getGarOrderImageUrl());
  306 + }
  307 + if (GlobalStatus.GarOrderStatus.IMAGE_TYPE_PUT_DOWN.getValue().equals(image.getGarOrderImageType())) {
  308 + vo.getPutDownImages().add(image.getGarOrderImageUrl());
  309 + }
  310 + }
  311 + if (StringUtils.isNotEmpty(vo.getGarOrderHandlerId())) {
  312 + GarUser handleUser = garUserService.getById(vo.getGarOrderHandlerId());
  313 + DriverVo driverVo = new DriverVo();
  314 + driverVo.setPhoneNo(handleUser.getGarUserTel());
  315 + driverVos = driverService.selectDriverList(driverVo);
  316 + if (CollectionUtil.isNotEmpty(driverVos)) {
  317 + vo.setGarOrderHandleName(driverVos.get(0).getName());
  318 + vo.setGarOrderHandleTel(driverVos.get(0).getPhoneNo());
  319 + }
  320 + }
  321 + return vo;
  322 + }
  323 +
268 private void evaluate(EvaluateDto dto, GarOrder order, GarUser user) { 324 private void evaluate(EvaluateDto dto, GarOrder order, GarUser user) {
269 GarOrderEvaluate evaluate = new GarOrderEvaluate(); 325 GarOrderEvaluate evaluate = new GarOrderEvaluate();
270 evaluate.setGarOrderId(order.getGarOrderId()); 326 evaluate.setGarOrderId(order.getGarOrderId());
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarUserServiceImpl.java
@@ -7,11 +7,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -7,11 +7,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
7 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 7 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
8 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 8 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
9 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 9 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  10 +import com.github.pagehelper.PageHelper;
  11 +import com.github.pagehelper.PageInfo;
10 import com.trash.common.core.domain.entity.SysRole; 12 import com.trash.common.core.domain.entity.SysRole;
11 import com.trash.common.core.domain.entity.SysUser; 13 import com.trash.common.core.domain.entity.SysUser;
12 import com.trash.common.core.domain.model.LoginUser; 14 import com.trash.common.core.domain.model.LoginUser;
13 import com.trash.common.core.redis.RedisCache; 15 import com.trash.common.core.redis.RedisCache;
14 import com.trash.common.utils.SecurityUtils; 16 import com.trash.common.utils.SecurityUtils;
  17 +import com.trash.common.utils.StringUtils;
15 import com.trash.framework.web.service.TokenService; 18 import com.trash.framework.web.service.TokenService;
16 import com.trash.garbage.config.WxConfig; 19 import com.trash.garbage.config.WxConfig;
17 import com.trash.garbage.custom.BizException; 20 import com.trash.garbage.custom.BizException;
@@ -224,6 +227,30 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt; @@ -224,6 +227,30 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt;
224 return "退出登录"; 227 return "退出登录";
225 } 228 }
226 229
  230 + @Override
  231 + public PageInfo queryListByUserPages(GarUser garUser) {
  232 + LambdaQueryWrapper<GarUser> qw = createQueryWrapperByUser(garUser);
  233 + List<GarUser> userList = list(qw);
  234 + PageInfo<GarUser> pageInfo = new PageInfo<>(userList);
  235 + return pageInfo;
  236 + }
  237 +
  238 + @Override
  239 + public List<GarUser> queryListByUser(GarUser garUser) {
  240 + LambdaQueryWrapper<GarUser> qw = createQueryWrapperByUser(garUser);
  241 + return list(qw);
  242 + }
  243 +
  244 + private LambdaQueryWrapper<GarUser> createQueryWrapperByUser(GarUser garUser) {
  245 + return new LambdaQueryWrapper<GarUser>()
  246 + .eq(StringUtils.isNotEmpty(garUser.getGarUserId()), GarUser::getGarUserId, garUser.getGarUserId())
  247 + .eq(StringUtils.isNotEmpty(garUser.getGarUserType()), GarUser::getGarUserType, garUser.getGarUserType())
  248 + .eq(StringUtils.isNotEmpty(garUser.getGarUserName()), GarUser::getGarUserName, garUser.getGarUserName())
  249 + .eq(StringUtils.isNotEmpty(garUser.getGarUserTel()), GarUser::getGarUserTel, garUser.getGarUserTel())
  250 + .eq(StringUtils.isNotEmpty(garUser.getGarRemark()), GarUser::getGarRemark, garUser.getGarRemark());
  251 +
  252 + }
  253 +
227 254
228 /** 255 /**
229 * 微信小程序解密 256 * 微信小程序解密
@@ -246,39 +273,38 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt; @@ -246,39 +273,38 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt;
246 return new String(cipher.doFinal(encrypData), "UTF-8"); 273 return new String(cipher.doFinal(encrypData), "UTF-8");
247 } 274 }
248 275
249 - public WxConfig getWxConfig() {  
250 - return wxConfig;  
251 - } 276 + public WxConfig getWxConfig() {
  277 + return wxConfig;
  278 + }
252 279
253 - public void setWxConfig(WxConfig wxConfig) {  
254 - this.wxConfig = wxConfig;  
255 - } 280 + public void setWxConfig(WxConfig wxConfig) {
  281 + this.wxConfig = wxConfig;
  282 + }
256 283
257 - public GarAddressService getGarAddressService() {  
258 - return garAddressService;  
259 - } 284 + public GarAddressService getGarAddressService() {
  285 + return garAddressService;
  286 + }
260 287
261 - public void setGarAddressService(GarAddressService garAddressService) {  
262 - this.garAddressService = garAddressService;  
263 - } 288 + public void setGarAddressService(GarAddressService garAddressService) {
  289 + this.garAddressService = garAddressService;
  290 + }
264 291
265 - public RedisCache getRedisCache() {  
266 - return redisCache;  
267 - } 292 + public RedisCache getRedisCache() {
  293 + return redisCache;
  294 + }
268 295
269 - public void setRedisCache(RedisCache redisCache) {  
270 - this.redisCache = redisCache;  
271 - } 296 + public void setRedisCache(RedisCache redisCache) {
  297 + this.redisCache = redisCache;
  298 + }
272 299
273 - public TokenService getTokenService() {  
274 - return tokenService;  
275 - } 300 + public TokenService getTokenService() {
  301 + return tokenService;
  302 + }
276 303
277 - public void setTokenService(TokenService tokenService) {  
278 - this.tokenService = tokenService;  
279 - } 304 + public void setTokenService(TokenService tokenService) {
  305 + this.tokenService = tokenService;
  306 + }
280 307
281 -  
282 308
283 } 309 }
284 310
trash-ui/src/api/gar/order.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +// 查询清运派单列表
  4 +export function listOrder(query) {
  5 + return request({
  6 + url: '/order/list',
  7 + method: 'get',
  8 + params: query
  9 + })
  10 +}
  11 +
  12 +// 查询清运派单详细
  13 +export function getOrder(garOrderId) {
  14 + return request({
  15 + url: '/order/webDetail/' + garOrderId,
  16 + method: 'get'
  17 + })
  18 +}
  19 +
  20 +
  21 +// 导出清运派单
  22 +export function exportOrder(query) {
  23 + return request({
  24 + url: '/order/export',
  25 + method: 'get',
  26 + params: query
  27 + })
  28 +}
trash-ui/src/api/gar/user.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +// 查询建筑垃圾-用户列表
  4 +export function listGarUser(query) {
  5 + return request({
  6 + url: '/user/list',
  7 + method: 'get',
  8 + params: query
  9 + })
  10 +}
  11 +
  12 +// 查询建筑垃圾-用户详细
  13 +export function getGarUser(garUserId) {
  14 + return request({
  15 + url: '/user/' + garUserId,
  16 + method: 'get'
  17 + })
  18 +}
  19 +
  20 +// 新增建筑垃圾-用户
  21 +export function addGarUser(data) {
  22 + return request({
  23 + url: '/user',
  24 + method: 'post',
  25 + data: data
  26 + })
  27 +}
  28 +
  29 +
  30 +// 删除建筑垃圾-用户
  31 +export function delGarUser(garUserId) {
  32 + return request({
  33 + url: '/user/' + garUserId,
  34 + method: 'delete'
  35 + })
  36 +}
  37 +
  38 +// 导出建筑垃圾-用户
  39 +export function exportGarUser(query) {
  40 + return request({
  41 + url: '/user/export',
  42 + method: 'get',
  43 + params: query
  44 + })
  45 +}
trash-ui/src/layout/index.vue
1 <template> 1 <template>
2 - <app-main /> 2 + <div :class="classObj" class="app-wrapper">
  3 + <sidebar class="sidebar-container"/>
  4 + <div :class="{hasTagsView:needTagsView}" class="main-container">
  5 + <tags-view v-if="needTagsView"/>
  6 + <app-main/>
  7 +
  8 + </div>
  9 + </div>
3 </template> 10 </template>
4 11
5 <script> 12 <script>
6 import RightPanel from '@/components/RightPanel' 13 import RightPanel from '@/components/RightPanel'
7 -import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components' 14 +import {AppMain, Navbar, Settings, Sidebar, TagsView} from './components'
8 import ResizeMixin from './mixin/ResizeHandler' 15 import ResizeMixin from './mixin/ResizeHandler'
9 -import { mapState } from 'vuex' 16 +import {mapState} from 'vuex'
10 17
11 export default { 18 export default {
12 name: 'Layout', 19 name: 'Layout',
@@ -38,52 +45,63 @@ export default { @@ -38,52 +45,63 @@ export default {
38 }, 45 },
39 methods: { 46 methods: {
40 handleClickOutside() { 47 handleClickOutside() {
41 - this.$store.dispatch('app/closeSideBar', { withoutAnimation: false }) 48 + this.$store.dispatch('app/closeSideBar', {withoutAnimation: false})
42 } 49 }
43 } 50 }
44 } 51 }
45 </script> 52 </script>
46 53
47 <style lang="scss" scoped> 54 <style lang="scss" scoped>
48 - @import "~@/assets/styles/mixin.scss";  
49 - @import "~@/assets/styles/variables.scss";  
50 -  
51 - .app-wrapper {  
52 - @include clearfix;  
53 - position: relative;  
54 - height: 100%;  
55 - width: 100%;  
56 -  
57 - &.mobile.openSidebar {  
58 - position: fixed;  
59 - top: 0;  
60 - }  
61 - } 55 +@import "~@/assets/styles/mixin.scss";
  56 +@import "~@/assets/styles/variables.scss";
62 57
63 - .drawer-bg {  
64 - background: #000;  
65 - opacity: 0.3;  
66 - width: 100%;  
67 - top: 0;  
68 - height: 100%;  
69 - position: absolute;  
70 - z-index: 999;  
71 - } 58 +.app-wrapper {
  59 + @include clearfix;
  60 + position: relative;
  61 + height: 100%;
  62 + width: 100%;
72 63
73 - .fixed-header { 64 + &.mobile.openSidebar {
74 position: fixed; 65 position: fixed;
75 top: 0; 66 top: 0;
76 - right: 0;  
77 - z-index: 9;  
78 - width: calc(100% - #{$sideBarWidth});  
79 - transition: width 0.28s;  
80 } 67 }
  68 +}
81 69
82 - .hideSidebar .fixed-header {  
83 - width: calc(100% - 54px)  
84 - } 70 +.drawer-bg {
  71 + background: #000;
  72 + opacity: 0.3;
  73 + width: 100%;
  74 + top: 0;
  75 + height: 100%;
  76 + position: absolute;
  77 + z-index: 999;
  78 +}
85 79
86 - .mobile .fixed-header {  
87 - width: 100%;  
88 - } 80 +.fixed-header {
  81 + position: fixed;
  82 + top: 0;
  83 + right: 0;
  84 + z-index: 9;
  85 + width: calc(100% - #{$sideBarWidth});
  86 + transition: width 0.28s;
  87 +}
  88 +
  89 +.hideSidebar .fixed-header {
  90 + width: calc(100% - 54px)
  91 +}
  92 +
  93 +.mobile .fixed-header {
  94 + width: 100%;
  95 +}
  96 +
  97 +.preview figure {
  98 + float: left;
  99 + width: 30%;
  100 + height:calc(30vw - 0px);
  101 + margin: 1.5%;
  102 +}
  103 +
  104 +.preview figure img {
  105 + width: 400px;
  106 +}
89 </style> 107 </style>
trash-ui/src/layout/index3.vue 0 → 100644
  1 +<template>
  2 + <app-main />
  3 +</template>
  4 +
  5 +<script>
  6 +import RightPanel from '@/components/RightPanel'
  7 +import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components'
  8 +import ResizeMixin from './mixin/ResizeHandler'
  9 +import { mapState } from 'vuex'
  10 +
  11 +export default {
  12 + name: 'Layout',
  13 + components: {
  14 + AppMain,
  15 + Navbar,
  16 + RightPanel,
  17 + Settings,
  18 + Sidebar,
  19 + TagsView
  20 + },
  21 + mixins: [ResizeMixin],
  22 + computed: {
  23 + ...mapState({
  24 + sidebar: state => state.app.sidebar,
  25 + device: state => state.app.device,
  26 + showSettings: state => state.settings.showSettings,
  27 + needTagsView: state => state.settings.tagsView,
  28 + fixedHeader: state => state.settings.fixedHeader
  29 + }),
  30 + classObj() {
  31 + return {
  32 + hideSidebar: !this.sidebar.opened,
  33 + openSidebar: this.sidebar.opened,
  34 + withoutAnimation: this.sidebar.withoutAnimation,
  35 + mobile: this.device === 'mobile'
  36 + }
  37 + }
  38 + },
  39 + methods: {
  40 + handleClickOutside() {
  41 + this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
  42 + }
  43 + }
  44 +}
  45 +</script>
  46 +
  47 +<style lang="scss" scoped>
  48 + @import "~@/assets/styles/mixin.scss";
  49 + @import "~@/assets/styles/variables.scss";
  50 +
  51 + .app-wrapper {
  52 + @include clearfix;
  53 + position: relative;
  54 + height: 100%;
  55 + width: 100%;
  56 +
  57 + &.mobile.openSidebar {
  58 + position: fixed;
  59 + top: 0;
  60 + }
  61 + }
  62 +
  63 + .drawer-bg {
  64 + background: #000;
  65 + opacity: 0.3;
  66 + width: 100%;
  67 + top: 0;
  68 + height: 100%;
  69 + position: absolute;
  70 + z-index: 999;
  71 + }
  72 +
  73 + .fixed-header {
  74 + position: fixed;
  75 + top: 0;
  76 + right: 0;
  77 + z-index: 9;
  78 + width: calc(100% - #{$sideBarWidth});
  79 + transition: width 0.28s;
  80 + }
  81 +
  82 + .hideSidebar .fixed-header {
  83 + width: calc(100% - 54px)
  84 + }
  85 +
  86 + .mobile .fixed-header {
  87 + width: 100%;
  88 + }
  89 +</style>
trash-ui/src/views/gar/order/index.vue 0 → 100644
  1 +<template>
  2 + <div class="app-container">
  3 + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
  4 +
  5 + <el-form-item label="经营单位" prop="garOrderCompanyName">
  6 + <el-input v-model="queryParams.garOrderCompanyName" placeholder="请输入经营单位" clearable size="small"
  7 + @keyup.enter.native="handleQuery" />
  8 + </el-form-item>
  9 + <el-form-item label="处理状态" prop="garOrderHandlerStatus">
  10 + <el-select v-model="queryParams.garOrderHandlerStatus" placeholder="请选择处理状态" clearable size="small">
  11 + <el-option label="未处理" value="0" />
  12 + <el-option label="处理中" value="1" />
  13 + <el-option label="已处理" value="3" />
  14 + </el-select>
  15 + </el-form-item>
  16 + <el-form-item label="是否取消" prop="garCancelFlag">
  17 + <el-select v-model="queryParams.garCancelFlag" placeholder="请选择处理状态" clearable size="small">
  18 + <el-option label="未取消" value="0" />
  19 + <el-option label="已取消" value="1" />
  20 + </el-select>
  21 + </el-form-item>
  22 + <el-form-item>
  23 + <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  24 + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  25 + </el-form-item>
  26 + </el-form>
  27 +
  28 + <el-row :gutter="10" class="mb8">
  29 + <el-col :span="1.5">
  30 + <el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport"
  31 + v-hasPermi="['garbage:order:export']">导出</el-button>
  32 + </el-col>
  33 + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  34 + </el-row>
  35 +
  36 + <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
  37 + <el-table-column type="selection" width="55" align="center" />
  38 + <el-table-column label="订单号" width="180" align="center" prop="garOrderId" />
  39 + <el-table-column label="用户姓名" align="center" prop="garOrderContactName" />
  40 + <el-table-column label="订单地址" width="200px" align="center" prop="garOrderAddress" />
  41 + <el-table-column label="订单详细地址" width="200px" align="center" prop="garOrderAddressDetails" />
  42 + <el-table-column label="垃圾类型" align="center" prop="garOrderTrashType" />
  43 + <el-table-column label="订单人电话" width="200px" align="center" prop="garOrderContactTel" />
  44 + <el-table-column label="经营单位" width="200px" align="center" prop="garOrderCompanyName" />
  45 + <el-table-column label="公司负责人电话" width="200px" align="center" prop="garOrderCompanyTel" />
  46 + <el-table-column label="处理状态" align="center" prop="garOrderHandlerStatus">
  47 + <template slot-scope="scope">
  48 + {{ computedHandleStatusString(scope.row.garOrderHandlerStatus).toString() }}
  49 + </template>
  50 + </el-table-column>
  51 + <el-table-column label="约定时间" width="180" align="center" prop="garOrderAgreementTime" />
  52 + <el-table-column label="备注" align="center" prop="garRemark" />
  53 + <el-table-column label="取消原因" width="200px" align="center" prop="garReason" />
  54 + <el-table-column label="是否取消" align="center" prop="garCancelFlag">
  55 + <template slot-scope="scope">
  56 + {{ computedCancelFlagString(scope.row.garCancelFlag).toString() }}
  57 + </template>
  58 + </el-table-column>
  59 + <el-table-column label="车子数量" align="center" prop="garOrderCarNumber" />
  60 + <el-table-column label="车子类型" width="200px" align="center" prop="garOrderCarType" />
  61 + <el-table-column fixed="right" label="操作" width="200px" align="center" class-name="small-padding fixed-width">
  62 + <template slot-scope="scope">
  63 + <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
  64 + v-hasPermi="['garbage:order:edit']">详情</el-button>
  65 + </template>
  66 + </el-table-column>
  67 + </el-table>
  68 +
  69 + <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
  70 + @pagination="getList" />
  71 +
  72 + <!-- 添加或修改清运派单对话框 -->
  73 + <el-dialog label-position="left" :visible.sync="open" width="800px" append-to-body>
  74 + <div class="handle-box-title" style="display: flex; align-items: center;margin: 10px 0;">
  75 + <div class="handle-box-title-ui" style="height: 30px; width: 10px; background-color: #409EFF;margin-right: 15px;">
  76 + </div>
  77 + <div class="handle-box-title-text" style="color: #409EFF; font-size: 25px;">派单基本信息</div>
  78 + </div>
  79 + <el-form ref="form" :model="form" :inline="true">
  80 + <el-form-item label="处理状态">
  81 + {{ computedHandleStatusString(form.garOrderHandlerStatus).toString() }}
  82 + </el-form-item>
  83 + <el-form-item label="是否取消" prop="garCancelFlag">
  84 + {{ computedCancelFlagString(form.garCancelFlag).toString() }}
  85 + </el-form-item>
  86 + <el-form-item v-if="form.garCancelFlag === 1" label="原因" prop="garReason">
  87 + <div class="text" style="color: red;">{{ form.garReason }}</div>
  88 + </el-form-item>
  89 + <el-form-item label="订单姓名" prop="garOrderContactName">
  90 + <el-input :disabled="true" v-model="form.garOrderContactName" placeholder="请输入订单姓名" />
  91 + </el-form-item>
  92 + <el-form-item label="垃圾类型" prop="garOrderTrashType">
  93 + <el-input :disabled="true" v-model="form.garOrderTrashType" placeholder="请输入垃圾类型" />
  94 + </el-form-item>
  95 + <el-form-item label="订单人电话" prop="garOrderContactTel">
  96 + <el-input :disabled="true" v-model="form.garOrderContactTel" placeholder="请输入订单人电话" />
  97 + </el-form-item>
  98 + <el-form-item label="经营单位" prop="garOrderCompanyName">
  99 + <el-input :disabled="true" v-model="form.garOrderCompanyName" placeholder="请输入公司名称" />
  100 + </el-form-item>
  101 + <el-form-item label="公司负责人电话" prop="garOrderCompanyTel">
  102 + <el-input :disabled="true" v-model="form.garOrderCompanyTel" placeholder="请输入公司负责人电话" />
  103 + </el-form-item>
  104 + <el-form-item label="约定时间" prop="garOrderAgreementTime">
  105 + <el-input :disabled="true" v-model="form.garOrderAgreementTime" placeholder="请输入约定时间" />
  106 + </el-form-item>
  107 + <el-form-item label="订单创建时间" prop="garCreateTime">
  108 + <el-date-picker :disabled="true" clearable size="small" style="width: 200px" v-model="form.garCreateTime"
  109 + type="date" value-format="yyyy-MM-dd" placeholder="选择订单创建时间">
  110 + </el-date-picker>
  111 + </el-form-item>
  112 + <el-form-item label="备注" prop="garRemark">
  113 + <el-input :disabled="true" v-model="form.garRemark" type="textarea" placeholder="请输入内容" />
  114 + </el-form-item>
  115 +
  116 + <el-form-item label="车子数量" prop="garOrderCarNumber">
  117 + <el-input :disabled="true" v-model="form.garOrderCarNumber" placeholder="请输入车子数量" />
  118 + </el-form-item>
  119 + <el-form-item label="车子类型" prop="garOrderCarType">
  120 + <el-input :disabled="true" v-model="form.garOrderCarType" placeholder="请输入车子类型" />
  121 + </el-form-item>
  122 + <el-form-item v-if="form.currentImages" label="现场图片" prop="currentImages">
  123 + <el-image style="width: 100px; height: 100px" :src="form.currentImages[0]"
  124 + :preview-src-list="form.currentImages">
  125 + </el-image>
  126 + </el-form-item>
  127 + </el-form>
  128 + <div class="handle-box" v-if="form.garOrderHandlerStatus == 3">
  129 + <div class="handle-box-title" style="display: flex; align-items: center;margin: 10px 0;">
  130 + <div class="handle-box-title-ui"
  131 + style="height: 30px; width: 10px; background-color: #409EFF;margin-right: 15px;"></div>
  132 + <div class="handle-box-title-text" style="color: #409EFF; font-size: 25px;">派单处理信息</div>
  133 + </div>
  134 + <el-form :inline="true" :model="form">
  135 + <el-form-item label="派单负责人" prop="garOrderHandler">
  136 + <el-input v-model="form.garOrderHandleName" placeholder="派单负责人" />
  137 + </el-form-item>
  138 + <el-form-item label="派单负责人电话" prop="garOrderHandlerTel">
  139 + <el-input v-model="form.garOrderHandleTel" placeholder="派单负责人电话" />
  140 + </el-form-item>
  141 +
  142 + <el-form-item v-if="form.putOnImages" label="现场图片" prop="putOnImages">
  143 + <el-image style="width: 100px; height: 100px" :src="form.putOnImages[0]" :preview-src-list="form.putOnImages">
  144 + </el-image>
  145 + </el-form-item>
  146 + <el-form-item v-if="form.putDownImages" label="现场图片" prop="putDownImages">
  147 + <el-image style="width: 100px; height: 100px" :src="form.putDownImages[0]"
  148 + :preview-src-list="form.putDownImages">
  149 + </el-image>
  150 + </el-form-item>
  151 + </el-form>
  152 + </div>
  153 +
  154 + <div slot="footer" class="dialog-footer">
  155 + <el-button type="primary" @click="submitForm">确 定</el-button>
  156 + </div>
  157 + </el-dialog>
  158 + </div>
  159 +</template>
  160 +
  161 +<script>
  162 +import { delOrder, exportOrder, getOrder, listOrder } from "@/api/gar/order";
  163 +
  164 +export default {
  165 + name: "Order",
  166 + data() {
  167 + return {
  168 + // 遮罩层
  169 + loading: true,
  170 + // 选中数组
  171 + ids: [],
  172 + // 非单个禁用
  173 + single: true,
  174 + // 非多个禁用
  175 + multiple: true,
  176 + // 显示搜索条件
  177 + showSearch: true,
  178 + // 总条数
  179 + total: 0,
  180 + // 清运派单表格数据
  181 + orderList: [],
  182 + // 弹出层标题
  183 + title: "",
  184 + // 是否显示弹出层
  185 + open: false,
  186 + // 查询参数
  187 + queryParams: {
  188 + pageNum: 1,
  189 + pageSize: 10,
  190 + garOrderUserId: null,
  191 + garOrderHandlerId: null,
  192 + garOrderAddress: null,
  193 + garOrderAddressDetails: null,
  194 + garOrderContactName: null,
  195 + garOrderTrashType: null,
  196 + garOrderContactTel: null,
  197 + garOrderCompanyId: null,
  198 + garOrderCompanyName: null,
  199 + garOrderCompanyTel: null,
  200 + garOrderHandlerStatus: null,
  201 + garOrderAgreementTime: null,
  202 + garCreateTime: null,
  203 + garUpdateTime: null,
  204 + garCreateBy: null,
  205 + garUpdateBy: null,
  206 + garRemark: null,
  207 + garReason: null,
  208 + garCancelFlag: null,
  209 + garEvaluateFlag: null,
  210 + garOrderCarNumber: null,
  211 + garOrderCarType: null,
  212 + garHandlerEvaluateFlag: null
  213 + },
  214 + // 表单参数
  215 + form: {},
  216 + // 表单校验
  217 + rules: {
  218 + }
  219 + };
  220 + },
  221 + created() {
  222 + this.getList();
  223 + },
  224 + methods: {
  225 + computedCancelFlagString(val) {
  226 + if (val === 0) {
  227 + return '未取消'
  228 + }
  229 + if (val === 1) {
  230 + return '已取消'
  231 + }
  232 + return ""
  233 + },
  234 + computedHandleStatusString(val) {
  235 + console.log(val);
  236 + if (val === 0) {
  237 + return '未处理'
  238 + }
  239 + if (val === 1) {
  240 + return '处理中'
  241 + }
  242 + if (val === 3) {
  243 + return '已处理'
  244 + }
  245 + return ""
  246 + },
  247 + /** 查询清运派单列表 */
  248 + getList() {
  249 + this.loading = true;
  250 + listOrder(this.queryParams).then(response => {
  251 + this.orderList = response.data.list;
  252 + this.total = response.data.total;
  253 + this.loading = false;
  254 + });
  255 + },
  256 + // 取消按钮
  257 + cancel() {
  258 + this.open = false;
  259 + this.reset();
  260 + },
  261 + // 表单重置
  262 + reset() {
  263 + this.form = {
  264 + garOrderId: null,
  265 + garOrderUserId: null,
  266 + garOrderHandlerId: null,
  267 + garOrderAddress: null,
  268 + garOrderAddressDetails: null,
  269 + garOrderContactName: null,
  270 + garOrderTrashType: null,
  271 + garOrderContactTel: null,
  272 + garOrderCompanyId: null,
  273 + garOrderCompanyName: null,
  274 + garOrderCompanyTel: null,
  275 + garOrderHandlerStatus: 0,
  276 + garOrderAgreementTime: null,
  277 + currentImages: [],
  278 + putDownImages: [],
  279 + putOnImages: [],
  280 + garCreateTime: null,
  281 + garUpdateTime: null,
  282 + garCreateBy: null,
  283 + garUpdateBy: null,
  284 + garRemark: null,
  285 + garReason: null,
  286 + garCancelFlag: null,
  287 + garEvaluateFlag: null,
  288 + garOrderCarNumber: null,
  289 + garOrderCarType: null,
  290 + garHandlerEvaluateFlag: null
  291 + };
  292 + this.resetForm("form");
  293 + }
  294 + ,
  295 + /** 搜索按钮操作 */
  296 + handleQuery() {
  297 + this.queryParams.pageNum = 1;
  298 + this.getList();
  299 + },
  300 + /** 重置按钮操作 */
  301 + resetQuery() {
  302 + this.resetForm("queryForm");
  303 + this.handleQuery();
  304 + },
  305 + // 多选框选中数据
  306 + handleSelectionChange(selection) {
  307 + this.ids = selection.map(item => item.garOrderId)
  308 + this.single = selection.length !== 1
  309 + this.multiple = !selection.length
  310 + },
  311 + /** 修改按钮操作 */
  312 + handleUpdate(row) {
  313 + this.reset();
  314 + const garOrderId = row.garOrderId || this.ids
  315 + getOrder(garOrderId).then(response => {
  316 + this.form = response.data;
  317 + this.form.currentImages = this.form.currentImages.map(map => process.env.VUE_APP_BASE_API + map)
  318 + this.form.putDownImages = this.form.putDownImages.map(map => process.env.VUE_APP_BASE_API + map)
  319 + this.form.putOnImages = this.form.putOnImages.map(map => process.env.VUE_APP_BASE_API + map)
  320 + this.open = true;
  321 + this.title = "清运派单详情";
  322 + });
  323 + },
  324 + /** 提交按钮 */
  325 + submitForm() {
  326 + this.open = false;
  327 + this.getList();
  328 + },
  329 + /** 删除按钮操作 */
  330 + handleDelete(row) {
  331 + const garOrderIds = row.garOrderId || this.ids;
  332 + this.$confirm('是否确认删除清运派单编号为"' + garOrderIds + '"的数据项?', "警告", {
  333 + confirmButtonText: "确定",
  334 + cancelButtonText: "取消",
  335 + type: "warning"
  336 + }).then(function () {
  337 + return delOrder(garOrderIds);
  338 + }).then(() => {
  339 + this.getList();
  340 + this.msgSuccess("删除成功");
  341 + })
  342 + },
  343 + /** 导出按钮操作 */
  344 + handleExport() {
  345 + const queryParams = this.queryParams;
  346 + this.$confirm('是否确认导出所有清运派单数据项?', "警告", {
  347 + confirmButtonText: "确定",
  348 + cancelButtonText: "取消",
  349 + type: "warning"
  350 + }).then(function () {
  351 + return exportOrder(queryParams);
  352 + }).then(response => {
  353 + this.download(response.msg);
  354 + })
  355 + }
  356 + }
  357 +};
  358 +</script>
trash-ui/src/views/gar/user/index.vue 0 → 100644
  1 +<template>
  2 + <div class="app-container">
  3 + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
  4 + <el-form-item label="手机号" prop="garUserTel">
  5 + <el-input v-model="queryParams.garUserTel" placeholder="请输入手机号" clearable size="small"
  6 + @keyup.enter.native="handleQuery" />
  7 + </el-form-item>
  8 + <el-form-item label="用户名" prop="garUserName">
  9 + <el-input v-model="queryParams.garUserName" placeholder="请输入用户名" clearable size="small"
  10 + @keyup.enter.native="handleQuery" />
  11 + </el-form-item>
  12 + <el-form-item label="用户类型" prop="garUserType">
  13 + <el-select v-model="queryParams.garUserType" placeholder="请选择用户类型" clearable size="small">
  14 + <el-option label="居民用户" value="居民用户" />
  15 + <el-option label="管理负责人" value="管理负责人" />
  16 + </el-select>
  17 + </el-form-item>
  18 + <el-form-item label="创建时间" prop="garCreateTime">
  19 + <el-date-picker clearable size="small" style="width: 200px" v-model="queryParams.garCreateTime" type="date"
  20 + value-format="yyyy-MM-dd" placeholder="选择创建时间">
  21 + </el-date-picker>
  22 + </el-form-item>
  23 + <el-form-item label="修改时间" prop="garUpdateTime">
  24 + <el-date-picker clearable size="small" style="width: 200px" v-model="queryParams.garUpdateTime" type="date"
  25 + value-format="yyyy-MM-dd" placeholder="选择修改时间">
  26 + </el-date-picker>
  27 + </el-form-item>
  28 + <el-form-item>
  29 + <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  30 + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  31 + </el-form-item>
  32 + </el-form>
  33 +
  34 + <el-row :gutter="10" class="mb8">
  35 + <el-col :span="1.5">
  36 + <el-button type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
  37 + v-hasPermi="['GarUser:GarUser:remove']">删除</el-button>
  38 + </el-col>
  39 + <el-col :span="1.5">
  40 + </el-col>
  41 + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  42 + </el-row>
  43 +
  44 + <el-table v-loading="loading" :data="GarUserList" @selection-change="handleSelectionChange">
  45 + <el-table-column type="selection" width="55" align="center" />
  46 + <el-table-column label="手机号" align="center" prop="garUserTel" />
  47 + <el-table-column label="用户名" align="center" prop="garUserName" />
  48 + <el-table-column label="用户类型" align="center" prop="garUserType" />
  49 + <el-table-column label="创建时间" align="center" prop="garCreateTime" width="180">
  50 + <template slot-scope="scope">
  51 + <span>{{ parseTime(scope.row.garCreateTime, '{y}-{m}-{d}') }}</span>
  52 + </template>
  53 + </el-table-column>
  54 + <el-table-column label="修改时间" align="center" prop="garUpdateTime" width="180">
  55 + <template slot-scope="scope">
  56 + <span>{{ parseTime(scope.row.garUpdateTime, '{y}-{m}-{d}') }}</span>
  57 + </template>
  58 + </el-table-column>
  59 + <el-table-column label="备注" align="center" prop="garRemark" />
  60 + <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  61 + <template slot-scope="scope">
  62 +
  63 + <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
  64 + v-hasPermi="['GarUser:GarUser:remove']">删除</el-button>
  65 + </template>
  66 + </el-table-column>
  67 + </el-table>
  68 +
  69 + <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
  70 + @pagination="getList" />
  71 +
  72 + <!-- 添加或修改建筑垃圾-用户对话框 -->
  73 + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
  74 + <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  75 + <el-form-item label="手机号" prop="garUserTel">
  76 + <el-input v-model="form.garUserTel" placeholder="请输入手机号" />
  77 + </el-form-item>
  78 + <el-form-item label="用户名" prop="garUserName">
  79 + <el-input v-model="form.garUserName" placeholder="请输入用户名" />
  80 + </el-form-item>
  81 + <el-form-item label="用户类型" prop="garUserType">
  82 + <el-select v-model="form.garUserType" placeholder="请选择用户类型" clearable size="small">
  83 + <el-option label="居民用户" value="居民用户" />
  84 + <el-option label="管理负责人" value="管理负责人" />
  85 + </el-select>
  86 + </el-form-item>
  87 + <el-form-item label="创建时间" prop="garCreateTime">
  88 + <el-date-picker clearable size="small" style="width: 200px" v-model="form.garCreateTime" type="date"
  89 + value-format="yyyy-MM-dd" placeholder="选择创建时间">
  90 + </el-date-picker>
  91 + </el-form-item>
  92 + <el-form-item label="修改时间" prop="garUpdateTime">
  93 + <el-date-picker clearable size="small" style="width: 200px" v-model="form.garUpdateTime" type="date"
  94 + value-format="yyyy-MM-dd" placeholder="选择修改时间">
  95 + </el-date-picker>
  96 + </el-form-item>
  97 + <el-form-item label="备注" prop="garRemark">
  98 + <el-input v-model="form.garRemark" placeholder="请输入备注" />
  99 + </el-form-item>
  100 + </el-form>
  101 + <div slot="footer" class="dialog-footer">
  102 + <el-button type="primary" @click="submitForm">确 定</el-button>
  103 + <el-button @click="cancel">取 消</el-button>
  104 + </div>
  105 + </el-dialog>
  106 + </div>
  107 +</template>
  108 +
  109 +<script>
  110 +import { addGarUser, delGarUser, exportGarUser, getGarUser, listGarUser, updateGarUser } from "@/api/gar/user";
  111 +
  112 +export default {
  113 + name: "GarUser",
  114 + data() {
  115 + return {
  116 + // 遮罩层
  117 + loading: true,
  118 + // 选中数组
  119 + ids: [],
  120 + // 非单个禁用
  121 + single: true,
  122 + // 非多个禁用
  123 + multiple: true,
  124 + // 显示搜索条件
  125 + showSearch: true,
  126 + // 总条数
  127 + total: 0,
  128 + // 建筑垃圾-用户表格数据
  129 + GarUserList: [],
  130 + // 弹出层标题
  131 + title: "",
  132 + // 是否显示弹出层
  133 + open: false,
  134 + // 查询参数
  135 + queryParams: {
  136 + pageNum: 1,
  137 + pageSize: 10,
  138 + garUserTel: null,
  139 + garUserName: null,
  140 + garUserType: null,
  141 + garUserCarNum: null,
  142 + garUserDelFlag: null,
  143 + garCreateTime: null,
  144 + garUpdateTime: null,
  145 + garRemark: null
  146 + },
  147 + // 表单参数
  148 + form: {},
  149 + // 表单校验
  150 + rules: {
  151 + garUserTel: [
  152 + { required: true, message: "手机号不能为空", trigger: "blur" }
  153 + ],
  154 + }
  155 + };
  156 + },
  157 + created() {
  158 + this.getList();
  159 + },
  160 + methods: {
  161 + /** 查询建筑垃圾-用户列表 */
  162 + getList() {
  163 + this.loading = true;
  164 + listGarUser(this.queryParams).then(response => {
  165 + console.log(response);
  166 + this.GarUserList = response.data.list;
  167 + this.total = response.data.total;
  168 + this.loading = false;
  169 + });
  170 + },
  171 + // 取消按钮
  172 + cancel() {
  173 + this.open = false;
  174 + this.reset();
  175 + },
  176 + // 表单重置
  177 + reset() {
  178 + this.form = {
  179 + garUserId: null,
  180 + garUserTel: null,
  181 + garUserName: null,
  182 + garUserType: null,
  183 + garUserCarNum: null,
  184 + garUserDelFlag: null,
  185 + garCreateTime: null,
  186 + garUpdateTime: null,
  187 + garRemark: null
  188 + };
  189 + this.resetForm("form");
  190 + },
  191 + /** 搜索按钮操作 */
  192 + handleQuery() {
  193 + this.queryParams.pageNum = 1;
  194 + this.getList();
  195 + },
  196 + /** 重置按钮操作 */
  197 + resetQuery() {
  198 + this.resetForm("queryForm");
  199 + this.handleQuery();
  200 + },
  201 + // 多选框选中数据
  202 + handleSelectionChange(selection) {
  203 + this.ids = selection.map(item => item.garUserId)
  204 + this.single = selection.length !== 1
  205 + this.multiple = !selection.length
  206 + },
  207 + /** 新增按钮操作 */
  208 + handleAdd() {
  209 + this.reset();
  210 + this.open = true;
  211 + this.title = "添加建筑垃圾-用户";
  212 + },
  213 + /** 修改按钮操作 */
  214 + handleUpdate(row) {
  215 + this.reset();
  216 + const garUserId = row.garUserId || this.ids
  217 + getGarUser(garUserId).then(response => {
  218 + this.form = response.data;
  219 + this.open = true;
  220 + this.title = "修改建筑垃圾-用户";
  221 + });
  222 + },
  223 + /** 提交按钮 */
  224 + submitForm() {
  225 + this.$refs["form"].validate(valid => {
  226 + if (valid) {
  227 + if (this.form.garUserId != null) {
  228 + updateGarUser(this.form).then(response => {
  229 + this.msgSuccess("修改成功");
  230 + this.open = false;
  231 + this.getList();
  232 + });
  233 + } else {
  234 + addGarUser(this.form).then(response => {
  235 + this.msgSuccess("新增成功");
  236 + this.open = false;
  237 + this.getList();
  238 + });
  239 + }
  240 + }
  241 + });
  242 + },
  243 + /** 删除按钮操作 */
  244 + handleDelete(row) {
  245 + const garUserIds = row.garUserId || this.ids;
  246 + this.$confirm('是否确认删除建筑垃圾-用户编号为"' + garUserIds + '"的数据项?', "警告", {
  247 + confirmButtonText: "确定",
  248 + cancelButtonText: "取消",
  249 + type: "warning"
  250 + }).then(function () {
  251 + return delGarUser(garUserIds);
  252 + }).then(() => {
  253 + this.getList();
  254 + this.msgSuccess("删除成功");
  255 + })
  256 + },
  257 + /** 导出按钮操作 */
  258 + handleExport() {
  259 + const queryParams = this.queryParams;
  260 + this.$confirm('是否确认导出所有建筑垃圾-用户数据项?', "警告", {
  261 + confirmButtonText: "确定",
  262 + cancelButtonText: "取消",
  263 + type: "warning"
  264 + }).then(function () {
  265 + return exportGarUser(queryParams);
  266 + }).then(response => {
  267 + this.download(response.msg);
  268 + })
  269 + }
  270 + }
  271 +};
  272 +</script>