凉纪 пре 1 година
родитељ
комит
cbf66295f9

+ 1 - 11
src/components/OrgPicker/index.vue

@@ -41,10 +41,6 @@ export default {
       type: Array,
       default: ()=>[],
     },
-    show:{
-      type:Boolean,
-      default:false,
-    },
     //标题
     title:{
       type: String,
@@ -78,12 +74,6 @@ export default {
   computed:{
     ...mapGetters(['commonTree']),
   },
-  watch:{
-    show(){
-      this.showPicker = this.show;
-    },
-
-  },
   created() {
     this.$store.dispatch('getCommonTree')
   },
@@ -93,7 +83,6 @@ export default {
       this.showPicker = false;
     },
     onSearchCancel() {
-      //this.selected = this.value;
       this.$emit("cancel");
       this.showPicker = false;
     },
@@ -103,6 +92,7 @@ export default {
         return;
       }
       this.$emit("confirm", this.selected);
+      this.showPicker = false;
     },
   },
 }

+ 22 - 12
src/components/dateCell/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="date-cell" >
-    <van-cell v-if="disabled" :required="required" :title="title" :label="label" />
-    <van-cell v-else :title="title" :required="required" :label="label" @click="clickItem">
+    <van-cell v-if="disabled" :required="required" :title="title"  :value="isRow?label:''" :label="!isRow?label:''" />
+    <van-cell v-else :title="title" :required="required" :value="isRow?label:''" :label="!isRow?label:''"  @click="clickItem">
       <template #right-icon>
         <van-icon name="notes-o" class="date-icon"/>
       </template>
@@ -47,6 +47,11 @@ export default {
       type: String,
       default: 'date',
     },
