Browse Source

update 500 skip login page

ayHaru 4 years ago
parent
commit
390b3fe09d

+ 24 - 24
README.md

@@ -1,24 +1,24 @@
-# songcan
-
-## Project setup
-```
-npm install
-```
-
-### Compiles and hot-reloads for development
-```
-npm run serve
-```
-
-### Compiles and minifies for production
-```
-npm run build
-```
-
-### Lints and fixes files
-```
-npm run lint
-```
-
-### Customize configuration
-See [Configuration Reference](https://cli.vuejs.org/config/).
+# songcan
+
+## Project setup
+```
+npm install
+```
+
+### Compiles and hot-reloads for development
+```
+npm run serve
+```
+
+### Compiles and minifies for production
+```
+npm run build
+```
+
+### Lints and fixes files
+```
+npm run lint
+```
+
+### Customize configuration
+See [Configuration Reference](https://cli.vuejs.org/config/).

+ 5 - 5
babel.config.js

@@ -1,5 +1,5 @@
-module.exports = {
-  presets: [
-    '@vue/cli-plugin-babel/preset'
-  ]
-}
+module.exports = {
+  presets: [
+    '@vue/cli-plugin-babel/preset'
+  ]
+}

File diff suppressed because it is too large
+ 11738 - 0
package-lock.json


+ 47 - 47
package.json

@@ -1,47 +1,47 @@
-{
-  "name": "songcan",
-  "version": "0.1.0",
-  "private": true,
-  "scripts": {
-    "serve": "vue-cli-service serve",
-    "build": "vue-cli-service build",
-    "lint": "vue-cli-service lint"
-  },
-  "dependencies": {
-    "axios": "^0.19.2",
-    "core-js": "^3.6.4",
-    "element-ui": "^2.13.1",
-    "moment": "^2.27.0",
-    "vue": "^2.6.11",
-    "vue-router": "^3.1.6"
-  },
-  "devDependencies": {
-    "@vue/cli-plugin-babel": "~4.3.0",
-    "@vue/cli-plugin-eslint": "~4.3.0",
-    "@vue/cli-plugin-router": "^4.3.1",
-    "@vue/cli-service": "~4.3.0",
-    "babel-eslint": "^10.1.0",
-    "eslint": "^6.7.2",
-    "eslint-plugin-vue": "^6.2.2",
-    "vue-template-compiler": "^2.6.11"
-  },
-  "eslintConfig": {
-    "root": true,
-    "env": {
-      "node": true
-    },
-    "extends": [
-      "plugin:vue/essential",
-      "eslint:recommended"
-    ],
-    "parserOptions": {
-      "parser": "babel-eslint"
-    },
-    "rules": {}
-  },
-  "browserslist": [
-    "> 1%",
-    "last 2 versions",
-    "not dead"
-  ]
-}
+{
+  "name": "songcan",
+  "version": "0.1.0",
+  "private": true,
+  "scripts": {
+    "serve": "vue-cli-service serve",
+    "build": "vue-cli-service build",
+    "lint": "vue-cli-service lint"
+  },
+  "dependencies": {
+    "axios": "^0.19.2",
+    "core-js": "^3.6.4",
+    "element-ui": "^2.13.1",
+    "moment": "^2.27.0",
+    "vue": "^2.6.11",
+    "vue-router": "^3.1.6"
+  },
+  "devDependencies": {
+    "@vue/cli-plugin-babel": "~4.3.0",
+    "@vue/cli-plugin-eslint": "~4.3.0",
+    "@vue/cli-plugin-router": "^4.3.1",
+    "@vue/cli-service": "~4.3.0",
+    "babel-eslint": "^10.1.0",
+    "eslint": "^6.7.2",
+    "eslint-plugin-vue": "^6.2.2",
+    "vue-template-compiler": "^2.6.11"
+  },
+  "eslintConfig": {
+    "root": true,
+    "env": {
+      "node": true
+    },
+    "extends": [
+      "plugin:vue/essential",
+      "eslint:recommended"
+    ],
+    "parserOptions": {
+      "parser": "babel-eslint"
+    },
+    "rules": {}
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions",
+    "not dead"
+  ]
+}

+ 17 - 17
public/index.html

@@ -1,17 +1,17 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width,initial-scale=1.0">
-    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title><%= htmlWebpackPlugin.options.title %></title>
-  </head>
-  <body>
-    <noscript>
-      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
-    </noscript>
-    <div id="app"></div>
-    <!-- built files will be auto injected -->
-  </body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+    <title><%= htmlWebpackPlugin.options.title %></title>
+  </head>
+  <body>
+    <noscript>
+      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+    </noscript>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+  </body>
+</html>

+ 11 - 11
src/App.vue

@@ -1,11 +1,11 @@
-<template>
-  <div id="app">
-    <router-view />
-  </div>
-</template>
-
-<style>
-  #app {
-    height: 100%;
-  } 
-</style>
+<template>
+  <div id="app">
+    <router-view />
+  </div>
+</template>
+
+<style>
+  #app {
+    height: 100%;
+  } 
+</style>

+ 216 - 213
src/api/index.js

