Commit fee8a595 authored by RuoYi's avatar RuoYi
Browse files

若依 2.0

parent cef26e77
...@@ -69,6 +69,10 @@ https://www.oschina.net/project/top_cn_2019#ruoyi ...@@ -69,6 +69,10 @@ https://www.oschina.net/project/top_cn_2019#ruoyi
<tr> <tr>
<td><img src="https://oscimg.oschina.net/oscnet/fdea1d8bb8625c27bf964176a2c8ebc6945.jpg"/></td> <td><img src="https://oscimg.oschina.net/oscnet/fdea1d8bb8625c27bf964176a2c8ebc6945.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/509d2708cfd762b6e6339364cac1cc1970c.jpg"/></td> <td><img src="https://oscimg.oschina.net/oscnet/509d2708cfd762b6e6339364cac1cc1970c.jpg"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-f1fd681cc9d295db74e85ad6d2fe4389454.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-c195234bbcd30be6927f037a6755e6ab69c.png"/></td>
</tr> </tr>
<tr> <tr>
<td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td> <td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td>
......
{ {
"name": "ruoyi", "name": "ruoyi",
"version": "1.1.0", "version": "2.0.0",
"description": "若依管理系统", "description": "若依管理系统",
"author": "若依", "author": "若依",
"license": "MIT", "license": "MIT",
......
...@@ -51,3 +51,11 @@ export function exportType(query) { ...@@ -51,3 +51,11 @@ export function exportType(query) {
params: query params: query
}) })
} }
// 获取字典选择框列表
export function optionselect() {
return request({
url: '/system/dict/type/optionselect',
method: 'get'
})
}
\ No newline at end of file
import request from '@/utils/request' import request from '@/utils/request'
import { praseStrEmpty } from "@/utils/ruoyi";
// 查询用户列表 // 查询用户列表
export function listUser(query) { export function listUser(query) {
...@@ -12,7 +13,7 @@ export function listUser(query) { ...@@ -12,7 +13,7 @@ export function listUser(query) {
// 查询用户详细 // 查询用户详细
export function getUser(userId) { export function getUser(userId) {
return request({ return request({
url: '/system/user/' + userId, url: '/system/user/' + praseStrEmpty(userId),
method: 'get' method: 'get'
}) })
} }
......
import request from '@/utils/request'
// 查询生成表数据
export function listTable(query) {
return request({
url: '/tool/gen/list',
method: 'get',
params: query
})
}
// 查询db数据库列表
export function listDbTable(query) {
return request({
url: '/tool/gen/db/list',
method: 'get',
params: query
})
}
// 查询表详细信息
export function getGenTable(tableId) {
return request({
url: '/tool/gen/' + tableId,
method: 'get'
})
}
// 修改代码生成信息
export function updateGenTable(data) {
return request({
url: '/tool/gen',
method: 'put',
data: data
})
}
// 导入表
export function importTable(data) {
return request({
url: '/tool/gen/importTable',
method: 'post',
params: data
})
}
// 预览生成代码
export function previewTable(tableId) {
return request({
url: '/tool/gen/preview/' + tableId,
method: 'get'
})
}
// 删除表数据
export function delTable(tableId) {
return request({
url: '/tool/gen/' + tableId,
method: 'delete'
})
}
...@@ -53,6 +53,10 @@ ...@@ -53,6 +53,10 @@
margin-left: 20px; margin-left: 20px;
} }
.el-dialog {
margin-top: 6vh !important;
}
.el-table .el-table__header-wrapper th { .el-table .el-table__header-wrapper th {
word-break: break-word; word-break: break-word;
background-color: #f8f8f9; background-color: #f8f8f9;
...@@ -61,6 +65,16 @@ ...@@ -61,6 +65,16 @@
font-size: 13px; font-size: 13px;
} }
/** 表单布局 **/
.form-header {
font-size:15px;
color:#6379bb;
border-bottom:1px solid #ddd;
margin:8px 10px 25px 10px;
padding-bottom:5px
}
/** 表格布局 **/
.pagination-container { .pagination-container {
position: relative; position: relative;
height: 25px; height: 25px;
......
...@@ -26,17 +26,6 @@ import Layout from '@/layout' ...@@ -26,17 +26,6 @@ import Layout from '@/layout'
// 公共路由 // 公共路由
export const constantRoutes = [ export const constantRoutes = [
{
path: '/redirect',
component: Layout,
hidden: true,
children: [
{
path: '/redirect/:path*',
component: () => import('@/views/redirect')
}
]
},
{ {
path: '/login', path: '/login',
component: () => import('@/views/login'), component: () => import('@/views/login'),
...@@ -74,7 +63,7 @@ export const constantRoutes = [ ...@@ -74,7 +63,7 @@ export const constantRoutes = [
{ {
path: 'profile', path: 'profile',
component: () => import('@/views/system/user/profile/index'), component: () => import('@/views/system/user/profile/index'),
name: '个人中心', name: 'Profile',
meta: { title: '个人中心', icon: 'user' } meta: { title: '个人中心', icon: 'user' }
} }
] ]
...@@ -87,10 +76,23 @@ export const constantRoutes = [ ...@@ -87,10 +76,23 @@ export const constantRoutes = [
{ {
path: 'type/data/:dictId(\\d+)', path: 'type/data/:dictId(\\d+)',
component: () => import('@/views/system/dict/data'), component: () => import('@/views/system/dict/data'),
name: '字典数据', name: 'Data',
meta: { title: '字典数据', icon: '' } meta: { title: '字典数据', icon: '' }
} }
] ]
},
{
path: '/gen',
component: Layout,
hidden: true,
children: [
{
path: 'edit',
component: () => import('@/views/tool/gen/editTable'),
name: 'GenEdit',
meta: { title: '修改生成配置' }
}
]
} }
] ]
......
...@@ -35,7 +35,7 @@ export function parseTime(time, pattern) { ...@@ -35,7 +35,7 @@ export function parseTime(time, pattern) {
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key] let value = formatObj[key]
// Note: getDay() returns 0 on Sunday // Note: getDay() returns 0 on Sunday
if (key === 'a') { return ['', '', '', '', '', '', ''][value ] } if (key === 'a') { return ['', '', '', '', '', '', ''][value] }
if (result.length > 0 && value < 10) { if (result.length > 0 && value < 10) {
value = '0' + value value = '0' + value
} }
...@@ -46,7 +46,7 @@ export function parseTime(time, pattern) { ...@@ -46,7 +46,7 @@ export function parseTime(time, pattern) {
// 表单重置 // 表单重置
export function resetForm(refName) { export function resetForm(refName) {
if (this.$refs[refName] !== undefined) { if (this.$refs[refName]) {
this.$refs[refName].resetFields(); this.$refs[refName].resetFields();
} }
} }
...@@ -54,11 +54,11 @@ export function resetForm(refName) { ...@@ -54,11 +54,11 @@ export function resetForm(refName) {
// 添加日期范围 // 添加日期范围
export function addDateRange(params, dateRange) { export function addDateRange(params, dateRange) {
var search = params; var search = params;
if (null != dateRange) { search.beginTime = "";
search.params = { search.endTime = "";
beginTime: this.dateRange[0], if (null != dateRange && '' != dateRange) {
endTime: this.dateRange[1] search.beginTime = this.dateRange[0];
}; search.endTime = this.dateRange[1];
} }
return search; return search;
} }
...@@ -93,3 +93,11 @@ export function sprintf(str) { ...@@ -93,3 +93,11 @@ export function sprintf(str) {
}); });
return flag ? str : ''; return flag ? str : '';
} }
// 转换字符串,undefined,null等转化为""
export function praseStrEmpty(str) {
if (!str || str == "undefined" || str == "null") {
return "";
}
return str;
}
\ No newline at end of file
import axios from 'axios'
import { getToken } from '@/utils/auth'
const mimeMap = {
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
zip: 'application/zip'
}
const baseUrl = process.env.VUE_APP_BASE_API
export function downLoadZip(str, filename) {
var url = baseUrl + str
axios({
method: 'get',
url: url,
responseType: 'blob',
headers: { 'Authorization': 'Bearer ' + getToken() }
}).then(res => {
resolveBlob(res, mimeMap.zip)
})
}
/**
* 解析blob响应内容并下载
* @param {*} res blob响应内容
* @param {String} mimeType MIME类型
*/
export function resolveBlob(res, mimeType) {
const aLink = document.createElement('a')
var blob = new Blob([res.data], { type: mimeType })
// //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名;
var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*')
var contentDisposition = decodeURI(res.headers['content-disposition'])
var result = patt.exec(contentDisposition)
var fileName = result[1]
fileName = fileName.replace(/\"/g, '')
aLink.href = URL.createObjectURL(blob)
aLink.setAttribute('download', fileName) // 设置下载文件名称
document.body.appendChild(aLink)
aLink.click()
document.body.appendChild(aLink)
}
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
</template> </template>
<script> <script>
export default { export default {
name: "Druid",
data() { data() {
return { return {
src: process.env.VUE_APP_BASE_API + "/druid/index.html", src: process.env.VUE_APP_BASE_API + "/druid/index.html",
......
...@@ -117,6 +117,7 @@ ...@@ -117,6 +117,7 @@
import { list, delLogininfor, cleanLogininfor, exportLogininfor } from "@/api/monitor/logininfor"; import { list, delLogininfor, cleanLogininfor, exportLogininfor } from "@/api/monitor/logininfor";
export default { export default {
name: "Logininfor",
data() { data() {
return { return {
// 遮罩层 // 遮罩层
......
...@@ -68,6 +68,7 @@ ...@@ -68,6 +68,7 @@
import { list, forceLogout } from "@/api/monitor/online"; import { list, forceLogout } from "@/api/monitor/online";
export default { export default {
name: "Online",
data() { data() {
return { return {
// 遮罩层 // 遮罩层
......
...@@ -186,6 +186,7 @@ ...@@ -186,6 +186,7 @@
import { list, delOperlog, cleanOperlog, exportOperlog } from "@/api/monitor/operlog"; import { list, delOperlog, cleanOperlog, exportOperlog } from "@/api/monitor/operlog";
export default { export default {
name: "Operlog",
data() { data() {
return { return {
// 遮罩层 // 遮罩层
......
...@@ -175,6 +175,7 @@ ...@@ -175,6 +175,7 @@
import { getServer } from "@/api/monitor/server"; import { getServer } from "@/api/monitor/server";
export default { export default {
name: "Server",
data() { data() {
return { return {
// 加载层信息 // 加载层信息
......
<script>
export default {
created() {
const { params, query } = this.$route
const { path } = params
this.$router.replace({ path: '/' + path, query })
},
render: function(h) {
return h() // avoid warning message
}
}
</script>
...@@ -168,6 +168,7 @@ ...@@ -168,6 +168,7 @@
import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig } from "@/api/system/config"; import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig } from "@/api/system/config";
export default { export default {
name: "Config",
data() { data() {
return { return {
// 遮罩层 // 遮罩层
......
...@@ -143,6 +143,7 @@ import Treeselect from "@riophae/vue-treeselect"; ...@@ -143,6 +143,7 @@ import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "Dept",
components: { Treeselect }, components: { Treeselect },
data() { data() {
return { return {
......
...@@ -159,6 +159,7 @@ import { listData, getData, delData, addData, updateData, exportData } from "@/a ...@@ -159,6 +159,7 @@ import { listData, getData, delData, addData, updateData, exportData } from "@/a
import { listType, getType } from "@/api/system/dict/type"; import { listType, getType } from "@/api/system/dict/type";
export default { export default {
name: "Data",
data() { data() {
return { return {
// 遮罩层 // 遮罩层
......
...@@ -176,6 +176,7 @@ ...@@ -176,6 +176,7 @@
import { listType, getType, delType, addType, updateType, exportType } from "@/api/system/dict/type"; import { listType, getType, delType, addType, updateType, exportType } from "@/api/system/dict/type";
export default { export default {
name: "Dict",
data() { data() {
return { return {
// 遮罩层 // 遮罩层
......
...@@ -179,6 +179,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css"; ...@@ -179,6 +179,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import IconSelect from "@/components/IconSelect"; import IconSelect from "@/components/IconSelect";
export default { export default {
name: "Menu",
components: { Treeselect, IconSelect }, components: { Treeselect, IconSelect },
data() { data() {
return { return {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment