Browse Source

用户管理系统

wangb 4 months ago
parent
commit
4faf82d9b9

+ 6 - 2
ruoyi-ui/.env.development

@@ -1,11 +1,15 @@
 # 页面标题
-VUE_APP_TITLE = 若依管理系统
+VUE_APP_TITLE = 发电量管控平台后台管理系统
 
 # 开发环境配置
 ENV = 'development'
 
 # 若依管理系统/开发环境
-VUE_APP_BASE_API = '/dev-api'
+# VUE_APP_BASE_API = '/dev-api'
+VUE_APP_BASE_API = 'http://172.16.12.102:8190'
+
+
+
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 4 - 2
ruoyi-ui/.env.production

@@ -1,8 +1,10 @@
 # 页面标题
-VUE_APP_TITLE = 若依管理系统
+VUE_APP_TITLE = 发电量管控平台后台管理系统
 
 # 生产环境配置
 ENV = 'production'
 
 # 若依管理系统/生产环境
-VUE_APP_BASE_API = '/prod-api'
+# VUE_APP_BASE_API = '/prod-api'
+# VUE_APP_BASE_API = 'http://172.16.12.102:8190'
+VUE_APP_BASE_API = 'http://10.127.7.241:8190'

BIN
ruoyi-ui/public/favicon.ico


BIN
ruoyi-ui/src/assets/logo/logo1.png


+ 3 - 3
ruoyi-ui/src/layout/components/Navbar.vue

@@ -1,11 +1,11 @@
 <template>
   <div class="navbar">
-    <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
+    <!-- <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" /> -->
 
     <breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/>
     <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/>
 
-    <div class="right-menu">
+    <!-- <div class="right-menu">
       <template v-if="device!=='mobile'">
         <search id="header-search" class="right-menu-item" />
         
@@ -42,7 +42,7 @@
           </el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
-    </div>
+    </div> -->
   </div>
 </template>
 

+ 3 - 2
ruoyi-ui/src/layout/components/Sidebar/Logo.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
-    <transition name="sidebarLogoFade">
+    <!-- <transition name="sidebarLogoFade">
       <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
         <img v-if="logo" :src="logo" class="sidebar-logo" />
         <h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
@@ -9,7 +9,8 @@
         <img v-if="logo" :src="logo" class="sidebar-logo" />
         <h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
       </router-link>
-    </transition>
+    </transition> -->
+    <p>{{ title }}</p>
   </div>
 </template>
 

+ 13 - 2
ruoyi-ui/src/layout/components/Sidebar/index.vue

@@ -1,6 +1,10 @@
 <template>
     <div :class="{'has-logo':showLogo}" :style="{ backgroundColor: settings.sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
-        <logo v-if="showLogo" :collapse="isCollapse" />
+        <!-- <logo v-if="showLogo" :collapse="isCollapse" /> -->
+         <div style="height:50px;line-height:50px;text-align: center;">
+             <!-- <span style="display: inline-block;font-size: 14px;color: #fff;">{{ title }}</span> -->
+            <img :src="logoImg" alt="" style="width: 146%;position: relative;top: 11px;">
+            </div>
         <el-scrollbar :class="settings.sideTheme" wrap-class="scrollbar-wrapper">
             <el-menu
                 :default-active="activeMenu"
@@ -28,6 +32,7 @@ import { mapGetters, mapState } from "vuex";
 import Logo from "./Logo";
 import SidebarItem from "./SidebarItem";
 import variables from "@/assets/styles/variables.scss";
+import logoImg from '@/assets/logo/logo1.png'
 
 export default {
     components: { SidebarItem, Logo },
@@ -52,6 +57,12 @@ export default {
         isCollapse() {
             return !this.sidebar.opened;
         }
-    }
+    },
+    data() {
+        return {
+            title: process.env.VUE_APP_TITLE,
+            logoImg: logoImg
+        }
+    },
 };
 </script>

+ 55 - 2
ruoyi-ui/src/router/index.js

