ming преди 1 година
родител
ревизия
d98898ea04
променени са 3 файла, в които са добавени 177 реда и са изтрити 73 реда
  1. 20 15
      src/utils/request.js
  2. 36 29
      src/utils/signatureUtil.js
  3. 121 29
      src/views/fillIn.vue

+ 20 - 15
src/utils/request.js

@@ -23,25 +23,30 @@ const service = axios.create({
 service.interceptors.request.use(config => {
 
 
-    
-    // 如果存在data,并且我们想替换body
-  if (config.data && config.method.toLowerCase() === 'post') {
-    // 将数据转换为JSON字符串
-    const data = JSON.stringify(config.data);
-    // 对数据进行Base64编码
-    const base64EncodedData = btoa(data);
-    // 替换请求体
-    config.data = base64EncodedData;
-  }
-
-
 //   获取请求头参数
   const {signature, timestamp, secret} = signatureGenerate(config)
 
-  config.headers['key'] = 'c65ba95718'
+  config.headers['key'] = 'c65ba95718be44a88d69962b66094075'
   config.headers['sign'] = signature
   config.headers['timestamp'] = timestamp
 
+ 
+    console.log('post请求参数')
+    console.log(config.data)
+
+
+      // 如果存在data,并且我们想替换body
+      if (config.data && config.method.toLowerCase() === 'post') {
+        // 将数据转换为JSON字符串
+        const data = JSON.stringify(config.data);
+        // 对数据进行Base64编码
+        const base64EncodedData = btoa(data);
+        // 替换请求体
+        config.data = base64EncodedData;
+      }
+
+
+
 
 
     // 是否需要设置 token
@@ -124,7 +129,7 @@ service.interceptors.response.use(res => {
             }
             if (code == "SUCCESS" || res.data.msg == "操作成功") {
                 return res.headers['content-type'].indexOf("application/vnd.ms-excel") != -1 ? res : res.data
-            } else if (res.data.code == 200) { //系统监控=>定时任务
+            } else if (res.data.code == 0) { //系统监控=>定时任务
                 return res.data
             } else {
                 if (res.data.code == "401") {
@@ -135,7 +140,7 @@ service.interceptors.response.use(res => {
                         type: 'error'
                     })
                     return msg && Promise.reject(new Error(msg)) || ""
-                } else if (res.data.code !== 200) {
+                } else if (res.data.code !== 0) {
                     ElNotification.error({
                         title: msg
                     })

+ 36 - 29
src/utils/signatureUtil.js

@@ -1,58 +1,65 @@
 // signatureUtil.js
 import md5 from "js-md5";
-export function signatureGenerate({
-  data,
-  url,
-  headers
-}) {
+export function signatureGenerate({ data, url, headers }) {
   // 参数签名 密钥 + 时间戳 + header参数 + url
 
   // 密钥
-  let secret = '3g7Xn1yl'
+  let secret = "3g7Xn1yl";
   // 时间戳
-  let timestamp = new Date().getTime()
+  let timestamp = new Date().getTime();
 
-  console.log(data)
-  console.log(url)
+ 
 
   // post参数
-  let dataStr = dataSerialize(dataSort(data))
-  // 生成签名
-  let str = url+dataStr +"&timestamp=" + timestamp  + secret 
+  let dataStr = dataSerialize(dataSort(data));
+  console.log("签名部分,排序后的请求参数");
+  console.log(dataStr);
 
+  let str = (url + dataStr + "timestamp=" + timestamp).toUpperCase() + secret;
 
-  console.log(str.toUpperCase())
-  const sign = md5(str.toUpperCase())
-
-  console.log(sign)
+  const sign = md5(str).toUpperCase();
 
   return {
-    signature: sign.toUpperCase(), // 将签名字母转为大写
+    signature: sign,
     timestamp,
-    secret
-  }
+    secret,
+  };
 }
 
 // 参数排序
 function dataSort(obj) {
   if (JSON.stringify(obj) == "{}" || obj == null) {
-    return {}
+    return {};
   }
-  let key = Object.keys(obj).sort()
-  let newObj = {}
+  let key = Object.keys(obj).sort();
+  let newObj = {};
   for (let i = 0; i < key.length; i++) {
-    newObj[key[i]] = obj[key[i]]
+    newObj[key[i]] = obj[key[i]];
   }
-  return newObj
+  return newObj;
 }
 
 // 参数序列化
 function dataSerialize(sortObj) {
-  let strJoin = ''
+  let strJoin = "";
+
   for (let key in sortObj) {
-    strJoin += key + "=" + sortObj[key] + "&"
+    if (notObject(sortObj[key])) {
+      strJoin += key + "=" + sortObj[key] + "&";
+
+    }
+
+    
+
+    
+  
+   
   }
 
-  // return strJoin.substring(0, strJoin.length - 1)
-  return strJoin
-}
+console.log(strJoin)
+  return strJoin;
+}
+
+function notObject(value) {
+  return typeof value != 'object' ;
+}

+ 121 - 29
src/views/fillIn.vue

@@ -1,49 +1,109 @@
 <template>
   <div class="app-container fillIn">
     <div class="fillIn-contain">
-      <p style="color: red; margin-bottom: 2%; font-size: 1.5rem">* 访客基本信息由身份证读卡器自动获取,请确保信息准确无误</p>
-      <el-form ref="formRef" :model="form" :rules="rules" label-width="15rem" class="fillIn-contain-form">
+      <p style="color: red; margin-bottom: 2%; font-size: 1.5rem">
+        * 访客基本信息由身份证读卡器自动获取,请确保信息准确无误
+      </p>
+      <el-form
+        ref="formRef"
+        :model="form"
+        :rules="rules"
+        label-width="15rem"
+        class="fillIn-contain-form"
+      >
         <el-row>
           <el-col :span="12">
-            <el-form-item label="访客名称" prop="visitorName" :rules="rules.visitorName">
-              <el-input placeholder="请输入访客名称" v-model="form.visitorName" disabled></el-input>
+            <el-form-item
+              label="访客名称"
+              prop="visitorName"
+              :rules="rules.visitorName"
+            >
+              <el-input
+                placeholder="请输入访客名称"
+                v-model="form.visitorName"
+                disabled
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="性别" prop="set">
-              <el-input placeholder="请输入访客名称" v-model="form.set" disabled></el-input>
+              <el-input
+                placeholder="请输入访客名称"
+                v-model="form.set"
+                disabled
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="身份证号码" prop="identityCardNo">
-              <el-input placeholder="请输入身份证号码" v-model="form.identityCardNo" disabled></el-input>
+              <el-input
+                placeholder="请输入身份证号码"
+                v-model="form.identityCardNo"
+                disabled
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="手机号码" prop="mobilePhone">
-              <el-input placeholder="请输入手机号码" v-model="form.mobilePhone"></el-input>
+              <el-input
+                placeholder="请输入手机号码"
+                v-model="form.mobilePhone"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item class="el-form-pack-12" label="拜访事由" prop="reason">
-              <el-input placeholder="请输入拜访事由" v-model="form.reason"></el-input>
+            <el-form-item
+              class="el-form-pack-12"
+              label="拜访事由"
+              prop="reason"
+            >
+              <el-input
+                placeholder="请输入拜访事由"
+                v-model="form.reason"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item class="el-form-pack-12" label="随行人数" prop="accompanyNum">
-              <el-input placeholder="请输入随行人数" v-model="form.accompanyNum" type="number" min="0"></el-input>
+            <el-form-item
+              class="el-form-pack-12"
+              label="随行人数"
+              prop="accompanyNum"
+            >
+              <el-input
+                placeholder="请输入随行人数"
+                v-model="form.accompanyNum"
+                type="number"
+                min="0"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item class="el-form-pack-12" label="访客部门" prop="intervieweeDepartId">
-              <el-select v-model="form.intervieweeDepartId" placeholder="请选择" style="width: 100%">
-                <el-option v-for="item in departData" :key="item.departCode" :label="item.departName" :value="item.departCode" />
+            <el-form-item
+              class="el-form-pack-12"
+              label="访客部门"
+              prop="intervieweeDepartId"
+            >
+              <el-select
+                v-model="form.intervieweeDepartId"
+                placeholder="请选择"
+                style="width: 100%"
+                @change="departChange"
+              >
+                <el-option
+                  v-for="item in departData"
+                  :key="item.code"
+                  :label="item.name"
+                  :value="item.code"
+                />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="被访人手机号码" prop="intervieweeMobile">
-              <el-input placeholder="请输入被访人手机号码" v-model="form.intervieweeMobile"></el-input>
+              <el-input
+                placeholder="请输入被访人手机号码"
+                v-model="form.intervieweeMobile"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="16">
@@ -61,7 +121,12 @@
           </el-col>
         </el-row>
       </el-form>
-      <el-button type="primary" style="width: 20%; margin: 2rem 40% 0" size="large" @click="submitForm()">
+      <el-button
+        type="primary"
+        style="width: 20%; margin: 2rem 40% 0"
+        size="large"
+        @click="submitForm()"
+      >
         <span>提 交</span>
       </el-button>
     </div>
@@ -108,12 +173,18 @@ const data = reactive({
   },
   rules: {
     // set: [{ required: true, message: "请选择性别", trigger: "blur" }],
-    visitorName: [{ required: true, message: "请输入访客名称", trigger: "blur" }],
-    identityCardNo: [{ required: true, message: "请输入访客身份证号码", trigger: "blur" }],
+    visitorName: [
+      { required: true, message: "请输入访客名称", trigger: "blur" },
+    ],
+    identityCardNo: [
+      { required: true, message: "请输入访客身份证号码", trigger: "blur" },
+    ],
     // mobilePhone: [{ required: true, message: "请输入访客手机号码", trigger: "blur" }],
     mobilePhone: proxy.regex.Phone(true, "请输入手机号码"),
     intervieweeMobile: proxy.regex.Phone(true, "请输入被访人手机号码"),
-    intervieweeDepartId: [{ required: true, message: "请选择被访部门", trigger: "change" }],
+    intervieweeDepartId: [
+      { required: true, message: "请选择被访部门", trigger: "change" },
+    ],
   },
   dateRange: [],
 });
@@ -125,7 +196,9 @@ const { form, rules, dateRange } = toRefs(data);
 function getData() {
   timer.value = setInterval(() => {
     axios
-      .get("http://127.0.0.1:24010/ZKIDROnline/ScanReadIdCardInfo?OP-DEV=1&CMD-URL=4&REPEAT=1&READTYPE=1&TIMEOUT=4")
+      .get(
+        "http://127.0.0.1:24010/ZKIDROnline/ScanReadIdCardInfo?OP-DEV=1&CMD-URL=4&REPEAT=1&READTYPE=1&TIMEOUT=4"
+      )
       .then((response) => {
         form.value.visitorName = response.data.Certificate.Name;
         form.value.set = response.data.Certificate.Sex;
@@ -146,24 +219,43 @@ function submitForm() {
   });
 }
 
-
-function  getDepartData(){
-  getOrganization({a:'a'}).then((request) => {
-    if (request.status === "SUCCESS") {
-      console.log(request)
-    
+function getDepartData() {
+  getOrganization({
+    pageIndex: 1,
+    maxResultCount: 10,
+  }).then((request) => {
+    console.log(request);
+    if (request.success == true) {
+      departData.value = request.result.item;
     } else {
       ElMessage.error(request.msg);
     }
   });
-
 }
 
-
+/**
+ * @部门下拉chage事件
+ */
+function departChange(val) {
+  console.log(val);
+  getCustomer({
+    pageIndex: 1,
+    maxResultCount: 10,
+    queryDto: {
+      orgIds: [val],
+    },
+  }).then((request) => {
+    console.log(request);
+    if (request.success == true) {
+    } else {
+      ElMessage.error(request.msg);
+    }
+  });
+}
 
 onMounted(() => {
   getData();
-  getDepartData()
+  getDepartData();
 });
 
 onUnmounted(() => {