@@ -1,213 +1,216 @@
-import axios from 'axios';
-import Vue from 'vue';
-import context from '../main';
-
-let loading;
-
-// axios.defaults.timeout = 3000000;
-// let loadinginstace;
-
-axios.interceptors.request.use(
-    config => {
-        config.headers = {
-            "Content-Type": "application/json"
-        }
-        return config;
-    }, error => {
-        loading.close();
-        if (error) {
-            context.$alert('网络错误,请稍后再试!','提示',{
-                confirmButtonText: '确定'
-            });
-            return Promise.reject(error);
-        }
-    }
-);
-
-axios.interceptors.response.use(
-    res => {
-        loading.close();
-        if (res.data.code == 0) {
-            return res.data;
-        }
-        else {
-            context.$alert(res.data.msg,'提示',{
-                confirmButtonText: '确定'
-            }).then(()=>{
-                if(res.data.code == '1005') {
-                    context.$router.replace({path:'/login'});
-                }
-            });
-        }
-    },
-    err => {
-        loading.close();
-        if (err.message.includes('timeout')) {
-            err.message = '请求超时';
-        }
-        else 
-		{
-            if (err && err.response) {
-                switch (err.response.status) {
-                    case 400: err.message = '请求错误(400)'; break;
-                    case 401: err.message = '未授权,请重新登录(401)'; break;
-                    case 403: err.message = '拒绝访问(403)'; break;
-                    case 404: err.message = '请求出错(404)'; break;
-                    case 408: err.message = '请求超时(408)'; break;
-                    case 500: err.message = '服务器错误(500)'; break;
-                    case 501: err.message = '服务未实现(501)'; break;
-                    case 502: err.message = '网络错误(502)'; break;
-                    case 503: err.message = '服务不可用(503)'; break;
-                    case 504: err.message = '网络超时(504)'; break;
-                    case 505: err.message = 'HTTP版本不受支持(505)'; break;
-                    default: err.message = `连接出错(${err.response.status})!`;
-                }
-            } else {
-                err.message = '连接服务器失败!'
-            }
-        }
-        context.$alert(err.message,'提示',{
-            confirmButtonText: '确定'
-        });
-        return Promise.reject(err);
-    });
-
-Vue.prototype.$axios = axios;
-
-axios.defaults.headers.get['Pragma'] = 'no-cache';
-axios.defaults.headers.get['Cache-Control'] = 'no-cache, no-store'; 
-	
-let requestLoading = (url, method, params, showLoading = true) => {
-    if (showLoading) {
-        loading = context.$loading({
-            lock: true,
-            text: '加载中...',
-            spinner: 'el-icon-loading',
-            background: 'rgba(0, 0, 0, 0.2)'
-          });
-    }
-
-	
-    return axios({
-        method: method,
-        url: url,
-        withCredentials: true,
-        params,
-        data: params,
-        timeout: 120000
-    })
-};
-
-
-// const TestSrv = process.env.NODE_ENV == 'production' ? 'http://39.97.239.116:8080' : '/api';
-// const StanleyLocal = process.env.NODE_ENV == 'production' ? 'http://zngapi.hemadj.com:8080' : '/api';
-// const StanleyLocal = process.env.NODE_ENV == 'production' ? 'http://192.168.1.200:8080' : '/api';
-const StanleyLocal = process.env.NODE_ENV == 'production' ? 'https://apizng.eavic.com' : '/api';
-
-const Prefix = StanleyLocal;
-
-//测试请求
-export const testRequest = () => {
-    return requestLoading(`${Prefix}/index.php?index/index/index`, 'get', {})
-}
-
-//登录
-export const login = (params) => {
-    return requestLoading(`${Prefix}/login`, 'get', params)
-}
-
-//登出
-export const loginOut = () => {
-    return requestLoading(`${Prefix}/LoginOut`, 'get', {})
-}
-
-//订单列表
-export const orderList = (params) => {
-    return requestLoading(`${Prefix}/OrderList`, 'get', params)
-}
-
-//箱子操作记录列表
-export const boxActionList = (params) => {
-    return requestLoading(`${Prefix}/BoxActionList`, 'get', params)
-}
-
-//柜子列表
-export const cabinetList = (params) => {
-    return requestLoading(`${Prefix}/CabinetList`, 'get', params)
-}
-
-//箱子列表
-export const boxList = (params) => {
-    return requestLoading(`${Prefix}/BoxList`, 'post', params)
-}
-
-//新增柜子
-export const addCabinet = (params) => {
-	console.log('call:',addCabinet);
-    return requestLoading(`${Prefix}/AddCabinet`, 'post', params)
-}
-
-//日志记录
-export const actionLogList = (params) => {
-    return requestLoading(`${Prefix}/ActionLogList`, 'post', params)
-}
-
-//消息记录
-export const msgList = (params) => {
-    return requestLoading(`${Prefix}/MsgList`, 'post', params)
-}
-
-//开箱
-export const openBox = (params) => {
-    return requestLoading(`${Prefix}/OpenBox`, 'post', params)
-}
-
-//通知
-export const sendMsg = (params) => {
-    return requestLoading(`${Prefix}/SendMsg`, 'post', params)
-}
-
-//锁柜
-export const lockCabinet = (params) => {
-    return requestLoading(`${Prefix}/LockCabinet`, 'post', params)
-}
-
-//解除锁柜
-export const unLockCabinet = (params) => {
-    return requestLoading(`${Prefix}/UnLockCabinet`, 'post', params)
-}
-
-//解除报警
-export const releaseAlarm = (params) => {
-    return requestLoading(`${Prefix}/ReleaseAlarm`, 'post', params)
-}
-
-//解除报警
-export const reboot = (params) => {
-    return requestLoading(`${Prefix}/Reboot`, 'post', params)
-}
-
-//新增箱子
-export const addBox = (params) => {
-    return requestLoading(`${Prefix}/AddBox`, 'post', params)
-}
-
-//管理员列表
-export const userList = (params) => {
-    return requestLoading(`${Prefix}/UserList`, 'post', params)
-}
-
-//新增管理员
-export const userAdd = (params) => {
-    return requestLoading(`${Prefix}/UserAdd`, 'post', params)
-}
-
-//删除管理员
-export const userDel = (params) => {
-    return requestLoading(`${Prefix}/UserDel`, 'post', params)
-}
-
-//修改管理员密码
-export const editPwd = (params) => {
-    return requestLoading(`${Prefix}/EditPwd`, 'post', params)
-}
+import axios from 'axios';
+import Vue from 'vue';
+import context from '../main';
+
+let loading;
+
+// axios.defaults.timeout = 3000000;
+// let loadinginstace;
+
+axios.interceptors.request.use(
+    config => {
+        config.headers = {
+            "Content-Type": "application/json"
+        }
+        return config;
+    }, error => {
+        loading.close();
+        if (error) {
+            context.$alert('网络错误,请稍后再试!','提示',{
+                confirmButtonText: '确定'
+            });
+            return Promise.reject(error);
+        }
+    }
+);
+
+axios.interceptors.response.use(
+    res => {
+        loading.close();
+        if (res.data.code == 0) {
+            return res.data;
+        }
+        else {
+            context.$alert(res.data.msg,'提示',{
+                confirmButtonText: '确定'
+            }).then(()=>{
+                if(res.data.code == '1005') {
+                    context.$router.replace({path:'/login'});
+                }
+            });
+        }
+    },
+    err => {
+        loading.close();
+        if (err.message.includes('timeout')) {
+            err.message = '请求超时';
+            context.$router.replace({path:'/login'});
+        }
+        else 
+		{
+            if (err && err.response) {
+                switch (err.response.status) {
+                    case 400: err.message = '请求错误(400)'; break;
+                    case 401: err.message = '未授权,请重新登录(401)'; break;
+                    case 403: err.message = '拒绝访问(403)'; break;
+                    case 404: err.message = '请求出错(404)'; break;
+                    case 408: err.message = '请求超时(408)'; break;
+                    case 500: err.message = '服务器错误(500)'; break;
+                    case 501: err.message = '服务未实现(501)'; break;
+                    case 502: err.message = '网络错误(502)'; break;
+                    case 503: err.message = '服务不可用(503)'; break;
+                    case 504: err.message = '网络超时(504)'; break;
+                    case 505: err.message = 'HTTP版本不受支持(505)'; break;
+                    default: err.message = `连接出错(${err.response.status})!`;
+                }
+                context.$router.replace({path:'/login'});
+            } else {
+                err.message = '连接服务器失败!'
+                context.$router.replace({path:'/login'});
+            }
+        }
+        context.$alert(err.message,'提示',{
+            confirmButtonText: '确定'
+        });
+        return Promise.reject(err);
+    });
+
+Vue.prototype.$axios = axios;
+
+axios.defaults.headers.get['Pragma'] = 'no-cache';
+axios.defaults.headers.get['Cache-Control'] = 'no-cache, no-store'; 
+	
+let requestLoading = (url, method, params, showLoading = true) => {
+    if (showLoading) {
+        loading = context.$loading({
+            lock: true,
+            text: '加载中...',
+            spinner: 'el-icon-loading',
+            background: 'rgba(0, 0, 0, 0.2)'
+          });
+    }
+
+	
+    return axios({
+        method: method,
+        url: url,
+        withCredentials: true,
+        params,
+        data: params,
+        timeout: 120000
+    })
+};
+
+
+// const TestSrv = process.env.NODE_ENV == 'production' ? 'http://39.97.239.116:8080' : '/api';
+// const StanleyLocal = process.env.NODE_ENV == 'production' ? 'http://zngapi.hemadj.com:8080' : '/api';
+// const StanleyLocal = process.env.NODE_ENV == 'production' ? 'http://192.168.1.200:8080' : '/api';
+const StanleyLocal = process.env.NODE_ENV == 'production' ? 'https://apizng.eavic.com' : '/api';
+
+const Prefix = StanleyLocal;
+
+//测试请求
+export const testRequest = () => {
+    return requestLoading(`${Prefix}/index.php?index/index/index`, 'get', {})
+}
+
+//登录
+export const login = (params) => {
+    return requestLoading(`${Prefix}/login`, 'get', params)
+}
+
+//登出
+export const loginOut = () => {
+    return requestLoading(`${Prefix}/LoginOut`, 'get', {})
+}
+
+//订单列表
+export const orderList = (params) => {
+    return requestLoading(`${Prefix}/OrderList`, 'get', params)
+}
+
+//箱子操作记录列表
+export const boxActionList = (params) => {
+    return requestLoading(`${Prefix}/BoxActionList`, 'get', params)
+}
+
+//柜子列表
+export const cabinetList = (params) => {
+    return requestLoading(`${Prefix}/CabinetList`, 'get', params)
+}
+
+//箱子列表
+export const boxList = (params) => {
+    return requestLoading(`${Prefix}/BoxList`, 'post', params)
+}
+
+//新增柜子
+export const addCabinet = (params) => {
+	console.log('call:',addCabinet);
+    return requestLoading(`${Prefix}/AddCabinet`, 'post', params)
+}
+
+//日志记录
+export const actionLogList = (params) => {
+    return requestLoading(`${Prefix}/ActionLogList`, 'post', params)
+}
+
+//消息记录
+export const msgList = (params) => {
+    return requestLoading(`${Prefix}/MsgList`, 'post', params)
+}
+
+//开箱
+export const openBox = (params) => {
+    return requestLoading(`${Prefix}/OpenBox`, 'post', params)
+}
+
+//通知
+export const sendMsg = (params) => {
+    return requestLoading(`${Prefix}/SendMsg`, 'post', params)
+}
+
+//锁柜
+export const lockCabinet = (params) => {
+    return requestLoading(`${Prefix}/LockCabinet`, 'post', params)
+}
+
+//解除锁柜
+export const unLockCabinet = (params) => {
+    return requestLoading(`${Prefix}/UnLockCabinet`, 'post', params)
+}
+
+//解除报警
+export const releaseAlarm = (params) => {
+    return requestLoading(`${Prefix}/ReleaseAlarm`, 'post', params)
+}
+
+//解除报警
+export const reboot = (params) => {
+    return requestLoading(`${Prefix}/Reboot`, 'post', params)
+}
+
+//新增箱子
+export const addBox = (params) => {
+    return requestLoading(`${Prefix}/AddBox`, 'post', params)
+}
+
+//管理员列表
+export const userList = (params) => {
+    return requestLoading(`${Prefix}/UserList`, 'post', params)
+}
+
+//新增管理员
+export const userAdd = (params) => {
+    return requestLoading(`${Prefix}/UserAdd`, 'post', params)
+}
+
+//删除管理员
+export const userDel = (params) => {
+    return requestLoading(`${Prefix}/UserDel`, 'post', params)
+}
+
+//修改管理员密码
+export const editPwd = (params) => {
+    return requestLoading(`${Prefix}/EditPwd`, 'post', params)
+}

+ 58 - 58
src/components/HelloWorld.vue

