提交 8f50764f authored 作者: taojinlong's avatar taojinlong

Merge branch 'v1.6' of github.com:dataease/dataease into v1.6

...@@ -410,13 +410,13 @@ ...@@ -410,13 +410,13 @@
</move> </move>
<copy todir="src/main/resources/static/de-app"> <copy todir="src/main/resources/static/de-app">
<fileset dir="../../dataease-app/dist/build/h5"> <fileset dir="../mobile/dist/build/h5">
<exclude name="*.html"/> <exclude name="*.html"/>
</fileset> </fileset>
</copy> </copy>
<copy file="../../dataease-app/dist/build/h5/index.html" tofile="src/main/resources/templates/app.html" /> <copy file="../mobile/dist/build/h5/index.html" tofile="src/main/resources/templates/app.html" />
</target> </target>
......
...@@ -7,7 +7,7 @@ import java.util.Map; ...@@ -7,7 +7,7 @@ import java.util.Map;
public interface HomeMapper { public interface HomeMapper {
List<HomeItemDTO> queryStore(Long userId); List<HomeItemDTO> queryStore(Map<String, Object> param);
List<HomeItemDTO> queryHistory(); List<HomeItemDTO> queryHistory();
......
...@@ -12,6 +12,9 @@ ...@@ -12,6 +12,9 @@
on s.panel_group_id = g.id on s.panel_group_id = g.id
where s.user_id = #{userId} where s.user_id = #{userId}
and FIND_IN_SET( g.id, cids ) and FIND_IN_SET( g.id, cids )
<if test="lastTime != null">
and #{lastTime} > s.create_time
</if>
order by s.create_time desc order by s.create_time desc
</select> </select>
...@@ -33,6 +36,9 @@ ...@@ -33,6 +36,9 @@
</foreach> </foreach>
and s.type = 1 ) and s.type = 1 )
) )
<if test="lastTime != null">
and #{lastTime} > s.create_time
</if>
order by s.create_time desc order by s.create_time desc
</select> </select>
......
...@@ -78,7 +78,7 @@ public abstract class TaskHandler implements InitializingBean { ...@@ -78,7 +78,7 @@ public abstract class TaskHandler implements InitializingBean {
} }
private String getDayOfWeek(Calendar instance) { private String getDayOfWeek(Calendar instance) {
int index = instance.get(Calendar.DAY_OF_WEEK) - 1; int index = instance.get(Calendar.DAY_OF_WEEK);
return week[index]; return week[index];
} }
......
...@@ -3,20 +3,16 @@ package io.dataease.mobile.api; ...@@ -3,20 +3,16 @@ package io.dataease.mobile.api;
import io.dataease.mobile.dto.DirItemDTO; import io.dataease.mobile.dto.DirItemDTO;
import io.dataease.mobile.dto.DirRequest; import io.dataease.mobile.dto.DirRequest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List; import java.util.List;
@Api(tags = "移动端:目录")
@RequestMapping("/mobile/dir") @RequestMapping("/mobile/dir")
public interface DirApi { public interface DirApi {
@ApiOperation("查询")
@PostMapping("/query") @PostMapping("/query")
List<DirItemDTO> query(@RequestBody DirRequest request); List<DirItemDTO> query(@RequestBody DirRequest request);
} }
package io.dataease.mobile.api; package io.dataease.mobile.api;
import io.dataease.commons.utils.Pager;
import io.dataease.mobile.dto.HomeItemDTO; import io.dataease.mobile.dto.HomeItemDTO;
import io.swagger.annotations.Api; import io.dataease.mobile.dto.HomeRequest;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List; import java.util.List;
@Api(tags = "移动端:首页")
@RequestMapping("/mobile/home") @RequestMapping("/mobile/home")
public interface HomeApi { public interface HomeApi {
@ApiOperation("查询") @PostMapping("/query")
@ApiImplicitParam(value = "类型", name = "type", paramType = "path", allowableValues = "{@code 0(收藏), 1(历史), 2(分享)}") Pager<List<HomeItemDTO>> query(@RequestBody HomeRequest request);
@PostMapping("/query/{type}")
List<HomeItemDTO> query(@PathVariable Integer type);
@ApiOperation("详情")
@ApiImplicitParam(value = "ID", name = "id", paramType = "path")
@PostMapping("/detail/{id}") @PostMapping("/detail/{id}")
Object detail(@PathVariable String id); Object detail(@PathVariable String id);
......
package io.dataease.mobile.api; package io.dataease.mobile.api;
import io.dataease.mobile.dto.MeItemDTO; import io.dataease.mobile.dto.MeItemDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@Api(tags = "移动端:我的")
@RequestMapping("/mobile/me") @RequestMapping("/mobile/me")
public interface MeApi { public interface MeApi {
@ApiOperation("查询个人信息")
@PostMapping("/query") @PostMapping("/query")
MeItemDTO query(); MeItemDTO query();
} }
package io.dataease.mobile.dto; package io.dataease.mobile.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
@ApiModel("目录数据实体")
public class DirItemDTO implements Serializable { public class DirItemDTO implements Serializable {
@ApiModelProperty("ID")
private String id; private String id;
@ApiModelProperty("名称")
private String text; private String text;
@ApiModelProperty(value = "类型", allowableValues = "{@code folder, panel}")
private String type; private String type;
@ApiModelProperty("子集数")
private Integer subs; private Integer subs;
} }
...@@ -7,13 +7,10 @@ import lombok.Data; ...@@ -7,13 +7,10 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
@ApiModel("目录查询条件")
public class DirRequest implements Serializable { public class DirRequest implements Serializable {
@ApiModelProperty("父ID")
private String pid; private String pid;
@ApiModelProperty("名称")
private String name; private String name;
} }
package io.dataease.mobile.dto; package io.dataease.mobile.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
@ApiModel("首页数据实体")
public class HomeItemDTO implements Serializable { public class HomeItemDTO implements Serializable {
@ApiModelProperty("ID")
private String id; private String id;
@ApiModelProperty("标题")
private String title; private String title;
@ApiModelProperty("时间")
private Long time; private Long time;
} }
package io.dataease.mobile.dto;
import lombok.Data;
import java.io.Serializable;
@Data
public class HomeRequest implements Serializable {
private Integer type;
private Long lastTime;
}
package io.dataease.mobile.dto; package io.dataease.mobile.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
@ApiModel("个人信息")
public class MeItemDTO implements Serializable { public class MeItemDTO implements Serializable {
@ApiModelProperty("组织名称")
private String deptName; private String deptName;
@ApiModelProperty("创建时间")
private Long createTime; private Long createTime;
} }
package io.dataease.mobile.server; package io.dataease.mobile.server;
import io.dataease.commons.utils.Pager;
import io.dataease.mobile.api.HomeApi; import io.dataease.mobile.api.HomeApi;
import io.dataease.mobile.dto.HomeItemDTO; import io.dataease.mobile.dto.HomeItemDTO;
import io.dataease.mobile.dto.HomeRequest;
import io.dataease.mobile.service.HomeService; import io.dataease.mobile.service.HomeService;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -13,13 +15,17 @@ public class HomeServer implements HomeApi { ...@@ -13,13 +15,17 @@ public class HomeServer implements HomeApi {
@Resource @Resource
private HomeService homeService; private HomeService homeService;
@Override @Override
public List<HomeItemDTO> query(Integer type) { public Pager<List<HomeItemDTO>> query(HomeRequest request) {
return homeService.query(type); return homeService.query(request);
} }
@Override @Override
public Object detail(String id) { public Object detail(String id) {
return null; return null;
} }
} }
package io.dataease.mobile.service; package io.dataease.mobile.service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import io.dataease.auth.api.dto.CurrentRoleDto; import io.dataease.auth.api.dto.CurrentRoleDto;
import io.dataease.auth.api.dto.CurrentUserDto; import io.dataease.auth.api.dto.CurrentUserDto;
import io.dataease.commons.utils.AuthUtils; 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.HomeItemDTO;
import io.dataease.base.mapper.ext.HomeMapper; import io.dataease.base.mapper.ext.HomeMapper;
import io.dataease.mobile.dto.HomeRequest;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
...@@ -18,23 +23,33 @@ public class HomeService { ...@@ -18,23 +23,33 @@ public class HomeService {
@Resource @Resource
private HomeMapper homeMapper; private HomeMapper homeMapper;
public List<HomeItemDTO> query(Integer type) { public Pager<List<HomeItemDTO>> query(HomeRequest request) {
CurrentUserDto user = AuthUtils.getUser(); CurrentUserDto user = AuthUtils.getUser();
switch (type){ Page<Object> page = PageHelper.startPage(1, 13, true);
Map<String, Object> param = new HashMap<>();
param.put("userId", user.getUserId());
switch (request.getType()){
case 1:
return homeMapper.queryHistory();
case 2: case 2:
Map<String, Object> param = new HashMap<>();
Long deptId = user.getDeptId(); Long deptId = user.getDeptId();
List<Long> roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList()); List<Long> roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList());
param.put("userId", user.getUserId());
param.put("deptId", deptId); param.put("deptId", deptId);
param.put("roleIds", roleIds); param.put("roleIds", roleIds);
List<HomeItemDTO> result = homeMapper.queryShare(param); if (null != request.getLastTime()) {
return result; param.put("lastTime", request.getLastTime());
}
return PageUtils.setPageInfo(page, homeMapper.queryShare(param));
default: default:
return homeMapper.queryStore(user.getUserId()); param.put("userId", user.getUserId());
if (null != request.getLastTime()) {
param.put("lastTime", request.getLastTime());
}
return PageUtils.setPageInfo(page, homeMapper.queryStore(param));
} }
} }
} }
# just a flag
ENV = 'development'
# base api
VUE_APP_BASE_API = 'http://localhost:8081/'
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
# It only does one thing by converting all import() to require().
# This configuration can significantly increase the speed of hot updates,
# when you have a large number of pages.
# Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# just a flag
ENV = 'production'
# base api
# VUE_APP_BASE_API = 'http://localhost:8081/'
VUE_APP_BASE_API = '/'
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
tests/**/coverage/
# Editor directories and files
.hbuilderx
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
# dataease-mobile
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
const plugins = []
if (process.env.UNI_OPT_TREESHAKINGNG) {
plugins.push(require('@dcloudio/vue-cli-plugin-uni-optimize/packages/babel-plugin-uni-api/index.js'))
}
if (
(
process.env.UNI_PLATFORM === 'app-plus' &&
process.env.UNI_USING_V8
) ||
(
process.env.UNI_PLATFORM === 'h5' &&
process.env.UNI_H5_BROWSER === 'builtin'
)
) {
const path = require('path')
const isWin = /^win/.test(process.platform)
const normalizePath = path => (isWin ? path.replace(/\\/g, '/') : path)
const input = normalizePath(process.env.UNI_INPUT_DIR)
try {
plugins.push([
require('@dcloudio/vue-cli-plugin-hbuilderx/packages/babel-plugin-console'),
{
file (file) {
file = normalizePath(file)
if (file.indexOf(input) === 0) {
return path.relative(input, file)
}
return false
}
}
])
} catch (e) {}
}
process.UNI_LIBRARIES = process.UNI_LIBRARIES || ['@dcloudio/uni-ui']
process.UNI_LIBRARIES.forEach(libraryName => {
plugins.push([
'import',
{
'libraryName': libraryName,
'customName': (name) => {
return `${libraryName}/lib/${name}/${name}`
}
}
])
})
module.exports = {
presets: [
[
'@vue/app',
{
modules: 'commonjs',
useBuiltIns: process.env.UNI_PLATFORM === 'h5' ? 'usage' : 'entry'
}
]
],
plugins
}
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title></title><script>document.addEventListener('DOMContentLoaded', function() {
document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
})
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel="stylesheet" href="/de-app/static/index.a5c69d49.css"></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id="app"></div><script src="/de-app/static/js/chunk-vendors.2822c2ee.js"></script><script src="/de-app/static/js/index.12bd8b7a.js"></script></body></html>
\ No newline at end of file
差异被折叠。
This source diff could not be displayed because it is too large. You can view the blob instead.
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论