7.获取楼列表

获取楼列表

1.后端NewCenter部分:

1.在apps/users/views.py:

from django.shortcuts import render,HttpResponse
from rest_framework.views import APIView,Response
from random import choice
from .models import UserProfile,PianQu,LouMing
import datetime,json,time,hashlib
from .serializers import PianQuModelSerializer,LouMingModelSerializer,UserProfileModelSerializer
# Create your views here.

#……


class GetLouListView(APIView):
    """获取楼列表"""
    def get(self, request):
        token = request.GET.get('roottoken')
        p_id=request.GET.get('aid')
        if token:
            user = UserProfile.objects.filter(username='admin',token=token).first()
            if user:
                p_id=int(p_id)
                pq=PianQu.objects.filter(id=p_id).first()
                wgz=pq.wgz
                re_wgz=UserProfileModelSerializer(wgz)
                lou_list=LouMing.objects.filter(pianqu=pq)
                re_loulist=LouMingModelSerializer(lou_list,many=True)
                all_wgy=UserProfile.objects.filter(power=4)
                re_wgy=UserProfileModelSerializer(all_wgy,many=True)
                result = {"status": "200", "data": {'re_wgz': re_wgz.data,'re_loulist':re_loulist.data,'re_wgy':re_wgy.data}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")

2.在apps/users/urls.py:

from django.urls import path
from .views import RootLoginView,GetPianquListView,GetLouListView

urlpatterns = [
    path('rlogin/',RootLoginView.as_view()),#管理员登录
    path('getpqlist/',GetPianquListView.as_view()),#获取片区列表
    path('getloulist/',GetLouListView.as_view()),#获取楼列表
]

2.前端newpc部分

1.src/api/api.js中:

//获取楼列表
export function getloulist(params1,params2) {
    return get(host+'/users/getloulist/', {aid:params1,roottoken:params2});
}

2.在src/components/LouList.vue:

<template>
  <div id="loulist">
    
    <div class="content">
        <div class="wgz">
            <div class="left">
                <img :src="wgz.img" alt="照片">
            </div>
            <div class="right">
                <h3>权限:网格长</h3>
                <h3>姓名:{{wgz.name}}</h3>
                <h3>电话:{{wgz.mobile}}</h3>
                <p>工作范围:{{wgz.work}}</p>
            </div>
        </div>
        <div class="boxx">
            <el-card class="box-card" v-for="(item,index) in data" :key="index">
                <div class="wgy">
                    <div class="left">
                        <img :src="item.img" alt="照片">
                    </div>
                    <div class="right">
                        <h3>权限:网格员</h3>
                        <h3>姓名:{{item.name}}</h3>
                        <h3>电话:{{item.mobile}}</h3>
                        <p>工作范围:{{item.work}}</p>
                    </div>
                </div>
                <div v-for="(it,k) in item.loulist" :key="k" class="text item" @click="ToDanyuan(it.id)">
                    {{it.name}}
                </div>
            </el-card>
        </div>

    </div>
  </div>
</template>
<script>
// 引入模块
import storage from '@/storage.js';
import { host,getloulist} from "@/api/api.js";
export default {
  name: 'loulist',
  data () {
    return {
      msg:'楼列表',
      data:[
      ],
      wgz:{}
    }
  },
  methods:{
    //跳转到单元列表页
    ToDanyuan(e){
        //   console.log(e)
        e=e+""
        this.$router.push({path:'/danyuan.html?aid='+e})
    },
    
    //获取楼列表信息
    getLou(aid){
    //   console.log('获取楼列表')
      //----向后端发送数据开始----
      getloulist(aid,storage.get('roottoken')).then(res => {
          this.data=[]
          if(res.status==403){
            storage.remove('roottoken')
            this.$router.push({path:'/login.html'})
          }else{
            // console.log(res)
            res.data.re_wgz['img']=host+res.data.re_wgz['img']
            this.wgz=res.data.re_wgz
            for(var i=0;i<res.data.re_wgy.length;i++){
                res.data.re_wgy[i].loulist=[]
                res.data.re_wgy[i].img=host+res.data.re_wgy[i].img
                for(var j=0;j<res.data.re_loulist.length;j++){
                    if(res.data.re_loulist[j].wgy==res.data.re_wgy[i].id){
                        res.data.re_wgy[i].loulist.push(res.data.re_loulist[j])
                    }
                }
                if(res.data.re_wgy[i].loulist.length>0){
                    this.data.push(res.data.re_wgy[i])
                }
            }
            // console.log(this.data)
          }
      }).catch(error => {console.log(error);});
      //-----向后端发送数据结束-----
    }
  },
  mounted(){
    // console.log(this.$route.query);
    this.getLou(this.$route.query.aid)
  }
}
</script>
<style scoped>
.content{
    width: 1200px;
    margin: 0 auto;
    min-height: 500px;
    border-top:1px solid rgba(0, 0, 0, 0.6);
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    margin-top: 150px;
    
}
.wgz{
    width: 400px;
    height: 200px;
    margin: 0 auto;
    background-color:#F5F5F5;
    /* border:1px solid rgba(0, 0, 0, 0.6); */
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    margin-top: -100px;
    display: flex;

}
.wgy{
    width: 400px;
    height: 200px;
    
    background-color:#F5F5F5;
    /* border:1px solid rgba(0, 0, 0, 0.6); */
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    display: flex;
}
.left{
    width: 150px;
    height: 100%;
}
.left img{
    width: 100%;
    height: 100%;
}
.right{
    width: 250px;
    height: 100%;
    padding: 20px;
    overflow:auto  
}
  .text {
    font-size: 14px;
  }

  .item {
    padding: 15px 0;
    margin: 15px 0;
    background-color: #FFF5EE;
  }

  .box-card {
    margin-top: 30px;
    margin-bottom: 30px;
    width: 480px;
  }
.boxx{
    
    display: flex;
    justify-content:space-around;
    flex-wrap:wrap
}
</style>

 

posted @ 2020-06-12 00:17  雪落忆海  阅读(78)  评论(0编辑  收藏  举报