@@ -1,58 +1,58 @@
-<template>
-  <div class="hello">
-    <h1>{{ msg }}</h1>
-    <p>
-      For a guide and recipes on how to configure / customize this project,<br>
-      check out the
-      <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
-    </p>
-    <h3>Installed CLI Plugins</h3>
-    <ul>
-      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
-      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
-    </ul>
-    <h3>Essential Links</h3>
-    <ul>
-      <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
-      <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
-      <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
-      <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
-      <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
-    </ul>
-    <h3>Ecosystem</h3>
-    <ul>
-      <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
-      <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
-      <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
-      <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
-      <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
-    </ul>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'HelloWorld',
-  props: {
-    msg: String
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-h3 {
-  margin: 40px 0 0;
-}
-ul {
-  list-style-type: none;
-  padding: 0;
-}
-li {
-  display: inline-block;
-  margin: 0 10px;
-}
-a {
-  color: #42b983;
-}
-</style>
+<template>
+  <div class="hello">
+    <h1>{{ msg }}</h1>
+    <p>
+      For a guide and recipes on how to configure / customize this project,<br>
+      check out the
+      <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
+    </p>
+    <h3>Installed CLI Plugins</h3>
+    <ul>
+      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
+      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
+    </ul>
+    <h3>Essential Links</h3>
+    <ul>
+      <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
+      <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
+      <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
+      <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
+      <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
+    </ul>
+    <h3>Ecosystem</h3>
+    <ul>
+      <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
+      <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
+      <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
+      <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
+      <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
+    </ul>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'HelloWorld',
+  props: {
+    msg: String
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style scoped>
+h3 {
+  margin: 40px 0 0;
+}
+ul {
+  list-style-type: none;
+  padding: 0;
+}
+li {
+  display: inline-block;
+  margin: 0 10px;
+}
+a {
+  color: #42b983;
+}
+</style>

+ 10 - 10
src/css/base.css

@@ -1,11 +1,11 @@
-* {
-    margin: 0;
-    padding: 0;
-    box-sizing: border-box;
-    font-family:sans-serif;
-}
-
-html,body {
-    height: 100%;
-    font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;
+* {
+    margin: 0;
+    padding: 0;
+    box-sizing: border-box;
+    font-family:sans-serif;
+}
+
+html,body {
+    height: 100%;
+    font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;
 }

+ 18 - 18
src/main.js

@@ -1,19 +1,19 @@
-import Vue from 'vue'
-import ElementUI from 'element-ui';
-import '@/css/base.css';
-import 'element-ui/lib/theme-chalk/index.css';
-import App from './App.vue'
-import router from './router'
-
-
-Vue.use(ElementUI);
-
-Vue.config.productionTip = false
-
-const vue = new Vue({
-  router,
-  render: h => h(App)
-}).$mount('#app')
-
-
+import Vue from 'vue'
+import ElementUI from 'element-ui';
+import '@/css/base.css';
+import 'element-ui/lib/theme-chalk/index.css';
+import App from './App.vue'
+import router from './router'
+
+
+Vue.use(ElementUI);
+
+Vue.config.productionTip = false
+
+const vue = new Vue({
+  router,
+  render: h => h(App)
+}).$mount('#app')
+
+
 export default vue

+ 182 - 182
src/pages/index.vue

@@ -1,182 +1,182 @@
-<template>
-<el-container>
-    <el-header>
-        <el-row type="flex" style="height:100%;" justify="space-between" align="middle">
-            <div>航空工业集团快递智能柜管理程序</div>
-            <div>
-                <el-dropdown @command="onUserEdit">
-                    <span class="el-dropdown-link">
-                        <i class="el-icon-user" style="margin-right: 10px"></i>管理员
-                        <i class="el-icon-arrow-down el-icon--right"></i>
-                    </span>
-                    <el-dropdown-menu slot="dropdown">
-                        <el-dropdown-item command="logout" icon="el-icon-caret-left">退出登录</el-dropdown-item>
-                        <el-dropdown-item command="editPwd" icon="el-icon-edit">修改密码</el-dropdown-item>
-                    </el-dropdown-menu>
-                </el-dropdown>
-            </div>
-        </el-row>
-    </el-header>
-    <el-container style="height: 100%; border: 1px solid #eee">
-        <el-aside width="250px">
-            <el-menu router class="el-menu" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b" :default-active="curPath">
-                <el-menu-item index="express" route="express">
-                    <i class="el-icon-menu"></i>
-                    <span slot="title">柜体控制</span>
-                </el-menu-item>
-                <el-menu-item index="order" route="order">
-                    <i class="el-icon-s-order"></i>
-                    <span slot="title">订单管理</span>
-                </el-menu-item>
-                <el-menu-item index="log" route="log">
-                    <i class="el-icon-document"></i>
-                    <span slot="title">日志管理</span>
-                </el-menu-item>
-                <el-menu-item index="message" route="message">
-                    <i class="el-icon-message"></i>
-                    <span slot="title">消息通知</span>
-                </el-menu-item>
-                <el-menu-item index="view" route="view">
-                    <i class="el-icon-s-platform"></i>
-                    <span slot="title">操作记录</span>
-                </el-menu-item>
-                <el-menu-item index="status" route="status">
-                    <i class="el-icon-user"></i>
-                    <span slot="title">运营人员管理</span>
-                </el-menu-item>
-            </el-menu>
-        </el-aside>
-        <el-main class="el-menu">
-            <router-view />
-        </el-main>
-        <el-dialog title="修改密码" :visible.sync="editVisible" width="50%" @closed="onCloseEditDialog">
-            <el-form :model="editForm" :rules="editRules" ref="editForm" label-width="120px" class="demo-ruleForm">
-                <el-form-item label="密码" prop="pwd">
-                    <el-input v-model="editForm.pwd" type="password"></el-input>
-                </el-form-item>
-                <el-form-item label="确认密码" prop="rePwd">
-                    <el-input v-model="editForm.rePwd" type="password"></el-input>
-                </el-form-item>
-            </el-form>
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="onCloseEditDialog">取 消</el-button>
-                <el-button type="primary" @click="onEditSubmit('editForm')">确认修改</el-button>
-            </span>
-        </el-dialog>
-    </el-container>
-</el-container>
-</template>
-
-<script>
-import {
-    loginOut,
-    editPwd
-} from "@/api";
-export default {
-    created() {
-        this.curPath = this.$route.name;
-    },
-    data() {
-        return {
-            curPath: "",
-            editVisible: false,
-            editForm: {
-                pwd: "",
-                rePwd: "",
-            },
-            editRules: {
-                pwd: [{
-                    required: true,
-                    message: "请输入登录密码",
-                    trigger: "blur",
-                }, ],
-                rePwd: [{
-                    required: true,
-                    validator: this.validateRePwd2,
-                    trigger: "blur",
-                }, ],
-            },
-        };
-    },
-    methods: {
-        onCloseEditDialog() {
-            this.editForm = {};
-            this.editVisible = false;
-            this.editPwdId = "";
-            this.$refs.editForm.resetFields();
-        },
-        validateRePwd2(rule, value, callback) {
-            if (value === "") {
-                callback(new Error("请再次输入密码"));
-            } else if (value !== this.editForm.pwd) {
-                callback(new Error("两次输入密码不一致!"));
-            } else {
-                callback();
-            }
-        },
-        onUserEdit(command) {
-            if (command == "logout") {
-                this.$confirm("确认退出该账号?", "退出", {
-                        confirmButtonText: "确定",
-                        cancelButtonText: "取消",
-                        type: "warning",
-                    })
-                    .then(() => {
-                        this.onLoginOut();
-                    })
-                    .catch(() => {
-                        return false;
-                    });
-            } else if (command == "editPwd") {
-                this.editVisible = true;
-            }
-        },
-        onLoginOut() {
-            loginOut().then((res) => {
-                if (res && res.msg == "ok") {
-                    this.$router.replace({
-                        path: "/login",
-                    });
-                }
-            });
-        },
-        onEditSubmit(formName) {
-            const _self = this;
-            this.$refs[formName].validate((valid) => {
-                if (valid) {
-                    editPwd({
-                        password: _self.editForm.pwd,
-                        repassword: _self.editForm.rePwd,
-                    }).then((res) => {
-                        console.log(res);
-                        if (res && res.msg == "ok") {
-                            this.$message({
-                                message: "修改成功",
-                                type: "success",
-                                center: true,
-                                duration: 1000,
-                                onClose: () => {
-                                    _self.onCloseEditDialog();
-                                },
-                            });
-                        }
-                    });
-                } else {
-                    console.log("error submit!!");
-                    return false;
-                }
-            });
-        },
-    },
-};
-</script>
-
-<style scoped>
-.el-menu {
-    height: calc(100vh - 62px);
-}
-
-.el-dropdown-link {
-    color: #409eff;
-}
-</style>
+<template>
+<el-container>
+    <el-header>
+        <el-row type="flex" style="height:100%;" justify="space-between" align="middle">
+            <div>航空工业集团快递智能柜管理程序</div>
+            <div>
+                <el-dropdown @command="onUserEdit">
+                    <span class="el-dropdown-link">
+                        <i class="el-icon-user" style="margin-right: 10px"></i>管理员
+                        <i class="el-icon-arrow-down el-icon--right"></i>
+                    </span>
+                    <el-dropdown-menu slot="dropdown">
+                        <el-dropdown-item command="logout" icon="el-icon-caret-left">退出登录</el-dropdown-item>
+                        <el-dropdown-item command="editPwd" icon="el-icon-edit">修改密码</el-dropdown-item>
+                    </el-dropdown-menu>
+                </el-dropdown>
+            </div>
+        </el-row>
+    </el-header>
+    <el-container style="height: 100%; border: 1px solid #eee">
+        <el-aside width="250px">
+            <el-menu router class="el-menu" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b" :default-active="curPath">
+                <el-menu-item index="express" route="express">
+                    <i class="el-icon-menu"></i>
+                    <span slot="title">柜体控制</span>
+                </el-menu-item>
+                <el-menu-item index="order" route="order">
+                    <i class="el-icon-s-order"></i>
+                    <span slot="title">订单管理</span>
+                </el-menu-item>
+                <el-menu-item index="log" route="log">
+                    <i class="el-icon-document"></i>
+                    <span slot="title">日志管理</span>
+                </el-menu-item>
+                <el-menu-item index="message" route="message">
+                    <i class="el-icon-message"></i>
+                    <span slot="title">消息通知</span>
+                </el-menu-item>
+                <el-menu-item index="view" route="view">
+                    <i class="el-icon-s-platform"></i>
+                    <span slot="title">操作记录</span>
+                </el-menu-item>
+                <el-menu-item index="status" route="status">
+                    <i class="el-icon-user"></i>
+                    <span slot="title">运营人员管理</span>
+                </el-menu-item>
+            </el-menu>
+        </el-aside>
+        <el-main class="el-menu">
+            <router-view />
+        </el-main>
+        <el-dialog title="修改密码" :visible.sync="editVisible" width="50%" @closed="onCloseEditDialog">
+            <el-form :model="editForm" :rules="editRules" ref="editForm" label-width="120px" class="demo-ruleForm">
+                <el-form-item label="密码" prop="pwd">
+                    <el-input v-model="editForm.pwd" type="password"></el-input>
+                </el-form-item>
+                <el-form-item label="确认密码" prop="rePwd">
+                    <el-input v-model="editForm.rePwd" type="password"></el-input>
+                </el-form-item>
+            </el-form>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="onCloseEditDialog">取 消</el-button>
+                <el-button type="primary" @click="onEditSubmit('editForm')">确认修改</el-button>
+            </span>
+        </el-dialog>
+    </el-container>
+</el-container>
+</template>
+
+<script>
+import {
+    loginOut,
+    editPwd
+} from "@/api";
+export default {
+    created() {
+        this.curPath = this.$route.name;
+    },
+    data() {
+        return {
+            curPath: "",
+            editVisible: false,
+            editForm: {
+                pwd: "",
+                rePwd: "",
+            },
+            editRules: {
+                pwd: [{
+                    required: true,
+                    message: "请输入登录密码",
+                    trigger: "blur",
+                }, ],
+                rePwd: [{
+                    required: true,
+                    validator: this.validateRePwd2,
+                    trigger: "blur",
+                }, ],
+            },
+        };
+    },
+    methods: {
+        onCloseEditDialog() {
+            this.editForm = {};
+            this.editVisible = false;
+            this.editPwdId = "";
+            this.$refs.editForm.resetFields();
+        },
+        validateRePwd2(rule, value, callback) {
+            if (value === "") {
+                callback(new Error("请再次输入密码"));
+            } else if (value !== this.editForm.pwd) {
+                callback(new Error("两次输入密码不一致!"));
+            } else {
+                callback();
+            }
+        },
+        onUserEdit(command) {
+            if (command == "logout") {
+                this.$confirm("确认退出该账号?", "退出", {
+                        confirmButtonText: "确定",
+                        cancelButtonText: "取消",
+                        type: "warning",
+                    })
+                    .then(() => {
+                        this.onLoginOut();
+                    })
+                    .catch(() => {
+                        return false;
+                    });
+            } else if (command == "editPwd") {
+                this.editVisible = true;
+            }
+        },
+        onLoginOut() {
+            loginOut().then((res) => {
+                if (res && res.msg == "ok") {
+                    this.$router.replace({
+                        path: "/login",
+                    });
+                }
+            });
+        },
+        onEditSubmit(formName) {
+            const _self = this;
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    editPwd({
+                        password: _self.editForm.pwd,
+                        repassword: _self.editForm.rePwd,
+                    }).then((res) => {
+                        console.log(res);
+                        if (res && res.msg == "ok") {
+                            this.$message({
+                                message: "修改成功",
+                                type: "success",
+                                center: true,
+                                duration: 1000,
+                                onClose: () => {
+                                    _self.onCloseEditDialog();
+                                },
+                            });
+                        }
+                    });
+                } else {
+                    console.log("error submit!!");
+                    return false;
+                }
+            });
+        },
+    },
+};
+</script>
+
+<style scoped>
+.el-menu {
+    height: calc(100vh - 62px);
+}
+
+.el-dropdown-link {
+    color: #409eff;
+}
+</style>