@@ -68,13 +68,66 @@ export const constantRoutes = [
     children: [
       {
         path: 'index',
-        component: () => import('@/views/index'),
+        // component: () => import('@/views/index'),
+        component: () => import('@/views/system/user/index'),
         name: 'Index',
-        meta: { title: '首页', icon: 'dashboard', affix: true }
+        meta: { title: '用户管理', icon: 'dashboard', affix: true }
       }
     ]
   },
   {
+    path: '',
+    component: Layout,
+    children: [
+      {
+        path: 'role',
+        // component: () => import('@/views/index'),
+        component: () => import('@/views/system/role/index'),
+        name: 'Index',
+        meta: { title: '角色管理', icon: 'dashboard', affix: true }
+      }
+    ]
+  },
+  {
+    path: '',
+    component: Layout,
+    children: [
+      {
+        path: 'dept',
+        // component: () => import('@/views/index'),
+        component: () => import('@/views/system/dept/index'),
+        name: 'Index',
+        meta: { title: '部门管理', icon: 'dashboard', affix: true }
+      }
+    ]
+  },
+  {
+    path: '',
+    component: Layout,
+    children: [
+      {
+        path: 'post',
+        // component: () => import('@/views/index'),
+        component: () => import('@/views/system/post/index'),
+        name: 'Index',
+        meta: { title: '岗位管理', icon: 'dashboard', affix: true }
+      }
+    ]
+  },
+  // {
+  //   path: '',
+  //   component: Layout,
+  //   children: [
+  //     {
+  //       path: 'menu',
+  //       // component: () => import('@/views/index'),
+  //       component: () => import('@/views/system/menu/index'),
+  //       name: 'Index',
+  //       meta: { title: '菜单管理', icon: 'dashboard', affix: true }
+  //     }
+  //   ]
+  // },
+  {
     path: '/user',
     component: Layout,
     hidden: true,

+ 359 - 359
ruoyi-ui/src/utils/index.js

@@ -1,390 +1,390 @@
-import { parseTime } from './ruoyi'
+// import { parseTime } from './ruoyi'
 
-/**
- * 表格时间格式化
- */
-export function formatDate(cellValue) {
-  if (cellValue == null || cellValue == "") return "";
-  var date = new Date(cellValue) 
-  var year = date.getFullYear()
-  var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
-  var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() 
-  var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() 
-  var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() 
-  var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
-  return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
-}
+// /**
+//  * 表格时间格式化
+//  */
+// export function formatDate(cellValue) {
+//   if (cellValue == null || cellValue == "") return "";
+//   var date = new Date(cellValue) 
+//   var year = date.getFullYear()
+//   var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
+//   var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() 
+//   var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() 
+//   var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() 
+//   var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
+//   return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
+// }
 
-/**
- * @param {number} time
- * @param {string} option
- * @returns {string}
- */
-export function formatTime(time, option) {
-  if (('' + time).length === 10) {
-    time = parseInt(time) * 1000
-  } else {
-    time = +time
-  }
-  const d = new Date(time)
-  const now = Date.now()
+// /**
+//  * @param {number} time
+//  * @param {string} option
+//  * @returns {string}
+//  */
+// export function formatTime(time, option) {
+//   if (('' + time).length === 10) {
+//     time = parseInt(time) * 1000
+//   } else {
+//     time = +time
+//   }
+//   const d = new Date(time)
+//   const now = Date.now()
 
-  const diff = (now - d) / 1000
+//   const diff = (now - d) / 1000
 
-  if (diff < 30) {
-    return '刚刚'
-  } else if (diff < 3600) {
-    // less 1 hour
-    return Math.ceil(diff / 60) + '分钟前'
-  } else if (diff < 3600 * 24) {
-    return Math.ceil(diff / 3600) + '小时前'
-  } else if (diff < 3600 * 24 * 2) {
-    return '1天前'
-  }
-  if (option) {
-    return parseTime(time, option)
-  } else {
-    return (
-      d.getMonth() +
-      1 +
-      '月' +
-      d.getDate() +
-      '日' +
-      d.getHours() +
-      '时' +
-      d.getMinutes() +
-      '分'
-    )
-  }
-}
+//   if (diff < 30) {
+//     return '刚刚'
+//   } else if (diff < 3600) {
+//     // less 1 hour
+//     return Math.ceil(diff / 60) + '分钟前'
+//   } else if (diff < 3600 * 24) {
+//     return Math.ceil(diff / 3600) + '小时前'
+//   } else if (diff < 3600 * 24 * 2) {
+//     return '1天前'
+//   }
+//   if (option) {
+//     return parseTime(time, option)
+//   } else {
+//     return (
+//       d.getMonth() +
+//       1 +
+//       '月' +
+//       d.getDate() +
+//       '日' +
+//       d.getHours() +
+//       '时' +
+//       d.getMinutes() +
+//       '分'
+//     )
+//   }
+// }
 
-/**
- * @param {string} url
- * @returns {Object}
- */
-export function getQueryObject(url) {
-  url = url == null ? window.location.href : url
-  const search = url.substring(url.lastIndexOf('?') + 1)
-  const obj = {}
-  const reg = /([^?&=]+)=([^?&=]*)/g
-  search.replace(reg, (rs, $1, $2) => {
-    const name = decodeURIComponent($1)
-    let val = decodeURIComponent($2)
-    val = String(val)
-    obj[name] = val
-    return rs
-  })
-  return obj
-}
+// /**
+//  * @param {string} url
+//  * @returns {Object}
+//  */
+// export function getQueryObject(url) {
+//   url = url == null ? window.location.href : url
+//   const search = url.substring(url.lastIndexOf('?') + 1)
+//   const obj = {}
+//   const reg = /([^?&=]+)=([^?&=]*)/g
+//   search.replace(reg, (rs, $1, $2) => {
+//     const name = decodeURIComponent($1)
+//     let val = decodeURIComponent($2)
+//     val = String(val)
+//     obj[name] = val
+//     return rs
+//   })
+//   return obj
+// }
 
-/**
- * @param {string} input value
- * @returns {number} output value
- */
-export function byteLength(str) {
-  // returns the byte length of an utf8 string
-  let s = str.length
-  for (var i = str.length - 1; i >= 0; i--) {
-    const code = str.charCodeAt(i)
-    if (code > 0x7f && code <= 0x7ff) s++
-    else if (code > 0x7ff && code <= 0xffff) s += 2
-    if (code >= 0xDC00 && code <= 0xDFFF) i--
-  }
-  return s
-}
+// /**
+//  * @param {string} input value
+//  * @returns {number} output value
+//  */
+// export function byteLength(str) {
+//   // returns the byte length of an utf8 string
+//   let s = str.length
+//   for (var i = str.length - 1; i >= 0; i--) {
+//     const code = str.charCodeAt(i)
+//     if (code > 0x7f && code <= 0x7ff) s++
+//     else if (code > 0x7ff && code <= 0xffff) s += 2
+//     if (code >= 0xDC00 && code <= 0xDFFF) i--
+//   }
+//   return s
+// }
 
-/**
- * @param {Array} actual
- * @returns {Array}
- */
-export function cleanArray(actual) {
-  const newArray = []
-  for (let i = 0; i < actual.length; i++) {
-    if (actual[i]) {
-      newArray.push(actual[i])
-    }
-  }
-  return newArray
-}
+// /**
+//  * @param {Array} actual
+//  * @returns {Array}
+//  */
+// export function cleanArray(actual) {
+//   const newArray = []
+//   for (let i = 0; i < actual.length; i++) {
+//     if (actual[i]) {
+//       newArray.push(actual[i])
+//     }
+//   }
+//   return newArray
+// }
 
-/**
- * @param {Object} json
- * @returns {Array}
- */
-export function param(json) {
-  if (!json) return ''
-  return cleanArray(
-    Object.keys(json).map(key => {
-      if (json[key] === undefined) return ''
-      return encodeURIComponent(key) + '=' + encodeURIComponent(json[key])
-    })
-  ).join('&')
-}
+// /**
+//  * @param {Object} json
+//  * @returns {Array}
+//  */
+// export function param(json) {
+//   if (!json) return ''
+//   return cleanArray(
+//     Object.keys(json).map(key => {
+//       if (json[key] === undefined) return ''
+//       return encodeURIComponent(key) + '=' + encodeURIComponent(json[key])
+//     })
+//   ).join('&')
+// }
 
-/**
- * @param {string} url
- * @returns {Object}
- */
-export function param2Obj(url) {
-  const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
-  if (!search) {
-    return {}
-  }
-  const obj = {}
-  const searchArr = search.split('&')
-  searchArr.forEach(v => {
-    const index = v.indexOf('=')
-    if (index !== -1) {
-      const name = v.substring(0, index)
-      const val = v.substring(index + 1, v.length)
-      obj[name] = val
-    }
-  })
-  return obj
-}
+// /**
+//  * @param {string} url
+//  * @returns {Object}
+//  */
+// export function param2Obj(url) {
+//   const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
+//   if (!search) {
+//     return {}
+//   }
+//   const obj = {}
+//   const searchArr = search.split('&')
+//   searchArr.forEach(v => {
+//     const index = v.indexOf('=')
+//     if (index !== -1) {
+//       const name = v.substring(0, index)
+//       const val = v.substring(index + 1, v.length)
+//       obj[name] = val
+//     }
+//   })
+//   return obj
+// }
 
-/**
- * @param {string} val
- * @returns {string}
- */
-export function html2Text(val) {
-  const div = document.createElement('div')
-  div.innerHTML = val
-  return div.textContent || div.innerText
-}
+// /**
+//  * @param {string} val
+//  * @returns {string}
+//  */
+// export function html2Text(val) {
+//   const div = document.createElement('div')
+//   div.innerHTML = val
+//   return div.textContent || div.innerText
+// }
 
-/**
- * Merges two objects, giving the last one precedence
- * @param {Object} target
- * @param {(Object|Array)} source
- * @returns {Object}
- */
-export function objectMerge(target, source) {
-  if (typeof target !== 'object') {
-    target = {}
-  }
-  if (Array.isArray(source)) {
-    return source.slice()
-  }
-  Object.keys(source).forEach(property => {
-    const sourceProperty = source[property]
-    if (typeof sourceProperty === 'object') {
-      target[property] = objectMerge(target[property], sourceProperty)
-    } else {
-      target[property] = sourceProperty
-    }
-  })
-  return target
-}
+// /**
+//  * Merges two objects, giving the last one precedence
+//  * @param {Object} target
+//  * @param {(Object|Array)} source
+//  * @returns {Object}
+//  */
+// export function objectMerge(target, source) {
+//   if (typeof target !== 'object') {
+//     target = {}
+//   }
+//   if (Array.isArray(source)) {
+//     return source.slice()
+//   }
+//   Object.keys(source).forEach(property => {
+//     const sourceProperty = source[property]
+//     if (typeof sourceProperty === 'object') {
+//       target[property] = objectMerge(target[property], sourceProperty)
+//     } else {
+//       target[property] = sourceProperty
+//     }
+//   })
+//   return target
+// }
 
-/**
- * @param {HTMLElement} element
- * @param {string} className
- */
-export function toggleClass(element, className) {
-  if (!element || !className) {
-    return
-  }
-  let classString = element.className
-  const nameIndex = classString.indexOf(className)
-  if (nameIndex === -1) {
-    classString += '' + className
-  } else {
-    classString =
-      classString.substr(0, nameIndex) +
-      classString.substr(nameIndex + className.length)
-  }
-  element.className = classString
-}
+// /**
+//  * @param {HTMLElement} element
+//  * @param {string} className
+//  */
+// export function toggleClass(element, className) {
+//   if (!element || !className) {
+//     return
+//   }
+//   let classString = element.className
+//   const nameIndex = classString.indexOf(className)
+//   if (nameIndex === -1) {
+//     classString += '' + className
+//   } else {
+//     classString =
+//       classString.substr(0, nameIndex) +
+//       classString.substr(nameIndex + className.length)
+//   }
+//   element.className = classString
+// }
 
-/**
- * @param {string} type
- * @returns {Date}
- */
-export function getTime(type) {
-  if (type === 'start') {
-    return new Date().getTime() - 3600 * 1000 * 24 * 90
-  } else {
-    return new Date(new Date().toDateString())
-  }
-}
+// /**
+//  * @param {string} type
+//  * @returns {Date}
+//  */
+// export function getTime(type) {
+//   if (type === 'start') {
+//     return new Date().getTime() - 3600 * 1000 * 24 * 90
+//   } else {
+//     return new Date(new Date().toDateString())
+//   }
+// }
 
-/**
- * @param {Function} func
- * @param {number} wait
- * @param {boolean} immediate
- * @return {*}
- */
-export function debounce(func, wait, immediate) {
-  let timeout, args, context, timestamp, result
+// /**
+//  * @param {Function} func
+//  * @param {number} wait
+//  * @param {boolean} immediate
+//  * @return {*}
+//  */
+// export function debounce(func, wait, immediate) {
+//   let timeout, args, context, timestamp, result
 
-  const later = function() {
-    // 据上一次触发时间间隔
-    const last = +new Date() - timestamp
+//   const later = function() {
+//     // 据上一次触发时间间隔
+//     const last = +new Date() - timestamp
 
-    // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
-    if (last < wait && last > 0) {
-      timeout = setTimeout(later, wait - last)
-    } else {
-      timeout = null
-      // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
-      if (!immediate) {
-        result = func.apply(context, args)
-        if (!timeout) context = args = null
-      }
-    }
-  }
+//     // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
+//     if (last < wait && last > 0) {
+//       timeout = setTimeout(later, wait - last)
+//     } else {
+//       timeout = null
+//       // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
+//       if (!immediate) {
+//         result = func.apply(context, args)
+//         if (!timeout) context = args = null
+//       }
+//     }
+//   }
 
-  return function(...args) {
-    context = this
-    timestamp = +new Date()
-    const callNow = immediate && !timeout
-    // 如果延时不存在,重新设定延时
-    if (!timeout) timeout = setTimeout(later, wait)
-    if (callNow) {
-      result = func.apply(context, args)
-      context = args = null
-    }
+//   return function(...args) {
+//     context = this
+//     timestamp = +new Date()
+//     const callNow = immediate && !timeout
+//     // 如果延时不存在,重新设定延时
+//     if (!timeout) timeout = setTimeout(later, wait)
+//     if (callNow) {
+//       result = func.apply(context, args)
+//       context = args = null
+//     }
 
-    return result
-  }
-}
+//     return result
+//   }
+// }
 
-/**
- * This is just a simple version of deep copy
- * Has a lot of edge cases bug
- * If you want to use a perfect deep copy, use lodash's _.cloneDeep
- * @param {Object} source
- * @returns {Object}
- */
-export function deepClone(source) {
-  if (!source && typeof source !== 'object') {
-    throw new Error('error arguments', 'deepClone')
-  }
-  const targetObj = source.constructor === Array ? [] : {}
-  Object.keys(source).forEach(keys => {
-    if (source[keys] && typeof source[keys] === 'object') {
-      targetObj[keys] = deepClone(source[keys])
-    } else {
-      targetObj[keys] = source[keys]
-    }
-  })
-  return targetObj
-}
+// /**
+//  * This is just a simple version of deep copy
+//  * Has a lot of edge cases bug
+//  * If you want to use a perfect deep copy, use lodash's _.cloneDeep
+//  * @param {Object} source
+//  * @returns {Object}
+//  */
+// export function deepClone(source) {
+//   if (!source && typeof source !== 'object') {
+//     throw new Error('error arguments', 'deepClone')
+//   }
+//   const targetObj = source.constructor === Array ? [] : {}
+//   Object.keys(source).forEach(keys => {
+//     if (source[keys] && typeof source[keys] === 'object') {
+//       targetObj[keys] = deepClone(source[keys])
+//     } else {
+//       targetObj[keys] = source[keys]
+//     }
+//   })
+//   return targetObj
+// }
 
-/**
- * @param {Array} arr
- * @returns {Array}
- */
-export function uniqueArr(arr) {
-  return Array.from(new Set(arr))
-}
+// /**
+//  * @param {Array} arr
+//  * @returns {Array}
+//  */
+// export function uniqueArr(arr) {
+//   return Array.from(new Set(arr))
+// }
 
-/**
- * @returns {string}
- */
-export function createUniqueString() {
-  const timestamp = +new Date() + ''
-  const randomNum = parseInt((1 + Math.random()) * 65536) + ''
-  return (+(randomNum + timestamp)).toString(32)
-}
+// /**
+//  * @returns {string}
+//  */
+// export function createUniqueString() {
+//   const timestamp = +new Date() + ''
+//   const randomNum = parseInt((1 + Math.random()) * 65536) + ''
+//   return (+(randomNum + timestamp)).toString(32)
+// }
 
-/**
- * Check if an element has a class
- * @param {HTMLElement} elm
- * @param {string} cls
- * @returns {boolean}
- */
-export function hasClass(ele, cls) {
-  return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'))
-}
+// /**
+//  * Check if an element has a class
+//  * @param {HTMLElement} elm
+//  * @param {string} cls
+//  * @returns {boolean}
+//  */
+// export function hasClass(ele, cls) {
+//   return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'))
+// }
 
-/**
- * Add class to element
- * @param {HTMLElement} elm
- * @param {string} cls
- */
-export function addClass(ele, cls) {
-  if (!hasClass(ele, cls)) ele.className += ' ' + cls
-}
+// /**
+//  * Add class to element
+//  * @param {HTMLElement} elm
+//  * @param {string} cls
+//  */
+// export function addClass(ele, cls) {
+//   if (!hasClass(ele, cls)) ele.className += ' ' + cls
+// }
 
-/**
- * Remove class from element
- * @param {HTMLElement} elm
- * @param {string} cls
- */
-export function removeClass(ele, cls) {
-  if (hasClass(ele, cls)) {
-    const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)')
-    ele.className = ele.className.replace(reg, ' ')
-  }
-}
+// /**
+//  * Remove class from element
+//  * @param {HTMLElement} elm
+//  * @param {string} cls
+//  */
+// export function removeClass(ele, cls) {
+//   if (hasClass(ele, cls)) {
+//     const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)')
+//     ele.className = ele.className.replace(reg, ' ')
+//   }
+// }
 
