|
@@ -6,7 +6,10 @@
|
|
|
style="background-color: #5c8fff"
|
|
|
/>
|
|
|
<div class="page_info">
|
|
|
- <div class="info_bg">
|
|
|
+ <div
|
|
|
+ class="info_bg"
|
|
|
+ :style="{ 'margin-bottom': role == 'repair' ? 0 : '42px' }"
|
|
|
+ >
|
|
|
<van-row align="center" class="title">
|
|
|
<van-col>
|
|
|
<van-image
|
|
@@ -23,7 +26,7 @@
|
|
|
fit="contain"
|
|
|
/>
|
|
|
</van-col>
|
|
|
- <van-col @click="toPath">
|
|
|
+ <van-col @click="toPath('/userInfo', 'account')">
|
|
|
<van-image
|
|
|
:src="require('@/assets/user.svg')"
|
|
|
width="16"
|
|
@@ -34,13 +37,14 @@
|
|
|
</van-row>
|
|
|
</div>
|
|
|
<!-- 维修工没有此块功能 -->
|
|
|
- <template v-if="role != 3">
|
|
|
+ <template v-if="role && role != 'repair'">
|
|
|
<div class="info_function">
|
|
|
<div
|
|
|
class="function_item"
|
|
|
v-for="(item, index) in functionList"
|
|
|
:key="index"
|
|
|
:style="{ display: !item.role.includes(role) ? 'none' : '' }"
|
|
|
+ @click="toPath(item.path)"
|
|
|
>
|
|
|
<template v-if="item.role.includes(role)">
|
|
|
<van-image :src="item.src" width="36" height="36" fit="contain" />
|
|
@@ -49,142 +53,196 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
- <div class="info_list">
|
|
|
+ <div
|
|
|
+ class="info_list"
|
|
|
+ :style="{
|
|
|
+ 'max-height':
|
|
|
+ role == 'repair'
|
|
|
+ ? 'calc(100% - 102px - 20px)'
|
|
|
+ : 'calc(100% - 102px - 42px - 20px);',
|
|
|
+ }"
|
|
|
+ >
|
|
|
<!-- 实时巡检begin -->
|
|
|
- <van-row align="center" justify="space-between" class="sub_title">
|
|
|
- <van-col class="title">实时巡检</van-col>
|
|
|
- <van-col class="function_btn">
|
|
|
- <van-col>立即巡检</van-col>
|
|
|
- <van-image
|
|
|
- :src="require('@/assets/btn-arrow-right.svg')"
|
|
|
- width="24"
|
|
|
- height="24"
|
|
|
- fit="contain"
|
|
|
- />
|
|
|
- </van-col>
|
|
|
- </van-row>
|
|
|
- <van-row align="center" justify="space-between" class="list_item">
|
|
|
- <van-row
|
|
|
- align="center"
|
|
|
- justify="space-between"
|
|
|
- style="flex-direction: column"
|
|
|
- v-for="(item, index) in checkList"
|
|
|
- :key="item + '_' + index"
|
|
|
- >
|
|
|
- <van-col>{{ item.label }}</van-col>
|
|
|
- <v-count-up
|
|
|
- :end-val="Number(item['count'])"
|
|
|
- class="count_up"
|
|
|
- :options="item['options']"
|
|
|
- />
|
|
|
+ <template v-if="role == 'check'">
|
|
|
+ <van-row align="center" justify="space-between" class="sub_title">
|
|
|
+ <van-col class="title">实时巡检</van-col>
|
|
|
+ <van-col class="function_btn" @click="toPath('/')">
|
|
|
+ <van-col>立即巡检</van-col>
|
|
|
+ <van-image
|
|
|
+ :src="require('@/assets/btn-arrow-right.svg')"
|
|
|
+ width="24"
|
|
|
+ height="24"
|
|
|
+ fit="contain"
|
|
|
+ />
|
|
|
+ </van-col>
|
|
|
</van-row>
|
|
|
- </van-row>
|
|
|
+ <van-row align="center" justify="space-around" class="list_item">
|
|
|
+ <van-row
|
|
|
+ align="center"
|
|
|
+ justify="center"
|
|
|
+ style="flex-direction: column"
|
|
|
+ v-for="(item, index) in checkList"
|
|
|
+ :key="item + '_' + index"
|
|
|
+ >
|
|
|
+ <van-col>{{ item.label }}</van-col>
|
|
|
+ <v-count-up
|
|
|
+ :end-val="Number(item['count'])"
|
|
|
+ class="count_up"
|
|
|
+ :options="item['options']"
|
|
|
+ />
|
|
|
+ </van-row>
|
|
|
+ </van-row>
|
|
|
+ </template>
|
|
|
<!-- 实时巡检end -->
|
|
|
|
|
|
<!-- 工单待办begin -->
|
|
|
- <van-row align="center" justify="space-between" class="sub_title">
|
|
|
- <van-col class="title">工单待办</van-col>
|
|
|
- <van-col class="function_btn">
|
|
|
- <van-col>立即处理</van-col>
|
|
|
- <van-image
|
|
|
- :src="require('@/assets/btn-arrow-right.svg')"
|
|
|
- width="24"
|
|
|
- height="24"
|
|
|
- fit="contain"
|
|
|
- />
|
|
|
- </van-col>
|
|
|
- </van-row>
|
|
|
- <van-row align="center" justify="space-between" class="list_item">
|
|
|
- <van-row
|
|
|
- align="center"
|
|
|
- justify="space-between"
|
|
|
- style="flex-direction: column"
|
|
|
- v-for="(item, index) in workList"
|
|
|
- :key="item + '_' + index"
|
|
|
- >
|
|
|
- <van-col>{{ item.label }}</van-col>
|
|
|
- <v-count-up
|
|
|
- :end-val="Number(item['count'])"
|
|
|
- class="count_up"
|
|
|
- :options="item['options']"
|
|
|
- />
|
|
|
+ <template v-if="role && role != 'check'">
|
|
|
+ <van-row align="center" justify="space-between" class="sub_title">
|
|
|
+ <van-col class="title">{{
|
|
|
+ role == "admin" ? "工单待办" : "实时报修"
|
|
|
+ }}</van-col>
|
|
|
+ <van-col class="function_btn" @click="toPath('/repairList')">
|
|
|
+ <van-col>{{ role == "admin" ? "立即处理" : "立即查看" }}</van-col>
|
|
|
+ <van-image
|
|
|
+ :src="require('@/assets/btn-arrow-right.svg')"
|
|
|
+ width="24"
|
|
|
+ height="24"
|
|
|
+ fit="contain"
|
|
|
+ />
|
|
|
+ </van-col>
|
|
|
</van-row>
|
|
|
- </van-row>
|
|
|
+ <van-row align="center" justify="space-around" class="list_item">
|
|
|
+ <van-row
|
|
|
+ align="center"
|
|
|
+ justify="center"
|
|
|
+ style="flex-direction: column"
|
|
|
+ v-for="(item, index) in workList"
|
|
|
+ :key="item + '_' + index"
|
|
|
+ :style="{ display: !item.role.includes(role) ? 'none' : '' }"
|
|
|
+ >
|
|
|
+ <van-col>{{ item.label }}</van-col>
|
|
|
+ <v-count-up
|
|
|
+ :end-val="Number(item['count'])"
|
|
|
+ class="count_up"
|
|
|
+ :options="item['options']"
|
|
|
+ />
|
|
|
+ </van-row>
|
|
|
+ </van-row>
|
|
|
+ </template>
|
|
|
<!-- 工单待办end -->
|
|
|
|
|
|
<!-- 设备异常begin -->
|
|
|
- <van-row align="center" justify="space-between" class="sub_title">
|
|
|
- <van-col class="title">设备异常</van-col>
|
|
|
- <van-col class="function_btn">
|
|
|
- <van-col>立即处理</van-col>
|
|
|
- <van-image
|
|
|
- :src="require('@/assets/btn-arrow-right.svg')"
|
|
|
- width="24"
|
|
|
- height="24"
|
|
|
- fit="contain"
|
|
|
- />
|
|
|
- </van-col>
|
|
|
- </van-row>
|
|
|
- <van-row align="center" justify="space-between" class="list_item">
|
|
|
- <van-row
|
|
|
- align="center"
|
|
|
- justify="space-between"
|
|
|
- style="flex-direction: column"
|
|
|
- v-for="(item, index) in deviceErrorList"
|
|
|
- :key="item + '-' + index"
|
|
|
- >
|
|
|
- <van-col>{{ item.label }}</van-col>
|
|
|
- <v-count-up
|
|
|
- :end-val="Number(item['count'])"
|
|
|
- class="count_up"
|
|
|
- :options="item['options']"
|
|
|
- style="color: #fa5555"
|
|
|
- />
|
|
|
+ <template v-if="role && role != 'rent'">
|
|
|
+ <van-row align="center" justify="space-between" class="sub_title">
|
|
|
+ <van-col class="title">设备异常</van-col>
|
|
|
+ <van-col class="function_btn">
|
|
|
+ <van-col>立即查看</van-col>
|
|
|
+ <van-image
|
|
|
+ :src="require('@/assets/btn-arrow-right.svg')"
|
|
|
+ width="24"
|
|
|
+ height="24"
|
|
|
+ fit="contain"
|
|
|
+ />
|
|
|
+ </van-col>
|
|
|
</van-row>
|
|
|
- </van-row>
|
|
|
+ <van-row align="center" justify="space-around" class="list_item">
|
|
|
+ <van-row
|
|
|
+ align="center"
|
|
|
+ justify="center"
|
|
|
+ style="flex-direction: column"
|
|
|
+ >
|
|
|
+ <van-col>{{ abnormalNum.label }}</van-col>
|
|
|
+ <v-count-up
|
|
|
+ :end-val="Number(abnormalNum['count'])"
|
|
|
+ class="count_up"
|
|
|
+ style="color: #fa5555"
|
|
|
+ />
|
|
|
+ </van-row>
|
|
|
+ <van-row
|
|
|
+ align="center"
|
|
|
+ justify="space-between"
|
|
|
+ style="flex-direction: column"
|
|
|
+ v-for="(item, index) in deviceErrorList"
|
|
|
+ :key="item + '_' + index"
|
|
|
+ >
|
|
|
+ <van-col>{{ item.label }}</van-col>
|
|
|
+ <v-count-up :end-val="Number(item['count'])" class="count_up" />
|
|
|
+ </van-row>
|
|
|
+ </van-row>
|
|
|
+ </template>
|
|
|
<!-- 设备异常end -->
|
|
|
|
|
|
<!-- 欠费待收begin -->
|
|
|
- <van-row align="center" justify="space-between" class="sub_title">
|
|
|
- <van-col class="title">欠费待收</van-col>
|
|
|
- <van-col class="function_btn">
|
|
|
- <van-col>立即处理</van-col>
|
|
|
- <van-image
|
|
|
- :src="require('@/assets/btn-arrow-right.svg')"
|
|
|
- width="24"
|
|
|
- height="24"
|
|
|
- fit="contain"
|
|
|
- />
|
|
|
- </van-col>
|
|
|
- </van-row>
|
|
|
- <div class="list_item list_table">
|
|
|
- <van-row align="center" justify="space-between" class="table_header">
|
|
|
- <van-col span="8">欠费类型</van-col>
|
|
|
- <van-col span="8">欠费租户数</van-col>
|
|
|
- <van-col span="8">累计欠费</van-col>
|
|
|
- </van-row>
|
|
|
- <van-row
|
|
|
- align="center"
|
|
|
- justify="space-between"
|
|
|
- v-for="item in list"
|
|
|
- :key="item.id"
|
|
|
- class="table_body"
|
|
|
- >
|
|
|
- <van-col span="8" style="color: #999999; font-size: 12px">
|
|
|
- {{ `${feeType_filter(item && item.feeType)}` }}
|
|
|
- </van-col>
|
|
|
- <van-col span="8" style="color: #0c1935; font-size: 16px">
|
|
|
- {{ item.rentNum }}
|
|
|
- </van-col>
|
|
|
- <van-col span="8" style="color: #0c1935; font-size: 16px">
|
|
|
- {{ item.totalFee }}
|
|
|
+ <template v-if="role == 'admin'">
|
|
|
+ <van-row align="center" justify="space-between" class="sub_title">
|
|
|
+ <van-col class="title">欠费待收</van-col>
|
|
|
+ <van-col class="function_btn">
|
|
|
+ <van-col>立即催收</van-col>
|
|
|
+ <van-image
|
|
|
+ :src="require('@/assets/btn-arrow-right.svg')"
|
|
|
+ width="24"
|
|
|
+ height="24"
|
|
|
+ fit="contain"
|
|
|
+ />
|
|
|
</van-col>
|
|
|
</van-row>
|
|
|
- </div>
|
|
|
+ <div class="list_item list_table">
|
|
|
+ <van-row class="table_header">
|
|
|
+ <van-col span="8">欠费类型</van-col>
|
|
|
+ <van-col span="8">欠费租户数</van-col>
|
|
|
+ <van-col span="8">累计欠费(元)</van-col>
|
|
|
+ </van-row>
|
|
|
+ <van-row
|
|
|
+ v-for="(item, index) in billPaymentList"
|
|
|
+ :key="index"
|
|
|
+ class="table_body"
|
|
|
+ >
|
|
|
+ <van-col span="8" style="color: #999999; font-size: 12px">{{
|
|
|
+ item.payType
|
|
|
+ }}</van-col>
|
|
|
+ <van-col span="8">{{ item.arrearageNum }}</van-col>
|
|
|
+ <van-col span="8">{{ item.arrearageAmount }}</van-col>
|
|
|
+ </van-row>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
<!-- 欠费待收end -->
|
|
|
+
|
|
|
+ <!-- 账单待缴begin -->
|
|
|
+ <template v-if="role == 'rent'">
|
|
|
+ <van-row align="center" justify="space-between" class="sub_title">
|
|
|
+ <van-col class="title">账单待缴</van-col>
|
|
|
+ <van-col class="function_btn">
|
|
|
+ <van-col>立即缴费</van-col>
|
|
|
+ <van-image
|
|
|
+ :src="require('@/assets/btn-arrow-right.svg')"
|
|
|
+ width="24"
|
|
|
+ height="24"
|
|
|
+ fit="contain"
|
|
|
+ />
|
|
|
+ </van-col>
|
|
|
+ </van-row>
|
|
|
+ <div class="list_item list_table">
|
|
|
+ <van-row class="table_header">
|
|
|
+ <van-col span="8">缴费类型</van-col>
|
|
|
+ <van-col span="8">本期待缴金额(元)</van-col>
|
|
|
+ <van-col span="8">累计待缴金额(元)</van-col>
|
|
|
+ </van-row>
|
|
|
+ <van-row
|
|
|
+ v-for="(item, index) in billPaymentList"
|
|
|
+ :key="index"
|
|
|
+ class="table_body"
|
|
|
+ >
|
|
|
+ <van-col span="8" style="color: #999999; font-size: 12px">{{
|
|
|
+ item.payType
|
|
|
+ }}</van-col>
|
|
|
+ <van-col span="8">{{ item.arrearageNum }}</van-col>
|
|
|
+ <van-col span="8">{{ item.arrearageAmount }}</van-col>
|
|
|
+ </van-row>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <!-- 账单待缴end -->
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
<!-- 底部tabbar -->
|
|
|
<van-tabbar
|
|
|
v-model="activeTabBar"
|
|
@@ -225,7 +283,7 @@
|
|
|
</van-tabbar>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import { isEmpty } from "@/utils/index.js";
|
|
|
+import api from "../utils/api";
|
|
|
import VCountUp from "./CountUp";
|
|
|
export default {
|
|
|
components: {
|
|
@@ -233,24 +291,27 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
- role: 1, //1:admin、2:巡检人员、3:维修工、4:租户
|
|
|
+ role: "admin",
|
|
|
name: "电商园四期-B座",
|
|
|
activeTabBar: "home",
|
|
|
functionList: [
|
|
|
{
|
|
|
+ path: "/repairOnline",
|
|
|
src: require("@/assets/repair-online.svg"),
|
|
|
label: "线上报修",
|
|
|
- role: [1, 2, 4],
|
|
|
+ role: ["admin", "check", "rent"],
|
|
|
},
|
|
|
{
|
|
|
+ path: "/checkRecord",
|
|
|
src: require("@/assets/check-review.svg"),
|
|
|
label: "巡检记录",
|
|
|
- role: [1, 2],
|
|
|
+ role: ["admin", "check"],
|
|
|
},
|
|
|
{
|
|
|
+ path: "/reduceRecord",
|
|
|
src: require("@/assets/reduce-record.svg"),
|
|
|
label: "扣缴记录",
|
|
|
- role: [1, 4],
|
|
|
+ role: ["admin", "rent"],
|
|
|
},
|
|
|
],
|
|
|
checkList: [
|
|
@@ -269,83 +330,90 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
],
|
|
|
+ billPaymentList: [
|
|
|
+ { id: 1, payType: "电费", arrearageNum: 3000, arrearageAmount: 900000 },
|
|
|
+ ],
|
|
|
+ abnormalNum: { label: "异常总数", count: "" },
|
|
|
workList: [
|
|
|
{
|
|
|
label: "待指派",
|
|
|
count: 3,
|
|
|
- options: {
|
|
|
- separator: ",",
|
|
|
- },
|
|
|
+ role: ["admin"],
|
|
|
},
|
|
|
{
|
|
|
label: "待维修",
|
|
|
count: 2,
|
|
|
- options: {
|
|
|
- separator: ",",
|
|
|
- },
|
|
|
+ role: ["admin", "repair", "rent"],
|
|
|
},
|
|
|
{
|
|
|
label: "已维修",
|
|
|
- count: 1,
|
|
|
- options: {
|
|
|
- separator: ",",
|
|
|
- },
|
|
|
- },
|
|
|
- ],
|
|
|
- deviceErrorList: [
|
|
|
- {
|
|
|
- label: "异常总数",
|
|
|
- count: 7,
|
|
|
- options: {
|
|
|
- separator: ",",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- label: "电表异常",
|
|
|
- count: 5,
|
|
|
- options: {
|
|
|
- separator: ",",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- label: "水表异常",
|
|
|
- count: 2,
|
|
|
- options: {
|
|
|
- separator: ",",
|
|
|
- },
|
|
|
+ count: 0,
|
|
|
+ role: ["admin", "repair", "rent"],
|
|
|
},
|
|
|
],
|
|
|
- list: [
|
|
|
- { feeType: 1, rentNum: 23, totalFee: 12636 },
|
|
|
- { feeType: 2, rentNum: 7, totalFee: 462 },
|
|
|
- { feeType: 3, rentNum: 132, totalFee: 24634 },
|
|
|
- { feeType: 1, rentNum: 23, totalFee: 12636 },
|
|
|
- { feeType: 2, rentNum: 7, totalFee: 462 },
|
|
|
- { feeType: 3, rentNum: 132, totalFee: 24634 },
|
|
|
- ],
|
|
|
+ deviceErrorList: [],
|
|
|
+ loading: false,
|
|
|
};
|
|
|
},
|
|
|
+ created() {
|
|
|
+ this.getHomeData();
|
|
|
+ // this.role = localStorage.getItem("role");
|
|
|
+ },
|
|
|
methods: {
|
|
|
- feeType_filter(val) {
|
|
|
- if (isEmpty(val)) {
|
|
|
- return "";
|
|
|
- }
|
|
|
- if (val == 1) {
|
|
|
- return "电费";
|
|
|
- }
|
|
|
- if (val == 2) {
|
|
|
- return "水费";
|
|
|
- }
|
|
|
- if (val == 3) {
|
|
|
- return "物业相关";
|
|
|
- }
|
|
|
+ getHomeData() {
|
|
|
+ api.homedata().then((res) => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ //工单代办数据
|
|
|
+ for (let k in res.data.workOrder) {
|
|
|
+ this.workList[k - 1].count = res.data.workOrder[k];
|
|
|
+ }
|
|
|
+ //设备异常数据
|
|
|
+ let mapsArr = [];
|
|
|
+ for (let k in res.data.equip.maps) {
|
|
|
+ let json = {};
|
|
|
+ json.label = k;
|
|
|
+ json.count = res.data.equip.maps[k];
|
|
|
+ mapsArr.push(json);
|
|
|
+ }
|
|
|
+ this.deviceErrorList = mapsArr;
|
|
|
+ //赋值异常总数
|
|
|
+ this.abnormalNum.count = res.data.equip.abnormalNum;
|
|
|
+ //欠费待收数据
|
|
|
+ this.billPaymentList = res.data.billPaymentList;
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
- toPath() {
|
|
|
+ onLoad() {
|
|
|
+ setTimeout(() => {
|
|
|
+ if (this.refreshing.value) {
|
|
|
+ this.list.value = [];
|
|
|
+ this.refreshing.value = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (let i = 0; i < 10; i++) {
|
|
|
+ this.list.value.push(this.list.value.length + 1);
|
|
|
+ }
|
|
|
+ this.loading.value = false;
|
|
|
+
|
|
|
+ if (this.list.value.length >= 40) {
|
|
|
+ this.finished.value = true;
|
|
|
+ }
|
|
|
+ }, 1000);
|
|
|
+ },
|
|
|
+ onRefresh() {
|
|
|
+ // 清空列表数据
|
|
|
+ this.finished.value = false;
|
|
|
+
|
|
|
+ // 重新加载数据
|
|
|
+ // 将 loading 设置为 true,表示处于加载状态
|
|
|
+ this.loading.value = true;
|
|
|
+ this.onLoad();
|
|
|
+ },
|
|
|
+ toPath(path, val) {
|
|
|
this.$router.push({
|
|
|
- path: "/userInfo",
|
|
|
+ path: path,
|
|
|
query: {
|
|
|
- title: "账号中心",
|
|
|
- source: "account",
|
|
|
+ source: val,
|
|
|
},
|
|
|
});
|
|
|
},
|
|
@@ -397,6 +465,7 @@ export default {
|
|
|
align-items: center;
|
|
|
justify-content: space-around;
|
|
|
padding: 16px 0;
|
|
|
+ box-sizing: border-box;
|
|
|
.function_item {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
@@ -417,7 +486,7 @@ export default {
|
|
|
padding: 0 16px;
|
|
|
overflow-y: auto;
|
|
|
.sub_title {
|
|
|
- margin: 12px 0 6px 0;
|
|
|
+ margin: 16px 0 6px 0;
|
|
|
.title {
|
|
|
height: 20px;
|
|
|
font-size: 14px;
|
|
@@ -441,7 +510,7 @@ export default {
|
|
|
background: #ffffff;
|
|
|
box-shadow: 0px 0px 4px 0px rgba(51, 51, 51, 0.08);
|
|
|
border-radius: 4px;
|
|
|
- padding: 16px 30px;
|
|
|
+ padding: 16px 0;
|
|
|
.van-col {
|
|
|
height: 16px;
|
|
|
font-size: 12px;
|
|
@@ -452,14 +521,13 @@ export default {
|
|
|
.count_up {
|
|
|
margin-top: 4px;
|
|
|
height: 22px;
|
|
|
- font-size: 20px;
|
|
|
- font-weight: 500;
|
|
|
+ font-size: 16px;
|
|
|
color: #0c1935;
|
|
|
line-height: 22px;
|
|
|
}
|
|
|
}
|
|
|
.list_table {
|
|
|
- padding: 8px 16px;
|
|
|
+ padding: 8px 16px 4px 16px;
|
|
|
.table_header {
|
|
|
padding: 8px 0;
|
|
|
border-bottom: 1px solid #eeeeee;
|
|
@@ -474,6 +542,12 @@ export default {
|
|
|
.table_body {
|
|
|
padding: 12px 0;
|
|
|
border-bottom: 1px solid #eeeeee;
|
|
|
+ .van-col {
|
|
|
+ height: 16px;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #0c1935;
|
|
|
+ line-height: 16px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|