+ 89 - 89
src/pages/login.vue

@@ -1,90 +1,90 @@
-<template>
-  <el-container :style="'height:100%;background:url('+LoginBg+');background-size:cover;'">
-    <el-row type="flex" style="width:100%;height:100%;" justify="center" align="middle">
-      <el-card style="width:400px;height:300px;" shadow="always">
-        <div slot="header" class="clearfix">
-          <span>欢迎使用智能快递柜</span>
-        </div>
-        <el-row type="flex" justify="center">
-          <div class="login_container">
-            <el-form
-              :model="ruleForm"
-              :rules="rules"
-              ref="ruleForm"
-              :label-position="labelPosition"
-              label-width="70px"
-            >
-              <el-form-item label="用户名" prop="name">
-                <el-input v-model="ruleForm.name" placeholder="请输入用户名"></el-input>
-              </el-form-item>
-              <el-form-item label="密码" prop="pwd">
-                <el-input v-model="ruleForm.pwd" type="password" placeholder="请输入密码" @keyup.enter.native="onLogin('ruleForm')"></el-input>
-              </el-form-item>
-
-              <el-button
-                type="primary"
-                size="medium"
-                style="width:100%;"
-                @click="onLogin('ruleForm')"
-              >登录</el-button>
-            </el-form>
-          </div>
-        </el-row>
-      </el-card>
-    </el-row>
-  </el-container>
-</template>
-<script>
-import LoginBg from "@/assets/login.jpg";
-import { login } from "@/api";
-export default {
-  data() {
-    return {
-      LoginBg,
-      ruleForm: {
-        name: "",
-        pwd: "",
-      },
-      rules: {
-        name: [{ required: true, message: "请输入用户名", trigger: "blur" }],
-        pwd: [{ required: true, message: "请输入密码", trigger: "blur" }],
-      },
-      labelPosition: "right",
-    };
-  },
-  created() {
-    
-  },
-  methods: {
-    onLogin(formName) {
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          login({
-            username: this.ruleForm.name,
-            password: this.ruleForm.pwd,
-          }).then((res) => {
-            if (res && res.msg == "ok") {
-              this.$message({
-                message: "登录成功",
-                type: "success",
-                center: true,
-                duration: 1000,
-                onClose: () => {
-                  this.$router.replace({ path: "/" });
-                },
-              });
-            }
-          });
-        } else {
-          return false;
-        }
-      });
-    },
-  },
-};
-</script>
-<style scoped>
-.login_container {
-  width: 90%;
-}
+<template>
+  <el-container :style="'height:100%;background:url('+LoginBg+');background-size:cover;'">
+    <el-row type="flex" style="width:100%;height:100%;" justify="center" align="middle">
+      <el-card style="width:400px;height:300px;" shadow="always">
+        <div slot="header" class="clearfix">
+          <span>欢迎使用智能快递柜</span>
+        </div>
+        <el-row type="flex" justify="center">
+          <div class="login_container">
+            <el-form
+              :model="ruleForm"
+              :rules="rules"
+              ref="ruleForm"
+              :label-position="labelPosition"
+              label-width="70px"
+            >
+              <el-form-item label="用户名" prop="name">
+                <el-input v-model="ruleForm.name" placeholder="请输入用户名"></el-input>
+              </el-form-item>
+              <el-form-item label="密码" prop="pwd">
+                <el-input v-model="ruleForm.pwd" type="password" placeholder="请输入密码" @keyup.enter.native="onLogin('ruleForm')"></el-input>
+              </el-form-item>
+
+              <el-button
+                type="primary"
+                size="medium"
+                style="width:100%;"
+                @click="onLogin('ruleForm')"
+              >登录</el-button>
+            </el-form>
+          </div>
+        </el-row>
+      </el-card>
+    </el-row>
+  </el-container>
+</template>
+<script>
+import LoginBg from "@/assets/login.jpg";
+import { login } from "@/api";
+export default {
+  data() {
+    return {
+      LoginBg,
+      ruleForm: {
+        name: "",
+        pwd: "",
+      },
+      rules: {
+        name: [{ required: true, message: "请输入用户名", trigger: "blur" }],
+        pwd: [{ required: true, message: "请输入密码", trigger: "blur" }],
+      },
+      labelPosition: "right",
+    };
+  },
+  created() {
+    
+  },
+  methods: {
+    onLogin(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          login({
+            username: this.ruleForm.name,
+            password: this.ruleForm.pwd,
+          }).then((res) => {
+            if (res && res.msg == "ok") {
+              this.$message({
+                message: "登录成功",
+                type: "success",
+                center: true,
+                duration: 1000,
+                onClose: () => {
+                  this.$router.replace({ path: "/" });
+                },
+              });
+            }
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+};
+</script>
+<style scoped>
+.login_container {
+  width: 90%;
+}
 </style>

File diff suppressed because it is too large
+ 517 - 517
src/pages/subPages/express.vue


+ 68 - 68
src/pages/subPages/log.vue

@@ -1,68 +1,68 @@
-<template>
-<el-container direction="vertical">
-    <el-header height="40px" style="border-bottom: 1px solid #eee">日志管理</el-header>
-    <!-- <div style="margin:10px 0;">
-      <el-date-picker v-model="selectDate" type="date" placeholder="选择日期"></el-date-picker>
-      <el-button style="margin-left:10px;" type="primary">查询</el-button>
-    </div>
-    -->
-    <el-table :data="tableData" border style="width: 100%">
-        <el-table-column align="center" prop="id" label="记录ID"></el-table-column>
-        <el-table-column align="center" prop="admin_id" label="管理员ID"></el-table-column>
-        <el-table-column align="center" prop="username" label="管理员名称"></el-table-column>
-        <el-table-column align="center" prop="content" label="操作接口地址"></el-table-column>
-        <el-table-column align="center" prop="ip" label="IP地址"></el-table-column>
-        <el-table-column align="center" prop="date" label="记录日期"></el-table-column>
-    </el-table>
-    <el-row style="margin-top:10px;" type="flex" justify="end">
-        <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" :current-page="pageNumber" @current-change="onPageChange"></el-pagination>
-    </el-row>
-</el-container>
-</template>
-
-<script>
-import {
-    actionLogList
-} from "@/api";
-export default {
-    data() {
-        return {
-            tableData: [],
-            pageSize: 10,
-            pageNumber: 1,
-            total: 0,
-        };
-    },
-    mounted() {
-        this.getActionLogList();
-    },
-    methods: {
-        getActionLogList() {
-            const _self = this;
-            actionLogList({
-                pageSize: _self.pageSize,
-                pageNumber: _self.pageNumber,
-            }).then((res) => {
-                console.log(res);
-                if (res && res.msg == "ok") {
-                    _self.total = res.data.total;
-                    _self.tableData = [...res.data.rows];
-                }
-            });
-        },
-        onPageChange(page) {
-            if (page == this.pageNumber) {
-                return;
-            } else {
-                this.pageNumber = page;
-                setTimeout(() => {
-                    this.getActionLogList();
-                }, 0);
-            }
-        },
-    },
-};
-</script>
-
-<style scoped>
-</style>
+<template>
+<el-container direction="vertical">
+    <el-header height="40px" style="border-bottom: 1px solid #eee">日志管理</el-header>
+    <!-- <div style="margin:10px 0;">
+      <el-date-picker v-model="selectDate" type="date" placeholder="选择日期"></el-date-picker>
+      <el-button style="margin-left:10px;" type="primary">查询</el-button>
+    </div>
+    -->
+    <el-table :data="tableData" border style="width: 100%">
+        <el-table-column align="center" prop="id" label="记录ID"></el-table-column>
+        <el-table-column align="center" prop="admin_id" label="管理员ID"></el-table-column>
+        <el-table-column align="center" prop="username" label="管理员名称"></el-table-column>
+        <el-table-column align="center" prop="content" label="操作接口地址"></el-table-column>
+        <el-table-column align="center" prop="ip" label="IP地址"></el-table-column>
+        <el-table-column align="center" prop="date" label="记录日期"></el-table-column>
+    </el-table>
+    <el-row style="margin-top:10px;" type="flex" justify="end">
+        <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" :current-page="pageNumber" @current-change="onPageChange"></el-pagination>
+    </el-row>
+</el-container>
+</template>
+
+<script>
+import {
+    actionLogList
+} from "@/api";
+export default {
+    data() {
+        return {
+            tableData: [],
+            pageSize: 10,
+            pageNumber: 1,
+            total: 0,
+        };
+    },
+    mounted() {
+        this.getActionLogList();
+    },
+    methods: {
+        getActionLogList() {
+            const _self = this;
+            actionLogList({
+                pageSize: _self.pageSize,
+                pageNumber: _self.pageNumber,
+            }).then((res) => {
+                console.log(res);
+                if (res && res.msg == "ok") {
+                    _self.total = res.data.total;
+                    _self.tableData = [...res.data.rows];
+                }
+            });
+        },
+        onPageChange(page) {
+            if (page == this.pageNumber) {
+                return;
+            } else {
+                this.pageNumber = page;
+                setTimeout(() => {
+                    this.getActionLogList();
+                }, 0);
+            }
+        },
+    },
+};
+</script>
+
+<style scoped>
+</style>

+ 129 - 129
src/pages/subPages/message.vue

@@ -1,129 +1,129 @@
-<template>
-<el-container direction="vertical">
-    <el-header height="40px" style="border-bottom: 1px solid #eee">消息通知</el-header>
-    <div style="margin:10px 0;">
-        <el-form :inline="true">
-            <el-form-item label="选择柜子">
-                <el-select v-model="cabinetValue" placeholder="请选择" @change="onChangeCabinet">
-                    <el-option v-for="item in cabinetOptions" :key="item.id" :label="item.alias" :value="item.id"></el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="选择箱子">
-                <el-select v-model="boxValue" placeholder="请选择">
-                    <el-option v-for="item in boxOptions" :key="item.box_number" :label="item.box_number" :value="item.box_number"></el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item>
-                <el-button style="margin-left:10px;" type="primary" @click="onSearch">查询</el-button>
-            </el-form-item>
-        </el-form>
-    </div>
-    <el-table :data="tableData" border style="width: 100%">
-        <el-table-column align="center" prop="id" label="记录ID"></el-table-column>
-        <el-table-column align="center" prop="cabinet_number" label="柜子号码"></el-table-column>
-        <el-table-column align="center" prop="box_number" label="箱子号码"></el-table-column>
-        <el-table-column align="center" prop="order_sn" label="订单号码"></el-table-column>
-        <el-table-column align="center" prop="msg" label="消息文本"></el-table-column>
-        <el-table-column align="center" prop="status_text" label="消息类型文本"></el-table-column>
-        <el-table-column align="center" prop="datetime" label="消息日期"></el-table-column>
-    </el-table>
-    <el-row style="margin-top:10px;" type="flex" justify="end">
-        <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" @current-change="onPageChange" :current-page="pageNumber"></el-pagination>
-    </el-row>
-</el-container>
-</template>
-
-<script>
-import {
-    msgList,
-    cabinetList,
-    boxList
-} from "@/api";
-export default {
-    data() {
-        return {
-            pageSize: 10,
-            pageNumber: 1,
-            cabinetValue: "",
-            cabinetOptions: [],
-            boxOptions: [],
-            boxValue: "",
-            tableData: [],
-            total: 0,
-        };
-    },
-    created() {
-        this.getCabinetList();
-    },
-    computed: {
-        disSearch() {
-            return this.cabinetValue == "" || this.boxValue == "";
-        },
-    },
-    methods: {
-        onChangeCabinet(value) {
-            if (value) {
-                this.getBoxList();
-            }
-            console.log(value);
-        },
-        getCabinetList() {
-            cabinetList().then((res) => {
-                console.log(res);
-                if (res && res.msg == "ok") {
-                    this.cabinetOptions = res.data.rows;
-                }
-            });
-        },
-        getBoxList() {
-            boxList({
-                cabinet_number: this.cabinetValue
-            }).then((res) => {
-                if (res && res.msg == "ok") {
-                    this.boxOptions = res.data.rows;
-                }
-            });
-        },
-        getBoxActionList() {
-            console.log(this.cabinetValue)
-            let cabinet = this.cabinetValue ? this.cabinetValue : 0;
-            let box = this.boxValue ? this.boxValue : 0;
-            if (box > 0 && cabinet == 0) {
-                alert("选定了箱子,必须选定柜子");
-                return;
-            }
-            msgList({
-                cabinet_number: this.cabinetValue,
-                box_number: this.boxValue,
-                pageSize: this.pageSize,
-                pageNumber: this.pageNumber,
-            }).then((res) => {
-                console.log(res);
-                if (res && res.msg == "ok") {
-                    this.total = res.data.total;
-                    this.tableData = res.data.rows;
-                }
-            });
-        },
-        onPageChange(page) {
-            if (page == this.pageNumber) {
-                return;
-            } else {
-                this.pageNumber = page;
-                setTimeout(() => {
-                    this.getBoxActionList();
-                }, 0);
-            }
-        },
-        onSearch() {
-            this.pageNumber = 1;
-            setTimeout(() => {
-                this.getBoxActionList();
-            }, 0);
-        },
-    },
-};
-</script>
-
-<style scoped>
-</style>
+<template>
+<el-container direction="vertical">
+    <el-header height="40px" style="border-bottom: 1px solid #eee">消息通知</el-header>
+    <div style="margin:10px 0;">
+        <el-form :inline="true">
+            <el-form-item label="选择柜子">
+                <el-select v-model="cabinetValue" placeholder="请选择" @change="onChangeCabinet">
+                    <el-option v-for="item in cabinetOptions" :key="item.id" :label="item.alias" :value="item.id"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="选择箱子">
+                <el-select v-model="boxValue" placeholder="请选择">
+                    <el-option v-for="item in boxOptions" :key="item.box_number" :label="item.box_number" :value="item.box_number"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item>
+                <el-button style="margin-left:10px;" type="primary" @click="onSearch">查询</el-button>
+            </el-form-item>
+        </el-form>
+    </div>
+    <el-table :data="tableData" border style="width: 100%">
+        <el-table-column align="center" prop="id" label="记录ID"></el-table-column>
+        <el-table-column align="center" prop="alias" label="柜子号码"></el-table-column>
+        <el-table-column align="center" prop="box_number" label="箱子号码"></el-table-column>
+        <el-table-column align="center" prop="order_sn" label="订单号码"></el-table-column>
+        <el-table-column align="center" prop="msg" label="消息文本"></el-table-column>
+        <el-table-column align="center" prop="status_text" label="消息类型文本"></el-table-column>
+        <el-table-column align="center" prop="datetime" label="消息日期"></el-table-column>
+    </el-table>
+    <el-row style="margin-top:10px;" type="flex" justify="end">
+        <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" @current-change="onPageChange" :current-page="pageNumber"></el-pagination>
+    </el-row>
+</el-container>
+</template>
+
+<script>
+import {
+    msgList,
+    cabinetList,
+    boxList
+} from "@/api";
+export default {
+    data() {
+        return {
+            pageSize: 10,
+            pageNumber: 1,
+            cabinetValue: "",
+            cabinetOptions: [],
+            boxOptions: [],
+            boxValue: "",
+            tableData: [],
+            total: 0,
+        };
+    },
+    created() {
+        this.getCabinetList();
+    },
+    computed: {
+        disSearch() {
+            return this.cabinetValue == "" || this.boxValue == "";
+        },
+    },
+    methods: {
+        onChangeCabinet(value) {
+            if (value) {
+                this.getBoxList();
+            }
+            console.log(value);
+        },
+        getCabinetList() {
+            cabinetList().then((res) => {
+                console.log(res);
+                if (res && res.msg == "ok") {
+                    this.cabinetOptions = res.data.rows;
+                }
+            });
+        },
+        getBoxList() {
+            boxList({
+                cabinet_number: this.cabinetValue
+            }).then((res) => {
+                if (res && res.msg == "ok") {
+                    this.boxOptions = res.data.rows;
+                }
+            });
+        },
+        getBoxActionList() {
+            console.log(this.cabinetValue)
+            let cabinet = this.cabinetValue ? this.cabinetValue : 0;
+            let box = this.boxValue ? this.boxValue : 0;
+            if (box > 0 && cabinet == 0) {
+                alert("选定了箱子,必须选定柜子");
+                return;
+            }
+            msgList({
+                cabinet_number: this.cabinetValue,
+                box_number: this.boxValue,
+                pageSize: this.pageSize,
+                pageNumber: this.pageNumber,
+            }).then((res) => {
+                console.log(res);
+                if (res && res.msg == "ok") {
+                    this.total = res.data.total;
+                    this.tableData = res.data.rows;
+                }
+            });
+        },
+        onPageChange(page) {
+            if (page == this.pageNumber) {
+                return;
+            } else {
+                this.pageNumber = page;
+                setTimeout(() => {
+                    this.getBoxActionList();
+                }, 0);
+            }
+        },
+        onSearch() {
+            this.pageNumber = 1;
+            setTimeout(() => {
+                this.getBoxActionList();
+            }, 0);
+        },
+    },
+};
+</script>
+
+<style scoped>
+</style>

+ 83 - 83
src/pages/subPages/order.vue

@@ -1,83 +1,83 @@
-<template>
-<el-container direction="vertical">
-    <el-header height="40px" style="border-bottom: 1px solid #eee">订单管理</el-header>
-    <div style="margin:10px 0;">
-        <el-input placeholder="请输入订单号" v-model="searchValue" style="width:200px;margin-left:10px;" />
-        <el-button style="margin-left:10px;" type="primary" @click="onSearch">查询</el-button>
-        <el-button style="margin-left:10px;" type="danger" @click="onReset">重置</el-button>
-    </div>
-
-    <el-table :data="tableData" border style="width: 100%">
-        <el-table-column align="center" prop="id" label="订单id"></el-table-column>
-        <el-table-column align="center" prop="order_sn" label="订单编号"></el-table-column>
-        <el-table-column align="center" prop="cabinet_number" label="柜号"></el-table-column>
-        <el-table-column align="center" prop="box_number" label="箱号"></el-table-column>
-        <el-table-column align="center" prop="code" label="取件码"></el-table-column>
-        <el-table-column align="center" prop="order_status" label="订单状态"></el-table-column>
-        <el-table-column align="center" prop="enter_time" label="存件日期"></el-table-column>
-        <el-table-column align="center" prop="out_time" label="取件日期"></el-table-column>
-    </el-table>
-    <el-row style="margin-top:10px;" type="flex" justify="end">
-        <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" :current-page="pageNumber" @current-change="onPageChange"></el-pagination>
-    </el-row>
-</el-container>
-</template>
-
-<script>
-import {
-    orderList
-} from "@/api";
-export default {
-    data() {
-        return {
-            tableData: [],
-            pageSize: 10,
-            pageNumber: 1,
-            total: 0,
-            searchValue: ""
-        };
-    },
-    mounted() {
-        this.getOrderList();
-    },
-    methods: {
-        getOrderList() {
-            const _self = this;
-            orderList({
-                pageSize: _self.pageSize,
-                pageNumber: _self.pageNumber,
-                order_sn: _self.searchValue
-            }).then(
-                (res) => {
-                    if (res && res.msg == "ok") {
-                        _self.total = res.data.total;
-                        _self.tableData = [...res.data.rows];
-                    }
-                }
-            );
-        },
-        onPageChange(page) {
-            if (page == this.pageNumber) {
-                return;
-            } else {
-                this.pageNumber = page;
-                setTimeout(() => {
-                    this.getOrderList();
-                }, 0)
-            }
-        },
-        onSearch() {
-            this.pageNumber = 1;
-            this.getOrderList();
-        },
-        onReset() {
-            this.searchValue = "";
-            this.pageNumber = 1;
-            this.getOrderList();
-        }
-    },
-};
-</script>
-
-<style scoped>
-</style>
+<template>
+<el-container direction="vertical">
+    <el-header height="40px" style="border-bottom: 1px solid #eee">订单管理</el-header>
+    <div style="margin:10px 0;">
+        <el-input placeholder="请输入订单号" v-model="searchValue" style="width:200px;margin-left:10px;" />
+        <el-button style="margin-left:10px;" type="primary" @click="onSearch">查询</el-button>
+        <el-button style="margin-left:10px;" type="danger" @click="onReset">重置</el-button>
+    </div>
+
+    <el-table :data="tableData" border style="width: 100%">
+        <el-table-column align="center" prop="id" label="订单id"></el-table-column>
+        <el-table-column align="center" prop="order_sn" label="订单编号"></el-table-column>
+        <el-table-column align="center" prop="alias" label="柜号"></el-table-column>
+        <el-table-column align="center" prop="box_number" label="箱号"></el-table-column>
+        <el-table-column align="center" prop="code" label="取件码"></el-table-column>
+        <el-table-column align="center" prop="order_status" label="订单状态"></el-table-column>
+        <el-table-column align="center" prop="enter_time" label="存件日期"></el-table-column>
+        <el-table-column align="center" prop="out_time" label="取件日期"></el-table-column>
+    </el-table>
+    <el-row style="margin-top:10px;" type="flex" justify="end">
+        <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" :current-page="pageNumber" @current-change="onPageChange"></el-pagination>
+    </el-row>
+</el-container>
+</template>
+
+<script>
+import {
+    orderList
+} from "@/api";
+export default {
+    data() {
+        return {
+            tableData: [],
+            pageSize: 10,
+            pageNumber: 1,
+            total: 0,
+            searchValue: ""
+        };
+    },
+    mounted() {
+        this.getOrderList();
+    },
+    methods: {
+        getOrderList() {
+            const _self = this;
+            orderList({
+                pageSize: _self.pageSize,
+                pageNumber: _self.pageNumber,
+                order_sn: _self.searchValue
+            }).then(
+                (res) => {
+                    if (res && res.msg == "ok") {
+                        _self.total = res.data.total;
+                        _self.tableData = [...res.data.rows];
+                    }
+                }
+            );
+        },
+        onPageChange(page) {
+            if (page == this.pageNumber) {
+                return;
+            } else {
+                this.pageNumber = page;
+                setTimeout(() => {
+                    this.getOrderList();
+                }, 0)
+            }
+        },
+        onSearch() {
+            this.pageNumber = 1;
+            this.getOrderList();
+        },
+        onReset() {
+            this.searchValue = "";
+            this.pageNumber = 1;
+            this.getOrderList();
+        }
+    },
+};
+</script>
+
+<style scoped>
+</style>

+ 210 - 210
src/pages/subPages/status.vue

@@ -1,210 +1,210 @@
-<template>
-<el-container direction="vertical">
-    <el-header height="40px" style="border-bottom: 1px solid #eee">运营人员管理</el-header>
-    <div style="margin:10px 0;">
-        <el-button icon="el-icon-plus" v-show="if_add" style="margin-left:10px;" type="primary" @click="addVisible = true">新增</el-button>
-        <el-input v-model="searchValue" placeholder="请输入" style="width:200px;margin-left:10px;" />
-        <el-button style="margin-left:10px;" type="primary" @click="onSearch">搜索</el-button>
-        <el-button style="margin-left:10px;" type="danger" @click="onReset">重置</el-button>
-    </div>
-
-    <el-table :data="tableData" border style="width: 100%">
-        <el-table-column align="center" prop="id" label="记录ID"></el-table-column>
-        <el-table-column align="center" prop="username" label="管理员名称"></el-table-column>
-        <el-table-column align="center" prop="create_timestamp" label="创建时间"></el-table-column>
-        <el-table-column align="center" prop="last_login_ip" label="上次登录ip地址"></el-table-column>
-        <el-table-column align="center" prop="last_login_time" label="上次登录日期"></el-table-column>
-        <el-table-column align="center" prop="update_timestamp" label="最后修改日期"></el-table-column>
-        <el-table-column align="center" prop="status_text" label="管理员状态"></el-table-column>
-        <el-table-column align="center" label="操作">
-            <template slot-scope="scope">
-                <el-button size="mini" v-show="scope.row.is_del" type="danger" style="width:80px;margin-left:0;" @click="onDelUser(scope.$index, scope.row)">删除</el-button>
-            </template>
-        </el-table-column>
-    </el-table>
-    <el-row style="margin-top:10px;" type="flex" justify="end">
-        <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" :current-page="pageNumber" @current-change="onPageChange"></el-pagination>
-    </el-row>
-
-    <el-dialog title="新增" :visible.sync="addVisible" width="50%" @closed="onCloseAddDialog">
-        <el-form :model="addForm" :rules="addRules" ref="addForm" label-width="120px" class="demo-ruleForm">
-            <el-form-item label="管理员名称:" prop="name">
-                <el-input v-model="addForm.name"></el-input>
-            </el-form-item>
-            <el-form-item label="密码:" prop="pwd">
-                <el-input v-model="addForm.pwd" type="password"></el-input>
-            </el-form-item>
-            <el-form-item label="确认密码:" prop="rePwd">
-                <el-input v-model="addForm.rePwd" type="password"></el-input>
-            </el-form-item>
-			<el-form-item label="权限:" prop="chkadm">
-				<el-radio-group v-model="addForm.chkadm">
-					<el-radio class="radio" :label="1">超级管理员</el-radio>
-					<el-radio class="radio" :label="2">普通管理员</el-radio>
-				</el-radio-group>			
-			</el-form-item>			
-        </el-form>
-		<span>超级管理员具有增加管理员,删除其它管理员的权限。</span>
-        <span slot="footer" class="dialog-footer">
-            <el-button @click="onCloseAddDialog">取 消</el-button>
-            <el-button type="primary" @click="onAddSubmit('addForm')">立即添加</el-button>
-        </span>
-    </el-dialog>
-</el-container>
-</template>
-
-<script>
-import {
-    userList,
-    userAdd,
-    userDel
-} from "@/api";
-export default {
-    data() {
-        return {
-            editPwdId: "",
-            tableData: [],
-            pageSize: 10,
-            pageNumber: 1,
-            total: 0,
-            searchValue: "",
-
-            addVisible: false,
-            addForm: {
-                name: "",
-                pwd: "",
-                rePwd: "",
-				chkadm: 1
-            },
-            addRules: {
-                name: [{
-                    required: true,
-                    message: "请输入管理员名称",
-                    trigger: "blur",
-                }, ],
-                pwd: [{
-                    required: true,
-                    message: "请输入登录密码",
-                    trigger: "blur",
-                }, ],
-                rePwd: [{
-                    required: true,
-                    validator: this.validateRePwd,
-                    trigger: "blur",
-                }, ],
-            },
-        };
-    },
-    mounted() {
-        this.getUserList();
-    },
-    methods: {
-        validateRePwd(rule, value, callback) {
-            if (value === "") {
-                callback(new Error("请再次输入密码"));
-            } else if (value !== this.addForm.pwd) {
-                callback(new Error("两次输入密码不一致!"));
-            } else {
-                callback();
-            }
-        },
-
-        onReset() {
-            this.searchValue = "";
-            this.pageNumber = 1;
-            this.getUserList();
-        },
-        getUserList() {
-            const _self = this;
-            userList({
-                pageSize: _self.pageSize,
-                pageNumber: _self.pageNumber,
-                searchText: _self.searchValue,
-            }).then((res) => {
-                console.log(res);
-                if (res && res.msg == "ok") {
-                    _self.total = res.data.total;
-                    _self.tableData = [...res.data.rows];
-					_self.if_add = res.data.if_add;
-                }
-            });
-        },
-        onPageChange(page) {
-            if (page == this.pageNumber) {
-                return;
-            } else {
-                this.pageNumber = page;
-                setTimeout(() => {
-                    this.getActionLogList();
-                }, 0);
-            }
-        },
-        onSearch() {
-            this.pageNumber = 1;
-            this.getUserList();
-        },
-        onCloseAddDialog() {
-            this.addForm = {};
-            this.addVisible = false;
-            this.$refs.addForm.resetFields();
-        },
-        onAddSubmit(formName) {
-            const _self = this;
-            this.$refs[formName].validate((valid) => {
-                if (valid) {
-                    userAdd({
-                        username: this.addForm.name,
-                        password: this.addForm.pwd,
-                        repassword: this.addForm.rePwd,
-                        rule:this.addForm.chkadm
-                    }).then((res) => {
-                        console.log(res);
-                        if (res && res.msg == "ok") {
-                            this.$message({
-                                message: "新增成功",
-                                type: "success",
-                                center: true,
-                                duration: 1000,
-                                onClose: () => {
-                                    _self.onReset();
-                                    _self.onCloseAddDialog();
-                                },
-                            });
-                        }
-                    });
-                } else {
-                    console.log("error submit!!");
-                    return false;
-                }
-            });
-        },
-        onDelUser(index, row) {
-            const _self = this;
-            this.$confirm("确认删除该管理员?", "提示").then(() => {
-                userDel({
-                    id: row.id,
-                }).then((res) => {
-                    if (res && res.msg == "ok") {
-                        this.$message({
-                            message: "删除成功",
-                            type: "success",
-                            center: true,
-                            duration: 1000,
-                            onClose: () => {
-                                _self.onReset();
-                            },
-                        });
-                    }
-                });
-            });
-        },
-        onEditUser(index, row) {
-            this.editPwdId = row.id;
-            this.editVisible = true;
-        }
-    },
-};
-</script>
-
-<style scoped>
-</style>
+<template>
+<el-container direction="vertical">
+    <el-header height="40px" style="border-bottom: 1px solid #eee">运营人员管理</el-header>
+    <div style="margin:10px 0;">
+        <el-button icon="el-icon-plus" v-show="if_add" style="margin-left:10px;" type="primary" @click="addVisible = true">新增</el-button>
+        <el-input v-model="searchValue" placeholder="请输入" style="width:200px;margin-left:10px;" />
+        <el-button style="margin-left:10px;" type="primary" @click="onSearch">搜索</el-button>
+        <el-button style="margin-left:10px;" type="danger" @click="onReset">重置</el-button>
+    </div>
+
+    <el-table :data="tableData" border style="width: 100%">
+        <el-table-column align="center" prop="id" label="记录ID"></el-table-column>
+        <el-table-column align="center" prop="username" label="管理员名称"></el-table-column>
+        <el-table-column align="center" prop="create_timestamp" label="创建时间"></el-table-column>
+        <el-table-column align="center" prop="last_login_ip" label="上次登录ip地址"></el-table-column>
+        <el-table-column align="center" prop="last_login_time" label="上次登录日期"></el-table-column>
+        <el-table-column align="center" prop="update_timestamp" label="最后修改日期"></el-table-column>
+        <el-table-column align="center" prop="status_text" label="管理员状态"></el-table-column>
+        <el-table-column align="center" label="操作">
+            <template slot-scope="scope">
+                <el-button size="mini" v-show="scope.row.is_del" type="danger" style="width:80px;margin-left:0;" @click="onDelUser(scope.$index, scope.row)">删除</el-button>
+            </template>
+        </el-table-column>
+    </el-table>
+    <el-row style="margin-top:10px;" type="flex" justify="end">
+        <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" :current-page="pageNumber" @current-change="onPageChange"></el-pagination>
+    </el-row>
+
+    <el-dialog title="新增" :visible.sync="addVisible" width="50%" @closed="onCloseAddDialog">
+        <el-form :model="addForm" :rules="addRules" ref="addForm" label-width="120px" class="demo-ruleForm">
+            <el-form-item label="管理员名称:" prop="name">
+                <el-input v-model="addForm.name"></el-input>
+            </el-form-item>
+            <el-form-item label="密码:" prop="pwd">
+                <el-input v-model="addForm.pwd" type="password"></el-input>
+            </el-form-item>
+            <el-form-item label="确认密码:" prop="rePwd">
+                <el-input v-model="addForm.rePwd" type="password"></el-input>
+            </el-form-item>
+			<el-form-item label="权限:" prop="chkadm">
+				<el-radio-group v-model="addForm.chkadm">
+					<el-radio class="radio" :label="1">超级管理员</el-radio>
+					<el-radio class="radio" :label="2">普通管理员</el-radio>
+				</el-radio-group>			
+			</el-form-item>			
+        </el-form>
+		<span>超级管理员具有增加管理员,删除其它管理员的权限。</span>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="onCloseAddDialog">取 消</el-button>
+            <el-button type="primary" @click="onAddSubmit('addForm')">立即添加</el-button>
+        </span>
+    </el-dialog>
+</el-container>
+</template>
+
+<script>
+import {
+    userList,
+    userAdd,
+    userDel
+} from "@/api";
+export default {
+    data() {
+        return {
+            editPwdId: "",
+            tableData: [],
+            pageSize: 10,
+            pageNumber: 1,
+            total: 0,
+            searchValue: "",
+
+            addVisible: false,
+            addForm: {
+                name: "",
+                pwd: "",
+                rePwd: "",
+				chkadm: 1
+            },
+            addRules: {
+                name: [{
+                    required: true,
+                    message: "请输入管理员名称",
+                    trigger: "blur",
+                }, ],
+                pwd: [{
+                    required: true,
+                    message: "请输入登录密码",
+                    trigger: "blur",
+                }, ],
+                rePwd: [{
+                    required: true,
+                    validator: this.validateRePwd,
+                    trigger: "blur",
+                }, ],
+            },
+        };
+    },
+    mounted() {
+        this.getUserList();
+    },
+    methods: {
+        validateRePwd(rule, value, callback) {
+            if (value === "") {
+                callback(new Error("请再次输入密码"));
+            } else if (value !== this.addForm.pwd) {
+                callback(new Error("两次输入密码不一致!"));
+            } else {
+                callback();
+            }
+        },
+
+        onReset() {
+            this.searchValue = "";
+            this.pageNumber = 1;
+            this.getUserList();
+        },
+        getUserList() {
+            const _self = this;
+            userList({
+                pageSize: _self.pageSize,
+                pageNumber: _self.pageNumber,
+                searchText: _self.searchValue,
+            }).then((res) => {
+                console.log(res);
+                if (res && res.msg == "ok") {
+                    _self.total = res.data.total;
+                    _self.tableData = [...res.data.rows];
+					_self.if_add = res.data.if_add;
+                }
+            });
+        },
+        onPageChange(page) {
+            if (page == this.pageNumber) {
+                return;
+            } else {
+                this.pageNumber = page;
+                setTimeout(() => {
+                    this.getActionLogList();
+                }, 0);
+            }
+        },
+        onSearch() {
+            this.pageNumber = 1;
+            this.getUserList();
+        },
+        onCloseAddDialog() {
+            this.addForm = {};
+            this.addVisible = false;
+            this.$refs.addForm.resetFields();
+        },
+        onAddSubmit(formName) {
+            const _self = this;
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    userAdd({
+                        username: this.addForm.name,
+                        password: this.addForm.pwd,
+                        repassword: this.addForm.rePwd,
+                        rule:this.addForm.chkadm
+                    }).then((res) => {
+                        console.log(res);
+                        if (res && res.msg == "ok") {
+                            this.$message({
+                                message: "新增成功",
+                                type: "success",
+                                center: true,
+                                duration: 1000,
+                                onClose: () => {
+                                    _self.onReset();
+                                    _self.onCloseAddDialog();
+                                },
+                            });
+                        }
+                    });
+                } else {
+                    console.log("error submit!!");
+                    return false;
+                }
+            });
+        },
+        onDelUser(index, row) {
+            const _self = this;
+            this.$confirm("确认删除该管理员?", "提示").then(() => {
+                userDel({
+                    id: row.id,
+                }).then((res) => {
+                    if (res && res.msg == "ok") {
+                        this.$message({
+                            message: "删除成功",
+                            type: "success",
+                            center: true,
+                            duration: 1000,
+                            onClose: () => {
+                                _self.onReset();
+                            },
+                        });
+                    }
+                });
+            });
+        },
+        onEditUser(index, row) {
+            this.editPwdId = row.id;
+            this.editVisible = true;
+        }
+    },
+};
+</script>
+
+<style scoped>
+</style>

+ 121 - 121
src/pages/subPages/view.vue

@@ -1,121 +1,121 @@
-<template>
-<el-container direction="vertical">
-    <el-header height="40px" style="border-bottom: 1px solid #eee">操作记录</el-header>
-    <div style="margin:10px 0;">
-        <el-form :inline="true">
-            <el-form-item label="选择柜子">
-                <el-select v-model="cabinetValue" placeholder="请选择" @change="onChangeCabinet">
-                    <el-option v-for="item in cabinetOptions" :key="item.id" :label="item.alias" :value="item.id"></el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="选择箱子">
-                <el-select v-model="boxValue" placeholder="请选择">
-                    <el-option v-for="item in boxOptions" :key="item.box_number" :label="item.box_number" :value="item.box_number"></el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item>
-                <el-button style="margin-left:10px;" type="primary" :disabled="disSearch" @click="onSearch">查询</el-button>
-            </el-form-item>
-        </el-form>
-    </div>
-    <el-table :data="tableData" border style="width: 100%">
-        <el-table-column align="center" prop="id" label="ID"></el-table-column>
-        <el-table-column align="center" prop="cabinet_number" label="柜号"></el-table-column>
-        <el-table-column align="center" prop="box_number" label="箱号"></el-table-column>
-        <el-table-column align="center" prop="status_text" label="操作类型"></el-table-column>
-        <el-table-column align="center" prop="datetime" label="操作日期"></el-table-column>
-    </el-table>
-    <el-row style="margin-top:10px;" type="flex" justify="end">
-        <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" @current-change="onPageChange" :current-page="pageNumber"></el-pagination>
-    </el-row>
-</el-container>
-</template>
-
-<script>
-import {
-    boxActionList,
-    cabinetList,
-    boxList
-} from "@/api";
-export default {
-    data() {
-        return {
-            pageSize: 10,
-            pageNumber: 1,
-            cabinetValue: "",
-            cabinetOptions: [],
-            boxOptions: [],
-            boxValue: "",
-            tableData: [],
-            total: 0,
-        };
-    },
-    created() {
-        this.getCabinetList();
-    },
-    computed: {
-        disSearch() {
-            return this.boxValue != "" && this.cabinetValue == "";
-        },
-    },
-    methods: {
-        onChangeCabinet(value) {
-            if (value) {
-                this.getBoxList();
-            }
-            console.log(value);
-        },
-        getCabinetList() {
-            cabinetList().then((res) => {
-                console.log(res);
-                if (res && res.msg == "ok") {
-                    this.cabinetOptions = res.data.rows;
-                }
-            });
-        },
-        getBoxList() {
-            boxList({
-                cabinet_number: this.cabinetValue
-            }).then((res) => {
-                if (res && res.msg == "ok") {
-                    this.boxOptions = res.data.rows;
-                }
-            });
-        },
-        getBoxActionList() {
-            let box = this.boxValue ? this.boxValue : 0;
-            boxActionList({
-                cabinet_number: this.cabinetValue,
-                box_number: box,
-                pageSize: this.pageSize,
-                pageNumber: this.pageNumber,
-            }).then((res) => {
-                console.log(res);
-                if (res && res.msg == "ok") {
-                    this.total = res.data.total;
-                    this.tableData = res.data.rows;
-                }
-            });
-        },
-        onPageChange(page) {
-            if (page == this.pageNumber) {
-                return;
-            } else {
-                this.pageNumber = page;
-                setTimeout(() => {
-                    this.getBoxActionList();
-                }, 0);
-            }
-        },
-        onSearch() {
-            this.pageNumber = 1;
-            setTimeout(() => {
-                this.getBoxActionList();
-            }, 0);
-        },
-    },
-};
-</script>
-
-<style scoped>
-</style>
+<template>
+<el-container direction="vertical">
+    <el-header height="40px" style="border-bottom: 1px solid #eee">操作记录</el-header>
+    <div style="margin:10px 0;">
+        <el-form :inline="true">
+            <el-form-item label="选择柜子">
+                <el-select v-model="cabinetValue" placeholder="请选择" @change="onChangeCabinet">
+                    <el-option v-for="item in cabinetOptions" :key="item.id" :label="item.alias" :value="item.id"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="选择箱子">
+                <el-select v-model="boxValue" placeholder="请选择">
+                    <el-option v-for="item in boxOptions" :key="item.box_number" :label="item.box_number" :value="item.box_number"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item>
+                <el-button style="margin-left:10px;" type="primary" :disabled="disSearch" @click="onSearch">查询</el-button>
+            </el-form-item>
+        </el-form>
+    </div>
+    <el-table :data="tableData" border style="width: 100%">
+        <el-table-column align="center" prop="id" label="ID"></el-table-column>
+        <el-table-column align="center" prop="alias" label="柜号"></el-table-column>
+        <el-table-column align="center" prop="box_number" label="箱号"></el-table-column>
+        <el-table-column align="center" prop="status_text" label="操作类型"></el-table-column>
+        <el-table-column align="center" prop="datetime" label="操作日期"></el-table-column>
+    </el-table>
+    <el-row style="margin-top:10px;" type="flex" justify="end">
+        <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" @current-change="onPageChange" :current-page="pageNumber"></el-pagination>
+    </el-row>
+</el-container>
+</template>
+
+<script>
+import {
+    boxActionList,
+    cabinetList,
+    boxList
+} from "@/api";
+export default {
+    data() {
+        return {
+            pageSize: 10,
+            pageNumber: 1,
+            cabinetValue: "",
+            cabinetOptions: [],
+            boxOptions: [],
+            boxValue: "",
+            tableData: [],
+            total: 0,
+        };
+    },
+    created() {
+        this.getCabinetList();
+    },
+    computed: {
+        disSearch() {
+            return this.boxValue != "" && this.cabinetValue == "";
+        },
+    },
+    methods: {
+        onChangeCabinet(value) {
+            if (value) {
+                this.getBoxList();
+            }
+            console.log(value);
+        },
+        getCabinetList() {
+            cabinetList().then((res) => {
+                console.log(res);
+                if (res && res.msg == "ok") {
+                    this.cabinetOptions = res.data.rows;
+                }
+            });
+        },
+        getBoxList() {
+            boxList({
+                cabinet_number: this.cabinetValue
+            }).then((res) => {
+                if (res && res.msg == "ok") {
+                    this.boxOptions = res.data.rows;
+                }
+            });
+        },
+        getBoxActionList() {
+            let box = this.boxValue ? this.boxValue : 0;
+            boxActionList({
+                cabinet_number: this.cabinetValue,
+                box_number: box,
+                pageSize: this.pageSize,
+                pageNumber: this.pageNumber,
+            }).then((res) => {
+                console.log(res);
+                if (res && res.msg == "ok") {
+                    this.total = res.data.total;
+                    this.tableData = res.data.rows;
+                }
+            });
+        },
+        onPageChange(page) {
+            if (page == this.pageNumber) {
+                return;
+            } else {
+                this.pageNumber = page;
+                setTimeout(() => {
+                    this.getBoxActionList();
+                }, 0);
+            }
+        },
+        onSearch() {
+            this.pageNumber = 1;
+            setTimeout(() => {
+                this.getBoxActionList();
+            }, 0);
+        },
+    },
+};
+</script>
+
+<style scoped>
+</style>

+ 69 - 69
src/router/index.js

@@ -1,69 +1,69 @@
-import Vue from 'vue'
-import VueRouter from 'vue-router'
-
-const Index = () => import('@/pages/index');
-const Login = () => import('@/pages/login');
-const Log = () => import('@/pages/subPages/log');
-const Express = () => import('@/pages/subPages/express');
-const Order = () => import('@/pages/subPages/order');
-const Message = () => import('@/pages/subPages/message');
-const Status = () => import('@/pages/subPages/status');
-const View = () => import('@/pages/subPages/view');
-
-Vue.use(VueRouter)
-
-  const routes = [
-  {
-    path: '/',
-    name: 'Index',
-    component: Index,
-    redirect:'/express',
-    children:[
-      {
-        path:'/log',
-        name:'log',
-        component:Log
-      },
-      {
-        path:'/express',
-        name:'express',
-        component:Express
-      },
-      {
-        path:'/order',
-        name:'order',
-        component:Order
-      },
-      {
-        path:'/message',
-        name:'message',
-        component:Message
-      },
-      {
-        path:'/status',
-        name:'status',
-        component:Status
-      },
-      {
-        path:'/view',
-        name:'view',
-        component:View
-      }
-    ]
-  },
-  {
-    path: '/login',
-    name: 'Login',
-    component: Login
-  }
-]
-
-const router = new VueRouter({
-  routes
-})
-
-router.beforeEach((to,from,next)=>{
-  next();
-});
-
-export default router
+import Vue from 'vue'
+import VueRouter from 'vue-router'
+
+const Index = () => import('@/pages/index');
+const Login = () => import('@/pages/login');
+const Log = () => import('@/pages/subPages/log');
+const Express = () => import('@/pages/subPages/express');
+const Order = () => import('@/pages/subPages/order');
+const Message = () => import('@/pages/subPages/message');
+const Status = () => import('@/pages/subPages/status');
+const View = () => import('@/pages/subPages/view');
+
+Vue.use(VueRouter)
+
+  const routes = [
+  {
+    path: '/',
+    name: 'Index',
+    component: Index,
+    redirect:'/express',
+    children:[
+      {
+        path:'/log',
+        name:'log',
+        component:Log
+      },
+      {
+        path:'/express',
+        name:'express',
+        component:Express
+      },
+      {
+        path:'/order',
+        name:'order',
+        component:Order
+      },
+      {
+        path:'/message',
+        name:'message',
+        component:Message
+      },
+      {
+        path:'/status',
+        name:'status',
+        component:Status
+      },
+      {
+        path:'/view',
+        name:'view',
+        component:View
+      }
+    ]
+  },
+  {
+    path: '/login',
+    name: 'Login',
+    component: Login
+  }
+]
+
+const router = new VueRouter({
+  routes
+})
+
+router.beforeEach((to,from,next)=>{
+  next();
+});
+
+export default router

+ 5 - 5
src/views/About.vue

@@ -1,5 +1,5 @@
-<template>
-  <div class="about">
-    <h1>This is an about page</h1>
-  </div>
-</template>
+<template>
+  <div class="about">
+    <h1>This is an about page</h1>
+  </div>
+</template>

+ 18 - 18
src/views/Home.vue

@@ -1,18 +1,18 @@
-<template>
-  <div class="home">
-    <img alt="Vue logo" src="../assets/logo.png">
-    <HelloWorld msg="Welcome to Your Vue.js App"/>
-  </div>
-</template>
-
-<script>
-// @ is an alias to /src
-import HelloWorld from '@/components/HelloWorld.vue'
-
-export default {
-  name: 'Home',
-  components: {
-    HelloWorld
-  }
-}
-</script>
+<template>
+  <div class="home">
+    <img alt="Vue logo" src="../assets/logo.png">
+    <HelloWorld msg="Welcome to Your Vue.js App"/>
+  </div>
+</template>
+
+<script>
+// @ is an alias to /src
+import HelloWorld from '@/components/HelloWorld.vue'
+
+export default {
+  name: 'Home',
+  components: {
+    HelloWorld
+  }
+}
+</script>

+ 34 - 34
vue.config.js

@@ -1,35 +1,35 @@
-const targetUrl = 'https://apizng.eavic.com';
-
-module.exports = {
-    publicPath:'./',
-    productionSourceMap: false,
-    pages: {
-        index: {
-            // page 的入口
-            entry: 'src/main.js',
-            // 模板来源
-            template: 'public/index.html',
-            // 在 dist/index.html 的输出
-            filename: 'index.html',
-            // 当使用 title 选项时,template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
-            title: '航空工业集团快递智能柜管理程序'
-        },
-    },
-    devServer: {
-        open: true,
-        // host: 'localhost',
-        port: 8080,
-        https: false,
-        //以上的ip和端口是我们本机的;下面为需要跨域的
-        proxy: {//配置跨域
-            '/api': {
-                target: targetUrl,//这里后台的地址模拟的;应该填写你们真实的后台接口
-                ws: true,
-                changOrigin: true,//允许跨域
-                pathRewrite: {
-                    '^/api': ''//请求的时候使用这个api就可以
-                }
-            }
-        }
-    },
+const targetUrl = 'https://apizng.eavic.com';
+
+module.exports = {
+    publicPath:'./',
+    productionSourceMap: false,
+    pages: {
+        index: {
+            // page 的入口
+            entry: 'src/main.js',
+            // 模板来源
+            template: 'public/index.html',
+            // 在 dist/index.html 的输出
+            filename: 'index.html',
+            // 当使用 title 选项时,template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
+            title: '航空工业集团快递智能柜管理程序'
+        },
+    },
+    devServer: {
+        open: true,
+        // host: 'localhost',
+        port: 8080,
+        https: false,
+        //以上的ip和端口是我们本机的;下面为需要跨域的
+        proxy: {//配置跨域
+            '/api': {
+                target: targetUrl,//这里后台的地址模拟的;应该填写你们真实的后台接口
+                ws: true,
+                changOrigin: true,//允许跨域
+                pathRewrite: {
+                    '^/api': ''//请求的时候使用这个api就可以
+                }
+            }
+        }
+    },
 }