-
+
-
+
- 搜索
- 重置
+ 搜索
+ 重置
@@ -34,7 +52,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['system:menu:add']"
- >新增
+ >新增
展开/折叠
+ >展开/折叠
-
+
-
+
-
-
-
+
+
+
-
+
@@ -75,29 +118,36 @@
{{ parseTime(scope.row.createTime) }}
-
+
- 修改
+ >修改
新增
+ >新增
删除
+ >删除
@@ -135,15 +185,24 @@
@show="$refs['iconSelect'].reset()"
>
-
+
+
-
@@ -155,14 +214,21 @@
-
+
-
-
+
+
是否外链
@@ -175,8 +241,11 @@
-
-
+
+
路由地址
@@ -186,8 +255,11 @@
-
-
+
+
组件路径
@@ -196,10 +268,17 @@
-
+
-
-
+
+
权限字符
@@ -207,10 +286,17 @@
-
+
-
-
+
+
路由参数
@@ -219,8 +305,11 @@
-
-
+
+
是否缓存
@@ -233,8 +322,11 @@
-
-
+
+
显示状态
@@ -243,15 +335,19 @@
v-for="dict in dict.type.sys_show_hide"
:key="dict.value"
:label="dict.value"
- >{{dict.label}}
+ >{{ dict.label }}
-
-
+
+
菜单状态
@@ -260,7 +356,8 @@
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
- >{{dict.label}}
+ >{{ dict.label }}
@@ -275,14 +372,20 @@
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
index 9d34963..d94f425 100644
--- a/src/views/system/role/index.vue
+++ b/src/views/system/role/index.vue
@@ -134,6 +134,7 @@
@click="handleDelete(scope.row)"
v-hasPermi="['system:role:remove']"
>删除
+ 恢复默认菜单权限
handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">
更多
@@ -254,7 +255,7 @@
\ No newline at end of file
+
diff --git a/vue.config.js b/vue.config.js
index 986bf66..9419505 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -1,15 +1,15 @@
-'use strict'
-const path = require('path')
+"use strict";
+const path = require("path");
function resolve(dir) {
- return path.join(__dirname, dir)
+ return path.join(__dirname, dir);
}
-const CompressionPlugin = require('compression-webpack-plugin')
+const CompressionPlugin = require("compression-webpack-plugin");
-const name = process.env.VUE_APP_TITLE || '苦糖果MES-软件开发记录' // 网页标题
+const name = "智造大师"; // 网页标题
-const port = process.env.port || process.env.npm_config_port || 80 // 端口
+const port = process.env.port || process.env.npm_config_port || 80; // 端口
// vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
@@ -20,124 +20,126 @@ module.exports = {
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.NODE_ENV === "production" ? "/" : "/",
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
- outputDir: 'dist',
+ outputDir: "dist",
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
- assetsDir: 'static',
+ assetsDir: "static",
// 是否开启eslint保存检测,有效值:ture | false | 'error'
- lintOnSave: process.env.NODE_ENV === 'development',
+ lintOnSave: process.env.NODE_ENV === "development",
// 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
productionSourceMap: false,
// webpack-dev-server 相关配置
devServer: {
- host: '0.0.0.0',
+ host: "0.0.0.0",
port: port,
open: true,
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
- [process.env.VUE_APP_BASE_API]: {
- target: `http://localhost:8080`,
+ "/prod-api": {
+ // 蚂蚁工业
+ // target: `http://192.168.2.104:8063`,
+ // 内网
+ // target: `http://192.168.50.191:8063`,
+ // 线上
+ target: `http://mes.jshengzheng.com:7072`,
changeOrigin: true,
- pathRewrite: {
- ['^' + process.env.VUE_APP_BASE_API]: ''
- }
+ // pathRewrite: {
+ // ['^' + process.env.VUE_APP_BASE_API]: ''
+ // }
},
- '/ureport': {
- target: 'http://localhost:8080',
- ws:false,
+ "/ureport": {
+ // target: `http://192.168.2.104:8063`,
+ // target: `http://192.168.50.191:8063`,
+ target: `http://mes.jshengzheng.com:7072`,
+ ws: false,
changeOrigin: true,
pathRewrite: {
- '^/ureport': '/ureport'
- }
+ "^/ureport": "/ureport",
+ },
},
},
- disableHostCheck: true
+ disableHostCheck: true,
},
css: {
loaderOptions: {
sass: {
- sassOptions: { outputStyle: "expanded" }
- }
- }
+ sassOptions: { outputStyle: "expanded" },
+ },
+ },
},
configureWebpack: {
name: name,
resolve: {
alias: {
- '@': resolve('src')
- }
+ "@": resolve("src"),
+ },
},
plugins: [
// http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
new CompressionPlugin({
- test: /\.(js|css|html)?$/i, // 压缩文件格式
- filename: '[path].gz[query]', // 压缩后的文件名
- algorithm: 'gzip', // 使用gzip压缩
- minRatio: 0.8 // 压缩率小于1才会压缩
- })
+ test: /\.(js|css|html)?$/i, // 压缩文件格式
+ filename: "[path].gz[query]", // 压缩后的文件名
+ algorithm: "gzip", // 使用gzip压缩
+ minRatio: 0.8, // 压缩率小于1才会压缩
+ }),
],
},
chainWebpack(config) {
- config.plugins.delete('preload') // TODO: need test
- config.plugins.delete('prefetch') // TODO: need test
+ config.plugins.delete("preload"); // TODO: need test
+ config.plugins.delete("prefetch"); // TODO: need test
// set svg-sprite-loader
+ config.module.rule("svg").exclude.add(resolve("src/assets/icons")).end();
config.module
- .rule('svg')
- .exclude.add(resolve('src/assets/icons'))
- .end()
- config.module
- .rule('icons')
+ .rule("icons")
.test(/\.svg$/)
- .include.add(resolve('src/assets/icons'))
+ .include.add(resolve("src/assets/icons"))
.end()
- .use('svg-sprite-loader')
- .loader('svg-sprite-loader')
+ .use("svg-sprite-loader")
+ .loader("svg-sprite-loader")
.options({
- symbolId: 'icon-[name]'
+ symbolId: "icon-[name]",
})
- .end()
+ .end();
- config
- .when(process.env.NODE_ENV !== 'development',
- config => {
- config
- .plugin('ScriptExtHtmlWebpackPlugin')
- .after('html')
- .use('script-ext-html-webpack-plugin', [{
- // `runtime` must same as runtimeChunk name. default is `runtime`
- inline: /runtime\..*\.js$/
- }])
- .end()
- config
- .optimization.splitChunks({
- chunks: 'all',
- cacheGroups: {
- libs: {
- name: 'chunk-libs',
- test: /[\\/]node_modules[\\/]/,
- priority: 10,
- chunks: 'initial' // only package third parties that are initially dependent
- },
- elementUI: {
- name: 'chunk-elementUI', // split elementUI into a single package
- priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
- test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
- },
- commons: {
- name: 'chunk-commons',
- test: resolve('src/components'), // can customize your rules
- minChunks: 3, // minimum common number
- priority: 5,
- reuseExistingChunk: true
- }
- }
- })
- config.optimization.runtimeChunk('single'),
+ config.when(process.env.NODE_ENV !== "development", (config) => {
+ config
+ .plugin("ScriptExtHtmlWebpackPlugin")
+ .after("html")
+ .use("script-ext-html-webpack-plugin", [
{
- from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
- to: './' //到根目录下
- }
- }
- )
- }
-}
+ // `runtime` must same as runtimeChunk name. default is `runtime`
+ inline: /runtime\..*\.js$/,
+ },
+ ])
+ .end();
+ config.optimization.splitChunks({
+ chunks: "all",
+ cacheGroups: {
+ libs: {
+ name: "chunk-libs",
+ test: /[\\/]node_modules[\\/]/,
+ priority: 10,
+ chunks: "initial", // only package third parties that are initially dependent
+ },
+ elementUI: {
+ name: "chunk-elementUI", // split elementUI into a single package
+ priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
+ test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm
+ },
+ commons: {
+ name: "chunk-commons",
+ test: resolve("src/components"), // can customize your rules
+ minChunks: 3, // minimum common number
+ priority: 5,
+ reuseExistingChunk: true,
+ },
+ },
+ });
+ config.optimization.runtimeChunk("single"),
+ {
+ from: path.resolve(__dirname, "./public/robots.txt"), //防爬虫文件
+ to: "./", //到根目录下
+ };
+ });
+ },
+};