Merge branch 'dev' into pr@dev@cluster

This commit is contained in:
taojinlong 2022-03-22 17:49:09 +08:00
commit 6a883eb6b2
24 changed files with 186 additions and 91 deletions

View File

@ -1,15 +1,16 @@
package io.dataease.base.mapper.ext;
import io.dataease.mobile.dto.HomeItemDTO;
import io.dataease.mobile.dto.HomeItemShareDTO;
import java.util.List;
import java.util.Map;
public interface HomeMapper {
List<HomeItemDTO> queryStore(Map<String, Object> param);
List<HomeItemDTO> queryHistory();
List<HomeItemDTO> queryShare(Map<String, Object> param);
List<HomeItemShareDTO> queryShare(Map<String, Object> param);
}

View File

@ -18,14 +18,17 @@
order by s.create_time desc
</select>
<select id="queryShare" resultType="io.dataease.mobile.dto.HomeItemDTO">
<select id="queryShare" resultType="io.dataease.mobile.dto.HomeItemShareDTO">
select
distinct(s.panel_group_id) as id,
g.name as title,
s.create_time as `time`
s.create_time as `time`,
u.nick_name,
u.user_id
from panel_share s
inner join panel_group g
on s.panel_group_id = g.id
left join sys_user u on u.username = IFNULL(s.granter,g.create_by)
where
g.mobile_layout = 1 and (
( s.target_id = #{userId} and s.type = 0 ) or

View File

@ -1,6 +1,5 @@
package io.dataease.commons.constants;
public interface ParamConstants {
String getValue();
@ -50,7 +49,6 @@ public interface ParamConstants {
}
}
enum Registry implements ParamConstants {
URL("registry.url"),
REPO("registry.repo"),
@ -89,7 +87,7 @@ public interface ParamConstants {
}
}
enum MAIL implements ParamConstants{
enum MAIL implements ParamConstants {
SERVER("smtp.host"),
PORT("smtp.port"),
ACCOUNT("smtp.account"),
@ -111,11 +109,15 @@ public interface ParamConstants {
enum BASIC implements ParamConstants {
FRONT_TIME_OUT("basic.frontTimeOut"),
MSG_TIME_OUT("basic.msgTimeOut");
MSG_TIME_OUT("basic.msgTimeOut"),
OPEN_HOME_PAGE("ui.openHomePage");
private String value;
public String getValue() {
return this.value;
}
private BASIC(String value) {
this.value = value;
}

View File

@ -6,11 +6,13 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class BasicInfo implements Serializable{
public class BasicInfo implements Serializable {
@ApiModelProperty("请求超时时间")
private String frontTimeOut;
@ApiModelProperty("消息保留时间")
private String msgTimeOut;
@ApiModelProperty("显示首页")
private String openHomePage;
}

View File

@ -2,6 +2,7 @@ package io.dataease.mobile.api;
import io.dataease.commons.utils.Pager;
import io.dataease.mobile.dto.HomeItemDTO;
import io.dataease.mobile.dto.HomeItemShareDTO;
import io.dataease.mobile.dto.HomeRequest;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@ -15,6 +16,8 @@ public interface HomeApi {
@PostMapping("/query")
Pager<List<HomeItemDTO>> query(@RequestBody HomeRequest request);
@PostMapping("/queryShares")
Pager<List<HomeItemShareDTO>> queryShares(@RequestBody HomeRequest request);
@PostMapping("/detail/{id}")
Object detail(@PathVariable String id);

View File

@ -0,0 +1,11 @@
package io.dataease.mobile.dto;
import lombok.Data;
@Data
public class HomeItemShareDTO extends HomeItemDTO {
private String nickName;
private Long userId;
}

View File

@ -3,6 +3,7 @@ package io.dataease.mobile.server;
import io.dataease.commons.utils.Pager;
import io.dataease.mobile.api.HomeApi;
import io.dataease.mobile.dto.HomeItemDTO;
import io.dataease.mobile.dto.HomeItemShareDTO;
import io.dataease.mobile.dto.HomeRequest;
import io.dataease.mobile.service.HomeService;
import org.springframework.web.bind.annotation.RestController;
@ -15,8 +16,6 @@ public class HomeServer implements HomeApi {
@Resource
private HomeService homeService;
@Override
public Pager<List<HomeItemDTO>> query(HomeRequest request) {
return homeService.query(request);
@ -27,5 +26,10 @@ public class HomeServer implements HomeApi {
return null;
}
@Override
public Pager<List<HomeItemShareDTO>> queryShares(HomeRequest request) {
return homeService.queryShares(request);
}
}

View File

@ -8,6 +8,7 @@ import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.PageUtils;
import io.dataease.commons.utils.Pager;
import io.dataease.mobile.dto.HomeItemDTO;
import io.dataease.mobile.dto.HomeItemShareDTO;
import io.dataease.base.mapper.ext.HomeMapper;
import io.dataease.mobile.dto.HomeRequest;
import org.springframework.stereotype.Service;
@ -29,27 +30,28 @@ public class HomeService {
Map<String, Object> param = new HashMap<>();
param.put("userId", user.getUserId());
switch (request.getType()){
case 2:
Long deptId = user.getDeptId();
List<Long> roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList());
param.put("deptId", deptId);
param.put("roleIds", roleIds);
if (null != request.getLastTime()) {
param.put("lastTime", request.getLastTime());
}
return PageUtils.setPageInfo(page, homeMapper.queryShare(param));
default:
param.put("userId", user.getUserId());
if (null != request.getLastTime()) {
param.put("lastTime", request.getLastTime());
}
return PageUtils.setPageInfo(page, homeMapper.queryStore(param));
param.put("userId", user.getUserId());
if (null != request.getLastTime()) {
param.put("lastTime", request.getLastTime());
}
return PageUtils.setPageInfo(page, homeMapper.queryStore(param));
}
public Pager<List<HomeItemShareDTO>> queryShares(HomeRequest request) {
CurrentUserDto user = AuthUtils.getUser();
Page<Object> page = PageHelper.startPage(1, 13, true);
Map<String, Object> param = new HashMap<>();
param.put("userId", user.getUserId());
Long deptId = user.getDeptId();
List<Long> roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList());
param.put("deptId", deptId);
param.put("roleIds", roleIds);
if (null != request.getLastTime()) {
param.put("lastTime", request.getLastTime());
}
return PageUtils.setPageInfo(page, homeMapper.queryShare(param));
}
}

View File

@ -41,7 +41,10 @@ public class SystemParameterService {
public BasicInfo basicInfo() {
List<SystemParameter> paramList = this.getParamList("basic");
List<SystemParameter> homePageList = this.getParamList("ui.openHomePage");
paramList.addAll(homePageList);
BasicInfo result = new BasicInfo();
result.setOpenHomePage("true");
if (!CollectionUtils.isEmpty(paramList)) {
for (SystemParameter param : paramList) {
if (StringUtils.equals(param.getParamKey(), ParamConstants.BASIC.FRONT_TIME_OUT.getValue())) {
@ -50,6 +53,10 @@ public class SystemParameterService {
if (StringUtils.equals(param.getParamKey(), ParamConstants.BASIC.MSG_TIME_OUT.getValue())) {
result.setMsgTimeOut(param.getParamValue());
}
if (StringUtils.equals(param.getParamKey(), ParamConstants.BASIC.OPEN_HOME_PAGE.getValue())) {
boolean open = StringUtils.equals("true", param.getParamValue());
result.setOpenHomePage(open ? "true" : "false");
}
}
}
return result;
@ -137,12 +144,13 @@ public class SystemParameterService {
return dtoList;
}
public void saveUIInfo(Map<String, List<SystemParameterDTO>> request, List<MultipartFile> bodyFiles) throws IOException {
public void saveUIInfo(Map<String, List<SystemParameterDTO>> request, List<MultipartFile> bodyFiles)
throws IOException {
List<SystemParameterDTO> parameters = request.get("systemParams");
if (null != bodyFiles)
for (MultipartFile multipartFile : bodyFiles) {
if (!multipartFile.isEmpty()) {
//防止添加非图片文件
// 防止添加非图片文件
try (InputStream input = multipartFile.getInputStream()) {
try {
// It's an image (only BMP, GIF, JPG and PNG are recognized).
@ -154,10 +162,12 @@ public class SystemParameterService {
}
String multipartFileName = multipartFile.getOriginalFilename();
String[] split = Objects.requireNonNull(multipartFileName).split(",");
parameters.stream().filter(systemParameterDTO -> systemParameterDTO.getParamKey().equalsIgnoreCase(split[1])).forEach(systemParameterDTO -> {
systemParameterDTO.setFileName(split[0]);
systemParameterDTO.setFile(multipartFile);
});
parameters.stream()
.filter(systemParameterDTO -> systemParameterDTO.getParamKey().equalsIgnoreCase(split[1]))
.forEach(systemParameterDTO -> {
systemParameterDTO.setFileName(split[0]);
systemParameterDTO.setFile(multipartFile);
});
}
}
for (SystemParameterDTO systemParameter : parameters) {
@ -168,7 +178,8 @@ public class SystemParameterService {
}
if (file != null) {
fileService.deleteFileById(systemParameter.getParamValue());
FileMetadata fileMetadata = fileService.saveFile(systemParameter.getFile(), systemParameter.getFileName());
FileMetadata fileMetadata = fileService.saveFile(systemParameter.getFile(),
systemParameter.getFileName());
systemParameter.setParamValue(fileMetadata.getId());
}
if (file == null && systemParameter.getFileName() == null) {
@ -181,5 +192,4 @@ public class SystemParameterService {
}
}

View File

@ -85,7 +85,7 @@ CREATE TABLE `de_engine` (
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `system_parameter`(`param_key`, `param_value`, `type`, `sort`) VALUES ('ui.mobileBG', NULL, 'file', 0);
INSERT INTO `system_parameter`(`param_key`, `param_value`, `type`, `sort`) VALUES ('ui.mobileBG', NULL, 'file', 14);
UPDATE `demo_gdp_district_top100` set `province` = '新疆维吾尔自治区' WHERE `province` = '新疆维吾尔族自治区';

View File

@ -22,7 +22,7 @@ export function proxyInitPanelData(panelId, proxy, callback) {
queryPanelJumpInfo(panelId, proxy).then(rsp => {
store.commit('setNowPanelJumpInfo', rsp.data)
})
callback(response)
callback && callback(response)
})
}

View File

@ -8,6 +8,7 @@ import Preview from './Preview'
import { uuid } from 'vue-uuid'
import { initPanelData } from '@/api/panel/panel'
import { queryTargetPanelJumpInfo } from '@/api/panel/linkJump'
import { proxyInitPanelData } from '@/api/panel/shareProxy'
export default {
components: { Preview },
@ -15,12 +16,8 @@ export default {
return {
dataLoading: false,
backScreenShot: false,
mainHeight: '100vh!important'
}
},
watch: {
'$route.params.reportId': function() {
this.restore()
mainHeight: '100vh!important',
shareUserId: null
}
},
computed: {
@ -37,6 +34,7 @@ export default {
this.restore()
}
},
mounted() {
this.restore()
},
@ -45,35 +43,59 @@ export default {
this.mainHeight = mainHeight
},
restore() {
debugger
const _this = this
_this.dataLoading = true
_this.panelId = this.$route.params.reportId
if (!this.$route.params.reportId) {
return
}
const arr = this.$route.params.reportId.split('|')
if (!arr || arr.length === 0) {
return
}
_this.panelId = arr[0]
if (arr.length > 1) {
this.shareUserId = arr[1]
}
if (_this.$route.params.backScreenShot !== undefined) {
_this.backScreenShot = _this.$route.params.backScreenShot
}
//
initPanelData(this.panelId, function() {
_this.dataLoading = false
//
const tempParam = localStorage.getItem('jumpInfoParam')
if (tempParam) {
localStorage.removeItem('jumpInfoParam')
const jumpParam = JSON.parse(tempParam)
const jumpRequestParam = {
sourcePanelId: jumpParam.sourcePanelId,
sourceViewId: jumpParam.sourceViewId,
sourceFieldId: jumpParam.sourceFieldId,
targetPanelId: _this.panelId
}
_this.dataLoading = true
//
queryTargetPanelJumpInfo(jumpRequestParam).then(rsp => {
_this.dataLoading = false
_this.$store.commit('setNowTargetPanelJumpInfo', rsp.data)
_this.$store.commit('addViewTrackFilter', jumpParam)
})
if (this.shareUserId !== null) {
const param = { userId: this.shareUserId }
proxyInitPanelData(this.panelId, param, () => {
this.initCallBack()
})
} else {
initPanelData(this.panelId, () => {
this.initCallBack()
})
}
},
initCallBack() {
this.dataLoading = false
//
const tempParam = localStorage.getItem('jumpInfoParam')
if (tempParam) {
localStorage.removeItem('jumpInfoParam')
const jumpParam = JSON.parse(tempParam)
const jumpRequestParam = {
sourcePanelId: jumpParam.sourcePanelId,
sourceViewId: jumpParam.sourceViewId,
sourceFieldId: jumpParam.sourceFieldId,
targetPanelId: this.panelId
}
})
this.dataLoading = true
//
queryTargetPanelJumpInfo(jumpRequestParam).then(rsp => {
this.dataLoading = false
this.$store.commit('setNowTargetPanelJumpInfo', rsp.data)
this.$store.commit('addViewTrackFilter', jumpParam)
})
}
},
resetID(data) {
if (data) {

View File

@ -1632,7 +1632,8 @@ export default {
themeLight: 'Light',
themeDark: 'Dark',
themeCustom: 'Custom',
openHomePage: 'Show Home Page'
openHomePage: 'Show Home Page',
mobileBG: 'Mobile Login page BG'
},
auth: {
@ -1888,8 +1889,7 @@ export default {
cmonth: 'This Month',
cquarter: 'This Quarter',
cyear: 'This Year',
openHomePage: 'Show Home Page',
mobileBG: 'Mobile BG'
openHomePage: 'Show Home Page'
},
dynamic_year: {
fix: 'Fixed Year',

View File

@ -1643,7 +1643,7 @@ export default {
themeCustom: '自定義',
openHomePage: '顯示首頁',
mobileBG: '移動端背景'
mobileBG: '移動端登錄頁背景'
},
auth: {

View File

@ -1656,7 +1656,7 @@ export default {
themeDark: '深色',
themeCustom: '自定义',
openHomePage: '显示首页',
mobileBG: '移动端背景'
mobileBG: '移动端登录页背景'
},
auth: {

View File

@ -110,6 +110,7 @@ export default {
const param = { userId: data.userId }
proxyInitPanelData(data.id, param, function() {
bus.$emit('set-panel-show-type', 1)
bus.$emit('set-panel-share-user', data.userId)
})
this.$refs['botTree'].setCurrentKey(null)
},

View File

@ -137,7 +137,7 @@ import bus from '@/utils/bus'
import { queryAll } from '@/api/panel/pdfTemplate'
import ShareHead from '@/views/panel/GrantAuth/ShareHead'
import { initPanelData } from '@/api/panel/panel'
import { proxyInitPanelData } from '@/api/panel/shareProxy'
export default {
name: 'PanelViewShow',
components: { Preview, SaveToTemplate, PDFPreExport, ShareHead },
@ -162,7 +162,8 @@ export default {
snapshotInfo: '',
showType: 0,
dataLoading: false,
exporting: false
exporting: false,
shareUserId: null
}
},
computed: {
@ -214,6 +215,9 @@ export default {
bus.$on('set-panel-show-type', type => {
this.showType = type || 0
})
bus.$on('set-panel-share-user', userId => {
this.shareUserId = userId
})
this.initPdfTemplate()
},
methods: {
@ -227,7 +231,10 @@ export default {
this.fullscreen = true
},
newTab() {
const url = '#/preview/' + this.$store.state.panel.panelInfo.id
let url = '#/preview/' + this.$store.state.panel.panelInfo.id
if (this.showType === 1 && this.shareUserId !== null) {
url += ('|' + this.shareUserId)
}
window.open(url, '_blank')
},
saveToTemplate() {
@ -344,7 +351,10 @@ export default {
this.$emit('editPanel')
},
refreshPanel() {
initPanelData(this.panelInfo.id)
if (this.showType === 1 && this.shareUserId !== null) {
const param = { userId: this.shareUserId }
proxyInitPanelData(this.panelInfo.id, param, null)
} else { initPanelData(this.panelInfo.id) }
}
}
}

View File

@ -31,7 +31,16 @@
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item :label="$t('display.openHomePage')">
<el-checkbox v-model="formInline.openHomePage" true-label="true" false-label="false" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div>
<el-button v-if="showEdit" size="small" @click="edit">{{ $t('commons.edit') }}</el-button>
@ -103,7 +112,8 @@ export default {
save(formInline) {
const param = [
{ paramKey: 'basic.frontTimeOut', paramValue: this.formInline.frontTimeOut, type: 'text', sort: 1 },
{ paramKey: 'basic.msgTimeOut', paramValue: this.formInline.msgTimeOut, type: 'text', sort: 2 }
{ paramKey: 'basic.msgTimeOut', paramValue: this.formInline.msgTimeOut, type: 'text', sort: 2 },
{ paramKey: 'ui.openHomePage', paramValue: this.formInline.openHomePage, type: 'text', sort: 13 }
]

View File

@ -1,8 +1,12 @@
import request from '@/common/js/request'
export function requestHome(data) {
let url = '/mobile/home/query'
if (data && data.type === 2) {
url = 'mobile/home/queryShares'
}
return request({
url: '/mobile/home/query',
url: url,
method: 'post',
loading: true,
data

View File

@ -75,7 +75,8 @@ export default {
const param = {
id: node.id,
title: node.text,
index: 4
index: 4,
userId: node.userId
}
if(node.type === 'panel') {

View File

@ -72,7 +72,8 @@ export default {
const param = {
id: node.id,
title: node.text,
index: 4
index: 4,
userId: node.userId
}
if(node.type === 'panel') {

View File

@ -101,7 +101,8 @@ export default {
const param = {
id: node.id,
title: node.text,
index: 4
index: 4,
userId: node.userId
}
if(node.type === 'panel') {

View File

@ -133,7 +133,7 @@
methods: {
addRecent() {
const item = {id: this.banner.id, title: this.banner.title, index: this.banner.index}
const item = {id: this.banner.id, title: this.banner.title, index: this.banner.index, userId: this.banner.userId}
addRecent(item)
},
enshrine() {
@ -167,9 +167,11 @@
})
},
loadLinkUrl() {
this.url = process.env.VUE_APP_BASE_API + 'tempMobileLink/' + this.banner.id + "/" + getToken()
this.url = process.env.VUE_APP_BASE_API + 'tempMobileLink/' + this.banner.id + "/" + getToken()
if (this.banner.index && this.banner.index === 2 && this.banner.userId) {
this.url = process.env.VUE_APP_BASE_API + 'tempMobileLink/' + this.banner.id + '|' + this.banner.userId + "/" + getToken()
}
const url = this.url
/* uni.hideLoading() */
setTimeout(() => {

View File

@ -118,6 +118,9 @@
datas.forEach(item => {
item.article_type = 1
item.image_url = '../../../static/yibiaobans.png'
if(item.nickName) {
item.title += ('(' + item.nickName + ')')
}
if(item.time)
item.rightText = formatHistoryDate(item.time)
})
@ -151,10 +154,12 @@
const param = {
id: node.id,
title: node.title,
index: this.tabIndex
index: this.tabIndex,
userId: node.userId
}
if(this.tabIndex === 1) {
param.index = node.index
param.userId = node.userId
}
uni.navigateTo({