|
@ -1,9 +1,9 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="app-container"> |
|
|
<div class="app-container"> |
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
|
|
<el-form-item label="登录账号" prop="name"> |
|
|
<el-form-item label="登录账号" prop="account"> |
|
|
<el-input |
|
|
<el-input |
|
|
v-model="queryParams.name" |
|
|
v-model="queryParams.account" |
|
|
placeholder="请输入登录账号" |
|
|
placeholder="请输入登录账号" |
|
|
clearable |
|
|
clearable |
|
|
@keyup.enter.native="handleQuery" |
|
|
@keyup.enter.native="handleQuery" |
|
@ -91,13 +91,38 @@ |
|
|
|
|
|
|
|
|
<el-table v-loading="loading" :data="userRegisterList" @selection-change="handleSelectionChange"> |
|
|
<el-table v-loading="loading" :data="userRegisterList" @selection-change="handleSelectionChange"> |
|
|
<el-table-column type="selection" width="55" align="center" /> |
|
|
<el-table-column type="selection" width="55" align="center" /> |
|
|
<el-table-column label="登录账号" align="center" prop="name" /> |
|
|
<el-table-column label="登录账号" align="center" prop="account" /> |
|
|
<el-table-column label="电话" align="center" prop="phone" /> |
|
|
<el-table-column label="电话" align="center" prop="phone" /> |
|
|
<el-table-column label="用户类型" align="center" prop="userType" /> |
|
|
<el-table-column label="用户状态" align="center" prop="status" > |
|
|
<el-table-column label="用户级别" align="center" prop="userLevel" /> |
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<el-tag type="primary" v-if="scope.row.status == '0'">发起</el-tag> |
|
|
|
|
|
<el-tag type="warning" v-if="scope.row.status == '1'">拒绝</el-tag> |
|
|
|
|
|
<el-tag type="success" v-if="scope.row.status == '2'">通过</el-tag> |
|
|
|
|
|
<el-tag type="danger" v-if="scope.row.status == '3'">冻结</el-tag> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column label="用户类型" align="center" prop="userType" > |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<span v-if="scope.row.userType == '0'">普通用户</span> |
|
|
|
|
|
<span v-if="scope.row.userType == '1'">商企用户</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column label="用户级别" align="center" prop="userLevel" > |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<span v-if="scope.row.userLevel == '0'">普通用户</span> |
|
|
|
|
|
<span v-if="scope.row.userLevel == '1'">VIP用户</span> |
|
|
|
|
|
<span v-if="scope.row.userLevel == '2'">商企用户</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width"> |
|
|
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<el-button |
|
|
<el-button v-if="(scope.row.name == null && scope.row.userType == '0') || (scope.row.address == null && scope.row.userType == '1')" |
|
|
|
|
|
size="mini" |
|
|
|
|
|
type="text" |
|
|
|
|
|
icon="el-icon-edit" |
|
|
|
|
|
@click="handleAddInfo(scope.row)" |
|
|
|
|
|
>补充</el-button> |
|
|
|
|
|
<el-button v-if="(scope.row.name != null && scope.row.userType == '0') || (scope.row.address != null && scope.row.userType == '1')" |
|
|
size="mini" |
|
|
size="mini" |
|
|
type="text" |
|
|
type="text" |
|
|
icon="el-icon-view" |
|
|
icon="el-icon-view" |
|
@ -132,8 +157,8 @@ |
|
|
<!-- 添加或修改用户注册对话框 --> |
|
|
<!-- 添加或修改用户注册对话框 --> |
|
|
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> |
|
|
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> |
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="auto"> |
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="auto"> |
|
|
<el-form-item label="登录账号" prop="name"> |
|
|
<el-form-item label="登录账号" prop="account"> |
|
|
<el-input v-model="form.name" placeholder="请输入名字" /> |
|
|
<el-input v-model="form.account" placeholder="请输入名字" /> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="联系电话" prop="phone"> |
|
|
<el-form-item label="联系电话" prop="phone"> |
|
|
<el-input v-model="form.phone" placeholder="请输入电话" /> |
|
|
<el-input v-model="form.phone" placeholder="请输入电话" /> |
|
@ -171,20 +196,134 @@ |
|
|
</div> |
|
|
</div> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<!-- 用户注册详情 --> |
|
|
<!--添加用户注册信息弹窗--> |
|
|
|
|
|
<el-dialog :title="title" :visible.sync="openInfo" width="700px" append-to-body> |
|
|
|
|
|
<el-form ref="formInfo" :model="formInfo" :rules="rules" label-width="auto"> |
|
|
|
|
|
<el-form-item :label="$t('business.userInfo.name')" prop="name"> |
|
|
|
|
|
<el-input v-model="formInfo.name" :placeholder="$t('business.userInfo.namePlaceholder')" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label="$t('business.userInfo.gender')" prop="gender"> |
|
|
|
|
|
<el-select v-model="formInfo.gender" placeholder="请选择性别"> |
|
|
|
|
|
<el-option label="男" value="1"></el-option> |
|
|
|
|
|
<el-option label="女" value="0"></el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
<!-- <el-input v-model="form.gender" :placeholder="$t('business.userInfo.genderPlaceholder')" />--> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label="$t('business.userInfo.idCard')" prop="idCard"> |
|
|
|
|
|
<el-input v-model="formInfo.idCard" :placeholder="$t('business.userInfo.idCardPlaceholder')" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label="$t('business.userInfo.phone')" prop="phone"> |
|
|
|
|
|
<el-input v-model="formInfo.phone" :placeholder="$t('business.userInfo.phonePlaceholder')" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label="$t('business.userInfo.age')" prop="age"> |
|
|
|
|
|
<el-input v-model="formInfo.age" :placeholder="$t('business.userInfo.agePlaceholder')" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label="$t('business.userInfo.addr')" prop="addr"> |
|
|
|
|
|
<el-input v-model="formInfo.addr" :placeholder="$t('business.userInfo.addrPlaceholder')" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
|
|
<el-button :loading="buttonLoading" type="primary" @click="submitFormInfo">{{ $t('common.confirm') }}</el-button> |
|
|
|
|
|
<el-button @click="cancel">{{ $t('common.cancel') }}</el-button> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 添加或修改用户信息-商户扩展对话框 --> |
|
|
|
|
|
<el-dialog :title="title" :visible.sync="openInfoBus" width="700px" append-to-body> |
|
|
|
|
|
<el-form ref="formInfoBus" :model="formInfoBus" :rules="rules" label-width="auto"> |
|
|
|
|
|
<el-form-item label="营业执照" prop="license"> |
|
|
|
|
|
<el-input v-model="formInfoBus.license" placeholder="请输入营业执照" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="其它证照信息" prop="licenseOther"> |
|
|
|
|
|
<el-input v-model="formInfoBus.licenseOther" placeholder="请输入其它证照信息" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="法人姓名" prop="legalPerson"> |
|
|
|
|
|
<el-input v-model="formInfoBus.legalPerson" placeholder="请输入法人姓名" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="营业状态" prop="operateStatus"> |
|
|
|
|
|
<el-select v-model="formInfoBus.operateStatus" placeholder="请选择营业状态" > |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in options_operateStatus" |
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
:value="item.value"> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="经营地址" prop="operateAddr"> |
|
|
|
|
|
<el-input v-model="formInfoBus.operateAddr" placeholder="请输入经营地址" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
|
|
<el-button :loading="buttonLoading" type="primary" @click="submitFormInfoBus">确 定</el-button> |
|
|
|
|
|
<el-button @click="cancel">取 消</el-button> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 用户注册详情-个人 --> |
|
|
<el-dialog :title="title" :visible.sync="detailOpen" width="700px" append-to-body> |
|
|
<el-dialog :title="title" :visible.sync="detailOpen" width="700px" append-to-body> |
|
|
<el-form ref="form" :model="form" label-width="auto"> |
|
|
<el-form ref="formDetail" :model="formDetail" label-width="auto"> |
|
|
<el-form-item label="登录账号:"> |
|
|
<el-form-item label="登录账号:"> |
|
|
{{form.name}} |
|
|
{{formDetail.account}} |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="用户姓名:"> |
|
|
|
|
|
{{formDetail.userInfoVo.name}} |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="用户性别:"> |
|
|
|
|
|
<span v-if="formDetail.userInfoVo.gender == '1'">男</span> |
|
|
|
|
|
<span v-if="formDetail.userInfoVo.gender == '0'">女</span> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="用户年龄:"> |
|
|
|
|
|
{{formDetail.userInfoVo.age}} |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="身份证号:"> |
|
|
|
|
|
{{formDetail.userInfoVo.idCard}} |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="用户地址:"> |
|
|
|
|
|
{{formDetail.userInfoVo.addr}} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="联系电话:"> |
|
|
<el-form-item label="联系电话:"> |
|
|
{{form.phone}} |
|
|
{{formDetail.phone}} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="用户类型:"> |
|
|
<el-form-item label="用户类型:"> |
|
|
{{form.userType}} |
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<span v-if="formDetail.userType == '0'">普通用户</span> |
|
|
|
|
|
<span v-if="formDetail.userType == '1'">商企用户</span> |
|
|
|
|
|
</template> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="用户级别:"> |
|
|
<el-form-item label="用户级别:"> |
|
|
{{form.userLevel}} |
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<span v-if="formDetail.userLevel == '0'">普通用户</span> |
|
|
|
|
|
<span v-if="formDetail.userLevel == '1'">VIP用户</span> |
|
|
|
|
|
<span v-if="formDetail.userLevel == '2'">商企用户</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
|
|
<el-button @click="cancel">关 闭</el-button> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 用户注册详情-商企--> |
|
|
|
|
|
<el-dialog :title="title" :visible.sync="detailOpenBus" width="700px" append-to-body> |
|
|
|
|
|
<el-form ref="formDetail" :model="formDetailBus" label-width="auto"> |
|
|
|
|
|
<el-form-item label="登录账号:"> |
|
|
|
|
|
{{formDetailBus.account}} |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="营业执照:"> |
|
|
|
|
|
{{formDetailBus.userInfoBusVo.license}} |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="其它证照:"> |
|
|
|
|
|
{{formDetailBus.userInfoBusVo.licenseOther}} |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="法人姓名:"> |
|
|
|
|
|
{{formDetailBus.userInfoBusVo.legalPerson}} |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="营业状态:"> |
|
|
|
|
|
{{formDetailBus.userInfoBusVo.operateStatus}} |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="经营地址:"> |
|
|
|
|
|
{{formDetailBus.userInfoBusVo.operateAddr}} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<div slot="footer" class="dialog-footer"> |
|
|
<div slot="footer" class="dialog-footer"> |
|
@ -195,7 +334,7 @@ |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import { listUserRegister, getUserRegister, delUserRegister, addUserRegister, updateUserRegister } from "@/api/business/userRegister"; |
|
|
import { listUserRegister, getUserRegister, delUserRegister, addUserRegister, updateUserRegister ,addUserInfo ,addUserInfoBus} from "@/api/business/userRegister"; |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
name: "UserRegister", |
|
|
name: "UserRegister", |
|
@ -221,14 +360,27 @@ export default { |
|
|
title: "", |
|
|
title: "", |
|
|
// 是否显示弹出层 |
|
|
// 是否显示弹出层 |
|
|
open: false, |
|
|
open: false, |
|
|
// 是否显示详情弹出层 |
|
|
// 是否显示详情弹出层-个人 |
|
|
detailOpen: false, |
|
|
detailOpen: false, |
|
|
|
|
|
// 是否显示详情弹出层-商企 |
|
|
|
|
|
detailOpenBus: false, |
|
|
|
|
|
// 是否展示用户信息弹窗层-个人 |
|
|
|
|
|
openInfo: false, |
|
|
|
|
|
// 是否展示用户信息弹窗层-商企 |
|
|
|
|
|
openInfoBus: false, |
|
|
|
|
|
options_operateStatus: [{ |
|
|
|
|
|
value: '存续', |
|
|
|
|
|
label: '存续' |
|
|
|
|
|
}, { |
|
|
|
|
|
value: '注销', |
|
|
|
|
|
label: '注销' |
|
|
|
|
|
}], |
|
|
// 查询参数 |
|
|
// 查询参数 |
|
|
queryParams: { |
|
|
queryParams: { |
|
|
pageNum: 1, |
|
|
pageNum: 1, |
|
|
pageSize: 10, |
|
|
pageSize: 10, |
|
|
userId: undefined, |
|
|
userId: undefined, |
|
|
name: undefined, |
|
|
account: undefined, |
|
|
phone: undefined, |
|
|
phone: undefined, |
|
|
passwd: undefined, |
|
|
passwd: undefined, |
|
|
status: undefined, |
|
|
status: undefined, |
|
@ -236,11 +388,26 @@ export default { |
|
|
userLevel: undefined, |
|
|
userLevel: undefined, |
|
|
}, |
|
|
}, |
|
|
// 表单参数 |
|
|
// 表单参数 |
|
|
form: {}, |
|
|
form: { |
|
|
|
|
|
userInfoVo:{}, |
|
|
|
|
|
userInfoBusVo:{} |
|
|
|
|
|
}, |
|
|
|
|
|
// 用户详情表单参数 |
|
|
|
|
|
formDetail: { |
|
|
|
|
|
userInfoVo:{} |
|
|
|
|
|
}, |
|
|
|
|
|
// 用户详情表单参数-商企 |
|
|
|
|
|
formDetailBus: { |
|
|
|
|
|
userInfoBusVo:{} |
|
|
|
|
|
}, |
|
|
|
|
|
// 用户信息表单参数-个人 |
|
|
|
|
|
formInfo: {}, |
|
|
|
|
|
// 用户信息表单参数-商企 |
|
|
|
|
|
formInfoBus: {}, |
|
|
// 表单校验 |
|
|
// 表单校验 |
|
|
rules: { |
|
|
rules: { |
|
|
name: [ |
|
|
account: [ |
|
|
{ required: true, message: "名字不能为空", trigger: "blur" } |
|
|
{ required: true, message: "登录账号不能为空", trigger: "blur" } |
|
|
], |
|
|
], |
|
|
userType: [ |
|
|
userType: [ |
|
|
{ required: true, message: "用户类型不能为空", trigger: "change" } |
|
|
{ required: true, message: "用户类型不能为空", trigger: "change" } |
|
@ -291,6 +458,9 @@ export default { |
|
|
cancel() { |
|
|
cancel() { |
|
|
this.open = false; |
|
|
this.open = false; |
|
|
this.detailOpen = false; |
|
|
this.detailOpen = false; |
|
|
|
|
|
this.detailOpenBus = false; |
|
|
|
|
|
this.openInfo = false; |
|
|
|
|
|
this.openInfoBus = false; |
|
|
this.reset(); |
|
|
this.reset(); |
|
|
}, |
|
|
}, |
|
|
// 表单重置 |
|
|
// 表单重置 |
|
@ -298,7 +468,7 @@ export default { |
|
|
this.form = { |
|
|
this.form = { |
|
|
id: undefined, |
|
|
id: undefined, |
|
|
userId: undefined, |
|
|
userId: undefined, |
|
|
name: undefined, |
|
|
account: undefined, |
|
|
phone: undefined, |
|
|
phone: undefined, |
|
|
passwd: undefined, |
|
|
passwd: undefined, |
|
|
status: undefined, |
|
|
status: undefined, |
|
@ -335,10 +505,21 @@ export default { |
|
|
}, |
|
|
}, |
|
|
/** 详情按钮操作 */ |
|
|
/** 详情按钮操作 */ |
|
|
handleDetail(row){ |
|
|
handleDetail(row){ |
|
|
|
|
|
this.loading = true; |
|
|
this.reset(); |
|
|
this.reset(); |
|
|
this.form = row; |
|
|
const id = row.id || this.ids |
|
|
|
|
|
getUserRegister(id).then(response => { |
|
|
|
|
|
this.loading = false; |
|
|
|
|
|
if (row.userType == "0"){ |
|
|
|
|
|
this.formDetail = response.data; |
|
|
this.detailOpen = true; |
|
|
this.detailOpen = true; |
|
|
this.title = "用户详情"; |
|
|
} |
|
|
|
|
|
if (row.userType == "1"){ |
|
|
|
|
|
this.formDetailBus = response.data; |
|
|
|
|
|
this.detailOpenBus = true; |
|
|
|
|
|
} |
|
|
|
|
|
this.title = "用户详情信息"; |
|
|
|
|
|
}); |
|
|
}, |
|
|
}, |
|
|
/** 修改按钮操作 */ |
|
|
/** 修改按钮操作 */ |
|
|
handleUpdate(row) { |
|
|
handleUpdate(row) { |
|
@ -377,6 +558,34 @@ export default { |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
/** 用户信息-提交按钮-个人 */ |
|
|
|
|
|
submitFormInfo() { |
|
|
|
|
|
this.$refs["formInfo"].validate(valid => { |
|
|
|
|
|
if (valid) { |
|
|
|
|
|
addUserInfo(this.formInfo).then(response => { |
|
|
|
|
|
this.$modal.msgSuccess(this.$t('common.addSuccess')); |
|
|
|
|
|
this.openInfo = false; |
|
|
|
|
|
this.getList(); |
|
|
|
|
|
}).finally(() => { |
|
|
|
|
|
this.buttonLoading = false; |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
|
|
|
/** 用户信息-提交按钮-商企 */ |
|
|
|
|
|
submitFormInfoBus() { |
|
|
|
|
|
this.$refs["formInfoBus"].validate(valid => { |
|
|
|
|
|
if (valid) { |
|
|
|
|
|
addUserInfoBus(this.formInfoBus).then(response => { |
|
|
|
|
|
this.$modal.msgSuccess(this.$t('common.addSuccess')); |
|
|
|
|
|
this.openInfoBus = false; |
|
|
|
|
|
this.getList(); |
|
|
|
|
|
}).finally(() => { |
|
|
|
|
|
this.buttonLoading = false; |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
/** 删除按钮操作 */ |
|
|
/** 删除按钮操作 */ |
|
|
handleDelete(row) { |
|
|
handleDelete(row) { |
|
|
const ids = row.id || this.ids; |
|
|
const ids = row.id || this.ids; |
|
@ -397,6 +606,18 @@ export default { |
|
|
this.download('business/userRegister/export', { |
|
|
this.download('business/userRegister/export', { |
|
|
...this.queryParams |
|
|
...this.queryParams |
|
|
}, `userRegister_${new Date().getTime()}.xlsx`) |
|
|
}, `userRegister_${new Date().getTime()}.xlsx`) |
|
|
|
|
|
}, |
|
|
|
|
|
handleAddInfo(row) { |
|
|
|
|
|
this.reset(); |
|
|
|
|
|
if (row.userType == "0"){ |
|
|
|
|
|
this.formInfo = row; |
|
|
|
|
|
this.openInfo = true; |
|
|
|
|
|
} |
|
|
|
|
|
if (row.userType == "1"){ |
|
|
|
|
|
this.formInfoBus = row; |
|
|
|
|
|
this.openInfoBus = true; |
|
|
|
|
|
} |
|
|
|
|
|
this.title = this.$t('business.userInfo.addTitle'); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|