diff --git a/04.系统编码/Frontend/.idea/workspace.xml b/04.系统编码/Frontend/.idea/workspace.xml
index 43c69c5..02a82bc 100644
--- a/04.系统编码/Frontend/.idea/workspace.xml
+++ b/04.系统编码/Frontend/.idea/workspace.xml
@@ -2,8 +2,12 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="4b7d7b72-f5b8-41e4-85d5-6267bdc12fc5" name="默认变更列表" comment="">
-      <change afterPath="$PROJECT_DIR$/src/uilts/string.ts" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/components/Login.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/components/Login.vue" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/uilts/axios.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/uilts/axios.ts" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/uilts/string.ts" beforeDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -20,9 +24,6 @@
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../.." />
   </component>
-  <component name="ProblemsViewState">
-    <option name="selectedIndex" value="3" />
-  </component>
   <component name="ProjectId" id="21a5rRZhTS1K7V7ken7d20h7EC3" />
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
   <component name="ProjectViewState">
@@ -69,6 +70,8 @@
       <workItem from="1638357465282" duration="311000" />
       <workItem from="1638357939110" duration="359000" />
       <workItem from="1638358323504" duration="523000" />
+      <workItem from="1638407060517" duration="348000" />
+      <workItem from="1638407479402" duration="5596000" />
     </task>
     <task id="LOCAL-00001" summary="2021 12 01">
       <created>1638357539757</created>
diff --git a/04.系统编码/Frontend/package-lock.json b/04.系统编码/Frontend/package-lock.json
index 5cac688..412ca60 100644
--- a/04.系统编码/Frontend/package-lock.json
+++ b/04.系统编码/Frontend/package-lock.json
@@ -8,9 +8,10 @@
       "name": "nanjing",
       "version": "0.0.0",
       "dependencies": {
-        "axios": "^0.24.0",
+        "axios": "^0.21.4",
         "element-plus": "^1.2.0-beta.4",
         "moment": "^2.29.1",
+        "qs": "^6.10.1",
         "typescript": "^4.5.2",
         "vue": "^3.0.4",
         "vue-router": "^4.0.12"
@@ -762,11 +763,11 @@
       }
     },
     "node_modules/axios": {
-      "version": "0.24.0",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
-      "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
+      "version": "0.21.4",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+      "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
       "dependencies": {
-        "follow-redirects": "^1.14.4"
+        "follow-redirects": "^1.14.0"
       }
     },
     "node_modules/balanced-match": {
@@ -922,6 +923,18 @@
         "node": ">= 6.0.0"
       }
     },
+    "node_modules/call-bind": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+      "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+      "dependencies": {
+        "function-bind": "^1.1.1",
+        "get-intrinsic": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/chalk": {
       "version": "4.1.2",
       "resolved": "https://registry.npmmirror.com/chalk/download/chalk-4.1.2.tgz",
@@ -1465,8 +1478,20 @@
     "node_modules/function-bind": {
       "version": "1.1.1",
       "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
-      "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
-      "dev": true
+      "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
+    },
+    "node_modules/get-intrinsic": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+      "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+      "dependencies": {
+        "function-bind": "^1.1.1",
+        "has": "^1.0.3",
+        "has-symbols": "^1.0.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
     },
     "node_modules/get-stream": {
       "version": "5.2.0",
@@ -1545,7 +1570,6 @@
       "version": "1.0.3",
       "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
       "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
-      "dev": true,
       "dependencies": {
         "function-bind": "^1.1.1"
       },
@@ -1566,7 +1590,6 @@
       "version": "1.0.2",
       "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443681706&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz",
       "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=",
-      "dev": true,
       "engines": {
         "node": ">= 0.4"
       },
@@ -2465,6 +2488,14 @@
         "node": ">=8"
       }
     },
+    "node_modules/object-inspect": {
+      "version": "1.11.0",
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
+      "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/on-finished": {
       "version": "2.3.0",
       "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
@@ -2818,6 +2849,20 @@
         "node": ">=6"
       }
     },
