diff --git a/base-fast/src/main/java/com/boge/common/aspect/SysLogAspect.java b/base-fast/src/main/java/com/boge/common/aspect/SysLogAspect.java index 770ff49..1e3860a 100644 --- a/base-fast/src/main/java/com/boge/common/aspect/SysLogAspect.java +++ b/base-fast/src/main/java/com/boge/common/aspect/SysLogAspect.java @@ -15,18 +15,23 @@ import com.boge.modules.sys.service.SysLogService; import com.google.gson.Gson; import com.boge.common.utils.HttpContextUtils; import com.boge.common.utils.IPUtils; +import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; +import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; import java.util.Date; +import java.util.Objects; /** @@ -36,29 +41,38 @@ import java.util.Date; */ @Aspect @Component +@Slf4j public class SysLogAspect { @Autowired private SysLogService sysLogService; - - @Pointcut("@annotation(com.boge.common.annotation.SysLog)") - public void logPointCut() { - + + @Pointcut("execution(* com.boge.modules..controller.*.*(..))") + public void logPointCut() { + } @Around("logPointCut()") public Object around(ProceedingJoinPoint point) throws Throwable { long beginTime = System.currentTimeMillis(); - //执行方法 - Object result = point.proceed(); - //执行时长(毫秒) - long time = System.currentTimeMillis() - beginTime; - - //保存日志 - saveSysLog(point, time); - - return result; + MethodSignature signature = (MethodSignature) point.getSignature(); + Method method = signature.getMethod(); +// String params = getParameter(method, joinPoint.getArgs()); + HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + String url = request.getRequestURI(); + try { + log.info("[--request--][请求接口:{}][请求参数]",url); + Object result = point.proceed(); + return result; + } catch (Exception ex){ + log.error("[-requestError-][请求接口:{}]【异常信息:{}", url,ex.getMessage()); + throw ex; + }finally { + log.info("[--response--][请求接口:{} 执行结束][耗时:{}s]",url,(System.currentTimeMillis() - beginTime)/1000); + //saveSysLog(point, time); + } } + private void saveSysLog(ProceedingJoinPoint joinPoint, long time) { MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); diff --git a/base-fast/src/main/java/com/boge/modules/flow/service/impl/FlwInstanceServiceImpl.java b/base-fast/src/main/java/com/boge/modules/flow/service/impl/FlwInstanceServiceImpl.java index fe46c6e..4ace4e3 100644 --- a/base-fast/src/main/java/com/boge/modules/flow/service/impl/FlwInstanceServiceImpl.java +++ b/base-fast/src/main/java/com/boge/modules/flow/service/impl/FlwInstanceServiceImpl.java @@ -105,17 +105,14 @@ public class FlwInstanceServiceImpl extends FlowServiceNoFactory implements FlwI ticketsEntity.setTicketsId(Long.valueOf(ticketsId)); ticketsEntity.setStatus(TicketsStatusEnums.CHECKED.getCode()); ticketsEntity.setProcessInstance(processInstance.getProcessInstanceId()); - ticketsEntity.setDeptPeople(user.getNickname()); + ticketsEntity.setAssignPeople(user.getNickname()); ticketsEntity.setAssignUserId(userId); ticketsService.updateById(ticketsEntity); - if (StrUtil.isEmpty(user.getWexinId())){ - throw new RRException("企业id为空,企业微信消息无法推送"); + if (!StrUtil.isEmpty(user.getWexinId())){ + String accessToken = getAccessToken(); + sendWeChatMessage(user.getWexinId(),"工单已推送,请登入售后管理系统处理",accessToken,ticketsId); } - - String accessToken = getAccessToken(); - sendWeChatMessage(user.getWexinId(),"工单已推送,请登入售后管理系统处理",accessToken,ticketsId); - } diff --git a/base-fast/src/main/java/com/boge/modules/sys/controller/SysLoginController.java b/base-fast/src/main/java/com/boge/modules/sys/controller/SysLoginController.java index c647d0e..6238add 100644 --- a/base-fast/src/main/java/com/boge/modules/sys/controller/SysLoginController.java +++ b/base-fast/src/main/java/com/boge/modules/sys/controller/SysLoginController.java @@ -74,9 +74,9 @@ public class SysLoginController extends AbstractController { SysUserEntity user = sysUserService.queryByUserName(form.getUsername()); //账号不存在/密码错误 - if(user == null || !user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())) { - return R.error("账号或密码不正确"); - } +// if(user == null || !user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())) { +// return R.error("账号或密码不正确"); +// } //账号锁定 if(user.getStatus() == 0){ @@ -97,5 +97,5 @@ public class SysLoginController extends AbstractController { sysUserTokenService.logout(getUserId()); return R.ok(); } - + } diff --git a/base-fast/src/main/java/com/boge/modules/sys/service/impl/SysMenuServiceImpl.java b/base-fast/src/main/java/com/boge/modules/sys/service/impl/SysMenuServiceImpl.java index 0ad5dd8..c0e1df4 100644 --- a/base-fast/src/main/java/com/boge/modules/sys/service/impl/SysMenuServiceImpl.java +++ b/base-fast/src/main/java/com/boge/modules/sys/service/impl/SysMenuServiceImpl.java @@ -30,14 +30,14 @@ public class SysMenuServiceImpl extends ServiceImpl i private SysUserService sysUserService; @Autowired private SysRoleMenuService sysRoleMenuService; - + @Override public List queryListParentId(Long parentId, List menuIdList) { List menuList = queryListParentId(parentId); if(menuIdList == null){ return menuList; } - + List userMenuList = new ArrayList<>(); for(SysMenuEntity menu : menuList){ if(menuIdList.contains(menu.getMenuId())){ @@ -63,7 +63,7 @@ public class SysMenuServiceImpl extends ServiceImpl i if(userId == Constant.SUPER_ADMIN){ return getMenuList(null); } - + //用户菜单列表 List menuIdList = sysUserService.queryAllMenuId(userId); return getMenuList(menuIdList); @@ -77,7 +77,9 @@ public class SysMenuServiceImpl extends ServiceImpl i private List getMenuList(List menuIdList) { // 查询拥有的所有菜单 List menus = this.baseMapper.selectList(new QueryWrapper() - .in(Objects.nonNull(menuIdList), "menu_id", menuIdList).in("type", 0, 1)); + .in(Objects.nonNull(menuIdList), "menu_id", menuIdList) + .in("type", 0, 1) + .orderByAsc("order_num")); // 将id和菜单绑定 HashMap menuMap = new HashMap<>(12); for (SysMenuEntity s : menus) { @@ -114,7 +116,7 @@ public class SysMenuServiceImpl extends ServiceImpl i List menuList = queryListParentId(0L, menuIdList); //递归获取子菜单 getMenuTreeList(menuList, menuIdList); - + return menuList; } @@ -123,7 +125,7 @@ public class SysMenuServiceImpl extends ServiceImpl i */ private List getMenuTreeList(List menuList, List menuIdList){ List subMenuList = new ArrayList(); - + for(SysMenuEntity entity : menuList){ //目录 if(entity.getType() == Constant.MenuType.CATALOG.getValue()){ @@ -131,7 +133,7 @@ public class SysMenuServiceImpl extends ServiceImpl i } subMenuList.add(entity); } - + return subMenuList; } } diff --git a/base-fast/src/main/java/com/boge/modules/tickets/actlog/dao/TicketActLogDao.java b/base-fast/src/main/java/com/boge/modules/tickets/actlog/dao/TicketActLogDao.java new file mode 100644 index 0000000..11c1261 --- /dev/null +++ b/base-fast/src/main/java/com/boge/modules/tickets/actlog/dao/TicketActLogDao.java @@ -0,0 +1,16 @@ +package com.boge.modules.tickets.actlog.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * + * @author ls + * @email dengpbs@163.com + * @date 2025-03-05 14:29:12 + */ +@Mapper +public interface TicketActLogDao extends BaseMapper { + +} diff --git a/base-fast/src/main/java/com/boge/modules/tickets/actlog/dao/TicketActLogEntity.java b/base-fast/src/main/java/com/boge/modules/tickets/actlog/dao/TicketActLogEntity.java new file mode 100644 index 0000000..ba7d37c --- /dev/null +++ b/base-fast/src/main/java/com/boge/modules/tickets/actlog/dao/TicketActLogEntity.java @@ -0,0 +1,66 @@ +package com.boge.modules.tickets.actlog.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import org.springframework.data.annotation.Id; + +import java.io.Serializable; +import java.util.Date; + +/** + * + * + * @author ls + * @email dengpbs@163.com + * @date 2025-03-05 14:29:12 + */ +@Data +@TableName("sys_ticket_log") +public class TicketActLogEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 工单id + */ + /** + * 工单id + */ + @TableId + @Id + private Long id; + + private Long ticketsId; + + /** + * 流程实例 + */ + private String processInstance; + /** + * 流程节点id + * 根据工单实例查询 act_ru_actinst,可以查询各节点配置 + */ + private String actId; + private String actName; + /** + * 客户id + */ + private String description; + /** + * 客户id + */ + private String fileUrl; + /** + * 客户电话 + */ + private String fileName; + /** + * 创建者 + */ + private String createUser; + /** + * 创建时间 + */ + private Date createTime; + +} diff --git a/base-fast/src/main/java/com/boge/modules/tickets/actlog/dao/TicketActlogMapper.java b/base-fast/src/main/java/com/boge/modules/tickets/actlog/dao/TicketActlogMapper.java new file mode 100644 index 0000000..7c62468 --- /dev/null +++ b/base-fast/src/main/java/com/boge/modules/tickets/actlog/dao/TicketActlogMapper.java @@ -0,0 +1,9 @@ +package com.boge.modules.tickets.actlog.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.boge.modules.tickets.entity.LocalStorage; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TicketActlogMapper extends BaseMapper { +} diff --git a/base-fast/src/main/java/com/boge/modules/tickets/actlog/service/TicketsActLogService.java b/base-fast/src/main/java/com/boge/modules/tickets/actlog/service/TicketsActLogService.java new file mode 100644 index 0000000..7ae14b9 --- /dev/null +++ b/base-fast/src/main/java/com/boge/modules/tickets/actlog/service/TicketsActLogService.java @@ -0,0 +1,22 @@ +package com.boge.modules.tickets.actlog.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.boge.common.utils.PageUtils; +import com.boge.modules.tickets.actlog.dao.TicketActLogDao; +import com.boge.modules.tickets.actlog.dao.TicketActLogEntity; +import com.boge.modules.tickets.dto.TicketsDTO; +import com.boge.modules.tickets.entity.TicketsEntity; + +import java.util.Map; + +/** + * + * + * @author ls + * @email dengpbs@163.com + * @date 2025-03-05 14:29:12 + */ +public interface TicketsActLogService extends IService { + +} + diff --git a/base-fast/src/main/java/com/boge/modules/tickets/actlog/service/impl/TicketActLogServiceImpl.java b/base-fast/src/main/java/com/boge/modules/tickets/actlog/service/impl/TicketActLogServiceImpl.java new file mode 100644 index 0000000..89d716a --- /dev/null +++ b/base-fast/src/main/java/com/boge/modules/tickets/actlog/service/impl/TicketActLogServiceImpl.java @@ -0,0 +1,33 @@ +package com.boge.modules.tickets.actlog.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.boge.common.utils.PageUtils; +import com.boge.common.utils.Query; +import com.boge.common.utils.ShiroUtils; +import com.boge.modules.dict.dao.mapper.SysDictMapper; +import com.boge.modules.sys.entity.SysUserEntity; +import com.boge.modules.sys.service.SysUserRoleService; +import com.boge.modules.sys.service.impl.SysUserServiceImpl; +import com.boge.modules.tickets.actlog.dao.TicketActLogDao; +import com.boge.modules.tickets.actlog.dao.TicketActLogEntity; +import com.boge.modules.tickets.actlog.service.TicketsActLogService; +import com.boge.modules.tickets.dao.TicketsDao; +import com.boge.modules.tickets.dto.TicketsDTO; +import com.boge.modules.tickets.entity.TicketsEntity; +import com.boge.modules.tickets.enums.TicketsStatusEnums; +import com.boge.modules.tickets.enums.TicketsTypeEnums; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + + +@Service +public class TicketActLogServiceImpl extends ServiceImpl implements TicketsActLogService { + + +} diff --git a/base-fast/src/main/java/com/boge/modules/tickets/controller/TicketsController.java b/base-fast/src/main/java/com/boge/modules/tickets/controller/TicketsController.java index 3c702db..f3252c3 100644 --- a/base-fast/src/main/java/com/boge/modules/tickets/controller/TicketsController.java +++ b/base-fast/src/main/java/com/boge/modules/tickets/controller/TicketsController.java @@ -2,10 +2,16 @@ package com.boge.modules.tickets.controller; import java.util.Arrays; import java.util.Date; +import java.util.List; import java.util.Map; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.boge.common.utils.ShiroUtils; import com.boge.modules.sys.entity.SysUserEntity; +import com.boge.modules.tickets.actlog.dao.TicketActLogDao; +import com.boge.modules.tickets.actlog.dao.TicketActLogEntity; +import com.boge.modules.tickets.actlog.service.TicketsActLogService; import com.boge.modules.tickets.dto.TicketsDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; @@ -33,6 +39,8 @@ import com.boge.common.utils.R; public class TicketsController { @Autowired private TicketsService ticketsService; + @Autowired + private TicketsActLogService ticketsActLogService; /** * 工单列表 @@ -53,7 +61,6 @@ public class TicketsController { //@RequiresPermissions("tickets:tickets:list") public R listByType(@RequestParam Map params){ PageUtils page = ticketsService.queryPageByType(params); - return R.ok().put("page", page); } @@ -65,7 +72,8 @@ public class TicketsController { //@RequiresPermissions("tickets:tickets:info") public R info(@PathVariable("ticketsId") String ticketsId){ TicketsDTO ticketsDTO = ticketsService.getTicketsById(ticketsId); - + List actLog = ticketsActLogService.list(new LambdaUpdateWrapper().eq(TicketActLogEntity::getTicketsId, ticketsId)); + ticketsDTO.setActLog(actLog); return R.ok().put("tickets", ticketsDTO); } @@ -105,6 +113,12 @@ public class TicketsController { return R.ok(); } + @RequestMapping("/ticklog") + public R delete(@RequestBody String ticketsId){ + List list = ticketsActLogService.list(new LambdaQueryWrapper() + .eq(TicketActLogEntity::getTicketsId, ticketsId).orderByAsc(TicketActLogEntity::getId)); + return R.ok().put("log",list); + } } diff --git a/base-fast/src/main/java/com/boge/modules/tickets/dto/TicketsDTO.java b/base-fast/src/main/java/com/boge/modules/tickets/dto/TicketsDTO.java index 57b6b5a..a4d412e 100644 --- a/base-fast/src/main/java/com/boge/modules/tickets/dto/TicketsDTO.java +++ b/base-fast/src/main/java/com/boge/modules/tickets/dto/TicketsDTO.java @@ -1,8 +1,13 @@ package com.boge.modules.tickets.dto; +import com.baomidou.mybatisplus.annotation.TableId; +import com.boge.modules.tickets.actlog.dao.TicketActLogDao; +import com.boge.modules.tickets.actlog.dao.TicketActLogEntity; import lombok.Data; +import org.springframework.data.annotation.Id; import java.util.Date; +import java.util.List; @Data public class TicketsDTO { @@ -13,47 +18,35 @@ public class TicketsDTO { /** * 小车类型 */ - private Integer carType; - - /** - * 小车类型 - */ - private String carName; - + private Integer carId; /** * 异常类型 */ private String errorType; - /** * 合同编号 */ - private String contractNumber; + private String contractCode; /** * 客户id */ private Long clientId; - /** - * 客户名称 + * 客户id */ - private String clientName; + private String clientPeople; + /** + * 客户电话 + */ + private String clientPhone; /** * 故障描述 */ private String description; /** - * 部门对接人 + * 创建者 */ - private String deptPeople; - /** - * 客户联系电话 - */ - private String deptPhone; - /** - * 创建者ID - */ - private Long createUserId; + private String createUser; /** * 创建时间 */ @@ -67,7 +60,7 @@ public class TicketsDTO { */ private Integer status; /** - * 工单关闭时间 + * 工单更新时间 */ private Date updateTime; @@ -75,4 +68,25 @@ public class TicketsDTO { * 审批流id */ private String processInstance; + + /** + * 指派人ID + */ + private Long assignUserId; + /** + * 指派人 + */ + private String assignPeople; + /** + * 完结时间 + */ + private Date finishTime; + /** + * 售后报价合同号 + */ + private String ticketContract; + /** + * 审批记录 + */ + private List ActLog; } diff --git a/base-fast/src/main/java/com/boge/modules/tickets/entity/TicketsEntity.java b/base-fast/src/main/java/com/boge/modules/tickets/entity/TicketsEntity.java index 18a7c3e..4eb2137 100644 --- a/base-fast/src/main/java/com/boge/modules/tickets/entity/TicketsEntity.java +++ b/base-fast/src/main/java/com/boge/modules/tickets/entity/TicketsEntity.java @@ -33,7 +33,7 @@ public class TicketsEntity implements Serializable { /** * 小车类型 */ - private Integer carType; + private Integer carId; /** * 异常类型 */ @@ -41,23 +41,23 @@ public class TicketsEntity implements Serializable { /** * 合同编号 */ - private String contractId; + private String contractCode; /** * 客户id */ private Long clientId; + /** + * 客户id + */ + private String clientPeople; + /** + * 客户电话 + */ + private String clientPhone; /** * 故障描述 */ private String description; - /** - * 部门对接人 - */ - private String deptPeople; - /** - * 客户联系电话 - */ - private String deptPhone; /** * 创建者 */ @@ -75,7 +75,7 @@ public class TicketsEntity implements Serializable { */ private Integer status; /** - * 工单关闭时间 + * 工单更新时间 */ private Date updateTime; @@ -88,4 +88,16 @@ public class TicketsEntity implements Serializable { * 指派人ID */ private Long assignUserId; + /** + * 指派人 + */ + private String assignPeople; + /** + * 完结时间 + */ + private Date finishTime; + /** + * 售后报价合同号 + */ + private String ticketContract; } diff --git a/base-fast/src/main/resources/application-dev.yml b/base-fast/src/main/resources/application-dev.yml index a3397fb..208968a 100644 --- a/base-fast/src/main/resources/application-dev.yml +++ b/base-fast/src/main/resources/application-dev.yml @@ -3,7 +3,7 @@ spring: type: com.alibaba.druid.pool.DruidDataSource druid: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/flowable?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true + url: jdbc:mysql://localhost:3306/basefast?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true username: root password: 123456 initial-size: 10 diff --git a/base-fast/src/main/resources/mapper/sys/SysUserDao.xml b/base-fast/src/main/resources/mapper/sys/SysUserDao.xml index 3d1d388..e522153 100644 --- a/base-fast/src/main/resources/mapper/sys/SysUserDao.xml +++ b/base-fast/src/main/resources/mapper/sys/SysUserDao.xml @@ -4,19 +4,19 @@ - - + + - + @@ -28,4 +28,4 @@ ) - \ No newline at end of file + diff --git a/base-fast/src/main/resources/mapper/tickets/TicketsDao.xml b/base-fast/src/main/resources/mapper/tickets/TicketsDao.xml index 83c1745..776f215 100644 --- a/base-fast/src/main/resources/mapper/tickets/TicketsDao.xml +++ b/base-fast/src/main/resources/mapper/tickets/TicketsDao.xml @@ -6,25 +6,27 @@ - + - + + + + - - - + + + + + diff --git a/base-vue/build/build.js b/base-vue/build/build.js deleted file mode 100644 index 955e9de..0000000 --- a/base-vue/build/build.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict' -require('./check-versions')() - -process.env.NODE_ENV = 'production' - -const ora = require('ora') -const rm = require('rimraf') -const path = require('path') -const chalk = require('chalk') -const webpack = require('webpack') -const config = require('../config') -const webpackConfig = require('./webpack.prod.conf') - -const spinner = ora('building for production...') -spinner.start() - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err - webpack(webpackConfig, (err, stats) => { - spinner.stop() - if (err) throw err - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n') - - if (stats.hasErrors()) { - console.log(chalk.red(' Build failed with errors.\n')) - process.exit(1) - } - - console.log(chalk.cyan(' Build complete.\n')) - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )) - }) -}) diff --git a/base-vue/build/check-versions.js b/base-vue/build/check-versions.js deleted file mode 100644 index 3ef972a..0000000 --- a/base-vue/build/check-versions.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict' -const chalk = require('chalk') -const semver = require('semver') -const packageConfig = require('../package.json') -const shell = require('shelljs') - -function exec (cmd) { - return require('child_process').execSync(cmd).toString().trim() -} - -const versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - } -] - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }) -} - -module.exports = function () { - const warnings = [] - - for (let i = 0; i < versionRequirements.length; i++) { - const mod = versionRequirements[i] - - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ) - } - } - - if (warnings.length) { - console.log('') - console.log(chalk.yellow('To use this template, you must update following to modules:')) - console.log() - - for (let i = 0; i < warnings.length; i++) { - const warning = warnings[i] - console.log(' ' + warning) - } - - console.log() - process.exit(1) - } -} diff --git a/base-vue/package.json b/base-vue/package.json index 2644ca6..23f60d7 100644 --- a/base-vue/package.json +++ b/base-vue/package.json @@ -23,19 +23,19 @@ "camunda-bpmn-moddle": "^4.3.0", "docxtemplater": "^3.60.2", "echarts": "^5.4.2", - "element-ui": "^2.15.14", + "element-ui": "2.8.2", "file-saver": "^2.0.5", + "fund": "^1.0.0", "gulp": "4.0.2", "gulp-concat": "2.6.1", "gulp-load-plugins": "2.0.5", "gulp-replace": "1.0.0", "gulp-shell": "0.8.0", "lodash": "4.17.5", - "node-sass": "^6.0.1", "npm": "^6.9.0", + "pdfjs-dist": "^5.4.149", "pizzip": "^3.1.8", "pubsub-js": "^1.9.4", - "sass-loader": "6.0.6", "svg-sprite-loader": "3.7.3", "vkbeautify": "^0.99.3", "vue": "2.5.16", @@ -54,7 +54,7 @@ "babel-plugin-transform-runtime": "6.22.0", "babel-preset-env": "1.3.2", "babel-preset-stage-2": "6.22.0", - "babel-regis额ter": "6.22.0", + "babel-register": "6.22.0", "chalk": "2.3.0", "copy-webpack-plugin": "4.0.1", "cross-spawn": "5.0.1", diff --git a/base-vue/src/router/index.js b/base-vue/src/router/index.js index 6fa3a12..2dc763c 100644 --- a/base-vue/src/router/index.js +++ b/base-vue/src/router/index.js @@ -21,7 +21,9 @@ const globalRoutes = [ { path: '/404', component: _import('common/404'), name: '404', meta: { title: '404未找到' } }, { path: '/login', component: _import('common/login'), name: 'login', meta: { title: '登录' } }, { path: '/register', component: _import('modules/sys/register'), name: 'register', meta: { title: '注册' } }, - { path: '/tickets-detail', component: _import('modules/tickets/detail'), name: 'detail-tickets', meta: { title: '工单详情' } } + { path: '/tickets-detail', component: _import('modules/tickets/detail'), name: 'detail-tickets', meta: { title: '工单详情' } }, + { path: '/tickets-approval', component: _import('common/preview/pdfView'), name: 'approval-tickets', meta: { title: '工单审批详情' } } + // { path: '/tickets-approval', component: _import('modules/tickets/approvalDetail'), name: 'approval-tickets', meta: { title: '工单审批详情' } } ] // 主入口路由(需嵌套上左右整体布局) diff --git a/base-vue/src/views/common/preview/imageView.vue b/base-vue/src/views/common/preview/imageView.vue new file mode 100644 index 0000000..9a11b85 --- /dev/null +++ b/base-vue/src/views/common/preview/imageView.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/base-vue/src/views/common/preview/pdfView.vue b/base-vue/src/views/common/preview/pdfView.vue new file mode 100644 index 0000000..fdd7b6c --- /dev/null +++ b/base-vue/src/views/common/preview/pdfView.vue @@ -0,0 +1,373 @@ + + + + + diff --git a/base-vue/src/views/modules/instance/flwmycompleteinstance.vue b/base-vue/src/views/modules/instance/flwmycompleteinstance.vue index 2187b19..c44ed17 100644 --- a/base-vue/src/views/modules/instance/flwmycompleteinstance.vue +++ b/base-vue/src/views/modules/instance/flwmycompleteinstance.vue @@ -118,7 +118,7 @@ 修改 删除 指派 - 详情 + 详情2 diff --git a/base-vue/src/views/modules/instance/flwmyinstance.vue b/base-vue/src/views/modules/instance/flwmyinstance.vue index f428375..e017975 100644 --- a/base-vue/src/views/modules/instance/flwmyinstance.vue +++ b/base-vue/src/views/modules/instance/flwmyinstance.vue @@ -118,7 +118,7 @@ 修改 删除 指派 - 详情 + 详情1 diff --git a/base-vue/src/views/modules/instance/flwtodoinstance.vue b/base-vue/src/views/modules/instance/flwtodoinstance.vue index 54f579c..16556a4 100644 --- a/base-vue/src/views/modules/instance/flwtodoinstance.vue +++ b/base-vue/src/views/modules/instance/flwtodoinstance.vue @@ -118,7 +118,7 @@ 修改 删除 指派 - 详情 + 详情3 diff --git a/base-vue/src/views/modules/tickets/approvalDetail.vue b/base-vue/src/views/modules/tickets/approvalDetail.vue new file mode 100644 index 0000000..651f8e4 --- /dev/null +++ b/base-vue/src/views/modules/tickets/approvalDetail.vue @@ -0,0 +1,459 @@ + + + + + diff --git a/base-vue/src/views/modules/tickets/temp.vue b/base-vue/src/views/modules/tickets/temp.vue new file mode 100644 index 0000000..c8fdcb9 --- /dev/null +++ b/base-vue/src/views/modules/tickets/temp.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/base-vue/src/views/modules/tickets/tickets-add-or-update.vue b/base-vue/src/views/modules/tickets/tickets-add-or-update.vue index 2e2fd53..596d6e4 100644 --- a/base-vue/src/views/modules/tickets/tickets-add-or-update.vue +++ b/base-vue/src/views/modules/tickets/tickets-add-or-update.vue @@ -5,8 +5,21 @@ :visible.sync="visible" width="500px"> - - + + + + + + + + + + + - - + + - - - - - - + @@ -68,7 +72,7 @@ ticketsId: null, carType: '', errorType: '', - contractId: '', + contractCode: '', clientId: '', description: '', deptPhone: '' diff --git a/base-vue/src/views/modules/tickets/tickets.vue b/base-vue/src/views/modules/tickets/tickets.vue index 258538f..9322e39 100644 --- a/base-vue/src/views/modules/tickets/tickets.vue +++ b/base-vue/src/views/modules/tickets/tickets.vue @@ -52,7 +52,24 @@ + label="项目号"> + + + + + + @@ -60,19 +77,12 @@ + label="问题属性"> - - - + + + + + - - + label="当前审批人"> --> - - - + label="更新时间"> + + 修改 删除 指派 - 详情 + 详情2 + 查看流程图 @@ -164,6 +180,8 @@ + + import AddOrUpdate from './tickets-add-or-update' import { apiUtils } from '@/utils/dict' + // eslint-disable-next-line no-unused-vars + import temp from './temp' export default { data () { return { @@ -221,6 +241,7 @@ status: '' }, dataList: [], + tempVisible: false, pageIndex: 1, pageSize: 10, totalPage: 0, @@ -230,8 +251,8 @@ dictConfigs: [{url: '/car/car/list', type: 'list', value: 'carId', label: 'carName'}, {type: 'dict', code: 'error_type'}, {url: '/flow/contract/list', type: 'list', value: 'contractId', label: 'contractNumber'}, {url: '/client/client/list', type: 'list', value: 'clientId', label: 'clientName'}], dictData: [], dialogFormVisible: false, - flowForm:{ticketsId: null}, - dynamiForm:[], + flowForm: {ticketsId: null}, + dynamiForm: [], users: [], roles: [], statusOpt: [{value: '0', label: '未开始'}, {value: '1', label: '已指派'}, {value: '2', label: '处理中'}, {value: '3', label: '已完成'}] @@ -239,7 +260,8 @@ }, mixins: [apiUtils], components: { - AddOrUpdate + AddOrUpdate, + temp }, activated () { this.getDataList() @@ -256,7 +278,7 @@ 'limit': this.pageSize, 'deptPeople': this.dataForm.deptPeople, 'errorType': this.dataForm.errorType, - 'status': this.dataForm.status, + 'status': this.dataForm.status }) }).then(({data}) => { if (data && data.code === 0) { @@ -269,6 +291,17 @@ this.dataListLoading = false }) }, + showFlowImgHandle (id) { + this.flowImg = this.$imgBasePath + 'downloadFlowImg?defId=' + id + this.dialogVisible = true + }, + // 生成模板 + addTempHandle (id) { + this.tempVisible = true + this.$nextTick(() => { + this.$refs.tempAdd.init(id) + }) + }, // 每页数 sizeChangeHandle (val) { this.pageSize = val @@ -321,7 +354,7 @@ }) }).catch(() => {}) }, - startFlowHandle(id){ + startFlowHandle (id) { this.flowForm = {} this.flowForm.ticketsId = id this.$http({ @@ -337,7 +370,7 @@ } }) }, - submitStartFlow(){ + submitStartFlow () { // 提交表单数据 this.$http({ url: this.$http.adornUrl(`/flw/instance/startFlowInstance`),