diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index 41040c0f7..f072aca67 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -647,3 +647,16 @@ ALTER TABLE `project_task_planning` -- 工作流数据库-增加固定数据 2023-05-17 未同步生产环境 INSERT INTO `t_form`(`OBJECT_ID`, `CODE`, `CREATE_TIME`, `WIDGET_JSON`, `JSON`, `NAME`, `SHOW_KEY`, `IS_DELETED`, `MODEL_ID`, `JSON_EVAL`, `HTML`, `RUN_TYPE`, `CATEGORY_ID`, `HTML_READONLY`) VALUES ('xgjfwlc', '0007', '2023-05-17 13:52:26', NULL, NULL, '修改交付物流程', NULL, 0, '15007', NULL, NULL, 'json', '4bdf0b396b4aa6ea10dd5e19956a1e22', NULL); + +-- 最近浏览表 2023-06-08 未同步生产环境 +CREATE TABLE `recent_browse` ( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建日期', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新日期', + `sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门', + `browse_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览类型', + `browse_data_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览数据id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '最近浏览' ROW_FORMAT = Dynamic; \ No newline at end of file diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/enums/DictCodeEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/enums/DictCodeEnum.java index 68fd29027..5c1e83de7 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/enums/DictCodeEnum.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/enums/DictCodeEnum.java @@ -4,6 +4,7 @@ public enum DictCodeEnum { DUTY_TERRITORY("责任领域","duty_territory"), BRAND("品牌","brand"), + STATE("文档库-状态","state"), ; String name; String value; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 0cc56ba53..80e6d6b29 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -56,6 +56,9 @@ import com.jero.modules.message.websocket.WebSocket; import com.jero.modules.ocr.service.IOcrRecordEOService; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; +import com.jero.modules.phone.entity.RecentBrowse; +import com.jero.modules.phone.enums.BrowseTypeEnum; +import com.jero.modules.phone.service.IRecentBrowseService; import com.jero.modules.searchcenter.enums.ModuleTypeFlagEnum; import com.jero.modules.split.common.FileUnZip; import com.jero.modules.split.entity.SarFileSplitInfoEO; @@ -195,6 +198,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl ids) { @@ -2657,6 +2666,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl { + @Autowired + private IRecentBrowseService recentBrowseService; + + /** + * 分页列表查询 + * + * @param recentBrowse + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "最近浏览表-分页列表查询") + @ApiOperation(value="最近浏览表-分页列表查询", notes="最近浏览表-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(RecentBrowse recentBrowse, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + return this.recentBrowseService.queryPageList(recentBrowse,pageNo,pageSize,req); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "最近浏览表-列表查询") + @ApiOperation(value="最近浏览表-列表查询", notes="最近浏览表-列表查询") + @GetMapping(value = "/list") + public Result> queryList() { + List list = recentBrowseService.queryList(); + return Result.OK(list); + } + + /** + * 添加 + * + * @param recentBrowse + * @return + */ + @AutoLog(value = "最近浏览表-添加") + @ApiOperation(value="最近浏览表-添加", notes="最近浏览表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody RecentBrowse recentBrowse) { + recentBrowseService.add(recentBrowse); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param recentBrowse + * @return + */ + @AutoLog(value = "最近浏览表-编辑") + @ApiOperation(value="最近浏览表-编辑", notes="最近浏览表-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody RecentBrowse recentBrowse) { + recentBrowseService.editById(recentBrowse); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "最近浏览表-通过id删除") + @ApiOperation(value="最近浏览表-通过id删除", notes="最近浏览表-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + recentBrowseService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "最近浏览表-批量删除") + @ApiOperation(value="最近浏览表-批量删除", notes="最近浏览表-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.recentBrowseService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "最近浏览表-通过id查询") + @ApiOperation(value="最近浏览表-通过id查询", notes="最近浏览表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + RecentBrowse recentBrowse = recentBrowseService.queryById(id); + if(recentBrowse==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(recentBrowse); + } + + /** + * 导出excel + * + * @param request + * @param recentBrowse + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, RecentBrowse recentBrowse) { + return super.exportXls(request, recentBrowse, RecentBrowse.class, "最近浏览表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, RecentBrowse.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/controller/SearchCenterController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/controller/SearchCenterController.java new file mode 100644 index 000000000..fa9b5f564 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/controller/SearchCenterController.java @@ -0,0 +1,44 @@ +package com.jero.modules.phone.controller; + +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.modules.phone.service.ISearchCenterService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@Api(tags = "手机端-搜索中心") +@RestController +@RequestMapping("/phone/search") +public class SearchCenterController { + + @Autowired + private ISearchCenterService searchCenterService; + + @AutoLog(value = "手机端-搜索-获取数据总数") + @ApiOperation(value = "手机端-搜索-获取数据总数", notes = "手机端-搜索-获取数据总数") + @GetMapping(value = "/getDataCount") + public Result> getDataCount() { + return this.searchCenterService.getDataCount(); + } + + @AutoLog(value = "手机端-搜索-根据用户获取文档库订阅和收藏信息") + @ApiOperation(value = "手机端-搜索-根据用户获取文档库订阅和收藏信息", notes = "手机端-搜索-根据用户获取文档库订阅和收藏信息") + @GetMapping(value = "/getWdkCollectAndSubscribeInfoByUser") + public Result> getWdkCollectAndSubscribeInfoByUser(@RequestParam Map params) { + return this.searchCenterService.getWdkCollectAndSubscribeInfoByUser(params); + } + + @AutoLog(value = "手机端-搜索-查询文档库搜索中心数据") + @ApiOperation(value = "手机端-搜索-查询文档库搜索中心数据", notes = "手机端-搜索-查询文档库搜索中心数据") + @GetMapping(value = "/getWdkPage") + public Result getWdkPage(@RequestParam Map params) { + return this.searchCenterService.getWdkPage(params); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/controller/TaskStatisticsController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/controller/TaskStatisticsController.java new file mode 100644 index 000000000..431c9f2cb --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/controller/TaskStatisticsController.java @@ -0,0 +1,29 @@ +package com.jero.modules.phone.controller; + +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.modules.phone.service.ITaskStatisticsService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@Api(tags = "手机端-任务统计") +@RestController +@RequestMapping("/phone/taskStatistics") +public class TaskStatisticsController { + + @Autowired + private ITaskStatisticsService taskStatisticsService; + + @AutoLog(value = "手机端-任务统计-获取待办任务总数") + @ApiOperation(value = "手机端-任务统计-获取待办任务总数", notes = "手机端-任务统计-获取待办任务总数") + @GetMapping(value = "/getRegulatoryCertificationProcessDataCount") + public Result> getRegulatoryCertificationProcessDataCount() { + return this.taskStatisticsService.getRegulatoryCertificationProcessDataCount(); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/controller/ToDoCenterController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/controller/ToDoCenterController.java new file mode 100644 index 000000000..58df9bf88 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/controller/ToDoCenterController.java @@ -0,0 +1,49 @@ +package com.jero.modules.phone.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.modules.phone.service.IToDoCenterService; +import com.jero.modules.project.entity.ProjectCertificationInventoryEO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@Api(tags = "手机端-待办中心") +@RestController +@RequestMapping("/phone/toDoCenter") +public class ToDoCenterController { + + @Autowired + private IToDoCenterService toDoCenterService; + + @AutoLog(value = "手机端-待办中心-查询待办任务分页列表") + @ApiOperation(value = "手机端-待办中心-查询待办任务分页列表", notes = "手机端-待办中心-查询待办任务分页列表") + @GetMapping(value = "/queryTodoTaskPage") + public Result queryTodoTaskPage(@RequestParam Map params) { + IPage page = this.toDoCenterService.queryTodoTaskPage(params); + return Result.OK(page); + } + + @AutoLog(value = "手机端-待办中心-查询待办任务-Prehomo数据分页列表") + @ApiOperation(value = "手机端-待办中心-查询待办任务-Prehomo数据分页列表", notes = "手机端-待办中心-查询待办任务-Prehomo数据分页列表") + @GetMapping(value = "/queryPreHomoPage") + public Result queryPreHomoPage(@RequestParam Map params) { + String cut = (String) params.get("cut"); + IPage page = this.toDoCenterService.queryPreHomoPage(params); + return Result.OK(cut,page); + } + + @AutoLog(value = "手机端-待办中心-根据id查询认证清单详情") + @ApiOperation(value = "手机端-待办中心-根据id查询认证清单详情", notes = "手机端-待办中心-根据id查询认证清单详情") + @GetMapping(value = "/queryProjectCertificationInventoryById") + public Result queryProjectCertificationInventoryById(@RequestParam Map params) { + return this.toDoCenterService.queryProjectCertificationInventoryById(params); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/entity/RecentBrowse.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/entity/RecentBrowse.java new file mode 100644 index 000000000..194a04664 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/entity/RecentBrowse.java @@ -0,0 +1,89 @@ +package com.jero.modules.phone.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + + +/** + * @Description: 最近浏览表 + * @Author: jero-boot + * @Date: 2023-06-08 + * @Version: V1.0 + */ +@Data +@TableName("recent_browse") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="recent_browse对象", description="最近浏览表") +public class RecentBrowse implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; + + /**浏览类型*/ + @Excel(name = "浏览类型", width = 15) + @ApiModelProperty(value = "浏览类型") + private java.lang.String browseType; + + /**浏览数据id*/ + @Excel(name = "浏览数据id", width = 15) + @ApiModelProperty(value = "浏览数据id") + private java.lang.String browseDataId; + + // 展示标题 + @TableField(exist = false) + private String title; + + // 浏览类型展示字段 + @TableField(exist = false) + private String browseTypeName; + + @TableField(exist = false) + private String cut; + + // 法规月报专用 + @TableField(exist = false) + private String fileId; +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/enums/BrowseTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/enums/BrowseTypeEnum.java new file mode 100644 index 000000000..b52761d5c --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/enums/BrowseTypeEnum.java @@ -0,0 +1,63 @@ +package com.jero.modules.phone.enums; + +import com.jero.common.constant.enums.CutEnum; +import com.jero.modules.system.util.StringUtils; + +/** + * 浏览类型枚举类 + */ +public enum BrowseTypeEnum { + WDK("Document Library", "文档库", "Document Library"), + ZSFX("Knowledge sharing", "知识分享", "Knowledge sharing"), + FGYB("Regulatory Monthly Report", "法规月报", "Regulatory Monthly Report"), + ; + + + String cnName; + String enName; + String value; + + private BrowseTypeEnum(String value, String cnName, String enName) { + this.value = value; + this.cnName = cnName; + this.enName = enName; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getCnName() { + return cnName; + } + + public void setCnName(String cnName) { + this.cnName = cnName; + } + + public String getEnName() { + return enName; + } + + public void setEnName(String enName) { + this.enName = enName; + } + + public static String getTextByValue(String value, String cut) { + BrowseTypeEnum[] values = values(); + for (BrowseTypeEnum taskStatusEnum : values) { + if (taskStatusEnum.value.equals(value)) { + if (StringUtils.equals(cut, CutEnum.CN.getValue())) { + return taskStatusEnum.cnName; + } else { + return taskStatusEnum.enName; + } + } + } + return null; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/mapper/RecentBrowseMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/mapper/RecentBrowseMapper.java new file mode 100644 index 000000000..c557b5d69 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/mapper/RecentBrowseMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.phone.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.phone.entity.RecentBrowse; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 最近浏览表 + * @Author: jero-boot + * @Date: 2023-06-08 + * @Version: V1.0 + */ +public interface RecentBrowseMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/mapper/xml/RecentBrowseMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/mapper/xml/RecentBrowseMapper.xml new file mode 100644 index 000000000..1cd51d84b --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/mapper/xml/RecentBrowseMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/IRecentBrowseService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/IRecentBrowseService.java new file mode 100644 index 000000000..82df0706b --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/IRecentBrowseService.java @@ -0,0 +1,73 @@ +package com.jero.modules.phone.service; + +import com.jero.common.api.vo.Result; +import com.jero.modules.phone.entity.RecentBrowse; +import com.baomidou.mybatisplus.extension.service.IService; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @Description: 最近浏览表 + * @Author: jero-boot + * @Date: 2023-06-08 + * @Version: V1.0 + */ +public interface IRecentBrowseService extends IService { + + /** + * 保存 + * + * @param recentBrowse + * @return + */ + void add(RecentBrowse recentBrowse); + + /** + * 更新 + * + * @param recentBrowse + * @return + */ + void editById(RecentBrowse recentBrowse); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + RecentBrowse queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); + + Result queryPageList(RecentBrowse recentBrowse, Integer pageNo, Integer pageSize, HttpServletRequest req); + + /** + * 根据浏览类型和浏览数据id删除数据 + * @param browseType + * @param browseDataIdList + */ + void deleteByBrowseTypeAndBrowseDataIdList(String browseType, List browseDataIdList); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/ISearchCenterService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/ISearchCenterService.java new file mode 100644 index 000000000..acb1f50ca --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/ISearchCenterService.java @@ -0,0 +1,14 @@ +package com.jero.modules.phone.service; + +import com.jero.common.api.vo.Result; + +import java.util.Map; + +public interface ISearchCenterService { + + Result> getDataCount(); + + Result> getWdkCollectAndSubscribeInfoByUser(Map params); + + Result getWdkPage(Map params); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/ITaskStatisticsService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/ITaskStatisticsService.java new file mode 100644 index 000000000..d90a2aca6 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/ITaskStatisticsService.java @@ -0,0 +1,9 @@ +package com.jero.modules.phone.service; + +import com.jero.common.api.vo.Result; + +import java.util.Map; + +public interface ITaskStatisticsService { + Result> getRegulatoryCertificationProcessDataCount(); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/IToDoCenterService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/IToDoCenterService.java new file mode 100644 index 000000000..4e10d0bf3 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/IToDoCenterService.java @@ -0,0 +1,15 @@ +package com.jero.modules.phone.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.common.api.vo.Result; +import com.jero.modules.project.entity.ProjectCertificationInventoryEO; + +import java.util.Map; + +public interface IToDoCenterService { + IPage queryTodoTaskPage(Map params); + + IPage queryPreHomoPage(Map params); + + Result queryProjectCertificationInventoryById(Map params); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/RecentBrowseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/RecentBrowseServiceImpl.java new file mode 100644 index 000000000..a6dd0f077 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/RecentBrowseServiceImpl.java @@ -0,0 +1,227 @@ +package com.jero.modules.phone.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.api.vo.Result; +import com.jero.common.constant.enums.CutEnum; +import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.BrowserType; +import com.jero.modules.document.entity.BussDocumentLibraryEO; +import com.jero.modules.document.service.IBussDocumentLibraryEOService; +import com.jero.modules.phone.entity.RecentBrowse; +import com.jero.modules.phone.enums.BrowseTypeEnum; +import com.jero.modules.phone.mapper.RecentBrowseMapper; +import com.jero.modules.phone.service.IRecentBrowseService; +import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO; +import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseEOService; +import com.jero.modules.report.entity.LawsMonthlyReportManageEO; +import com.jero.modules.report.service.ILawsMonthlyReportManageEOService; +import com.jero.modules.system.util.StringUtils; +import org.apache.commons.collections.CollectionUtils; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Date; +import java.util.stream.Collectors; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Description: 最近浏览表 + * @Author: jero-boot + * @Date: 2023-06-08 + * @Version: V1.0 + */ +@Service +public class RecentBrowseServiceImpl extends ServiceImpl implements IRecentBrowseService { + + @Autowired + private IBussDocumentLibraryEOService bussDocumentLibraryEOService; + @Autowired + private IProblemKnowledgeBaseEOService problemKnowledgeBaseEOService; + @Autowired + private ILawsMonthlyReportManageEOService lawsMonthlyReportManageEOService; + + /** + * 保存 + * + * @param recentBrowse + * @return + */ + @Override + public void add(RecentBrowse recentBrowse) { + Date now = new Date(); + recentBrowse.setCreateTime(now); + recentBrowse.setUpdateTime(now); + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + // 添加时,只保留最新的一条浏览记录 将之前的浏览记录删掉。 + QueryWrapper rbRemoveWrap = new QueryWrapper<>(); + rbRemoveWrap.lambda().eq(RecentBrowse::getCreateBy, currentUser.getUsername()); + rbRemoveWrap.lambda().eq(RecentBrowse::getBrowseType, recentBrowse.getBrowseType()); + rbRemoveWrap.lambda().eq(RecentBrowse::getBrowseDataId, recentBrowse.getBrowseDataId()); + this.remove(rbRemoveWrap); + + this.save(recentBrowse); + } + + /** + * 更新 + * + * @param recentBrowse + * @return + */ + @Override + public void editById(RecentBrowse recentBrowse) { + Date now = new Date(); + recentBrowse.setUpdateTime(now); + saveOrUpdate(recentBrowse); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public RecentBrowse queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } + + @Override + public Result queryPageList(RecentBrowse recentBrowse, Integer pageNo, Integer pageSize, HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(recentBrowse, req.getParameterMap()); + queryWrapper.orderByDesc("create_time"); + Page page = new Page(pageNo, pageSize); + IPage pageList = this.page(page, queryWrapper); + this.disposeData(recentBrowse, pageList.getRecords()); + return Result.OK(pageList); + } + + public void disposeData(RecentBrowse recentBrowse, List datas) { + if (CollectionUtils.isNotEmpty(datas)) { + String cut = recentBrowse.getCut(); + + List wdkIdList = datas.stream().filter(data -> { + boolean flag = (StringUtils.equals(data.getBrowseType(), BrowseTypeEnum.WDK.getValue())); + return flag; + }).map(RecentBrowse::getBrowseDataId).distinct().collect(Collectors.toList()); + List bdlEoList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(wdkIdList)) { + QueryWrapper bdlQueryWrap = new QueryWrapper<>(); + bdlQueryWrap.lambda().in(BussDocumentLibraryEO::getId, wdkIdList); + bdlEoList = this.bussDocumentLibraryEOService.list(bdlQueryWrap); + } + + List zsfxIdList = datas.stream().filter(data -> { + boolean flag = (StringUtils.equals(data.getBrowseType(), BrowseTypeEnum.ZSFX.getValue())); + return flag; + }).map(RecentBrowse::getBrowseDataId).distinct().collect(Collectors.toList()); + List pkbEoList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(zsfxIdList)) { + QueryWrapper pkbQueryWrap = new QueryWrapper<>(); + pkbQueryWrap.lambda().in(ProblemKnowledgeBaseEO::getId, zsfxIdList); + pkbEoList = this.problemKnowledgeBaseEOService.list(pkbQueryWrap); + } + + List fgybIdList = datas.stream().filter(data -> { + boolean flag = (StringUtils.equals(data.getBrowseType(), BrowseTypeEnum.FGYB.getValue())); + return flag; + }).map(RecentBrowse::getBrowseDataId).distinct().collect(Collectors.toList()); + List lmrEoList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(fgybIdList)) { + QueryWrapper lmrQueryWrap = new QueryWrapper<>(); + lmrQueryWrap.lambda().in(LawsMonthlyReportManageEO::getId, fgybIdList); + lmrEoList = this.lawsMonthlyReportManageEOService.list(lmrQueryWrap); + } + + for (RecentBrowse data : datas) { + StringBuilder titleSb = new StringBuilder(); + if (StringUtils.equals(data.getBrowseType(), BrowseTypeEnum.WDK.getValue())) { + List bdlEos = bdlEoList.stream().filter(bdlEo -> { + boolean flag = (StringUtils.equals(bdlEo.getId(), data.getBrowseDataId())); + return flag; + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(bdlEos)) { + BussDocumentLibraryEO bdlEo = bdlEos.get(0); + String title = bdlEo.getTitle(); + if (StringUtils.equals(cut, CutEnum.EN.getValue())) { + title = bdlEo.getTitleEn(); + } + titleSb.append(title).append(" ").append(bdlEo.getSerialNumber()); + } + } else if (StringUtils.equals(data.getBrowseType(), BrowseTypeEnum.ZSFX.getValue())) { + List pkbEos = pkbEoList.stream().filter(pkbEo -> { + boolean flag = (StringUtils.equals(pkbEo.getId(), data.getBrowseDataId())); + return flag; + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(pkbEos)) { + ProblemKnowledgeBaseEO pkbEo = pkbEos.get(0); + titleSb.append(pkbEo.getTitle()); + } + } else if (StringUtils.equals(data.getBrowseType(), BrowseTypeEnum.FGYB.getValue())) { + List lmrEos = lmrEoList.stream().filter(lmrEo -> { + boolean flag = (StringUtils.equals(lmrEo.getId(), data.getBrowseDataId())); + return flag; + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(lmrEos)) { + LawsMonthlyReportManageEO lmrEo = lmrEos.get(0); + titleSb.append(lmrEo.getName()); + data.setFileId(lmrEo.getFileId()); + } + } + data.setTitle(titleSb.toString()); + data.setBrowseTypeName(BrowseTypeEnum.getTextByValue(data.getBrowseType(), cut)); + } + } + } + + + @Override + public void deleteByBrowseTypeAndBrowseDataIdList(String browseType, List browseDataIdList) { + QueryWrapper rbRemoveWrap = new QueryWrapper<>(); + rbRemoveWrap.lambda().eq(RecentBrowse::getBrowseType, browseType); + rbRemoveWrap.lambda().in(RecentBrowse::getBrowseDataId, browseDataIdList); + this.remove(rbRemoveWrap); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/SearchCenterServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/SearchCenterServiceImpl.java new file mode 100644 index 000000000..6bbef7f75 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/SearchCenterServiceImpl.java @@ -0,0 +1,396 @@ +package com.jero.modules.phone.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.api.vo.Result; +import com.jero.common.constant.enums.CutEnum; +import com.jero.common.es.JeroElasticsearchTemplate; +import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.DateUtils; +import com.jero.modules.collection.entity.OnlCgformCollection; +import com.jero.modules.collection.service.IOnlCgformCollectionService; +import com.jero.modules.document.enums.SearchEnum; +import com.jero.modules.document.service.IBussDocumentLibraryEOService; +import com.jero.modules.enums.DictCodeEnum; +import com.jero.modules.phone.service.ISearchCenterService; +import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO; +import com.jero.modules.problemKnowledgeBase.enums.ReleaseStatusEnum; +import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseEOService; +import com.jero.modules.report.entity.LawsMonthlyReportManageEO; +import com.jero.modules.report.service.ILawsMonthlyReportManageEOService; +import com.jero.modules.subscribe.entity.OnlCgformSubscribe; +import com.jero.modules.subscribe.service.IOnlCgformSubscribeService; +import com.jero.modules.system.entity.SysDictItem; +import com.jero.modules.system.service.ISysUserService; +import com.jero.modules.system.service.impl.SysDictItemServiceImpl; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class SearchCenterServiceImpl implements ISearchCenterService { + + @Autowired + private IBussDocumentLibraryEOService bussDocumentLibraryEOService; + @Autowired + private ISysUserService sysUserService; + @Autowired + private IProblemKnowledgeBaseEOService problemKnowledgeBaseEOService; + @Autowired + private ILawsMonthlyReportManageEOService lawsMonthlyReportManageEOService; + @Autowired + private IOnlCgformCollectionService onlCgformCollectionService; + @Autowired + private IOnlCgformSubscribeService onlCgformSubscribeService; + @Autowired + private JeroElasticsearchTemplate jeroElasticsearchTemplate; + public static final String SEARCH_FLAG = "魑";//标识(es数据带此标识的代表全文和段落的数据,不带此标识的代表列表数据) + @Autowired + private SysDictItemServiceImpl sysDictItemServiceImpl; + + @Override + public Result> getDataCount() { + Map result = new HashMap<>(); + Map params = new HashMap<>(); + params.put("cut", CutEnum.CN.getValue()); + params.put("pageNo", "1"); + params.put("pageSize", "10"); + IPage documentLibraryInfoPage = this.bussDocumentLibraryEOService.getInfoPage(params); + long documentLibraryCount = documentLibraryInfoPage.getTotal(); + + int pageNo = 1; + int pageSize = 10; + ProblemKnowledgeBaseEO problemKnowledgeBaseEO = new ProblemKnowledgeBaseEO(); + boolean administrator = this.sysUserService.isAdministrator(); + //如果当前登录人是超级管理员角色,进入到管理发布页面时,查询所有的数据,其它用户只能查询自己创建的数据。 + if (administrator) { + problemKnowledgeBaseEO.setCreateBy(null); + } else { + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + problemKnowledgeBaseEO.setCreateBy(currentUser.getUsername()); + } + QueryWrapper pkbQueryWrap = new QueryWrapper<>(); + pkbQueryWrap.lambda().eq(ProblemKnowledgeBaseEO::getReleaseStatus, ReleaseStatusEnum.HAVE_RELEASED.getValue()); + this.problemKnowledgeBaseEOService.createQueryPermission(pkbQueryWrap, problemKnowledgeBaseEO); + Page pkbPage = new Page(pageNo, pageSize); + IPage problemKnowledgeBaseInfoPage = this.problemKnowledgeBaseEOService.page(pkbPage, pkbQueryWrap); + long problemKnowledgeBaseCount = problemKnowledgeBaseInfoPage.getTotal(); + + QueryWrapper lmrmQueryWrap = new QueryWrapper<>(); + Page lmrmPage = new Page(pageNo, pageSize); + IPage lawsMonthlyReportManageInfoPage = this.lawsMonthlyReportManageEOService.getPageInfo(lmrmPage, lmrmQueryWrap); + long lawsMonthlyReportManageCount = lawsMonthlyReportManageInfoPage.getTotal(); + + result.put("documentLibraryCount", documentLibraryCount); + result.put("problemKnowledgeBaseCount", problemKnowledgeBaseCount); + result.put("lawsMonthlyReportManageCount", lawsMonthlyReportManageCount); + return Result.OK(result); + } + + @Override + public Result> getWdkCollectAndSubscribeInfoByUser(Map params) { + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + Map result = new HashMap<>(); + + String id = (String) params.get("id"); + QueryWrapper collectionQueryWrap = new QueryWrapper<>(); + collectionQueryWrap.lambda().eq(OnlCgformCollection::getDocumentId, id); + collectionQueryWrap.lambda().eq(OnlCgformCollection::getCreateBy, currentUser.getUsername()); + List collectionList = this.onlCgformCollectionService.list(collectionQueryWrap); + + QueryWrapper subscribeQueryWrap = new QueryWrapper(); + subscribeQueryWrap.lambda().eq(OnlCgformSubscribe::getDocumentId, id); + subscribeQueryWrap.lambda().eq(OnlCgformSubscribe::getCreateBy, currentUser.getUsername()); + List subscribeList = this.onlCgformSubscribeService.list(subscribeQueryWrap); + + result.put("subscribeList", subscribeList); + result.put("collectionList", collectionList); + return Result.OK(result); + } + + @Override + public Result getWdkPage(Map params) { + boolean indexExistsFlag = true; + String cut = (String) params.get("cut"); + Integer pageNo = Integer.parseInt(params.get("pageNo").toString()); + Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); + if (StringUtils.equals(cut, CutEnum.CN.getValue())) { + indexExistsFlag = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH_CN.getValue()); + } else if (StringUtils.equals(cut, CutEnum.EN.getValue())) { + indexExistsFlag = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH_EN.getValue()); + } + if (!indexExistsFlag) { + Page page = new Page(pageNo, pageSize); + return Result.OK(page); + } + + // 定义需要查询的字段数组 + List fieldList = new ArrayList<>(); + fieldList.add("serial_number"); + if (StringUtils.equals(cut,CutEnum.EN.getValue())) { + fieldList.add("title_en"); + } else if (StringUtils.equals(cut,CutEnum.CN.getValue())){ + fieldList.add("title"); + } + fieldList.add("content"); + fieldList.add("flag"); + + JSONArray queryMapJsonAll = new JSONArray(); + JSONArray queryJsonMustNot = new JSONArray(); + + JSONArray queryMapInputJson = new JSONArray(); + Map mapHighlight = new HashMap<>(); + Map mapHighlight1 = new HashMap<>(); + + String selectValue = (String) params.get("selectValue"); + if(StringUtils.isNotBlank(selectValue)){ + Map map = new HashMap<>(); + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + map.put("query",SEARCH_FLAG); + map1.put("flag",map); + map2.put("match",map1); + queryJsonMustNot.add(map2); + }else { + selectValue = SEARCH_FLAG; + } + if (StringUtils.isNotBlank(selectValue)) { + for (String field : fieldList) { + this.setQueryMapJson(queryMapInputJson, selectValue, field); + //高亮 + if(!"flag".equals(field)){ + this.wdkHighlight(mapHighlight, field); + } else { + // query_string查询 + Map map25 = new HashMap<>(); + Map map45 = new HashMap<>(); + map25.put("query", selectValue); + map25.put("fields", fieldList.toArray()); + map25.put("allow_leading_wildcard", false); //禁用了前置通配符 + map45.put("query_string", map25); + queryMapInputJson.add(map45); + } + } + mapHighlight1.put("fields", mapHighlight); + + if (CollectionUtils.isNotEmpty(queryMapInputJson)) { + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapInputJson); + queryMapJsonAll.add(jsonObject); + } + } + + //指定module_type_flag= WDK + JSONArray moduleTypeFlagQueryJsonArrMust = new JSONArray(); + Map moduleTypeFlagValueMap = new HashMap<>(); + Map moduleTypeFlagFieldMap = new HashMap<>(); + Map moduleTypeFlagMatchMap = new HashMap<>(); + moduleTypeFlagValueMap.put("query", "WDK"); + moduleTypeFlagFieldMap.put("module_type_flag", moduleTypeFlagValueMap); + moduleTypeFlagMatchMap.put("match", moduleTypeFlagFieldMap); + moduleTypeFlagQueryJsonArrMust.add(moduleTypeFlagMatchMap); + JSONObject moduleTypeFlagQueryJson = jeroElasticsearchTemplate.buildBoolQuery(moduleTypeFlagQueryJsonArrMust, null, null); + queryMapJsonAll.add(moduleTypeFlagQueryJson); + + JSONObject querySort = new JSONObject(); + if (StringUtils.isEmpty(selectValue) || StringUtils.equals(selectValue, SEARCH_FLAG)) { + Map createTime = new HashMap<>(); + Map createTime1 = new HashMap<>(); + createTime.put("order", "desc"); + createTime1.put("create_time", createTime); + querySort.putAll(createTime1); + } else { + Map score = new HashMap<>(); + Map score1 = new HashMap<>(); + score.put("order", "desc"); + score1.put("_score", score); + querySort.putAll(score1); + } + + IPage page = this.getWdkPage( + queryMapJsonAll, + mapHighlight1, + pageNo, + pageSize, + cut, + querySort, + queryJsonMustNot, + null + ); + return Result.OK(page); + } + + @NotNull + private IPage getWdkPage(JSONArray queryMapJson, + Map highlightMap, + Integer pageNo, + Integer pageSize, + String cut, + JSONObject querySort, + JSONArray queryMustNot, + JSONArray queryShould) { + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, queryMustNot, queryShould); + JSONArray jsonArraySort = new JSONArray(); + jsonArraySort.add(querySort); + + //1. 条件,分页 + JSONObject queryObject = jeroElasticsearchTemplate.buildQuery( + null, + jsonObject, + highlightMap, + jsonArraySort, + pageNo - 1, + pageSize + ); + + //2. 数据查询 + JSONObject search = new JSONObject(); + if (CutEnum.CN.getValue().equals(cut)) { + search = jeroElasticsearchTemplate.search( + SearchEnum.FULL_TEXT_SEARCH_CN.getValue(), + SearchEnum.FULL_TEXT_SEARCH_CN.getValue(), + queryObject + ); + } else { + search = jeroElasticsearchTemplate.search( + SearchEnum.FULL_TEXT_SEARCH_EN.getValue(), + SearchEnum.FULL_TEXT_SEARCH_EN.getValue(), + queryObject + ); + } + + List stateSysDictItems = this.sysDictItemServiceImpl.selectItemsByDictCode(DictCodeEnum.STATE.getValue()); + + List> list = (List>) (((Map) search.get("hits")).get("hits")); + List> mapList = new ArrayList<>(); + for (Map map : list) { + Map mapSource = (Map) map.get("_source"); + Map mapHighlight = (Map) map.get("highlight"); + if(ObjectUtils.isNotEmpty(mapHighlight)){ + for (Map.Entry entry : mapHighlight.entrySet()) { + String key = entry.getKey(); + List value = (List) entry.getValue(); + String fieldConyent= ""; + for (String s : value) { + fieldConyent += s; + } + mapSource.put(key,fieldConyent); + } + } + String state = (String) mapSource.get("state"); + String state_dictText = ""; + for (SysDictItem dictItem : stateSysDictItems) { + if (StringUtils.equals(dictItem.getItemValue(), state)) { + if (StringUtils.equals(cut, CutEnum.CN.getValue())) { + state_dictText = dictItem.getItemText(); + } else { + state_dictText = dictItem.getEnName(); + } + break; + } + } + mapSource.put("state_dictText", state_dictText); + + String create_time_str = ""; + if(ObjectUtils.isNotEmpty(mapSource.get("create_time"))){ + create_time_str = DateUtils.formatTime((Long) mapSource.get("create_time")); + } + mapSource.put("create_time_str",create_time_str); + // 处理中英文切换的时候 展示的标题 + if (StringUtils.equals(cut,CutEnum.EN.getValue())) { + mapSource.put("title",mapSource.get("title_en")); + } + mapList.add(mapSource); + } + + //处理分页 + IPage page = new Page(pageNo, pageSize); + page.setTotal(Long.parseLong(String.valueOf(((Map) search.get("hits")).get("total")))); + page.setRecords(mapList); + return page; + } + + /** + * 设置文档库高亮字段 + * @param mapHighlight + * @param key + */ + private void wdkHighlight(Map mapHighlight, String key) { + Map mapTemp = new HashMap<>(); + List list = new ArrayList<>(); + list.add(""); + List list1 = new ArrayList<>(); + list1.add(""); + mapTemp.put("pre_tags", list); + mapTemp.put("post_tags", list1); + mapTemp.put("fragment_size", 320); + mapTemp.put("number_of_fragments", 1); + mapTemp.put("type", "plain"); + mapHighlight.put(key, mapTemp); + } + + private void setQueryMapJson(JSONArray queryMapJson, String selectValue, String field) { + // 前缀匹配 缺点是前缀一定不能断开 + // 情况举例:用户只记得前面那段字 + Map map21 = new HashMap<>(); + Map map31 = new HashMap<>(); + Map map41 = new HashMap<>(); + if ("title".equals(field)) { + map31.put("boost", 10); + } else if ("content".equals(field)) { + map31.put("boost", 0.01); + } + map31.put("value", selectValue); + map21.put(field + ".keyword", map31); + map41.put("prefix", map21); + queryMapJson.add(map41); + + // match_phrase_prefix 词组匹配查询,允许最后词组与文中的任意分词前缀匹配 + Map map22 = new HashMap<>(); + Map map32 = new HashMap<>(); + Map map42 = new HashMap<>(); + if ("title".equals(field)) { + map32.put("boost", 10); + } else if ("content".equals(field)) { + map32.put("boost", 0.01); + } + map32.put("query", selectValue); + map22.put(field, map32); + map42.put("match_phrase_prefix", map22); + queryMapJson.add(map42); + + // match分词匹配查询 + // 情况举例:用户可能他知道开头的前缀几个字,知道中间的几个字 + Map map23 = new HashMap<>(); + Map map33 = new HashMap<>(); + Map map43 = new HashMap<>(); + if ("title".equals(field)) { + map33.put("boost", 10); + } else if ("content".equals(field)) { + map33.put("boost", 0.01); + } + map33.put("query", selectValue); + map23.put(field, map33); + map43.put("match", map23); + queryMapJson.add(map43); + + // wildcard模糊查询 + // 情况举例:用户只记得中间那段字 + Map map24 = new HashMap<>(); + Map map44 = new HashMap<>(); + map24.put(field, "*" + selectValue + "*"); + map44.put("wildcard", map24); + queryMapJson.add(map44); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/TaskStatisticsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/TaskStatisticsServiceImpl.java new file mode 100644 index 000000000..94e4ddba0 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/TaskStatisticsServiceImpl.java @@ -0,0 +1,135 @@ +package com.jero.modules.phone.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.api.vo.Result; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.phone.service.ITaskStatisticsService; +import com.jero.modules.project.enums.CertificationFlowNodeEnum; +import com.jero.modules.project.enums.TaskStatusEnum; +import com.jero.modules.system.util.StringUtils; +import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; +import com.jero.modules.todoCenter.entity.ProcessInfoEO; +import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService; +import com.jero.modules.todoCenter.service.IProcessInfoEOService; +import com.jero.modules.wkflow.enums.FlowTypeEnum; +import org.apache.commons.collections.CollectionUtils; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class TaskStatisticsServiceImpl implements ITaskStatisticsService { + + @Autowired + private IProcessInfoEOService processInfoEOService; + @Autowired + private IProcessInfoDetailEOService processInfoDetailEOService; + + @Override + public Result> getRegulatoryCertificationProcessDataCount() { + Map result = new HashMap<>(); + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + QueryWrapper pidQueryWrap = new QueryWrapper<>(); + pidQueryWrap.lambda().eq(ProcessInfoDetailEO::getUserId, currentUser.getId()); + pidQueryWrap.lambda().eq(ProcessInfoDetailEO::getStatus, TaskStatusEnum.NOT_DONE.getValue()); + List pidEoList = this.processInfoDetailEOService.list(pidQueryWrap); + + int publishingCount = 0; + int designCount = 0; + int verifyCount = 0; + int preHomoCount = 0; + int technologyEvaluationCount = 0; + int opinionCollectionCount = 0; + + if (CollectionUtils.isNotEmpty(pidEoList)) { + List processInfoIdList = pidEoList.stream().map(ProcessInfoDetailEO::getProcessInfoId).distinct().collect(Collectors.toList()); + QueryWrapper piQueryWrap = new QueryWrapper<>(); + piQueryWrap.lambda().in(ProcessInfoEO::getId, processInfoIdList); + List piEoList = this.processInfoEOService.list(piQueryWrap); + if (CollectionUtils.isNotEmpty(piEoList)) { + List publishingList = piEoList.stream().filter(piEo -> { + return StringUtils.equals(piEo.getFlowType(), FlowTypeEnum.QDQR.getValue()); + }).collect(Collectors.toList()); + publishingCount = publishingList.size(); + + List designList = piEoList.stream().filter(piEo -> { + return StringUtils.equals(piEo.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue()); + }).collect(Collectors.toList()); + designCount = designList.size(); + + List verifyList = piEoList.stream().filter(piEo -> { + return StringUtils.equals(piEo.getFlowType(), FlowTypeEnum.YZFHXSCLC.getValue()); + }).collect(Collectors.toList()); + verifyCount = verifyList.size(); + + List preHomoList = piEoList.stream().filter(piEo -> { + return StringUtils.equals(piEo.getFlowType(), FlowTypeEnum.CERTIFICATION_LC.getValue()); + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(preHomoList)) { + preHomoCount = this.getPreHomoCount(pidEoList, preHomoList); + } + + List technologyEvaluationList = piEoList.stream().filter(piEo -> { + return StringUtils.equals(piEo.getFlowType(), FlowTypeEnum.FGJSPG.getValue()); + }).collect(Collectors.toList()); + technologyEvaluationCount = technologyEvaluationList.size(); + + List opinionCollectionList = piEoList.stream().filter(piEo -> { + return StringUtils.equals(piEo.getFlowType(), FlowTypeEnum.FGYJSJLC.getValue()); + }).collect(Collectors.toList()); + opinionCollectionCount = opinionCollectionList.size(); + } + } + + result.put("publishingCount", publishingCount); + result.put("designCount", designCount); + result.put("verifyCount", verifyCount); + result.put("preHomoCount", preHomoCount); + result.put("technologyEvaluationCount", technologyEvaluationCount); + result.put("opinionCollectionCount", opinionCollectionCount); + return Result.OK(result); + } + + private int getPreHomoCount(List pidEoList, List preHomoList) { + int preHomoCount = 0; + for (ProcessInfoEO piEo : preHomoList) { + List pidEosTemp = pidEoList.stream().filter(pidEo -> { + boolean flag = false; + if (StringUtils.equals(piEo.getId(), pidEo.getProcessInfoId())) { + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if (CollectionUtils.isNotEmpty(pidEosTemp)) { + List zrrjsrwPidEos = pidEosTemp.stream().filter(pidEo -> { + return StringUtils.equals(pidEo.getTaskDefinitionKey(), CertificationFlowNodeEnum.ZRRJSRW.getKey()); + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(zrrjsrwPidEos)) { + preHomoCount += 1; + } + + List rzgcsscPidEos = pidEosTemp.stream().filter(pidEo -> { + return StringUtils.equals(pidEo.getTaskDefinitionKey(), CertificationFlowNodeEnum.RZGCSSC.getKey()); + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(rzgcsscPidEos)) { + preHomoCount += 1; + } + + List zrrtjrwPidEos = pidEosTemp.stream().filter(pidEo -> { + return StringUtils.equals(pidEo.getTaskDefinitionKey(), CertificationFlowNodeEnum.ZRRTJRW.getKey()); + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(zrrtjrwPidEos)) { + preHomoCount += 1; + } + } + } + return preHomoCount; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/ToDoCenterServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/ToDoCenterServiceImpl.java new file mode 100644 index 000000000..dbe384066 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/phone/service/impl/ToDoCenterServiceImpl.java @@ -0,0 +1,486 @@ +package com.jero.modules.phone.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.api.vo.Result; +import com.jero.common.constant.enums.CutEnum; +import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.DateUtils; +import com.jero.modules.phone.service.IToDoCenterService; +import com.jero.modules.project.entity.ProjectCertificationInventoryEO; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.entity.ProjectTaskInventoryDetailEO; +import com.jero.modules.project.enums.CertificationFlowNodeEnum; +import com.jero.modules.project.enums.CertificationInventoryFlowStatusEnum; +import com.jero.modules.project.enums.ProjectInventoryFieldEnum; +import com.jero.modules.project.enums.TaskStatusEnum; +import com.jero.modules.project.service.IProjectCertificationInventoryEOService; +import com.jero.modules.project.service.IProjectLawsInventoryEOService; +import com.jero.modules.project.service.IProjectTaskInventoryDetailEOService; +import com.jero.modules.system.entity.SysCategory; +import com.jero.modules.system.entity.SysDictItem; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.enums.ProjectRoleEnum; +import com.jero.modules.system.service.ISysCategoryService; +import com.jero.modules.system.service.ISysUserService; +import com.jero.modules.system.service.impl.SysDictItemServiceImpl; +import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; +import com.jero.modules.todoCenter.enums.DesignComplianceFlowNodeKeyEnum; +import com.jero.modules.todoCenter.enums.TodoCenterStatusEnum; +import com.jero.modules.todoCenter.enums.VerifyComplianceFlowNodeKeyEnum; +import com.jero.modules.todoCenter.mapper.ProcessInfoEOMapper; +import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService; +import com.jero.modules.todoCenter.service.IProcessInfoEOService; +import com.jero.modules.todoCenter.vo.ProcessInfoVO; +import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum; +import com.jero.modules.wkflow.enums.FlowTypeEnum; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class ToDoCenterServiceImpl implements IToDoCenterService { + + @Autowired + private ProcessInfoEOMapper processInfoEOMapper; + @Autowired + private IProcessInfoEOService processInfoEOService; + @Autowired + private IProcessInfoDetailEOService processInfoDetailEOService; + @Autowired + private IProjectTaskInventoryDetailEOService projectTaskInventoryDetailEOService; + @Autowired + private ISysUserService sysUserService; + @Autowired + private IProjectLawsInventoryEOService projectLawsInventoryEOService; + @Autowired + private ISysCategoryService sysCategoryService; + @Autowired + private SysDictItemServiceImpl sysDictItemServiceImpl; + @Autowired + private IProjectCertificationInventoryEOService projectCertificationInventoryEOService; + + @Override + public IPage queryTodoTaskPage(Map params) { + String cut = (String) params.get("cut"); + Integer pageNo = Integer.parseInt(params.get("pageNo").toString()); + Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); + + String mobileProcessing = (String) params.get("mobileProcessing"); + Integer monthNum = Integer.parseInt((String) params.get("selectModel")); + if(monthNum > 0){ + // 创建一个Calendar对象,表示当前时间 + Calendar calendar = Calendar.getInstance(); + + // 往后推算日期 + calendar.add(Calendar.MONTH, monthNum); + + // 将时间设置为0点0分0秒 + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + + // 将日期格式化为字符串并输出 + String frontEndTime = DateUtils.date_sdf.get().format(new Date()); + String afterEndTime = DateUtils.date_sdf.get().format(calendar.getTime()); + + params.put("frontEndTime",frontEndTime); + params.put("afterEndTime",afterEndTime); + } + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + List flowTypeList = new ArrayList<>(); + flowTypeList.add(FlowTypeEnum.RWQRLC.getValue()); + flowTypeList.add(FlowTypeEnum.SJFHXSHLC.getValue()); + flowTypeList.add(FlowTypeEnum.YZFHXSCLC.getValue()); + + params.put("flowTypeList", flowTypeList); + params.put("taskStatus", TaskStatusEnum.NOT_DONE.getValue()); + params.put("currentUserId", currentUser.getId()); + + List qdqrFlowTypeValue = new ArrayList<>(); + if(StringUtils.equals(mobileProcessing,YesOrNoEnum.NO.getValue()) || StringUtils.isEmpty(mobileProcessing)){ + qdqrFlowTypeValue.add(FlowTypeEnum.QDQR.getValue()); + } + qdqrFlowTypeValue.add(FlowTypeEnum.CERTIFICATION_LC.getValue()); + params.put("qdqrFlowTypeValue", qdqrFlowTypeValue); + + IPage page = new Page(pageNo, pageSize); + + IPage result = this.processInfoEOMapper.queryPhoneTodoTaskListList(page, params); + List datas = result.getRecords(); + + this.disposeData(cut, datas); + + return result; + } + + private void disposeData(String cut, List datas) { + if (CollectionUtils.isNotEmpty(datas)) { + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + QueryWrapper pidQueryWrap = new QueryWrapper<>(); + pidQueryWrap.lambda().eq(ProcessInfoDetailEO::getFlowType, FlowTypeEnum.CERTIFICATION_LC.getValue()); + pidQueryWrap.lambda().eq(ProcessInfoDetailEO::getUserId, currentUser.getId()); + pidQueryWrap.lambda().eq(ProcessInfoDetailEO::getStatus, TaskStatusEnum.NOT_DONE.getValue()); + List pidEoList = this.processInfoDetailEOService.list(pidQueryWrap); + Iterator datasIt = datas.iterator(); + List datasTemp = new ArrayList<>(); + while (datasIt.hasNext()) { + ProcessInfoVO data = datasIt.next(); + if (StringUtils.equals(data.getFlowType(), FlowTypeEnum.CERTIFICATION_LC.getValue())) { + List pidEos = pidEoList.stream().filter(pidEo -> { + boolean flag = StringUtils.equals(pidEo.getProcessInfoId(), data.getId()); + return flag; + }).collect(Collectors.toList()); + + // 判断当前用户在这个认证流程中 有几个任务。 责任人 接受、责任人 提交交付物、认证工程审批 + if (CollectionUtils.isNotEmpty(pidEos)) { + List zrrjsrwPidEos = pidEos.stream().filter(pidEo -> { + return StringUtils.equals(pidEo.getTaskDefinitionKey(), CertificationFlowNodeEnum.ZRRJSRW.getKey()); + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(zrrjsrwPidEos)) { + ProcessInfoVO processInfoVOTemp = new ProcessInfoVO(); + BeanUtils.copyProperties(data, processInfoVOTemp); + processInfoVOTemp.setTaskDefinitionKey(CertificationFlowNodeEnum.TASK_RESPONSIBILITY_CONFIRMATION.getKey()); + datasTemp.add(processInfoVOTemp); + } + + List rzgcsscPidEos = pidEos.stream().filter(pidEo -> { + return StringUtils.equals(pidEo.getTaskDefinitionKey(), CertificationFlowNodeEnum.RZGCSSC.getKey()); + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(rzgcsscPidEos)) { + ProcessInfoVO processInfoVOTemp = new ProcessInfoVO(); + BeanUtils.copyProperties(data, processInfoVOTemp); + processInfoVOTemp.setTaskDefinitionKey(CertificationFlowNodeEnum.TASK_REVIEW.getKey()); + datasTemp.add(processInfoVOTemp); + } + + List zrrtjrwPidEos = pidEos.stream().filter(pidEo -> { + return StringUtils.equals(pidEo.getTaskDefinitionKey(), CertificationFlowNodeEnum.ZRRTJRW.getKey()); + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(zrrtjrwPidEos)) { + ProcessInfoVO processInfoVOTemp = new ProcessInfoVO(); + BeanUtils.copyProperties(data, processInfoVOTemp); + processInfoVOTemp.setTaskDefinitionKey(CertificationFlowNodeEnum.TASK_HANDLING.getKey()); + datasTemp.add(processInfoVOTemp); + } + } + datasIt.remove(); + } + } + datas.addAll(datasTemp); + this.disposeData(datas, cut, TaskStatusEnum.NOT_DONE.getValue()); + } + } + + public void disposeData(List datas, String cut, String taskStatus) { + if (CollectionUtils.isNotEmpty(datas)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date currentDate = new Date(); + try { + currentDate = sdf.parse(sdf.format(currentDate)); + } catch (ParseException e) { + e.printStackTrace(); + } + + List processInfoIdList = datas.stream().map(ProcessInfoVO::getId).distinct().collect(Collectors.toList()); + + QueryWrapper processInfoDetailQueryWrap = new QueryWrapper<>(); + processInfoDetailQueryWrap.lambda().in(ProcessInfoDetailEO::getProcessInfoId, processInfoIdList); + List processInfoDetailEOList = this.processInfoDetailEOService.list(processInfoDetailQueryWrap); + + Map> lastAssigneeDetailMap = processInfoDetailEOList.stream().filter(processInfoDetailEO -> { + boolean flag = false; + if (StringUtils.equals(processInfoDetailEO.getStatus(), TaskStatusEnum.HAVE_DONE.getValue()) && processInfoDetailEO.getSubmitTime() != null) { + flag = true; + } + return flag; + }).collect(Collectors.groupingBy(ProcessInfoDetailEO::getProcessInfoId)); + + Map> assigneeDetailMap = processInfoDetailEOList.stream().filter(processInfoDetailEO -> { + boolean flag = false; + if (StringUtils.equals(processInfoDetailEO.getStatus(), TaskStatusEnum.NOT_DONE.getValue()) && processInfoDetailEO.getSubmitTime() == null) { + flag = true; + } + return flag; + }).collect(Collectors.groupingBy(ProcessInfoDetailEO::getProcessInfoId)); + //设置责任人反馈意见 + this.processInfoEOService.setPersonChargeFeedback(datas); + + List userIdList = new ArrayList<>(); + datas.forEach(data -> { + String standardInfo = data.getStandardInfo(); + if (StringUtils.isNotBlank(standardInfo)) { + String standardInfoTemp = standardInfo.replaceAll("、", " "); + data.setStandardInfo(standardInfoTemp); + } + //设置上一个操作人。 + for (Map.Entry> detailMap : lastAssigneeDetailMap.entrySet()) { + if (StringUtils.equals(data.getId(), detailMap.getKey())) { + List detailEOList = detailMap.getValue(); + + Collections.sort(detailEOList, new Comparator() { + @Override + public int compare(ProcessInfoDetailEO o1, ProcessInfoDetailEO o2) { + return o2.getSubmitTime().compareTo(o1.getSubmitTime()); + } + }); + + String userId = detailEOList.get(0).getUserId(); + userIdList.add(userId); + data.setLastAssignee(userId); + break; + } + } + + //设置当前操作人 + for (Map.Entry> detailMap : assigneeDetailMap.entrySet()) { + if (StringUtils.equals(data.getId(), detailMap.getKey())) { + List detailEOList = detailMap.getValue(); + data.setAssignee(detailEOList.stream().map(ProcessInfoDetailEO::getUserId).collect(Collectors.joining(","))); + userIdList.addAll(detailEOList.stream().map(ProcessInfoDetailEO::getUserId).collect(Collectors.toList())); + + // 如果上一操作人是空,则证明该流程当前处理人也是上一个操作人。 + if (StringUtils.isEmpty(data.getLastAssignee())) { + List collect = detailEOList.stream().filter(detailEO -> { + return (StringUtils.equals(detailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey()) + || StringUtils.equals(detailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.SPONSOR_REVIEW.getKey())); + }).map(ProcessInfoDetailEO::getUserId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collect)) { + data.setLastAssignee(collect.get(0)); + } + } + break; + } + } + }); + + List taskIdList = datas.stream().map(ProcessInfoVO::getTaskId).distinct().collect(Collectors.toList()); + List taskInventoryDetailList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(taskIdList)) { + QueryWrapper taskInventoryDetailQueryWrap = new QueryWrapper<>(); + taskInventoryDetailQueryWrap.lambda().in(ProjectTaskInventoryDetailEO::getTaskId, taskIdList); + taskInventoryDetailList = this.projectTaskInventoryDetailEOService.list(taskInventoryDetailQueryWrap); + } + List finalTaskInventoryDetailList = taskInventoryDetailList; + + List sysUserList = this.sysUserService.querySysUserListByIdList(userIdList); + + Date finalCurrentDate = currentDate; + datas.forEach(data -> { + if (StringUtils.isNotEmpty(data.getFlowType())) { + data.setFlowTypeShow(FlowTypeEnum.getTextByValue(data.getFlowType(), cut)); + } + if (StringUtils.isNotEmpty(data.getStatus())) { + data.setStatusShow(TodoCenterStatusEnum.getTextByValue(data.getStatus(), cut)); + } + + if (CollectionUtils.isNotEmpty(sysUserList)) { + if (StringUtils.isNotEmpty(data.getLastAssignee())) { + String lastUserName = sysUserList.stream().filter(sysUser -> { + boolean flag = false; + if (StringUtils.equals(data.getLastAssignee(), sysUser.getId())) { + flag = true; + } + return flag; + }).map(SysUser::getUsername).collect(Collectors.joining(",")); + data.setLastAssigneeName(lastUserName); + } + //如果流程没有结束,才可以展示当前处理人。 + if (!StringUtils.equals(data.getStatus(), TodoCenterStatusEnum.COMPLETED.getValue())) { + if (StringUtils.isNotEmpty(data.getAssignee())) { + String[] assigneeArr = data.getAssignee().split(","); + String currentUserName = sysUserList.stream().filter(sysUser -> { + boolean flag = false; + for (String assignee : assigneeArr) { + if (StringUtils.equals(assignee, sysUser.getId())) { + flag = true; + } + } + return flag; + }).map(SysUser::getUsername).collect(Collectors.joining(",")); + data.setAssigneeName(currentUserName); + } + } + } + + //设置任务清单明细表id + if (CollectionUtils.isNotEmpty(finalTaskInventoryDetailList)) { + String primaryKeyId = finalTaskInventoryDetailList.stream().filter(taskInventoryDetail -> { + boolean flag = false; + if (StringUtils.equals(data.getTaskId(), taskInventoryDetail.getTaskId())) { + flag = true; + } + return flag; + }).map(ProjectTaskInventoryDetailEO::getId).collect(Collectors.joining(",")); + data.setPrimaryKeyId(primaryKeyId); + } + + //判断当前任务是否过期 + Date endTime = data.getEndTime(); + if (ObjectUtils.isNotEmpty(endTime)) { + try { + endTime = sdf.parse(sdf.format(endTime)); + } catch (ParseException e) { + e.printStackTrace(); + } + if (finalCurrentDate.after(endTime) || finalCurrentDate.equals(endTime)) { + data.setEndTimePastDueFlag(true); + } + } + }); + + List createByUserIdList = datas.stream().map(ProcessInfoVO::getCreateBy).distinct().collect(Collectors.toList()); + List createByUserList = this.sysUserService.querySysUserListByIdList(createByUserIdList); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + List projectLawsInventoryIdList = datas.stream().filter(data -> { + boolean flag = false; + if (StringUtils.isNotEmpty(data.getProjectLawsInventoryId())) { + flag = true; + } + return flag; + }).map(ProcessInfoVO::getProjectLawsInventoryId).collect(Collectors.toList()); + + List projectLawsInventoryEOList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(projectLawsInventoryIdList)) { + QueryWrapper lawsInventoryEOQueryWrapper = new QueryWrapper<>(); + lawsInventoryEOQueryWrapper.lambda().in(ProjectLawsInventoryEO::getId, projectLawsInventoryIdList); + projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrapper); + } + List categoryList = this.sysCategoryService.list(); + + List sysDictItems = this.sysDictItemServiceImpl.getBaseMapper().selectItemsAll(); + for (ProcessInfoVO data : datas) { + if (CollectionUtils.isNotEmpty(projectLawsInventoryEOList)) { + // 处理展示的交付物类型信息 + String projectLawsInventoryId = data.getProjectLawsInventoryId(); + String deliverableTypeName = this.projectLawsInventoryEOService.getDeliverableTypeNameById(projectLawsInventoryId, cut, data.getFlowType(), projectLawsInventoryEOList, categoryList); + data.setDeliverableTypeName(deliverableTypeName); + + // 处理责任领域展示信息 + String dutyTerritoryName = this.projectLawsInventoryEOService.getDutyTerritoryNameById(projectLawsInventoryId, cut, projectLawsInventoryEOList, sysDictItems, ProjectInventoryFieldEnum.DUTY_TERRITORY.getValue()); + data.setDutyTerritoryName(dutyTerritoryName); + } + } + datas.forEach(data -> { + // 设置发起人的名称 + if (CollectionUtils.isNotEmpty(createByUserList) && StringUtils.isNotEmpty(data.getCreateBy())) { + String createBy = createByUserList.stream().filter(createByUser -> { + boolean flag = false; + if (StringUtils.equals(createByUser.getId(), data.getCreateBy())) { + flag = true; + } + return flag; + }).map(SysUser::getUsername).distinct().collect(Collectors.joining(",")); + data.setCreateBy(createBy); + } + + if (!StringUtils.equals(data.getFlowType(), FlowTypeEnum.QDQR.getValue()) && !StringUtils.equals(data.getFlowType(), FlowTypeEnum.CERTIFICATION_LC.getValue())) { + // 获取当前用户所拥有的待办任务信息 + List currentUserProcessInfoDetailInfos = processInfoDetailEOList.stream().filter(detail -> { + boolean flag = false; + if (StringUtils.isNotEmpty(taskStatus)) { + flag = (StringUtils.equals(detail.getProcessInfoId(), data.getId()) && StringUtils.equals(detail.getUserId(), currentUser.getId()) && StringUtils.equals(taskStatus, detail.getStatus())); + } else { + flag = (StringUtils.equals(detail.getProcessInfoId(), data.getId()) && StringUtils.equals(detail.getUserId(), currentUser.getId())); + } + return flag; + }).collect(Collectors.toList()); + + if (CollectionUtils.isNotEmpty(currentUserProcessInfoDetailInfos)) { + // 设置taskId + data.setTaskId(currentUserProcessInfoDetailInfos.get(0).getTaskId()); + // 设置taskDefinitionKey + data.setTaskDefinitionKey(currentUserProcessInfoDetailInfos.get(0).getTaskDefinitionKey()); + String taskDefinitionKeyName = ""; + if (StringUtils.equals(data.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())) { + taskDefinitionKeyName = DesignComplianceFlowNodeKeyEnum.getTextByValue(currentUserProcessInfoDetailInfos.get(0).getTaskDefinitionKey(), cut); + } else if (StringUtils.equals(data.getFlowType(), FlowTypeEnum.YZFHXSCLC.getValue())) { + taskDefinitionKeyName = VerifyComplianceFlowNodeKeyEnum.getTextByValue(currentUserProcessInfoDetailInfos.get(0).getTaskDefinitionKey(), cut); + } + data.setTaskDefinitionKeyName(taskDefinitionKeyName); + } + } + // 如果是清单确认流程,将任务节点设置为 清单校核:Checklist verification + if (StringUtils.equals(data.getFlowType(), FlowTypeEnum.QDQR.getValue())) { + String taskDefinitionKeyName = "清单校核"; + if (StringUtils.equals(cut, CutEnum.EN.getValue())) { + taskDefinitionKeyName = "Checklist verification"; + } + data.setTaskDefinitionKeyName(taskDefinitionKeyName); + } + // 如果是Pre-Homo流程 + if (StringUtils.equals(data.getFlowType(), FlowTypeEnum.CERTIFICATION_LC.getValue()) && data.getEndTime() != null) { + data.setTaskDefinitionKeyName(CertificationFlowNodeEnum.getTextByValue(data.getTaskDefinitionKey(), cut)); + } + }); + } + } + + + @Override + public IPage queryPreHomoPage(Map params) { + ProjectCertificationInventoryEO pciEo = new ProjectCertificationInventoryEO(); + + String cut = (String) params.get("cut"); + String projectLibraryId = (String) params.get("projectLibraryId"); + String taskDefinitionKey = (String) params.get("taskDefinitionKey"); + Integer pageNo = Integer.parseInt((String) params.get("pageNo")); + Integer pageSize = Integer.parseInt((String) params.get("pageSize")); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId, projectLibraryId); + queryWrapper.orderByDesc("create_time"); + + if (StringUtils.equals(taskDefinitionKey, CertificationFlowNodeEnum.TASK_RESPONSIBILITY_CONFIRMATION.getKey())) { + pciEo.setRoleCode(ProjectRoleEnum.PERSON_LIABLE.getValue()); + queryWrapper.lambda().eq(ProjectCertificationInventoryEO::getFlowStatus, CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()); + } else if (StringUtils.equals(taskDefinitionKey, CertificationFlowNodeEnum.TASK_HANDLING.getKey())) { + pciEo.setRoleCode(ProjectRoleEnum.PERSON_LIABLE.getValue()); + queryWrapper.and(queryWrap -> { + queryWrap.lambda().eq(ProjectCertificationInventoryEO::getFlowStatus, CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()); + queryWrap.or().lambda().eq(ProjectCertificationInventoryEO::getFlowStatus, CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue()); + }); + } else if (StringUtils.equals(taskDefinitionKey, CertificationFlowNodeEnum.TASK_REVIEW.getKey())) { + pciEo.setRoleCode(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue()); + queryWrapper.lambda().eq(ProjectCertificationInventoryEO::getFlowStatus, CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()); + } + + Page page = new Page(pageNo, pageSize); + IPage pageList = this.projectCertificationInventoryEOService.queryPage(queryWrapper, page, pciEo, cut); + return pageList; + } + + @Override + public Result queryProjectCertificationInventoryById(Map params) { + String id = (String) params.get("id"); + String cut = (String) params.get("cut"); + if (StringUtils.isEmpty(id)) { + throw new JeroBootException("id不能为空,请检查!"); + } + + ProjectCertificationInventoryEO pciEo = this.projectCertificationInventoryEOService.getById(id); + if (ObjectUtils.isEmpty(pciEo)) { + return Result.error("未找到对应数据"); + } + + List pciEoList = new ArrayList<>(); + pciEoList.add(pciEo); + this.projectCertificationInventoryEOService.disposeData(pciEoList, cut); + return Result.OK(pciEoList.get(0)); + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java index 85b905b73..1efb0c122 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java @@ -23,6 +23,8 @@ import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.message.websocket.WebSocket; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; +import com.jero.modules.phone.enums.BrowseTypeEnum; +import com.jero.modules.phone.service.IRecentBrowseService; import com.jero.modules.problemKnowledgeBase.entity.*; import com.jero.modules.problemKnowledgeBase.enums.CollectStatusEnum; import com.jero.modules.problemKnowledgeBase.enums.PraiseStatusEnum; @@ -41,6 +43,7 @@ import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.util.StringUtils; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; import org.jsoup.Jsoup; @@ -98,6 +101,8 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl problemKnowledgeBaseEOList = new ArrayList<>(); - problemKnowledgeBaseEOList.add(problemKnowledgeBaseEO); + if (ObjectUtils.isNotEmpty(problemKnowledgeBaseEO)) { + problemKnowledgeBaseEOList.add(problemKnowledgeBaseEO); + } this.disposeData(problemKnowledgeBaseEOList,cut); if (CollectionUtils.isNotEmpty(problemKnowledgeBaseEOList)) { problemKnowledgeBaseEO = problemKnowledgeBaseEOList.get(0); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index 5a7b00d80..c30153d4e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -1220,7 +1220,6 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl userIdList = processInfoDetailEOList.stream().map(ProcessInfoDetailEO::getUserId).distinct().collect(Collectors.toList()); @@ -1228,6 +1227,10 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl dataIdList = processInfoDetailEOList.stream().map(ProcessInfoDetailEO::getProjectLawsInventoryId).distinct().collect(Collectors.toList()); + removeWrap.lambda().in(ProcessInfoDetailEO::getProjectLawsInventoryId,dataIdList); + } // 删除用户在这个认证清单流程中其它的待办任务 this.processInfoDetailEOService.remove(removeWrap); @@ -2016,6 +2019,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl ids) { removeByIds(ids); + // 删除法规月报浏览记录表信息. + this.recentBrowseService.deleteByBrowseTypeAndBrowseDataIdList(BrowseTypeEnum.FGYB.getValue(),ids); } /** @@ -192,20 +200,20 @@ public class LawsMonthlyReportManageEOServiceImpl extends ServiceImpl stringMap, - String flag){ + String flag, + LawsMonthlyReportManageEO monthlyReportManageEO){ stringMap.put("id", id); stringMap.put("module_type", moduleType); stringMap.put("module_type_flag", ModuleTypeFlagEnum.LAWS_MONTHLY_REPORT.getValue()); // 默认法规月报标识 @@ -259,6 +268,7 @@ public class LawsMonthlyReportManageEOServiceImpl extends ServiceImpl> list = (List>) (((Map) search.get("hits")).get("hits")); List> mapList = new ArrayList<>(); + List stateSysDictItems = this.sysDictItemServiceImpl.selectItemsByDictCode(DictCodeEnum.STATE.getValue()); for (Map map : list) { Map mapSource = (Map) map.get("_source"); Map mapHighlight = (Map) map.get("highlight"); @@ -700,6 +703,28 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { mapSource.put("file_text",""); } } + + String state = (String) mapSource.get("state"); + String state_dictText = ""; + for (SysDictItem dictItem : stateSysDictItems) { + if (StringUtils.equals(dictItem.getItemValue(), state)) { + if (StringUtils.equals(cut, CutEnum.CN.getValue())) { + state_dictText = dictItem.getItemText(); + } else { + state_dictText = dictItem.getEnName(); + } + break; + } + } + + mapSource.put("state_dictText", state_dictText); + + String create_time_str = ""; + if(ObjectUtils.isNotEmpty(mapSource.get("create_time"))){ + create_time_str = DateUtils.formatTime((Long) mapSource.get("create_time")); + } + mapSource.put("create_time_str",create_time_str); + mapList.add(mapSource); } @@ -1442,6 +1467,11 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { mapSource.put("content",""); }*/ } + String create_time_str = ""; + if(ObjectUtils.isNotEmpty(mapSource.get("create_time"))){ + create_time_str = DateUtils.formatTime((Long) mapSource.get("create_time")); + } + mapSource.put("create_time_str",create_time_str); mapList.add(mapSource); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/LawsMonthlyReportSearchServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/LawsMonthlyReportSearchServiceImpl.java index 960f55799..4499e634c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/LawsMonthlyReportSearchServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/LawsMonthlyReportSearchServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.es.JeroElasticsearchTemplate; +import com.jero.common.util.DateUtils; import com.jero.modules.document.enums.SearchEnum; import com.jero.modules.searchcenter.service.ILawsMonthlyReportSearchService; import com.jero.modules.searchcenter.vo.SearchVO; @@ -211,6 +212,11 @@ public class LawsMonthlyReportSearchServiceImpl implements ILawsMonthlyReportSea mapSource.put(key,fieldConyent); } } + String create_time_str = ""; + if(ObjectUtils.isNotEmpty(mapSource.get("create_time"))){ + create_time_str = DateUtils.formatTime((Long) mapSource.get("create_time")); + } + mapSource.put("create_time_str",create_time_str); mapList.add(mapSource); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java index 86b9a32f8..f83950d1c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/ProcessInfoEOMapper.java @@ -37,4 +37,11 @@ public interface ProcessInfoEOMapper extends BaseMapper { * @return */ IPage queryLawsAssessPageList(IPage page, Map params); + + /** + * 手机端-查询待办任务数据 + * @param params + * @return + */ + IPage queryPhoneTodoTaskListList(IPage page, Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml index cb44f30ac..5024555f4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml @@ -33,11 +33,29 @@ and temp.standard_info like CONCAT(CONCAT('%',#{params.standardInfo}),'%') - and temp.flow_type = #{params.flowType} + and temp.flow_type in + + #{item} + and temp.status = #{params.status} + + and ( + temp.end_time >= #{params.frontEndTime} + + and temp.end_time <= #{params.afterEndTime} + + ) + + + + and ( + temp.standard_info like CONCAT(CONCAT('%',#{params.phoneQueryValue}),'%') + or temp.project_name like CONCAT(CONCAT('%',#{params.phoneQueryValue}),'%') + ) + @@ -374,4 +392,161 @@ order by temp.end_time desc + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java index b0bcd234b..c0c5d82da 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/IProcessInfoEOService.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; import com.jero.modules.todoCenter.entity.ProcessInfoEO; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.todoCenter.vo.ProcessInfoVO; + import java.util.List; import java.util.Map; @@ -126,4 +128,8 @@ public interface IProcessInfoEOService extends IService { * @return */ Result complianceDataMigration(Map params); + + void disposeData(List datas, String cut, String taskStatus); + + public void setPersonChargeFeedback(List datas); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java index 01c1ba96f..1a4c5a5aa 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java @@ -528,6 +528,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl datas, String cut, String taskStatus){ if(CollectionUtils.isNotEmpty(datas)){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @@ -847,6 +848,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl datas){ //符合性流程实例id List complianceProcessPrcIdList = datas.stream().filter(data -> { diff --git a/jero-web/package-lock.json b/jero-web/package-lock.json index e33ef2742..9b7bbe7ae 100644 --- a/jero-web/package-lock.json +++ b/jero-web/package-lock.json @@ -11,6 +11,7 @@ "@antv/data-set": "^0.11.4", "@tinymce/tinymce-vue": "^2.1.0", "@toast-ui/editor": "^2.1.2", + "amfe-flexible": "^2.2.1", "ant-design-vue": "^1.7.2", "area-data": "^5.0.6", "axios": "^0.21.1", @@ -33,6 +34,7 @@ "nprogress": "^0.2.0", "tinymce": "^5.3.2", "v-viewer": "^1.6.4", + "vant": "^2.12.54", "viser-vue": "^2.4.8", "vue": "^2.6.10", "vue-area-linkage": "^5.1.0", @@ -1337,7 +1339,6 @@ "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" } @@ -1718,11 +1719,20 @@ "node": ">= 8" } }, + "node_modules/@vant/icons": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz", + "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==" + }, + "node_modules/@vant/popperjs": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz", + "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==" + }, "node_modules/@vue/babel-helper-vue-jsx-merge-props": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", - "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", - "dev": true + "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==" }, "node_modules/@vue/babel-plugin-transform-vue-jsx": { "version": "1.2.1", @@ -2957,6 +2967,11 @@ "node": ">=0.4.2" } }, + "node_modules/amfe-flexible": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/amfe-flexible/-/amfe-flexible-2.2.1.tgz", + "integrity": "sha512-L2VfvDzoETBjhRptg5u/IUuzHSuxm22JpSRb404p/TBGeRfwWmmNEbB+TFPIP/sS/+pbM18bCFH9QnMojLuPNw==" + }, "node_modules/ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", @@ -16596,8 +16611,7 @@ "node_modules/regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" }, "node_modules/regenerator-transform": { "version": "0.10.1", @@ -19224,6 +19238,21 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/vant": { + "version": "2.12.54", + "resolved": "https://registry.npmmirror.com/vant/-/vant-2.12.54.tgz", + "integrity": "sha512-t7DCiLxNosDrg0Jm5EY9p0A5cAMo5OadmizbYtPEc0ru+OJKEa3kcfxtKIK5on7ZPqoOkyYJt8e6BQ1VDMPsrg==", + "dependencies": { + "@babel/runtime": "7.x", + "@vant/icons": "^1.7.1", + "@vant/popperjs": "^1.1.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "vue-lazyload": "1.2.3" + }, + "peerDependencies": { + "vue": ">= 2.6.0" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -19401,6 +19430,11 @@ "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.26.8.tgz", "integrity": "sha512-BN2OXolO15AKS95yNF8oOtARibaO6RxyKkAYNV4XpOmL7S4eVZYMIDtyvDv+XGZaiUmBJSH9mdNqzexvGMnK2A==" }, + "node_modules/vue-lazyload": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.2.3.tgz", + "integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g==" + }, "node_modules/vue-loader": { "version": "15.9.6", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.6.tgz", @@ -22253,7 +22287,6 @@ "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -22602,11 +22635,20 @@ } } }, + "@vant/icons": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz", + "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==" + }, + "@vant/popperjs": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz", + "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==" + }, "@vue/babel-helper-vue-jsx-merge-props": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", - "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", - "dev": true + "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==" }, "@vue/babel-plugin-transform-vue-jsx": { "version": "1.2.1", @@ -23666,6 +23708,11 @@ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, + "amfe-flexible": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/amfe-flexible/-/amfe-flexible-2.2.1.tgz", + "integrity": "sha512-L2VfvDzoETBjhRptg5u/IUuzHSuxm22JpSRb404p/TBGeRfwWmmNEbB+TFPIP/sS/+pbM18bCFH9QnMojLuPNw==" + }, "ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", @@ -35155,8 +35202,7 @@ "regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" }, "regenerator-transform": { "version": "0.10.1", @@ -37319,6 +37365,18 @@ "spdx-expression-parse": "^3.0.0" } }, + "vant": { + "version": "2.12.54", + "resolved": "https://registry.npmmirror.com/vant/-/vant-2.12.54.tgz", + "integrity": "sha512-t7DCiLxNosDrg0Jm5EY9p0A5cAMo5OadmizbYtPEc0ru+OJKEa3kcfxtKIK5on7ZPqoOkyYJt8e6BQ1VDMPsrg==", + "requires": { + "@babel/runtime": "7.x", + "@vant/icons": "^1.7.1", + "@vant/popperjs": "^1.1.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "vue-lazyload": "1.2.3" + } + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -37470,6 +37528,11 @@ "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.26.8.tgz", "integrity": "sha512-BN2OXolO15AKS95yNF8oOtARibaO6RxyKkAYNV4XpOmL7S4eVZYMIDtyvDv+XGZaiUmBJSH9mdNqzexvGMnK2A==" }, + "vue-lazyload": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.2.3.tgz", + "integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g==" + }, "vue-loader": { "version": "15.9.6", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.6.tgz", diff --git a/jero-web/package.json b/jero-web/package.json index 1cd46fe3c..cc4cfe967 100644 --- a/jero-web/package.json +++ b/jero-web/package.json @@ -13,6 +13,7 @@ "@antv/data-set": "^0.11.4", "@tinymce/tinymce-vue": "^2.1.0", "@toast-ui/editor": "^2.1.2", + "amfe-flexible": "^2.2.1", "ant-design-vue": "^1.7.2", "area-data": "^5.0.6", "axios": "^0.21.1", @@ -35,6 +36,7 @@ "nprogress": "^0.2.0", "tinymce": "^5.3.2", "v-viewer": "^1.6.4", + "vant": "^2.12.54", "viser-vue": "^2.4.8", "vue": "^2.6.10", "vue-area-linkage": "^5.1.0", diff --git a/jero-web/public/index.html b/jero-web/public/index.html index a25deeb75..37f7a397c 100644 --- a/jero-web/public/index.html +++ b/jero-web/public/index.html @@ -4,7 +4,8 @@ - + + 蔚来全球法规平台 diff --git a/jero-web/src/assets/dianzan.png b/jero-web/src/assets/dianzan.png new file mode 100644 index 000000000..cdd7f72c3 Binary files /dev/null and b/jero-web/src/assets/dianzan.png differ diff --git a/jero-web/src/assets/icon_assign.png b/jero-web/src/assets/icon_assign.png new file mode 100644 index 000000000..59dc59b04 Binary files /dev/null and b/jero-web/src/assets/icon_assign.png differ diff --git a/jero-web/src/assets/icon_contact.png b/jero-web/src/assets/icon_contact.png new file mode 100644 index 000000000..716b8e5a1 Binary files /dev/null and b/jero-web/src/assets/icon_contact.png differ diff --git a/jero-web/src/assets/icon_eye.png b/jero-web/src/assets/icon_eye.png new file mode 100644 index 000000000..120cf023c Binary files /dev/null and b/jero-web/src/assets/icon_eye.png differ diff --git a/jero-web/src/assets/icon_kan.png b/jero-web/src/assets/icon_kan.png new file mode 100644 index 000000000..b9d4003e8 Binary files /dev/null and b/jero-web/src/assets/icon_kan.png differ diff --git a/jero-web/src/assets/icon_link.png b/jero-web/src/assets/icon_link.png new file mode 100644 index 000000000..99f5bc959 Binary files /dev/null and b/jero-web/src/assets/icon_link.png differ diff --git a/jero-web/src/assets/icon_link_document.png b/jero-web/src/assets/icon_link_document.png new file mode 100644 index 000000000..c23dc978d Binary files /dev/null and b/jero-web/src/assets/icon_link_document.png differ diff --git a/jero-web/src/assets/icon_reply.png b/jero-web/src/assets/icon_reply.png new file mode 100644 index 000000000..da2f572a8 Binary files /dev/null and b/jero-web/src/assets/icon_reply.png differ diff --git a/jero-web/src/assets/icon_rubbish.png b/jero-web/src/assets/icon_rubbish.png new file mode 100644 index 000000000..17db3363c Binary files /dev/null and b/jero-web/src/assets/icon_rubbish.png differ diff --git a/jero-web/src/assets/icon_shoucang.png b/jero-web/src/assets/icon_shoucang.png new file mode 100644 index 000000000..62d5675fa Binary files /dev/null and b/jero-web/src/assets/icon_shoucang.png differ diff --git a/jero-web/src/assets/icon_single_screen.svg b/jero-web/src/assets/icon_single_screen.svg new file mode 100644 index 000000000..df20a10a1 --- /dev/null +++ b/jero-web/src/assets/icon_single_screen.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jero-web/src/assets/icon_star.png b/jero-web/src/assets/icon_star.png new file mode 100644 index 000000000..1e077d163 Binary files /dev/null and b/jero-web/src/assets/icon_star.png differ diff --git a/jero-web/src/assets/icon_star_document.png b/jero-web/src/assets/icon_star_document.png new file mode 100644 index 000000000..580dcb5ab Binary files /dev/null and b/jero-web/src/assets/icon_star_document.png differ diff --git a/jero-web/src/assets/icon_time.png b/jero-web/src/assets/icon_time.png new file mode 100644 index 000000000..6c3109141 Binary files /dev/null and b/jero-web/src/assets/icon_time.png differ diff --git a/jero-web/src/assets/icon_wiki.png b/jero-web/src/assets/icon_wiki.png new file mode 100644 index 000000000..9bdaee314 Binary files /dev/null and b/jero-web/src/assets/icon_wiki.png differ diff --git a/jero-web/src/assets/icon_zan.png b/jero-web/src/assets/icon_zan.png new file mode 100644 index 000000000..52d7783ac Binary files /dev/null and b/jero-web/src/assets/icon_zan.png differ diff --git a/jero-web/src/assets/wendang.png b/jero-web/src/assets/wendang.png new file mode 100644 index 000000000..c776e6a50 Binary files /dev/null and b/jero-web/src/assets/wendang.png differ diff --git a/jero-web/src/assets/xuanzhong.png b/jero-web/src/assets/xuanzhong.png new file mode 100644 index 000000000..1a80db8ae Binary files /dev/null and b/jero-web/src/assets/xuanzhong.png differ diff --git a/jero-web/src/assets/yuebao.png b/jero-web/src/assets/yuebao.png new file mode 100644 index 000000000..b807862c5 Binary files /dev/null and b/jero-web/src/assets/yuebao.png differ diff --git a/jero-web/src/assets/yuyan.png b/jero-web/src/assets/yuyan.png new file mode 100644 index 000000000..f58dfb10a Binary files /dev/null and b/jero-web/src/assets/yuyan.png differ diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 7a5195367..5f58ab1d1 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1851,4 +1851,49 @@ module.exports = { operationguide:'Project operation guide', copyLink:'Copy link', successfulReplication:'Successful replication', + + //手机端 + myCollection:'My Collection', + recentBrowsing:'Recent Browsing', + mySubscription:'My Subscription', + languageSwitching:'Language Switching', + phoneSearch:'search', + taskStatistics:'Task Statistics', + mine:'Mine', + regulatoryCertificationProcess:'Regulatory certification process', + authenticationParameterCollection:'Authentication parameter collection', + regulatoryCertificationProcessData:'Regulatory Certification Process Data', + regulationListIssuance:'Regulation list issuance', + designTheComplianceProcess:'Design the compliance process', + verifyComplianceProcess:'Verify compliance process', + thePreHomeProcess:'Pre-Home Process', + technicalAssessmentOfRegulations:'Technical Assessment Regulations', + legalOpinionCollection:'Legal Opinion Collection', + authenticationParameterCollectionData:'Authentication parameter collection data', + phoneRelatedItems:'Related items', + listHeading:'List heading', + phoneVersionNumber:'Version number', + node:'Node', + goToCheck:'View', + stored:'Stored', + individual:'a ', + document:'document', + treatmentMode:'Treatment Mode', + onlyMobilePhoneAreDisplayed:'Only the tasks that can be handled by the mobile phone are displayed', + phoneReset:'Reset', + noMore:'No More', + loading:'Loading...', + howAboutComment:'How about a comment', + send:'Send', + pleaseProcessThePC:'Please process it on the PC', + clickAndSelect:'Click and select', + phoneCreationTime:'Creation Time', + theCurrentFormatSupportPreview:'The current format does not support preview', + nearlyMonth:'Nearly a month', + nearlyThreeMonths:'Nearly Three Months', + nearlySixMonths:'Nearly Six Months', + nearlyYear:'Nearly a Year', + browsingTime:'Browsing Time', + pleaseViewOnPc:'Please view on PC', + taskHandling:'Task Handling', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 1696e462e..e69f64cba 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1376,6 +1376,1914 @@ module.exports = { regulatoryTechnicalAssessment: '法规技术评估', OpenOne: '公开', Privacy: '私密', + punctuationmark: '只能输入除#号和逗号外的英文标点符号', + created: '创建时间', + updated: '更新时间', + optionDropDownBox: '下拉选择', + attachmentUpload: '附件上传', + textInput: '文本输入', + Paraname: '参数名称', + Parabatch: '参数批次', + freeze: '请选择冻结配置', + deleteNode: '若有文件信息将同步删除,确认删除该条数据?', + HaveReleased: '已发布', + forward: '转发', + areResponsibilityAreaInformationBatch: '确实是否批量修改责任领域信息', + issuedBy: '发布人', + pleaseDecompositionStandardOrder: '请导入或带入至少一条分解标准单', + currentlyTheFirstOneThatCannotMovedUp: '当前已是第一个无法进行上移', + currentlyTheLastOneCannotmovedDown: '当前已是最后一个无法进行下移', + weilaiRegulationMonthlyReport: '蔚来法规月报', + onlyTheDataWhoseStatusNotInitiatedAcceptedChanged: '只能变更清单确认状态为接受并且任务清单状态为未发起或任务清单状态为接受的数据', + thereTitleWhichCannotBeDeleted: '该标题下存在新增内容,不能删除', + industryInformationDynamicTemplate: '行业资讯动态模板', + relatedFields: '相关领域', + relatedFieldsEn: '相关领域(英文)', + source: '来源', + sourceEn: '来源(英文)', + onlyone: '只能输入一个合并分隔符', + theInconsistentSameResponsibility: '所选的数据责任领域不一致;请选择相同的责任领域', + taskConfirmedPersonnelCannotBeSetBatch: '任务确认状态为待确认时无法批量设置人员', + theSelectedDataResponsibilityFieldCannotEmpty: '所选数据责任领域不能为空', + theTaskConfirmationStatusCannot: '只能变更清单确认状态为拒绝或接受、及任务确认状态不能为待确认的数据', + BatchMaintenanceProgress: '批量维护进度', + BatchChangeStatus: '批量修改状态', + CollectinguthenticationParameters: '认证参数收集', + rejectedBy: '拒绝人', + rejectionTime: '拒绝时间', + rejectReason: '拒绝原因', + collectionLegislativeComments: '法规意见收集', + regulatoryAndTechnicalAssessment: '法规技术评估', + listConfirmationRejectionReason: '清单确认驳回原因', + taskConfirmationRejectionReason: '任务确认驳回原因', + reportedDelete: '您将永久删除清单', + reportDelete: ',包括清单参数项及导出历史。一旦删除将无法撤销或恢复。', + confirmdelete: '请确认要删除的清单标题', + Deletetitle: '删除标题', + toConfirmed: '来确认', + confirmtitle: '标题不正确,请重新输入', + batchProcessing: '批量办理', + onlyDataTaskConfirmationProcessSelected: '只能选择流程类型为任务确认流程的数据', + processNode: '流程节点', + personChargeReceivesTheTask: '责任人接收任务', + theResponsiblePersonTaskForTheSecondTime: '责任人二次接收任务', + processNodesAreInconsistentPleaseSelectConsistentData: '流程节点不一致;请选择一致的数据', + exportFileName: '导出文件名称', + initiateSupplementaryProcess: '发起补充流程', + whetherTheDisassemblySheetIncluded: '是否含有拆解单', + inRecentMonths3: '近3个月内', + inRecentMonths6: '近6个月内', + inRecentYear1: '近1年内', + inRecentYear2: '近2年内', + selectAll: '全选', + importLocalDisassemblyOrder: '导入本地拆解单', + notExport: '未导出', + hasBeenExport: '已导出', + firstLevelDirectory: '一级目录', + deselectAll: '取消全选', + classification: '分类', + consistentAssessment: '一致', + viewConsistentAssessment: '查看一致项', + viewVarianceAssessment: '查看差异项', + viewAll: '查看全部', + endProcess: '结束流程', + thereForTheCurrentlySelectedData: '当前所选数据暂无标准分解单', + secondaryDirectory: '二级目录', + OnlyPersonsCanBeSelected: '超出最大上限;最多只能选择100个人员', + projectVersion: '项目版本', + softwareVersion: '认证软件版本', + versionStatistics: '版本统计', + addSubproject: '添加子项目', + Topping: '置顶', + cancelTopping: '取消置顶', + relatedProjectVersion: '相关项目版本', + taskType: '任务类型', + taskStatus: '任务状态', + taskConfirmationHandling: '任务确认办理', + relatedVersion: '相关版本', + filledBy: '待分配填写人', + parameterToBeInitiated: '参数待发起', + listTaskConfirmation: '清单任务确认', + completednum: '待填写', + filledBynum: '待分配填写人', + parameterToBeInitiatednum: '参数待发起', + listToConfirm: '待确认', + toSubmit: '待提交', + toAudit: '待审核', + secondaryDirectory: '二级目录', + OnlyPersonsCanBeSelected: '超出最大上限;最多只能选择100个人员', + projectVersion: '项目版本', + softwareVersion: '认证软件版本', + versionStatistics: '版本统计', + addSubproject: '添加子项目', + Topping: '置顶', + cancelTopping: '取消置顶', + relatedProjectVersion: '相关项目版本', + Importfailure: '导入失败', + CuiBan: '催办', + certificationCategoryNumber: '认证类别编号', + historicalrecord: '历史记录', + Referenceparametercolumn: '引用参数列', + Updateparametercolumn: '更新参数列', + columnfirst: '请先引用参数列', + columnforced: '确认强制撤回?', + brand: '品牌', + allsubitemsitem: '该项目下拥有子项目,是否全部删除', + contactTheFounder: '联系作者', + customize: '列表设置', + customColumn: '自定义列', + afterdate: '在...日期之后', + afterdatein: '在...日期之后(包含)', + beforedate: '在...日期之前', + beforedatein: '在...日期之前(包含)', + inRecentMonthsin6: '近6个月内(已实施)', + batchUpdateDeadline: '批量更新截止时间', + timeInterval: '时间区间', + certificationList: '认证清单', + inspectionItems: '检验项目', + processReset: '流程重置', + configurationItem: '配置项', + DeliverablesResult: '交付结果', + reportNo: '报告编号', + productModel: '产品型号', + nameOfManufacturer: '生产企业名称', + regulationNo: '法规编号', + itemInformation: '条目信息', + modifyHistory: '历史记录', + returnToStudio: '退回至Studio', + Approved: '审批通过', + returnedForApproval: '审批退回', + changeSetting: '修改配置', + referenceDeliverables: '引用交付物', + missionAccepted: '任务接受', + missionRejection: '任务拒绝', + turnToDo: '转办', + initiateTask: '发起任务', + areYouReturnToStudio: '确认退回至studio吗?', + confirmLaunchTask: '确认发起任务?', + conditionsNotMet: '不满足条件', + onlyProcessStatusReturned: '只能退回流程状态为清单待校核和责任人拒绝的数据', + onlyProcessReturned: '只能发起流程状态为清单待校核和责任人拒绝的数据,并且交付物类型、工程接口人、责任人、截止时间不能为空', + confirmToAcceptTheTask: '确认接受任务?', + confirmRejectTask: '确认拒绝任务?', + onlyDataStatusConfirmedSelected: '只能选择流程状态为任务待确认的数据', + onlyDataStatusSubmittedCanBeSelected: '只能选择流程状态为结果待提交的数据', + operationWithoutPermission: '没有权限操作', + data: "的数据", + compliancereport: '生成合规报告', + todocenter: '待办中心', + confirmApproval: '确认通过审查?', + confirmReturnForApproval: '确认退回审查?', + onlyDataStatusResultReviewedCanBeSelected: '只能选择流程状态为结果待审查的数据', + confirmResetProcess: '确认重置流程?', + confirmUrging: '确认催办', + statusthetasistobeconfirmed: '只有清单待校核状态或任务确认状态为待确认时才可以进行撤回', + confirmreturn: '确认退回?', + confirmUrging: '确认催办?', + confirmWithdrawal: '确认撤回?', + onlyListCheckedCanRecalled: '只能撤回流程状态为清单待校核的数据', + onlyDataSelected: '只能选择流程状态为任务待确认、结果待提交、审查退回的数据', + youCannotStatusListToBeReleasedAndApproved: '不能选择流程状态为清单待发布、审查通过的数据', + batchmodify: '是否批量修改', + onlyDataListReleasedAndCertificationReturnCanSelected: '只能选择流程状态为清单待发布和认证退回的数据,并且截止时间不能为空', + type: '类型', + select: '选择', + onlyDataWithProcessStatusDeleted: '只能删除流程状态为清单待发布和审查通过的数据', + complianceCertificationProgram: '合规认证计划', + listPublishing: '清单发布', + responsibilityConfirmation: '责任确认', + designVerification: '设计核查', + getStarted: '摸底开始', + certificationStartOne: '认证开始', + verificationAndVerification: '验证核查', + projectInterfacePersonRegulationEngineerSetting: '工程接口人-法规工程师设置', + projectInterfacePersonCertificationEngineerSetting: '工程接口人-认证工程师设置', + registrationnumber: '产品登记编号', + noticebatch: '《公告》批次', + producttrademark: '产品商标', + productname: '产品名称', + createvehicleandfunctionrecords: '创建车型及功能备案', + citeforrecord: '引用备案', + datamaintenance: '数据维护', + dataimport: '数据导入', + maintenance: '维护', + recordstatus: '备案状态', + filingtime: '备案提交时间', + createanupgradeactivityrecord: '创建升级活动备案', + endUpgrade: '结束升级', + upgraderesult: '升级结果', + upgraderegistrationnumber: '升级登记编号', + basicinformationofvehicletype: '车型基本信息', + onlineupgraderequirements: '在线升级要求', + safetymeasure: '安全措施', + upgradedonline: '可在线升级的系统名称与参数', + beupgradedonline: '可在线升级的驾驶辅助功能名称与参数', + recordparameters: '驾驶辅助系统基础备案参数', + other: '其他', + fillintherecord: '填写记录', + specificrequirements: '具体要求', + relevantverification: '是否开展相关验证', + certifyingmaterials: '证明材料', + aspect: '方面', + havemeasures: '具备措施', + systemclass: '系统类别', + whetheritcanbeupgraded: '是否可升级', + technicalparameters: '升级可能变更的《公告》技术参数(如有)', + architecturetopologydiagram: '系统-电子控制器架构拓扑图(附件需含拓扑图介绍)', + controllerparameter: '控制器参数', + electronic: '电子控制器名称', + electronicController: '电子控制器名称(硬件)', + electroniccontrollername: '电子控制器汽车安全完整性等级(ASIL)', + electroniccontrollerproductionenterprises: '电子控制器生产企业', + electroniccontrollertype: '电子控制器型号', + hardwareversioninformation: '硬件版本信息', + initialsoftwareversionnumber: '初始软件版本号', + inflammatorydata: '初始软件包的完整性验证数据(需统一哈希算法并说明,例如SM3:d192e819d6990624f40e3585106ee134)', + environmentalprotection: '升级是否影响整车安全、节能、环保、防盗等性能', + operatingsystemtype: '操作系统类型', + operatingsystemmanufacturer: '操作系统生产企业', + operatingsystemversion: '操作系统版本号', + addcontroller: '添加控制器', + addsystem: '添加系统', + functionname: '功能名称', + configuration: '配置情况', + drivingautomationlevel: '驾驶自动化级别', + functiondescription: '功能描述', + applicationconditions: '适用条件(边界条件)', + componentname: '部件名称', + fillincontent: '填写内容', + upgradepacketprotectionmeasures: '升级包保护措施', + controlsystem: '说明电子控制系统的软件升级版本(集)的识别方式及保存方式', + Vehicledynamictype: '车辆动力类型', + upgradetargetmodel: '升级目标车型', + thetargetvehicleofthisupgrade: '本次升级的目标车辆', + upgradeimpactassessment: '升级影响评估', + upgradehavechanged: '本次升级的系统名称与参数变化', + auxiliaryupgradehavechanged: '本次升级的驾驶辅助功能名称与参数变化', + usernotification: '用户告知内容及方式', + informationaboutotherupgradetasks: '其他升级任务信息', + totalquantity: '总数量(辆)', + dateofproduction: '生产日期', + VINcodelist: 'VIN码清单', + VINcodeupload: 'VIN码上传', + Tasknode: '任务节点', + Taskresponsibilityrecognition: '任务责任确认', + uploadattachment: '上传附件', + Processhistory: '流程历史', + resultofhandling: '处理结果', + Listoftreatableregulations: '可处理法规列表', + Listofuntractableregulations: '不可处理法规列表', + project: '项目', + Categoryofdeliverables: "交付物类型", + Taskconfirmationresult: '任务确认结果', + Compliancetaskhandling: '符合性任务办理', + resultofhandling: '处理结果', + networksecurityrequirements: '网络安全要求', + upgradefunctionrequirements: '升级功能要求', + usernotificationrequirement: '用户告知要求', + ineffectiveupgrades: '应保护升级包的真实性和完整性,以合理地防止其受到损害,并合理地防止无效升级', + againstunauthorized: '应保护车辆上的软件版本(集),防止未经授权的修改', + communicationinterfacethathasateastusedastandard: '车辆应具备更新软件版本(集)的能力,应通过使用电子通信接口,至少用过标准接口(如OBD端口),以标准化的方式易于读取', + softwareupgrade: '应确保车辆在执行软件升级之前满足先决条件', + Ensurethatsoftware: '应确保只有当车辆有充足电量完成升级过程时,才能执行软件升级(包括可能恢复到以前版本或使车辆进入安全状态所需的电量)', + ifanupgrademayaffectvehiclesafety: '当执行升级可能影响车辆安全时,应在升级执行过程中通过技术手段确保车辆安全', + iftheimplementationoftheupgradaffectsdrivingsafety: '若升级的执行影响驾驶安全,至少应满足:\n' + + '\n' + + '(a)确保升级执行期间无法驾驶车辆;\n' + + '\n' + + '(b)确保驾驶员不能使用任何可能影响车辆安全或成功执行升级的车辆功能', + ensurethatthevehicleisinasafecondition: '若升级失败或中断,车辆能够恢复到以前的可用版本,或确保车辆处于安全状态。', + priortotheexecutionoftheupgrade: '在升级执行前,应告知车辆用户升级信息,告知的信息应包括:\n' + + '\n' + + '(a)升级目的;\n' + + '\n' + + '(b)车辆功能升级所实施的任何变更;\n' + + '\n' + + '(c)完成升级执行的预计时间;\n' + + '\n' + + '(d)升级执行期间可能不可用的任何车辆功能;\n' + + '\n' + + '(e)可能帮助车辆用户安全执行升级的任何指导信息。', + afterperformingtheupgrade: '在执行升级后,车辆应:\n' + + '\n' + + '(a)告知车辆用户车辆升级的结果(成功或失败);\n' + + '\n' + + '(b)若升级成功,告知车辆用户已实施的变更,用户手册(如果适用)的任何相关更新。', + upgradepacketprotectionmeasuresa: '软件版本(集)识别与存储', + otaupgradedsecuritymeasuresforvehicles: '车辆OTA升级安全措施', + authenticityandintegrityprotectionmechanism: '真实性、完整性保护机制(可多选)', + failsafmechanism: '防失效保护机制(可多选)', + vehiclesafetyMeasuresafterUpgradefailure: '升级失败后车辆安全措施(可多选)', + informationsecuritymechanism: '信息安全机制(可多选)', + dynamicsystem: '动力系统', + transmissionsystem: '传动系统', + brakingsystem: '制动系统', + bodysystem: '车身系统', + vehicleenergysystem: '车载能源系统', + forwardcollisionwarning: '前向碰撞预警(FCW)', + laneDepartureWarning: '车道偏离预警(LDW)', + multiareamonitoring: '百区监测(BSD)', + residentfatiguebasket: '驻员疲劳篮澳CDFM)', + automaticemergencybraking: '自动紧急制动(AEB)', + adaptiveCruiseControl: '自适应巡航控制(ACC)', + laneKeepingAssist: '车道保持辅助(LKA)', + intelligentParkingAssistance: '智能泊车辅助(IPA)', + trafficCongestionAssistance: '交通拥堵辅助(TJA)', + millimeterwaveradar: '毫米波雷达', + ultrasonicradar: '超声波雷达', + camera: '摄像头', + asternimage: '倒车影像/360(环视)', + Monocularbinocularmultiocular: '单目/双目/多目', + driverattentionmonitoringsystem: '驾驶员注意力监测系统DMS', + positioningandnavigationsystem: '定位及导航系统', + vehiclecommunicationsystem: '车载通信系统', + driversurveillancecamera: '驾驶员监控摄像头', + drivermonitoringinfraredsensor: '驾驶员监控红外传感器', + vehiclesatellitepositioningequipment: '车载卫星定位设备(接收卫星信号及辅助定位信号的装置,PPP/GNSS/RTK)', + inertialnavigationsystem: '惯性导航系统', + wheelspeedmeter: '轮速计', + highprecisionmap: '高精度地图', + electronicfence: '电子围栏', + signalingdevices: '驾驶辅助系统操纵件、指示器及信号装置', + driverassistancefunctioncontrols: '驾驶辅助功能操纵件', + drivingassistancefunctionindicatorsignaldevice: '驾驶辅助功能指示器/信号装置', + steerinwheelreleaseindicatorsignaldevice: '方向盘脱手提示器/信号装置', + driverattentionindicatorsignaldevice: '驾驶员注意力提醒指示器/信号装置', + automaticDrivingDataRecordingSystem: '自动驾驶数据记录系统(DSSAD)', + eventdatarecordingsystem: '事件数据记录系统(EDR)', + layoutposition: '布置位置', + specificationmodel: '规格型号', + productionenterprise: '生产企业', + qualitativelydescriberelevantplaces: '定性描述相关场所', + systemname: '系统名称', + systemspecificationmodel: '系统规格型号', + systemproductionenterprise: '系统生产企业', + softwareversionnumber: '软件版本号', + softwaredevelopmententerprise: '软件开发企业', + controlname: '操纵件名称', + hardwarespecificationmodel: '硬件规格型号', + nameofindicatorsignaldevice: '指示器/信号装置名称', + otaupgradefunctionmodule: '车端OTA升级功能模块', + upgradePurpose: '升级目的(可多选)', + impactassessmentofupgradeactivities: '升级活动的影响评估', + correspondingvehicletype: '是否变更对应车型的《公告》技术参数', + technicalperformancechanges: '是否涉及产品安全、环保、节能、防盗等技术性能变化', + technicalstandardsandsafetytechnicalconditions: '是否符合国家法律、行政法规、规章规定,以及道路机动车辆公告管理相关国家技术标准及安全技术条件等', + autoautonomousdrivingfunction: '是否涉及汽车自动驾驶功能相关升级', + vehiclepriortothereleaseoftheupgrade: '是否确认升级包与目标车辆配置的兼容性,包括在发布升级之前对目标车辆的最新已知软件和硬件配置进行兼容性评估', + conditionsareupgradesperformed: '如何执行升级以及在何种条件下执行升级', + upgradefailureorinterruption: '升级失败或中断后,车辆采取的安全机制(可多选)', + upgradeactivitiesaffectvehiclesafety: '升级活动是否影响车辆安全', + upgradeactivityprovidesuserconfirmationoptions: '升级活动是否提供用户确认选项', + upgradepackagetest: '升级包测试(可多选)', + reliabilityofonlineupgradeactivities: '是否已验证确认在线升级活动的安全性和可靠性', + adjustmentofchangedBulletinparameters: '已变更《公告》参数的对应调整(如有)', + preupgrade: '升级前', + afterupgrade: '升级后', + nameoftheupgradedelectroniccontroller: '升级的电子控制器名称', + adaptivehardwareversion: '适配的硬件版本', + beforethesoftwareversionupgraded: '软件版本号升级前', + afterthesoftwareversionupgraded: '软件版本号升级后', + beforetheOSversionupgraded: '操作系统版本号升级前', + aftertheoperatingsystemversionupgraded: '操作系统版本号升级后', + initialpackageforintegrityinflammatorydata: '初始软件包的完整性验证数据(需统一哈希算法并说明,例如SM3:d192e819d6990624f40e3585106ee134)', + upgradepackageintegrityverificationdata: '升级包完整性验证数据(需统一哈希算法并说明,例如SM3:d192e819d6990624f40e3585106ee134)', + upgradepackagesize: '升级包大小(MB)', + differentialupgradeornot: '是否差分升级', + upgradedestinationype: '升级目的类型', + functionalchangedescription: '功能变更描述', + variationofapplicableconditions: '适用条件变更', + upgradetheelectroniccontrollerinvolved: '升级涉及的电子控制器', + beforetheupgrade: '升级执行前', + pgradepurpose: '升级目的', + vehiclefunctionalityasaresultofsoftwareupgradeactivities: '由于软件升级活动而导致的车辆功能的任何变化', + estimatedupgradeexecutionTime: '升级执行预计时间(分钟)', + upgradeexecutionperiodasksifthevehicleisusable: '升级执行期问,车辆是否可用', + vehiclefeaturesthatarenotavailableduringupgradeexecution: '升级执行期间不可用的车辆功能', + vehicleusersafelyperformtheupgrade: '帮助车辆用户安全执行升级的任何指导信息', + aftertheupgrade: '升级执行后', + notifiestheuseroftheupgradesuccessorfailure: '告知用户升级成功或失败', + informimplementationchanges: '告知实施的变更', + allupdatestotheusermanualareinformed: '告知了对用户手册的全部更新内容', + usernotificationmode: '告知用户方式(可多选)', + userinformstherelevantfile: '用户告知相关文件', + taskname: '任务名称', + updatereleasetime: '升级发布时间', + upgradeplanexpirationtime: '升级计划截止时间', + theDataYouSelectedContainsSkip: '您所勾选的数据中包含交付物类型为空的数据;请确认是否跳过', + designComplianceProcessFor: '的设计符合性流程', + validationComplianceProcessFor: '的验证符合性流程', + designComplianceProcess: '设计符合性流程', + validationComplianceProcess: '验证符合性流程', + thePersonResponsibleForVerifyingEmpty: '验证符合性流程的责任人不能为空', + theDeadlineComplianceProcessCannotEmpty: '验证符合性流程的截止时间不能为空', + theDeadlineForTheDesignCannotBeEmpty: '设计符合性流程的截止时间不能为空', + thePersonResponsibleForDesignCannotBeBlank: '设计符合性流程的责任人不能为空', + selectTheVehicleTemplate: '选择车型模板', + theNameOfFirm: '企业名称', + productClass: '产品类别', + communicationTerminal: '通信终端(可多选)', + otaUpgradeManagementSystem: '车端OTA升级管理系统', + pleaseStateTheDistribution: '请说明管理系统与电子控制器的集成与分布情况', + next: '下一步', + last: '上一步', + recordmaintenance: '备案维护', + module: '模块', + designComplianceReviewAdmin: '设计符合性审查', + missionAccomplished: '任务完成', + yesisselected: '如选择“有”,请输入', + haveisselected: '如选择“是”,请输入', + forwardXquantity: '如前向x数量、后向x数量、后左x数量、后右x数量等', + upgraderecordnumber: '升级备案编号', + Modelandfunctionrecord: '车型及功能备案《公告》批次', + taskTypeMismatch: '任务类型不匹配', + taskNodeMismatch: '任务节点不匹配', + ifNot: '如无,则填写“无”或“不涉及”', + addfunction: '添加功能', + controllername: '控制器名称', + hardwaremanufacturer: '硬件生产企业', + softwareversion: '软件版本', + returntofill: '返回填写', + onlyDataInTheReminderProcessBanBeProcessed: '只能催办流程中的数据', + expeditionProcess: '催办流程', + thereAreCurrentlyNoRegulationsToHandle: '当前没有可处理的法规', + certificationSubmission: '认证提交', + upgradecompletion: '升级完成情况', + implementedupgrade: '实施的升级是否和备案一致', + numberofvehicles: '完成升级的车辆数', + vehicleshavenotcompletedonlineupgrade: '部分车辆未完在线升级的原因', + cause: '原因', + implementationrecords: '故障处置措施和应急响应实施记录', + onlyDataWithListStatusDraftCanBeDeleted: '只能删除清单状态为草稿的数据', + implementationDateTwo: '实施日期', + reasonForReturn: '退回原因', + pleaseFillInTheInformationTaskProcess: '请填写工程接口人和责任人信息后再发起任务流程', + complianceReporting: '合规报告', + youCanOnlySelectStatusClearSubmit: '只能选择流程状态为清单待提交的数据', + note: '注:附件包括测试项目清单、测试报告、测试标准或技术规范', + format: '支持doc/docx/pdf格式,大小50M以内', + cantTransferToYourself: "不能转办给自己", + noteone: '注:支持CSV格式,大小20M以内,数量1-20个', + notecsv: '注:支持CSV格式,大小20M以内', + theDataYouInitiate: '您所选的数据,均不符合流程发起条件,请重新检查后发起', + dataWithProcessReleasedCannotBeReset: '流程状态为清单待发布的数据不能被重置', + reasonForReturnOfDesignCompliance: '法规工程师退回原因', + notetwo: '\n1、提供变更或扩展后的《公告》批次及证明材料;\n2、应提交验证材料,保障产品符合国家法律法规、技术、标准及技术规范等相关要求;\n', + notethree: '\n提供证明材料\n', + verifyComplianceConfirmReturnReason: '验证符合性确认退回原因', + theDeliverablesCannotReferencedPleaseReselect: '不能引用本项目的交付物,请重新选择', + marketRegulationListMaintenance: '市场法规清单维护', + regulatoryListTemplate: '市场法规清单模板', + gnxtwh: '功能系统维护', + gnxt: '功能系统', + dykzq: '对应控制器', + releaseRegulatoryList: '法规清单发布', + preHomoFlow: 'Pre-Homo流程', + verifyConformanceConfirmation: '验证符合性确认', + designConformanceVerification: '设计符合性确认', + nomorethan: '不能超过10个', + uploadedfilelarger: '文件大于', + marketCertificationList: '市场认证清单', + marketCertificationListDetails: '市场认证清单详情', + andTheProcessStatusTheList: '并且流程状态不能为清单待校核的数据', + pleasefillintherange: '请填写范围', + databasereportingtime: '同步上报库时间', + synchronizationtime: '同步时间', + listToBeReleased: '清单待发布', + listToBeChecked: '任务待发起', + taskToBeConfirmed: '任务待确认', + resultsToBeSubmitted: '结果待提交', + resultsToBeReviewed: '结果待审查', + compliance: '符合', + nonCompliance: '不符合', + toBeTracked: '待追踪', + NA: '不涉及', + reviewAndPass: '审查通过', + reviewAndReturn: '审查退回', + electroniccontrollerparameter: '电子控制器参数', + marketRegulationListDetails: '市场法规清单详情', + marketRegulationList: '市场法规清单', + onlyDataWithTheCurrentCanBeManipulated: '仅能操作责任人为当前用户的数据', + andTheAndTaskPendingConfirmation: '并且流程状态为结果待提交、审查退回、任务待确认', + andProcessStatusIsTaskPendingConfirmation: '并且流程状态为任务待确认', + andPendingSubmissionReviewReturned: '并且流程状态为结果待提交、审查退回', + deliverablesFor: '的交付结果', + dutyPersonRejected: '责任人拒绝', + theCurrentlySelectedDataContainsReviewed: '当前选择的数据中包含审查通过的数据,确认退回吗?', + reviewTheReasonForReturn: '审查退回原因', + reasonForTaskRejection: '任务拒绝原因', + reasonForReturningToStudio: '退回至Studio原因', + theDeliveryProcessCannotBeEmpty: '设计符合性流程的交付物类型不能为空', + theVerificationComplianceProcessCannotBeEmpty: '验证符合性流程的交付物类型不能为空', + deadlineForConfirmationDesignComplianceResponsibility: '设计符合性责任确认截止日期', + deadlineForVerifyingComplianceResponsibilityConfirmation: '验证符合性责任确认截止日期', + batchTaskResponsibilityConfirmation: '批量任务责任确认', + batchComplianceConfirmation: '批量符合性确认', + onlyDataWithApprovedCanCeSelected: '只能选择流程状态为结果待审查、审查通过的数据', + deadlineForResponsibilityConfirmation: '责任确认截止日期', + checkRegulatoryCompletedBefore: "检查法规要求在产品设计冻结前的落实,任务交付要求将首先在G1与工程团队完成输入和确认,并于G3前完成符合性确认和审查。", + checkVerificationResultsBeforeMP:'检查法规要求在产品量产前的验证结果,任务交付要求将首先在G1与工程团队完成输入和确认,并于MP前完成符合性确认和审查。', + modifyOperator:'修改操作人', + onlyDesignComplianceConfirmationSelected:'只能选择设计符合性确认流程状态为任务待确认、结果待提交或验证符合性确认流程状态为任务待确认、结果待提交的数据', + oneThePersonnelMustBeSelected:'必须选择其中一个人员', + pleaseSelectRegulatoryCurrentLogin:'请选择法规工程师为当前登录人的数据', + cannotSetResponsibilityAreas:'所属不同责任领域,不能设置接口人', + lidar:'激光雷达', + history:'历史', + deliveryDate:'交付日期', + regulatoryEngineerReturns:'法规工程师退回', + designProcessStatus:'设计流程状态', + verifyProcessStatus:'验证流程状态', + design:'设计', + verify:'验证', + inventoryVerifyEndTime:'清单校核截止时间', + taskConfirmEndTime:'责任确认截止时间', + responsiblepersonfordesigncompliance:'设计符合性责任人', + responsiblepersonforverifyingcompliance:'验证符合性责任人', + verifytheconformancedeliverabletype:'验证符合性交付物类型', + designaconformancedeliverabletype:'设计符合性交付物类型', + reasonForReturnOfCompliance: '符合性退回原因', + supplementarySubmission:'补充提交', + confirmSupplementarySubmission:'确认补充提交?', + onlyProcessStatusOfApprovedCanBeSelected:'只能选择流程状态为审查通过的数据', + andTheOperatorCurrentData:',并且登录人为当前数据的责任人', + upgradeInstructions:'升版说明', + upgradeOrNot:'是否升版', + operationRecords:'操作记录', + versionUpdatedRecord:'版本更新记录', + regulatoryComplianceManagement:'法规符合性管理', + certificationActivityManagement:'认证活动管理', + parameterCollectionProgressManagement:'参数收集进度管理', + certificationTaskConfirmation:'认证任务确认', + selectTime:'选择时间', + designCompliance:'设计符合性', + verifyCompliance:'验证符合性', + stateExport:'状态导出', + completeVehicle:'整车', + components:'零部件', + componentReportNotSubmitted:'部件报告未提交', + componentReportSubmitted:'部件报告已提交', + componentReportHasBeenStored:'部件报告已入库', + parameterCollectionProgress:'参数收集进度', + proportion:'占比', + projectProgressStatistics:'项目进度统计', + GRPSystemProjectProgressStatistics:'GRP系统项目进度统计', + statisticalNodes:'统计节点', + proportionWithInTheAreaOfResponsibility:'责任领域内占比', + contentsearch:'内容搜索', + masterProject:'主项目', + deliveryTime:'交付时间', + expectedDeliveryTime:'预计交付时间', + changeAuthor:'更改作者', + requireddataisnull:'必填数据为空', + theProcessThatNeedsToBeReset:'需要重置的流程', + toResubmit:'重新提交', + selectDesignConformanceAsConformance:'请选择设计符合性确认流程状态为符合或验证符合性确认流程状态为符合的数据', + submissionProcess:'提交流程', + + //手机端 + myCollection:'我的收藏', + recentBrowsing:'最近浏览', + mySubscription:'我的订阅', + languageSwitching:'语言切换', + phoneSearch:'搜索', + taskStatistics:'任务统计', + mine:'我的', + regulatoryCertificationProcess:'法规认证流程', + authenticationParameterCollection:'认证参数收集', + regulatoryCertificationProcessData:'法规认证流程数据', + regulationListIssuance:'法规清单发布', + designTheComplianceProcess:'设计符合性流程', + verifyComplianceProcess:'验证符合性流程', + thePreHomeProcess:'Pre-Home流程', + technicalAssessmentOfRegulations:'法规技术评估', + legalOpinionCollection:'法规意见收集', + authenticationParameterCollectionData:'认证参数收集数据', + phoneRelatedItems:'相关项目', + listHeading:'清单标题', + phoneVersionNumber:'版本号', + node:'节点', + goToCheck:'去查看', + stored:'已存储', + individual:'个', + document:'文档', + treatmentMode:'处理方式', + onlyMobilePhoneAreDisplayed:'仅展示手机端可处理的任务', + phoneReset:'重置', + noMore:'没有更多了', + loading:'加载中...', + howAboutComment:'说点什么评论一下吧', + send:'发送', + pleaseProcessThePC:'请在PC端处理', + clickAndSelect:'点击选择', + phoneCreationTime:'创建时间', + theCurrentFormatSupportPreview:'当前格式不支持预览', + nearlyMonth:'近一个月', + nearlyThreeMonths:'近三个月', + nearlySixMonths:'近六个月', + nearlyYear:'近一年', + browsingTime:'浏览时间', + pleaseViewOnPc:'请在pc的查看', + taskHandling:'任务办理', +} + notOnlyRz: '否', + EnterValue: '请输入值', + SavedQuery: '保存的查询', + NoQueriesSaved: '没有保存任何查询', + SavedName: '保存的名称', + CannotQueryEmpty: '不能查询空条件', + EmptyCannotSaved: '空条件不能保存', + cannotEmpty: '不能为空', + name: '名称', + AlreadyExists: '已存在,是否覆盖?', + SavedSuccessfully: '保存成功', + DeleteQuery: '是否删除当前查询', + VersionNotSupported: '版本不支持', + SaveQueryCriteria: '保存查询条件', + roleName: '角色名称', + newRole: '新建角色', + RoleManagement: '角色管理', + toGrantAuthorization: '授权', + newUser: '新增用户', + ExistingUsers: '已有用户', + total: '共', + strip: '条', + RoleCode: '角色编码', + createTime: '创建时间', + userName: '用户名称', + userManual: '用户手册', + selectOneRule: '请选择一个角色!', + setAttribute: '请设置url.list2属性!', + setDelAttribute: '请设置url.delete2 属性!', + setDelBatAttribute: '请设置url.deleteBatch2 属性!', + selectARecored: '请选择一条记录!', + confirmDeletion: '确认删除', + deleteAData: '是否删除选中数据?', + AddDepartment: '添加部门', + AddSubordinate: '添加下级', + DepartmentInformation: '部门信息', + BatchDelete: '批量删除', + DeleteMultiplePiecesData: '删除多条数据', + CurrentSelection: '当前选择', + Deselect: '取消选择', + enterDepartmentName: '请输入部门名称', + addTo: '添加', + cancel: '取消', + checkAll: '全部勾选', + DeselectAll: '取消全选', + ExpandAll: '展开所有', + MergeAll: '合并所有', + TreeOperation: '树操作', + essentialInformation: '基本信息', + DetailsPhasedImplementation: '分阶段实施详情', + Statutenumberclause: '法规编号/条款', + Typeofimplementation: '实施类型', + ImplementationDate: '实施时间', + OrganizationName: '机构名称', + EnterOrganizationDepartment: '请输入机构/部门名称', + SuperiorDepartment: '上级部门', + enterOrganizationCode: '请输入机构编码', + nothing: '无', + OrganizationType: '机构类型', + PleaseSelectOrganizationType: '请选择机构类型', + company: '公司', + post: '岗位', + sort: '排序', + enterMobileNumber: '请输入手机号', + enterAddress: '请输入地址', + address: '地址', + remarks: '备注', + enterComments: '请输入备注', + selectDepartmentFirst: '请先选择一个部门!', + OrganizationCode: '机构编码', + fax: '传真', + enterOrganizationType: '请输入机构类型', + sureDeleteSelected: '确定要删除所选中的', + pieceData: '条数据,以及子节点数据吗?', + selectSuperiorDepartmentFirst: '请先点击选中上级部门', + deleteDepartmentData: '确定要删除此部门以及子节点数据吗?', + DeleteSucceeded: '删除成功', + DeletionFailed: '删除失败', + departmentInformationDepartment: '您的部门下暂无有效部门信息', + permissionTemporrily: '普通员工暂此权限', + DepartmentRole: '部门角色', + DictionaryName: '字典名称', + DictionaryEnName: '字典英文名称', + enterDictionary: '请输入字典名称', + enterEnDictionary: '请输入字典英文名称', + DictionaryNumber: '字典编号', + enterDictionaryNumber: '请输入字典编号', + DictionaryInformation: '字典信息', + RefreshCache: '刷新缓存', + recycleBin: '回收站', + DictionaryConfiguration: '字典配置', + dataDictionaryPage: '这是数据字典页面', + describe: '描述', + DescriptionRefreshCache: '刷新缓存完成!', + FailedRefreshCache: '刷新缓存失败!', + refreshFailed: '刷新失败', + ClassificationDictionary: '分类字典', + ClassifManagementPage: '分类字典管理页面', + ClassificationName: '分类名称', + ClassificationCode: '分类编码', + AddSubcategory: '添加子分类', + DataRules: '数据规则', + menuMnagementPage: '这是菜单管理页面', + MenuName: '菜单名称', + MenuType: '菜单类型', + menu: '菜单', + ButtonsPermissions: '按钮/权限', + ConventionalExport: '常规导出', + CustomExport: '自定义导出', + CustomTemplateName: '自定义模板名称', + assembly: '组件', + route: '路径', + AddSubmenu: '添加子菜单', + NoPicture: '无图片', + noFile: '无文件', + adadManagementPage: 'adad管理页面', + TenantName: '租户名称', + TenantNumber: '租户编号', + startTime: '开始时间', + endTime: '结束时间', + LoginLog: '登录日志', + OperationLog: '操作日志', + SearchLog: '搜索日志', + enterSearchKeyword: '请输入搜索关键词', + enterSearchContent: '请输入搜索内容', + enterStandard: '请输入编号', + entertitle: '请输入标题', + OperationType: '操作类型', + selectOperationType: '请选择操作类型', + selectProblemClassification: '请选择问题分类', + selectClassification: '请选择分类', + selectTranslationResults: '请选择翻译结果', + selectMarket: '请选择市场', + RequestMethod: '请求方法', + RequestParameters: '请求参数', + logManagementPage: '这是日志管理页面', + LogContent: '日志内容', + OperatorID: '操作人ID', + OperatorName: '操作人名称', + ElapsedTime: '耗时(毫秒)', + LogType: '日志类型', + tableName: '表名', + enterTableName: '请输入表名', + DataID: '数据ID', + enterID: '请输入ID', + DataComparison: '数据比较', + DataLogManagementPage: '数据日志管理页面', + VersionNumber: '版本号', + DataContent: '数据内容', + creator: '创建人', + selectTwoPiecesData: '请选择两条数据', + selectSameDatabase: '请选择相同的数据库表和数据ID进行比较', + DataComparison: '数据比较', + PromptInformation: '提示信息', + enterAccountNumber: '请输入账号', + AddExistingUsers: '添加已有用户', + newUser: '新建用户', + disassociate: '取消关联', + AssignDepartmentRoles: '分配部门角色', + userDetail: '用户详情', + AreYouCancelAssociation: '确定取消与选中部门关联吗?', + setURLListAttribute: '请设置url.list属性!', + setURLDeletebatchAttribute: '请设置url.deleteBatch属性!', + NoDepartmentSelected: '未选中任何部门,无法取消部门与用户的关联!', + ConfirmCancellation: '确认取消', + CancelAssociation: '是否取消用户与选中部门的关联?', + SuccessfullyDeleted: '删除用户与选中部门关系成功!', + setURLDeleteAttribute: '请设置url.delete属性!', + DepartmentRole: '部门角色分配', + DepartmentRoleName: '部门角色名称', + enterDepartmentRole: '请输入部门角色', + NewDepartmentRole: '新建部门角色', + DepartmentRoleInformation: '部门角色信息', + DepartmentRoleCode: '部门角色编码', + enterUserAccount: '请输入用户账号', + NoConfigurableRoles: '无可配置角色!', + AreYouWantDiscardEditing: '确定放弃编辑?', + determine: '确定', + DictionaryCoding: '字典编码', + enterDictionaryCode: '请输入字典编码', + DictionaryList: '字典列表', + enterName: '请输入名称', + disable: '禁用', + DataValue: '数据值', + enterDataValue: '请输入数据值', + DictionaryRetrieval: '字典取回', + CompletelyDelete: '彻底删除', + FirstLevelMenu: '一级菜单', + Submenu: '子菜单', + ButtonsPermissions: '按钮/权限', + enterMenuName: '请输入菜单名称', + SuperiorMenu: '上级菜单', + selectSuperiorMenu: '请选择上级菜单', + selectParentMenu: '请选择父级菜单', + MenuPath: '菜单路径', + enterMenuPath: '请输入菜单路径', + FrontAssembly: '前端组件', + enterFrontComponents: '请输入前端组件', + DefaultJumpAddress: '默认跳转地址', + enterRoutingParameters: '请输入路由参数', + AuthorizationID: '授权标识', + enterAuthorizationID: '请输入授权标识, 如:', + PleaseEnterAuthorizationID: '请输入授权标识!', + AuthorizationPolicy: '授权策略', + selectAuthorizationPolicy: '请选择授权策略', + selectStatus: '请选择状态', + MenuIcon: '菜单图标', + ClickSelectIcon: '点击选择图标', + enterMenuSort: '请输入菜单排序', + RouteMenu: '是否路由菜单', + HideRoute: '隐藏路由', + CacheRoute: '是否缓存路由', + AggregateRouting: '聚合路由', + OpenMode: '打开方式', + external: '外部', + inside: '内部', + enterMenuTitle: '请输入菜单标题', + enterAuthorizationPolicy: '请输入授权策略', + AuthorizationIDExists: '授权标识已存在', + enterPositiveInteger: '请输入整数', + RuleName: '规则名称', + enterRuleName: '请输入规则名称', + RuleField: '规则字段', + enterRuleField: '请输入规则字段', + ConditionalRules: '条件规则', + enterConditionRule: '请输入条件规则', + RuleValue: '规则值', + enterRuleValue: '请输入规则值', + effective: '有效', + invalid: '无效', + selectCondition: '请选择条件', + DataPermissionRules: '数据权限规则', + LoginPassword: '登录密码', + enterLoginPassword: '请输入登录密码', + ConfirmPassword: '确认密码', + reenterLoginPassword: '请重新输入登录密码', + enterUserName: '请输入用户姓名', + RoleAssignment: '角色配置', + selectUserRole: '请选择用户角色', + DepartmentAllocation: '部门分配', + ClickSelectDepartment: '点击选择部门', + choice: '选择', + identity: '身份', + OrdinaryUsers: '普通用户', + superior: '上级', + ResponsibleDepartment: '负责部门', + selectResponsibleDepartment: '请选择负责部门', + selectGender: '请选择性别', + mailbox: '邮箱', + enterEmailAddress: '请输入邮箱', + enterMobileNumber: '请输入手机号码', + submit: '提交', + passwordConsists: '密码由8位数字、大小写字母和特殊符号组成!', + enterUserName: '请输入用户名称', + enterJobNumber: '请输入工号', + enterCorrectLandline: '请输入正确的座机号码', + passwordsEnteredTwice: '两次输入的密码不一样', + PnumberExists: '手机号已存在', + enterPhoneCorrect: '请输入正确格式的手机号码', + MailboxExists: '邮箱已存在', + enterMailboxCorrect: '请输入正确格式的邮箱', + UserExists: '用户名已存在', + nameExists: '工号已存在', + uploadPictures: '请上传图片', + DepartmentSearch: '部门搜索', + selectSuperiorDepartment: '请选择上级部门', + upload1: '上传', + UploadFailed: '上传失败', + ResetPassword: '重新设定密码', + ClearSelection: '清空选择', + BatchRestore: '批量还原', + RestoreUser: '还原用户', + FailedQuery: '查询已删除的用户失败:', + headPortrait: '头像', + RestorUser: '恢复用户', + sureRestore: '您确定要恢复这', + Users: '个用户吗?', + reduction: '还原', + UsersSucceeded: '个用户成功!', + standard: '编号', + title: '标题', + TextStatus: '文本状态', + PleaseEnter: '请输入', + PleaseSelect: '请选择', + PleaseEnterOrSelect: '请输入或选择', + ModificationTime: '修改时间', + ModificationContent: '修改内容', + personnel: '人员', + dataExport: '数据导出', + exportWithFile: '带文件导出', + Push: '推送', + templateDownload: '模板下载', + textInformation: '文本信息', + relatedInformation: '关联信息', + RetrieveFiles: '调取已入库文件', + SplitText: '拆分已入库文本', + ImportResults: '导入拆分结果', + copy: '复制', + TemplateDownload: '模板下载', + MergerClause: '合并条款', + BatchSetting: '批量设置', + BatchCancel: '批量取消收藏', + SubscriptionManagement: '订阅领域管理', + BatchCancellation: '批量取消', + enterMenuEnName: '请输入菜单英文名称', + MenuEnName: '菜单英文名称', + clickUpload: '点击上传', + viewUploadedFiles: '查看已上传文件', + standardSelection: '标准选择', + Collection: '收藏', + CancelCollection: '取消收藏', + deleteLib: '删除', + subscribe: '订阅', + CancelSubscribe: '取消订阅', + ConfirmCollection: '确定收藏?', + cancelConfirmCollection: '确定取消收藏?', + ConfirmSubscribe: '确定订阅?', + cancelConfirmSubscribe: '确定取消订阅?', + ConfirmDelete: '确定删除?', + ConfirmBatchDeletion: '确定批量删除?', + download: '下载', + UpdateLog: '更新log', + DocumentSplitting: '文档拆分', + DocumentTranslation: '文档翻译', + DocumentComparison: '文档对比', + KnowledgeDatabase: '知识问答库', + StandardDetails: '标准详情', + whole: '全部', + DocumentLibrary: '文档库', + GeneralExportInformation: '常规导出信息', + CustomizeExportInformation: '自定义导出信息', + DocumentComparisonLibrary: '文档对比库', + weekly: '周报', + SyncLibrary: '同步至文档库', + check: '校核', + enName: '英文名称', + selectLeastOne: '请选择至少一条数据', + selectFileType: '请选择文件类型', + sureVerified: '确定对该文件未进行校验?', + sureSynchronize: '该文件未进行校验,确定要同步至文档库?', + UploadFile: '上传文件', + TagItemManagement: '标签项管理', + LabelContentManagement: '标签内容管理', + InputBoxType: '输入框类型', + DropDownType: '下拉选类型', + ExhibitionAreaManagement: '展示区域管理', + NewLabelItem: '新增标签项', + editLabelItem: '编辑标签项', + NodeQuickLookup: '节点快速查找', + AreAllLabelsRead: '是否全部标记已读', + AllLabelsRead: '标记已读', + SubscriptionNotification: '订阅通知', + warningInformation: '预警信息', + ForwardPush: '转发推送', + PleaseSelectData: '请先选择数据', + MessageContent: '消息内容', + MessageTitle: '消息标题', + MessageType: '消息类型', + NotificationTime: '通知时间', + MessageNotification: '消息通知', + MessageCenter: '消息中心', + SeeMore: '查看更多', + OperationSuccessful: '操作成功', + Intheexport: '导出中...', + operationFailed: '操作失败', + PersonnelSelection: '人员选择', + EmployeeNumber: '员工号', + EmployeeType: '员工类型', + LabeItemName: '标签项名称', + PleaseEnterLabelName: '请输入标签名称', + DisplayArea: '展示区域', + ChineseName: '属性名称', + AttributeType: '属性类型', + FieldLength: '字段长度', + DisplayOrder: '展示顺序', + LabelName: '标签名称', + LabelType: '标签类型', + PleaseSelectLabelType: '请选择标签类型', + PleaseEnterDescription: '请输入描述', + LengthBe1to100: '长度在 1 - 100字符', + Module: '所属模块', + PleaseSelectModule: '请选择所属模块', + AttributeName: '属性名称', + PleaseEnterPropertyName: '请输入属性名称', + PleaseEnterYourEnglishName: '请输入英文名称', + PleaseSelectAttributeType: '请选择属性类型', + OptionContent: '选项内容', + PleaseSelectOptionContent: '请选择选项内容', + PleaseEnterFieldLength: '请输入字段长度', + DisplayOrder: '展示顺序', + PleaseEnterDisplayOrder: '请输入展示顺序', + Required: '是否必填', + DocumentLibraryModuleDisplay: '文档库模块展示', + DocumentLibraryListDisplay: '文档库列表展示', + SelectWhetherDisplayList: '请选择是否文档库列表展示', + SelectDisplayArea: '请选择展示区域', + Search: '是否搜索', + SelectWhetherToSearch: '请选择是否搜索', + DisplayOtherModules: '其它模块展示', + RegulationsListDisplay: '法规清单展示', + selectDisplayListRegulations: '请选择法规清单是否展示', + SearchCenterDisplay: '搜索中心展示', + selectSearchCenterDisplayed: '请选择搜索中心是否展示', + selectWhetherRequired: '请选择是否必填', + SortNumber: '排序号', + enterDisplayArea: '请输入展示区域', + charactersLength: '长度在 1 - 50字符', + enterSortingNumber: '请输入排序号', + ParentName: '父级名称', + charactersLength130: '长度在 1 - 30字符', + charactersLength1to300: '长度在 1 - 300字符', + OnlyOneSelected: '只能选择一条数据', + OnlyPDF: '只能导入pdf文件', + open: '展开', + away: '收起', + terminationProcess: '终止流程', + issue: '下发', + projectInformation: '项目信息', + standardContent: '标准内容', + complianceReview: '符合性审查', + reviewResults: '审查结果', + selectReviewResult: '请选择审查结果', + feedback: '反馈意见', + approvalHistory: '审批历史', + cannotExceed500characters: '不能超过500个字符', + accord: '符合', + nonConformity: '不符合', + Tracked: '待追踪', + notInvolved: '不涉及', + toBeConfirmed: '待确认', + Operator: '操作人', + role: '角色', + OperationContent: '操作内容', + operationTime: '操作时间', + toDoProcess: '待办流程', + processDone: '已办流程', + sentProcess: '已发流程', + monitoringProcess: '监控流程', + ConfirmDeployment: '确认部署?', + Deployment: '部署', + ConfirmReplication: '确认复制?', + ProcessName: '流程名称', + ProcessType: '流程类型', + AddProcess: '添加流程', + RelatedItems: '相关项目', + Sponsor: '发起人', + CurrentProcessor: '当前操作人', + LastProcessor: '上一操作人', + ProcessingTime: '办理时间', + cutoffTime: '截止时间', + ProcessStatus: '流程状态', + CompletionTime: '完成时间', + draft: '草稿', + CannotExceed100characters: '不能超过100字符', + cantExeed: '不能超过', + characters: '字符', + Processing: '办理', + See: '查看', + labelNameCannotDuplicate: '标签名称不能重复', + list: '列表', + paragraph: '段落', + enterNumber: '请输入编号', + enterTitle: '请输入标题', + backDocument: '回传至文档库', + fileName: '文件名称', + splitTime: '拆分时间', + splitResult: '拆分结果', + collectionTime: '收藏时间', + split: '拆分', + splitFile: '拆分文件', + clauseName: '条款名称', + clauseContent: '条款内容', + newClause: '新增条款', + clauseNo: '条款号', + functionalAreas: '功能领域', + technicalField: '技术领域', + informationCategory: '信息类别', + contentValidity: '内容简介', + TechnicalfieldSupplementCn: '技术领域补充(中文)', + TechnicalfieldSupplementEn: '技术领域补充(英文)', + content: '内容', + Add: '增加', + subscriptionTime: '订阅时间', + confirmBulkUnsubscribe: '确认批量取消订阅?', + BatchCancelCollection: '确认批量取消收藏?', + unsubscribeConfirm: '确认取消订阅?', + confirmCancelCollection: '确认取消收藏?', + theRelease: '发布日期不能大于标 准实施日期', + zoneOfApplication: '适用地区', + releaseDate: '发布日期', + standardImplementationTime: '标准实施时间', + onlyPicture: '只能上传图片!', + fileUploadFailed: '文件上传失败', + deletedSuccessfully: '删除成功', + uploadSuccessful: '上传成功', + noDelete: '该展示区域有关联数据,无法删除!', + numberRows: '行数', + numberColumns: '列数', + table: '表格', + tableRowsColumns: '表格行数列数', + addQuantity: '添加数量', + enterQuantity: '请输入数量', + text: '文本', + picture: '图片', + searchScope: '检索范围', + newNode: '新增节点', + modifyNode: '修改节点', + deleteNode: '删除节点', + ImplementationDate: '新车型实施日期', + ImplementationDateOne: '新车型实施日期', + vehicleInProductionDate: '在产车实施日期', + deleteNodes: '该节点下若有子节点将同步删除,确认删除该条数据?', + leastTwo: '请选择至少两条数据', + mergeTerms: '确定合并条款', + documentSplitTemplate: '文档拆分模板', + batSetting: '批量设置', + batchSettingInformation: '批量设置信息', + batchSettingPersonnel: '批量设置人员', + selectDirectoryTerms: '请选择添加条款的目录位置', + selectDirectorylocation: '请选择添加文件夹的目录位置', + OnlyWordItem: '只有GSO文件类型,才能拆分pdf文件,请重新选择文件', + OnlyWord: '只能导入word文件', + labelAreaDeleted: '若进行删除,则该展示区域下标签项都将被删除', + StandardBreakdown: '标准分解单', + searchInResults: '结果中检索', + searchContent: '搜索内容', + viewFile: '查看已上传文件', + fileFormatIncorrect: '文件格式不正确', + pleaseUploadFile: '请上传文件', + documentSplitList: '文档拆分列表展示', + selectSplitListDisplay: '请选择是否文档拆分列表展示', + selectDisplayList: '请选择是否列表展示', + documentSplitDisplay: '文档拆分模块展示', + VirtualListName: '市场法规清单名称', + CertificationListName: '认证清单名称', + VirtualList: '市场清单', + listStatus: '清单状态', + creater: '创建人', + withdraw: '撤回', + maintenanceList: '维护清单', + instructionForUse: '使用说明', + subtitle: '子标题', + scopeOfApplication: '适用范围', + correspondingStandard: '对应标准', + implementationCategory: '实施类别', + certificationType: '认证类型', + certificationLevel: '认证级别', + areaOfResponsibility: '责任领域', + confirmationOfDesignConformity: '设计符合性确认', + Deliverables: '交付物', + personLiable: '责任人', + PrehomoConfirmation: 'Pre-Homo确认', + verificationAndConformityconfirmation: '验证符合性确认', + StandardImplementationDate: '标准实施日期', + regulatoryEngineer: '法规工程师', + certifiedEngineer: '认证工程师', + regulatoryEngineerOrcertifiedEngineer: '法规工程师/认证工程师', + judge: '判断', + engineeringInterfacePerson: '工程接口人', + typeOfDeliverables: '交付物类型', + deliverableTemplate: '交付物模板', + entryName: '项目名称', + targetMarket: '目标市场', + projectStatus: '项目状态', + StudioEngineer: 'R&H Studio', + CertificationTime: '认证时间', + NTplatform: 'NT平台', + NPplatform: 'NP平台', + IPDInformation: 'IPD信息', + certificationProgramInformation: '认证计划信息', + taskReleaseStatus: '认证发布状态', + task: '任务', + TaskCutOffTime: '截止时间', + Transfer: '调取', + CertificationDirectory: '认证目录', + TaskRequirements: '任务要求', + CertificationProgress: '认证进度', + CurrentProjectStatusEvaluation: '当前项目状态评估', + NiONumber: 'NIO编号', + ParameterName: '参数名称', + ParameterDescription: '参数说明', + Version: '版本', + certificationProgramTime: '认证计划时间', + ArchitecturePlatform: '架构平台', + ModelPlatform: '车型平台', + ListOfRelevantPersonnel: '相关人员名单', + DeliverableStatus: '交付物状态', + CurrentStatusOfTheProject: '项目当前状态', + CurrentStatus: '当前状态', + NonConformance: '未符合项', + listSubclauses: '清单条目', + fileType: '文件类型', + view: '查看', + KMVSS_Table: 'KMVSS Table', + KMVSS_Article: 'KMVSS Article', + CFR: 'CFR', + UNECE: 'UNECE', + JPN_Attachment: 'JPN Attachment', + JPN_Article: 'JPN Article', + GB: 'GB', + GBT: 'GB/T', + GSO: 'GSO', + onlyOnefileUploaded: '只能上传一个文件', + typeCannotUploaded: '不支持上传该类型的文件', + confirmWithdraw: '确认撤回?', + OperationDetails: '操作详情', + OperationTime: '操作时间', + oneTableAdded: '只能添加一个表格', + addATable: '请添加一个表格', + pleaseUploadSplitFile: '请上传拆分文件', + release: '发布', + confirmRelease: '确认发布?', + UploadMost: '最多只能上传二十个', + FileUploadFailed: '文件上传失败', + FileUploadedSuccessfully: '文件上传成功', + DeletedSuccessfully: '删除成功', + confirmCopy: '确定复制?', + DigitalPlatform: '数字平台', + dehicleDevelopmentPlan: '整车开发计划', + certificationProgram: '认证计划', + DocumentStandard: '文档标准', + standardName: '标准名称', + initiateListConfirmation: '发起清单确认', + initiateTaskConfirmation: '发起任务确认', + alteration: '变更', + fixedPlate: '定版', + taskAffirmStatus: '任务确认状态', + taskAffirm: '任务确认', + listConfirmationStatus: '清单确认状态', + listConfirmation: '清单确认', + ListConfirmationDeadline: '清单确认截止时间', + dataConfirmation: '请选择清单确认状态为未发起或拒绝的数据,以及法规工程师、认证工程师不为空', + pleaseSelectinitiatedOrRejected: '请选择设计符合性确认流程状态为清单待发布、法规工程师退回或验证符合性确认流程状态为清单待发布、法规工程师退回的数据', + pleaseSelectTheDataverificationVerified: '请选择设计符合性确认流程状态为清单待校核、责任人拒绝或验证符合性确认流程状态为清单待校核、责任人拒绝的数据', + TheEngineerAndCertification: '的法规工程师不能为空', + taskDataConfirmation: '请选择清单确认状态为接受及任务确认状态为未发起或拒绝的数据,以及工程接口人不为空', + theProjectContactEmpty: '的工程接口人不能为空', + PleaseTaskConfirmationRejected: '请选择清单确认状态为接受及任务确认状态为未发起或拒绝的数据', + pleaseSelectPersonFirst: '请先选择人员', + onlyOnePersonCanBeSelected: '只能选择一个人员', + overrule: '驳回', + confirmSubmit: '确认提交?', + confirmOverrule: '确认驳回?', + The: '第', + submitted: '条数据已提交不能重复提交', + incorrectsubmitted: '条数据状态有误;只能提交状态为待确认或拒绝的数据', + basicInformationOfParameters: '项目基本信息', + regulatoryCertificationTaskPlan: '法规/认证任务计划', + bringInRelevantPersonnel: '带入相关人员', + confirmBringInRelevantPersonnel: '确认带入相关人员?', + problemType: '问题类型', + projectDetails: '项目详情', + listOfRegulations: '法规清单', + taskList: '任务清单', + TaskParameterCollection: '认证参数列表', + nonConformance: '未符合项', + deadlineForConfirmationOfDesignCompliance: '设计符合性确认截止时间', + prehomoConfirmationDeadline: 'Pre-Homo确认截止时间', + verificationComplianceConfirmationDeadline: '验证符合性确认截止时间', + pleaseEnterTheCorrectWebAddress: '请输入正确的网址', + updateTime: '更新时间', + comment: '评论', + historicalVersion: '历史版本', + versionName: '版本名称', + finalizationTime: '定版时间', + setting: '设定', + date: '日期', + time: '时间', + uploadMaximumATime: '一次最多上传二十张图片', + + time: '时间', + confirmationOfRegulationsList: '法规清单确认', + regulatoryTaskConfirmation: '法规任务确认', + certificationStart: '认证试验结束', + preHomoCompletion: '摸底试验结束', + certificationEnd: '认证批准', + directoryName: '目录名称', + batch: '批次', + uploadTime: '上传时间', + enclosure: '附件', + // 认证 + // 认证状态 + timeoperation: '时,才有权限操作此按钮。', + NiOnumberis: 'NIO编号为', + NoOperationPermissionForthisbutton: '没有此按钮的操作权限', + Attentionfreeze: '注:冻结后该冻结配置内容不可进行编辑。', + Filledperson: '工程接口人没有填写,请填写完工程接口人再进行下发收集。', + Datastatusis: '数据状态为', + Datastateexcept: '数据状态除了', + Dropdownradio: '下拉单选', + Dropdownmultipleselection: '下拉多选', + a: '+', + positiveInteger: '正整数', + // 参数收集 + MaintainConfigureInfo: '维护配置信息', + ParameteItemCollectionList: '参数项收集清单', + ParameterViewPage: '参数项查看页', + Areyousureparameteritems: '确认提交所选参数项嘛?', + Theselectedconfiguration: '参数清单中参数项均为待发起收集或变更时,才能添加配置', + NoConfigurationNotStart: '未添加任何配置信息,无法查看', + theCurrent: '此数据当前状态为', + thisbuttonCompleted: '当状态为"已完成或未收集"时,才可操作此按钮', + Frozenstatus: '冻结状态,仅可以查看', + chinese: '中文', + integerOrDecimal: '整数或小数', + OneDecimalPlace: '一位小数', + TwoDecimalplaces: '两位小数', + Threedecimalplaces: '三位小数', + FourDecimalplaces: '四位小数', + Positivefloatingpointnumber: '正浮点数', + oneconfigurationInformation: '至少含有一个配置信息', + Correspondingstandarddeleted: '对应标准已删除', + changeTheTitle: '标题已存在,请更换标题', + resetPassword: '重置密码', + departmentAllocation: '部门配置', + ListTitle: '清单标题', + CopyProjectCollectionparameters: '复制项目收集参数', + from: '从', + ReferenceTo: '引用到', + checkTheDeadline: '选中参数项收集截止时间', + accountNumber: '账号', + fullName: '姓名', + configurationInformation: '配置信息', + modifyprojectInterfacePerson: '修改工程接口人', + operatethisbutton: '没有权限操作此按钮', + ParameterLibrary: '参数库', + referenceparameter: '引用参数', + tempSave: '暂存', + Assignedby: '分配填写人', + CompulsoryWithdrawal: '强制撤回', + SynchronousReportLibrary: '同步上报库', + FreezeConfiguration: '冻结配置', + distributionAndCollection: '下发收集', + OneclickCollection: '一键下发收集', + deleteConfiguration: '删除配置', + addConfiguration: '添加配置', + electricMachinery: '电机', + Battery: '电池', + Model: '车型', + configurationName: '配置名称', + historicalVersion: '历史版本', + configure: '配置', + parameter: '参数', + changeExtension: '变更扩展', + addDetailList: '添加清单', + editDetailList: '编辑清单', + detailedList: '清单', + copyParamDetailList: '复制参数清单', + collectionCompletionTime: '收集完成时间', + parameterTemplateName: '参数模板名称', + onlyThree: '只能输入字母,数字,横杠(-),左斜杠,空格五种内容', + templateName: '模板名称', + pleaseSelectData: '请选择数据', + templateCopy: '模板复制', + NiOnumberalreadyexists: 'NIO编号已存在,请更换NIO编号', + attachmentTemplate: '附件模板', + controlAlternatives: '控件备选值', + controlVerification: '控件校验', + controlType: '控件类型', + certificationCategory: '认证类别', + parameterBatch: '参数批次', + releaseVersion: '发布版本', + parameterTemplate: '参数模板', + contentDescription: '内容说明', + WhetherMergeParameters: '是否合并参数', + merge: '合并', + nonjoinder: '不合并', + MergeSeparator: '合并分隔符', + parameterTemplateExportName: '参数项列表', + parameterDataExport: '参数项导出数据', + // 参数收集结束 + circulationInformation: '流转信息', + circulationHistory: '流转历史', + agree: '同意', + disagree: '拒绝', + feedbackMessage: '反馈意见', + result: '结果', + opinion: '意见', + OperationNode: '操作节点', + selectInquiry: '选择询问人', + sendBack: '退回', + taskConfirmationProcess: '任务确认流程', + notFinished: '未完成', + Finished: '已完成', + theRequirementst: '工程接口人确认符合性要求', + dataLoading: '数据加载中...', + Submitting: '提交中...', + Returning: '退回中', + terminationProcessing: '终止流程中', + publishComment: '发表评论', + record: '记录', + replyToComments: '回复评论', + noComment: '暂无评论', + theReceived: '所有流程数据均完成任务责任确认节点后才能进行定版操作', + notEvaluated: '未评估', + cannotExceed: '不能超出', + Characters: '个字符', + standardInformation: '标准信息', + importTemplate: '导入模板', + verificationConfirmationDeadline: '验证符合性确认截止时间', + technicalEvaluationResults: '技术评估结果', + engineeringConfirmation: '工程交付', + feedbackFromTheEngineer: '工程师反馈意见', + completedBy: '填写人', + completedTime: '填写时间', + replyFromProjectContactPerson: '责任人回复', + answer: '回复', + distributionEngineer: '分发工程师', + reminderHandling: '提醒办理', + addFeedback: '添加反馈', + engineer: '工程师', + engineeringConfirmationDetails: '工程交付详情', + reminder: '提醒', + adopt: '通过', + reviewedByThePersonInCharge: '负责人审核', + onlyDeleted: '只能删除流程未开始和流程结束的数据', + experimentPassed: '实验通过', + experimentFailed: '实验失败', + toBeStarted: '待开始', + inProgress: '进行中', + Underway: '进行中', + green: '绿', + red: '红', + blue: '蓝', + yellow: '黄', + resultReported: '结果报告', + TheDoesNotContainData: '该市场清单的维护清单中没有数据,是否需要添加', + number: '序号', + Deadline: '截止时间', + designComplianceReview: '设计符合性确认', + preHomeConfirmation: 'Pre-Homo确认', + verificationComplianceReview: '验证符合性确认', + verificationComplianceExamine: '验证符合性审查', + pleaseDesignConformityConfirmation: '请补全设计符合性确认的数据', + pleaseConfirmedByPrehomo: '请补全 Pre-Homo确认的数据', + pleaseConformityVerification: '请补全验证符合性确认的数据', + virtualListDetails: '市场清单详情', + virtualAuthenticationListDetails: '虚拟认证清单详情', + VirtualAuthenticationList: '虚拟认证清单', + maintainVirtualList: '维护市场清单', + certificationListMaintenance: '市场认证清单维护', + reasonsForRejection: '驳回原因', + inconformity: '不符合', + toTrack: '待追踪', + Launch: '发起', + notLaunch: '未发起', + maintainProgress: '维护进度', + redSchedule: '红:不符合,且无可接受的方案和时间表', + yellowSchedule: '黄:不符合/待追踪,有可接受的方案和时间表', + greenRequirements: '绿:确认符合或满足当前要求', + blueUndeterminedState: '蓝:未判断状态', + authenticationMessage: '认证参数任务', + taskRegulationComplianceTask: '法规符合性任务', + accept: '接受', + refuse: '拒绝', + taskTermination: '任务终止', + projectStatusAndProgress: '项目状态进度', + listConfirmationProgress: '清单确认进度', + taskConfirmationProgress: '任务确认进度', + designComplianceConfirmationProgress: '设计符合性确认进度', + preHomeConfirmProgress: 'Pre-Homo确认进度', + verificationComplianceConfirmationProgress: '验证符合性确认进度', + totalTable: '总数', + applicableSupplement: '适用增补件', + taskDescription: '任务说明', + descriptionDeliverables: '交付物说明', + startMonth: '开始日期', + endMonth: '结束日期', + Importing: '导入中...', + projectDeliveryDescription: '工程交付说明', + cancelConfirm: '取消确认', + currentInformation: '当前信息', + deliveryHistory: '交付历史', + projectDeliveryRequirements: '工程交付说明', + personLiableConfirm: '责任人确认', + complianceResults: '符合性结果', + noData: '暂无数据', + confirmOperation: '确认操作', + sponsorReview: '发起人审查', + fillInProjectDelivery: '填写工程交付', + Resubmit: '重新提交', + Quantity: '数量', + pleaseConfirmationResults: '请根据工程确认结果选择符合性状态', + pleaseReviewTask: '请您添加对该条审查任务的工程确认信息', + pleaseWillBeReturned: '请对工程确认结果和责任人审查结果进行再次确认,若符合要求则进行提交,否则进行退回', + pleaseSubmitStatus: '请把工程确认的数据都点为确认状态进行提交', + modelName: '车型名称', + modelYear: '年款', + NoteConfirmTheChange: '注意:重置后所选条目数据将变为清单待发布状态,历史数据将消失,请确认是否进行流程重置', + onlyDataChanged: '只能变更任务确认状态为接受的数据', + inquiry: '询问', + ConfirmationDeadline: '确认截止时间', + regulatoryCertificationTaskConfirmation: '法规认证任务确认', + confirmationEngineeringInterfacePerson: '工程接口人确认', + engineerReply: '工程师回复', + catalogFile: '目录文件', + testScheme: '试验方案', + testReportLocation: '检测报告位置', + explain: '说明', + dataCannotEmpty: '数据不能为空', + documentDynamics: '文档动态', + theNumberAgain: '编号已存在不能重复添加', + myList: '我的待办', + myNews: '我的消息', + monthlyReportRegulations: '法规月报', + Pending: '待处理', + custom: '自定义', + notSelected: '未选择', + ExportReport: '导出报告', + basicInformation: '基础信息', + replyFromProjectContact: '工程接口人回复', + pleaseUpload: '请上传', + fullScreenView: '全屏查看', + systemPrompt: '系统提示', + loginExpired: '登录已过期', + reportNotUploaded: '报告未上传', + position: '职位', +// 认证权限状态 + CollectionInitiated: '待发起收集', + handledInterface: '待工程接口人处理', + ReturnedPerson: '工程接口人退回', + completed: '待填写', + Filledreturn: '填写人退回', + Submitted: '已提交', + ReturnedEngineer: '认证工程师退回', + SynchronizedLibrary: '已同步至上报库', + Statusis: '状态为', + toHavePermission: '才有权限', + and: '并且', + pleaseWaitWhileRunning: '运行中请稍等', + roleSwitching: '角色切换', + setCreator: '设置创建人', + documentLibraryDetails: '文档库详情', + question: '催办', + ConfirmQuestion: '确认催办?', + OnlyOrTaskconfirmationOut: '只有清单确认状态或任务确认状态为待确认时才可以进行催办', + disableInput: '禁止输入', + taskConfirmationDeadline: '任务确认截止时间', + taskConfirmationResponsiblePerson: '责任人任务确认', + or: '或', + warningTime: '预警时间', + RegulationMonthlyManagement: '月报管理', + RegulationMonthlyFill: '月报填写', + RegulationMonthlyName: '月报名称', + monthlyLanguage: '月报语种', + releaseStatus: '发布状态', + uploadedBy: '上传人', + uploadMonthly: '上传月报', + chapterContents: '章节目录', + chineseTitle: '中文标题', + englishTitle: '英文标题', + regulatoryContact: '法规联系人', + exportStatus: '导出状态', + monthlyTitleTemplate: '月报标题模板', + monthlyIntegrationAndExport: '月报整合导出', + addContent: '新增内容', + editContent: '编辑内容', + viewContent: '查看内容', + monthSelection: '月份选择', + fillInTheMonth: '填写月份', + contentTemplate: '内容模板', + bringInStandardInformation: '带入标准信息', + moveUp: '上移', + moveDown: '下移', + vehicleType: '适用车型', + usage: '用法', + implementationModel: '实施车型', + primaryCoverageCn: '主要内容(中文)', + primaryCoverageEn: '主要内容(英文)', + workProgressCn: 'NIO工作进展(中文)', + workProgressEn: 'NIO工作进展(英文)', + initiatingProcess: '发起流程', + collectResults: '收集结果', + dateOfInitiation: '发起日期', + closingDate: '截止日期', + viewProcess: '查看流程', + evaluationResults: '评估结果', + regulatoryTechnicalEvaluationResults: '法规技术评估结果', + Assessor: '评估人', + collectionOfRegulatoryOpinions: '法规意见收集', + collectionOfRegulatoryOpinionsProcess: '法规意见收集流程', + feedbackInformation: '反馈信息', + relevantSections: '相关章节', + questionsSuggestions: '问题/建议', + link: '链接', + reason: '理由', + planNoChinese: '计划号', + feedbackPoint: '反馈点', + standardNameCn: '标准名称中文', + standardNameEn: '标准名称英文', + deadlineForComments: '征求意见截止日期', + proposedTime: '提出时间', + standardNo: '标准编号', + implemenDate: '实施日期', +// 上报库 + Enable: '启用', + Latestupdatetime: '最新更新时间', + Exporthistory: '导出历史', + Exporttype: '导出类型', + Exporttime: '导出时间', + file: '文件', +// 中英修改-全局 + Copysuccessful: '复制成功', + Copyfailed: '复制失败', + Synchronizedatabase: '是否同步选中行数据至上报库?', + Aftersynchronization: '同步后的参数项将不可修改', + FNumber: '账号', + NNNiONumber: 'NIO编号', + NNiONumber: 'NIO编号', + ParameterNo: '编号', + NRequired: '是否必填', + NParameterName: '参数名称', + NtechnicalField: '技术领域', + NparameterBatch: '参数批次', + NareaOfResponsibility: '责任领域', + NParameterDescription: '参数说明', + NcertificationCategory: '认证类别', + NcontrolType: '控件类型', + NcontrolVerification: '控件校验', + NcontrolAlternatives: '控件备选值', + DefaultValue: '默认值', + NattachmentTemplate: '附件模板', + Ntext: '文本', + NDropdownradio: '下拉单选', + NDropdownmultipleselection: '下拉多选', + Nenclosure: '附件', + Atext: '下拉单选+文本', + Btext: '下拉多选+文本', + Ctext: '文本+附件', + Dtext: '下拉单选+附件', + Etext: '下拉多选+附件', + Ftext: '下拉单选+文本+附件', + Gtext: '标题', + Nnothing: '无', + Nchinese: '中文', + NpositiveInteger: '整数', + NPositivefloatingpointnumber: '正浮点数', + NintegerOrDecimal: '整数或小数', + NOneDecimalPlace: '一位小数', + NTwoDecimalplaces: '两位小数', + NThreedecimalplaces: '三位小数', + NFourDecimalplaces: '四位小数', + Copyparameterlist: '复制参数清单', + Templatenamelist: '模板名称-参数项收集清单', + newNiONumber: 'NIO编号', + English: '英文', + requiredParametersEmpty: '必填参数不能为空', + theResponsiblePersonAndDeadlineClank: '的责任人、截止时间不能为空', + bringInTheProjectInterface: '带入工程接口人', + theCurrentListSaved: '当前列表数据已全部提交,无法进行暂存', + defaultTemplate: '默认模板', + newRequestCommentListTemplate: '新征求意见清单模板', + NewReleasedStandardTemplate: '新发布标准模板', + pleaseSelectStandard: '请选择标准', + theResponsiblePersonEmpty: '的责任人不能为空', + theDeadlineEmpty: '的截止时间不能为空', + theDeliveryTypeCannotBeEmpty: '的交付物类型不能为空', + For: '针对于', + markedRejection: '标注的驳回意见', + RegulationListConfirmationTask: '清单确认任务', + RegulationListConfirmationNotification: '清单确认通知', + RegulationTaskConfirmation: '任务确认任务', + DesignComplianceTask: '设计符合性任务', + PreHomoTask: 'Pre-Homo任务', + ValidationTask: '验证符合性任务', + DesignComplianceNotification: '设计符合性通知', + PreHomoNotification: 'Pre-Homo通知', + ValidationComplianceNotification: '验证符合性通知', + RegulationTaskConfirmationNotification: '任务确认通知', + evaluationMethod: '评估方式', + uploadRelevantMaterials: '相关资料上传', + RelevantMaterials: '相关资料', + processBackground: '流程背景', + selectedStandard: '所选标准', + standardDecompositionDocument: '带入标准分解单', + pleaseSelectStandardFirst: '请先选择标准', + evaluatorFeedback: '评估人反馈', + nameTechnicalDocument: '技术文件名称', + chapter: '章节', + problemDescription: '问题说明', + filingExternalOpinions: '对外意见归档', + initiateProcessForCurrentStandard: '针对当前标准发起流程', + engineerFeedbackResults: '工程师反馈结果', + fileExport: '文件导出', + feedbackTime: '反馈时间', + regulatoryTechnologyAssessmentProcess: '法规技术评估流程', + feedbackEvaluation: '反馈评估', + clauseEvaluation: '条款评估', + standardDocuments: '标准文件', + reviewComments: '审核意见', + PleaseCompleteList: '请补全列表中符合性结果', + sponsorFeedback: '发起人反馈', + processNumber: '流程编号', + processName: '流程名称', + feedbackResults: '反馈结果', + theDoesNotSupportPreview: '当前文件格式不支持预览', + releaseSituation: '发布情况', + comparisonResults: '对比结果', + Published: '已发布', + initiateComparison: '发起对比', + translationLanguage: '翻译语言', + translationResults: '翻译结果', + conversionTime: '转换时间', + category: '类别', + RegulatoryProcessEvaluationResults: '法规流程评估结果', + ViewConformanceResults: '查看符合性结果', + TechnicalEvaluationResultsForReference: '技术评估结果参考', + ComplianceConfirmationRecord: '符合性确认记录', + complianceConfirmation: '符合性确认', + Deriveconformanceresults: '导出符合性结果', + Regulatorycompliancekanban: '法规符合性看板', + noComparisonDocumentSelected: '未选择对比文档', + RemarkInfo: '备注信息', + initiateDocumentComparison: '发起文档对比', + comparativeComments: '对比评论', + Comparisonofarticles: '条款对比评论', + viewTheComparisonResults: '查看对比结果', + addFullTextComment: '添加全文评论', + turnOffAutomaticMatching: '关闭自动匹配', + exportComparisonReport: '导出对比报告', + comparisonDifferenceComment: '对比差异评论', + fullTextComments: '全文评论', + pleaseEnterfullTextComments: '请输入全文评论', + fileDeclaration: '文件说明', + FileForDetails: '文件详情', + Converting: '转换中', + convertNetwork: '转换完成', + convertFailed: '转换失败', + standardData: '标准数据', + Theorganization: '组织机构', + Addingfolder: '新增文件夹', + Addingsubfolders: '新增子文件夹', + Editfolder: '编辑文件夹', + Deletefolders: '删除文件夹', + Foldername: '文件夹名称', + Folderpermissions: '文件夹权限', + Folderorder: '文件夹顺序', + Downloadprivileges: '下载权限', + Openpersonnel: '开放人员', + originalText: '原文', + translatedText: '译文', + Administrativeprivileges: '管理权限', + Checkthepermissions: '查看权限', + onlyFilesUploaded: '只能上传.docx、.doc文件', + uploadedbyyourself: '只能删除自己上传的文件数据', + Fileuploaded: '文件上传中,请稍后', + English: '英文', + requiredParametersEmpty: '必填参数不能为空', + theResponsiblePersonAndDeadlineClank: '的责任人、截止时间不能为空', + bringInTheProjectInterface: '带入工程接口人', + theCurrentListSaved: '当前列表数据已全部提交,无法进行暂存', + defaultTemplate: '默认模板', + newRequestCommentListTemplate: '新征求意见清单模板', + NewReleasedStandardTemplate: '新发布标准模板', + pleaseSelectStandard: '请选择标准', + theResponsiblePersonEmpty: '的责任人不能为空', + theDeadlineEmpty: '的截止时间不能为空', + theDeliveryTypeCannotBeEmpty: '的交付物类型不能为空', + For: '针对于', + markedRejection: '标注的驳回意见', + RegulationListConfirmationTask: '清单确认任务', + RegulationListConfirmationNotification: '清单确认通知', + RegulationTaskConfirmation: '任务确认任务', + DesignComplianceTask: '设计符合性任务', + PreHomoTask: 'Pre-Homo任务', + ValidationTask: '验证符合性任务', + DesignComplianceNotification: '设计符合性通知', + PreHomoNotification: 'Pre-Homo通知', + ValidationComplianceNotification: '验证符合性通知', + RegulationTaskConfirmationNotification: '任务确认通知', + evaluationMethod: '评估方式', + uploadRelevantMaterials: '相关资料上传', + RelevantMaterials: '相关资料', + processBackground: '流程背景', + selectedStandard: '所选标准', + standardDecompositionDocument: '带入标准分解单', + pleaseSelectStandardFirst: '请先选择标准', + evaluatorFeedback: '评估人反馈', + nameTechnicalDocument: '技术文件名称', + chapter: '章节', + problemDescription: '问题说明', + filingExternalOpinions: '对外意见归档', + initiateProcessForCurrentStandard: '针对当前标准发起流程', + engineerFeedbackResults: '工程师反馈结果', + fileExport: '文件导出', + feedbackTime: '反馈时间', + regulatoryTechnologyAssessmentProcess: '法规技术评估流程', + feedbackEvaluation: '反馈评估', + clauseEvaluation: '条款评估', + standardDocuments: '标准文件', + pleaseCompleteTheEvaluationMethodorEvaluator: '请补全列表中评估人', + reviewComments: '审核意见', + PleaseCompleteList: '请补全列表中符合性结果', + sponsorFeedback: '发起人反馈', + processNumber: '流程编号', + processName: '流程名称', + feedbackResults: '反馈结果', + theDoesNotSupportPreview: '当前文件格式不支持预览', + releaseSituation: '发布情况', + comparisonResults: '对比结果', + Published: '已发布', + initiateComparison: '发起对比', + translationLanguage: '翻译语言', + translationResults: '翻译结果', + conversionTime: '转换时间', + category: '类别', + RegulatoryProcessEvaluationResults: '法规流程评估结果', + ViewConformanceResults: '查看符合性结果', + CommentsCollectionResultsForReference: '意见收集结果', + TechnicalEvaluationResultsForReference: '技术评估结果', + ComplianceConfirmationRecord: '符合性确认记录', + complianceConfirmation: '符合性确认', + Deriveconformanceresults: '导出符合性结果', + Regulatorycompliancekanban: '法规符合性看板', + noComparisonDocumentSelected: '未选择对比文档', + RemarkInfo: '备注信息', + initiateDocumentComparison: '发起文档对比', + comparativeComments: '对比评论', + viewTheComparisonResults: '查看对比结果', + addFullTextComment: '添加全文评论', + turnOffAutomaticMatching: '关闭自动匹配', + exportComparisonReport: '导出对比报告', + comparisonDifferenceComment: '对比差异评论', + fullTextComments: '全文评论', + fileDeclaration: '文件说明', + FileForDetails: '文件详情', + Converting: '转换中', + convertNetwork: '转换完成', + convertFailed: '转换失败', + standardData: '标准数据', + Theorganization: '组织机构', + Addingfolder: '新增文件夹', + Addingsubfolders: '新增子文件夹', + Editfolder: '编辑文件夹', + Deletefolders: '删除文件夹', + Foldername: '文件夹名称', + Folderpermissions: '文件夹权限', + Folderorder: '文件夹顺序', + Downloadprivileges: '下载权限', + Openpersonnel: '开放人员', + originalText: '原文', + translatedText: '译文', + Administrativeprivileges: '管理权限', + Checkthepermissions: '查看权限', + onlyFilesUploaded: '只能上传.docx、.doc文件', + uploadedbyyourself: '只能删除自己上传的文件数据', + doNotHavePermissionDeleteData: '没有权限删除此数据', + onlyCompletedDataCanBeDeleted: '只能删除已完成的数据', + Parametercollection: '参数收集', + Collectlist: '收集清单', + Statisticalmodels: '统计模式', + Inthecollection: '收集中', + Notatthe: '未开始', + Thepercentage: '百分比', + problemKnowledgeBase: '知识分享', + recentHotSpots: '近期热点', + disseminationMaterials: '传播物料', + informationSafety: '信息安全', + blueBook: '蓝皮书', + invoiceCollection: '发票合集', + productHighlights: '产品亮点', + financialReimbursement: '财务报销', + classificationMaintenance: '分类维护', + managePublishing: '管理发布', + displayPermission: '展示权限', + authorizedUser: '权限用户', + problemClassification: '问题分类', + market: '市场', + documentNumber: '文档编号', + documentTitle: '文档标题', + bringInDocumentInformation: '带入文档信息', + addStandardInformation: '添加标准信息', + thereWhichCannotDeleted: '该标题下存在子标题无法进行删除', + sdt: '工程接口人', + dre: '填写人', + applicableInstructionsMarketList: '市场清单适用说明', + pleaseSelectTheDataCompared: '请选择需要对比的数据', + problemLabel: '分类', + personCharge: '负责人', + addLabel: '新增分类', + editLabel: '编辑标签', + applicableMarket: '适用市场', + templateMaintenance: '模板维护', + associatedWebsite: '关联网址', + dropDownOptions: '下拉选项', + dropDownOptionMaintenance: '下拉选项维护', + displayInformation: '展示信息', + addComparison: '添加对比', + showOrNot: '是否展示', + comparisonMarket: '对比市场', + share: '分享', + simplifiedChinese: '简体中文', + uploadOnly: '只能上传', + turnOnAutoMatch: '打开自动匹配', + Adjustareasofresponsibility: '调整责任领域', + regulatoryTechnicalAssessment: '法规技术评估', + OpenOne: '公开', + Privacy: '私密', punctuationmark: '只能输入除#号外的英文标点符号', created: '创建时间', updated: '更新时间', diff --git a/jero-web/src/components/AdjustareaSofrespon/index.vue b/jero-web/src/components/AdjustareaSofrespon/index.vue index 0ca263894..4d39fee45 100644 --- a/jero-web/src/components/AdjustareaSofrespon/index.vue +++ b/jero-web/src/components/AdjustareaSofrespon/index.vue @@ -31,7 +31,7 @@ - + diff --git a/jero-web/src/components/AssignedBy/index.vue b/jero-web/src/components/AssignedBy/index.vue index cd5d2c05b..1fa1549e4 100644 --- a/jero-web/src/components/AssignedBy/index.vue +++ b/jero-web/src/components/AssignedBy/index.vue @@ -55,7 +55,7 @@ />
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('submit') }}
diff --git a/jero-web/src/components/AssignedByHomo/index.vue b/jero-web/src/components/AssignedByHomo/index.vue index 67cebc36f..e8a604c68 100644 --- a/jero-web/src/components/AssignedByHomo/index.vue +++ b/jero-web/src/components/AssignedByHomo/index.vue @@ -55,7 +55,7 @@ />
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('submit') }}
diff --git a/jero-web/src/components/ParameterLibraryAdd/index.vue b/jero-web/src/components/ParameterLibraryAdd/index.vue index 6ddfd2bed..06c19cd34 100644 --- a/jero-web/src/components/ParameterLibraryAdd/index.vue +++ b/jero-web/src/components/ParameterLibraryAdd/index.vue @@ -74,7 +74,7 @@
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('submit') }}
diff --git a/jero-web/src/components/ReferenceParameter/index.vue b/jero-web/src/components/ReferenceParameter/index.vue index fd0799e07..671a7e5da 100644 --- a/jero-web/src/components/ReferenceParameter/index.vue +++ b/jero-web/src/components/ReferenceParameter/index.vue @@ -82,7 +82,7 @@
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('confirm') }}
diff --git a/jero-web/src/components/SynchronousSubmissionLibrary/index.vue b/jero-web/src/components/SynchronousSubmissionLibrary/index.vue index 31895648b..6543ea67e 100644 --- a/jero-web/src/components/SynchronousSubmissionLibrary/index.vue +++ b/jero-web/src/components/SynchronousSubmissionLibrary/index.vue @@ -18,7 +18,7 @@
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('submit') }}
diff --git a/jero-web/src/components/TaskCutOffTime/index.vue b/jero-web/src/components/TaskCutOffTime/index.vue index 2837302dd..cb2393d61 100644 --- a/jero-web/src/components/TaskCutOffTime/index.vue +++ b/jero-web/src/components/TaskCutOffTime/index.vue @@ -46,7 +46,7 @@ - + diff --git a/jero-web/src/components/TaskCutOffTime/indexonekey.vue b/jero-web/src/components/TaskCutOffTime/indexonekey.vue index f266acc78..26fb74a32 100644 --- a/jero-web/src/components/TaskCutOffTime/indexonekey.vue +++ b/jero-web/src/components/TaskCutOffTime/indexonekey.vue @@ -46,7 +46,7 @@ - + diff --git a/jero-web/src/components/exporthistory/index.vue b/jero-web/src/components/exporthistory/index.vue index ced0febbe..3441d1e09 100644 --- a/jero-web/src/components/exporthistory/index.vue +++ b/jero-web/src/components/exporthistory/index.vue @@ -62,7 +62,7 @@ /> - + diff --git a/jero-web/src/components/frameAssembly/index.vue b/jero-web/src/components/frameAssembly/index.vue index 5f1ba686d..291d790cd 100644 --- a/jero-web/src/components/frameAssembly/index.vue +++ b/jero-web/src/components/frameAssembly/index.vue @@ -72,7 +72,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/components/layouts/UserLayout.vue b/jero-web/src/components/layouts/UserLayout.vue index ebb4b15bd..607454014 100644 --- a/jero-web/src/components/layouts/UserLayout.vue +++ b/jero-web/src/components/layouts/UserLayout.vue @@ -10,18 +10,18 @@ -
- - -
+ + + +
-
- 合众未来 - HEZHONGWEILAI -
+ + + +
@@ -174,7 +174,7 @@ height: 100%; .mobile{ position: absolute; - top: 6rem; + top: 3rem; width: 100%; display: flex; flex-direction: column; diff --git a/jero-web/src/components/tools/UserMenu.vue b/jero-web/src/components/tools/UserMenu.vue index 8f6eae6a4..9832858cb 100644 --- a/jero-web/src/components/tools/UserMenu.vue +++ b/jero-web/src/components/tools/UserMenu.vue @@ -31,18 +31,11 @@ - - - - - - - - - - - - +
+ + + + @@ -231,8 +224,8 @@ hiddenClick() { this.shows = false }, - Jumpflybook(){ - window.open('https://eicgyqr5mc.feishu.cn/docx/doxcnY2GbQfMSMqLP0eIFzFlEcd', '_blank'); + Jumpflybook() { + window.open('https://eicgyqr5mc.feishu.cn/docx/doxcnY2GbQfMSMqLP0eIFzFlEcd', '_blank') }, Jumpoperationguide(){ window.open('https://eicgyqr5mc.feishu.cn/docx/ZyhWdIz7EoMZ68xhI2bckcWWnMg', '_blank'); @@ -401,6 +394,7 @@ .action { color: rgba(0, 0, 0, 0.65) !important; + font-size: 14px; } .action .avatar { diff --git a/jero-web/src/config/router.config.js b/jero-web/src/config/router.config.js index a38ca4bad..a1b5db65a 100644 --- a/jero-web/src/config/router.config.js +++ b/jero-web/src/config/router.config.js @@ -477,6 +477,88 @@ export const constantRouterMap = [ name: 'TaskPlanList', component: () => import(/* webpackChunkName: "user" */ '@/views/projectManagement/projectStatusBoard/components/TaskPlanList') }, + + + /* 手机端开始 */ + //搜索 + { + path: '/phoneSearch', + name: 'phoneSearch', + component: () => import('@/views/phoneView/search') + }, + //待办中心 + { + path: '/phoneToDoCenter', + name: 'phoneToDoCenter', + component: () => import('@/views/phoneView/toDoCenter') + }, + //任务数据 + { + path: '/phoneTaskData', + name: 'phoneTaskData', + component: () => import('@/views/phoneView/taskData') + }, + //我的 + { + path: '/phoneHome', + name: 'phoneHome', + component: () => import('@/views/phoneView/home') + }, + //搜索列表 + { + path: '/phoneSearchList', + name: 'phoneSearchList', + component: () => import('@/views/phoneView/searchList') + }, + //文档详情 + { + path: '/phoneDocumentDetails', + name: 'phoneDocumentDetails', + component: () => import('@/views/phoneView/documentDetails') + }, + //流程 + { + path: '/phoneProcessManagement', + name: 'phoneProcessManagement', + component: () => import('@/views/phoneView/processManagement') + }, + //知识分享 + { + path: '/phoneProblemKnowledgeBase', + name: 'phoneProblemKnowledgeBase', + component: () => import('@/views/phoneView/problemKnowledgeBase') + }, + //办理页面 + { + path: '/phoneHandlingPage', + name: 'phoneHandlingPage', + component: () => import('@/views/phoneView/handlingPage') + }, + //我的收藏 + { + path: '/phoneMyCollection', + name: 'phoneMyCollection', + component: () => import('@/views/phoneView/myCollection') + }, + //最近预览 + { + path: '/phoneRecentBrowsing', + name: 'phoneRecentBrowsing', + component: () => import('@/views/phoneView/recentBrowsing') + }, + //我的订阅 + { + path: '/phoneMySubscribe', + name: 'phoneMySubscribe', + component: () => import('@/views/phoneView/mySubscribe') + }, + //perhome办理流程 + { + path: '/phonePreHomoMangement', + name: 'phonePreHomoMangement', + component: () => import('@/views/phoneView/preHomoMangement') + }, + /* 手机端结束 */ // { // path:'/vehicleinformation', // name: 'vehicleinformation', diff --git a/jero-web/src/main.js b/jero-web/src/main.js index 171fe1fb7..ea78ffa30 100644 --- a/jero-web/src/main.js +++ b/jero-web/src/main.js @@ -65,12 +65,16 @@ import '@/components/JVxeCells/install' // 挂载全局使用的方法 import VueDraggableResizable from 'vue-draggable-resizable' +import Vant from 'vant'; +import 'vant/lib/index.css'; +import 'amfe-flexible/index.js' Vue.component('vue-draggable-resizable', VueDraggableResizable) Vue.config.productionTip = false Vue.use(Storage, config.storageOptions) Vue.use(Antd) Vue.use(VueAxios, router) Vue.use(Viser) +Vue.use(Vant); Vue.use(hasPermission) Vue.use(JDictSelectTag) Vue.use(Print) diff --git a/jero-web/src/permission.js b/jero-web/src/permission.js index e040aff0b..9c15d3171 100644 --- a/jero-web/src/permission.js +++ b/jero-web/src/permission.js @@ -10,6 +10,32 @@ import { JSEncrypt } from 'jsencrypt' import { getAction } from '@/api/manage' import { welcome } from '@/utils/util' +// 判断当前设备 +function isMobile() { + var userAgentInfo = navigator.userAgent + + var mobileAgents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod'] + + var mobile_flag = false + + //根据userAgent判断是否是手机 + for (var v = 0; v < mobileAgents.length; v++) { + if (userAgentInfo.indexOf(mobileAgents[v]) > 0) { + mobile_flag = true + break + } + } + var screen_width = window.screen.width + var screen_height = window.screen.height + + //根据屏幕分辨率判断是否是手机 + if (screen_width < 500 && screen_height < 800) { + mobile_flag = true + } + return mobile_flag +} + +let mobile = isMobile() NProgress.configure({ showSpinner: false }) // NProgress Configuration // TODO 线上部署在conmponetns/tools/UserMenu.vue的退出登录时需解开代码以及注释代码 @@ -46,7 +72,11 @@ router.beforeEach((to, from, next) => { store.commit('SET_AVATAR', res.result.userInfo.avatar) let fullPath = '' if (to.fullPath == '/') { - fullPath = INDEX_MAIN_PAGE_PATH + if (mobile) { + fullPath = '/phoneSearch' + } else { + fullPath = INDEX_MAIN_PAGE_PATH + } } else { fullPath = to.path } @@ -64,7 +94,13 @@ router.beforeEach((to, from, next) => { if (Vue.ls.get(ACCESS_TOKEN)) { /* has token */ if (to.path === '/user/login') { - next({ path: INDEX_MAIN_PAGE_PATH }) + let fullPath = '' + if (mobile) { + fullPath = '/phoneSearch' + } else { + fullPath = INDEX_MAIN_PAGE_PATH + } + next({ path: fullPath }) NProgress.done() } else { if (store.getters.permissionList.length === 0) { @@ -81,7 +117,13 @@ router.beforeEach((to, from, next) => { // 根据roles权限生成可访问的路由表 // 动态添加可访问路由表 router.addRoutes(store.getters.addRouters) - const redirect = decodeURIComponent(from.query.redirect || to.path) + let redirect = decodeURIComponent(from.query.redirect || to.path) + if (mobile) { + if (redirect == '/'){ + redirect = '/phoneSearch' + } + } + if (to.path === redirect) { // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record next({ ...to, replace: true }) @@ -103,7 +145,11 @@ router.beforeEach((to, from, next) => { let fullPath = '' if (to.fullPath == '/') { - fullPath = INDEX_MAIN_PAGE_PATH + if (mobile) { + fullPath = '/phoneSearch' + } else { + fullPath = INDEX_MAIN_PAGE_PATH + } } else { fullPath = to.path } diff --git a/jero-web/src/utils/kkfileView.js b/jero-web/src/utils/kkfileView.js new file mode 100644 index 000000000..18bb49ab7 --- /dev/null +++ b/jero-web/src/utils/kkfileView.js @@ -0,0 +1,20 @@ +import { Base64 } from 'js-base64' +import { Toast } from 'vant' + +let downLoadFileUrl = window._CONFIG['domianPreviewURL'] + '/sys/common/download' +let downLoadImgUrl = window._CONFIG['domianWebImgURL'] + '/sys/common/download' + +export function kkFileView(fileName, fileId) { + let index1 = fileName.lastIndexOf('.') + let index2 = fileName.length + let fileSuffix = fileName.substring(index1, index2) + if (fileSuffix == '.docx' || fileSuffix == '.doc' || fileSuffix == '.pdf' || fileSuffix == '.xlsx' || fileSuffix == '.xls') { + let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(downLoadFileUrl + '/' + fileId + fileSuffix) + window.open(url) + } else if (fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') { + let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(downLoadImgUrl + '/' + fileId + fileSuffix) + window.open(url) + } else { + Toast('当前格式不支持预览') + } +} \ No newline at end of file diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/displayInformationModel.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/displayInformationModel.vue index 39f36a0d8..5237ee279 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/displayInformationModel.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/displayInformationModel.vue @@ -55,7 +55,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue b/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue index 12be5c8b3..ca6173da4 100644 --- a/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue +++ b/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue @@ -97,7 +97,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/businessSupport/regulationReport/components/modules/managementAdd.vue b/jero-web/src/views/businessSupport/regulationReport/components/modules/managementAdd.vue index 2fdbfc14e..989438e63 100644 --- a/jero-web/src/views/businessSupport/regulationReport/components/modules/managementAdd.vue +++ b/jero-web/src/views/businessSupport/regulationReport/components/modules/managementAdd.vue @@ -56,7 +56,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/ceshiList/modules/addForm.vue b/jero-web/src/views/ceshiList/modules/addForm.vue index 0d5daeb79..d1273465a 100644 --- a/jero-web/src/views/ceshiList/modules/addForm.vue +++ b/jero-web/src/views/ceshiList/modules/addForm.vue @@ -17,7 +17,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/documentManage/library/docDetail/index.vue b/jero-web/src/views/documentManage/library/docDetail/index.vue index 7e758c7ee..d7dc03dc5 100644 --- a/jero-web/src/views/documentManage/library/docDetail/index.vue +++ b/jero-web/src/views/documentManage/library/docDetail/index.vue @@ -946,12 +946,14 @@ margin-right: 4px; color: #01A0AC; cursor: pointer; + font-size: 14px; } .leftconteTdInformation-icon { color: #01A0AC; cursor: pointer; margin-right: 6px; + font-size: 14px; } .rightTdInformation { diff --git a/jero-web/src/views/documentManage/library/modules/addForm.vue b/jero-web/src/views/documentManage/library/modules/addForm.vue index 214cd6b4b..45411f04f 100644 --- a/jero-web/src/views/documentManage/library/modules/addForm.vue +++ b/jero-web/src/views/documentManage/library/modules/addForm.vue @@ -17,7 +17,7 @@ :url="url" />
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/documentTools/virtualList/components/editModel.vue b/jero-web/src/views/documentTools/virtualList/components/editModel.vue index 14903e020..86c3f38e6 100644 --- a/jero-web/src/views/documentTools/virtualList/components/editModel.vue +++ b/jero-web/src/views/documentTools/virtualList/components/editModel.vue @@ -611,7 +611,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/documentTools/virtualList/index.vue b/jero-web/src/views/documentTools/virtualList/index.vue index 007427c79..c18ebaacd 100644 --- a/jero-web/src/views/documentTools/virtualList/index.vue +++ b/jero-web/src/views/documentTools/virtualList/index.vue @@ -159,7 +159,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/externalReports/components/addModel.vue b/jero-web/src/views/externalReports/components/addModel.vue index 4a8800e9a..67d548210 100644 --- a/jero-web/src/views/externalReports/components/addModel.vue +++ b/jero-web/src/views/externalReports/components/addModel.vue @@ -51,7 +51,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/externalReports/components/handle.vue b/jero-web/src/views/externalReports/components/handle.vue index b27c7847a..b8b6d8784 100644 --- a/jero-web/src/views/externalReports/components/handle.vue +++ b/jero-web/src/views/externalReports/components/handle.vue @@ -41,7 +41,7 @@
- {{$t('close')}} + {{$t('close')}}
diff --git a/jero-web/src/views/modules/message/modules/SysMessageModal.vue b/jero-web/src/views/modules/message/modules/SysMessageModal.vue index 9f6231cae..269e5c922 100644 --- a/jero-web/src/views/modules/message/modules/SysMessageModal.vue +++ b/jero-web/src/views/modules/message/modules/SysMessageModal.vue @@ -77,7 +77,7 @@
- 取消 + 取消 提交
diff --git a/jero-web/src/views/otamanagement/upgradeactivity/components/upgradecompletion.vue b/jero-web/src/views/otamanagement/upgradeactivity/components/upgradecompletion.vue index 3fa22b2c4..a69ac79df 100644 --- a/jero-web/src/views/otamanagement/upgradeactivity/components/upgradecompletion.vue +++ b/jero-web/src/views/otamanagement/upgradeactivity/components/upgradecompletion.vue @@ -166,7 +166,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
@@ -279,7 +279,7 @@ export default { if (res.success) { this.confirmLoading = false this.$message.success(this.$t('OperationSuccessful')) - + } else { this.$message.warning(res.message) this.confirmLoading = false diff --git a/jero-web/src/views/parameter/ParameterTemplate/components/addModel.vue b/jero-web/src/views/parameter/ParameterTemplate/components/addModel.vue index 8844830f0..78d630633 100644 --- a/jero-web/src/views/parameter/ParameterTemplate/components/addModel.vue +++ b/jero-web/src/views/parameter/ParameterTemplate/components/addModel.vue @@ -64,7 +64,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/parameter/ParameterTemplate/index.vue b/jero-web/src/views/parameter/ParameterTemplate/index.vue index bf008c398..e9d82b960 100644 --- a/jero-web/src/views/parameter/ParameterTemplate/index.vue +++ b/jero-web/src/views/parameter/ParameterTemplate/index.vue @@ -107,7 +107,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/parameter/escalationlibrary/components/addModel.vue b/jero-web/src/views/parameter/escalationlibrary/components/addModel.vue index 940a9f193..3afce08ea 100644 --- a/jero-web/src/views/parameter/escalationlibrary/components/addModel.vue +++ b/jero-web/src/views/parameter/escalationlibrary/components/addModel.vue @@ -64,7 +64,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/parameter/escalationlibrary/index.vue b/jero-web/src/views/parameter/escalationlibrary/index.vue index 67c5295ec..eaae0dcc7 100644 --- a/jero-web/src/views/parameter/escalationlibrary/index.vue +++ b/jero-web/src/views/parameter/escalationlibrary/index.vue @@ -97,7 +97,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('determine')}}
diff --git a/jero-web/src/views/parameter/managementdetails/commponts/conventionalmodle.vue b/jero-web/src/views/parameter/managementdetails/commponts/conventionalmodle.vue index ad7f2ee2f..436fd4bee 100644 --- a/jero-web/src/views/parameter/managementdetails/commponts/conventionalmodle.vue +++ b/jero-web/src/views/parameter/managementdetails/commponts/conventionalmodle.vue @@ -115,7 +115,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('export')}}
diff --git a/jero-web/src/views/parameter/managementdetails/commponts/customexportmodle.vue b/jero-web/src/views/parameter/managementdetails/commponts/customexportmodle.vue index c0a2474a3..f2aa37590 100644 --- a/jero-web/src/views/parameter/managementdetails/commponts/customexportmodle.vue +++ b/jero-web/src/views/parameter/managementdetails/commponts/customexportmodle.vue @@ -85,7 +85,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('export')}}
diff --git a/jero-web/src/views/parameter/parameterexport/components/addModel.vue b/jero-web/src/views/parameter/parameterexport/components/addModel.vue index f3ef9a554..33c2e66f6 100644 --- a/jero-web/src/views/parameter/parameterexport/components/addModel.vue +++ b/jero-web/src/views/parameter/parameterexport/components/addModel.vue @@ -102,7 +102,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/parameter/parameterexport/index.vue b/jero-web/src/views/parameter/parameterexport/index.vue index 35c2c4398..386bd9975 100644 --- a/jero-web/src/views/parameter/parameterexport/index.vue +++ b/jero-web/src/views/parameter/parameterexport/index.vue @@ -101,7 +101,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/parameter/parameterlist/components/addModel.vue b/jero-web/src/views/parameter/parameterlist/components/addModel.vue index 250e8cca1..1cecb8232 100644 --- a/jero-web/src/views/parameter/parameterlist/components/addModel.vue +++ b/jero-web/src/views/parameter/parameterlist/components/addModel.vue @@ -313,7 +313,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/phoneView/components/header.vue b/jero-web/src/views/phoneView/components/header.vue new file mode 100644 index 000000000..56d84d65b --- /dev/null +++ b/jero-web/src/views/phoneView/components/header.vue @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/documentDetails.vue b/jero-web/src/views/phoneView/documentDetails.vue new file mode 100644 index 000000000..ba0c63afb --- /dev/null +++ b/jero-web/src/views/phoneView/documentDetails.vue @@ -0,0 +1,543 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/handlingPage.vue b/jero-web/src/views/phoneView/handlingPage.vue new file mode 100644 index 000000000..36423dc24 --- /dev/null +++ b/jero-web/src/views/phoneView/handlingPage.vue @@ -0,0 +1,211 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/home.vue b/jero-web/src/views/phoneView/home.vue new file mode 100644 index 000000000..4462c9cad --- /dev/null +++ b/jero-web/src/views/phoneView/home.vue @@ -0,0 +1,284 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/myCollection.vue b/jero-web/src/views/phoneView/myCollection.vue new file mode 100644 index 000000000..7360ff52e --- /dev/null +++ b/jero-web/src/views/phoneView/myCollection.vue @@ -0,0 +1,324 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/mySubscribe.vue b/jero-web/src/views/phoneView/mySubscribe.vue new file mode 100644 index 000000000..8a694d09c --- /dev/null +++ b/jero-web/src/views/phoneView/mySubscribe.vue @@ -0,0 +1,203 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/preHomoMangement.vue b/jero-web/src/views/phoneView/preHomoMangement.vue new file mode 100644 index 000000000..d477cd5c6 --- /dev/null +++ b/jero-web/src/views/phoneView/preHomoMangement.vue @@ -0,0 +1,943 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/problemKnowledgeBase.vue b/jero-web/src/views/phoneView/problemKnowledgeBase.vue new file mode 100644 index 000000000..23e825b12 --- /dev/null +++ b/jero-web/src/views/phoneView/problemKnowledgeBase.vue @@ -0,0 +1,694 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/processManagement.vue b/jero-web/src/views/phoneView/processManagement.vue new file mode 100644 index 000000000..68d8fabae --- /dev/null +++ b/jero-web/src/views/phoneView/processManagement.vue @@ -0,0 +1,898 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/recentBrowsing.vue b/jero-web/src/views/phoneView/recentBrowsing.vue new file mode 100644 index 000000000..86343e132 --- /dev/null +++ b/jero-web/src/views/phoneView/recentBrowsing.vue @@ -0,0 +1,189 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/search.vue b/jero-web/src/views/phoneView/search.vue new file mode 100644 index 000000000..fd76a09c1 --- /dev/null +++ b/jero-web/src/views/phoneView/search.vue @@ -0,0 +1,269 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/searchList.vue b/jero-web/src/views/phoneView/searchList.vue new file mode 100644 index 000000000..87b2ab4b7 --- /dev/null +++ b/jero-web/src/views/phoneView/searchList.vue @@ -0,0 +1,735 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/taskData.vue b/jero-web/src/views/phoneView/taskData.vue new file mode 100644 index 000000000..fde6d12c4 --- /dev/null +++ b/jero-web/src/views/phoneView/taskData.vue @@ -0,0 +1,464 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/phoneView/toDoCenter.vue b/jero-web/src/views/phoneView/toDoCenter.vue new file mode 100644 index 000000000..ff0bdbc17 --- /dev/null +++ b/jero-web/src/views/phoneView/toDoCenter.vue @@ -0,0 +1,1070 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/processCenter/procedure/index.vue b/jero-web/src/views/processCenter/procedure/index.vue index 92c716948..3cdbd8455 100644 --- a/jero-web/src/views/processCenter/procedure/index.vue +++ b/jero-web/src/views/processCenter/procedure/index.vue @@ -92,7 +92,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/projectManagement/components/addModel.vue b/jero-web/src/views/projectManagement/components/addModel.vue index d7735e43c..080bbc79f 100644 --- a/jero-web/src/views/projectManagement/components/addModel.vue +++ b/jero-web/src/views/projectManagement/components/addModel.vue @@ -258,7 +258,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/projectManagement/components/certificationList/components/addModel.vue b/jero-web/src/views/projectManagement/components/certificationList/components/addModel.vue index acea53c59..eb840e41d 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/components/addModel.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/components/addModel.vue @@ -571,7 +571,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/projectManagement/components/listEditModel.vue b/jero-web/src/views/projectManagement/components/listEditModel.vue index 19c079083..2c0166d5e 100644 --- a/jero-web/src/views/projectManagement/components/listEditModel.vue +++ b/jero-web/src/views/projectManagement/components/listEditModel.vue @@ -533,7 +533,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}} diff --git a/jero-web/src/views/projectManagement/components/listOfRegulationsView.vue b/jero-web/src/views/projectManagement/components/listOfRegulationsView.vue index d0bfc9c1d..25a12d88f 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulationsView.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulationsView.vue @@ -478,7 +478,7 @@
- {{$t('cancel')}} + {{$t('cancel')}}
diff --git a/jero-web/src/views/projectManagement/components/listOfRelevantPersonnel.vue b/jero-web/src/views/projectManagement/components/listOfRelevantPersonnel.vue index fa30a9871..c77e23344 100644 --- a/jero-web/src/views/projectManagement/components/listOfRelevantPersonnel.vue +++ b/jero-web/src/views/projectManagement/components/listOfRelevantPersonnel.vue @@ -151,7 +151,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('determine')}}
diff --git a/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue b/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue index e29c07668..5bbfbc3a9 100644 --- a/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue +++ b/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue @@ -41,7 +41,7 @@
-
+
@@ -186,7 +186,7 @@ this.submitdata = this.submitquantity this.syncReportdata = this.syncReportquantity } - var chartDom = document.getElementById('main-left') + var chartDom = document.getElementById('main-left-Collect') var myChart = echarts.init(chartDom) var option var option1 @@ -345,7 +345,7 @@ }, mainLeftEcharts(data, color) { - this.getEcharts('main-left', this.$t('Parametercollection'), color, data, 1) + this.getEcharts('main-left-Collect', this.$t('Parametercollection'), color, data, 1) }, responsibility(item) { this.$emit('currentStatus', item) @@ -367,7 +367,7 @@ border: 2px #eff1f3 solid; border-radius: 6px; - #main-left { + #main-left-Collect { width: 100%; height: 100%; padding: 24px 20px; diff --git a/jero-web/src/views/projectManagement/components/settingList.vue b/jero-web/src/views/projectManagement/components/settingList.vue index 795bba62b..fbb5776ab 100644 --- a/jero-web/src/views/projectManagement/components/settingList.vue +++ b/jero-web/src/views/projectManagement/components/settingList.vue @@ -387,7 +387,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/projectManagement/components/toResubmitForm.vue b/jero-web/src/views/projectManagement/components/toResubmitForm.vue index 09d07ccf4..d61438078 100644 --- a/jero-web/src/views/projectManagement/components/toResubmitForm.vue +++ b/jero-web/src/views/projectManagement/components/toResubmitForm.vue @@ -125,7 +125,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/projectManagement/dialog/ParameterTemplate.vue b/jero-web/src/views/projectManagement/dialog/ParameterTemplate.vue index ea671769a..1b839c547 100644 --- a/jero-web/src/views/projectManagement/dialog/ParameterTemplate.vue +++ b/jero-web/src/views/projectManagement/dialog/ParameterTemplate.vue @@ -61,7 +61,7 @@ />
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('submit') }}
diff --git a/jero-web/src/views/projectManagement/dialog/ParameterTemplateAdd.vue b/jero-web/src/views/projectManagement/dialog/ParameterTemplateAdd.vue index 76c193aeb..eebba64a9 100644 --- a/jero-web/src/views/projectManagement/dialog/ParameterTemplateAdd.vue +++ b/jero-web/src/views/projectManagement/dialog/ParameterTemplateAdd.vue @@ -171,7 +171,7 @@ />
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('submit') }}
diff --git a/jero-web/src/views/projectManagement/dialog/ProjectCollectionParameters.vue b/jero-web/src/views/projectManagement/dialog/ProjectCollectionParameters.vue index a4bcebb6d..966ce33bb 100644 --- a/jero-web/src/views/projectManagement/dialog/ProjectCollectionParameters.vue +++ b/jero-web/src/views/projectManagement/dialog/ProjectCollectionParameters.vue @@ -125,7 +125,7 @@ />
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('submit') }}
diff --git a/jero-web/src/views/projectManagement/dialog/configure.vue b/jero-web/src/views/projectManagement/dialog/configure.vue index f75ab52eb..2a1790389 100644 --- a/jero-web/src/views/projectManagement/dialog/configure.vue +++ b/jero-web/src/views/projectManagement/dialog/configure.vue @@ -95,7 +95,7 @@
- {{$t('addConfiguration')}} + {{$t('addConfiguration')}} {{$t('deleteConfiguration')}} @@ -107,7 +107,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/projectManagement/dialog/parametercolumn.vue b/jero-web/src/views/projectManagement/dialog/parametercolumn.vue index c61e3fe7e..84b89eeb6 100644 --- a/jero-web/src/views/projectManagement/dialog/parametercolumn.vue +++ b/jero-web/src/views/projectManagement/dialog/parametercolumn.vue @@ -87,7 +87,7 @@ />
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('submit') }}
diff --git a/jero-web/src/views/projectManagement/projectLibrary/components/changeExtensionModel.vue b/jero-web/src/views/projectManagement/projectLibrary/components/changeExtensionModel.vue index 69d0ab7c0..7267adb3c 100644 --- a/jero-web/src/views/projectManagement/projectLibrary/components/changeExtensionModel.vue +++ b/jero-web/src/views/projectManagement/projectLibrary/components/changeExtensionModel.vue @@ -45,7 +45,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/projectManagement/projectStatusBoard/components/statistics.vue b/jero-web/src/views/projectManagement/projectStatusBoard/components/statistics.vue index 182febd9f..728eacdb6 100644 --- a/jero-web/src/views/projectManagement/projectStatusBoard/components/statistics.vue +++ b/jero-web/src/views/projectManagement/projectStatusBoard/components/statistics.vue @@ -93,7 +93,7 @@
- {{$t('cancel')}} + {{$t('cancel')}}
diff --git a/jero-web/src/views/regulationsKanban/components/addModel.vue b/jero-web/src/views/regulationsKanban/components/addModel.vue index 9fdf85337..e3e44df3e 100644 --- a/jero-web/src/views/regulationsKanban/components/addModel.vue +++ b/jero-web/src/views/regulationsKanban/components/addModel.vue @@ -151,7 +151,7 @@
- + diff --git a/jero-web/src/views/system/modules/DeptRoleAuthModal.vue b/jero-web/src/views/system/modules/DeptRoleAuthModal.vue index 0e5d53521..0cb5a0db2 100644 --- a/jero-web/src/views/system/modules/DeptRoleAuthModal.vue +++ b/jero-web/src/views/system/modules/DeptRoleAuthModal.vue @@ -46,9 +46,9 @@
- 取消 + 取消 - 仅保存 + 仅保存 保存并关闭 diff --git a/jero-web/src/views/system/modules/DeptRoleUserModal.vue b/jero-web/src/views/system/modules/DeptRoleUserModal.vue index 0a46915d6..6c6a1007e 100644 --- a/jero-web/src/views/system/modules/DeptRoleUserModal.vue +++ b/jero-web/src/views/system/modules/DeptRoleUserModal.vue @@ -41,7 +41,7 @@ - {{$t('cancel')}} + {{$t('cancel')}} {{$t('preservation')}} diff --git a/jero-web/src/views/system/modules/RoleAssignment.vue b/jero-web/src/views/system/modules/RoleAssignment.vue index 91b0d0265..b3232a629 100644 --- a/jero-web/src/views/system/modules/RoleAssignment.vue +++ b/jero-web/src/views/system/modules/RoleAssignment.vue @@ -59,7 +59,7 @@
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('determine') }}
diff --git a/jero-web/src/views/system/modules/UserModal.vue b/jero-web/src/views/system/modules/UserModal.vue index 885cf6ad5..4979c6ebd 100644 --- a/jero-web/src/views/system/modules/UserModal.vue +++ b/jero-web/src/views/system/modules/UserModal.vue @@ -216,7 +216,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/system/modules/UserRoleModal.vue b/jero-web/src/views/system/modules/UserRoleModal.vue index b36f87a01..39bfe5f65 100644 --- a/jero-web/src/views/system/modules/UserRoleModal.vue +++ b/jero-web/src/views/system/modules/UserRoleModal.vue @@ -43,10 +43,10 @@ - + - 取消 - 仅保存 + 取消 + 仅保存 保存并关闭 diff --git a/jero-web/src/views/system/modules/departmentAllocation.vue b/jero-web/src/views/system/modules/departmentAllocation.vue index 42f018b0d..d2a5f9a55 100644 --- a/jero-web/src/views/system/modules/departmentAllocation.vue +++ b/jero-web/src/views/system/modules/departmentAllocation.vue @@ -34,7 +34,7 @@
- {{ $t('cancel') }} + {{ $t('cancel') }} {{ $t('determine') }}
diff --git a/jero-web/src/views/toDoCenter/projectParameterTasks/index.vue b/jero-web/src/views/toDoCenter/projectParameterTasks/index.vue index 6953e3448..4b32d03cc 100644 --- a/jero-web/src/views/toDoCenter/projectParameterTasks/index.vue +++ b/jero-web/src/views/toDoCenter/projectParameterTasks/index.vue @@ -117,7 +117,7 @@ width: 170 }, { - title: this.$t('relatedVersion'), + title: this.$t('Version'), align: 'left', dataIndex: 'version', ellipsis: true, diff --git a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/confirmationDrawer.vue b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/confirmationDrawer.vue index 89489af92..e0bb51541 100644 --- a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/confirmationDrawer.vue +++ b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/confirmationDrawer.vue @@ -116,7 +116,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('determine')}}
diff --git a/jero-web/src/views/user/Login.vue b/jero-web/src/views/user/Login.vue index 868eb8246..35a450bb2 100644 --- a/jero-web/src/views/user/Login.vue +++ b/jero-web/src/views/user/Login.vue @@ -148,12 +148,12 @@ - + 自动登录 - + sso登录 @@ -194,8 +194,8 @@ import Vue from 'vue' import { putAction, postAction, getAction } from '@/api/manage' import { getRSAPublicKey } from '@/api/login.js' - import { login, logout, phoneLogin, thirdLogin } from "@/api/login" - import { ACCESS_TOKEN, USER_NAME,USER_INFO,UI_CACHE_DB_DICT_DATA } from "@/store/mutation-types" + import { login, logout, phoneLogin, thirdLogin } from '@/api/login' + import { ACCESS_TOKEN, USER_NAME, USER_INFO, UI_CACHE_DB_DICT_DATA } from '@/store/mutation-types' const Base64 = require('js-base64').Base64 import { JSEncrypt } from 'jsencrypt' @@ -229,7 +229,7 @@ randCodeImage: '', requestCodeSuccess: false, rsaPublicKey: '', - code:'' + code: '' } }, created() { @@ -237,12 +237,12 @@ Vue.ls.remove(ACCESS_TOKEN) this.handleChangeCheckCode() - let query =[] - if(this.$route.query.redirect){ - query=this.$route.query.redirect.includes('code=')?this.$route.query.redirect.split('code='):[] - this.code=query[1] + let query = [] + if (this.$route.query.redirect) { + query = this.$route.query.redirect.includes('code=') ? this.$route.query.redirect.split('code=') : [] + this.code = query[1] } - if(this.code){ + if (this.code) { this.ssoLoginSuccess() } this.getRouterData() @@ -358,7 +358,13 @@ if (!langCn) { localStorage.setItem('language', 'zh-cn') } - this.$router.push({ path: '/dashboard/analysis' }).catch((res) => { + let fullPath = '' + if (this.mobile) { + fullPath = '/phoneSearch' + } else { + fullPath = '/dashboard/analysis' + } + this.$router.push({ path: fullPath }).catch((res) => { }) this.$notification.success({ message: '欢迎', @@ -413,11 +419,11 @@ }) }, //sso登录跳转 - ssoLogin(){ + ssoLogin() { window.open('https://signin-test.nio.com/oauth2/authorize?client_id=100679&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fdashboard%2Fanalysis&response_type=code', '_blank') }, //sso登录 - ssoLoginSuccess(){ + ssoLoginSuccess() { let that = this let loginParams = {} loginParams.checkKey = that.currdatetime @@ -425,24 +431,28 @@ // 新建JSEncrypt对象 let encrypt = new JSEncrypt() encrypt.setPublicKey(loginParams.rsaPublicKey) - getAction(`opensso/callback`,{code:this.code}).then(res=>{ - if(res.success){ + getAction(`opensso/callback`, { code: this.code }).then(res => { + if (res.success) { Vue.ls.set(ACCESS_TOKEN, res.result.token, 7 * 24 * 60 * 60 * 1000) Vue.ls.set(USER_NAME, res.result.userInfo.username, 7 * 24 * 60 * 60 * 1000) Vue.ls.set(USER_INFO, res.result.userInfo, 7 * 24 * 60 * 60 * 1000) Vue.ls.set(UI_CACHE_DB_DICT_DATA, res.result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000) this.$store.commit('SET_TOKEN', res.result.token) this.$store.commit('SET_INFO', res.result.userInfo) - this.$store.commit('SET_NAME', { username: res.result.userInfo.username,realname: res.result.userInfo.realname, welcome: welcome() }) + this.$store.commit('SET_NAME', { + username: res.result.userInfo.username, + realname: res.result.userInfo.realname, + welcome: welcome() + }) this.$store.commit('SET_AVATAR', res.result.userInfo.avatar) this.loginSuccess() - }else if(res.message=='【单点登录】获取access_token失败'){ + } else if (res.message == '【单点登录】获取access_token失败') { this.ssoLogin() - }else{ + } else { this.$message.error(res.message) } }) - }, + } } } @@ -529,9 +539,9 @@ height: 46% !important; background: transparent; min-height: 0; - padding: 0 2rem 0 2rem; + padding: 0 0.4rem 0 0.4rem; position: absolute; - top: 50%; + top: 3.6rem; margin-top: 6rem; transform: translateY(-50%); diff --git a/jero-web/src/views/virtualAuthenticationList/components/addModel.vue b/jero-web/src/views/virtualAuthenticationList/components/addModel.vue index a8f62b3a7..355358a8f 100644 --- a/jero-web/src/views/virtualAuthenticationList/components/addModel.vue +++ b/jero-web/src/views/virtualAuthenticationList/components/addModel.vue @@ -185,7 +185,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/virtualAuthenticationList/components/editModel.vue b/jero-web/src/views/virtualAuthenticationList/components/editModel.vue index d701773f9..5e685e787 100644 --- a/jero-web/src/views/virtualAuthenticationList/components/editModel.vue +++ b/jero-web/src/views/virtualAuthenticationList/components/editModel.vue @@ -175,7 +175,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}
diff --git a/jero-web/src/views/virtualAuthenticationList/index.vue b/jero-web/src/views/virtualAuthenticationList/index.vue index 9ec008852..809103a57 100644 --- a/jero-web/src/views/virtualAuthenticationList/index.vue +++ b/jero-web/src/views/virtualAuthenticationList/index.vue @@ -154,7 +154,7 @@
- {{$t('cancel')}} + {{$t('cancel')}} {{$t('submit')}}