+    "node_modules/qs": {
+      "version": "6.10.1",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
+      "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
+      "dependencies": {
+        "side-channel": "^1.0.4"
+      },
+      "engines": {
+        "node": ">=0.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/queue-microtask": {
       "version": "1.2.3",
       "resolved": "https://registry.nlark.com/queue-microtask/download/queue-microtask-1.2.3.tgz",
@@ -3201,6 +3246,19 @@
         "node": ">=8"
       }
     },
+    "node_modules/side-channel": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+      "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+      "dependencies": {
+        "call-bind": "^1.0.0",
+        "get-intrinsic": "^1.0.2",
+        "object-inspect": "^1.9.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/signal-exit": {
       "version": "3.0.6",
       "resolved": "https://registry.npmmirror.com/signal-exit/download/signal-exit-3.0.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.6.tgz",
@@ -4276,11 +4334,11 @@
       "dev": true
     },
     "axios": {
-      "version": "0.24.0",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
-      "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
+      "version": "0.21.4",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+      "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
       "requires": {
-        "follow-redirects": "^1.14.4"
+        "follow-redirects": "^1.14.0"
       }
     },
     "balanced-match": {
@@ -4384,6 +4442,15 @@
         "ylru": "^1.2.0"
       }
     },
+    "call-bind": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+      "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+      "requires": {
+        "function-bind": "^1.1.1",
+        "get-intrinsic": "^1.0.2"
+      }
+    },
     "chalk": {
       "version": "4.1.2",
       "resolved": "https://registry.npmmirror.com/chalk/download/chalk-4.1.2.tgz",
@@ -4801,8 +4868,17 @@
     "function-bind": {
       "version": "1.1.1",
       "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
-      "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
-      "dev": true
+      "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
+    },
+    "get-intrinsic": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+      "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+      "requires": {
+        "function-bind": "^1.1.1",
+        "has": "^1.0.3",
+        "has-symbols": "^1.0.1"
+      }
     },
     "get-stream": {
       "version": "5.2.0",
@@ -4860,7 +4936,6 @@
       "version": "1.0.3",
       "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
       "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
-      "dev": true,
       "requires": {
         "function-bind": "^1.1.1"
       }
@@ -4874,8 +4949,7 @@
     "has-symbols": {
       "version": "1.0.2",
       "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443681706&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz",
-      "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=",
-      "dev": true
+      "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM="
     },
     "has-tostringtag": {
       "version": "1.0.0",
@@ -5548,6 +5622,11 @@
         "path-key": "^3.0.0"
       }
     },
+    "object-inspect": {
+      "version": "1.11.0",
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
+      "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
+    },
     "on-finished": {
       "version": "2.3.0",
       "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
@@ -5811,6 +5890,14 @@
       "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=",
       "dev": true
     },
+    "qs": {
+      "version": "6.10.1",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
+      "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
+      "requires": {
+        "side-channel": "^1.0.4"
+      }
+    },
     "queue-microtask": {
       "version": "1.2.3",
       "resolved": "https://registry.nlark.com/queue-microtask/download/queue-microtask-1.2.3.tgz",
@@ -6110,6 +6197,16 @@
       "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=",
       "dev": true
     },
