【原创】项目中Vue各种功能的实现

已完成:

  • 后台的管理功能:

这里用的组件是 element-UI  ====> NavMenu  

◆首先是排版 :  

  1 <div class="manage-page fillcontain">
  2     <el-row style="height: 100%;">
  3       <el-col :span="width" style="height: 100%;background-color: #324057;overflow-y:scroll">
  4         <el-menu :default-active="defaultPath" ref='homeMenu' :default-openeds='arr' style="min-height: 100%;" text-color="#ffffff" unique-opened router @select='selectRouter' @close='closeMenu'>
  5           <el-submenu index="1">
  6             <template slot="title">
  7               <i class="el-icon-star-on"></i>
  8               <span>实时管理</span>
  9               <span class="red-dots dot-little" v-show="applyNum>0 || btext.bool || storageSpace"></span>
 10             </template>
 11             <el-submenu index="1-1">
 12               <template slot="title">
 13                 <i class="el-icon-bell"></i>
 14                 <span>实时</span>
 15               </template>
 16               <el-menu-item index="/realTimeStatus">实时状况</el-menu-item>
 17               <el-menu-item index="/baseData">基础数据</el-menu-item>
 18               <el-menu-item index="/GPURealTime">GPU实时统计</el-menu-item>
 19             </el-submenu>
 20             <el-submenu index="1-2" v-if="is_administrator">
 21               <template slot="title">
 22                 <i class="el-icon-time"></i>
 23                 <span>主机部署</span>
 24               </template>
 25               <el-menu-item index="/hostScan">主机扫描</el-menu-item>
 26             </el-submenu>
 27             <el-submenu index="1-3">
 28               <template slot="title">
 29                 <i class="el-icon-plus"></i>
 30                 <span>设备管理</span>
 31                 <span class="red-dots dot-little" v-show="btext.bool || storageSpace"></span>
 32               </template>
 33               <el-menu-item index="/deviceList">设备列表</el-menu-item>
 34               <el-menu-item index="/hostList">主机列表
 35                 <span class="red-dots " v-show="btext.bool">{{btext.num}}</span>
 36               </el-menu-item>
 37               <el-menu-item index="/modelList">模板列表</el-menu-item>
 38               <el-menu-item index="/spaceList">存储空间列表
 39                 <span class="red-dots" v-show="storageSpace>0">{{storageSpace}}</span>
 40               </el-menu-item>
 41               <el-menu-item index="/priceList">价格列表</el-menu-item>
 42               <el-menu-item index="/networkAgent">网络代理列表</el-menu-item>
 43             </el-submenu>
 44             <el-submenu index="1-4">
 45               <template slot="title">
 46                 <i class="el-icon-goods"></i>
 47                 <span>市场管理</span>
 48                 <span class="red-dots dot-little" v-show="workerOrderApply>0"></span>
 49               </template>
 50               <el-menu-item index="/serviceList">服务列表</el-menu-item>
 51               <el-menu-item index="/workOrderList">工单列表
 52                 <span class="red-dots" v-show="workerOrderApply>0">{{workerOrderApply}}</span>
 53               </el-menu-item>
 54               <el-menu-item index="/createWorkOrder">创建工单</el-menu-item>
 55               <el-menu-item index="/AISoundCode">AI 源码列表</el-menu-item>
 56             </el-submenu>
 57             <el-submenu index="1-5">
 58               <template slot="title">
 59                 <i class="el-icon-printer"></i>
 60                 <span>财务管理</span>
 61                 <span class="red-dots dot-little" v-show="billingApply>0"></span>
 62               </template>
 63               <el-menu-item index="/invoiceProcessing">发票管理
 64                 <span class="red-dots" v-show="billingApply>0">{{billingApply}}</span>
 65               </el-menu-item>
 66               <el-menu-item index="/rechargeInfo">收入管理</el-menu-item>
 67               <el-menu-item index="/expenditure">支出管理</el-menu-item>
 68               <el-menu-item index="/systemPresented">系统赠送</el-menu-item>
 69             </el-submenu>
 70             <el-submenu index="1-6">
 71               <template slot="title">
 72                 <i class="el-icon-user-solid"></i>
 73                 <span>用户管理</span>
 74               </template>
 75               <el-menu-item index="/userInfo">用户列表</el-menu-item>
 76               <el-menu-item index="/wxUserList">微信用户列表</el-menu-item>
 77             </el-submenu>
 78             <el-submenu index="1-7">
 79               <template slot="title">
 80                 <i class="el-icon-share"></i>
 81                 <span>推广管理</span>
 82                 <span class="red-dots dot-little" v-show="(ambassadorApply>0 || withdrawApply>0)"></span>
 83               </template>
 84               <el-menu-item index="/recommendApply">推广申请
 85                 <span class="red-dots" v-show="ambassadorApply>0">{{ambassadorApply}}</span>
 86               </el-menu-item>
 87               <el-menu-item index="/withdrawApply">提现申请
 88                 <span class="red-dots" v-show="withdrawApply>0">{{withdrawApply}}</span>
 89               </el-menu-item>
 90               <el-menu-item index="/recommendList">推广信息列表</el-menu-item>
 91             </el-submenu>
 92             <el-submenu index="1-8">
 93               <template slot="title">
 94                 <i class="el-icon-edit"></i>
 95                 <span>活动管理</span>
 96               </template>
 97               <el-menu-item index="/discountList">折扣列表</el-menu-item>
 98               <el-menu-item index="/activityList">活动列表</el-menu-item>
 99             </el-submenu>
100             <el-submenu index="1-9">
101               <template slot="title">
102                 <i class="el-icon-news"></i>
103                 <span>公告管理</span>
104               </template>
105               <el-menu-item index="/notice">公告列表</el-menu-item>
106             </el-submenu>
107             <el-submenu index="1-10" v-if="is_administrator">
108               <template slot="title">
109                 <i class="el-icon-setting"></i>
110                 <span>权限管理</span>
111               </template>
112               <el-menu-item index="/userRole">角色列表</el-menu-item>
113               <el-menu-item index="/permission">权限列表</el-menu-item>
114               <el-menu-item index="/role">角色管理</el-menu-item>
115             </el-submenu>
116           </el-submenu>
117           <el-submenu index="2">
118             <template slot="title">
119               <i class="el-icon-document"></i>
120               <span>统计分析</span>
121             </template>
122             <el-submenu index="2-1">
123               <template slot="title">
124                 <i class="el-icon-document"></i>
125                 <span>设备使用情况</span>
126               </template>
127               <el-menu-item index="/equipData">GPU 租用总量总计</el-menu-item>
128               <el-menu-item index="/GPUAvailability">GPU 利用率统计</el-menu-item>
129               <el-menu-item index="/GPUUsed">GPU 使用分时统计</el-menu-item>
130               <el-menu-item index="/GPURent">GPU 租用采样统计</el-menu-item>
131               <el-menu-item index="/GPUUtilizationHeap">GPU 利用率堆积图</el-menu-item>
132               <el-menu-item index="/GPURentBenefit">GPU 租用效益统计</el-menu-item>
133               <!-- <el-menu-item index="/occupancyAnalysis">租用量分析</el-menu-item>
134               <el-menu-item index="/rentalFeeAnalysis">租赁费分析</el-menu-item> -->
135               <!-- <el-menu-item index="/rentalBenefitAnalysis">租用效益分析</el-menu-item> -->
136             </el-submenu>
137             <el-submenu index="2-2">
138               <template slot="title">
139                 <i class="el-icon-document"></i>
140                 <span>用户基本情况</span>
141               </template>
142               <el-menu-item index="/userGrow">用户增长统计</el-menu-item>
143               <el-menu-item index="/userRegister">用户注册时间分布</el-menu-item>
144               <el-menu-item index="/userInformat">用户活跃量统计</el-menu-item>
145               <el-menu-item index="/useTime">使用时长统计</el-menu-item>
146               <el-menu-item index="/userAttribute">用户属性统计</el-menu-item>
147               <el-menu-item index="/visitor">用户排行榜</el-menu-item>
148               <el-menu-item index="/visitStatistics">网站访问统计</el-menu-item>
149             </el-submenu>
150             <el-submenu index="2-7">
151               <template slot="title">
152                 <i class="el-icon-pie-chart"></i>
153                 <span>用户分布统计</span>
154               </template>
155               <el-menu-item index="/provinceStatistics">省份人数分布</el-menu-item>
156               <el-menu-item index="/cityStatistics">城市人数分布</el-menu-item>
157               <el-menu-item index="/schoolStatistics">学校人数分布</el-menu-item>
158             </el-submenu>
159             <el-submenu index="2-3">
160               <template slot="title">
161                 <i class="el-icon-document"></i>
162                 <span>用户 GPU 利用率</span>
163               </template>
164               <el-menu-item index="/rankingList">用户 GPU 利用率排行榜</el-menu-item>
165             </el-submenu>
166             <el-submenu index="2-4">
167               <template slot="title">
168                 <i class="el-icon-document"></i>
169                 <span>用户消费情况</span>
170               </template>
171               <el-menu-item index="/userExpense">消费类型统计</el-menu-item>
172               <el-menu-item index="/mainframeLease">主机租赁统计</el-menu-item>
173               <el-menu-item index="/incrementService">增值服务统计</el-menu-item>
174               <el-menu-item index="/ticketsUsed">消费券使用记录</el-menu-item>
175               <el-menu-item index="/codeList">AI 源码用户购买列表</el-menu-item>
176             </el-submenu>
177             <el-submenu index="2-5">
178               <template slot="title">
179                 <i class="el-icon-document"></i>
180                 <span>用户充值情况</span>
181               </template>
182               <el-menu-item index="/userRecharge">用户充值额统计</el-menu-item>
183               <el-menu-item index="/userRechargeType">用户充值渠道统计</el-menu-item>
184             </el-submenu>
185             <el-submenu index="2-6">
186               <template slot="title">
187                 <i class="el-icon-document"></i>
188                 <span>公司收支分析</span>
189               </template>
190               <el-menu-item index="/comparative">收支对比</el-menu-item>
191               <el-menu-item index="/income">收入统计</el-menu-item>
192               <el-menu-item index="/expenditureTow">支出统计</el-menu-item>
193             </el-submenu>
194           </el-submenu>
195           <el-submenu index='3'>
196             <template slot="title">
197               <i class="el-icon-s-promotion"></i>
198               <span>直达</span>
199             </template>
200             <!-- <el-menu-item index="/nonstop">快捷方式设置</el-menu-item> -->
201             <el-menu-item v-for='(item,index) in urlList' :index="`3-${index}`" :route="{path:item.nav_url,query:{copy:1}}" :key="index">{{item.nav_name}}</el-menu-item>
202           </el-submenu>
203         </el-menu>
204       </el-col>
205       <el-col :span="(24-width)" style="height: 100%">
206         <head-top v-on:changeMenu='openAMenu'></head-top>
207         <div class="content">
208           <keep-alive>
209             <router-view></router-view>
210           </keep-alive>
211           <div class="scrollbar"></div>
212         </div>
213       </el-col>
214     </el-row>
215   </div>
排版

