首页动态图标添加 #66
@@ -1,3 +1,30 @@
|
||||
# Mediation-Frontend
|
||||
## 开发
|
||||
|
||||
调解系统PC端服务
|
||||
```bash
|
||||
# 克隆项目
|
||||
git clone https://gitee.com/y_project/RuoYi-Vue
|
||||
|
||||
# 进入项目目录
|
||||
cd ruoyi-ui
|
||||
|
||||
# 安装依赖
|
||||
npm install
|
||||
|
||||
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
|
||||
npm install --registry=https://registry.npmmirror.com
|
||||
|
||||
# 启动服务
|
||||
npm run dev
|
||||
```
|
||||
|
||||
浏览器访问 http://localhost:80
|
||||
|
||||
## 发布
|
||||
|
||||
```bash
|
||||
# 构建测试环境
|
||||
npm run build:stage
|
||||
|
||||
# 构建生产环境
|
||||
npm run build:prod
|
||||
```
|
||||
+4
-1
@@ -2,7 +2,7 @@
|
||||
"name": "ruoyi",
|
||||
"version": "3.8.6",
|
||||
"description": "调解系统",
|
||||
"author": "若依",
|
||||
"author": "智慧仲裁",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
@@ -48,13 +48,16 @@
|
||||
"js-beautify": "1.13.0",
|
||||
"js-cookie": "3.0.1",
|
||||
"jsencrypt": "3.0.0-rc.1",
|
||||
"moment": "^2.29.4",
|
||||
"nprogress": "0.2.0",
|
||||
"qrcodejs2": "0.0.2",
|
||||
"quill": "1.3.7",
|
||||
"screenfull": "5.0.2",
|
||||
"sortablejs": "1.10.2",
|
||||
"vue": "2.6.12",
|
||||
"vue-count-to": "1.0.13",
|
||||
"vue-cropper": "0.5.5",
|
||||
"vue-esign": "^1.1.4",
|
||||
"vue-meta": "2.4.0",
|
||||
"vue-router": "3.4.9",
|
||||
"vuedraggable": "2.24.3",
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 394 KiB |
@@ -51,12 +51,12 @@ export default {
|
||||
// 图片数量限制
|
||||
limit: {
|
||||
type: Number,
|
||||
default: 5,
|
||||
default: 1,
|
||||
},
|
||||
// 大小限制(MB)
|
||||
fileSize: {
|
||||
type: Number,
|
||||
default: 5,
|
||||
// default: 5,
|
||||
},
|
||||
// 文件类型, 例如['png', 'jpg', 'jpeg']
|
||||
fileType: {
|
||||
|
||||
@@ -9,7 +9,8 @@ export default {
|
||||
name: 'RuoYiDoc',
|
||||
data() {
|
||||
return {
|
||||
url: 'http://doc.ruoyi.vip/ruoyi-vue'
|
||||
// url: 'http://doc.ruoyi.vip/ruoyi-vue'
|
||||
url: '#'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -7,15 +7,10 @@
|
||||
|
||||
<div class="right-menu">
|
||||
<template v-if="device!=='mobile'">
|
||||
<!-- <search id="header-search" class="right-menu-item" />
|
||||
|
||||
<el-tooltip content="源码地址" effect="dark" placement="bottom">
|
||||
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
|
||||
</el-tooltip>
|
||||
|
||||
<!-- <search id="header-search" class="right-menu-item" /> -->
|
||||
<el-tooltip content="文档地址" effect="dark" placement="bottom">
|
||||
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
|
||||
</el-tooltip> -->
|
||||
</el-tooltip>
|
||||
|
||||
<screenfull id="screenfull" class="right-menu-item hover-effect" />
|
||||
|
||||
|
||||
+6
-3
@@ -4,7 +4,7 @@ import Cookies from 'js-cookie'
|
||||
|
||||
import Element from 'element-ui'
|
||||
import './assets/styles/element-variables.scss'
|
||||
import './assets/icons' // icon
|
||||
|
||||
import '@/assets/styles/index.scss' // global css
|
||||
import '@/assets/styles/ruoyi.scss' // ruoyi css
|
||||
import App from './App'
|
||||
@@ -14,6 +14,8 @@ import directive from './directive' // directive
|
||||
import plugins from './plugins' // plugins
|
||||
import { download } from '@/utils/request'
|
||||
|
||||
import './assets/icons' // icon
|
||||
// 引入Iconfont 矢量图标库
|
||||
import './assets/icon/iconfont.css'
|
||||
import './permission' // permission control
|
||||
import { getDicts } from "@/api/system/dict/data";
|
||||
@@ -37,8 +39,9 @@ import DictTag from '@/components/DictTag'
|
||||
import VueMeta from 'vue-meta'
|
||||
// 字典数据组件
|
||||
import DictData from '@/components/DictData'
|
||||
//画布组件
|
||||
import vueEsign from 'vue-esign'
|
||||
import {checkPermi} from '@/utils/permission'
|
||||
import { statusRole } from '@/utils/permission'
|
||||
|
||||
// 全局方法挂载
|
||||
Vue.prototype.getDicts = getDicts
|
||||
@@ -51,7 +54,6 @@ Vue.prototype.selectDictLabels = selectDictLabels
|
||||
Vue.prototype.download = download
|
||||
Vue.prototype.handleTree = handleTree
|
||||
Vue.prototype.checkPermi = checkPermi
|
||||
Vue.prototype.statusRole = statusRole
|
||||
|
||||
// 全局组件挂载
|
||||
Vue.component('DictTag', DictTag)
|
||||
@@ -65,6 +67,7 @@ Vue.component('ImagePreview', ImagePreview)
|
||||
Vue.use(directive)
|
||||
Vue.use(plugins)
|
||||
Vue.use(VueMeta)
|
||||
Vue.use(vueEsign)
|
||||
DictData.install()
|
||||
|
||||
/**
|
||||
|
||||
+4
-2
@@ -100,7 +100,8 @@ export const dynamicRoutes = [
|
||||
children: [
|
||||
{
|
||||
path: 'role/:userId(\\d+)',
|
||||
component: () => import('@/views/system/user/authRole'),
|
||||
// component: () => import('@/views/system/user/authRole'),
|
||||
component: (resolve) => require(['@/views/system/user/authRole'],resolve),
|
||||
name: 'AuthRole',
|
||||
meta: { title: '分配角色', activeMenu: '/system/user' }
|
||||
}
|
||||
@@ -114,7 +115,8 @@ export const dynamicRoutes = [
|
||||
children: [
|
||||
{
|
||||
path: 'user/:roleId(\\d+)',
|
||||
component: () => import('@/views/system/role/authUser'),
|
||||
// component: () => import('@/views/system/role/authUser'),
|
||||
component: (resolve) => require(['@/views/system/role/authUser'],resolve),
|
||||
name: 'AuthUser',
|
||||
meta: { title: '分配用户', activeMenu: '/system/role' }
|
||||
}
|
||||
|
||||
@@ -126,6 +126,7 @@ export const loadView = (view) => {
|
||||
return (resolve) => require([`@/views/${view}`], resolve)
|
||||
} else {
|
||||
// 使用 import 实现生产环境的路由懒加载
|
||||
// return () => import(`@/views/${view}`)
|
||||
return (resolve) => require([`@/views/${view}`], resolve)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,6 @@ const user = {
|
||||
GetInfo({ commit, state }) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getInfo().then(res => {
|
||||
sessionStorage.setItem('caseStatus', JSON.stringify(res.caseStatus))
|
||||
const user = res.user
|
||||
const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
|
||||
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
|
||||
|
||||
@@ -24,7 +24,6 @@ export function checkPermi(value) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 角色权限校验
|
||||
* @param {Array} value 校验值
|
||||
@@ -49,42 +48,3 @@ export function checkRole(value) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 状态权限校验
|
||||
* @param {Number} value 校验值
|
||||
* @returns {Boolean}
|
||||
*/
|
||||
export function statusRole(value) {
|
||||
let caseStatusStr = sessionStorage.getItem('caseStatus');
|
||||
let caseStatus = [];
|
||||
caseStatus = JSON.parse(caseStatusStr);
|
||||
if (caseStatus.length == 0) {
|
||||
return false
|
||||
}
|
||||
// if (caseStatus.includes(value)) {
|
||||
// // caseStatus.forEach(item => {
|
||||
// // if (item == value) {
|
||||
// // return true
|
||||
// // }
|
||||
// // });
|
||||
// for(let i = 0;i < caseStatus.length;i++){
|
||||
// if(caseStatus[i] == value){
|
||||
// return true
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// return false
|
||||
// }
|
||||
let flag = null;
|
||||
for (let i = 0; i < caseStatus.length; i++) {
|
||||
if (caseStatus[i] == value) {
|
||||
flag = caseStatus[i]
|
||||
}
|
||||
}
|
||||
if (flag == value) {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,8 @@ const service = axios.create({
|
||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||
baseURL: process.env.VUE_APP_BASE_API,
|
||||
// 超时
|
||||
timeout: 10000
|
||||
// timeout: 10000
|
||||
timeout: 15000
|
||||
})
|
||||
|
||||
// request拦截器
|
||||
@@ -36,10 +37,6 @@ service.interceptors.request.use(config => {
|
||||
config.params = {};
|
||||
config.url = url;
|
||||
}
|
||||
if (config.url === '/caseApplication/mediation') {
|
||||
// 调解时对于特定的请求设置超时时间为20秒
|
||||
config.timeout = 20000; // 20秒
|
||||
}
|
||||
if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
|
||||
const requestObj = {
|
||||
url: config.url,
|
||||
|
||||
@@ -200,9 +200,9 @@ export default {
|
||||
userId: this.userId
|
||||
}).then(res => {
|
||||
this.isSecretaryRole = res.data.isSecretaryRole;
|
||||
if(this.recordArrMediate){
|
||||
this.isSecretaryRole = false
|
||||
}
|
||||
// if(this.recordArrMediate){
|
||||
// this.isSecretaryRole = false
|
||||
// }
|
||||
})
|
||||
},
|
||||
/**上传地址*/
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
<el-form-item label="缴费金额:" prop="feePayable">
|
||||
<el-input v-model="form.feePayable" :disabled="true"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="申请人缴费凭证:" v-if="form.caseAttachList && form.caseAttachList.length > 0">
|
||||
<el-form-item label="申请人缴费凭证:" v-if="form.caseAttachList">
|
||||
<div style="color: #104fad;cursor:pointer" v-for="(item, index) in form.caseAttachList" :key="index"
|
||||
@click="preview(item.annexPath)">
|
||||
{{ item.annexName }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="被申请人缴费凭证:" v-if="form.resCaseAttachList && form.resCaseAttachList.length > 0">
|
||||
<el-form-item label="被申请人缴费凭证:" v-if="form.resCaseAttachList">
|
||||
<div style="color: #104fad;cursor:pointer" v-for="(item, index) in form.resCaseAttachList" :key="index"
|
||||
@click="preview(item.annexPath)">
|
||||
{{ item.annexName }}
|
||||
|
||||
+2
-1
@@ -41,6 +41,8 @@ module.exports = {
|
||||
proxy: {
|
||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||
[process.env.VUE_APP_BASE_API]: {
|
||||
// target: `http://192.168.3.77:8080`,
|
||||
// target: `http://121.40.189.20:9001`,
|
||||
target: API,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
@@ -59,7 +61,6 @@ module.exports = {
|
||||
},
|
||||
configureWebpack: {
|
||||
name: name,
|
||||
devtool: '#eval-source-map',
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': resolve('src')
|
||||
|
||||
Reference in New Issue
Block a user