+    "side-channel": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+      "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+      "requires": {
+        "call-bind": "^1.0.0",
+        "get-intrinsic": "^1.0.2",
+        "object-inspect": "^1.9.0"
+      }
+    },
     "signal-exit": {
       "version": "3.0.6",
       "resolved": "https://registry.npmmirror.com/signal-exit/download/signal-exit-3.0.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.6.tgz",
diff --git a/04.系统编码/Frontend/package.json b/04.系统编码/Frontend/package.json
index e271ed1..7f02dec 100644
--- a/04.系统编码/Frontend/package.json
+++ b/04.系统编码/Frontend/package.json
@@ -6,9 +6,10 @@
     "build": "vite build"
   },
   "dependencies": {
-    "axios": "^0.24.0",
+    "axios": "^0.21.4",
     "element-plus": "^1.2.0-beta.4",
     "moment": "^2.29.1",
+    "qs": "^6.10.1",
     "typescript": "^4.5.2",
     "vue": "^3.0.4",
     "vue-router": "^4.0.12"
diff --git a/04.系统编码/Frontend/src/components/Login.vue b/04.系统编码/Frontend/src/components/Login.vue
index a24c332..cdd8864 100644
--- a/04.系统编码/Frontend/src/components/Login.vue
+++ b/04.系统编码/Frontend/src/components/Login.vue
@@ -22,8 +22,10 @@
 
 <script lang="ts">
 import {reactive, toRefs} from "vue";
-import { ElMessageBox } from 'element-plus'
+import { setStaff } from "../uilts/storage";
+import { post } from "../uilts/axios";
 import { useRouter } from "vue-router"
+import { ElMessage } from 'element-plus'
 export default {
   name: 'Login',
   setup() {
@@ -34,19 +36,51 @@ export default {
     })
     const router = useRouter()
     const onLoginClick = () => {
-      if(option.inputName=="xuhuihui" && option.inputPassword=="12345678" ){
-        router.push({
-          path: "MicrowaveRadiation",
-          query:{
+      post("/user/userLogin",{
+        userAccountNumber: option.inputName,
+        userPassword: option.inputPassword,
+      }).then((res:any)=>{
+        console.log(res)
+      })
 
-          }
-        })
-      }else {
-        ElMessageBox.alert('请正确填写信息', '提示', {
-          confirmButtonText: '确认',
-        })
-      }
+      // const errors = staffValidate();
+      // if (errors.length > 0) {
+      //   ElMessage.warning({
+      //     message: '请输入' + errors.join('、'),
+      //     type: 'warning'
+      //   })
+      // } else {
+      //   post('/user/userLogin', {
+      //     userAccountNumber: option.inputName,
+      //     userPassword: option.inputPassword,
+      //   }).then((res: any) => {
+      //     if (res.error == 1) {
+      //       ElMessage.error({
+      //         message: res.message,
+      //         type: 'error'
+      //       });
+      //     } else {
+      //       // setStaff('login_staff', res.data);
+      //       // console.log(res.data)
+      //       router.push({
+      //         path: '/SystemManagement'
+      //       });
+      //     }
+      //   });
+      // }
     }
+    // const staffValidate = ()=> {
+    //   const errors = [];
+    //   if (staff.loginName == null || staff.loginName.trim().length == 0)
+    //     errors.push('登录名');
+    //
+    //   if (staff.loginPassword == null || staff.loginPassword.trim().length == 0)
+    //     errors.push('登录密码');
+    //
+    //   return errors;
+    // }
+
+
     return {
       ...toRefs(option),
       onLoginClick
diff --git a/04.系统编码/Frontend/src/uilts/axios.ts b/04.系统编码/Frontend/src/uilts/axios.ts
index fa1ecae..f909fb0 100644
--- a/04.系统编码/Frontend/src/uilts/axios.ts
+++ b/04.系统编码/Frontend/src/uilts/axios.ts
@@ -1,17 +1,13 @@
 import * as qs from "qs"
 import axios from "axios"
-import { format } from './string'
-import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
-import { MessageType } from "element-plus/lib/el-message/src/types";
+import { ElLoading } from 'element-plus'
 
 let loading = null;
 const service = axios.create({
-    baseURL: 'http://localhost:3000',
-    // baseURL: '',
-    // baseURL: 'http://192.168.30.84:8999',
+    baseURL: 'http://localhost:8001',
     timeout: 500000
 })
-let count = 0
+
 service.interceptors.request.use(config => {
     loading = ElLoading.service({
         customClass: 'loading',
@@ -45,36 +41,12 @@ export function post(url: any, params = {}, contentType = "application/x-www-for
     })
 }
 
-export function get(regionId, file, params = {}, baseUrl = '') {
+export function get(url, params = {}, baseUrl = '') {
     return new Promise((resolve, reject) => {
-        let url = getJsonFile(regionId, file);
         service({ url, baseURL: baseUrl, method: 'get', params: params }).then(response => {
             resolve(response);
         }).catch(error => {
             reject(error);
         })
     })
-}
-
-function getJsonFile(regionId, name) {
-    let pattern = 'json/{0}/{1}';
-    return format(pattern, regionId, name);
-}
-
-export function showMessageBox(message: string, title: string = "错误", type: MessageType = "error") {
-    ElMessage({
-        message: message,
-        center: true,
-        duration: 2000,
-        customClass: 'message-text',
-    })
-}
-
-export function showNoDataMessage() {
-    ElMessage({
-        message: '暂无数据',
-        center: true,
-        duration: 2000,
-        customClass: 'message-text',
-    })
 }
\ No newline at end of file
diff --git a/04.系统编码/Frontend/src/uilts/storage.ts b/04.系统编码/Frontend/src/uilts/storage.ts
new file mode 100644
index 0000000..e189d6f
--- /dev/null
+++ b/04.系统编码/Frontend/src/uilts/storage.ts
@@ -0,0 +1,19 @@
+import router from "../router";
+
+export function setStaff(key: any, staff: any) {
+    localStorage.setItem(key, JSON.stringify(staff));
+}
+
+export function getStaff(key: any) {
+    let data = localStorage.getItem(key);
+    if(data !== null) {
+        return JSON.parse(data);
+    } else {
+        router.push({path: '/Login'});
+    }
+    return null;
+}
+
+export function clear() {
+    localStorage.clear();
+}
\ No newline at end of file
diff --git a/04.系统编码/Frontend/src/uilts/string.ts b/04.系统编码/Frontend/src/uilts/string.ts
deleted file mode 100644
index 0544ec1..0000000
--- a/04.系统编码/Frontend/src/uilts/string.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export function format() {
-
-}
\ No newline at end of file