Kaynağa Gözat

app信息检测

wangtao 3 yıl önce
ebeveyn
işleme
fcffa26116

BIN
src/assets/image/function/icon10.png


+ 12 - 0
src/router/index.js

@@ -11,6 +11,18 @@ const routes = [
         component: () =>
             import ( /* webpackChunkName: "about" */ '../views/login')
     },
+    {
+        path: '/login', //登录页
+        name: 'Login',
+        component: () =>
+            import ( /* webpackChunkName: "about" */ '../views/login')
+    },
+    {
+        path: '/home', //首页
+        name: 'home',
+        component: () =>
+            import ( /* webpackChunkName: "about" */ '../views/home')
+    },
     {
         path: '/function', //功能、消息页
         name: 'Function',

+ 21 - 5
src/views/amount/index.vue

@@ -195,6 +195,7 @@ export default {
     [Toast.name]: Toast,
   },
   created() {
+    
     var url = window.location.href;
     if(url.indexOf("token") > 1){
       //("app进入")
@@ -520,6 +521,7 @@ export default {
             title: "提示",
             message: "充值金额不能为0元!",
           });
+          
         }else if(this.channelId){//游客
             if (this.env == "WeiXin") {
               //console.log("微信环境充值--游客");
@@ -571,18 +573,32 @@ export default {
           title: "提示",
           message: "充值金额不能为0元!",
         });
+        
       }
     },
     recharge() {
       this.isWeixinOrAlipay();
       this.jumpMode();
       if(this.env == "WeiXin" || this.env == "Alipay"){
-        
+        if(this.money == '0' ||  this.money == '0.0' ||  this.money == '0.'){
+          Dialog.confirm({
+            title: "提示",
+            message: "充值金额不能为0元!",
+          });
+        }
       }else{
-        this.$router.push({
-          path: "/recharge",
-          query: { money: this.money, channelId: this.channelId },
-        });
+        if(this.money == '0' ||  this.money == '0.0' ||  this.money == '0.'){
+          Dialog.confirm({
+            title: "提示",
+            message: "充值金额不能为0元!",
+          });
+        }else{
+          this.$router.push({
+            path: "/recharge",
+            query: { money: this.money, channelId: this.channelId },
+          });
+        }
+        
       }
     },
     btn50() {

+ 1 - 0
src/views/function/index.vue

@@ -132,6 +132,7 @@
 import Cookies from "js-cookie";
 import { encrypt, decrypt } from '../../utils/jsencrypt';
 import { getDateStrNowDay} from '@/assets/js/dataFormate.js'
+import axios from "axios";
 export default {
   data() {
     return {

+ 453 - 160
src/views/home/index.vue

@@ -1,33 +1,114 @@
 <template>
   <div class="mianBox">
     <van-row class="headerBox">
-      <van-icon name="arrow-left" @click="$router.go(-1)" />
-      一卡通
+      智慧楼宇
     </van-row>
-    <van-row class="contentBox">
-      <van-row @click="balance" v-if="user">
-        <van-image
-          :src="require('../../assets/image/balance.png')"
-        />
-        <van-col :span="24">账户余额</van-col>
-        <van-col :span="24">个人账户余额信息</van-col>
+    <van-row class="people">
+      <van-row class="top">
+        <van-row class="left">
+          <van-uploader :after-read="afterRead" class="upload" />
+          <van-image :src="portrait57" class="portrait" />
+        </van-row>
+        <van-row class="right">
+          <van-row class="name">
+            {{nickName57}}
+          </van-row>
+          <van-row class="dept">
+            {{dept57}}
+          </van-row>
+          <van-row class="phone">{{phone57}}</van-row>
+          <van-icon name="arrow"  class="arrowRight"  @click="go"/>
+        </van-row>
+        <van-row class="bottom">
+          <van-row v-loading="loadingBalance" >
+            <span v-if="balance">{{balance}}元<br>余额</span>
+          </van-row>
+          <van-row v-loading="loadingPlateNumber" >
+            <span v-if="plateNumber">{{plateNumber}}<br>已经录入车牌</span>
+          </van-row>
+          
+        </van-row>
       </van-row>
-      <van-row @click="amount">
-        <van-image
-          :src="require('../../assets/image/recharge.png')"
-        />
-        <van-col :span="24">充值</van-col>
-        <van-col :span="24">对余额进行充值</van-col>
+    </van-row>
+    <van-row class="contentBox">
+      <van-row class="system">
+        <van-row  type="flex" justify="space-between" gutter="10" >
+          <van-col span="6" class="function" @click="sm('https://smartpark.caih.com/h5/#/licence',1)">
+            <van-image :src="require('../../assets/image/function/icon2.png')" />
+            <div class="title">车牌登记</div>
+          </van-col>
+          <van-col span="6" class="function" @click="ykt">
+            <van-image :src="require('../../assets/image/function/icon3.png')" />
+            <div class="title">一卡通</div>
+          </van-col>
+          <van-col span="6" class="function" @click="sm('https://smartpark.caih.com/h5/#/visitorApply',2)">
+            <van-image :src="require('../../assets/image/function/icon6.png')" />
+            <div class="title">访客申请</div>
+          </van-col>
+          <van-col span="6" class="function" @click="sm('https://smartpark.caih.com/h5/#/safeIndex',3)" v-if="people57 == '1'">
+            <van-image :src="require('../../assets/image/function/icon10.png')" />
+            <div class="title">综合安防</div>
+          </van-col>
+        </van-row>
       </van-row>
-      <van-row @click="record" v-if="user">
-        <van-image
-          :src="require('../../assets/image/record.png')"
-        />
-        <van-col :span="24">消费记录</van-col>
-        <van-col :span="24">查看消费记录和充值记录</van-col>
+      <van-row class="record">
+        <van-row class="recordList">
+          <van-row class="listTitle"><span></span>最近通行记录</van-row>
+          <el-table v-loading="loading1" :data="adminList1" style="margin-top:10px;" :header-cell-style="{background:'#F5F5F5'}" >
+            <el-table-column label="序号" align="left"  show-overflow-tooltip min-width="15%">
+              <template slot-scope="scop">
+                {{scop.$index+1}}
+              </template>
+            </el-table-column>
+            <el-table-column label="通行地点" align="left" prop="dmRoomDevice.name" show-overflow-tooltip min-width="40%"/>
+            <el-table-column label="时间" align="left" prop="accessTime" show-overflow-tooltip min-width="45%"/>
+          </el-table>
+        </van-row>
+        <van-row class="recordList">
+          <van-row class="listTitle"><span></span>最近消费记录</van-row>
+          <el-table v-loading="loading2" :data="adminList2" style="margin-top:10px;" :header-cell-style="{background:'#F5F5F5'}" >
+            <el-table-column label="序号" align="left"  show-overflow-tooltip min-width="15%">
+              <template slot-scope="scop">
+                {{scop.$index+1}}
+              </template>
+            </el-table-column>
+            <el-table-column label="消费设备" align="left" prop="termName" show-overflow-tooltip min-width="25%"/>
+            <el-table-column label="金额" align="left" prop="amt" show-overflow-tooltip min-width="22%">
+               <template slot-scope="scop">
+                {{scop.row.amt}}元
+              </template>
+            </el-table-column>
+            <el-table-column label="时间" align="left" prop="createTime" show-overflow-tooltip min-width="40%"/>
+          </el-table>
+        </van-row>
+        <van-row class="recordList" style="margin-bottom:20px;">
+          <van-row class="listTitle"><span></span>最近访客预约记录</van-row>
+          <el-table v-loading="loading3" :data="adminList3" style="margin-top:10px;" :header-cell-style="{background:'#F5F5F5'}" >
+            <el-table-column label="序号" align="left"  show-overflow-tooltip min-width="15%">
+              <template slot-scope="scop">
+                {{scop.$index+1}}
+              </template>
+            </el-table-column>
+            <el-table-column label="访客名称" align="left" prop="visitor_name" show-overflow-tooltip min-width="40%"/>
+            <el-table-column label="到访时间" align="left" prop="start_time" show-overflow-tooltip min-width="45%"/>
+          </el-table>
+        </van-row>
+        <!-- <van-row class="recordList" style="margin-bottom:20px;">
+          <van-row class="listTitle"><span></span>最近停车记录</van-row>
+          <el-table v-loading="loading4" :data="adminList4" style="margin-top:10px;" :header-cell-style="{background:'#F5F5F5'}" class="tableScroll">
+            <el-table-column label="序号" align="left"  show-overflow-tooltip >
+              <template slot-scope="scop">
+                {{scop.$index+1}}
+              </template>
+            </el-table-column>
+            <el-table-column label="入场时间" align="left" prop="visitor_name" show-overflow-tooltip />
+            <el-table-column label="入场车道" align="left" prop="visitor_name" show-overflow-tooltip />
+            <el-table-column label="出场时间" align="left" prop="start_time" show-overflow-tooltip />
+            <el-table-column label="出场车道" align="left" prop="visitor_name" show-overflow-tooltip />
+          </el-table>
+        </van-row> -->
       </van-row>
     </van-row>
-
     <van-loading
       size="24px"
       v-if="loading"
@@ -42,128 +123,248 @@
 
 <script>
 import axios from "axios";
-import { getNowTime } from "@/assets/js/dataFormate";
 import { Toast } from "vant";
+import Cookies from "js-cookie";
+import { encrypt, encrypt2, decrypt } from '../../utils/jsencrypt';
 export default {
   data() {
     return {
-      user:undefined,
-      type:undefined,
+      //个人信息
+        portrait57:undefined,
+        nickName57:undefined,
+        dept57:undefined,
+        phone57:undefined,
+        people57:false,
       loading: false,
+      loadingPlateNumber:true,
+      plateNumber:undefined,//车牌号
+      loadingBalance:true,
+      balance:undefined,//余额
+      //table
+        adminList1:[],
+        adminList2:[],
+        adminList3:[],
+        adminList4:[],
+        loading1:true,
+        loading2:true,
+        loading3:true,
+        loading4:false,
+      //图片上传
+        nonce:undefined,
+        timestamp:undefined,
+        token:undefined,
+        userId:undefined,
+        loading:false,
+        formData:undefined,
+        username:undefined,
+
     };
   },
   created(){
-    var url = window.location.href;
-    if(url.indexOf("token") > 1){
-      //("app进入")
-      if(this.getQueryVariable("token")){
-        if(localStorage.getItem("user_wt")){
-
-        }else{
-          this.loading = true
-        }
-        this.userQuery()
-      }else{
-        //console.log("app进入")
-        Toast(this.getQueryVariable("无token传入!"))
-      }
-    }else if(this.getQueryVariable("type")){
-      //console.log("扫码游客进入")
-      localStorage.removeItem('type');
-      localStorage.removeItem('user_wt');
-      localStorage.setItem("type",this.type)
+    if(Cookies.get("userId57")){
+      this.userId = Cookies.get("userId57")
     }else{
-      localStorage.removeItem('user_wt');
-      localStorage.removeItem('type');
-      //console.log("无user、type进入")
+      this.$router.push({ path: "/login"})
     }
-  },
-  mounted() {
-  },
-  methods: {
-    //用户查询
-    userQuery(){
-      axios({//查询信息
-          method: 'get',
-          url: 'https://smartpark.caih.com/zkxt/api/thirdparty/v1/user/getZkUserByCipher?cipher=' + this.getQueryVariable("token"),
-          timeout: 10000,
-        }).then(res =>{
-          if(res.data?.data?.id){
-            axios.get(`/dxtop/staff/one?id=0001T110000000002HBL`).then(res2 => { //验证充值信息是否同步
-            //axios.get(`/dxtop/staff/one?id=${res.data.data.id}`).then(res2 => { //验证充值信息是否同步
-              if(res2.data.data){
-                //localStorage.setItem("user", res.data.data.id)
-                localStorage.setItem("user_wt", "0001T110000000002HBL")
-                localStorage.setItem("cardId", res2.data.data.cardId)
-              }else{
-                this.userNoAlert()
-              }
-              this.loading = false
-            })
-          }else if(res.data?.data?.cardId){
-            this.loading = false
-            Toast("用户卡号未绑定")
+    this.portrait57 = Cookies.get("portrait57")
+    this.nickName57 = Cookies.get("nickName57")
+    this.dept57 = Cookies.get("dept57")
+    this.phone57 = Cookies.get("phone57")
+    this.people57 = Cookies.get("people57")
+     if(Cookies.get("token57")){
+      this.token = Cookies.get("token57")
+    }
+    if(Cookies.get("nonce57")){
+      this.nonce = Cookies.get("nonce57")
+    }
+    if(Cookies.get("timestamp57")){
+      this.timestamp = Cookies.get("timestamp57")
+    }
+    
+    if(Cookies.get("username57")){
+      this.username = Cookies.get("username57")
+    }
+    if(Cookies.get("password57")){
+      this.password = decrypt(Cookies.get("password57"))
+    }
+    if(!Cookies.get("openid57") || !Cookies.get("username57") || !Cookies.get("password57")){
+      this.outLogin()
+    }
+    //余额
+    axios.get(`/dxtop/staff/one?id=${Cookies.get("userId57")}`).then(res => { //验证充值信息是否同步
+      if(res?.data?.data?.cardId){
+        Cookies.set("cardId",res?.data?.data?.cardId)
+         axios.get(`/dxtop/staff/cardBalance?card=${res.data.data.cardId}`).then(res => { //验证充值信息是否同步
+          if(res.data.data){
+            this.balance = res.data.data
           }else{
-            this.loading = false
-            this.userNoAlert()
+            this.balance = "0.00"
           }
-        }).catch(err =>{
-          this.loading = false
-          this.userNoAlert()
-        });
-    },
-    userNoAlert(){
-      Toast("当前账户初始流程中,请耐心等待或联系管理人员查询")
+          this.loadingBalance = false
+        })
+      }else{
+        this.loadingBalance = false
+      }
+    })
+    //车牌号查询
+    axios.post(`https://smartpark.caih.com/ykt/api/thirdparty/v1/openInterface/getPlateNumber`, 
+    {
+      "nonce": Cookies.get("nonce57"),
+      "timestamp": Cookies.get("timestamp57"),
+      "query": {
+        "userNumber":Cookies.get("userId57"),
+      }
     },
-    getQueryVariable(variable){//参数获取
-      //window.location.search.substring(1);
-      var query = window.location.hash.substring(3);
-      var vars = query.split("&");
-      for (var i=0;i<vars.length;i++) {
-        var pair = vars[i].split("=");
-        if(pair[0] == variable){
-          if(variable =="token"){
-            this.user = pair[1]
-          }else if(variable =="type"){
-            this.type = pair[1]
-          }
-          return pair[1];
+    {headers: {
+        "XYTACCESSTOKEN":Cookies.get("token57")
+      }
+    }).then(res => {
+        if(res?.data?.data && res?.data?.data.length>0){
+          this.plateNumber = res.data.data[0].plateNumber
+          this.loadingPlateNumber = false
+        }else{
+          this.loadingPlateNumber = false
         }
+      }).catch(err =>{
+        Toast(err.response.data.message)
+    })
+    
+    //通行记录
+    axios.post(`https://smartpark.caih.com/ykt/api/thirdparty/v1/openInterface/getAccessTraffic?page=0&size=10&sort=id,desc`, 
+    {
+      "nonce": Cookies.get("nonce57"),
+      "timestamp": Cookies.get("timestamp57"),
+      "query": {
+        "userNumber":Cookies.get("userId57"),
       }
-      return(false);
     },
-    amount(){
-      var url = window.location.href;
-      if(url.indexOf("token") >1){
-        if(localStorage.getItem("user_wt")){
-          this.$router.push({ path: "/amount"})
+    {headers: {
+        "XYTACCESSTOKEN":Cookies.get("token57")
+      }
+    }).then(res => {
+        if(res?.data?.data?.content){
+          this.adminList1 = res.data.data.content.slice(0,5)
+          this.loading1 = false
         }else{
-          this.userNoAlert()
+          this.loading1 = false
         }
+      }).catch(err =>{
+        Toast(err.response.data.message)
+    })
+    //停车记录
+    // axios.post(`https://smartpark.caih.com/ykt/api/thirdparty/v1/openInterface/getParkingTraffic?page=0&size=10&sort=id,desc`, 
+    // {
+    //   "nonce": Cookies.get("nonce57"),
+    //   "timestamp": Cookies.get("timestamp57"),
+    //   "query": {
+    //     "userNumber":Cookies.get("userId57"),
+    //   }
+    // },
+    // {headers: {
+    //     "XYTACCESSTOKEN":Cookies.get("token57")
+    //   }
+    // }).then(res => {
+    //     if(res?.data?.data?.content){
+    //       this.adminList1 = res.data.data.content.slice(0,5)
+    //       this.loading1 = false
+    //     }else{
+    //       this.loading1 = false
+    //     }
+    //   }).catch(err =>{
+    //     Toast(err.response.data.message)
+    // })
+    // 消费记录
+    axios.post(`/dxtop/dish/page`,{
+      "size":10,
+      "current":1,
+      "userId":Cookies.get("userId57")
+    }).then(res => {
+      if (res?.data?.data?.records) {
+        this.adminList2 = res.data.data.records.slice(0,5)
+        this.loading2 = false
       }else{
-        this.$router.push({ path: "/amount"})
+        this.loading2 = false
       }
+    })
+    //访客查询
+    
+    axios.post(`https://smartpark.caih.com/ykt/api/thirdparty/v1/openInterface/getVisitant?page=0&size=10`,
+    {
+      timestamp:Cookies.get("timestamp57"),
+      nonce:Cookies.get("nonce57"),
+      query:Cookies.get("userId57"),
     },
-    balance(){
-      var url = window.location.href;
-      if(url.indexOf("token") >1){
-        if(localStorage.getItem("user_wt")){
-          this.$router.push({ path: "/balance"})
-        }else{
-          this.userNoAlert()
-        }
+    {
+      headers: {
+      'Content-Type': "application/json",
+      "XYTACCESSTOKEN":Cookies.get("token57")
       }
+    }
+    ).then(res => {
+       if (res?.data?.data) {
+        this.adminList3 = res.data.data.slice(0,5)
+        this.loading3 = false
+      }else{
+        this.loading3 = false
+      }
+    })
+
+    
+  },
+  mounted() {
+  },
+  methods: {
+    //上传
+    afterRead(param) {
+      this.formData = new FormData()// FormData 对象
+      this.formData.append('file', param.file)// 文件对象
+      let params = JSON.stringify({nonce:this.nonce,timestamp:this.timestamp,query:{userId:this.userId}})
+      this.formData.append('params', params)// 参数
+      this.formData.append('multipartFile', param.file)// 参数
+      axios.post(`https://smartpark.caih.com/zkxt/api/thirdparty/v1/user/edit/zkuser/picture` ,this.formData, 
+        {headers: {
+              'Content-Type': "multipart/form-data",
+              "XYTACCESSTOKEN":this.token
+          }
+        }).then(res => {
+            axios.get(`https://smartpark.caih.com/zkxt/api/thirdparty/v1/user/appLogin?name=${this.username}&pass=${this.password}`).then(res => {
+              if (res?.data?.data?.data?.cipher) {
+                  localStorage.setItem("cipher57",res?.data?.data?.data?.cipher)
+                  localStorage.setItem("classify","1")
+                  Cookies.set("password57", encrypt(this.password), { expires: 300 });
+                  Cookies.set("portrait57", res.data.data.data.user.avatarName, { expires: 300 });
+                  Cookies.set("userId57", res.data.data.data.userId, { expires: 300 });
+                  Cookies.set("token57", res.data.data.data.token, { expires: 300 });
+                  Cookies.set("nonce57", res.data.data.data.nonce, { expires: 300 });
+                  Cookies.set("timestamp57", res.data.data.data.timestamp, { expires: 300 });
+                  this.portrait = res.data.data.data.user.avatarName
+              } 
+            }).catch(err =>{
+              Toast(err.response.data.message)
+            })
+
+          }).catch(err =>{
+            Toast(err.response.data.message)
+        })
     },
-    record(){
-      var url = window.location.href;
-      if(url.indexOf("token") >1){
-        if(localStorage.getItem("user_wt")){
-          this.$router.push({ path: "/record"})
-        }else{
-          this.userNoAlert()
-        }
+    //一卡通充值
+    ykt(){
+      this.$router.push({ path: `/amount?token=${localStorage.getItem('cipher57')}&classify`})
+    },
+    //世茂
+    sm(url){
+      // https://smartpark.caih.com/h5/#/myVisitor 访客申请列表页
+      let param = {
+        userid:encrypt(Cookies.get("username57")),
+        password:Cookies.get("password57"),
+        type:"wx_yt"
       }
-      
+      //console.log( `${url}?param=${encodeURIComponent(JSON.stringify(param))}`)
+       window.location.href = `${url}?param=${encodeURIComponent(JSON.stringify(param))}`
+    },
+    //修改页
+    go(){
+      this.$router.push({ path: "/information"})
     }
   },
 };
@@ -176,55 +377,147 @@ export default {
     color: #FFF;
     padding-top: 44px;
     box-sizing: border-box;
-    .contentBox{
-      width: 100%;
-      height: auto;
-      padding: 15px 20px;
+    background-color: #F9F9F9;
+    .people{
+      width:100%;
+      padding:15px 15px 20px 15px;
       box-sizing: border-box;
-      overflow: hidden;
-      &>.van-row{
-        // height: 90px;
-        width: 100%;
-        margin-top:20px;
-        box-sizing: border-box;
-        display: flex;
-        justify-content: center;
-        flex-direction: column;
+      background-color: #F22E3C;
+      overflow-x: hidden;
+      .top{
+        margin-top:0;
         position: relative;
-        .van-image{
-          width:100%;
-        }
-        .van-col{
-          padding: 7px 0;
-        }
-        &>.van-col:nth-child(1){
-          font-size: 18px;
+        .left{
+          width:80px;
+          height:80px;
+          background-color: #fff;
+          border-radius: 50%;
+          display: inline-block;
+          margin-right:15px;
+          vertical-align: middle;
+          position: relative;
+          .upload{
+            position: absolute;
+            width:90px;
+            height:80px;
+            overflow: hidden;
+            top:0px;
+            opacity:0;
+            z-index: 10;
+          }
+          .portrait{
+            width:78px;
+            height:78px;
+            margin:1px;
+            vertical-align: middle;
+            ::v-deep .van-image__img{
+              border-radius: 50% !important;
+            }
+          }
         }
-        &>.van-col:nth-child(2){
+        .right{
+          display: inline-block;
           font-size: 14px;
-          position: absolute;
-          top:14%;
-          left:22%
+          vertical-align: top;
+          .name{
+            margin:10px 0 6px;
+          }
+          .dept{
+            margin-bottom:6px;
+          }
+          .arrowRight{
+            display: inline-block;
+            color:#fff;
+            font-size: 20px;
+            position: absolute;
+            z-index: 2;
+            right:-10px;
+            top:22%;
+          }
         }
-        &>.van-col:nth-child(3){
+        .bottom{
           font-size: 14px;
-          position: absolute;
-          top:50%;
-          left:22%
+          margin-top:10px;
+          .van-row{
+            width:50%;
+            text-align: center;
+            display: inline-block;
+            line-height: 25px;
+          }
+        }
+      }
+    }
+    .contentBox{
+      width: 100%;
+      height: auto;
+      
+      overflow: hidden;
+      .system{
+        width:100%;
+        background-color: #fff;
+        padding: 15px;
+        box-sizing: border-box;
+        .function{
+          width:20%;margin:10px 2.5%;
+          .title{
+            font-size: 12px;
+            color:#000;
+            text-align: center;
+            margin-top:6px;
+          }
         }
       }
-      &>.van-row:nth-child(1){
-        margin-top:10px;
+      .record{
+        .recordList{
+          margin-top:10px;
+        padding: 10px;
+        box-sizing: border-box;
+        background-color: #fff;
+          .listTitle{
+            font-size: 14px;
+            color:#000;
+            span{
+              width:4px;
+              height:14px;
+              display: inline-block;
+              background-color: #F22E3C;
+              margin-right:4px;
+            }
+            
+
+            
+          }
+        }
       }
-      // &>.van-row:nth-child(1){
-      //   background: url('../../assets/image/balance.png') no-repeat 100%;
-      // }
-      // &>.van-row:nth-child(2){
-      //   background: url('../../assets/image/recharge.png') no-repeat 100%;
-      // }
-      // &>.van-row:nth-child(3){
-      //   background: url('../../assets/image/record.png') no-repeat 100%;
-      // }
     }
 }
+.el-table th>.cell{
+  font-size: 11px;
+}
+
+</style>
+<style>
+.el-table td, .el-table th{
+  padding:4px 0 !important;
+}
+.el-loading-mask{
+  background-color: transparent !important;
+}
+.upload{
+  position: absolute;
+  width:100px;
+  height:50px;
+  overflow: hidden;
+  top:0px;
+  right:0;
+  opacity: 0;
+  z-index: 10;
+  background-color: blue;
+}
+.el-table .cell{
+  padding-right:0;
+}
+.tableScroll{
+  overflow-x:scroll;
+}
 </style>

+ 230 - 0
src/views/homeLS/index.vue

@@ -0,0 +1,230 @@
+<template>
+  <div class="mianBox">
+    <van-row class="headerBox">
+      <van-icon name="arrow-left" @click="$router.go(-1)" />
+      一卡通
+    </van-row>
+    <van-row class="contentBox">
+      <van-row @click="balance" v-if="user">
+        <van-image
+          :src="require('../../assets/image/balance.png')"
+        />
+        <van-col :span="24">账户余额</van-col>
+        <van-col :span="24">个人账户余额信息</van-col>
+      </van-row>
+      <van-row @click="amount">
+        <van-image
+          :src="require('../../assets/image/recharge.png')"
+        />
+        <van-col :span="24">充值</van-col>
+        <van-col :span="24">对余额进行充值</van-col>
+      </van-row>
+      <van-row @click="record" v-if="user">
+        <van-image
+          :src="require('../../assets/image/record.png')"
+        />
+        <van-col :span="24">消费记录</van-col>
+        <van-col :span="24">查看消费记录和充值记录</van-col>
+      </van-row>
+    </van-row>
+
+    <van-loading
+      size="24px"
+      v-if="loading"
+      color="#fff"
+      vertical
+      style="z-index: 999999; position: fixed; top: 40%; left: 0; right: 0"
+      >加载中...</van-loading
+    >
+    <van-overlay :show="loading" style="z-index: 100; position: fixed" />
+  </div>
+</template>
+
+<script>
+import axios from "axios";
+import { getNowTime } from "@/assets/js/dataFormate";
+import { Toast } from "vant";
+export default {
+  data() {
+    return {
+      user:undefined,
+      type:undefined,
+      loading: false,
+    };
+  },
+  created(){
+    var url = window.location.href;
+    if(url.indexOf("token") > 1){
+      //("app进入")
+      if(this.getQueryVariable("token")){
+        if(localStorage.getItem("user_wt")){
+
+        }else{
+          this.loading = true
+        }
+        this.userQuery()
+      }else{
+        //console.log("app进入")
+        Toast(this.getQueryVariable("无token传入!"))
+      }
+    }else if(this.getQueryVariable("type")){
+      //console.log("扫码游客进入")
+      localStorage.removeItem('type');
+      localStorage.removeItem('user_wt');
+      localStorage.setItem("type",this.type)
+    }else{
+      localStorage.removeItem('user_wt');
+      localStorage.removeItem('type');
+      //console.log("无user、type进入")
+    }
+  },
+  mounted() {
+  },
+  methods: {
+    //用户查询
+    userQuery(){
+      axios({//查询信息
+          method: 'get',
+          url: 'https://smartpark.caih.com/zkxt/api/thirdparty/v1/user/getZkUserByCipher?cipher=' + this.getQueryVariable("token"),
+          timeout: 10000,
+        }).then(res =>{
+          if(res.data?.data?.id){
+            axios.get(`/dxtop/staff/one?id=0001T110000000002HBL`).then(res2 => { //验证充值信息是否同步
+            //axios.get(`/dxtop/staff/one?id=${res.data.data.id}`).then(res2 => { //验证充值信息是否同步
+              if(res2.data.data){
+                //localStorage.setItem("user", res.data.data.id)
+                localStorage.setItem("user_wt", "0001T110000000002HBL")
+                localStorage.setItem("cardId", res2.data.data.cardId)
+              }else{
+                this.userNoAlert()
+              }
+              this.loading = false
+            })
+          }else if(res.data?.data?.cardId){
+            this.loading = false
+            Toast("用户卡号未绑定")
+          }else{
+            this.loading = false
+            this.userNoAlert()
+          }
+        }).catch(err =>{
+          this.loading = false
+          this.userNoAlert()
+        });
+    },
+    userNoAlert(){
+      Toast("当前账户初始流程中,请耐心等待或联系管理人员查询")
+    },
+    getQueryVariable(variable){//参数获取
+      //window.location.search.substring(1);
+      var query = window.location.hash.substring(3);
+      var vars = query.split("&");
+      for (var i=0;i<vars.length;i++) {
+        var pair = vars[i].split("=");
+        if(pair[0] == variable){
+          if(variable =="token"){
+            this.user = pair[1]
+          }else if(variable =="type"){
+            this.type = pair[1]
+          }
+          return pair[1];
+        }
+      }
+      return(false);
+    },
+    amount(){
+      var url = window.location.href;
+      if(url.indexOf("token") >1){
+        if(localStorage.getItem("user_wt")){
+          this.$router.push({ path: "/amount"})
+        }else{
+          this.userNoAlert()
+        }
+      }else{
+        this.$router.push({ path: "/amount"})
+      }
+    },
+    balance(){
+      var url = window.location.href;
+      if(url.indexOf("token") >1){
+        if(localStorage.getItem("user_wt")){
+          this.$router.push({ path: "/balance"})
+        }else{
+          this.userNoAlert()
+        }
+      }
+    },
+    record(){
+      var url = window.location.href;
+      if(url.indexOf("token") >1){
+        if(localStorage.getItem("user_wt")){
+          this.$router.push({ path: "/record"})
+        }else{
+          this.userNoAlert()
+        }
+      }
+      
+    }
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.mianBox{
+    height: 100%;
+    width: 100%;
+    color: #FFF;
+    padding-top: 44px;
+    box-sizing: border-box;
+    .contentBox{
+      width: 100%;
+      height: auto;
+      padding: 15px 20px;
+      box-sizing: border-box;
+      overflow: hidden;
+      &>.van-row{
+        // height: 90px;
+        width: 100%;
+        margin-top:20px;
+        box-sizing: border-box;
+        display: flex;
+        justify-content: center;
+        flex-direction: column;
+        position: relative;
+        .van-image{
+          width:100%;
+        }
+        .van-col{
+          padding: 7px 0;
+        }
+        &>.van-col:nth-child(1){
+          font-size: 18px;
+        }
+        &>.van-col:nth-child(2){
+          font-size: 14px;
+          position: absolute;
+          top:14%;
+          left:22%
+        }
+        &>.van-col:nth-child(3){
+          font-size: 14px;
+          position: absolute;
+          top:50%;
+          left:22%
+        }
+      }
+      &>.van-row:nth-child(1){
+        margin-top:10px;
+      }
+      // &>.van-row:nth-child(1){
+      //   background: url('../../assets/image/balance.png') no-repeat 100%;
+      // }
+      // &>.van-row:nth-child(2){
+      //   background: url('../../assets/image/recharge.png') no-repeat 100%;
+      // }
+      // &>.van-row:nth-child(3){
+      //   background: url('../../assets/image/record.png') no-repeat 100%;
+      // }
+    }
+}
+</style>

+ 10 - 7
src/views/information/index.vue

@@ -5,7 +5,7 @@
       信息修改
     </van-row>
     <van-row class="my" >
-      <van-row class="msg">
+      <!-- <van-row class="msg">
         <van-row class="left">
           头像
         </van-row>
@@ -14,7 +14,7 @@
           <van-image :src="portrait" class="portrait" style="margin-top:-4px" />
           <van-image :src="require('../../assets/image/right.png')" class="right_icon" />
         </van-row>
-      </van-row>
+      </van-row> -->
       <van-row class="msg" @click="mm">
         <van-row class="left">
           密码修改
@@ -63,7 +63,8 @@
         </div>
       </van-form>
     </van-row>
-    <van-overlay :show="loading" style="z-index: 1; position: fixed;background-color: rgba(0,0,0,0.6);" />
+    <!-- <van-overlay :show="loading" style="z-index: 1; position: fixed;background-color: rgba(0,0,0,0.6);" /> -->
+    <div v-if="loading" style="z-index: 1; position: fixed;top:0;left:0;width:100%;height:100%;background-color: rgba(0,0,0,0.6);" />
   </div>
 </template>
 <script>
@@ -71,7 +72,7 @@ import { Dialog } from 'vant';
 import { Toast } from "vant";
 import Cookies from "js-cookie";
 import { encrypt, encrypt2, decrypt } from '../../utils/jsencrypt';
-import axios2 from "axios";
+import axios from "axios";
 export default {
   data() {
     return {
@@ -89,6 +90,11 @@ export default {
     };
   },
   created(){
+    if(Cookies.get("userId57")){
+      this.userId = Cookies.get("userId57")
+    }else{
+      this.$router.push({ path: "/login"})
+    }
     this.portrait = Cookies.get("portrait57")
     if(Cookies.get("token57")){
       this.token = Cookies.get("token57")
@@ -99,9 +105,6 @@ export default {
     if(Cookies.get("timestamp57")){
       this.timestamp = Cookies.get("timestamp57")
     }
-    if(Cookies.get("userId57")){
-      this.userId = Cookies.get("userId57")
-    }
     if(Cookies.get("username57")){
       this.username = Cookies.get("username57")
     }

+ 31 - 7
src/views/login/index.vue

@@ -127,6 +127,7 @@ export default {
         this.wx_login()
       }
     }
+    
   },
   methods: {
     //获取url指定参数
@@ -182,7 +183,7 @@ export default {
     },
     login_info() {
       if(Cookies.get("openid57") && Cookies.get("username57") && Cookies.get("password57")){
-        this.$router.push({ path: "/function"})
+        this.$router.push({ path: "/home"})
       }else{
         this.$refs.loginForm.validate(valid => {
         if (valid) {
@@ -191,10 +192,29 @@ export default {
             if (res?.data?.data?.data?.cipher) {
               let data = res.data.data.data
               //人员种类(00-正式人员、01-外协单位、02-租户)
-              if(res?.data?.data?.data?.user.dmUser.type == "00"){
-                Toast('请使用"中国东信APP查看功能"')
-                // localStorage.setItem("cipher",res?.data?.data?.data?.cipher)
-                // this.$router.push({ path: "/function"})
+              if(data.user.dmUser.type == "00"){
+                //Toast('请使用"中国东信APP查看功能"')
+                  localStorage.setItem("cipher57",data.cipher)
+                  localStorage.setItem("classify","1")
+                  Cookies.set("username57", this.loginForm.username, { expires: 300 });
+                  Cookies.set("rememberMe57", this.loginForm.rememberMe, { expires: 300 });
+                  Cookies.set("password57", encrypt(this.loginForm.password), { expires: 300 });
+                  Cookies.set("portrait57", data.user.dmUser.faceid, { expires: 300 });
+                  Cookies.set("userId57", data.userId, { expires: 300 });
+                  Cookies.set("token57", data.token, { expires: 300 });
+                  Cookies.set("nonce57", data.nonce, { expires: 300 });
+                  Cookies.set("timestamp57", data.timestamp, { expires: 300 });
+                  Cookies.set("nickName57", data.user.nickName, { expires: 300 });
+                  Cookies.set("dept57", data.user.dept.name, { expires: 300 });
+                  Cookies.set("phone57", data.user.dmUser.contacts, { expires: 300 });
+                  Cookies.set("people57", 0, { expires: 300 });
+                
+                  axios.put('/dxtop/staff', {
+                    id:data.userId,
+                    openId:Cookies.get("openid57")
+                  })
+                  this.$router.push({ path: "/home"})
+
               }else if(data.user.dmUser.type == "01"){
                 if(data.user.dmUser.status == false){
                   Toast("离职人员,暂无权限")
@@ -210,13 +230,17 @@ export default {
                   Cookies.set("token57", data.token, { expires: 300 });
                   Cookies.set("nonce57", data.nonce, { expires: 300 });
                   Cookies.set("timestamp57", data.timestamp, { expires: 300 });
+                  Cookies.set("nickName57", data.user.nickName, { expires: 300 });
+                  Cookies.set("dept57", data.user.dept.name, { expires: 300 });
+                  Cookies.set("phone57", data.user.dmUser.contacts, { expires: 300 });
+                  Cookies.set("people57", 1, { expires: 300 });
                   axios.put('/dxtop/staff', {
                     id:data.userId,
                     openId:Cookies.get("openid57")
                   })
-                  this.$router.push({ path: "/function"})
+                  this.$router.push({ path: "/home"})
                 }
-              }else if(res?.data?.data?.data?.user.dmUser.type == "02"){
+              }else if(data.user.dmUser.type == "02"){
                 Toast("暂无权限")
               }else{
 

+ 37 - 25
src/views/recharge/index.vue

@@ -75,29 +75,27 @@ export default {
       document.title = '中国东信智慧园区'
     }
 
-    // 监听APP的传过来的消息
-    window.document.addEventListener('message', function (e) {
-        /*
-        * e.data 是APP返回的JSON字符串,字段:
-        * eventType 事件类型
-        * source    来源
-        * data      业务参数 - 返回数据放这里
-        * */
-        const res = JSON.parse(e.data); // 报文参数
+    // 监听
+    let uas = navigator.userAgent;
+    let _this = this
+    if(uas.indexOf('iPhone') > -1){
+      // 监听APP的传过来的消息
+      window.addEventListener('message', function (e) {
+          /*
+          * e.data 是APP返回的JSON字符串,字段:
+          * eventType 事件类型
+          * source    来源
+          * data      业务参数 - 返回数据放这里
+          * */
+          //_this.appMessage(e)
 
-        switch (res.eventType) {
-            case "WXLaunchMiniProgramReq.Resp": { // 小程序返回·
-                // Do Something ...
-                if(res.errCode == "0"){
-                  this.$router.push({ path: "/result",query: {id: 0}})
-                }else{
-                   this.$router.push({ path: "/result",query: {id: 1}})
-                }
-                break
-            }
-        }
-    })
-  
+      })
+    }else{
+      window.document.addEventListener('message', function (e) {
+          //_this.appMessage(e)
+      })
+    }
+        
   },
   created() {
     this.money = this.$route.query.money;
@@ -107,6 +105,21 @@ export default {
     }
   },
   methods: {
+    //监听app信息
+    appMessage(e){
+      const res = JSON.parse(e.data); // 报文参数
+      switch (res.eventType) {
+          case "com.launchMiniProgram": { // 小程序返回·
+              // Do Something ...
+              if(res.errCode == "0"){
+                this.$router.push({ path: "/result",query: {id: 0}})
+              }else{
+                  this.$router.push({ path: "/result",query: {id: 1}})
+              }
+              break
+          }
+      }
+    },
       judgeBrand(sUserAgent) {
         var isIphone = sUserAgent.match(/iphone/i) == "iphone";
         var isHuawei = sUserAgent.match(/huawei/i) == "huawei";
@@ -203,7 +216,7 @@ export default {
       } else if(localStorage.getItem("type")){//返回支付宝微信支付连接
         //console.log("返回支付宝微信支付链接 用于扫码url进入 带渠道参数")
           axios.post('/dxtop/order/topScanPayApi', {
-              "money": money,
+              "money": Number(money).toFixed(2),
               "topPayType": topPayType,
               "payType": payType,
               "channelId": localStorage.getItem("type"),
@@ -219,7 +232,7 @@ export default {
       }else{//返回支付宝微信支付连接
        // console.log("返回支付宝微信支付链接 用于url进入 不带渠道参数")
         axios.post('/dxtop/order/topScanPayApi', {
-            "money": money,
+            "money": Number(money).toFixed(2),
             "topPayType": topPayType,
             "payType": payType,
             "channelName":"H5链接进入",
@@ -356,7 +369,6 @@ export default {
   },
 };
 </script>
-
 <style lang="scss" scoped>
 .mianBox {
   height: 100%;