+    //单行显示或者多行显示
+    isRow:{
+      type: Boolean,
+      default: false,
+    },
     required:{
       type: [Boolean,String],
       default: false,
@@ -108,16 +113,21 @@ export default {
 </script>
 
 <style lang="scss">
-.date-icon{
-  font-weight: 500;
-  width: 42px;
-  height: 6.4vw;
-  color: #008cd6;
-  font-size: 42px;
-  line-height: 6.4vw;
-}
-.van-cell__label{
-  margin: 0;
+.date-cell{
+  .date-icon{
+    font-weight: 500;
+    width: 42px;
+    height: 6.4vw;
+    color: #008cd6;
+    font-size: 42px;
+    line-height: 6.4vw;
+  }
+  .van-cell__label{
+    margin: 0;
+  }
+  .van-cell__value{
+    padding-right: 10px;
+  }
 }
 </style>
 <style lang="scss" scoped>

+ 4 - 4
src/components/selectCell/index.vue

@@ -5,15 +5,15 @@
       :required="required"
       :border="border"
       :title="title"
-      :value="isRow?label:''"
-      :label="!isRow?label:''" />
+      :value="isRow?label:null"
+      :label="!isRow?label:null" />
     <van-cell
       v-else
       :required="required"
       :title="title"
       :border="border"
-      :value="isRow?label:''"
-      :label="!isRow?label:''"
+      :value="isRow?label:null"
+      :label="!isRow?label:null"
       is-link
       @click="clickItem"/>
     <van-popup v-model="showPicker" round lazy-render position="bottom" :close-on-popstate="true" get-container="#app">

+ 7 - 1
src/router/router.config.js

@@ -269,6 +269,12 @@ export let routers = [
         meta: { title: '新增申请', keepAlive: false ,hideTabBar:true}
       },
       {
+        path: '/visitDetail',
+        name: 'visitDetail',
+        component: () => import('@/views/menu/visitRegister/detail.vue'),
+        meta: { title: '申请详情', keepAlive: false ,hideTabBar:true}
+      },
+      {
         path: '/visitCheck',
         name: 'visitCheck',
         component: () => import('@/views/menu/visitCheck/index.vue'),
@@ -284,7 +290,7 @@ export let routers = [
         path: '/visitRecord',
         name: 'visitRecord',
         component: () => import('@/views/menu/visitRecord/index.vue'),
-        meta: { title: '出入人员', keepAlive: false ,hideTabBar:false}
+        meta: { title: '出入登记', keepAlive: false ,hideTabBar:false}
       },
       {
         path: '/visitRecordDetail',

+ 14 - 9
src/views/menu/NFCmanage/index.vue

@@ -31,7 +31,7 @@
     </div>
 <!--    <van-popup v-model="showPopup" :close-on-click-overlay="false"></van-popup>-->
     <org-picker
-      :show="showPicker"
+      ref="orgPicker"
       @cancel="cancelPicker"
       @confirm="changeOrg">
     </org-picker>
@@ -95,7 +95,7 @@ export default {
   methods:{
     //自定义nfc回调
     openNFCScanCallBack(nfcStr){
-      //alert(data)
+      //nfcStr = '{"content":"123456789"}';
       let nfcCode;
       try{
         let nfc = JSON.parse(nfcStr);
@@ -103,6 +103,7 @@ export default {
       }catch (e) {
         nfcCode = nfcStr.content;
       }
+      //alert(nfcCode)
       this.nfcMsg = '读取中...';
       if(!nfcCode) {
         this.$toast('扫描失败,请重试');
@@ -112,11 +113,17 @@ export default {
       }
       this.$toast('扫描成功');
       this.nfcInfo = {};
-      this.formData = {};
+      this.formData = {
+        labelName:'',
+        orgName:'',
+        code:null,
+        orgId: null,
+        areaId:null,
+        checkId:null,
+      };
+      this.areaList = [];
+      this.pointList = [];
       nfcDetails(nfcCode).then(res=>{
-        //console.log(res,'res')
-        //alert(JSON.stringify(res))
-        //this.showPopup = false;
         setTimeout(()=>{this.nfcMsg = '将NFC贴至手机背部'},500);
         if(res.data){
           this.nfcInfo = res.data;
@@ -215,12 +222,10 @@ export default {
       return true;
     },
     clickItem(){
-      console.log(111)
-      this.showPicker = true;
+      this.$refs.orgPicker.showPicker = true;
     },
     useNFC(){
       let system = this.isAndroidOrIos();
-      console.log(system,'system')
       if(system === 3){
         this.$toast('当前环境不支持');
         return

+ 1 - 1
src/views/menu/securityCheckRegister/index.vue

@@ -20,7 +20,7 @@
 <!--            </van-row>-->
 <!--          </div>-->
          <div>
-           <date-cell title="日期"  v-model="query.taskTime" date-type="date" @change="refreshData"/>
+           <date-cell title="日期" :isRow="true" v-model="query.taskTime" date-type="date" @change="refreshData"/>
 <!--           <search-select-cell-->
 <!--            class="van-hairline&#45;&#45;right"-->
 <!--            title="检查角色"-->

+ 3 - 3
src/views/menu/visitCheck/api.js

@@ -1,10 +1,10 @@
 import request from "@/utils/request";
 //获取列表
-export function dataList(data) {
+export function dataList(params) {
   return request({
-    url: "/core/question/list",
+    url: "/core/letter/approve/list",
     method: "get",
-    params: data,
+    params,
   });
 }
 

+ 16 - 11
src/views/menu/visitCheck/index.vue

@@ -2,17 +2,24 @@
   <div class="visitCheck">
     <NavBar />
     <div class="page-container">
-      <van-search v-model="query.searchKey" class="van-hairline--bottom" placeholder="请输入搜索关键词" />
+      <van-search v-model="query.reasons" class="van-hairline--bottom" placeholder="请输入来访事由"  @change="refreshData"/>
       <div class="search-flex">
         <select-cell
           style="border-right: 1px solid #f5f5f5;"
           title="出入类型"
           :isAll="true"
           :border="false"
-          v-model="query.confirmStatus"
-          :data-list="getDictItem('question_confirm_status')"
+          v-model="query.type"
+          :data-list="getDictItem('out_in_type')"
+          @change="refreshData"/>
+        <select-cell
+          style="border-right: 1px solid #f5f5f5;"
+          title="审批状态"
+          :isAll="true"
+          :border="false"
+          v-model="query.approveStatus"
+          :data-list="getDictItem('out_in_approve_status')"
           @change="refreshData"/>
-        <date-cell title="日期"  v-model="query.taskTime" date-type="date" @change="refreshData"/>
       </div>
       <div class="card-list">
         <Scroll
@@ -69,9 +76,9 @@ export default {
   data() {
     return {
       query:{
-        taskTime: `${formatDate(new Date(),'YYYY-MM-DD')}`,
-        orgId:null,
-        confirmStatus:null,
+        reasons:'',
+        approveStatus:null,
+        type:null,
         pageSize:10,
         pageNum:1,
       },
@@ -96,7 +103,7 @@ export default {
       ],
       dataList:[],
       pullup:false,
-      dicts:['question_confirm_status','question_reform_status']
+      dicts:['out_in_approve_status','out_in_type']
     }
   },
   mounted() {
@@ -121,13 +128,10 @@ export default {
     },
     //初始化数据
     initData(){
-      this.query.orgId = this.orgId;
-      this.query.submitTime = formatDate(new Date(),'YYYY-MM-DD');
       this.getDataList();
     },
     //获取数据列表
     getDataList(){
-      if(!this.query.orgId) return this.$toast('请选择机构');
       if( this.dataList.length !== 0 && this.dataList.length >= this.total) {
         this.pullup = false;
         this.$toast('已加载完毕');
@@ -135,6 +139,7 @@ export default {
       }
       let data = {
         ...this.query,
+        orgId:this.orgId,
       }
       dataList(data).then(res=>{
         if(res.total === '0'){

+ 1 - 1
src/views/menu/visitRecord/index.vue

@@ -2,7 +2,7 @@
   <div class="visitRecord">
     <NavBar />
     <div class="page-container">
-      <van-search v-model="query.searchKey" class="van-hairline--bottom" placeholder="请输入搜索关键词" />
+      <van-search v-model="query.searchKey" class="van-hairline--bottom" placeholder="请输入人员姓名" />
       <div class="search-flex">
         <select-cell
           style="border-right: 1px solid #f5f5f5;"

+ 63 - 30
src/views/menu/visitRegister/add.vue

@@ -11,8 +11,9 @@
           <div class="panel-box">
             <select-cell
               title="来访类型"
+              :prop="prop"
               v-model="visitType"
-              :data-list="getDictItem('out_in_type')"
+              :data-list="typeList"
               required>
             </select-cell>
             <van-cell
@@ -159,7 +160,6 @@
 
 <script>
 
-import {defineComponent} from "vue";
 import SelectCell from "@/components/selectCell/index.vue";
 import DateCell from "@/components/dateCell/index.vue";
 import Uploader from "@/components/upload/gxuploader.vue";
@@ -170,11 +170,11 @@ import {mapGetters} from "vuex";
 import {imgUrl} from "@/utils";
 import { ImagePreview } from 'vant'
 import {visitAdd} from './api'
-export default defineComponent({
+export default {
   components: {SelectCell,Uploader,DateCell,CalendarPicker,OrgPicker},
   data(){
     return {
-      visitType:'1',
+      visitType:2,
       checked:false,
       visitInfo: {},
       formData:{
@@ -195,30 +195,42 @@ export default defineComponent({
       pList:[],
       showPicker:false,
       openCalendar:false,
-      dicts:['out_in_type']
+      prop:{
+        label:'name',
+        value:'value'
+      },
+      typeList:[
+        {
+          name:'临时出入',
+          value:2
+        },
+        {
+          name:'紧急出入',
+          value:3
+        }
+      ],
     }
   },
   computed:{
-    ...mapGetters(['orgId','id','dictionary'])
+    ...mapGetters(['orgId','id'])
   },
   methods:{
     imgUrl,formatDate,
     onSubmit(){
-      console.log(this.formData,'this.formData')
-      if(this.visitType ==  '1'){
-        if(!this.formData.receptionOrgIds){
-          this.$toast('请选择来访机构');
-          return;
-        }
-        if(!this.formData.letterNo){
-          this.$toast('请输入介绍信编号');
-          return;
-        }
-        if(!this.formData.letterFile){
-          this.$toast('请上传介绍信');
-          return;
-        }
-      }
+      // if(this.visitType ==  '1'){
+      //   if(!this.formData.receptionOrgIds){
+      //     this.$toast('请选择来访机构');
+      //     return;
+      //   }
+      //   if(!this.formData.letterNo){
+      //     this.$toast('请输入介绍信编号');
+      //     return;
+      //   }
+      //   if(!this.formData.letterFile){
+      //     this.$toast('请上传介绍信');
+      //     return;
+      //   }
+      // }
       if(this.visitType ==  '2'){
         if(!this.formData.letterNo){
           this.$toast('请输入介绍信编号');
@@ -228,11 +240,8 @@ export default defineComponent({
           this.$toast('请上传介绍信');
           return;
         }
-        this.receptionOrgIds = [this.orgId];
-      }
-      if(this.visitType ==  '3'){
-        this.receptionOrgIds = [this.orgId];
       }
+
       if(!this.formData.reasons){
         this.$toast('请输入来访事由');
         return;
@@ -245,10 +254,26 @@ export default defineComponent({
         this.$toast('请添加人员信息');
         return;
       }
+      this.formData.status = 1;
+      this.formData.type = this.visitType;
+      this.formData.receptionOrgIds = [this.orgId];
       this.formData.userInfos = this.pList;
-      console.log(this.formData,'formData');
-      alert(JSON.stringify(this.formData))
-      visitAdd(this.formData).then(res=>{
+      let data = this.formData;
+      alert(JSON.stringify(data))
+      if(this.visitType ==  '2'){
+        data.letterFile = this.formData.letterFile.map(v=>{
+          return JSON.stringify(v);
+        })
+      }
+      data.userInfos = this.pList.map(user=>{
+        let urlArr = user.imgFile.map(v=>{
+          return v.imgPath
+        })
+        user.imgFile = urlArr.join(',');
+        return user
+      })
+      alert(JSON.stringify(data))
+      visitAdd(data).then(res=>{
         this.$toast.success('提交成功');
         this.$router.push({
           path:'/visitRegister',
@@ -278,11 +303,19 @@ export default defineComponent({
       this.pList.splice(i,1);
     },
     onAdd(){
-      //this.personnel.imgFile = 'askdjakldjklasdlaldafgd'
+      // this.personnel.imgFile = [{
+      //   url:'askjdkajsdjajkdsa',
+      //   imgPath:'asjkdklaslkdasdlasld',
+      //   name:'asdasdasd'
+      // }]
       if(!this.personnel.userName || !this.personnel.idCard || !this.personnel.companyName || !this.personnel.imgFile){
         this.$toast('请完善人员信息');
         return;
       }
+      if(this.personnel.imgFile.length < 2) {
+        this.$toast('请上传证件照正反面');
+        return;
+      }
       let strObj = JSON.parse(JSON.stringify(this.personnel));
       this.pList.push(strObj);
       this.personnel = {
@@ -309,7 +342,7 @@ export default defineComponent({
       ImagePreview(arr)
     },
   }
-})
+}
 </script>
 <style lang="scss">
 .visit-add{

+ 2 - 2
src/views/menu/visitRegister/api.js

@@ -18,9 +18,9 @@ export function visitAdd(data) {
 }
 
 //获取详情
-export function taskDetails(orgId){
+export function visitDetails(id){
   return request({
-    url: "/core/question/info/"+orgId,
+    url: "/core/letter/"+id,
     method: "get",
   });
 }

+ 262 - 0
src/views/menu/visitRegister/detail.vue

@@ -0,0 +1,262 @@
+<template>
+  <div class="intro-add">
+    <nav-bar></nav-bar>
+    <div class="page-container">
+      <!--   基本信息   -->
+      <div class="card">
+        <van-panel title="来访信息" >
+          <template #header>
+            <van-cell title="状态">
+              <template #extra>
+                  <span :style="{color:getState(getDictLabel(visitInfo.status,'out_in_approve_status'))}">
+                    {{getDictLabel(visitInfo.status,'out_in_approve_status') }}
+                  </span>
+              </template>
+            </van-cell>
+          </template>
+          <div class="panel-box">
+            <van-cell title="来访类型" :value="getDictLabel(visitInfo.type,'out_in_type')"></van-cell>
+            <van-cell title="到访机构" :value="visitInfo.orgName"></van-cell>
+            <van-cell title="来访事由" :value="visitInfo.reasons"></van-cell>
+            <van-cell title="访问日期" :value="visitInfo.startTimeStr"></van-cell>
+            <van-cell title="结束日期" :value="visitInfo.endTimeStr"></van-cell>
+            <div class="upload-box">
+              <span>介绍信文件</span>
+              <van-cell v-if="visitInfo.letterFile">
+                <div
+                  class="nfc-img van-hairline--surround"
+                  v-for="(v, i) in visitInfo.letterFile"
+                  :key="v.imgPath"
+                  @click="preView(v.imgPath)">
+                  <img :src="imgUrl(v.imgPath)" alt="" />
+                </div>
+                <!--                      <img class="nfc-img" v-for="v in item.imgData" :src="imgUrl(v.imgPath)" alt="" :key="v.id">-->
+              </van-cell>
+            </div>
+            <van-cell title="备注信息" :value="visitInfo.description"></van-cell>
+          </div>
+        </van-panel>
+      </div>
+
+      <!--  人员列表  -->
+      <div class="card" v-for="(v,i) in userInfos" :key="i">
+          <div class="goods-card">
+           <div class="card-img-box" v-if="v.imgFile && v.imgFile.length > 0" @click="preView(v.imgFile)">
+             <img :src="imgUrl(v.imgFile[0])" alt="">
+           </div>
+           <div class="card-cell-box">
+            <van-cell title="出入人员" :value="v.userName"></van-cell>
+            <van-cell title="身份证" :value="v.idCard"></van-cell>
+            <van-cell title="单位" :value="v.companyName"></van-cell>
+           </div>
+          </div>
+      </div>
+
+    </div>
+  </div>
+</template>
+
+<script>
+
+import DateCell from "@/components/dateCell/index.vue";
+import Uploader from "@/components/upload/gxuploader.vue";
+import {formatDate} from "@/filters/filter";
+import {mapGetters} from "vuex";
+import {imgUrl} from "@/utils";
+import { ImagePreview } from 'vant'
+import {visitDetails} from './api'
+export default {
+  components: {Uploader, DateCell},
+  data(){
+    return {
+      visitId:null,
+      activeNames:['1'],
+      visitInfo: {},
+      userInfos:[],
+      reformData: {
+        reformDate: null,
+        description: null,
+        images: null,
+      },
+      dicts:['out_in_approve_status','out_in_type']
+    }
+  },
+  computed:{
+    ...mapGetters(['orgId','id','dictionary'])
+  },
+  mounted(){
+    this.visitId = this.$route.query.id
+    this.getInfo();
+  },
+  methods:{
+    imgUrl,formatDate,
+    getState(state){
+      console.log(state,'state')
+      switch (state){
+        case '待审批':
+          return '#008cd6';
+        case '不同意':
+          return '#bc9f71';
+        case '同意':
+          return '#009240';
+        case '已逾期':
+          return '#D7000F';
+      }
+    },
+    getInfo(){
+      visitDetails(this.visitId).then(res=>{
+        this.visitInfo = res.data;
+        if(res.data.letterFile){
+          let imgArr = res.data.letterFile.map(v=>{
+            return JSON.parse(v)
+          })
+          this.visitInfo.letterFile = imgArr;
+        }
+        let users = res.data.userInfos.map(v=>{
+           v.imgFile = v.imgFile.split(',');
+           return v
+        });
+        console.log(users,'users')
+        this.userInfos = users;
+      })
+    },
+    preView(val) {
+      ImagePreview(val);
+    },
+  }
+}
+</script>
+<style lang="scss">
+.intro-add{
+  .van-card{
+    padding: 20px;
+  }
+  .card-cell-box{
+    width: 70%;
+    .van-cell{
+      padding: 10px;
+      &::after{
+        left:10px;
+        right:10px;
+      }
+    }
+    .van-cell__title{
+      flex:.25;
+    }
+    .van-cell__value{
+     flex:.75;
+    }
+  }
+}
+</style>
+<style scoped lang="scss">
+.intro-add{
+  height: 100%;
+  overflow: hidden;
+}
+.page-container{
+  height: calc(100vh - 94px);
+  overflow: auto;
+  padding: 20px;
+
+}
+.flex-box{
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  >span{
+    margin: 0 20px;
+  }
+}
+.card{
+  margin-bottom: 20px;
+  box-shadow: 0 10px 10px #eaeaea;
+}
+.card:last-child{
+  margin-bottom: 0;
+}
+.panel-box{
+  -padding:0 20px;
+}
+.panel-box-item{
+  height: 36px;
+  line-height: 36px;
+}
+.item-label{
+  width: 100%;
+  display: flex;
+  justify-content: right;
+  align-items: center;
+}
+.item-value{
+  width: 100%;
+  display: flex;
+  justify-content: left;
+  align-items: center;
+}
+.upload-box{
+  padding: 20px 30px;
+  display: flex;
+  >span{
+    display: inline-block;
+    height: 160px;
+    width: 200px;
+    line-height: 160px;
+    font-size: 28px;
+    color:#999;
+    >i{
+      font-style: normal;
+      color: #ee0a24;
+    }
+  }
+}
+.goods-card{
+  width: 100%;
+  display: flex;
+  align-items: center;
+  padding: 10px;
+  background-color: #fff;
+  .card-img-box{
+    width: 200px;
+    height: 200px;
+    margin-right: 10px;
+    >img{
+      width: 100%;
+      height: 100%;
+      object-fit: cover;
+      border-radius: 10px;
+    }
+  }
+}
+.big-btn-box{
+  padding-bottom: 20px;
+}
+.nfc-img {
+  display: inline-block;
+  width: 140px;
+  height: 140px;
+  margin: 0 10px;
+  position: relative;
+  > img {
+    width: 100%;
+    height: 100%;
+    border: none;
+  }
+  > span {
+    position: absolute;
+    padding: 0 10px;
+    bottom: 0;
+    left: 0;
+    display: block;
+    width: 100%;
+    background-color: rgba(0, 0, 0, 0.2);
+    color: #eaeaea;
+    font-size: 20px;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    line-height: 30px;
+    height: 30px;
+  }
+}
+</style>

+ 46 - 8
src/views/menu/visitRegister/index.vue

@@ -2,15 +2,16 @@
   <div class="visitRegister">
     <NavBar />
     <div class="page-container">
-      <van-search v-model="query.reasons" class="van-hairline--bottom" placeholder="请输入搜索关键词" />
+      <van-search v-model="query.reasons" class="van-hairline--bottom" placeholder="请输入来访事由" @change="refreshData" />
       <select-cell
         style="border-right: 1px solid #f5f5f5;"
         title="出入类型"
         :isAll="true"
         :border="false"
         :isRow="true"
+        :prop="prop"
         v-model="query.type"
-        :data-list="getDictItem('out_in_type')"
+        :data-list="typeList"
         @change="refreshData"/>
       <div class="card-list">
         <Scroll
@@ -20,10 +21,18 @@
           :pullup="pullup">
           <empty  v-if="!dataList || dataList.length === 0" />
           <card v-else v-for="(v,i) in dataList" :key="v.id">
-              <van-cell :title="getDictLabel(v.type,'out_in_type')" @click.stop="clickItem(v.id,'detail')">
+              <van-cell
+                :title-style="{color:v.type == 3?'#D7000F':''}"
+                :title="getDictLabel(v.type,'out_in_type')"
+                @click.stop="clickItem(v.id,'detail')">
+                <template #extra>
+                  <span :style="{color:getState(getDictLabel(v.status,'out_in_approve_status'))}">
+                    {{getDictLabel(v.status,'out_in_approve_status') }}
+                  </span>
+                </template>
                 <template #label>
                   <div class="info-box">
-                    <div class="info-item">
+                    <div v-if="v.type == 2" class="info-item">
                       <div class="item-label">介绍信编号:</div>
                       <div class="item-value"> {{v.letterNo}}</div>
                     </div>
@@ -34,7 +43,7 @@
                     <div class="info-item">
                       <div class="item-label">来访事由:</div>
                       <div class="item-value">
-                          {{v.description}}
+                          {{v.reasons}}
                       </div>
                     </div>
                   </div>
@@ -79,6 +88,20 @@ export default {
       },
       dataList:[],
       pullup:false,
+      prop:{
+        label:'name',
+        value:'value'
+      },
+      typeList:[
+        {
+          name:'临时出入',
+          value:2
+        },
+        {
+          name:'紧急出入',
+          value:3
+        }
+      ],
       dicts:['out_in_approve_status','out_in_type']
     }
   },
@@ -90,6 +113,18 @@ export default {
   },
   methods: {
     formatDate,
+    getState(state){
+      switch (state){
+        case '待审批':
+          return '#008cd6';
+        case '不同意':
+          return '#bc9f71';
+        case '同意':
+          return '#009240';
+        case '已逾期':
+          return '#D7000F';
+      }
+    },
     refreshData(){
       this.pullup = true;
       this.query.pageNum = 1;
@@ -132,10 +167,10 @@ export default {
         query:{type:'add'}
       });
     },
-    clickItem(id,type){
+    clickItem(id){
       this.$router.push({
-        path:'/visitAdd',
-        query: {id,type}
+        path:'/visitDetail',
+        query: {id}
       });
     }
   }
@@ -206,12 +241,15 @@ export default {
 .info-item{
   display: flex;
   justify-content: space-between;
+  font-size: 26px;
   .item-label{
     flex:.25;
     text-align: left;
+    color:#333;
   }
   .item-value{
     flex:.75;
+    color:#666;
     min-height: 50px;
     line-height: 36px;
     max-height: 250px;