diff --git a/.env.development b/.env.development index 302ecd1..5011e0a 100644 --- a/.env.development +++ b/.env.development @@ -1,11 +1,12 @@ # 页面标题 -VUE_APP_TITLE = 若依管理系统 +VUE_APP_TITLE = 人口数据管理系统 # 开发环境配置 ENV = 'development' -# 若依管理系统/开发环境 -VUE_APP_BASE_API = '/dev-api' +# 政务网/开发环境 +VUE_APP_BASE_API_HTML = "http://122.193.93.182:19002" +VUE_APP_BASE_API = 'http://122.193.93.182:19002' # 路由懒加载 VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/.env.production b/.env.production index b4893b0..6c7bdb0 100644 --- a/.env.production +++ b/.env.production @@ -1,8 +1,8 @@ # 页面标题 -VUE_APP_TITLE = 若依管理系统 +VUE_APP_TITLE = 人口数据管理系统 # 生产环境配置 ENV = 'production' -# 若依管理系统/生产环境 +# 人口数据管理系统/生产环境 VUE_APP_BASE_API = '/prod-api' diff --git a/.env.staging b/.env.staging index 361859f..12de2d8 100644 --- a/.env.staging +++ b/.env.staging @@ -1,10 +1,10 @@ # 页面标题 -VUE_APP_TITLE = 若依管理系统 +VUE_APP_TITLE = 人口数据管理系统 NODE_ENV = production # 测试环境配置 ENV = 'staging' -# 若依管理系统/测试环境 +# 人口数据管理系统/测试环境 VUE_APP_BASE_API = '/stage-api' diff --git a/package.json b/package.json index 2d89bad..a268d0b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ruoyi", "version": "3.8.8", - "description": "若依管理系统", + "description": "人口数据管理系统", "author": "若依", "license": "MIT", "scripts": { @@ -37,6 +37,7 @@ }, "dependencies": { "@riophae/vue-treeselect": "0.4.0", + "autofit.js": "^3.1.1", "axios": "0.28.1", "clipboard": "2.0.8", "core-js": "3.37.1", diff --git a/public/favicon.ico b/public/favicon.ico index e263760..6389732 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/src/App.vue b/src/App.vue index b92ea37..9038275 100644 --- a/src/App.vue +++ b/src/App.vue @@ -7,18 +7,30 @@ diff --git a/src/views/index.vue b/src/views/index.vue index 8081a92..662af1e 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -41,7 +41,7 @@

若依后台管理框架

- 一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。 + 一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了人口数据管理系统,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。

当前版本: v{{ version }} @@ -118,12 +118,19 @@ >

- QQ群: 满937441 满887144332 - 满180251782 满104180207 满186866453 满201396349 - 满101456076 满101539465 满264312783 满167385320 - 满104748341 满160110482 满170801498 满108482800 - 满101046199 满136919097 满143961921 满174951577 - 满161281055 满138988063 151450850 + QQ群: 满937441 + 满887144332 满180251782 满104180207 + 满186866453 满201396349 满101456076 + 满101539465 满264312783 满167385320 + 满104748341 满160110482 满170801498 + 满108482800 满101046199 满136919097 + 满143961921 满174951577 满161281055 + 满138988063 + 151450850