-export function makeMap(str, expectsLowerCase) {
-  const map = Object.create(null)
-  const list = str.split(',')
-  for (let i = 0; i < list.length; i++) {
-    map[list[i]] = true
-  }
-  return expectsLowerCase
-    ? val => map[val.toLowerCase()]
-    : val => map[val]
-}
+// export function makeMap(str, expectsLowerCase) {
+//   const map = Object.create(null)
+//   const list = str.split(',')
+//   for (let i = 0; i < list.length; i++) {
+//     map[list[i]] = true
+//   }
+//   return expectsLowerCase
+//     ? val => map[val.toLowerCase()]
+//     : val => map[val]
+// }
  
-export const exportDefault = 'export default '
+// export const exportDefault = 'export default '
 
-export const beautifierConf = {
-  html: {
-    indent_size: '2',
-    indent_char: ' ',
-    max_preserve_newlines: '-1',
-    preserve_newlines: false,
-    keep_array_indentation: false,
-    break_chained_methods: false,
-    indent_scripts: 'separate',
-    brace_style: 'end-expand',
-    space_before_conditional: true,
-    unescape_strings: false,
-    jslint_happy: false,
-    end_with_newline: true,
-    wrap_line_length: '110',
-    indent_inner_html: true,
-    comma_first: false,
-    e4x: true,
-    indent_empty_lines: true
-  },
-  js: {
-    indent_size: '2',
-    indent_char: ' ',
-    max_preserve_newlines: '-1',
-    preserve_newlines: false,
-    keep_array_indentation: false,
-    break_chained_methods: false,
-    indent_scripts: 'normal',
-    brace_style: 'end-expand',
-    space_before_conditional: true,
-    unescape_strings: false,
-    jslint_happy: true,
-    end_with_newline: true,
-    wrap_line_length: '110',
-    indent_inner_html: true,
-    comma_first: false,
-    e4x: true,
-    indent_empty_lines: true
-  }
-}
+// export const beautifierConf = {
+//   html: {
+//     indent_size: '2',
+//     indent_char: ' ',
+//     max_preserve_newlines: '-1',
+//     preserve_newlines: false,
+//     keep_array_indentation: false,
+//     break_chained_methods: false,
+//     indent_scripts: 'separate',
+//     brace_style: 'end-expand',
+//     space_before_conditional: true,
+//     unescape_strings: false,
+//     jslint_happy: false,
+//     end_with_newline: true,
+//     wrap_line_length: '110',
+//     indent_inner_html: true,
+//     comma_first: false,
+//     e4x: true,
+//     indent_empty_lines: true
+//   },
+//   js: {
+//     indent_size: '2',
+//     indent_char: ' ',
+//     max_preserve_newlines: '-1',
+//     preserve_newlines: false,
+//     keep_array_indentation: false,
+//     break_chained_methods: false,
+//     indent_scripts: 'normal',
+//     brace_style: 'end-expand',
+//     space_before_conditional: true,
+//     unescape_strings: false,
+//     jslint_happy: true,
+//     end_with_newline: true,
+//     wrap_line_length: '110',
+//     indent_inner_html: true,
+//     comma_first: false,
+//     e4x: true,
+//     indent_empty_lines: true
+//   }
+// }
 
