diff --git a/jero-boot/db/蔚来标准sql/dev_third_record.sql b/jero-boot/db/蔚来标准sql/dev_third_record.sql index f8c534ad3..0468e8dc6 100644 --- a/jero-boot/db/蔚来标准sql/dev_third_record.sql +++ b/jero-boot/db/蔚来标准sql/dev_third_record.sql @@ -1179,4 +1179,10 @@ update onl_cgform_field set is_query = '1', is_read_only = '1' where id = '09fa6 -- 配置表,增加问题知识库预览图片配置 2022-09-27 已同步生产环境 INSERT INTO `laws_weilai`.`sys_config` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `config`, `config_name`) VALUES ('4', 'admin', '2022-09-28 14:35:30', NULL, NULL, 'A01', 'http://grp.nioint.com/', 'domianWebImgURL'); +--问题知识库,增加字段 发布状态 2022-10-13 未同步生产环境 +ALTER TABLE `laws_weilai`.`problem_knowledge_base` + ADD COLUMN `release_status` varchar(50) NULL COMMENT '发布状态' AFTER `release_time`; + +--处理问题知识库数据,发布人,发布时间,发布状态数据sql 2022-10-13 未同步生产环境 +update problem_knowledge_base pkd set pkd.release_status = 'Have released',pkd.release_time = pkd.create_time,pkd.release_user_id = (select su.id from sys_user su where su.username = pkd.create_by) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/RoleEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/RoleEnum.java new file mode 100644 index 000000000..5e344c977 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/RoleEnum.java @@ -0,0 +1,62 @@ +package com.jero.modules.system.enums; + +public enum RoleEnum { + ADMIN_ID("R&H Manager","R&H Manager","manager","1534020391015444481",2), + MANAGER_ID("系统管理员","Administrator","admin","f6817f48af4fb3af11b9e8bf182f618b",3), + COUNTRU_CARD_MANAGE("countryCard管理员","countryCardManage","countryCardManage","1564916346120916993",4), + ; + + String name; + String enName; + String value; + String id; + Integer order; + + RoleEnum(String name, String enName, String value, String id, Integer order) { + this.name = name; + this.enName = enName; + this.value = value; + this.id = id; + this.order = order; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getEnName() { + return enName; + } + + public void setEnName(String enName) { + this.enName = enName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getOrder() { + return order; + } + + public void setOrder(Integer order) { + this.order = order; + } +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index b1ca1cf74..b091fc0c4 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -270,4 +270,10 @@ public interface ISysUserService extends IService { * @return */ List queryUserRoleListInfoByUserId(String userId); + + /** + * 验证当前登录用户是否是超级管理员。 + * @return + */ + boolean isAdministrator(); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index 3f4c2adcb..71dac6e67 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -17,6 +17,7 @@ import com.jero.common.util.oConvertUtils; import com.jero.modules.base.service.BaseCommonService; import com.jero.modules.system.entity.*; import com.jero.modules.system.enums.PPSyncEnum; +import com.jero.modules.system.enums.RoleEnum; import com.jero.modules.system.mapper.*; import com.jero.modules.system.model.SysUserSysDepartModel; import com.jero.modules.system.service.ISysUserService; @@ -24,6 +25,7 @@ import com.jero.modules.system.vo.SysUserDepVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; @@ -586,4 +588,30 @@ public class SysUserServiceImpl extends ServiceImpl impl } return result; } + + /** + * 验证当前登录用户是否是超级管理员 + * @return + */ + @Override + public boolean isAdministrator() { + boolean result = false; + RoleEnum administrator = RoleEnum.MANAGER_ID; + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List userRoleList = this.sysUserRoleMapper.selectList(new QueryWrapper().lambda().eq(SysUserRole::getUserId, currentUser.getId())); // 查询用户所有角色 + if(CollectionUtils.isNotEmpty(userRoleList)){ + List userRoles = userRoleList.stream().filter(userRole -> { + boolean flag = false; + if(StringUtils.equals(userRole.getRoleId(),administrator.getId())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(userRoles)){ + result = true; + } + } + return result; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java index 870abb198..81caaff2c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java @@ -1,6 +1,7 @@ package com.jero.modules.problemKnowledgeBase.entity; import java.io.Serializable; +import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.annotation.IdType; @@ -156,7 +157,7 @@ public class ProblemKnowledgeBaseEO implements Serializable { /**发布日期*/ @Excel(name = "发布日期", width = 15) @ApiModelProperty(value = "发布日期") - private java.lang.String releaseTime; + private Date releaseTime; /**点赞总数量*/ @TableField(exist = false) @@ -195,4 +196,9 @@ public class ProblemKnowledgeBaseEO implements Serializable { /**附件展示数组*/ @TableField(exist = false) private List accessoryFileNameList; + + /**发布状态*/ + @Excel(name = "发布状态", width = 15) + @ApiModelProperty(value = "发布状态") + private String releaseStatus; } 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 a1e1f7bd9..d6f4bfcac 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 @@ -24,6 +24,7 @@ import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.problemKnowledgeBase.entity.*; import com.jero.modules.problemKnowledgeBase.enums.CollectStatusEnum; import com.jero.modules.problemKnowledgeBase.enums.PraiseStatusEnum; +import com.jero.modules.problemKnowledgeBase.enums.ReleaseStatusEnum; import com.jero.modules.problemKnowledgeBase.enums.ShowPermissionsEnum; import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseEOMapper; import com.jero.modules.problemKnowledgeBase.service.*; @@ -114,17 +115,19 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl queryWrapper,ProblemKnowledgeBaseEO problemKnowledgeBaseEO) { /** - * 查询权限 - * 公开:所有人都可以看到。 - * 私密:只有配置了的权限用户可以看到。 + * 2022-10-13增加权限,超级管理员可以看到所有的问题知识库数据。 */ - LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - QueryWrapper userPermissionQueryWrapper = new QueryWrapper<>(); - userPermissionQueryWrapper.lambda().eq(ProblemKnowledgeBaseUserEO::getUserId,currentUser.getId()); - List problemKnowledgeBaseUserEOList = problemKnowledgeBaseUserEOService.list(userPermissionQueryWrapper); + boolean administrator = this.sysUserService.isAdministrator(); + if(!administrator){ + /** + * 查询权限 + * 公开:所有人都可以看到。 + * 私密:只有配置了的权限用户可以看到。 + */ + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + QueryWrapper userPermissionQueryWrapper = new QueryWrapper<>(); + userPermissionQueryWrapper.lambda().eq(ProblemKnowledgeBaseUserEO::getUserId,currentUser.getId()); + List problemKnowledgeBaseUserEOList = problemKnowledgeBaseUserEOService.list(userPermissionQueryWrapper); - List problemKnowledgeBaseIdList = problemKnowledgeBaseUserEOList.stream().map(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId).distinct().collect(Collectors.toList()); + List problemKnowledgeBaseIdList = problemKnowledgeBaseUserEOList.stream().map(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId).distinct().collect(Collectors.toList()); - queryWrapper.lambda().and(query -> { - query.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.OPEN.getValue()); + queryWrapper.lambda().and(query -> { + query.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.OPEN.getValue()); if(CollectionUtils.isNotEmpty(problemKnowledgeBaseIdList)){ query.or(o -> { o.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.PRIVACY.getValue()); o.in(ProblemKnowledgeBaseEO::getId,problemKnowledgeBaseIdList); }); } - }); + }); + } String searchStr = problemKnowledgeBaseEO.getSearchStr(); if(StringUtils.isNotEmpty(searchStr)){ diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index ddd833f50..93cd90b7e 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -198,7 +198,7 @@ module.exports = { entertitle:'Please enter Title', OperationType: 'Operation Type', selectOperationType: 'Please select Operation type', - selectProblemClassification:'Please select Classification', + selectProblemClassification:'Please select Problem Classification', selectMarket:'Please select Market', RequestMethod: 'Request Method', RequestParameters: 'Request Parameters', diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue index abeca523f..487daf815 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue @@ -179,7 +179,10 @@
- {{$t('submit')}} + + {{$t('tempSave')}} + + {{$t('release')}}
@@ -601,7 +604,10 @@ this.formInline[this.uploadName] = attIdList.join(',') this.formInline = { ...this.formInline } }, - submit() { + tempSaveClick(){ + + }, + submit(releaseStatus) { this.$refs.ruleForm.validate(valid => { if (valid) { let formInline = JSON.parse(JSON.stringify(this.formInline)) @@ -633,6 +639,7 @@ }) }) } + formInline.releaseStatus = releaseStatus Action(url, formInline).then((res) => { if (res.success) { this.$message.success(this.$t('OperationSuccessful')) @@ -784,6 +791,7 @@ .box-button { height: 38px; margin-top: 4px; + margin-left: 10px; } .box-button-index { diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue index 78057a352..daab20b60 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue @@ -344,7 +344,8 @@ pageNo: this.pageNo, pageSize: this.pageSize, searchStr: this.searchStr, - problemTypes: selectedTags.join(',') + problemTypes: selectedTags.join(','), + releaseStatus:'Have released' } this.loading = true getAction(this.url.getInfoList, query).then((res) => { diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseRelease.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseRelease.vue index cc029a5c3..16bc05889 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseRelease.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseRelease.vue @@ -12,16 +12,40 @@
- -
-
- {{$t('searchContent')}} + + + +
+
+ {{$t('searchContent')}} +
+ +
+
+ +
+
+ {{$t('releaseStatus')}} +
+ + + + {{ item.name}} + + + +
+
+
+ {{$t('query')}} + {{$t('reset')}} +
- - {{$t('query')}} - {{$t('reset')}} -
+
@@ -41,6 +65,9 @@
{{item.contentOne}}
+
+ {{item.releaseStatus == 'Draft'?$t('draft'):$t('HaveReleased')}} +
{{$t('edit')}} @@ -85,7 +112,17 @@ conList: [], total: 0, pageSize: 10, - searchStr: '', + queryParam: {}, + releaseStatusList: [ + { + name: this.$t('draft'), + value: 'Draft' + }, + { + name: this.$t('HaveReleased'), + value: 'Have released' + } + ], loading: false, administrators: false, downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download', @@ -126,7 +163,7 @@ this.getList() }, ResetSearch() { - this.searchStr = '' + this.queryParam = {} this.pageNo = 1 this.getList() }, @@ -140,7 +177,7 @@ pageNo: this.pageNo, pageSize: this.pageSize, createBy: this.userInfo().username, - searchStr: this.searchStr + ...this.queryParam } this.loading = true getAction(this.url.getInfoList, query).then((res) => { @@ -285,11 +322,21 @@ .text-text-right { padding: 19px 19px; - width: calc(100% - 180px); + width: calc(100% - 300px); box-sizing: border-box; /*margin-left: 38px;*/ } + .text-text-right-text-One { + width: 120px; + height: 100%; + text-align: center; + position: absolute; + right: 180px; + top: 50%; + transform: translate-Y(-50%); + } + .text-text-right-text { width: 180px; height: 100%; @@ -365,16 +412,13 @@ .search-detail-wrap { width: 100%; - margin: 0 auto; + margin-bottom: 16px; } .box-title-text { line-height: 1.4; display: flex; align-items: center; - margin-bottom: 10px; - text-align: center; - justify-content: center; } .title-text { @@ -394,7 +438,7 @@ .box-input { /*min-width: 200px;*/ display: inline-block; - width: 50%; + width: 100%; height: 38px; margin-top: 2px; margin-right: 16px; diff --git a/jero-web/src/views/documentTools/documentComparison/components/comparisonResults.vue b/jero-web/src/views/documentTools/documentComparison/components/comparisonResults.vue index 1456757d9..8e0ed1044 100644 --- a/jero-web/src/views/documentTools/documentComparison/components/comparisonResults.vue +++ b/jero-web/src/views/documentTools/documentComparison/components/comparisonResults.vue @@ -60,7 +60,7 @@ {{resultData.fileNameRight}}
-
+
{{$t('comparisonDifferenceComment')}}
@@ -494,6 +494,7 @@ .operator-text-text { cursor: pointer; margin-right: 53px; + max-width: 138px; font-size: 14px; font-weight: 400; color: #040B29; diff --git a/jero-web/src/views/documentTools/documentComparison/index.vue b/jero-web/src/views/documentTools/documentComparison/index.vue index 85120eb4c..57657ca5e 100644 --- a/jero-web/src/views/documentTools/documentComparison/index.vue +++ b/jero-web/src/views/documentTools/documentComparison/index.vue @@ -42,11 +42,11 @@
-
+
{{$t('initiateComparison')}}
-
+
{{$t('BatchDelete')}}
@@ -67,15 +67,15 @@ {{$t('comparisonResults')}} {{!record.releaseState || record.releaseState == 'draft' ? $t('release') :$t('withdraw')}} {{$t('edit')}} {{$t('delete')}} @@ -132,6 +132,7 @@ pageNo: 1, queryParam: {}, userInfoQuery: {}, + administrators:false, selectedRowKeysRecord: [], columns: [ { @@ -233,6 +234,14 @@ this.queryParam = { ...this.queryParam } } this.userInfoQuery = this.userInfo() + this.administrators = false + if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { + this.userInfo().userRoleList.forEach(res => { + if (res.roleCode == 'admin') { + this.administrators = true + } + }) + } this.getList() }, methods: { diff --git a/jero-web/src/views/documentTools/documentTranslation/index.vue b/jero-web/src/views/documentTools/documentTranslation/index.vue index 36096b058..d12d90c04 100644 --- a/jero-web/src/views/documentTools/documentTranslation/index.vue +++ b/jero-web/src/views/documentTools/documentTranslation/index.vue @@ -59,15 +59,15 @@
-
+
{{$t('upload1')}}
-
+
{{$t('RetrieveFiles')}}
-
+
{{$t('BatchDelete')}}
@@ -86,18 +86,22 @@ > - {{$t('view')}} + {{$t('view')}} {{!record.releaseCondition || record.releaseCondition == 'draft' ? $t('release') :$t('withdraw')}} {{$t('download')}} {{$t('delete')}} @@ -158,6 +162,7 @@ queryParam: {}, userInfoQuery: {}, selectedRowKeysRecord: [], + administrators:false, columns: [ { title: this.$t('standard'), @@ -233,6 +238,14 @@ } this.getList() this.userInfoQuery = this.userInfo() + this.administrators = false + if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { + this.userInfo().userRoleList.forEach(res => { + if (res.roleCode == 'admin') { + this.administrators = true + } + }) + } }, methods: { ...mapGetters(['userInfo']), diff --git a/jero-web/src/views/regulatoryEarlyWarning/index.vue b/jero-web/src/views/regulatoryEarlyWarning/index.vue index dbb45982a..1d39b7282 100644 --- a/jero-web/src/views/regulatoryEarlyWarning/index.vue +++ b/jero-web/src/views/regulatoryEarlyWarning/index.vue @@ -8,11 +8,14 @@ :url="url"/>
-
+
{{$t('Push')}}
-
+
{{$t('export')}}