微信:修复table中更多按钮切换主题色未生效修复问题

  • 修复某些特性的环境生成代码变乱码TXT文件问题
  • 修复代码生成图片/文件/单选时选择必填无法校验问题
  • -
  • 修复某些特性的情况用户编辑对话框中角色和部门无法修改问题
  • +
  • + 修复某些特性的情况用户编辑对话框中角色和部门无法修改问题 +
  • 其他细节优化
  • @@ -353,7 +362,9 @@
  • 新增获取不带后缀文件名称方法
  • 新增获取配置文件中的属性值方法
  • 新增内容编码/解码方便插件集成使用
  • -
  • 字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)
  • +
  • + 字典类型必须以字母开头,且只能为(小写字母,数字,下滑线) +
  • 优化设置分页参数默认值
  • 优化对空字符串参数处理的过滤
  • 优化显示顺序orderNum类型为整型
  • @@ -557,8 +568,12 @@
  • BLOB下载时清除URL对象引用
  • 代码生成导入表按创建时间排序
  • 修复代码生成页面数据编辑保存之后总是跳转第一页的问题
  • -
  • 修复带safari浏览器无法格式化utc日期格式yyyy-MM-dd'T'HH:mm:ss.SSS问题
  • -
  • 多图上传组件移除多余的api地址&验证失败导致图片删除问题&无法删除相应图片修复
  • +
  • + 修复带safari浏览器无法格式化utc日期格式yyyy-MM-dd'T'HH:mm:ss.SSS问题 +
  • +
  • + 多图上传组件移除多余的api地址&验证失败导致图片删除问题&无法删除相应图片修复 +
  • 其他细节优化
  • @@ -603,7 +618,9 @@
      -
    1. 新增菜单导航显示风格TopNav(false为左侧导航菜单,true为顶部导航菜单)
    2. +
    3. + 新增菜单导航显示风格TopNav(false为左侧导航菜单,true为顶部导航菜单) +
    4. 布局设置支持保存&重置配置
    5. 修复树表数据显示不全&加载慢问题
    6. 新增IE浏览器版本过低提示页面
    7. @@ -622,7 +639,9 @@
    8. 升级druid到最新版本v1.2.6
    9. 升级mybatis到最新版3.5.6 阻止远程代码执行漏洞
    10. 升级oshi到最新版本v5.6.0
    11. -
    12. velocity剔除commons-collections版本,防止3.2.1版本的反序列化漏洞
    13. +
    14. + velocity剔除commons-collections版本,防止3.2.1版本的反序列化漏洞 +
    15. 数据监控页默认账户密码防止越权访问
    16. 修复firefox下表单构建拖拽会新打卡一个选项卡
    17. 修正后端导入表权限标识
    18. @@ -999,11 +1018,7 @@ 捐赠支持
      - donate + donate 你可以请作者喝杯咖啡表示鼓励 @@ -1020,14 +1035,14 @@ export default { data() { return { // 版本号 - version: "3.8.8" + version: "3.8.8", }; }, methods: { goTarget(href) { window.open(href, "_blank"); - } - } + }, + }, }; @@ -1094,4 +1109,3 @@ export default { } } - diff --git a/src/views/login.vue b/src/views/login.vue index 06c09d2..c96c44c 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -1,15 +1,25 @@ @@ -161,44 +200,78 @@ export default { justify-content: center; align-items: center; height: 100%; - background-image: url("../assets/images/login-background.jpg"); - background-size: cover; + background-image: url("../assets/images/ui/logo_bg.jpg"); + background-size: 100% 100%; } .title { margin: 0px auto 30px auto; text-align: center; - color: #707070; + color: #00d8ff; + font-size: 30px; + font-family: "xiniu"; } .login-form { border-radius: 6px; - background: #ffffff; - width: 400px; - padding: 25px 25px 5px 25px; + background-image: url("../assets/images/ui/img_frame.png"); + background-size: 100% 100%; + width: 500px; + padding: 35px 35px 5px 35px; .el-input { - height: 38px; + height: 50px; input { - height: 38px; + height: 50px; + font-size: 18px; + color: #d8dde6; + font-family: "Alibaba-PuHuiTi-Regular.otf"; + background: rgba(9, 27, 52, 0.2); + border-color: #1489cc; } } .input-icon { - height: 39px; - width: 14px; + height: 50px; + width: 18px; margin-left: 2px; + color: #1adcff; } } +.rememberMe { + color: #d8dde6; +} +.logo-btn { + height: 50px; + background: linear-gradient( + 0deg, + rgba(7, 39, 64, 0.9) 0%, + rgba(0, 132, 255, 0.9) 100% + ); + box-shadow: 0px 3px 6px 0px rgba(4, 0, 0, 0.45); + border-radius: 10px; + // border-image: linear-gradient(0deg, #00c0ff, #009cff) 10 10; +} +.logo-btn:hover { + background: linear-gradient( + 0deg, + rgba(7, 39, 64, 0.9) 0%, + rgba(0, 132, 255, 0.9) 100% + ); +} .login-tip { font-size: 13px; text-align: center; color: #bfbfbf; } + .login-code { width: 33%; - height: 38px; + height: 50px; float: right; img { + height: 50px; + width: 100%; cursor: pointer; vertical-align: middle; + border-radius: 4px; } } .el-login-footer { diff --git a/vue.config.js b/vue.config.js index 85f3133..47a827d 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 || '若依管理系统' // 网页标题 +const name = process.env.VUE_APP_TITLE || "人口数据管理系统"; // 网页标题 -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,16 +20,16 @@ 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: { @@ -38,93 +38,92 @@ module.exports = { target: `http://localhost:8080`, changeOrigin: true, pathRewrite: { - ['^' + process.env.VUE_APP_BASE_API]: '' - } - } + ["^" + process.env.VUE_APP_BASE_API]: "", + }, + }, }, - 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({ - cache: false, // 不启用文件缓存 - test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式 - filename: '[path][base].gz[query]', // 压缩后的文件名 - algorithm: 'gzip', // 使用gzip压缩 - minRatio: 0.8, // 压缩比例,小于 80% 的文件不会被压缩 - deleteOriginalAssets: false // 压缩后删除原文件 - }) + cache: false, // 不启用文件缓存 + test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式 + filename: "[path][base].gz[query]", // 压缩后的文件名 + algorithm: "gzip", // 使用gzip压缩 + minRatio: 0.8, // 压缩比例,小于 80% 的文件不会被压缩 + deleteOriginalAssets: false, // 压缩后删除原文件 + }), ], }, 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', [{ + 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() + 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 - test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm - priority: 20 // the weight needs to be larger than libs and app or it will be packaged into libs or app - }, - 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.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 + test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm + priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app + }, + 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"); + }); + }, +};