zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    springMVC和Struts2的区别
    Java并发教程(Oracle官方资料)
    Java并发教程(Oracle官方资料)
    Perl 按地区统计访问次数
    Perl 多个正则匹配
    Perl 判断字符串为空
    Java中的大小写字母相互转换(不利用Java自带的方法)
    如何利用JavaScript遍历JSON数组
    javax.servlet.JspTagException:Illegal use of -style tag without as its di
    PERL get网页
  • 原文地址:https://www.cnblogs.com/xuepangzi/p/13096978.html
Copyright © 2011-2022 走看看