-// 首字母大小
-export function titleCase(str) {
-  return str.replace(/( |^)[a-z]/g, L => L.toUpperCase())
-}
+// // 首字母大小
+// export function titleCase(str) {
+//   return str.replace(/( |^)[a-z]/g, L => L.toUpperCase())
+// }
 
-// 下划转驼峰
-export function camelCase(str) {
-  return str.replace(/_[a-z]/g, str1 => str1.substr(-1).toUpperCase())
-}
+// // 下划转驼峰
+// export function camelCase(str) {
+//   return str.replace(/_[a-z]/g, str1 => str1.substr(-1).toUpperCase())
+// }
 
-export function isNumberStr(str) {
-  return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str)
-}
+// export function isNumberStr(str) {
+//   return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str)
+// }
  

+ 1 - 1
ruoyi-ui/src/views/login.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="login">
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
-      <h3 class="title">若依后台管理系统</h3>
+      <h3 class="title">发电量管控平台后台管理系统</h3>
       <el-form-item prop="username">
         <el-input
           v-model="loginForm.username"

+ 5 - 1
ruoyi-ui/src/views/system/user/index.vue

@@ -140,7 +140,11 @@
           <el-table-column type="selection" width="50" align="center" />
           <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
           <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
+          <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true">
+            <template slot-scope="scope">
+              <span>{{ scope.row.nickName === '若依' ? '管理员' : scope.row.nickName}}</span>
+            </template>
+          </el-table-column>
           <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
           <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
           <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">

+ 17 - 17
ruoyi-ui/vue.config.js

@@ -9,7 +9,7 @@ const CompressionPlugin = require('compression-webpack-plugin')
 
 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 || 8010 // 端口
 
 // vue.config.js 配置说明
 //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
@@ -28,22 +28,22 @@ module.exports = {
   // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
   productionSourceMap: false,
   // webpack-dev-server 相关配置
-  devServer: {
-    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`,
-        changeOrigin: true,
-        pathRewrite: {
-          ['^' + process.env.VUE_APP_BASE_API]: ''
-        }
-      }
-    },
-    disableHostCheck: true
-  },
+  // devServer: {
+  //   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`,
+  //       changeOrigin: true,
+  //       pathRewrite: {
+  //         ['^' + process.env.VUE_APP_BASE_API]: ''
+  //       }
+  //     }
+  //   },
+  //   disableHostCheck: true
+  // },
   css: {
     loaderOptions: {
       sass: {