◆消息提示:

小红点样式

.red-dots {
    display: inline-block;
    color: white;
    vertical-align: middle;
    margin-left: 5px;
    margin-top: -2px;
    width: 22px;
    height: 22px;
    line-height: 22px;
    text-align: center;
    border-radius: 15px;
    font-size: 10px;
    background-color: rgb(206, 43, 43);
  }

如何实现小红点的判断:

1 <template slot="title">
2                 <i class="el-icon-plus"></i>
3                 <span>设备管理</span>
4                 <span class="red-dots dot-little" v-show="btext.bool || storageSpace"></span>
5 </template>

 路由跳转

1 <el-menu-item index="/userExpense">消费类型统计</el-menu-item>
2               <el-menu-item index="/mainframeLease">主机租赁统计</el-menu-item>
3               <el-menu-item index="/incrementService">增值服务统计</el-menu-item>
4               <el-menu-item index="/ticketsUsed">消费券使用记录</el-menu-item>
5               <el-menu-item index="/codeList">AI 源码用户购买列表</el-menu-item>
路由跳转

子组件向父组件传值

1 openMenu(index){
2       if(index){
3         this.$emit('changeMenu',index);  //$emit 绑定一个自定义事件event,当这个这个语句被执行到的时候,就会将参数arg传递给父组件,父组件通过@event监听并接收参数
4       }
5     }

父组件获取值

1 <head-top v-on:changeMenu='openTheMenu'></head-top>
//打开指定菜单
    openTheMenu(index) {
      this.$refs["homeMenu"].open(index);
    }

待完成 :

  • 聊天室
  • 直播 

猜你喜欢

转载自www.cnblogs.com/it-Ren/p/10968282.html