From aa0161bf05195ccb00bc1d8da4b1b8218f93f4d3 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期六, 04 十一月 2023 16:14:18 +0800 Subject: [PATCH] # --- src/main/webapp/views/priOnline2/priOnline.html | 297 ++++---- src/main/webapp/static/js/priOnline2/priOnline.js | 68 + src/main/resources/mapper/CstmrMapper.xml | 95 +- src/main/webapp/views/priOnline2/priOnline_check.html | 473 ++++++------ src/main/java/com/zy/crm/manager/entity/ProcessPermissions.java | 6 src/main/java/com/zy/crm/manager/entity/PriOnline2.java | 12 src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java | 343 +++------ src/main/java/com/zy/crm/manager/controller/PlanController.java | 27 src/main/java/com/zy/crm/common/model/SettleDto.java | 73 +- src/main/resources/mapper/PriOnline2Mapper.xml | 2 src/main/webapp/views/priOnline2/priOnline_detail.html | 640 +++++++++-------- src/main/java/com/zy/crm/manager/utils/SmsUtils.java | 2 src/main/webapp/views/priOnline2/priOnline_more.html | 11 src/main/webapp/views/processPermissions/processPermissions.html | 6 14 files changed, 1,005 insertions(+), 1,050 deletions(-) diff --git a/src/main/java/com/zy/crm/common/model/SettleDto.java b/src/main/java/com/zy/crm/common/model/SettleDto.java index ce79013..c9c1066 100644 --- a/src/main/java/com/zy/crm/common/model/SettleDto.java +++ b/src/main/java/com/zy/crm/common/model/SettleDto.java @@ -30,7 +30,27 @@ private Boolean curr; - public static List<SettleDto> init(Plan plan, User manager,User planLeader) { + public static List<SettleDto> InItFlowPath(List<User> users, List<String> names, int nodes) { + List<SettleDto> list = new ArrayList<>(); + for (int i = 0; i < nodes; i++) { + SettleDto dto = new SettleDto(); + dto.setStep(i); + if (i == 0) { + dto.setTitle("寮�濮�"); + dto.setMsg(users.get(i).getUsername() + names.get(i)); + dto.setTime(DateUtils.convert(new Date())); + dto.setCurr(Boolean.TRUE); + } else { + dto.setTitle(names.get(i)); + } + dto.setUserId(users.get(i).getId()); + dto.setUsername(users.get(i).getUsername()); + list.add(dto); + } + return list; + } + + public static List<SettleDto> init(Plan plan, User manager, User planLeader) { List<SettleDto> list = new ArrayList<>(); for (int i = 1; i < 6; i++) { SettleDto dto = new SettleDto(); @@ -45,12 +65,6 @@ dto.setCurr(Boolean.TRUE); list.add(dto); break; -// case 2: -// dto.setTitle("缁勯暱瀹℃牳"); -// dto.setUserId(manager.getId()); -// dto.setUsername(manager.getNickname()); -// list.add(dto); -// break; case 2: dto.setTitle("鍞墠瀹℃牳"); dto.setUserId(planLeader.getId()); @@ -74,7 +88,7 @@ return list; } - public static List<SettleDto> initPriQuote(Plan plan, User manager ,User president,User user) { + public static List<SettleDto> initPriQuote(Plan plan, User manager, User president, User user) { List<SettleDto> list = new ArrayList<>(); for (int i = 1; i < 5; i++) { SettleDto dto = new SettleDto(); @@ -101,10 +115,6 @@ dto.setUsername(president.getNickname()); list.add(dto); break; -// case 4: -// dto.setTitle("涓氬姟鍛樺鏍�"); -// list.add(dto); -// break; case 4: dto.setTitle("瀹℃壒閫氳繃"); dto.setUserId(plan.getUserId()); @@ -118,21 +128,12 @@ return list; } - public static List<SettleDto> initPriQuote(ReimburseOnline reimburseOnline, User manager , User president3, User president4,User president5,User president6,User user) { + public static List<SettleDto> initPriQuote(ReimburseOnline reimburseOnline, User manager, User president3, User president4, User president5, User president6, User user) { List<SettleDto> list = new ArrayList<>(); for (int i = 0; i < 7; i++) { SettleDto dto = new SettleDto(); dto.setStep(i); switch (i) { -// case 0: -// dto.setTitle("寮�濮�"); -// dto.setMsg(user.getUsername() + "鍒涘缓浜嗗鎵�"); -// dto.setUserId(user.getId()); -// dto.setUsername(user.getUsername()); -// dto.setTime(DateUtils.convert(new Date())); -// dto.setCurr(Boolean.TRUE); -// list.add(dto); -// break; case 1: dto.setTitle("寮�濮�"); dto.setMsg(user.getUsername() + "鍒涘缓浜嗗鎵�"); @@ -149,33 +150,29 @@ list.add(dto); break; case 3: - dto.setTitle(president3.getUsername()+"瀹℃牳"); + dto.setTitle(president3.getUsername() + "瀹℃牳"); dto.setUserId(president3.getId()); dto.setUsername(president3.getNickname()); list.add(dto); break; case 4: - dto.setTitle(president4.getUsername()+"瀹℃牳"); + dto.setTitle(president4.getUsername() + "瀹℃牳"); dto.setUserId(president4.getId()); dto.setUsername(president4.getNickname()); list.add(dto); break; case 5: - dto.setTitle(president5.getUsername()+"瀹℃牳"); + dto.setTitle(president5.getUsername() + "瀹℃牳"); dto.setUserId(president5.getId()); dto.setUsername(president5.getNickname()); list.add(dto); break; case 6: - dto.setTitle(president6.getUsername()+"瀹℃牳"); + dto.setTitle(president6.getUsername() + "瀹℃牳"); dto.setUserId(president6.getId()); dto.setUsername(president6.getNickname()); list.add(dto); break; -// case 4: -// dto.setTitle("涓氬姟鍛樺鏍�"); -// list.add(dto); -// break; default: break; } @@ -183,7 +180,7 @@ return list; } - public static List<SettleDto> initBusiness(User manager ,User user) { + public static List<SettleDto> initBusiness(User manager, User user) { List<SettleDto> list = new ArrayList<>(); for (int i = 0; i < 3; i++) { SettleDto dto = new SettleDto(); @@ -193,7 +190,7 @@ dto.setTitle("鎻愪氦鍑哄樊"); dto.setUserId(user.getId()); dto.setUsername(user.getNickname()); - dto.setMsg(user.getNickname()+"鎻愪氦鍑哄樊鐢宠"); + dto.setMsg(user.getNickname() + "鎻愪氦鍑哄樊鐢宠"); dto.setTime(DateUtils.convert(new Date())); list.add(dto); break; @@ -210,9 +207,9 @@ return list; } - public static List<SettleDto> initSalesPricing(User manager ,User user,User userUp,List<String> names ,int nodes) { + public static List<SettleDto> initSalesPricing(User manager, User user, User userUp, List<String> names, int nodes) { List<SettleDto> list = new ArrayList<>(); - for (int i = 0; i < nodes+1; i++) { + for (int i = 0; i < nodes + 1; i++) { SettleDto dto = new SettleDto(); dto.setStep(i); switch (i) { @@ -250,9 +247,9 @@ return list; } - public static List<SettleDto> initSalesPricingPriOnline2(User user,User userUp,List<String> names ,int nodes) { + public static List<SettleDto> initSalesPricingPriOnline2(User user, User userUp, List<String> names, int nodes) { List<SettleDto> list = new ArrayList<>(); - for (int i = 0; i < nodes+1; i++) { + for (int i = 0; i < nodes + 1; i++) { SettleDto dto = new SettleDto(); dto.setStep(i); switch (i) { @@ -284,9 +281,9 @@ return list; } - public static List<SettleDto> initContract(User manager ,User user,User president,List<String> names ,int nodes) { + public static List<SettleDto> initContract(User manager, User user, User president, List<String> names, int nodes) { List<SettleDto> list = new ArrayList<>(); - for (int i = 0; i < nodes+1; i++) { + for (int i = 0; i < nodes + 1; i++) { SettleDto dto = new SettleDto(); dto.setStep(i); switch (i) { diff --git a/src/main/java/com/zy/crm/manager/controller/PlanController.java b/src/main/java/com/zy/crm/manager/controller/PlanController.java index 5a40c57..eb74659 100644 --- a/src/main/java/com/zy/crm/manager/controller/PlanController.java +++ b/src/main/java/com/zy/crm/manager/controller/PlanController.java @@ -59,6 +59,7 @@ private ProcessPermissionsService processPermissionsService; String PZH=" 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� "; + Integer PBN = 6; @GetMapping(value = "/plan/{id}/auth") @@ -696,30 +697,20 @@ wrapper.like("name", condition); wrapper.eq("status",1); - - ProcessPermissions processPermissions1 = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", "1-1"));//2锛氭牳浠锋祦绋� - User manager1 = userService.selectById(processPermissions1.getUserId()); // 鑾峰彇鏍镐环娴佺▼鑺傜偣1纭浜� - - ProcessPermissions processPermissions2 = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", "1-2"));//2锛氭牳浠锋祦绋� - User manager2 = userService.selectById(processPermissions2.getUserId()); // 鑾峰彇鏍镐环娴佺▼鑺傜偣1纭浜� - - ProcessPermissions processPermissions3= processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", "1-3"));//2锛氭牳浠锋祦绋� - User manager3 = userService.selectById(processPermissions3.getUserId()); // 鑾峰彇鏍镐环娴佺▼鑺傜偣1纭浜� - + List<ProcessPermissions> processPermissionsList = processPermissionsService.selectList(new EntityWrapper<ProcessPermissions>().eq("process_memo", 4).or().eq("process_memo", 5));//2锛氭牳浠锋祦绋� int type =0; - if (getUserId().equals(manager1.getId())){ - type=1;//(璐ф灦) - }else if (getUserId().equals(manager2.getId()) || getUserId().equals(manager3.getId())){ - type = 2;//(闆嗘垚) - }else { + for (ProcessPermissions processPermissions:processPermissionsList){ + if (getUserId().equals(processPermissions.getUserId())){ + type=PBN-processPermissions.getProcessMemo(); + break; + } + } + if (type==0){ return R.error("浣犱笉鏄牳浠峰憳,鏃犳潈鎺ヤ换鍔�"); } List<Long> typeList = new ArrayList<>(); List<PlanType> planTypes = planTypeService.selectList(new EntityWrapper<PlanType>().eq("type", type)); - if (type==1){ - planTypes = planTypeService.selectList(new EntityWrapper<PlanType>()); - } if (Cools.isEmpty(planTypes) || planTypes.size()==0){ return R.ok(); } diff --git a/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java b/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java index 478a3a3..bf22ba6 100644 --- a/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java +++ b/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java @@ -42,7 +42,7 @@ private PlanService planService; @Autowired - private PlanTypeService planTypeService; + private PlanTypeService planTypeService; @Autowired private ProcessPermissionsService processPermissionsService; @@ -56,7 +56,7 @@ @Autowired private UserService userService; - String PZH=" 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� "; + String PZH = " 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� "; @RequestMapping(value = "/priOnline2/{id}/auth") @ManagerAuth @@ -65,7 +65,7 @@ assert priOnline2 != null; JSONObject resultObj = JSON.parseObject(JSON.toJSONString(priOnline2)); // 姝ラ鏉$浉鍏� - resultObj.put("step", priOnline2.getSettle() == 3 ? 0 : priOnline2.getSettle() + 1); + resultObj.put("step", priOnline2.getSettle().equals(priOnline2.getSettleSize()) ? 0 : priOnline2.getSettle() + 1); return R.ok().add(resultObj); } @@ -81,69 +81,71 @@ @RequestMapping(value = "/priOnline2/list/auth") @ManagerAuth - public R list(@RequestParam(defaultValue = "1")Integer curr, - @RequestParam(defaultValue = "10")Integer limit, - @RequestParam(required = false)String orderByField, - @RequestParam(required = false)String orderByType, - @RequestParam(required = false)String condition, - @RequestParam Map<String, Object> param){ + public R list(@RequestParam(defaultValue = "1") Integer curr, + @RequestParam(defaultValue = "10") Integer limit, + @RequestParam(required = false) String orderByField, + @RequestParam(required = false) String orderByType, + @RequestParam(required = false) String condition, + @RequestParam Map<String, Object> param) { EntityWrapper<PriOnline2> wrapper = new EntityWrapper<>(); - wrapper.setSqlSelect("id,title,create_time as createTime,filepath,settle,item_id as itemId,order_num as orderNum,template_name as templateName,user_id as userId,dept_id as deptId,status,update_time as updateTime,check_data as checkData,update_user_id as updateUserId,member_id as memberId"); + wrapper.setSqlSelect("id,title,create_time as createTime,filepath,settle,settle_size as settleSize,item_id as itemId,order_num as orderNum,template_name as templateName,user_id as userId,dept_id as deptId,status,update_time as updateTime,check_data as checkData,update_user_id as updateUserId,member_id as memberId"); // wrapper.in("member_id", getUserRoleBelongsToUserId("allopen")); excludeTrash(param); convert(param, wrapper); allLike(PriOnline2.class, param.keySet(), wrapper, condition); - wrapper.or().eq("member_id",getUserId()); - if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + wrapper.or().eq("member_id", getUserId()); + if (!Cools.isEmpty(orderByField)) { + wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); + } return R.ok(priOnline2Service.selectPage(new Page<>(curr, limit), wrapper)); } - private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) { boolean signUserId = false; boolean signDeptId = false; boolean signHostId = false; - for (Map.Entry<String, Object> entry : map.entrySet()){ - if (entry.getKey().equals("dept_id")){ + for (Map.Entry<String, Object> entry : map.entrySet()) { + if (entry.getKey().equals("dept_id")) { signDeptId = true; - if (String.valueOf(entry.getValue()).equals("19")){ + if (String.valueOf(entry.getValue()).equals("19")) { signHostId = true; } } } - for (Map.Entry<String, Object> entry : map.entrySet()){ + for (Map.Entry<String, Object> entry : map.entrySet()) { String val = String.valueOf(entry.getValue()); - if (val.contains(RANGE_TIME_LINK)){ + if (val.contains(RANGE_TIME_LINK)) { String[] dates = val.split(RANGE_TIME_LINK); wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); - } else if (entry.getKey().equals("dept_id")){ - if (!val.equals("19")){ + } else if (entry.getKey().equals("dept_id")) { + if (!val.equals("19")) { wrapper.eq(entry.getKey(), val); } - } else if (entry.getKey().equals("user_id") && !signDeptId){ + } else if (entry.getKey().equals("user_id") && !signDeptId) { signUserId = true; wrapper.eq(entry.getKey(), val); } else { wrapper.like(entry.getKey(), val); } } - if (!signUserId && !signDeptId){ - if (getRole().getId()==1){ - wrapper.or().eq("host_id",1); - }else if (getRole().getId()==2){ - wrapper.eq("dept_id",getDeptId()); - }else { + if (!signUserId && !signDeptId) { + if (getRole().getId() == 1) { + wrapper.or().eq("host_id", 1); + } else if (getRole().getId() == 2) { + wrapper.eq("dept_id", getDeptId()); + } else { wrapper.eq("user_id", getUserId()); } } - if (signHostId){ - wrapper.or().eq("host_id",1); + if (signHostId) { + wrapper.or().eq("host_id", 1); } } @RequestMapping(value = "/priOnline2/add/auth") @ManagerAuth(memo = "娣诲姞鏍镐环绠$悊") - public R add(@RequestBody Map<String,Object> map) { + public R add(@RequestBody Map<String, Object> map) { PriOnline2 priOnline2 = new PriOnline2(); priOnline2.setCreateTime(new Date()); priOnline2.setTitle(map.get("title").toString()); @@ -170,7 +172,7 @@ //鐘舵�侊紝鏈畬鎴� priOnline2.setStatus(0); - if (plan.getStatus()!=1){ + if (plan.getStatus() != 1) { return R.error("姝よ鍒掑崟鐘舵�佹敼鍙橈紝璇峰埛鏂伴〉闈㈤噸鏂伴�夋嫨锛�"); } priOnline2.setMemberId(getUserId()); @@ -188,18 +190,29 @@ // } // String node="2-"; -// PlanType planType = planTypeService.selectById(plan.getPlanType()); + PlanType planType = planTypeService.selectById(plan.getPlanType()); // node = node+planType.getType(); -// ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", node));//2锛氭牳浠锋祦绋� +// ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", "2-1"));//2锛氭牳浠锋祦绋� // User manager = userService.selectById(processPermissions.getUserId()); // 鑾峰彇鏍镐环娴佺▼鑺傜偣2纭浜� - // 鑾峰彇涓氬姟鍛� + // 鑾峰彇涓氬姟鍛� List<String> initNames = new ArrayList<>(); initNames.add("鎺ュ彇鏍镐环浠诲姟"); initNames.add("瀹屾垚鏍镐环"); + if (planType.getType().equals(2)) { + initNames.add("瀹屾垚鏍镐环"); + } // initNames.add("缁忕悊瀹℃牳"); initNames.add("涓氬姟鍛樼‘璁�"); - priOnline2.setSettleMsg(JSON.toJSONString(SettleDto.initSalesPricingPriOnline2(getUser(),userUp,initNames,2))); + List<User> users = new ArrayList<>(); + users.add(getUser()); + users.add(getUser()); + if (planType.getType().equals(2)) { + users.add(userService.selectById(73)); + } + users.add(userUp); + priOnline2.setSettleMsg(JSON.toJSONString(SettleDto.InItFlowPath(users, initNames, users.size()))); + priOnline2.setSettleSize(users.size()); //璁剧疆椤圭洰娴佺▼ plan.setStep(2); @@ -212,7 +225,7 @@ @RequestMapping(value = "/priOnline2/addOther/auth") @ManagerAuth(memo = "鍙﹀瓨鏍镐环绠$悊") - public R addOther(@RequestBody Map<String,Object> map) { + public R addOther(@RequestBody Map<String, Object> map) { PriOnline2 online = priOnline2Service.selectById(Long.parseLong(map.get("id").toString())); PriOnline2 priOnline2 = new PriOnline2(); @@ -242,9 +255,9 @@ return R.ok(); } - @RequestMapping(value = "/priOnline2/update/auth") - @ManagerAuth(memo = "鏇存柊鏍镐环绠$悊") - public R update(@RequestBody Map<String,Object> map){ + @RequestMapping(value = "/priOnline2/update/auth") + @ManagerAuth(memo = "鏇存柊鏍镐环绠$悊") + public R update(@RequestBody Map<String, Object> map) { PriOnline2 priOnline2 = priOnline2Service.selectById(Long.parseLong(map.get("id").toString())); if (priOnline2.getStatus() == 1) { return R.error("鏍镐环宸插畬鎴愶紝绂佹淇濆瓨"); @@ -262,7 +275,7 @@ //鏇存柊鐘舵�� @RequestMapping(value = "/priOnline2/updateForm/auth") @ManagerAuth(memo = "鏇存柊鏍镐环绠$悊鐘舵��") - public R updateForm(Long id,Integer status,String title,String templateName){ + public R updateForm(Long id, Integer status, String title, String templateName) { PriOnline2 priOnline2 = priOnline2Service.selectById(id); priOnline2.setStatus(status); priOnline2.setUpdateTime(new Date()); @@ -276,7 +289,7 @@ @ManagerAuth(memo = "涓婁紶璇环鏂囦欢") public R uploadCheck(@RequestParam("id") Integer id, @RequestParam("checkData") String checkData, - @RequestParam("file") MultipartFile[] files){ + @RequestParam("file") MultipartFile[] files) { PriOnline2 priOnline2 = priOnline2Service.selectById(id); if (priOnline2.getStatus() == 1) { return R.error("鏍镐环宸插畬鎴愶紝绂佹涓婁紶"); @@ -286,7 +299,7 @@ MultipartFile file = files[0]; SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss"); - String path = ClassUtils.getDefaultClassLoader().getResource("excel/uploadCheckData").getPath(); + String path = ClassUtils.getDefaultClassLoader().getResource("excel/uploadCheckData").getPath(); //鏂囦欢鍚庣紑鍚� String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); //涓婁紶鏂囦欢鍚� @@ -297,7 +310,7 @@ //鏈嶅姟鍣ㄧ淇濆瓨鐨勬枃浠跺璞� File serverFile = new File(filepath); - if(!serverFile.exists()) { + if (!serverFile.exists()) { try { //鍒涘缓鏂囦欢 serverFile.createNewFile(); @@ -343,14 +356,14 @@ @RequestMapping(value = "/priOnline2/delete/auth") @ManagerAuth(memo = "鍒犻櫎鏍镐环绠$悊") - public R delete(Long[] ids){ - try{ - if (Cools.isEmpty(ids) || ids.length==0){ + public R delete(Long[] ids) { + try { + if (Cools.isEmpty(ids) || ids.length == 0) { return R.error(); } - for (Long id : ids){ - int priQuote= priQuoteService.selectCount(new EntityWrapper<PriQuote>().eq("pri_online_id", id)); - if (priQuote!=0){ + for (Long id : ids) { + int priQuote = priQuoteService.selectCount(new EntityWrapper<PriQuote>().eq("pri_online_id", id)); + if (priQuote != 0) { return R.error("瀛樺湪鍏宠仈鐨勬姤浠峰崟锛岀姝㈠垹闄わ紒锛侊紒"); } // int priSales = priSalesService.selectCount(new EntityWrapper<PriSales>().eq("pri_online2_id", id)); @@ -367,14 +380,14 @@ priOnline2Service.deleteBatchIds(Arrays.asList(ids)); return R.ok(); - }catch (Exception e){ + } catch (Exception e) { return R.error(e.getMessage()); } } @RequestMapping(value = "/priOnline2/export/auth") @ManagerAuth - public R export(@RequestBody JSONObject param){ + public R export(@RequestBody JSONObject param) { EntityWrapper<PriOnline2> wrapper = new EntityWrapper<>(); List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); Map<String, Object> map = excludeTrash(param.getJSONObject("priOnline")); @@ -391,7 +404,7 @@ wrapper.in("user_id", getUserRoleBelongsToUserId("allopen")); Page<PriOnline2> page = priOnline2Service.selectPage(new Page<>(0, 10), wrapper); List<Map<String, Object>> result = new ArrayList<>(); - for (PriOnline2 priOnline2 : page.getRecords()){ + for (PriOnline2 priOnline2 : page.getRecords()) { Map<String, Object> map = new HashMap<>(); map.put("id", priOnline2.getId()); // map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getPlanId$() + "/" + priOnline2.getMemberId$()); @@ -409,7 +422,7 @@ wrapper.in("user_id", getUserRoleBelongsToUserId("allopen")); Page<PriOnline2> page = priOnline2Service.selectPage(new Page<>(0, 10), wrapper); List<Map<String, Object>> result = new ArrayList<>(); - for (PriOnline2 priOnline2 : page.getRecords()){ + for (PriOnline2 priOnline2 : page.getRecords()) { Map<String, Object> map = new HashMap<>(); map.put("id", priOnline2.getId()); // map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getPlanId$() + "/" + priOnline2.getMemberId$()); @@ -425,7 +438,7 @@ @ManagerAuth public R query(@RequestBody JSONObject param) { Wrapper<PriOnline2> wrapper = new EntityWrapper<PriOnline2>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); - if (null != priOnline2Service.selectOne(wrapper)){ + if (null != priOnline2Service.selectOne(wrapper)) { return R.parse(BaseRes.REPEAT).add(getComment(PriOnline2.class, String.valueOf(param.get("key")))); } return R.ok(); @@ -448,26 +461,26 @@ Date now = new Date(); Long memberId = priOnline2.getMemberId(); User member = userService.selectById(memberId); - if (!member.getId().equals(getUserId())){ + if (!member.getId().equals(getUserId())) { return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�"); } List<SettleDto> planDtos = JSON.parseArray(priOnline2.getSettleMsg(), SettleDto.class); List<SettleDto> planDtoList = new ArrayList<>(); boolean sign = true; for (SettleDto dto : planDtos) { - if (dto.getStep().equals(1)){ + if (dto.getStep().equals(1)) { priOnline2.setMemberId(dto.getUserId()); } - if (sign && dto.getUserId().equals(memberId) && priOnline2.getSettle()+1==dto.getStep()){ - if (Cools.isEmpty(dto.getMsg())){ - dto.setMsg(DateUtils.convert(now)+" "+member.getNickname()+"鍥為��瀹℃壒"); - }else { - dto.setMsg(dto.getMsg()+PZH+DateUtils.convert(now)+" "+member.getNickname()+"鍥為��瀹℃壒"); + if (sign && dto.getUserId().equals(memberId) && priOnline2.getSettle() + 1 == dto.getStep()) { + if (Cools.isEmpty(dto.getMsg())) { + dto.setMsg(DateUtils.convert(now) + " " + member.getNickname() + "鍥為��瀹℃壒"); + } else { + dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(now) + " " + member.getNickname() + "鍥為��瀹℃壒"); } sign = false; } - if (sign){ - dto.setMsg(dto.getMsg()+PZH+DateUtils.convert(now)+" "+member.getNickname()+"鍥為��瀹℃壒"); + if (sign) { + dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(now) + " " + member.getNickname() + "鍥為��瀹℃壒"); } planDtoList.add(dto); @@ -485,161 +498,69 @@ @PostMapping(value = "/priOnline2/approval/auth") @ManagerAuth public R approvalBusinessTrip(@RequestParam Long priOnlineId, - @RequestParam(required = false) Long plannerId){ + @RequestParam(required = false) Long plannerId) { PriOnline2 priOnline2 = priOnline2Service.selectById(priOnlineId); assert priOnline2 != null; Date now = new Date(); - switch (priOnline2.getSettle()) { - case 0: - // 鏈儴闂ㄧ粡鐞嗗鏍� 鑺傜偣璐熻矗浜� - User user = userService.selectById(priOnline2.getMemberId()); + Long nextUserId = getUserId(); + User user = new User(); + List<SettleDto> list = new ArrayList<>(); - Plan plan1 = planService.selectById(priOnline2.getItemId()); -// PlanType planType1 = planTypeService.selectById(plan1.getPlanType()); -// -// ProcessPermissions processPermissions1 = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", "2-"+planType1.getType()));//2锛氭牳浠锋祦绋� -// User manager1 = userService.selectById(processPermissions1.getUserId()); // 鑾峰彇鎶ヤ环娴佺▼鑺傜偣2纭浜� + user = userService.selectById(priOnline2.getMemberId()); - if (Cools.isEmpty(getUser())) { - return R.error("鎶辨瓑锛屾偍娌℃湁鎻愪氦鐨勬潈闄�"); - } - if (!getUserId().equals(user.getId())) { - return R.error("鎶辨瓑锛屾偍娌℃湁鎻愪氦鐨勬潈闄�"); - } - // 淇敼 settle 姝ラ鏁版嵁 - List<SettleDto> list1 = JSON.parseArray(priOnline2.getSettleMsg(), SettleDto.class); - for (SettleDto dto : list1) { - switch (dto.getStep()) { - case 0: - dto.setCurr(Boolean.FALSE); - break; - case 1: - dto.setCurr(Boolean.TRUE); - if (Cools.isEmpty(dto.getMsg())){ - dto.setMsg(user.getNickname() + "鎻愪氦瀹屾垚"); - }else { - dto.setMsg(dto.getMsg()+PZH+DateUtils.convert(new Date())+" " + user.getNickname() + "鎻愪氦瀹屾垚"); - } - dto.setTime(DateUtils.convert(now)); - break; - default: - break; - } - } - priOnline2.setSettleMsg(JSON.toJSONString(list1)); - // 淇敼瑙勫垝鍗曠姸鎬� - priOnline2.setSettle(1); - priOnline2.setUpdateUserId(getUserId()); - priOnline2.setUpdateTime(now); - priOnline2.setMemberId(plan1.getUserId()); - - if (!priOnline2Service.updateById(priOnline2)) { - throw new CoolException("鎻愪氦澶辫触锛岃鑱旂郴绠$悊鍛�"); - } - break; -// case 1: -// // 鏈儴闂ㄧ粡鐞嗗鏍� 鑺傜偣璐熻矗浜� -// Plan plan = planService.selectById(priOnline2.getItemId()); -// PlanType planType = planTypeService.selectById(plan.getPlanType()); -// -// ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", "2-"+planType.getType()));//2锛氭姤浠锋祦绋� -// User manager = userService.selectById(processPermissions.getUserId()); // 鑾峰彇鎶ヤ环娴佺▼鑺傜偣2纭浜� -// -//// User manager = new User(); -//// try{ -//// manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 -//// }catch (Exception e){ -//// manager = user; -//// } -// if (manager.getId().equals(getUserId())) { -// -// // 淇敼 settle 姝ラ鏁版嵁 -// List<SettleDto> list = JSON.parseArray(priOnline2.getSettleMsg(), SettleDto.class); -// for (SettleDto dto : list) { -// switch (dto.getStep()) { -// case 1: -// dto.setCurr(Boolean.FALSE); -// break; -// case 2: -// dto.setCurr(Boolean.TRUE); -// if (Cools.isEmpty(dto.getMsg())){ -// dto.setMsg(manager.getNickname() + "瀹℃壒閫氳繃"); -// }else { -// dto.setMsg(dto.getMsg()+PZH+DateUtils.convert(new Date())+" " + manager.getNickname() + "瀹℃壒閫氳繃"); -// } -// dto.setTime(DateUtils.convert(now)); -// break; -// default: -// break; -// } -// } -// priOnline2.setSettleMsg(JSON.toJSONString(list)); -// -// // 淇敼瑙勫垝鍗曠姸鎬� -// priOnline2.setSettle(2); // 鐢宠閫氳繃 -// priOnline2.setUpdateTime(now); -// priOnline2.setUpdateUserId(getUserId()); -// priOnline2.setMemberId(plan.getUserId()); -// if (!priOnline2Service.updateById(priOnline2)) { -// throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�"); -// } -// } else { -// return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄愶紒锛侊紒"); -// } -// break; - case 1: - // 涓氬姟鍛� - User salesman0 = userService.selectById(priOnline2.getUserId()); - if (!getUserId().equals(salesman0.getId())) { - return R.error("鎶辨瓑锛屾偍鏃犻渶纭锛侊紒锛�"); - } - // 淇敼 settle 姝ラ鏁版嵁 - List<SettleDto> list2 = JSON.parseArray(priOnline2.getSettleMsg(), SettleDto.class); - for (SettleDto dto : list2) { - switch (dto.getStep()) { - case 1: - dto.setCurr(Boolean.TRUE); - break; - case 2: - dto.setCurr(Boolean.TRUE); - if (Cools.isEmpty(dto.getMsg())){ - dto.setMsg("涓氬姟鍛�" + salesman0.getNickname() + "瀹℃壒閫氳繃"); - }else { - dto.setMsg(dto.getMsg()+PZH+DateUtils.convert(new Date())+" "+"涓氬姟鍛�" + salesman0.getNickname() + "瀹℃壒閫氳繃"); - } - dto.setTime(DateUtils.convert(new Date())); - break; - default: - break; - } - } - priOnline2.setSettleMsg(JSON.toJSONString(list2)); - // 淇敼瑙勫垝鍗曠姸鎬� - priOnline2.setSettle(2); // 瀹℃壒閫氳繃 - priOnline2.setStatus(1); - priOnline2.setUpdateTime(new Date()); - priOnline2.setUpdateUserId(getUserId()); - - if (!priOnline2Service.updateById(priOnline2)) { - throw new CoolException("纭澶辫触锛岃鑱旂郴绠$悊鍛�"); - } - try{ - priQuoteAdd(priOnline2.getId(),plannerId); - }catch (Exception e){ - return R.error("鑷姩鐢熸垚鎶ヤ环鍗曞け璐�"); - } - break; - default: - return R.error(); + if (Cools.isEmpty(getUser()) || Cools.isEmpty(user)){ + return R.error("鎶辨瓑锛屾偍鏃犻渶纭锛侊紒锛�"); } + + if (!getUserId().equals(user.getId())) { + return R.error("鎶辨瓑锛屾偍鏃犻渶纭锛侊紒锛�"); + } + // 淇敼 settle 姝ラ鏁版嵁 + list = JSON.parseArray(priOnline2.getSettleMsg(), SettleDto.class); + for (SettleDto dto : list) { + if (dto.getStep().equals(priOnline2.getSettle())) { + dto.setCurr(Boolean.TRUE); + } else if (dto.getStep().equals(priOnline2.getSettle() + 1)) { + dto.setCurr(Boolean.TRUE); + if (Cools.isEmpty(dto.getMsg())) { + dto.setMsg(user.getNickname() + "瀹℃壒閫氳繃"); + } else { + dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(new Date()) + " " + user.getNickname() + "瀹℃壒閫氳繃"); + } + dto.setTime(DateUtils.convert(new Date())); + } else if (dto.getStep().equals(priOnline2.getSettle() + 2)) { + nextUserId=dto.getUserId(); + } + } + priOnline2.setSettleMsg(JSON.toJSONString(list)); + // 淇敼瑙勫垝鍗曠姸鎬� + priOnline2.setSettle(priOnline2.getSettle() + 1); // 瀹℃壒閫氳繃 + if (user.getId().equals(priOnline2.getUserId())) { + priOnline2.setStatus(1); + } + priOnline2.setUpdateTime(now); + priOnline2.setUpdateUserId(getUserId()); + priOnline2.setMemberId(nextUserId); + + if (!priOnline2Service.updateById(priOnline2)) { + throw new CoolException("纭澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + if (user.getId().equals(priOnline2.getUserId())) { + try { + priQuoteAdd(priOnline2.getId(), plannerId); + } catch (Exception e) { + return R.error("鑷姩鐢熸垚鎶ヤ环鍗曞け璐�"); + } + } + return R.ok("瀹℃壒鎴愬姛"); } - public void priQuoteAdd(Long priOnlineId,Long priType){ + public void priQuoteAdd(Long priOnlineId, Long priType) { Pri pri = null; - if (priType==1L){ + if (priType == 1L) { pri = priService.selectById(114); - }else { + } else { pri = priService.selectById(115); } @@ -676,16 +597,16 @@ // priQuote.setForm(JSON.toJSONString(map)); // 鑷畾涔夎〃鍗曞唴瀹� priQuote.setSettle(1); // 1.寮�濮� User manager = new User(); - try{ + try { manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 - }catch (Exception e){ + } catch (Exception e) { manager = getUser(); } priQuote.setMemberId(manager.getId()); ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 2).eq("process", "3-1"));//2锛氭姤浠锋祦绋� User president = userService.selectById(processPermissions.getUserId()); // 鑾峰彇鎶ヤ环娴佺▼鑺傜偣3-1纭浜� - priQuote.setSettleMsg(JSON.toJSONString(SettleDto.initPriQuote(plan, manager,president,getUser()))); + priQuote.setSettleMsg(JSON.toJSONString(SettleDto.initPriQuote(plan, manager, president, getUser()))); planService.updateById(plan); @@ -694,7 +615,7 @@ @PostMapping(value = "/priOnline2/priQuoteAdd/list/auth") @ManagerAuth - public R priOnline2priQuoteAdd(@RequestParam Long planId){ + public R priOnline2priQuoteAdd(@RequestParam Long planId) { List<KeyValueVo> vos = new ArrayList<>(); vos.add(new KeyValueVo("鎶ヤ环妯℃澘1", 1L)); vos.add(new KeyValueVo("鎶ヤ环妯℃澘2", 2L)); diff --git a/src/main/java/com/zy/crm/manager/entity/PriOnline2.java b/src/main/java/com/zy/crm/manager/entity/PriOnline2.java index e106de5..715860a 100644 --- a/src/main/java/com/zy/crm/manager/entity/PriOnline2.java +++ b/src/main/java/com/zy/crm/manager/entity/PriOnline2.java @@ -134,6 +134,13 @@ private Integer settle; /** + * 杩涘害 + */ + @ApiModelProperty(value= "杩涘害") + @TableField("settle_size") + private Integer settleSize; + + /** * 娴佺▼杩涘害 */ @ApiModelProperty(value= "娴佺▼杩涘害") @@ -145,12 +152,13 @@ public PriOnline2() {} - public PriOnline2(String title, String sheetData, Date createTime, String filepath,Integer settle) { + public PriOnline2(String title, String sheetData, Date createTime, String filepath,Integer settle,Integer settleSize) { this.title = title; this.sheetData = sheetData; this.createTime = createTime; this.filepath = filepath; this.settle = settle; + this.settleSize = settleSize; } // PriOnline priOnline = new PriOnline( @@ -167,6 +175,8 @@ case 1: return "绛夊緟纭"; case 2: + return this.settleSize.equals(this.settle+1)? "瀹℃壒閫氳繃" : "绛夊緟纭"; + case 3: return "瀹℃壒閫氳繃"; default: return String.valueOf(this.settle); diff --git a/src/main/java/com/zy/crm/manager/entity/ProcessPermissions.java b/src/main/java/com/zy/crm/manager/entity/ProcessPermissions.java index 0ee9b17..a53c597 100644 --- a/src/main/java/com/zy/crm/manager/entity/ProcessPermissions.java +++ b/src/main/java/com/zy/crm/manager/entity/ProcessPermissions.java @@ -126,15 +126,15 @@ if (null == this.processMemo){ return null; } switch (this.processMemo){ case 1: - return "鏍镐环娴佺▼"; + return "瑙勫垝娴佺▼"; case 2: return "鎶ヤ环娴佺▼"; case 3: return "鎶ラ攢娴佺▼"; case 4: - return "鍑哄樊娴佺▼"; + return "闆嗘垚鏍镐环娴佺▼"; case 5: - return "鏍镐环娴佺▼"; + return "璐ф灦鏍镐环娴佺▼"; case 7: return "鍚堝悓绠$悊"; case 101: diff --git a/src/main/java/com/zy/crm/manager/utils/SmsUtils.java b/src/main/java/com/zy/crm/manager/utils/SmsUtils.java index 2a16160..c3a9b58 100644 --- a/src/main/java/com/zy/crm/manager/utils/SmsUtils.java +++ b/src/main/java/com/zy/crm/manager/utils/SmsUtils.java @@ -64,7 +64,7 @@ headers.put("Authorization", "APPCODE " + APPCODE); param.put("templateId", "M6F3C81FE3"); - param.put("receive", phone); + param.put("receive", "13083813523"); param.put("tag", code); String response = new HttpHandler.Builder() diff --git a/src/main/resources/mapper/CstmrMapper.xml b/src/main/resources/mapper/CstmrMapper.xml index 75bcc3e..f3b9e68 100644 --- a/src/main/resources/mapper/CstmrMapper.xml +++ b/src/main/resources/mapper/CstmrMapper.xml @@ -104,12 +104,9 @@ and ( <if test="userId != null and userId != ''"> - user_id = #{userId} + user_id = #{userId} or </if> - <if test="userId == null or userId == ''"> - user_id is not null - </if> - or + director = #{userId} or mc.id in ( select @@ -640,59 +637,49 @@ LEFT JOIN sys_dept sd ON mc.dept_id = sd.id WHERE 1=1 and director is null - <choose> - <when test="deptId != null and deptId != ''"> - AND ((CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId}) - or - ( - user_id = #{userId} - or - mc.id in - ( - select - cstmr_id - from man_cstmr_foll - where 1=1 - and user_id = #{userId} - ) - )) - </when> - <otherwise> - and - ( - <if test="userId != null and userId != ''"> - user_id = #{userId} - </if> - <if test="userId == null or userId == ''"> - user_id is not null - </if> - or - mc.id in - ( - select - cstmr_id - from man_cstmr_foll - where 1=1 - and user_id = #{userId} - ) - ) - </otherwise> - </choose> +<!-- <choose>--> +<!-- <when test="deptId != null and deptId != ''">--> +<!-- AND ((CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})--> +<!-- or--> +<!-- (--> +<!-- user_id = #{userId}--> +<!-- or--> +<!-- mc.id in--> +<!-- (--> +<!-- select--> +<!-- cstmr_id--> +<!-- from man_cstmr_foll--> +<!-- where 1=1--> +<!-- and user_id = #{userId}--> +<!-- )--> +<!-- ))--> +<!-- </when>--> +<!-- <otherwise>--> +<!-- and--> +<!-- (--> +<!-- <if test="userId != null and userId != ''">--> +<!-- user_id = #{userId}--> +<!-- </if>--> +<!-- <if test="userId == null or userId == ''">--> +<!-- user_id is not null--> +<!-- </if>--> +<!-- or--> +<!-- mc.id in--> +<!-- (--> +<!-- select--> +<!-- cstmr_id--> +<!-- from man_cstmr_foll--> +<!-- where 1=1--> +<!-- and user_id = #{userId}--> +<!-- )--> +<!-- )--> +<!-- </otherwise>--> +<!-- </choose>--> <if test="hostId != null"> and mc.host_id = #{hostId} </if> <if test="condition != null and condition != ''"> - and ( - mc.uuid like concat('%',#{condition},'%') - or mc.name like concat('%',#{condition},'%') - or mc.simple like concat('%',#{condition},'%') - or mc.rela like concat('%',#{condition},'%') - or mc.tel like concat('%',#{condition},'%') - or mc.contacts like concat('%',#{condition},'%') - or mc.remarks like concat('%',#{condition},'%') - or mc.director like concat('%',#{condition},'%') - or mc.addr like concat('%',#{condition},'%') - ) + and mc.name like concat('%',#{condition},'%') </if> ORDER BY mc.create_time DESC </select> diff --git a/src/main/resources/mapper/PriOnline2Mapper.xml b/src/main/resources/mapper/PriOnline2Mapper.xml index a8a9239..d1a7bd1 100644 --- a/src/main/resources/mapper/PriOnline2Mapper.xml +++ b/src/main/resources/mapper/PriOnline2Mapper.xml @@ -18,6 +18,7 @@ <result column="update_time" property="updateTime" /> <result column="check_data" property="checkData" /> <result column="settle" property="settle" /> + <result column="settle_size" property="settleSize" /> </resultMap> <!-- 鏌ヨ缁撴灉涓嶅寘鍚玡xcel鏁版嵁data锛屼互鍏嶇粨鏋滈泦杩囧ぇ --> @@ -34,6 +35,7 @@ <result column="status" property="status" /> <result column="update_time" property="updateTime" /> <result column="settle" property="settle" /> + <result column="settle_size" property="settleSize" /> </resultMap> <select id="listByPage" resultMap="NoDataResultMap"> diff --git a/src/main/webapp/static/js/priOnline2/priOnline.js b/src/main/webapp/static/js/priOnline2/priOnline.js index a3840db..f710787 100644 --- a/src/main/webapp/static/js/priOnline2/priOnline.js +++ b/src/main/webapp/static/js/priOnline2/priOnline.js @@ -5,7 +5,7 @@ base: baseUrl + "/static/layui/lay/modules/" }).extend({ cascader: 'cascader/cascader', -}).use(['table','laydate', 'form', 'admin', 'xmSelect', 'element', 'cascader', 'tree', 'dropdown'], function() { +}).use(['table', 'laydate', 'form', 'admin', 'xmSelect', 'element', 'cascader', 'tree', 'dropdown'], function () { var table = layui.table; var $ = layui.jquery; var layer = layui.layer; @@ -104,7 +104,7 @@ hide: false } , {field: 'itemId', align: 'center', title: '瑙勫垝鍗曞彿', hide: true} - , {field: 'status$', align: 'center', title: '鐘舵��',hide : false} + , {field: 'status$', align: 'center', title: '鐘舵��', hide: false} // ,{field: 'memberId$', align: 'center',title: ''} , { field: 'settle$', @@ -114,12 +114,13 @@ event: 'more', hide: false } - , {field: 'user$', align: 'center', title: '涓氬姟鍛�',hide : false} - , {field: 'deptId$', align: 'center', title: '閮ㄩ棬',hide : true} - , {field: 'checkDataStatus$', align: 'center', title: '鎶ヤ环鏁版嵁',hide : false} - , {field: 'createTime$', align: 'center', title: '鍒涘缓鏃堕棿',hide : true} - , {field: 'updateUserId$', align: 'center', title: '鏇存柊浜哄憳',hide : false} - , {field: 'updateTime$', align: 'center', title: '鏇存柊鏃堕棿',hide : false} + , {field: 'settleSize', align: 'center', title: '娴佺▼闀垮害', hide: true} + , {field: 'user$', align: 'center', title: '涓氬姟鍛�', hide: false} + , {field: 'deptId$', align: 'center', title: '閮ㄩ棬', hide: true} + , {field: 'checkDataStatus$', align: 'center', title: '鎶ヤ环鏁版嵁', hide: false} + , {field: 'createTime$', align: 'center', title: '鍒涘缓鏃堕棿', hide: true} + , {field: 'updateUserId$', align: 'center', title: '鏇存柊浜哄憳', hide: false} + , {field: 'updateTime$', align: 'center', title: '鏇存柊鏃堕棿', hide: false} , {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 350} ]], request: { @@ -267,6 +268,7 @@ title: data.name }, function (i) { layer.close(i); + console.log(data) approvalEnd(data.id); }); break; @@ -277,13 +279,14 @@ offset: '200px', title: data.name }, function (i) { + console.log(data) layer.close(i); - // 鎸囧畾瑙勫垝鍛� - if (data.settle === 1) { + // 鎸囧畾妯℃澘 + if ((data.settle === 1 && data.settleSize===3) || (data.settle===2 && data.settleSize===4)) { admin.open({ type: 1, area: '300px', - title: '閫夋嫨瑙勫垝鍛�', + title: '閫夋嫨鎶ヤ环妯℃澘', content: $('#plannerListDialog').html(), success: function (layero, dIndex) { let plannerSel = xmSelect.render({ @@ -582,10 +585,11 @@ } }); } - function approvalEnd(planId, plannerId, dIdx) { + + function approvalEnd(priOnlineId, plannerId, dIdx) { let loadIndex = layer.load(2); $.ajax({ - url: baseUrl+"/priOnline2/approvalEnd/auth", + url: baseUrl + "/priOnline2/approvalEnd/auth", headers: {'token': localStorage.getItem('token')}, data: { priOnlineId: priOnlineId, @@ -597,11 +601,11 @@ layer.close(dIdx); } layer.close(loadIndex); - if (res.code === 200){ + if (res.code === 200) { layer.msg(res.msg, {icon: 1}); tableReload(); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; + } else if (res.code === 403) { + top.location.href = baseUrl + "/"; } else { layer.msg(res.msg, {icon: 2}); } @@ -612,7 +616,7 @@ function approval(priOnlineId, plannerId, dIdx) { let loadIndex = layer.load(2); $.ajax({ - url: baseUrl+"/priOnline2/approval/auth", + url: baseUrl + "/priOnline2/approval/auth", headers: {'token': localStorage.getItem('token')}, data: { priOnlineId: priOnlineId, @@ -624,11 +628,11 @@ layer.close(dIdx); } layer.close(loadIndex); - if (res.code === 200){ + if (res.code === 200) { layer.msg(res.msg, {icon: 1}); tableReload(); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; + } else if (res.code === 403) { + top.location.href = baseUrl + "/"; } else { layer.msg(res.msg, {icon: 2}); } @@ -639,13 +643,13 @@ }); // 鍏抽棴鍔ㄤ綔 -$(document).on('click','#data-detail-close', function () { +$(document).on('click', '#data-detail-close', function () { parent.layer.closeAll(); }); function tableReload(child) { var searchData = {}; - $.each($('#search-box [name]').serializeArray(), function() { + $.each($('#search-box [name]').serializeArray(), function () { searchData[this.name] = this.value; }); (child ? parent.tableIns : tableIns).reload({ @@ -655,14 +659,14 @@ }, done: function (res, curr, count) { if (res.code === 403) { - top.location.href = baseUrl+"/"; + top.location.href = baseUrl + "/"; } - pageCurr=curr; + pageCurr = curr; if (res.data.length === 0 && count !== 0) { tableIns.reload({ where: searchData, page: { - curr: pageCurr-1 + curr: pageCurr - 1 } }); pageCurr -= 1; @@ -676,9 +680,9 @@ for (var val in data) { var find = el.find(":input[id='" + val + "']"); find.val(data[val]); - if (showImg){ + if (showImg) { var next = find.next(); - if (next.get(0)){ + if (next.get(0)) { if (next.get(0).localName === "img") { find.hide(); next.attr("src", data[val]); @@ -698,13 +702,13 @@ function detailScreen(index) { var detail = layer.getChildFrame('#data-detail', index); - var height = detail.height()+60; - if (height > ($(window).height()*0.9)) { - height = ($(window).height()*0.9); + var height = detail.height() + 60; + if (height > ($(window).height() * 0.9)) { + height = ($(window).height() * 0.9); } layer.style(index, { - top: (($(window).height()-height)/3)+"px", - height: height+'px' + top: (($(window).height() - height) / 3) + "px", + height: height + 'px' }); $(".layui-layer-shade").remove(); } diff --git a/src/main/webapp/views/priOnline2/priOnline.html b/src/main/webapp/views/priOnline2/priOnline.html index 73d1a00..75b5af2 100644 --- a/src/main/webapp/views/priOnline2/priOnline.html +++ b/src/main/webapp/views/priOnline2/priOnline.html @@ -1,103 +1,107 @@ <!DOCTYPE html> <html lang="en"> <head> - <meta charset="utf-8"> - <title></title> - <meta name="renderer" content="webkit"> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> - <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> - <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> - <link rel="stylesheet" href="../../static/css/cool.css" media="all"> - <link rel="stylesheet" href="../../static/css/tree.css" media="all"> - <link rel="stylesheet" href="../../static/layui/lay/modules/formDesigner/coolForm.css" /> - <style> - .nav-box { - position: absolute; - top: 1px; - left: 5px; - } - .nav-box-item { - display: inline-block; - vertical-align: middle; - margin-right: 5px; - } + <meta charset="utf-8"> + <title></title> + <meta name="renderer" content="webkit"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> + <link rel="stylesheet" href="../../static/css/cool.css" media="all"> + <link rel="stylesheet" href="../../static/css/tree.css" media="all"> + <link rel="stylesheet" href="../../static/layui/lay/modules/formDesigner/coolForm.css"/> + <style> + .nav-box { + position: absolute; + top: 1px; + left: 5px; + } - </style> + .nav-box-item { + display: inline-block; + vertical-align: middle; + margin-right: 5px; + } + + </style> </head> <body> <div class="layui-fluid"> - <div class="layui-card"> - <div class="layui-card-body"> - <div id="search-box" class="layui-form toolbar" style="display: flex;justify-content: flex-end;position: relative"> - <div class="nav-box"> - <div class="nav-box-item"> - <i class="layui-icon" style="color: #1890ff;font-weight: bold"></i> - </div> - <div class="nav-box-item"> - <button id="organization" style="border: none;padding-right: 35px;" class="layui-btn layui-btn-primary icon-btn"> - 鏈煡 - </button> - </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <div class="layui-input-inline"> - <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off" style="border-color: #e1e1e1"> + <div class="layui-card"> + <div class="layui-card-body"> + <div id="search-box" class="layui-form toolbar" + style="display: flex;justify-content: flex-end;position: relative"> + <div class="nav-box"> + <div class="nav-box-item"> + <i class="layui-icon" style="color: #1890ff;font-weight: bold"></i> + </div> + <div class="nav-box-item"> + <button id="organization" style="border: none;padding-right: 35px;" + class="layui-btn layui-btn-primary icon-btn"> + 鏈煡 + </button> + </div> + </div> + <div class="layui-form-item"> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off" + style="border-color: #e1e1e1"> + </div> + </div> + <div class="layui-inline">  + <button class="layui-btn icon-btn layui-btn-sm" lay-filter="search" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + </div> + </div> </div> - </div> - <div class="layui-inline">  - <button class="layui-btn icon-btn layui-btn-sm" lay-filter="search" lay-submit> - <i class="layui-icon"></i>鎼滅储 - </button> - </div> + <table class="layui-hide" id="priOnline" lay-filter="priOnline"></table> </div> - </div> - <table class="layui-hide" id="priOnline" lay-filter="priOnline"></table> </div> - </div> </div> <script type="text/html" id="toolbar"> - <div class="layui-btn-container"> - <button class="layui-btn layui-btn-sm" lay-event="addBlank">鏂板鏍镐环</button> - <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="deleteData">鍒犻櫎</button> - </div> + <div class="layui-btn-container"> + <button class="layui-btn layui-btn-sm" lay-event="addBlank">鏂板鏍镐环</button> + <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="deleteData">鍒犻櫎</button> + </div> </script> -<form id="uploadFile" enctype="multipart/form-data" style="display: none;" > - <input type="file" name="file" id="uploadQuote"> - <input type="button" onclick="upload()" value="涓婁紶"/> +<form id="uploadFile" enctype="multipart/form-data" style="display: none;"> + <input type="file" name="file" id="uploadQuote"> + <input type="button" onclick="upload()" value="涓婁紶"/> </form> <script type="text/html" id="operate"> - {{# if (d.settle == 0) { }} + {{# if ((d.settle == 0) || (d.settle == 1 && d.settleSize == 4)){ }} <a class="layui-btn layui-btn-xs btn-edit" lay-event="approval">鎻愪氦</a> <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a> - {{# } }} - {{# if (d.settle == 1) { }} + {{# } }} + {{# if ((d.settle == 1 && d.settleSize == 3) || (d.settle == 2 && d.settleSize == 4)){ }} <a class="layui-btn layui-btn-xs btn-edit" lay-event="approval">纭</a> <a class="layui-btn layui-btn-xs btn-edit" lay-event="approvalEnd">鍥為��瀹℃壒</a> - {{# } }} - <a class="layui-btn layui-btn-xs btn-edit" lay-event="check">鏍镐环</a> - <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a> - <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="upload">涓婁紶璇环</a> - <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="viewCheck">鏌ョ湅璇环</a> + {{# } }} + <a class="layui-btn layui-btn-xs btn-edit" lay-event="check">鏍镐环</a> + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a> + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="upload">涓婁紶璇环</a> + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="viewCheck">鏌ョ湅璇环</a> </script> <script type="text/html" id="plannerListDialog"> - <div class="layui-form admin-form"> - <div class="model-form" style="padding: 30px"> - <div id="plannerXmlSel"></div> + <div class="layui-form admin-form"> + <div class="model-form" style="padding: 30px"> + <div id="plannerXmlSel"></div> + </div> + <hr class="layui-bg-gray"> + <div class="layui-form-item text-right" style="padding-right: 30px"> + <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + </div> </div> - <hr class="layui-bg-gray"> - <div class="layui-form-item text-right" style="padding-right: 30px"> - <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button> - <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> - </div> - </div> </script> <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> @@ -111,86 +115,99 @@ <script type="text/javascript" src="../../static/js/priOnline2/priOnline.js" charset="utf-8"></script> <!-- 琛ㄥ崟寮圭獥 --> <script type="text/html" id="editDialog"> - <div id="detail" lay-filter="detail" class="layui-form admin-form model-form"> - <input name="id" type="hidden"> - <div class="layui-row"> - <div class="layui-col-md12"> - <div class="layui-form-item"> - <label class="layui-form-label layui-form-required">椤圭洰鍚�: </label> - <div class="layui-input-block cool-auto-complete"> - <input class="layui-input" name="planId" placeholder="璇疯緭鍏ラ」鐩悕" style="display: none" lay-verify="required"> - <input id="planId$" name="planId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ラ」鐩悕" onfocus=this.blur()> - <div class="cool-auto-complete-window"> - <input class="cool-auto-complete-window-input" data-key="planQueryNameToRobBydirector" onkeyup="autoLoad(this.getAttribute('data-key'))"> - <select class="cool-auto-complete-window-select" data-key="planQueryNameToRobBydirectorSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> - </select> + <div id="detail" lay-filter="detail" class="layui-form admin-form model-form"> + <input name="id" type="hidden"> + <div class="layui-row"> + <div class="layui-col-md12"> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">椤圭洰鍚�: </label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="planId" placeholder="璇疯緭鍏ラ」鐩悕" style="display: none" + lay-verify="required"> + <input id="planId$" name="planId$" class="layui-input cool-auto-complete-div" + onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ラ」鐩悕" onfocus=this.blur()> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="planQueryNameToRobBydirector" + onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" + data-key="planQueryNameToRobBydirectorSelect" + onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">鏍镐环鍚�: </label> + <div class="layui-input-block"> + <input class="layui-input" type="text" name="name" placeholder="鏍镐环鍚�" autocomplete="off"> + </div> + </div> + + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">妯℃澘: </label> + <div class="layui-input-block"> + <input type="radio" name="template" value="1" title="妯℃澘1" checked> + <div class="layui-unselect layui-form-radio"><i class="layui-anim layui-icon">顦�</i> + <div>妯℃澘1</div> + </div> + <input type="radio" name="template" value="2" title="妯℃澘2" disabled> + <div class="layui-unselect layui-form-radio"><i class="layui-anim layui-icon">顦�</i> + <div>妯℃澘2</div> + </div> + </div> + </div> </div> - </div> </div> - - <div class="layui-form-item"> - <label class="layui-form-label layui-form-required">鏍镐环鍚�: </label> - <div class="layui-input-block"> - <input class="layui-input" type="text" name="name" placeholder="鏍镐环鍚�" autocomplete="off"> - </div> + <hr class="layui-bg-gray"> + <div class="layui-form-item text-right"> + <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> </div> - - <div class="layui-form-item"> - <label class="layui-form-label layui-form-required">妯℃澘: </label> - <div class="layui-input-block"> - <input type="radio" name="template" value="1" title="妯℃澘1" checked><div class="layui-unselect layui-form-radio"><i class="layui-anim layui-icon">顦�</i><div>妯℃澘1</div></div> - <input type="radio" name="template" value="2" title="妯℃澘2" disabled><div class="layui-unselect layui-form-radio"><i class="layui-anim layui-icon">顦�</i><div>妯℃澘2</div></div> - </div> - </div> - </div> </div> - <hr class="layui-bg-gray"> - <div class="layui-form-item text-right"> - <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button> - <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> - </div> - </div> </script> <!-- 琛ㄥ崟寮圭獥 --> <script type="text/html" id="editStatus"> - <div id="editStatusDetail" lay-filter="editStatusDetail" class="layui-form admin-form model-form"> - <input name="id" type="hidden"> - <div class="layui-row"> - <div class="layui-col-md12"> - <div class="layui-form-item"> - <label class="layui-form-label layui-form-required">鐘舵��: </label> - <div class="layui-input-block"> - <select name="status" lay-vertype="tips" lay-verify="required"> - <option value="">璇烽�夋嫨鐘舵��</option> - <option value="1">宸插畬鎴�</option> - <option value="0">鏈畬鎴�</option> - </select> - </div> - </div> + <div id="editStatusDetail" lay-filter="editStatusDetail" class="layui-form admin-form model-form"> + <input name="id" type="hidden"> + <div class="layui-row"> + <div class="layui-col-md12"> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">鐘舵��: </label> + <div class="layui-input-block"> + <select name="status" lay-vertype="tips" lay-verify="required"> + <option value="">璇烽�夋嫨鐘舵��</option> + <option value="1">宸插畬鎴�</option> + <option value="0">鏈畬鎴�</option> + </select> + </div> + </div> - <div class="layui-form-item"> - <label class="layui-form-label layui-form-required">鏍镐环鍚�: </label> - <div class="layui-input-block"> - <input class="layui-input" name="templateName" placeholder="璇疯緭鍏ユ牳浠峰悕" autocomplete="off" lay-verify="required"> - </div> - </div> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">鏍镐环鍚�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="templateName" placeholder="璇疯緭鍏ユ牳浠峰悕" autocomplete="off" + lay-verify="required"> + </div> + </div> - <div class="layui-form-item"> - <label class="layui-form-label layui-form-required">琛ㄦ牸鏍囬: </label> - <div class="layui-input-block"> - <input class="layui-input" name="title" placeholder="璇疯緭鍏ヨ〃鏍兼爣棰�" autocomplete="off" lay-verify="required"> - </div> - </div> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">琛ㄦ牸鏍囬: </label> + <div class="layui-input-block"> + <input class="layui-input" name="title" placeholder="璇疯緭鍏ヨ〃鏍兼爣棰�" autocomplete="off" + lay-verify="required"> + </div> + </div> - </div> + </div> + </div> + <hr class="layui-bg-gray"> + <div class="layui-form-item text-right"> + <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + </div> </div> - <hr class="layui-bg-gray"> - <div class="layui-form-item text-right"> - <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button> - <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> - </div> - </div> </script> </body> </html> diff --git a/src/main/webapp/views/priOnline2/priOnline_check.html b/src/main/webapp/views/priOnline2/priOnline_check.html index 0eb0b3b..6f88f29 100644 --- a/src/main/webapp/views/priOnline2/priOnline_check.html +++ b/src/main/webapp/views/priOnline2/priOnline_check.html @@ -1,271 +1,280 @@ <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <title>excel</title> - <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> - <link rel='stylesheet' href='../../static/plugins/css/pluginsCss.css' /> - <link rel='stylesheet' href='../../static/plugins/plugins.css' /> - <link rel='stylesheet' href='../../static/css/luckysheet.css' /> - <link rel='stylesheet' href='../../static/assets/iconfont/iconfont.css' /> - <script src="../../static/js/luckysheet_js/plugin.js"></script> - <script src="../../static/js/luckysheet_js/luckysheet.umd.js"></script> - <script src="../../static/js/luckysheet_js/luckyexcel.umd.js"></script> - <script src="../../static/js/luckysheet_js/exceljs.min.js"></script> - <script type="text/javascript" src="../../static/js/luckysheet_js/export.js" charset="utf-8"></script> - <script type="text/javascript" src="../../static/js/luckysheet_js/pako.es5.js" charset="utf-8"></script> - <script type="text/javascript" src="../../static/js/luckysheet_js/base64.min.js" charset="utf-8"></script> - <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> - <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> - <script type="text/javascript" src="../../static/js/luckysheet_js/print.min.js" charset="utf-8"></script> + <meta charset="utf-8"> + <title>excel</title> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel='stylesheet' href='../../static/plugins/css/pluginsCss.css'/> + <link rel='stylesheet' href='../../static/plugins/plugins.css'/> + <link rel='stylesheet' href='../../static/css/luckysheet.css'/> + <link rel='stylesheet' href='../../static/assets/iconfont/iconfont.css'/> + <script src="../../static/js/luckysheet_js/plugin.js"></script> + <script src="../../static/js/luckysheet_js/luckysheet.umd.js"></script> + <script src="../../static/js/luckysheet_js/luckyexcel.umd.js"></script> + <script src="../../static/js/luckysheet_js/exceljs.min.js"></script> + <script type="text/javascript" src="../../static/js/luckysheet_js/export.js" charset="utf-8"></script> + <script type="text/javascript" src="../../static/js/luckysheet_js/pako.es5.js" charset="utf-8"></script> + <script type="text/javascript" src="../../static/js/luckysheet_js/base64.min.js" charset="utf-8"></script> + <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> + <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> + <script type="text/javascript" src="../../static/js/luckysheet_js/print.min.js" charset="utf-8"></script> </head> <body> <div style="display: flex;position: absolute;top: 20px;left:30px;z-index: 9999;"> - <!-- <div><button type="button" id="export">瀵煎嚭Execel</button></div>--> -<!-- <div><button type="button" id="save">淇濆瓨鍒版湇鍔″櫒</button></div>--> -<!-- <div><button type="button" id="otherSave">鍙︿繚瀛樺埌鏈嶅姟鍣�</button></div>--> - <div><button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="allprint">鍏ㄩ儴鎵撳嵃</button></div> - <div><button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="print">閫夊尯鎵撳嵃</button></div> - <div><button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="download">涓嬭浇</button></div> + <!-- <div><button type="button" id="export">瀵煎嚭Execel</button></div>--> + <!-- <div><button type="button" id="save">淇濆瓨鍒版湇鍔″櫒</button></div>--> + <!-- <div><button type="button" id="otherSave">鍙︿繚瀛樺埌鏈嶅姟鍣�</button></div>--> + <div> + <button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="allprint">鍏ㄩ儴鎵撳嵃</button> + </div> + <div> + <button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="print">閫夊尯鎵撳嵃</button> + </div> + <div> + <button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="download">涓嬭浇</button> + </div> </div> -<div id="luckysheet" style="margin:0px;padding:0px;position:absolute;width:100%;height: 100vh;left: 0px;top: 0px;"></div> +<div id="luckysheet" + style="margin:0px;padding:0px;position:absolute;width:100%;height: 100vh;left: 0px;top: 0px;"></div> <script> - $(function () { - var layer = layui.layer; + $(function () { + var layer = layui.layer; - //閰嶇疆椤� - var options = { - container: 'luckysheet' ,//luckysheet涓哄鍣╥d - title: '鏌ョ湅璇环', //宸ヤ綔绨垮悕绉� - lang: 'zh', //璁惧畾琛ㄦ牸璇█ 鍥介檯鍖栬缃紝鍏佽璁剧疆琛ㄦ牸鐨勮瑷�锛屾敮鎸佷腑鏂�("zh")鍜岃嫳鏂�("en") - allowEdit: true, //鏄惁鍏佽鍓嶅彴缂栬緫 - sheetFormulaBar: true, //鏄惁鏄剧ず鍏紡鏍� - forceCalculation: true,//寮哄埗璁$畻鍏紡 - myFolderUrl: '' //宸︿笂瑙�<杩斿洖鎸夐挳鐨勯摼鎺� - } + //閰嶇疆椤� + var options = { + container: 'luckysheet',//luckysheet涓哄鍣╥d + title: '鏌ョ湅璇环', //宸ヤ綔绨垮悕绉� + lang: 'zh', //璁惧畾琛ㄦ牸璇█ 鍥介檯鍖栬缃紝鍏佽璁剧疆琛ㄦ牸鐨勮瑷�锛屾敮鎸佷腑鏂�("zh")鍜岃嫳鏂�("en") + allowEdit: true, //鏄惁鍏佽鍓嶅彴缂栬緫 + sheetFormulaBar: true, //鏄惁鏄剧ず鍏紡鏍� + forceCalculation: true,//寮哄埗璁$畻鍏紡 + myFolderUrl: '' //宸︿笂瑙�<杩斿洖鎸夐挳鐨勯摼鎺� + } - let checkDataFile = ""; + let checkDataFile = ""; - if(getUrlParams('id') == false || getUrlParams('id') == undefined){ - //鏂板 - luckysheet.create(options) - $("#luckysheet_info_detail_update").hide() - $("#luckysheet_info_detail_save").hide() - $("#luckysheet_info_detail_title").hide() - }else{ - //淇敼 - $.ajax({ - type:"get", - url: baseUrl + "/priOnline2/viewCheck/" + getUrlParams('id') + "/auth", - dataType:"json", - headers: {'token': localStorage.getItem('token')}, - success:function(res) { - if (res.code == 200) { - checkDataFile = res.data.checkDataFile - options.data = unzip(res.data.checkData) + if (getUrlParams('id') == false || getUrlParams('id') == undefined) { + //鏂板 luckysheet.create(options) $("#luckysheet_info_detail_update").hide() $("#luckysheet_info_detail_save").hide() $("#luckysheet_info_detail_title").hide() - }else { - layer.msg(res.msg,{time:1000}) - } + } else { + //淇敼 + $.ajax({ + type: "get", + url: baseUrl + "/priOnline2/viewCheck/" + getUrlParams('id') + "/auth", + dataType: "json", + headers: {'token': localStorage.getItem('token')}, + success: function (res) { + if (res.code == 200) { + checkDataFile = res.data.checkDataFile + options.data = unzip(res.data.checkData) + luckysheet.create(options) + $("#luckysheet_info_detail_update").hide() + $("#luckysheet_info_detail_save").hide() + $("#luckysheet_info_detail_title").hide() + } else { + layer.msg(res.msg, {time: 1000}) + } + } + }); + } - }); - } - - $("#export").on("click",() => { - console.log('export') - exportExcel(luckysheet.getluckysheetfile()).then((e) => { - saveFile(e,'file'); - }) - }) - - //淇濆瓨鍒版湇鍔″櫒 - $("#save").on("click",() => { - if(getUrlParams('id') == false || getUrlParams('id') == undefined){ - //鏂板 - $.ajax({ - url: baseUrl + "/priOnline2/add/auth", - headers: {'token': localStorage.getItem('token')}, - data: JSON.stringify({ - title: luckysheet.toJson().title, - sheetData: zip(luckysheet.getAllSheets()), - itemId: getUrlParams('item_id'), - priId: getUrlParams('pri_id') - }), - method: 'POST', - dataType: "json", - contentType:'application/json;charset=UTF-8', - success: function (res) { - if (res.code == 200) { - layer.msg('淇濆瓨鎴愬姛',{time:1000},() => { - parent.location.reload() - }) - }else{ - layer.msg(res.msg,{time:1000}) - } - } + $("#export").on("click", () => { + console.log('export') + exportExcel(luckysheet.getluckysheetfile()).then((e) => { + saveFile(e, 'file'); + }) }) - }else { - //淇敼 - $.ajax({ - url: baseUrl + "/priOnline2/update/auth", - headers: {'token': localStorage.getItem('token')}, - data: JSON.stringify({ - id: getUrlParams('id'), - title: luckysheet.toJson().title, - sheetData: zip(luckysheet.getAllSheets()) - }), - method: 'POST', - dataType: "json", - contentType:'application/json;charset=UTF-8', - success: function (res) { - if (res.code == 200) { - layer.msg('淇濆瓨鎴愬姛',{time:1000},() => { - parent.location.reload() - }) - }else{ - layer.msg(res.msg,{time:1000}) + + //淇濆瓨鍒版湇鍔″櫒 + $("#save").on("click", () => { + if (getUrlParams('id') == false || getUrlParams('id') == undefined) { + //鏂板 + $.ajax({ + url: baseUrl + "/priOnline2/add/auth", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify({ + title: luckysheet.toJson().title, + sheetData: zip(luckysheet.getAllSheets()), + itemId: getUrlParams('item_id'), + priId: getUrlParams('pri_id') + }), + method: 'POST', + dataType: "json", + contentType: 'application/json;charset=UTF-8', + success: function (res) { + if (res.code == 200) { + layer.msg('淇濆瓨鎴愬姛', {time: 1000}, () => { + parent.location.reload() + }) + } else { + layer.msg(res.msg, {time: 1000}) + } + } + }) + } else { + //淇敼 + $.ajax({ + url: baseUrl + "/priOnline2/update/auth", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify({ + id: getUrlParams('id'), + title: luckysheet.toJson().title, + sheetData: zip(luckysheet.getAllSheets()) + }), + method: 'POST', + dataType: "json", + contentType: 'application/json;charset=UTF-8', + success: function (res) { + if (res.code == 200) { + layer.msg('淇濆瓨鎴愬姛', {time: 1000}, () => { + parent.location.reload() + }) + } else { + layer.msg(res.msg, {time: 1000}) + } + } + }) } - } }) - } + + $("#download").on("click", () => { + window.open(baseUrl + "/priOnline2/checkDataDownload/" + checkDataFile) + }) + }) - $("#download").on("click",() => { - window.open(baseUrl + "/priOnline2/checkDataDownload/" +checkDataFile) + $("#allprint").on("click", () => { + printExcel() }) - }) + $("#print").on("click", () => { + let src = luckysheet.getScreenshot(); // 鐢熸垚base64鍥剧墖 + const style = '@page {margin:0 10mm};' + printJS({ + printable: src, + type: 'image', + style: style + }) // Print.js鎻掍欢 + }) - $("#allprint").on("click",() => { - printExcel() - }) + // 鑾峰彇琛ㄦ牸涓寘鍚唴瀹圭殑row锛宑olumn + function getExcelRowColumn() { + const sheetData = luckysheet.getSheetData(); + let objRowColumn = { + row: [null, null], //琛� + column: [null, null], //鍒� + }; + sheetData.forEach((item, index) => { + //琛屾暟 + item.forEach((it, itemIndex) => { + if (it !== null) { + if (objRowColumn.row[0] == null) objRowColumn.row[0] = index; // row绗竴浣� + objRowColumn.row[1] = index; //row绗簩浣� + if (objRowColumn.column[0] == null) + objRowColumn.column[0] = itemIndex; //column绗竴浣� + objRowColumn.column[1] = itemIndex; //column绗簩浣� + } + }); + }); + return objRowColumn; + } - $("#print").on("click",() => { - let src = luckysheet.getScreenshot(); // 鐢熸垚base64鍥剧墖 - const style = '@page {margin:0 10mm};' - printJS({ - printable: src, - type: 'image', - style: style - }) // Print.js鎻掍欢 - }) + function printExcel() { + let RowColumn = this.getExcelRowColumn() // 鑾峰彇鏈夊�肩殑琛屽拰鍒� + RowColumn.column[0] = 0 //鍥犻渶瑕佹墦鍗板乏杈圭殑杈规锛岄渶閲嶆柊璁剧疆 + luckysheet.setRangeShow(RowColumn) // 杩涜閫夊尯鎿嶄綔 + let src = luckysheet.getScreenshot(); // 鐢熸垚base64鍥剧墖 + const style = '@page {margin:0 10mm};' + printJS({ + printable: src, + type: 'image', + style: style + }) // Print.js鎻掍欢 + } - // 鑾峰彇琛ㄦ牸涓寘鍚唴瀹圭殑row锛宑olumn - function getExcelRowColumn() { - const sheetData = luckysheet.getSheetData(); - let objRowColumn = { - row: [null, null], //琛� - column: [null, null], //鍒� - }; - sheetData.forEach((item, index) => { - //琛屾暟 - item.forEach((it, itemIndex) => { - if (it !== null) { - if (objRowColumn.row[0] == null) objRowColumn.row[0] = index; // row绗竴浣� - objRowColumn.row[1] = index; //row绗簩浣� - if (objRowColumn.column[0] == null) - objRowColumn.column[0] = itemIndex; //column绗竴浣� - objRowColumn.column[1] = itemIndex; //column绗簩浣� + function getUrlParams(name) { + var url = window.location.search; + if (url.indexOf('?') == -1) { + return false; } - }); - }); - return objRowColumn; - } - - function printExcel() { - let RowColumn = this.getExcelRowColumn() // 鑾峰彇鏈夊�肩殑琛屽拰鍒� - RowColumn.column[0] = 0 //鍥犻渶瑕佹墦鍗板乏杈圭殑杈规锛岄渶閲嶆柊璁剧疆 - luckysheet.setRangeShow(RowColumn) // 杩涜閫夊尯鎿嶄綔 - let src = luckysheet.getScreenshot(); // 鐢熸垚base64鍥剧墖 - const style = '@page {margin:0 10mm};' - printJS({ - printable: src, - type: 'image', - style: style - }) // Print.js鎻掍欢 - } - - function getUrlParams(name) { - var url = window.location.search; - if (url.indexOf('?') == -1) { return false; } - url = url.substr(1); - url = url.split('&'); - var name = name || ''; - var nameres; - for (var i = 0; i < url.length; i++) { - var info = url[i].split('='); - var obj = {}; - obj[info[0]] = decodeURI(info[1]); - url[i] = obj; - } - if (name) { - for (var i = 0; i < url.length; i++) { - for (var key in url[i]) { - if (key == name) { - nameres = url[i][key]; - } + url = url.substr(1); + url = url.split('&'); + var name = name || ''; + var nameres; + for (var i = 0; i < url.length; i++) { + var info = url[i].split('='); + var obj = {}; + obj[info[0]] = decodeURI(info[1]); + url[i] = obj; } - } - } else { - nameres = url; + if (name) { + for (var i = 0; i < url.length; i++) { + for (var key in url[i]) { + if (key == name) { + nameres = url[i][key]; + } + } + } + } else { + nameres = url; + } + return nameres; } - return nameres; - } - // 鍘嬬缉 - function zip(data) { - if (!data) return data - // 鍒ゆ柇鏁版嵁鏄惁闇�瑕佽浆涓篔SON - const dataJson = typeof data !== 'string' && typeof data !== 'number' ? JSON.stringify(data) : data + // 鍘嬬缉 + function zip(data) { + if (!data) return data + // 鍒ゆ柇鏁版嵁鏄惁闇�瑕佽浆涓篔SON + const dataJson = typeof data !== 'string' && typeof data !== 'number' ? JSON.stringify(data) : data - // 浣跨敤Base64.encode澶勭悊瀛楃缂栫爜锛屽吋瀹逛腑鏂� - const str = Base64.encode(dataJson) - let binaryString = pako.gzip(str); - let arr = Array.from(binaryString); - let s = ""; - arr.forEach((item, index) => { - s += String.fromCharCode(item) - }) - return btoa(s) - } - - // 瑙e帇 - function unzip(b64Data) { - let strData = atob(b64Data); - let charData = strData.split('').map(function (x) { - return x.charCodeAt(0); - }); - let binData = new Uint8Array(charData); - let data = pako.ungzip(binData); - - // 鈫撳垏鐗囧鐞嗘暟鎹紝闃叉鍐呭瓨婧㈠嚭鎶ラ敊鈫� - let str = ''; - const chunk = 8 * 1024 - let i; - for (i = 0; i < data.length / chunk; i++) { - str += String.fromCharCode.apply(null, data.slice(i * chunk, (i + 1) * chunk)); + // 浣跨敤Base64.encode澶勭悊瀛楃缂栫爜锛屽吋瀹逛腑鏂� + const str = Base64.encode(dataJson) + let binaryString = pako.gzip(str); + let arr = Array.from(binaryString); + let s = ""; + arr.forEach((item, index) => { + s += String.fromCharCode(item) + }) + return btoa(s) } - str += String.fromCharCode.apply(null, data.slice(i * chunk)); - // 鈫戝垏鐗囧鐞嗘暟鎹紝闃叉鍐呭瓨婧㈠嚭鎶ラ敊鈫� - const unzipStr = Base64.decode(str); - let result = '' + // 瑙e帇 + function unzip(b64Data) { + let strData = atob(b64Data); + let charData = strData.split('').map(function (x) { + return x.charCodeAt(0); + }); + let binData = new Uint8Array(charData); + let data = pako.ungzip(binData); - // 瀵硅薄鎴栨暟缁勮繘琛孞SON杞崲 - try { - result = JSON.parse(unzipStr) - } catch (error) { - if (/Unexpected token o in JSON at position 0/.test(error)) { - // 濡傛灉娌℃湁杞崲鎴愬姛锛屼唬琛ㄥ�间负鍩烘湰鏁版嵁锛岀洿鎺ヨ祴鍊� - result = unzipStr - } + // 鈫撳垏鐗囧鐞嗘暟鎹紝闃叉鍐呭瓨婧㈠嚭鎶ラ敊鈫� + let str = ''; + const chunk = 8 * 1024 + let i; + for (i = 0; i < data.length / chunk; i++) { + str += String.fromCharCode.apply(null, data.slice(i * chunk, (i + 1) * chunk)); + } + str += String.fromCharCode.apply(null, data.slice(i * chunk)); + // 鈫戝垏鐗囧鐞嗘暟鎹紝闃叉鍐呭瓨婧㈠嚭鎶ラ敊鈫� + + const unzipStr = Base64.decode(str); + let result = '' + + // 瀵硅薄鎴栨暟缁勮繘琛孞SON杞崲 + try { + result = JSON.parse(unzipStr) + } catch (error) { + if (/Unexpected token o in JSON at position 0/.test(error)) { + // 濡傛灉娌℃湁杞崲鎴愬姛锛屼唬琛ㄥ�间负鍩烘湰鏁版嵁锛岀洿鎺ヨ祴鍊� + result = unzipStr + } + } + return result } - return result - } </script> </body> </html> \ No newline at end of file diff --git a/src/main/webapp/views/priOnline2/priOnline_detail.html b/src/main/webapp/views/priOnline2/priOnline_detail.html index 48b2494..87695c2 100644 --- a/src/main/webapp/views/priOnline2/priOnline_detail.html +++ b/src/main/webapp/views/priOnline2/priOnline_detail.html @@ -1,340 +1,352 @@ <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <title>excel</title> - <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> - <link rel='stylesheet' href='../../static/plugins/css/pluginsCss.css' /> - <link rel='stylesheet' href='../../static/plugins/plugins.css' /> - <link rel='stylesheet' href='../../static/css/luckysheet.css' /> - <link rel='stylesheet' href='../../static/assets/iconfont/iconfont.css' /> - <script src="../../static/js/luckysheet_js/plugin.js"></script> - <script src="../../static/js/luckysheet_js/luckysheet.umd.js"></script> - <script src="../../static/js/luckysheet_js/luckyexcel.umd.js"></script> - <script src="../../static/js/luckysheet_js/exceljs.min.js"></script> - <script type="text/javascript" src="../../static/js/luckysheet_js/export.js" charset="utf-8"></script> - <script type="text/javascript" src="../../static/js/luckysheet_js/pako.es5.js" charset="utf-8"></script> - <script type="text/javascript" src="../../static/js/luckysheet_js/base64.min.js" charset="utf-8"></script> - <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> - <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> - <script type="text/javascript" src="../../static/js/luckysheet_js/print.min.js" charset="utf-8"></script> + <meta charset="utf-8"> + <title>excel</title> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel='stylesheet' href='../../static/plugins/css/pluginsCss.css'/> + <link rel='stylesheet' href='../../static/plugins/plugins.css'/> + <link rel='stylesheet' href='../../static/css/luckysheet.css'/> + <link rel='stylesheet' href='../../static/assets/iconfont/iconfont.css'/> + <script src="../../static/js/luckysheet_js/plugin.js"></script> + <script src="../../static/js/luckysheet_js/luckysheet.umd.js"></script> + <script src="../../static/js/luckysheet_js/luckyexcel.umd.js"></script> + <script src="../../static/js/luckysheet_js/exceljs.min.js"></script> + <script type="text/javascript" src="../../static/js/luckysheet_js/export.js" charset="utf-8"></script> + <script type="text/javascript" src="../../static/js/luckysheet_js/pako.es5.js" charset="utf-8"></script> + <script type="text/javascript" src="../../static/js/luckysheet_js/base64.min.js" charset="utf-8"></script> + <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> + <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> + <script type="text/javascript" src="../../static/js/luckysheet_js/print.min.js" charset="utf-8"></script> </head> <body> <div style="display: flex;position: absolute;top: 20px;left:30px;z-index: 9999;"> -<!-- <div>涓婁紶Execel锛�<input type="file" id="Luckyexcel-demo-file" /></div>--> -<!-- <div><button type="button" id="export">瀵煎嚭Execel</button></div>--> - <div><button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="save">淇濆瓨</button></div> - <div><button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="otherSave">鍙﹀瓨涓�</button></div> - <div><button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="allprint">鍏ㄩ儴鎵撳嵃</button></div> - <div><button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="print">閫夊尯鎵撳嵃</button></div> + <!-- <div>涓婁紶Execel锛�<input type="file" id="Luckyexcel-demo-file" /></div>--> + <!-- <div><button type="button" id="export">瀵煎嚭Execel</button></div>--> + <div> + <button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="save">淇濆瓨</button> + </div> + <div> + <button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="otherSave">鍙﹀瓨涓�</button> + </div> + <div> + <button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="allprint">鍏ㄩ儴鎵撳嵃</button> + </div> + <div> + <button type="button" class="layui-btn layui-btn-primary layui-btn-xs btn-edit" id="print">閫夊尯鎵撳嵃</button> + </div> </div> -<div id="luckysheet" style="margin:0px;padding:0px;position:absolute;width:100%;height: 100vh;left: 0px;top: 0px;"></div> +<div id="luckysheet" + style="margin:0px;padding:0px;position:absolute;width:100%;height: 100vh;left: 0px;top: 0px;"></div> <script> - $(function () { - var layer = layui.layer; + $(function () { + var layer = layui.layer; - //閰嶇疆椤� - var options = { - container: 'luckysheet' ,//luckysheet涓哄鍣╥d - title: '鍦ㄧ嚎鏍镐环', //宸ヤ綔绨垮悕绉� - lang: 'zh', //璁惧畾琛ㄦ牸璇█ 鍥介檯鍖栬缃紝鍏佽璁剧疆琛ㄦ牸鐨勮瑷�锛屾敮鎸佷腑鏂�("zh")鍜岃嫳鏂�("en") - allowEdit: true, //鏄惁鍏佽鍓嶅彴缂栬緫 - sheetFormulaBar: true, //鏄惁鏄剧ず鍏紡鏍� - forceCalculation: true,//寮哄埗璁$畻鍏紡 - myFolderUrl: '' //宸︿笂瑙�<杩斿洖鎸夐挳鐨勯摼鎺� - } + //閰嶇疆椤� + var options = { + container: 'luckysheet',//luckysheet涓哄鍣╥d + title: '鍦ㄧ嚎鏍镐环', //宸ヤ綔绨垮悕绉� + lang: 'zh', //璁惧畾琛ㄦ牸璇█ 鍥介檯鍖栬缃紝鍏佽璁剧疆琛ㄦ牸鐨勮瑷�锛屾敮鎸佷腑鏂�("zh")鍜岃嫳鏂�("en") + allowEdit: true, //鏄惁鍏佽鍓嶅彴缂栬緫 + sheetFormulaBar: true, //鏄惁鏄剧ず鍏紡鏍� + forceCalculation: true,//寮哄埗璁$畻鍏紡 + myFolderUrl: '', //宸︿笂瑙�<杩斿洖鎸夐挳鐨勯摼鎺� + allowEdit: true // 鏄惁鍏佽鍓嶅彴缂栬緫 + } - if(getUrlParams('id') == false || getUrlParams('id') == undefined){ - //鏂板 - if(getUrlParams('template') == false || getUrlParams('template') == undefined){ - luckysheet.create(options) - $("#luckysheet_info_detail_update").hide() - $("#luckysheet_info_detail_save").hide() - $("#luckysheet_info_detail_title").hide() - }else { - $.ajax({ - type:"get", - url: baseUrl + "/static/js/priOnline2/data" + getUrlParams('template') + ".txt", - success:function(sheetData) { - options.data = unzip(sheetData) - options.title = getUrlParams('name') - luckysheet.create(options) - $("#luckysheet_info_detail_update").hide() - $("#luckysheet_info_detail_save").hide() - $("#luckysheet_info_detail_title").hide() - } + if (getUrlParams('id') == false || getUrlParams('id') == undefined) { + //鏂板 + if (getUrlParams('template') == false || getUrlParams('template') == undefined) { + luckysheet.create(options) + $("#luckysheet_info_detail_update").hide() + $("#luckysheet_info_detail_save").hide() + $("#luckysheet_info_detail_title").hide() + } else { + $.ajax({ + type: "get", + url: baseUrl + "/static/js/priOnline2/data" + getUrlParams('template') + ".txt", + success: function (sheetData) { + options.data = unzip(sheetData) + options.title = getUrlParams('name') + luckysheet.create(options) + $("#luckysheet_info_detail_update").hide() + $("#luckysheet_info_detail_save").hide() + $("#luckysheet_info_detail_title").hide() + } + }); + } + } else { + //淇敼 + $.ajax({ + type: "get", + url: baseUrl + "/priOnline2/" + getUrlParams('id') + "/auth", + dataType: "json", + headers: {'token': localStorage.getItem('token')}, + success: function (res) { + options.data = unzip(res.data.sheetData) + options.title = res.data.title + luckysheet.create(options) + $("#luckysheet_info_detail_update").hide() + $("#luckysheet_info_detail_save").hide() + $("#luckysheet_info_detail_title").hide() + } + }); + + } + + $("#Luckyexcel-demo-file").on("change", (evt) => { + var files = evt.target.files; + if (files == null || files.length == 0) { + alert("No files wait for import"); + return; + } + + let name = files[0].name; + let suffixArr = name.split("."), suffix = suffixArr[suffixArr.length - 1]; + if (suffix != "xlsx") { + alert("Currently only supports the import of xlsx files"); + return; + } + LuckyExcel.transformExcelToLucky(files[0], function (exportJson, luckysheetfile) { + + if (exportJson.sheets == null || exportJson.sheets.length == 0) { + alert("Failed to read the content of the excel file, currently does not support xls files!"); + return; + } + window.luckysheet.destroy(); + + window.luckysheet.create({ + container: 'luckysheet', //luckysheet is the container id + data: exportJson.sheets, + title: exportJson.info.name, + userInfo: exportJson.info.name.creator, + lang: 'zh', //璁惧畾琛ㄦ牸璇█ 鍥介檯鍖栬缃紝鍏佽璁剧疆琛ㄦ牸鐨勮瑷�锛屾敮鎸佷腑鏂�("zh")鍜岃嫳鏂�("en") + allowEdit: true, //鏄惁鍏佽鍓嶅彴缂栬緫 + sheetFormulaBar: true, //鏄惁鏄剧ず鍏紡鏍� + forceCalculation: true,//寮哄埗璁$畻鍏紡 + }); + }); + }) + + $("#export").on("click", () => { + console.log('export') + exportExcel(luckysheet.getluckysheetfile()).then((e) => { + saveFile(e, 'file'); + }) + }) + + //淇濆瓨鍒版湇鍔″櫒 + $("#save").on("click", () => { + if (getUrlParams('id') == false || getUrlParams('id') == undefined) { + //鏂板 + $.ajax({ + url: baseUrl + "/priOnline2/add/auth", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify({ + title: luckysheet.toJson().title, + sheetData: zip(luckysheet.getAllSheets()), + itemId: getUrlParams('item_id'), + priId: getUrlParams('pri_id') + }), + method: 'POST', + dataType: "json", + contentType: 'application/json;charset=UTF-8', + success: function (res) { + if (res.code == 200) { + layer.msg('淇濆瓨鎴愬姛', {time: 1000}, () => { + parent.location.reload() + }) + } else { + layer.msg(res.msg, {time: 1000}) + } + } + }) + } else { + //淇敼 + $.ajax({ + url: baseUrl + "/priOnline2/update/auth", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify({ + id: getUrlParams('id'), + title: luckysheet.toJson().title, + sheetData: zip(luckysheet.getAllSheets()) + }), + method: 'POST', + dataType: "json", + contentType: 'application/json;charset=UTF-8', + success: function (res) { + if (res.code == 200) { + layer.msg('淇濆瓨鎴愬姛', {time: 1000}, () => { + parent.location.reload() + }) + } else { + layer.msg(res.msg, {time: 1000}) + } + } + }) + } + }) + + $("#otherSave").on("click", () => { + if (getUrlParams('id') == false || getUrlParams('id') == undefined) { + //鏂板缓鏂囦欢 + $("#save").trigger("click") + } else { + //鍙﹀瓨 + $.ajax({ + url: baseUrl + "/priOnline2/addOther/auth", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify({ + id: getUrlParams('id'), + title: luckysheet.toJson().title, + sheetData: zip(luckysheet.getAllSheets()) + }), + method: 'POST', + dataType: "json", + contentType: 'application/json;charset=UTF-8', + success: function (res) { + if (res.code == 200) { + layer.msg('鍙﹀瓨鎴愬姛', {time: 1000}, () => { + parent.location.reload() + }) + } else { + layer.msg('淇濆瓨澶辫触', {time: 1000}) + } + } + }) + } + }) + + }) + + $("#allprint").on("click", () => { + printExcel() + }) + + $("#print").on("click", () => { + let src = luckysheet.getScreenshot(); // 鐢熸垚base64鍥剧墖 + const style = '@page {margin:0 10mm};' + printJS({ + printable: src, + type: 'image', + style: style + }) // Print.js鎻掍欢 + }) + + // 鑾峰彇琛ㄦ牸涓寘鍚唴瀹圭殑row锛宑olumn + function getExcelRowColumn() { + const sheetData = luckysheet.getSheetData(); + let objRowColumn = { + row: [null, null], //琛� + column: [null, null], //鍒� + }; + sheetData.forEach((item, index) => { + //琛屾暟 + item.forEach((it, itemIndex) => { + if (it !== null) { + if (objRowColumn.row[0] == null) objRowColumn.row[0] = index; // row绗竴浣� + objRowColumn.row[1] = index; //row绗簩浣� + if (objRowColumn.column[0] == null) + objRowColumn.column[0] = itemIndex; //column绗竴浣� + objRowColumn.column[1] = itemIndex; //column绗簩浣� + } + }); }); - } - }else{ - //淇敼 - $.ajax({ - type:"get", - url: baseUrl + "/priOnline2/" + getUrlParams('id') + "/auth", - dataType:"json", - headers: {'token': localStorage.getItem('token')}, - success:function(res) { - options.data = unzip(res.data.sheetData) - options.title = res.data.title - luckysheet.create(options) - $("#luckysheet_info_detail_update").hide() - $("#luckysheet_info_detail_save").hide() - $("#luckysheet_info_detail_title").hide() - } - }); - + return objRowColumn; } - $("#Luckyexcel-demo-file").on("change",(evt) => { - var files = evt.target.files; - if(files==null || files.length==0){ - alert("No files wait for import"); - return; - } + function printExcel() { + let RowColumn = this.getExcelRowColumn() // 鑾峰彇鏈夊�肩殑琛屽拰鍒� + RowColumn.column[0] = 0 //鍥犻渶瑕佹墦鍗板乏杈圭殑杈规锛岄渶閲嶆柊璁剧疆 + luckysheet.setRangeShow(RowColumn) // 杩涜閫夊尯鎿嶄綔 + let src = luckysheet.getScreenshot(); // 鐢熸垚base64鍥剧墖 + const style = '@page {margin:0 10mm};' + printJS({ + printable: src, + type: 'image', + style: style + }) // Print.js鎻掍欢 + } - let name = files[0].name; - let suffixArr = name.split("."), suffix = suffixArr[suffixArr.length-1]; - if(suffix!="xlsx"){ - alert("Currently only supports the import of xlsx files"); - return; - } - LuckyExcel.transformExcelToLucky(files[0], function(exportJson, luckysheetfile){ - - if(exportJson.sheets==null || exportJson.sheets.length==0){ - alert("Failed to read the content of the excel file, currently does not support xls files!"); - return; + function getUrlParams(name) { + var url = window.location.search; + if (url.indexOf('?') == -1) { + return false; } - window.luckysheet.destroy(); + url = url.substr(1); + url = url.split('&'); + var name = name || ''; + var nameres; + for (var i = 0; i < url.length; i++) { + var info = url[i].split('='); + var obj = {}; + obj[info[0]] = decodeURI(info[1]); + url[i] = obj; + } + if (name) { + for (var i = 0; i < url.length; i++) { + for (var key in url[i]) { + if (key == name) { + nameres = url[i][key]; + } + } + } + } else { + nameres = url; + } + return nameres; + } - window.luckysheet.create({ - container: 'luckysheet', //luckysheet is the container id - data:exportJson.sheets, - title:exportJson.info.name, - userInfo:exportJson.info.name.creator, - lang: 'zh', //璁惧畾琛ㄦ牸璇█ 鍥介檯鍖栬缃紝鍏佽璁剧疆琛ㄦ牸鐨勮瑷�锛屾敮鎸佷腑鏂�("zh")鍜岃嫳鏂�("en") - allowEdit: true, //鏄惁鍏佽鍓嶅彴缂栬緫 - sheetFormulaBar: true, //鏄惁鏄剧ず鍏紡鏍� - forceCalculation: true,//寮哄埗璁$畻鍏紡 + // 鍘嬬缉 + function zip(data) { + if (!data) return data + // 鍒ゆ柇鏁版嵁鏄惁闇�瑕佽浆涓篔SON + const dataJson = typeof data !== 'string' && typeof data !== 'number' ? JSON.stringify(data) : data + + // 浣跨敤Base64.encode澶勭悊瀛楃缂栫爜锛屽吋瀹逛腑鏂� + const str = Base64.encode(dataJson) + let binaryString = pako.gzip(str); + let arr = Array.from(binaryString); + let s = ""; + arr.forEach((item, index) => { + s += String.fromCharCode(item) + }) + return btoa(s) + } + + // 瑙e帇 + function unzip(b64Data) { + let strData = atob(b64Data); + let charData = strData.split('').map(function (x) { + return x.charCodeAt(0); }); - }); - }) + let binData = new Uint8Array(charData); + let data = pako.ungzip(binData); - $("#export").on("click",() => { - console.log('export') - exportExcel(luckysheet.getluckysheetfile()).then((e) => { - saveFile(e,'file'); - }) - }) - - //淇濆瓨鍒版湇鍔″櫒 - $("#save").on("click",() => { - if(getUrlParams('id') == false || getUrlParams('id') == undefined){ - //鏂板 - $.ajax({ - url: baseUrl + "/priOnline2/add/auth", - headers: {'token': localStorage.getItem('token')}, - data: JSON.stringify({ - title: luckysheet.toJson().title, - sheetData: zip(luckysheet.getAllSheets()), - itemId: getUrlParams('item_id'), - priId: getUrlParams('pri_id') - }), - method: 'POST', - dataType: "json", - contentType:'application/json;charset=UTF-8', - success: function (res) { - if (res.code == 200) { - layer.msg('淇濆瓨鎴愬姛',{time:1000},() => { - parent.location.reload() - }) - }else{ - layer.msg(res.msg,{time:1000}) - } - } - }) - }else { - //淇敼 - $.ajax({ - url: baseUrl + "/priOnline2/update/auth", - headers: {'token': localStorage.getItem('token')}, - data: JSON.stringify({ - id: getUrlParams('id'), - title: luckysheet.toJson().title, - sheetData: zip(luckysheet.getAllSheets()) - }), - method: 'POST', - dataType: "json", - contentType:'application/json;charset=UTF-8', - success: function (res) { - if (res.code == 200) { - layer.msg('淇濆瓨鎴愬姛',{time:1000},() => { - parent.location.reload() - }) - }else{ - layer.msg(res.msg,{time:1000}) - } - } - }) - } - }) - - $("#otherSave").on("click",() => { - if(getUrlParams('id') == false || getUrlParams('id') == undefined){ - //鏂板缓鏂囦欢 - $("#save").trigger("click") - }else { - //鍙﹀瓨 - $.ajax({ - url: baseUrl + "/priOnline2/addOther/auth", - headers: {'token': localStorage.getItem('token')}, - data: JSON.stringify({ - id: getUrlParams('id'), - title: luckysheet.toJson().title, - sheetData: zip(luckysheet.getAllSheets()) - }), - method: 'POST', - dataType: "json", - contentType:'application/json;charset=UTF-8', - success: function (res) { - if (res.code == 200) { - layer.msg('鍙﹀瓨鎴愬姛',{time:1000},() => { - parent.location.reload() - }) - }else{ - layer.msg('淇濆瓨澶辫触',{time:1000}) - } - } - }) - } - }) - - }) - - $("#allprint").on("click",() => { - printExcel() - }) - - $("#print").on("click",() => { - let src = luckysheet.getScreenshot(); // 鐢熸垚base64鍥剧墖 - const style = '@page {margin:0 10mm};' - printJS({ - printable: src, - type: 'image', - style: style - }) // Print.js鎻掍欢 - }) - - // 鑾峰彇琛ㄦ牸涓寘鍚唴瀹圭殑row锛宑olumn - function getExcelRowColumn() { - const sheetData = luckysheet.getSheetData(); - let objRowColumn = { - row: [null, null], //琛� - column: [null, null], //鍒� - }; - sheetData.forEach((item, index) => { - //琛屾暟 - item.forEach((it, itemIndex) => { - if (it !== null) { - if (objRowColumn.row[0] == null) objRowColumn.row[0] = index; // row绗竴浣� - objRowColumn.row[1] = index; //row绗簩浣� - if (objRowColumn.column[0] == null) - objRowColumn.column[0] = itemIndex; //column绗竴浣� - objRowColumn.column[1] = itemIndex; //column绗簩浣� + // 鈫撳垏鐗囧鐞嗘暟鎹紝闃叉鍐呭瓨婧㈠嚭鎶ラ敊鈫� + let str = ''; + const chunk = 8 * 1024 + let i; + for (i = 0; i < data.length / chunk; i++) { + str += String.fromCharCode.apply(null, data.slice(i * chunk, (i + 1) * chunk)); } - }); - }); - return objRowColumn; - } + str += String.fromCharCode.apply(null, data.slice(i * chunk)); + // 鈫戝垏鐗囧鐞嗘暟鎹紝闃叉鍐呭瓨婧㈠嚭鎶ラ敊鈫� - function printExcel() { - let RowColumn = this.getExcelRowColumn() // 鑾峰彇鏈夊�肩殑琛屽拰鍒� - RowColumn.column[0] = 0 //鍥犻渶瑕佹墦鍗板乏杈圭殑杈规锛岄渶閲嶆柊璁剧疆 - luckysheet.setRangeShow(RowColumn) // 杩涜閫夊尯鎿嶄綔 - let src = luckysheet.getScreenshot(); // 鐢熸垚base64鍥剧墖 - const style = '@page {margin:0 10mm};' - printJS({ - printable: src, - type: 'image', - style: style - }) // Print.js鎻掍欢 - } + const unzipStr = Base64.decode(str); + let result = '' - function getUrlParams(name) { - var url = window.location.search; - if (url.indexOf('?') == -1) { return false; } - url = url.substr(1); - url = url.split('&'); - var name = name || ''; - var nameres; - for (var i = 0; i < url.length; i++) { - var info = url[i].split('='); - var obj = {}; - obj[info[0]] = decodeURI(info[1]); - url[i] = obj; - } - if (name) { - for (var i = 0; i < url.length; i++) { - for (var key in url[i]) { - if (key == name) { - nameres = url[i][key]; - } + // 瀵硅薄鎴栨暟缁勮繘琛孞SON杞崲 + try { + result = JSON.parse(unzipStr) + } catch (error) { + if (/Unexpected token o in JSON at position 0/.test(error)) { + // 濡傛灉娌℃湁杞崲鎴愬姛锛屼唬琛ㄥ�间负鍩烘湰鏁版嵁锛岀洿鎺ヨ祴鍊� + result = unzipStr + } } - } - } else { - nameres = url; + return result } - return nameres; - } - - // 鍘嬬缉 - function zip(data) { - if (!data) return data - // 鍒ゆ柇鏁版嵁鏄惁闇�瑕佽浆涓篔SON - const dataJson = typeof data !== 'string' && typeof data !== 'number' ? JSON.stringify(data) : data - - // 浣跨敤Base64.encode澶勭悊瀛楃缂栫爜锛屽吋瀹逛腑鏂� - const str = Base64.encode(dataJson) - let binaryString = pako.gzip(str); - let arr = Array.from(binaryString); - let s = ""; - arr.forEach((item, index) => { - s += String.fromCharCode(item) - }) - return btoa(s) - } - - // 瑙e帇 - function unzip(b64Data) { - let strData = atob(b64Data); - let charData = strData.split('').map(function (x) { - return x.charCodeAt(0); - }); - let binData = new Uint8Array(charData); - let data = pako.ungzip(binData); - - // 鈫撳垏鐗囧鐞嗘暟鎹紝闃叉鍐呭瓨婧㈠嚭鎶ラ敊鈫� - let str = ''; - const chunk = 8 * 1024 - let i; - for (i = 0; i < data.length / chunk; i++) { - str += String.fromCharCode.apply(null, data.slice(i * chunk, (i + 1) * chunk)); - } - str += String.fromCharCode.apply(null, data.slice(i * chunk)); - // 鈫戝垏鐗囧鐞嗘暟鎹紝闃叉鍐呭瓨婧㈠嚭鎶ラ敊鈫� - - const unzipStr = Base64.decode(str); - let result = '' - - // 瀵硅薄鎴栨暟缁勮繘琛孞SON杞崲 - try { - result = JSON.parse(unzipStr) - } catch (error) { - if (/Unexpected token o in JSON at position 0/.test(error)) { - // 濡傛灉娌℃湁杞崲鎴愬姛锛屼唬琛ㄥ�间负鍩烘湰鏁版嵁锛岀洿鎺ヨ祴鍊� - result = unzipStr - } - } - return result - } </script> </body> </html> \ No newline at end of file diff --git a/src/main/webapp/views/priOnline2/priOnline_more.html b/src/main/webapp/views/priOnline2/priOnline_more.html index cc8f88b..cc60c8e 100644 --- a/src/main/webapp/views/priOnline2/priOnline_more.html +++ b/src/main/webapp/views/priOnline2/priOnline_more.html @@ -3,6 +3,7 @@ #formAdvForm { background-color: #f3f3f3; } + #formAdvForm .layui-form-item { margin-top: 20px; margin-bottom: 0; @@ -31,7 +32,8 @@ <div class="layui-card-header" style="padding-top: 5px; padding-bottom: 5px"> <div> <i class="layui-icon" style="font-size: 20px;color: #1890ff;font-weight: bold"></i> - <span id="form-name" style="margin: 0 6px;font-size: 18px;font-weight: bold;letter-spacing: 1px"></span> + <span id="form-name" + style="margin: 0 6px;font-size: 18px;font-weight: bold;letter-spacing: 1px"></span> <span style="opacity: .5;font-size: small;margin-left: 5px">鏍镐环鍗�</span> </div> </div> @@ -74,7 +76,8 @@ </div> <div class="form-group-bottom text-right"> - <button class="layui-btn" lay-filter="refresh" lay-submit><i class="layui-icon"></i> 鍒锋柊 </button> + <button class="layui-btn" lay-filter="refresh" lay-submit><i class="layui-icon"></i> 鍒锋柊  + </button> </div> </form> @@ -132,7 +135,8 @@ form.render('select'); init(); - function init(){ + + function init() { notice.msg('姝e湪杞藉叆鏁版嵁......', {icon: 4, position: "topRight"}); $.ajax({ url: baseUrl + "/priOnline2/" + priOnlineId + "/auth", @@ -175,6 +179,7 @@ type: 'datetime' }); } + layDateRender(); /* 鐩戝惉琛ㄥ崟鎻愪氦 */ diff --git a/src/main/webapp/views/processPermissions/processPermissions.html b/src/main/webapp/views/processPermissions/processPermissions.html index 97b7349..786fde3 100644 --- a/src/main/webapp/views/processPermissions/processPermissions.html +++ b/src/main/webapp/views/processPermissions/processPermissions.html @@ -40,11 +40,11 @@ <div class="layui-input-block"> <select name="process_memo"> <option value="">璇烽�夋嫨鐘舵��</option> - <option value="1">鏍镐环娴佺▼</option> + <option value="1">瑙勫垝娴佺▼</option> <option value="2">鎶ヤ环娴佺▼</option> <option value="3">鎶ラ攢娴佺▼</option> -<!-- <option value="4">鍑哄樊娴佺▼</option>--> - <option value="5">鏍镐环娴佺▼</option> + <option value="4">闆嗘垚鏍镐环娴佺▼</option> + <option value="5">璐ф灦鏍镐环娴佺▼</option> <option value="7">鍚堝悓绠$悊</option> <option value="101">鍏跺畠瑙勫垝鍛�</option> </select> -- Gitblit v1.9.1