Bladeren bron

公务用车 工程现场 后台界面调整

zhanghao 1 maand geleden
bovenliggende
commit
48bf25c61a
5 gewijzigde bestanden met toevoegingen van 50 en 13 verwijderingen
  1. 1 1
      package.json
  2. 38 0
      src/api/zcustom/crypto.js
  3. 3 1
      src/store/modules/user.js
  4. 4 4
      src/views/screen/official/main.vue
  5. 4 7
      src/views/zcustom/project/index.vue

+ 1 - 1
package.json

@@ -44,7 +44,7 @@
     "axios": "0.24.0",
     "clipboard": "2.0.8",
     "core-js": "^3.25.0",
-    "crypto-js": "^4.1.1",
+    "crypto-js": "^4.2.0",
     "echarts": "4.9.0",
     "echarts-gl": "^1.1.1",
     "element-ui": "2.15.8",

+ 38 - 0
src/api/zcustom/crypto.js

@@ -0,0 +1,38 @@
+import CryptoJS from 'crypto-js'
+
+const KEY = CryptoJS.enc.Utf8.parse('X4RjV51wQxSxZHHQ')
+const IV = CryptoJS.enc.Utf8.parse('g49GarVwCTR6nBHQ')
+
+
+// 加密函数
+export function encryptData(data) {
+    const encrypted = CryptoJS.AES.encrypt(
+        data,
+        KEY,
+        {
+            iv: IV,
+            mode: CryptoJS.mode.CBC,
+            padding: CryptoJS.pad.Pkcs7
+        }
+    )
+    return encrypted.toString()
+}
+
+// 解密函数
+export function decryptData(data) {
+    const decrypted = CryptoJS.AES.decrypt(
+        data,
+        KEY,
+        {
+            iv: IV,
+            mode: CryptoJS.mode.CBC,
+            padding: CryptoJS.pad.Pkcs7
+        }
+    )
+    return CryptoJS.enc.Utf8.stringify(decrypted)
+}
+
+export default {
+    encryptData,
+    decryptData
+}

+ 3 - 1
src/store/modules/user.js

@@ -1,5 +1,7 @@
 import { login, logout, getInfo } from '@/api/login'
 import { getToken, setToken, removeToken } from '@/utils/auth'
+import { encryptData } from '@/api/zcustom/crypto'
+
 
 const user = {
   state: {
@@ -32,7 +34,7 @@ const user = {
     // 登录
     Login({ commit }, userInfo) {
       const username = userInfo.username.trim()
-      const password = userInfo.password
+      const password = encryptData(userInfo.password)
       const code = userInfo.code
       const uuid = userInfo.uuid
       return new Promise((resolve, reject) => {

+ 4 - 4
src/views/screen/official/main.vue

@@ -272,8 +272,8 @@ export default {
             this.resourceData = res.data
             this.resourceData.cd = 5 - this.resourceData.totalCarNum.toString().length
             this.resourceData.totalCarNum = this.resourceData.totalCarNum.toString().padStart(5, '0');
-            this.resourceData.percentageLack = Math.round(((this.resourceData.totalCarNum - this.resourceData.establishmentsCarNum) / this.resourceData.totalCarNum) * 100);
-            this.resourceData.percentagePosess = Math.round((this.resourceData.establishmentsCarNum / this.resourceData.totalCarNum) * 100);
+            this.resourceData.percentageLack = (this.resourceData.totalCarNum !== 0) ? Math.round(((this.resourceData.totalCarNum - this.resourceData.establishmentsCarNum) / this.resourceData.totalCarNum) * 100) : 0;
+            this.resourceData.percentagePosess = (this.resourceData.totalCarNum !== 0) ? Math.round((this.resourceData.establishmentsCarNum / this.resourceData.totalCarNum) * 100) : 0;
             this.carTypeNum = [
               {
                 type: "商务车",
@@ -323,8 +323,8 @@ export default {
       getMonitor(this.appOrg).then(res => {
         if (Number(res.code) === 200) {
           this.monitorData = res.data
-          this.monitorData.percentageInstall = Math.round((this.monitorData.terminalInstall / this.monitorData.terminalTotal) * 100);
-          this.monitorData.percentageOnline = Math.round((this.monitorData.terminalOnline / this.monitorData.terminalTotal) * 100);
+          this.monitorData.percentageInstall = (this.monitorData.terminalTotal !== 0) ? Math.round((this.monitorData.terminalInstall / this.monitorData.terminalTotal) * 100) : 0;
+          this.monitorData.percentageOnline = (this.monitorData.terminalTotal !== 0) ? Math.round((this.monitorData.terminalOnline / this.monitorData.terminalTotal) * 100) : 0;
         }
       })
     },

+ 4 - 7
src/views/zcustom/project/index.vue

@@ -99,10 +99,10 @@
         <el-form-item label="项目名称" prop="projectName">
           <el-input v-model="form.projectName" placeholder="请输入项目名称" />
         </el-form-item>
-        <el-form-item label="项目横坐标" prop="abscissa">
+        <el-form-item label="项目经度" prop="abscissa">
           <el-input v-model="form.abscissa" placeholder="请输入项目名称" />
         </el-form-item>
-        <el-form-item label="项目纵坐标" prop="ordinate">
+        <el-form-item label="项目纬度" prop="ordinate">
           <el-input v-model="form.ordinate" placeholder="请输入项目名称" />
         </el-form-item>
         <el-form-item label="所属单位" prop="appOrg">
@@ -112,7 +112,7 @@
             </template>
           </el-cascader>
         </el-form-item>
-        <el-form-item label="项目类型" prop="type">
+        <el-form-item label="项目类型" prop="flag">
           <el-radio v-model="flag" label="1">在建</el-radio>
           <el-radio v-model="flag" label="2">施工</el-radio>
         </el-form-item>
@@ -266,10 +266,7 @@ export default {
         ],
         appOrg: [
           { required: true, message: "所属单位id不能为空", trigger: "blur" }
-        ],
-        type: [
-          { required: true, message: "项目类型不能为空", trigger: "blur" }
-        ],
+        ]
       }
     };
   },