Compare commits

..

11 Commits

@ -18,7 +18,6 @@ module.exports = {
"vue" "vue"
], ],
"rules": { "rules": {
indent: ['error', 'tab'],
'no-console': 'off', 'no-console': 'off',
} }
}; };

Binary file not shown.

@ -24,3 +24,39 @@ export function communityInsert(params) {
data: params, data: params,
}) })
} }
//获取当前账户所有小区信息
export function getAllCommunityInfo(params) {
return httpService({
url: `/user/community/getAllCommunityInfo`,
method: 'get',
params: params,
})
}
// 创建订单
export function createOrder(params) {
return httpService({
url: `/user/order/createOrder`,
method: 'post',
data: params,
})
}
// 订单绑定小区(门户网站)
export function userBindingCommunity(params) {
return httpService({
url: `/user/order/userBindingCommunity`,
method: 'post',
data: params,
})
}
// 订单解绑小区(门户网站)
export function userUnbindingCommunity(params) {
return httpService({
url: `/user/order/userUnbindingCommunity`,
method: 'get',
params: params,
})
}

@ -0,0 +1,19 @@
import httpService from "@/request"
// 城市-查询所有城市信息
export function getAllCity(params) {
return httpService({
url: `/city/allCity`,
method: 'get',
params: params,
})
}
// 城市-根据父类ID查询城市信息
export function getCityByParent(params) {
return httpService({
url: `/city/findByParentId`,
method: 'get',
params: params,
})
}

@ -0,0 +1,298 @@
import httpService from "@/request"
// 入住申请-查询所有的入驻申请记录
export function getAllRequest(params) {
return httpService({
url: `/user/settledApplication/list`,
method: 'get',
params: params,
})
}
// 入住申请-根据入驻申请主键id查询详情
export function getRequestDetail(params) {
return httpService({
url: `/user/settledApplication/findDetailsById`,
method: 'get',
params: params,
})
}
// 入住申请-通过/驳回入驻申请
export function isPass(params) {
return httpService({
url: `/user/settledApplication/isPass`,
method: 'post',
params: params,
})
}
// 客户列表-查询所有客户信息
export function getCustomerList(params) {
return httpService({
url: `/user/customerList/list`,
method: 'get',
params: params,
})
}
// 客户列表-根据客户主键id查询详情
export function getCustomerDetail(params) {
return httpService({
url: `/user/customerList/findDetailsById`,
method: 'get',
params: params,
})
}
// 小区管理-查询所有的小区信息
export function getCommunityList(params) {
return httpService({
url: `/user/community/list`,
method: 'get',
params: params,
})
}
// 小区管理-获取对应公司下的所有小区信息
export function getComById(params) {
return httpService({
url: `/user/community/getCommunityInfoByCompanyId`,
method: 'get',
params: params,
})
}
// 小区管理-添加小区信息
export function getAddCommunity(params) {
return httpService({
url: `/user/community/insertAdmin`,
method: 'post',
data: params,
})
}
// 小区管理-根据小区主键id查询小区信息
export function findByIdAdmin(params) {
return httpService({
url: `/user/community/findByIdAdmin`,
method: 'get',
params: params,
})
}
// 小区管理-修改小区信息
export function updateCommunity(params) {
return httpService({
url: `/user/community/updateAdmin`,
method: 'post',
data: params,
})
}
// 订单管理-查询所有订单
export function getAllOrder(params) {
return httpService({
url: `/user/order/list`,
method: 'get',
params: params,
})
}
// 订单管理-后台创建订单
export function createOrder(params) {
return httpService({
url: `/user/order/adminCreateOrder`,
method: 'post',
data: params,
})
}
// 订单管理-计算金额
export function calcAmount(params) {
return httpService({
url: `/user/order/calculateAmount`,
method: 'post',
data: params,
})
}
// 订单管理-订单解绑小区
export function orderUnbound(params) {
return httpService({
url: `/user/order/unbindingCommunity`,
method: 'get',
params: params,
})
}
// 收费管理-收费标准-查询收费模版信息
export function getChargingList(params) {
return httpService({
url: `/user/charging/list`,
method: 'get',
params: params,
})
}
// 收费管理-收费标准-查询收费标准时间类型
export function findTimeType(params) {
return httpService({
url: `/user/charging/findTimeType`,
method: 'get',
params: params,
})
}
// 收费管理-收费标准-查询收费标准功能模块大类信息
export function findSuperNavigation(params) {
return httpService({
url: `/user/charging/findSuperNavigation`,
method: 'get',
params: params,
})
}
// 收费管理-根据收费模版主键Id查询收费模版信息
export function getChargeById(params) {
return httpService({
url: `/user/charging/findById`,
method: 'get',
params: params,
})
}
// 收费管理-收费标准-启用/禁用收费模版
export function onoffCharging(params) {
return httpService({
url: `/user/charging/updateStatus`,
method: 'post',
data: params,
})
}
// 收费管理-收费标准-添加收费模版
export function addCharge(params) {
return httpService({
url: `/user/charging/insert`,
method: 'post',
data: params,
})
}
// 收费管理-收费标准-修改收费模版
export function updateCharge(params) {
return httpService({
url: `/user/charging/update`,
method: 'post',
data: params,
})
}
// 收费管理-财务账单-查询所有财务账单
export function getAllList(params) {
return httpService({
url: `/user/financialStatements/list`,
method: 'get',
params: params,
})
}
// 收费管理-财务账单-财务账单详情
export function getOrderDetail(params) {
return httpService({
url: `/user/financialStatements/findDetails`,
method: 'get',
params: params,
})
}
// 收费管理-财务账单-退款页面回显
export function getPayback(params) {
return httpService({
url: `/user/financialStatements/findById`,
method: 'get',
params: params,
})
}
// 收费管理-财务账单-退款
export function postRefund(params) {
return httpService({
url: `/user/financialStatements/refund`,
method: 'post',
data: params,
})
}
// 支付设置-查询所有的支付宝设置信息
export function alipayList(params) {
return httpService({
url: `/user/alipaySetting/list`,
method: 'get',
params: params,
})
}
// 支付设置-开启/停用支付宝设置信息
export function isEnable(params) {
return httpService({
url: `/user/alipaySetting/isEnable`,
method: 'get',
params: params,
})
}
// 支付设置-删除支付宝设置信息
export function alipayDelete(params) {
return httpService({
url: `/user/alipaySetting/delete`,
method: 'post',
data: params,
})
}
// 支付设置-添加支付宝设置信息
export function alipayInsert(params) {
return httpService({
url: `/user/alipaySetting/insert`,
method: 'post',
data: params,
})
}
// 支付设置-支付宝设置绑定小区
export function alipayBound(params) {
return httpService({
url: `/user/alipaySetting/bind`,
method: 'post',
data: params,
})
}
// 支付设置-根据支付宝设置主键id查询支付宝设置绑定信息
export function findBindById(params) {
return httpService({
url: `/user/alipaySetting/findBindById`,
method: 'get',
params: params,
})
}
// 支付设置-根据支付宝设置主键id查询支付宝设置信息
export function findInfoById(params) {
return httpService({
url: `/user/alipaySetting/findInfoById`,
method: 'get',
params: params,
})
}
// 支付设置-修改支付宝设置信息
export function alipayUpdate(params) {
return httpService({
url: `/user/alipaySetting/update`,
method: 'post',
data: params,
})
}

@ -24,6 +24,16 @@ export function loginTelCode(params) {
data: params, data: params,
}) })
} }
// 退出
export function quit(params) {
return httpService({
url: `/user/quit`,
method: 'post',
data: params,
})
}
// 获取登录验证码 // 获取登录验证码
export function sendTelCode(params) { export function sendTelCode(params) {
return httpService({ return httpService({

@ -0,0 +1,10 @@
import httpService from "@/request"
// 上传平台照片
export function picUpload(params) {
return httpService({
url: `/user/upload/uploadImg`,
method: 'post',
params: params,
})
}

@ -0,0 +1,19 @@
import httpService from "@/request"
// 查询平台余额账单记录
export function getBalanceList(params) {
return httpService({
url: `/user/balanceRecord/list`,
method: 'get',
params: params,
})
}
// 平台账户余额充值 创建订单
export function createBalanceRechargeOrder(params) {
return httpService({
url: `/user/alipay/createBalanceRechargeOrder`,
method: 'post',
data: params,
})
}

@ -64,5 +64,5 @@ export default {
}; };
</script> </script>
<style> <style lang="less">
</style> </style>

@ -35,13 +35,40 @@ export default [
meta: {title: '购买功能'}, meta: {title: '购买功能'},
}, },
{ {
path: '/Basic/adminSet', path: '/Manage/AdminSet',
name: "adminSet", name: "AdminSet",
title: "管理员设置", title: "管理员设置",
hide: false, hide: false,
icon: 'team', icon: 'setting',
component: resolve => require(['@/views/Basic/adminSet'], resolve), component: resolve => require(['@/views/Manage/AdminSet'], resolve),
redirect: '/Manage/AdminSet/PaymentSet',
meta: {title: '管理员设置'}, meta: {title: '管理员设置'},
children: [
{
path: '/Manage/AdminSet/PaymentSet',
name: "PaymentSet",
title: "支付设置",
hide: false,
component: resolve => require(['@/views/Manage/AdminSet/PaymentSet'], resolve),
meta: { title: '支付设置' },
},
]
},
{
path: '/Manage/ShopRemain',
name: "settled",
title: "第三方商城余额",
icon: 'dollar',
hide: false,
component: resolve => require(['@/views/Manage/ShopRemain/index.vue'], resolve),
meta: {title: '第三方商城余额'},
},
{
path: '/Manage/Pay',
name: "Pay",
title: "支付页面",
hide: true,
component: resolve => require(['@/views/Manage/ShopRemain/pay.vue'], resolve),
meta: {title: '支付页面'},
}, },
] ]

@ -25,7 +25,7 @@ const router = [
title: "外框", title: "外框",
component: Layout, component: Layout,
redirect: '/Basic/home', redirect: '/Basic/home',
meta: {title: '首页'}, // meta: {title: '首页'},
children: [ children: [
...basic, ...basic,
...manage ...manage
@ -36,11 +36,35 @@ const router = [
name: "Login", name: "Login",
title: "登录", title: "登录",
component: resolve => require(['@/views/Login'], resolve) component: resolve => require(['@/views/Login'], resolve)
} },
{
path: "/admin",
name: "Admin",
title: "小蜜蜂管家端隐私政策",
component: resolve => require(['@/views/Rule/admin.vue'], resolve)
},
{
path: "/adminApp",
name: "AdminApp",
title: "小蜜蜂管家端用户协议",
component: resolve => require(['@/views/Rule/adminApp.vue'], resolve)
},
{
path: "/user",
name: "User",
title: "小蜜蜂隐私政策",
component: resolve => require(['@/views/Rule/user.vue'], resolve)
},
{
path: "/userApp",
name: "UserApp",
title: "住户端APP用户协议",
component: resolve => require(['@/views/Rule/userApp.vue'], resolve)
},
] ]
export default new Router({ export default new Router({
mode: 'history', // mode: 'history',
routes: router, routes: router,
scrollBehavior(to, from, savedPosition) { scrollBehavior(to, from, savedPosition) {
// console.log(savedPosition); // console.log(savedPosition);

@ -27,13 +27,13 @@ export default [
meta: {title: '客户列表'}, meta: {title: '客户列表'},
}, },
{ {
path: '/Manage/SettleRequestManage/customer_detail', path: '/Manage/CustomerList/customer_detail',
name: "customer_detail", name: "customer_detail",
title: "查看详情", title: "查看客户详情",
hide: true, hide: true,
icon: 'container', icon: 'container',
component: resolve => require(['@/views/Manage/CustomerList/_detail'], resolve), component: resolve => require(['@/views/Manage/CustomerList/_detail'], resolve),
meta: {title: '查看详情'}, meta: {title: '查看客户详情'},
}, },
{ {
path: '/Manage/VillageManage', path: '/Manage/VillageManage',
@ -44,6 +44,15 @@ export default [
component: resolve => require(['@/views/Manage/VillageManage'], resolve), component: resolve => require(['@/views/Manage/VillageManage'], resolve),
meta: {title: '小区管理'}, meta: {title: '小区管理'},
}, },
{
path: '/Manage/VillageManage/_detail',
name: "village_detail",
title: "小区管理详情",
hide: true,
icon: 'home',
component: resolve => require(['@/views/Manage/VillageManage/_detail'], resolve),
meta: {title: '小区管理详情'},
},
{ {
path: '/Manage/OrderManage', path: '/Manage/OrderManage',
name: "OrderManage", name: "OrderManage",
@ -53,28 +62,63 @@ export default [
component: resolve => require(['@/views/Manage/OrderManage'], resolve), component: resolve => require(['@/views/Manage/OrderManage'], resolve),
meta: {title: '订单管理'}, meta: {title: '订单管理'},
}, },
{
path: '/Manage/OrderManage/order_detail',
name: "order_detail",
title: "订单详情",
hide: true,
icon: 'container',
component: resolve => require(['@/views/Manage/OrderManage/_detail'], resolve),
meta: {title: '订单详情'},
},
{
path: '/Manage/OrderManage/add_order',
name: "add_order",
title: "添加订单",
hide: true,
icon: 'container',
component: resolve => require(['@/views/Manage/OrderManage/_addOrder'], resolve),
meta: {title: '添加订单'},
},
{ {
path: '/Manage/ChargingManage', path: '/Manage/ChargingManage',
name: "ChargingManage", name: "ChargingManage",
title: "收费管理", title: "收费管理",
icon: 'pay-circle', icon: 'pay-circle',
redirect: '/ChargingManage/ChargingStandard', redirect: '/Manage/ChargingManage/ChargingStandard',
component: resolve => require(['@/views/Manage/ChargingManage'], resolve),
meta: {title: '收费管理'}, meta: {title: '收费管理'},
children: [ children: [
{ {
path: '/ChargingManage/ChargingStandard', path: '/Manage/ChargingManage/ChargingStandard',
name: "ChargingStandard", name: "ChargingStandard",
title: "收费标准", title: "收费标准",
component: resolve => require(['@/views/Manage/ChargingManage/ChargingStandard'], resolve), component: resolve => require(['@/views/Manage/ChargingManage/ChargingStandard'], resolve),
meta: { title: '收费标准' }, meta: { title: '收费标准' },
}, },
{ {
path: '/ChargingManage/FinancialBill', path: '/Manage/ChargingManage/FinancialBill',
name: "FinancialBill", name: "FinancialBill",
title: "财务账单", title: "财务账单",
component: resolve => require(['@/views/Manage/ChargingManage/FinancialBill'], resolve), component: resolve => require(['@/views/Manage/ChargingManage/FinancialBill'], resolve),
meta: { title: '财务账单' }, meta: { title: '财务账单' },
} },
{
path: '/Manage/ChargingManage/FinancialBill/_detail',
name: "_billDetail",
title: "账单明细",
hide: true,
component: resolve => require(['@/views/Manage/ChargingManage/FinancialBill/_detail'], resolve),
meta: { title: '账单明细' },
},
{
path: '/Manage/ChargingManage/FinancialBill/_payback',
name: "_payback",
title: "退款",
hide: true,
component: resolve => require(['@/views/Manage/ChargingManage/FinancialBill/_payback'], resolve),
meta: { title: '退款' },
},
] ]
}, },
] ]

@ -1,26 +1,26 @@
<template> <template>
<div> <div>
<div class="tips" v-if="companyInfo === null"> <div class="tips" v-if="companyInfo == null">
<a-space size="large"> <a-space size="large">
第一步请完善企业信息后提交至工作人员审核 第一步请完善企业信息后提交至工作人员审核
<a-button type="primary" shape="round" size="default" <!-- <a-button type="primary" shape="round" size="default"
>关联企业信息</a-button >关联企业信息</a-button
> > -->
</a-space> </a-space>
</div> </div>
<div class="tips" v-else-if="estateList===null"> <div class="tips" v-else-if="estateList == null">
<a-space size="large" > <a-space size="large" >
第二步请添加小区信息用于绑定后续的功能 第二步请添加小区信息用于绑定后续的功能
<a-button type="primary" shape="round" size="default" <!-- <a-button type="primary" shape="round" size="default"
>创建小区</a-button >创建小区</a-button
> > -->
</a-space> </a-space>
</div> </div>
<div class="tips" v-else> <div class="tips" v-else>
第三步请在添加的小区中绑定购买的套餐 在购买功能时直接选择小区绑定 第三步请在添加的小区中绑定购买的套餐 在购买功能时直接选择小区绑定
</div> </div>
<div class="content"> <div class="content">
<div class="top" v-if="companyInfo === null"> <div class="top" v-if="companyInfo == null">
<span style="margin-left: 30px"> <span style="margin-left: 30px">
<div class="top-a">你好{{ username }}</div> <div class="top-a">你好{{ username }}</div>
<div class="top-b">请尽快绑定企业信息进行下一步</div> <div class="top-b">请尽快绑定企业信息进行下一步</div>
@ -44,11 +44,11 @@
<a-col :span="16"> <a-col :span="16">
<a-col class="com-name">{{ companyInfo.companyName }}</a-col> <a-col class="com-name">{{ companyInfo.companyName }}</a-col>
<a-col class="com-sta">{{ <a-col class="com-sta">{{
companyInfo.status === 1 companyInfo.status == 1
? "待确认" ? "待确认"
: companyInfo.status === 2 : companyInfo.status == 2
? "已通过" ? "已通过"
: companyInfo.status === 3 : companyInfo.status == 3
? "已驳回" ? "已驳回"
: "已取消" : "已取消"
}}</a-col> }}</a-col>
@ -78,8 +78,8 @@
<div class="card-a"> <div class="card-a">
<div class="cardTitle">小区后台</div> <div class="cardTitle">小区后台</div>
<div class="card-a-content"> <div class="card-a-content">
<div v-if="estateList !== null"> <div v-if="estateList != null">
<div style="color: #d53131" v-show="estateList === null"> <div style="color: #d53131" v-show="estateList == null">
当前尚未添加小区信息 当前尚未添加小区信息
</div> </div>
<div class="cardBox"> <div class="cardBox">
@ -90,8 +90,8 @@
:key="index" :key="index"
> >
<template slot="actions" class="ant-card-actions"> <template slot="actions" class="ant-card-actions">
<span></span> <span @click="handlerBound(item)"></span>
<span></span> <span @click="handlerDetail(item)"></span>
</template> </template>
<a-card-meta <a-card-meta
:title="item.name" :title="item.name"
@ -120,7 +120,7 @@
:title="item.code" :title="item.code"
style="width: 80%; margin: auto; margin-top: 20px" style="width: 80%; margin: auto; margin-top: 20px"
> >
<span slot="extra" href="#">{{ item.status }}</span> <span slot="extra" href="#">{{ item.status==1?'未绑定':2?'业务受理中':3?'生效中':'已失效'}}</span>
<span <span
style=" style="
color: #00000073; color: #00000073;
@ -130,7 +130,7 @@
" "
><span>购买功能</span> ><span>购买功能</span>
<span style="color: #d53131">{{ <span style="color: #d53131">{{
"¥" + item.amount item.includeFunctionModelList
}}</span></span }}</span></span
> >
<div class="functionBox"> <div class="functionBox">
@ -143,13 +143,13 @@
</div> </div>
</div> </div>
<div style="margin-top: 10px"> <div style="margin-top: 10px">
{{ item.time {{ item.expirationDate
}}<span style="color: #00000073; font-size: 14px">到期</span> }}<span style="color: #00000073; font-size: 14px">到期</span>
</div> </div>
<template slot="actions" class="ant-card-actions"> <template slot="actions" class="ant-card-actions">
<span>续费</span> <span><a>续费</a></span>
<span>解绑</span> <span><a @click="unbound(item)"></a></span>
<span>详情</span> <span><a @click="orderDetail(item)"></a></span>
<!-- <span>支付</span> <!-- <span>支付</span>
<span>取消</span> --> <span>取消</span> -->
</template> </template>
@ -203,11 +203,39 @@
</a-form-model> </a-form-model>
</div> </div>
</a-modal> </a-modal>
<a-modal title="选择绑定订单" :visible="boundVisible" @ok="boundConfirm" @cancel="boundCancel">
<a-select style="width: 200px" v-model="boundForm.adminFunctionOrderId">
<a-select-option v-for="(item, index) in orderList" :key="index" :value="item.id">
{{item.code}}
</a-select-option>
</a-select>
</a-modal>
<a-drawer title="小区详情" :visible="villageVisible" @close="villageClose" width="512">
<a-descriptions :column="1" layout="vertical">
<a-descriptions-item label="小区名称">
{{villageData.name}}
</a-descriptions-item>
<a-descriptions-item label="公司名称">
{{villageData.companyName}}
</a-descriptions-item>
<a-descriptions-item label="小区地址">
{{villageData.provinceName}}{{villageData.cityName}}{{villageData.countyName}}
</a-descriptions-item>
<a-descriptions-item label="详细地址">
{{villageData.addressDetails}}
</a-descriptions-item>
<a-descriptions-item label="小区图片">
<img :src="item.url" alt="" v-for="(item,index) in villageData.imgList" :key="index">
</a-descriptions-item>
</a-descriptions>
</a-drawer>
</div> </div>
</template> </template>
<script> <script>
import { consoleShow, communityInsert } from "@/api/basic/console"; import { consoleShow, communityInsert } from "@/api/basic/console";
import { userUnbindingCommunity, userBindingCommunity } from "@/api/basic/console";
import { findByIdAdmin } from "@/api/manage";
import store from "@/store"; import store from "@/store";
export default { export default {
name: "Console", name: "Console",
@ -222,19 +250,25 @@ export default {
name:'', name:'',
address:undefined, address:undefined,
addressDetails:'', addressDetails:'',
communityUrls:[] communityUrls:[],
companyId: undefined
}, },
rules: { rules: {
name:[{required: true,message: "请输入",trigger: "blur"}], name:[{required: true,message: "请输入",trigger: "blur"}],
address:[{required: true,message: "请选择",trigger: "change"}], address:[{required: true,message: "请选择",trigger: "change"}],
addressDetails:[{required: true,message: "请输入",trigger: "blur"}], addressDetails:[{required: true,message: "请输入",trigger: "blur"}],
}, },
orderList: [], orderList: [],
estateList: [], estateList: [],
visible: false, visible: false,
confirmLoading: false, confirmLoading: false,
companyInfo: {}, companyInfo: {},
//
boundVisible: false,
boundForm: {communityId: undefined, adminFunctionOrderId: undefined},
//
villageVisible: false,
villageData: {}
}; };
}, },
mounted() { mounted() {
@ -243,7 +277,9 @@ export default {
methods: { methods: {
async getData() { async getData() {
let res = await consoleShow(); let res = await consoleShow();
// consoleCompanyVo if(res.data.consoleCompanyVo != null) {
this.form.companyId = res.data.consoleCompanyVo.id
}
this.estateList = res.data.consoleCommunityVoList; this.estateList = res.data.consoleCommunityVoList;
this.orderList = res.data.consoleOrderVoList; this.orderList = res.data.consoleOrderVoList;
this.companyInfo = res.data.consoleCompanyVo; this.companyInfo = res.data.consoleCompanyVo;
@ -281,6 +317,56 @@ export default {
}, },
onchange(data){ onchange(data){
this.form.address = data[2] this.form.address = data[2]
},
//
handlerBound(val) {
this.boundForm.communityId = val.id
this.boundVisible = true;
},
boundConfirm() {
userBindingCommunity(this.boundForm).then(res => {
if (res.code === 200) {
this.$message.success(res.msg);
this.getData();
} else {
this.$message.error(res.msg);
}
})
this.boundVisible = false;
},
boundCancel() {
this.boundVisible = false;
},
//
orderDetail(val) {
},
//
handlerDetail(val) {
this.villageVisible = true;
findByIdAdmin({communityId: val.id}).then(res => {
let data = res.data;
this.villageData = data
})
},
villageClose() {
this.villageVisible = false
},
//
unbound(val) {
let obj = {adminFunctionOrderId : val.id}
this.$confirm({
title: "是否解绑?",
icon:'close',
onOk:async()=>{
let res = await userUnbindingCommunity(obj);
if (res.code === 200) {
this.$message.success(res.msg);
this.getData();
} else {
this.$message.error(res.msg);
}
},
})
} }
}, },
}; };

@ -1,181 +1,227 @@
<template> <template>
<div class="main">
<div class="main-content">
<div class="cardTitle">添加订单信息</div>
<div class="content"> <div class="content">
<span class="back-btn" @click='back'><a-icon type="left" style='margin-right:10px' />返回</span> <a-form-model :labelCol="{span: 2}" :wrapperCol="{span: 8}" :rules="rules">
<a-form-model <!-- <a-form-model-item label="订单号">
ref="ruleForm" <a-input v-model="form.code" ></a-input>
:model="form" </a-form-model-item> -->
:rules="rules" <a-form-model-item label="支付类型" prop="payType">
:label-col="inline" <a-select v-model="form.payType">
layout="vertical" <a-select-option :value="1">线下</a-select-option>
:wrapper-col="wrapperCol" <a-select-option :value="2">支付宝</a-select-option>
> <a-select-option :value="3">微信</a-select-option>
<a-form-model-item><div class="cardTitle">基础信息</div></a-form-model-item> </a-select>
<a-form-model-item label="订单号" prop="code">
<a-input disabled style="width:60%"/>
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="选择功能模块" prop="code"> <a-form-model-item label="选择收费模版" prop="chargingTemplateId">
<a-select style="width:60%"/> <a-select v-model="form.chargingTemplateId" @change="modelChange">
<a-select-option :value="item.id" v-for="(item, index) in modelData" :key="index">
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="选择有效时长" prop="code"> <a-form-model-item label="选择功能模块" prop="modelFunctionId">
<a-select style="width:60%"/> <a-checkbox-group v-model="form.modelFunctionId" :options="functionType" @change="functionChange" />
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="购买金额"> <a-form-model-item label="选择有效时长" prop="timeTypeId">
<span style="color:#D53131">25000</span> <a-select v-model="form.timeTypeId" @change="timeChange">
<a-select-option :value="item.id" v-for="(item, index) in timeType" :key="index">
<!-- {{item.years == 0 ? '' : item.years+'年'}}
{{item.months == 0 ? '' : item.months+'个月'}}
{{item.days == 0 ? '' : item.days+'天'}} -->
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="企业名称"> <a-form-model-item label="购买金额">
<span>广西印象物业服务有限公司</span> <span style="color: red">¥ {{form.payPrice}}</span>
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="选择小区"> <a-form-model-item label="绑定小区" prop="communityId">
<a-input style="width:60%" placeholder="请输入小区全称"/> <a-select v-model="form.communityId">
<a-select-option :value="item.id" v-for="(item, index) in comData" :key="index">
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item> </a-form-model-item>
<a-form-model-item><div class="cardTitle">高级配置</div></a-form-model-item> </a-form-model>
<a-row> </div>
<a-col :span='12'> <div class="cardTitle">高级配置</div>
<a-form-model-item label="域名信息" prop=""> <div class="content">
<a-input v-model="form.verificationCode" <a-form-model :labelCol="{span: 2}" :wrapperCol="{span: 8}">
placeholder="请输入域名信息" <a-form-model-item label="域名">
style="width:130%" <a-input v-model="form.domainName" style="width: 394px"></a-input>
/>
</a-form-model-item> </a-form-model-item>
</a-col> <a-form-model-item label="服务器ip">
<a-col :span='12'> <a-input v-model="form.serviceIp" style="width: 394px"></a-input>
<a-form-model-item label="服务器IP" prop="">
<a-input v-model="form.verificationCode"
placeholder="请输入服务器IP"
style="width:130%"
/>
</a-form-model-item> </a-form-model-item>
</a-col> <a-form-model-item label="是否定制">
</a-row> <a-select v-model="form.isCustomized" style="width: 394px" @change="textareaDisable">
<a-row> <a-select-option :value="0">
<a-col :span='12'> 不定制
<a-form-model-item label="是否定制" prop=""> </a-select-option>
<a-select v-model="form.verificationCode" <a-select-option :value="1">
style="width:100%" 定制
/> </a-select-option>
</a-select>
</a-form-model-item> </a-form-model-item>
</a-col>
</a-row>
<a-form-model-item label="定制需求"> <a-form-model-item label="定制需求">
<a-textarea <a-textarea v-model="form.customizedDemand" style="width: 394px" :disabled="form.isCustomized == 0" placeholder="请填写定制需求">
v-model="value" </a-textarea>
placeholder="请输入定制需求"
disabled
:auto-size="{ minRows: 3, maxRows: 5 }"
/>
</a-form-model-item>
<a-form-model-item label="其他附件">
<span>建议上传小于5M支持上传wordexcel格式的文件</span>
<a-row style="margin-top:5px">
<a-col :span='12'>
<a-upload
name="file"
:multiple="true"
action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
:headers="headers"
@change="handleChange"
>
<a-button> <a-icon type="upload" /> 选择文件</a-button>
</a-upload>
</a-col>
</a-row>
</a-form-model-item>
<a-form-model-item :wrapper-col="{ span: 14, offset: 4 }">
<a-button type="primary" @click="onSubmit"> </a-button>
<a-button style="margin-left: 10px" @click="resetForm">
重置
</a-button>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
</div> </div>
</div>
<a-space style="margin-left: 138px">
<a-button type="primary" @click="addConfirm"></a-button>
<a-button @click="cancel"></a-button>
</a-space>
</div>
</template> </template>
<script> <script>
import {calcAmount} from "@/api/manage";
import {createOrder, getAllCommunityInfo} from "@/api/basic/console"
import {getChargingList, getChargeById} from "@/api/manage";
import {findTimeType, findSuperNavigation} from "@/api/manage";
export default { export default {
name: "addOrder",
data() { data() {
return { return {
//
labelCol: { span: 4 },
wrapperCol: { span: 10 },
other: "",
form: { form: {
tel: "", code: '',
name: "", payType: 1,
address:"" chargingTemplateId: undefined,
modelFunctionId: [],
timeTypeId: undefined,
payPrice: 0,
communityId: undefined,
domainName: '',
serviceIp: '',
isCustomized: 0, //
customizedDemand: '' //
}, },
rules: { rules: {
tel: [ payType: [{ required: true, message: "请选择类型", trigger: "blur" }],
{ chargingTemplateId: [{ required: true, message: "请选择模版", trigger: "blur" }],
required: true, modelFunctionId: [{ required: true, message: "请选择模块", trigger: "blur" }],
message: "请输入手机号", timeTypeId: [{ required: true, message: "请选择时长", trigger: "blur" }],
trigger: "blur", communityId: [{ required: true, message: "请选择小区", trigger: "blur" }],
},
{
min: 11,
max: 11,
message: "姓名长度必须为 11 位",
trigger: "blur",
}, },
], comData: [], //
name: [ //
{ functionType: [], //
required: true, allFunctionType: [],
message: "请输入姓名", //
trigger: "blur", timeType: [],
allTimeType: [],
//
modelData: [],
}
}, },
{ mounted() {
min: 3, this.getApi();
max: 5,
message: "姓名长度必须为 3 至 5位",
trigger: "blur",
}, },
], methods: {
getApi() {
let obj = {pageNum: 1,size: 1000};
getChargingList(Object.assign(obj, {name: ''})).then(res => {
let data = res.data.rows;
this.modelData = data
})
findTimeType().then(res => {
let data = res.data;
this.allTimeType = data
})
findSuperNavigation().then(res => {
let data = res.data;
this.allFunctionType = data;
})
getAllCommunityInfo().then(res => {
let data = res.data;
this.comData = data;
})
}, },
getPrice() {
if(this.form.chargingTemplateId && this.form.modelFunctionId && this.form.timeTypeId) {
let obj = {
chargingTemplateId: this.form.chargingTemplateId,
modelFunctionId: this.form.modelFunctionId,
timeTypeId: this.form.timeTypeId
}; };
calcAmount(obj).then(res => {
let data = res.data;
this.form.payPrice = data * 1
});
}
}, },
methods: { modelChange(val) {
// this.form.timeTypeId = undefined;
getCode(){}, this.form.modelFunctionId = [];
onSubmit() { this.form.communityId = undefined;
this.$refs.ruleForm.validate((valid) => { getChargeById({id: val}).then(res => {
if (valid) { let data = res.data;
alert("submit!"); let functionData = [];
} else { data.functionList.forEach(ele => {
console.log("error submit!!"); this.allFunctionType.forEach(e => {
return false; if(e.id == ele) {
let obj = {label: e.name,value: e.id}
functionData.push(obj);
}
})
})
this.functionType = functionData;
let timeData = [];
data.timeTypeList.forEach(ele => {
this.allTimeType.forEach(e => {
if(e.id == ele) {
let year = e.years == 0 ? '' : e.years+'年';
let month = e.months == 0 ? '' : e.months+'个月';
let day = e.days == 0 ? '' : e.days+'天';
let obj = {name: year+month+day,id: e.id}
timeData.push(obj);
} }
})
})
this.timeType = timeData;
}); });
this.getPrice();
}, },
// timeChange(val) {
resetForm() { this.getPrice();
this.$refs.ruleForm.resetFields();
}, },
//
functionChange(val) {
if(val.length != 0) {
this.getPrice()
} else {
this.form.payPrice = 0
}
}, },
}; textareaDisable(val) {
</script> if(val == 0) {
this.form.customizedDemand = ''
<style lang="less" scoped>
.content {
background: #fff;
padding-left: 125px;
padding-top: 48px;
} }
.cardTitle{ },
margin-left: -10px; addConfirm() {
margin-bottom: -10px; createOrder(this.form).then((res) => {
if (res.code === 200) {
this.$message.success(res.msg);
this.$router.go(-1);
} else {
this.$message.error(res.msg);
}
})
},
cancel() {
this.$router.go(-1);
} }
/deep/.ant-col .ant-form-item-label{
margin-top: -10px;
} }
.uploadImg{ }
background: #0000000A; </script>
border:2px solid #00000029;
color: #00000029; <style lang="less">
width: 180px; .main-content {
height: 120px; margin-left: 125px;
text-align: center;
line-height: 110px;
font-size:60px;
cursor: pointer;
} }
</style> </style>

@ -210,13 +210,16 @@ export default {
city: [], city: [],
}; };
}, },
mounted() { created() {
this.getCity(); this.getAllCity();
}, },
methods: { methods: {
async getCity() { getAllCity() {
let res = await allCity(); // let res = await allCity();
this.city = res.data; // this.city = res.data;
allCity().then(res => {
this.city = res.data
})
}, },
// //
getCode() {}, getCode() {},

@ -21,7 +21,7 @@
</a-breadcrumb> </a-breadcrumb>
</div> </div>
<div class="h-d2"> <div class="h-d2">
<a-icon class="h-d2-c" style="color: #e27473" type="logout" /> <a-icon class="h-d2-c" @click="onQuit" style="color: #e27473" type="logout" />
<a-icon class="h-d2-c" style="color: #b7b7b7" type="question-circle" /> <a-icon class="h-d2-c" style="color: #b7b7b7" type="question-circle" />
<a-icon class="h-d2-c" type="alert" /> <a-icon class="h-d2-c" type="alert" />
<a-icon class="h-d2-c" style="color: #979a96;margin-right: 7px;" type="user" /> <a-icon class="h-d2-c" style="color: #979a96;margin-right: 7px;" type="user" />
@ -36,13 +36,14 @@
</template> </template>
<script> <script>
import yMenu from "./yMenu"; import yMenu from "./yMenu";
import {quit} from "@/api/public/login"
export default { export default {
components: { components: {
yMenu, yMenu,
}, },
mounted(){ mounted(){
this.$router.push({ name: sessionStorage.getItem('routerName') }); this.$router.push({ name: sessionStorage.getItem('routerName') });
this.Info = JSON.parse(sessionStorage.getItem('info'));
// this.tagActive = Number(sessionStorage.getItem('index')) // this.tagActive = Number(sessionStorage.getItem('index'))
// userInfo().then(res =>{ // userInfo().then(res =>{
// this.Info = res.data // this.Info = res.data
@ -105,6 +106,21 @@ export default {
handlerTags(n) { handlerTags(n) {
this.tagActive = n; this.tagActive = n;
}, },
onQuit() {
this.$confirm({
title: "是否要退出登录?",
icon:'close',
onOk:async()=>{
let res = await quit();
if (res.code === 200) {
this.$message.success(res.msg);
this.$router.push('/login')
} else {
this.$message.error(res.msg);
}
},
})
}
}, },
}; };
</script> </script>

@ -115,7 +115,7 @@ export default {
let typevalue = JSON.parse(sessionStorage.getItem('info')).type let typevalue = JSON.parse(sessionStorage.getItem('info')).type
if(typevalue===3){ if(typevalue===3){
menus.forEach((item,index)=>{ menus.forEach((item,index)=>{
if(item.title !=='管理员设置'&&item.title !=='首页'){ if(item.title !=='管理员设置'&&item.title !=='首页'&&item.title !=='第三方商城余额'){
item.hide = true item.hide = true
} }
}) })
@ -123,7 +123,7 @@ export default {
this.list = menus; this.list = menus;
}else{ }else{
menus.forEach((item,index)=>{ menus.forEach((item,index)=>{
if(item.title ==='管理员设置'||item.title ==='首页'){ if(item.title ==='管理员设置'||item.title ==='首页'||item.title ==='第三方商城余额'){
item.hide = true item.hide = true
} }
}) })

@ -13,11 +13,11 @@
<div class="login-input"> <div class="login-input">
<a-input v-model="form.username" placeholder="请输入手机号码"></a-input> <a-input v-model="form.username" placeholder="请输入手机号码"></a-input>
<a-input type="password" v-model="form.password" placeholder="请输入密码"></a-input> <a-input type="password" v-model="form.password" placeholder="请输入密码"></a-input>
<a-row> <!-- <a-row>
<a-col :span="12" style="margin-left: 23px" <a-col :span="12" style="margin-left: 23px"
><a-checkbox></a-checkbox>&nbsp;&nbsp;</a-col ><a-checkbox></a-checkbox>&nbsp;&nbsp;</a-col
> >
</a-row> </a-row> -->
<a-button <a-button
type="primary" type="primary"
@click="loginPWD" @click="loginPWD"
@ -27,7 +27,7 @@
</a-button> </a-button>
<a-row style="margin-top: 20px; margin-left: 23px"> <a-row style="margin-top: 20px; margin-left: 23px">
<a-col :span="14"> <a-col :span="14">
<a-checkbox></a-checkbox>&nbsp;&nbsp; <a-checkbox v-model="mmLogin"></a-checkbox>&nbsp;&nbsp;我已同意<a href="/#/user" target="tar">用户协议</a>
</a-col> </a-col>
<a-col :span="10"> <a-col :span="10">
<span class="logintext" @click="loginStatus = 3">忘记密码</span <span class="logintext" @click="loginStatus = 3">忘记密码</span
@ -49,14 +49,16 @@
<a-input <a-input
placeholder="请输入验证码" placeholder="请输入验证码"
v-model="form.code" v-model="form.code"
style="width: 60%" style="width: 50%"
></a-input> ></a-input>
<a-button type="primary" @click="getCode"></a-button> <a-button type="primary" @click="getCode" :disabled="inCodeGap">
<a-row> {{inCodeGap == false ? '获取验证码' : codeGap+'s后再次获取'}}
</a-button>
<!-- <a-row>
<a-col :span="12" style="margin-left: 23px" <a-col :span="12" style="margin-left: 23px"
><a-checkbox></a-checkbox>&nbsp;&nbsp;</a-col ><a-checkbox></a-checkbox>&nbsp;&nbsp;</a-col
> >
</a-row> </a-row> -->
<a-button <a-button
type="primary" type="primary"
@click="login" @click="login"
@ -66,7 +68,7 @@
</a-button> </a-button>
<a-row style="margin-top: 20px; margin-left: 23px"> <a-row style="margin-top: 20px; margin-left: 23px">
<a-col :span="14"> <a-col :span="14">
<a-checkbox></a-checkbox>&nbsp;&nbsp; <a-checkbox v-model="yzmLogin"></a-checkbox>&nbsp;&nbsp;我已同意<a href="/#/user" target="tar">用户协议</a>
</a-col> </a-col>
<a-col :span="10"> <a-col :span="10">
<span class="logintext" @click="loginStatus = 3">忘记密码</span <span class="logintext" @click="loginStatus = 3">忘记密码</span
@ -112,9 +114,12 @@
/> />
</a-col> </a-col>
<a-col :span="6"> <a-col :span="6">
<a-button type="primary" @click="registerCode" <!-- <a-button type="primary" @click="registerCode"
>获取验证码</a-button >获取验证码</a-button
> > -->
<a-button type="primary" @click="registerCode" :disabled="inCodeGap">
{{inCodeGap == false ? '获取验证码' : codeGap+'s后再次获取'}}
</a-button>
</a-col> </a-col>
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="设置密码" prop="password"> <a-form-model-item label="设置密码" prop="password">
@ -161,9 +166,12 @@
/> />
</a-col> </a-col>
<a-col :span="6"> <a-col :span="6">
<a-button type="primary" @click="getCode" <!-- <a-button type="primary" @click="getCode"
>获取验证码</a-button >获取验证码</a-button
> > -->
<a-button type="primary" @click="getCode" :disabled="inCodeGap">
{{inCodeGap == false ? '获取验证码' : codeGap+'s后再次获取'}}
</a-button>
</a-col> </a-col>
</a-row> </a-row>
</a-form-model-item> </a-form-model-item>
@ -203,7 +211,11 @@ export default {
data() { data() {
return { return {
loginStatus: 1, loginStatus: 1,
form,registerForm,registerRules form,registerForm,registerRules,
mmLogin: false,
yzmLogin: false,
inCodeGap: false,
codeGap: 60,
}; };
}, },
created() { created() {
@ -220,51 +232,106 @@ export default {
}; };
}, },
login() { login() {
if(this.yzmLogin == false) {
this.$message.error('请阅读并同意《用户协议》');
return false
}
loginTelCode(this.form).then((res) => { loginTelCode(this.form).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.$message.success(res.msg); this.$message.success(res.msg);
// token // token
this.form = {
username: "",
password: "",
tel: "",
code:""
}
this.setToken(res.data); this.setToken(res.data);
this.gettheCity() this.gettheCity()
userInfo().then(res =>{ userInfo().then(res =>{
console.log(res.data); let data = res.data.type
sessionStorage.setItem('info',JSON.stringify(res.data)) sessionStorage.setItem('info',JSON.stringify(res.data))
if(data == 3) {
this.$router.push("/"); this.$router.push("/");
} else {
this.$router.push('/Manage/SettleRequestManage')
};
}) })
} else { } else {
this.form.password = "";
this.form.code = ""
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}); });
}, },
loginPWD() { loginPWD() {
if(this.mmLogin == false) {
this.$message.error('请阅读并同意《用户协议》');
return false
}
loginPWD(this.form).then((res) => { loginPWD(this.form).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.$message.success(res.msg); this.$message.success(res.msg);
// token // token
this.setToken(res.data); this.setToken(res.data);
this.gettheCity() this.gettheCity();
this.form = {
username: "",
password: "",
tel: "",
code:""
}
userInfo().then(res =>{ userInfo().then(res =>{
let data = res.data.type
sessionStorage.setItem('info',JSON.stringify(res.data)) sessionStorage.setItem('info',JSON.stringify(res.data))
if(data == 3) {
this.$router.push("/"); this.$router.push("/");
} else {
this.$router.push('/Manage/SettleRequestManage')
};
}) })
} else { } else {
this.form.password = "";
this.form.code = ""
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}); });
}, },
// //
getCode() { getCode() {
let num = setInterval(() => {
this.inCodeGap = true;
this.codeGap -= 1;
if(this.codeGap < 1) {
clearInterval(num);
if(this.codeGap < 1) {
this.inCodeGap = false;
this.codeGap = 60;
}
}
},1000)
sendTelCode({ tel: this.form.tel }).then((res) => { sendTelCode({ tel: this.form.tel }).then((res) => {
if (res) { if (res) {
// this.$message.success(""); // this.$message.success("");
this.$message.success(res.msg + " " + res.data); this.$message.success(res.msg);
} }
}); });
}, },
// //
async registerCode(){ async registerCode(){
let num = setInterval(() => {
this.inCodeGap = true;
this.codeGap -= 1;
if(this.codeGap < 1) {
clearInterval(num);
if(this.codeGap < 1) {
this.inCodeGap = false;
this.codeGap = 60;
}
}
},1000)
let res = await sendRegisterCode({tel: this.registerForm.tel}) let res = await sendRegisterCode({tel: this.registerForm.tel})
this.$message.success(res.msg + " " + res.data); this.$message.success(res.msg);
}, },
// //
registerSubmit() { registerSubmit() {
@ -294,7 +361,7 @@ export default {
allCity().then(res => { allCity().then(res => {
this.setCity(res.data); this.setCity(res.data);
}) })
} },
}, },
}; };
</script> </script>

@ -0,0 +1,319 @@
<template>
<div class="main">
<div class="cardTitle">支付设置</div>
<div class="search-box">
<a-space size="large">
<a-form-model layout="inline">
<a-form-model-item label="商户名称">
<a-input placeholder="请输入商户名称"></a-input>
</a-form-model-item>
</a-form-model>
<a-button type="primary" @click="handlerSearch"> </a-button>
<a-button @click="handlerReset"> </a-button>
</a-space>
</div>
<div id="commonTable">
<div style="margin-bottom: 16px">
<a-button icon="plus" @click="hanlderAdd" type="primary" ghost>
添加设置信息
</a-button>
</div>
<a-table :columns="columns" :data-source="tableData" :pagination="pagination" @change="pageChange" :row-key="(record) => {return record.id}">
<template slot="communityList" slot-scope="text,record">
<span v-for="(item) in record.communityList" :key="item.id">
{{item.name}}
</span>
</template>
<template slot="status" slot-scope="text,record">
<a-switch :checked="record.status==2 ? false : true" checked-children="" un-checked-children="" @change="onChange(record)" />
</template>
<template slot="action" slot-scope="text,record">
<a @click="alipayEdit(record)"></a>
<a @click="boundEdit(record)" style="margin-left: 8px">绑定小区</a>
<a style="margin-left: 8px;color: red" @click="alipaySetDel(record)"></a>
</template>
</a-table>
</div>
<a-drawer :title="activeMode == 1 ? '新建支付':'编辑支付'" :visible="drawerVisible" @close="drawerClose" width="512">
<div class="drawer-content">
<a-form-model>
<a-row>
<a-col :span="24">
<a-form-model-item label="商户名称">
<a-input v-model="alipayForm.name" placeholder="请输入"></a-input>
</a-form-model-item>
<a-form-model-item label="支付宝APPID">
<a-input v-model="alipayForm.alipayAppId" placeholder="请输入"></a-input>
</a-form-model-item>
<a-form-model-item label="支付宝公钥">
<a-textarea v-model="alipayForm.alipayPublicKey" placeholder="请输入公钥"></a-textarea>
</a-form-model-item>
<a-form-model-item label="支付宝商户公钥">
<a-textarea v-model="alipayForm.rsaPublicKey" placeholder="请输入公钥"></a-textarea>
</a-form-model-item>
<a-form-model-item label="支付宝商户私钥">
<a-textarea v-model="alipayForm.rsaPrivatKey" placeholder="请输入私钥"></a-textarea>
</a-form-model-item>
<a-form-model-item label="支付宝授权TOKEN">
<a-textarea v-model="alipayForm.appAuthToken" placeholder="请输入"></a-textarea>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</div>
<div class="drawer-footer">
<a-button @click="drawerClose"></a-button>
<a-button style="margin-left: 8px" v-if="activeMode == 1" @click="alipayNext" type="primary"></a-button>
<a-button style="margin-left: 8px" v-else-if="activeMode == 2" @click="editConfirm" type="primary">确定</a-button>
</div>
</a-drawer>
<a-drawer title="绑定小区" :visible="boundVisible" @close="boundClose" width="512">
<div>全部小区</div>
<a-switch checked-children="" un-checked-children="" @change="selectAll"></a-switch>
<a-divider></a-divider>
<a-checkbox-group v-model="boundForm.communityIds" @change="cgChange">
<a-row>
<a-col style="padding: 6px" :span="24" v-for="(item, index) in comList" :key="index">
<a-checkbox :value="item.id">
{{item.name}}
</a-checkbox>
</a-col>
</a-row>
</a-checkbox-group>
<div class="drawer-footer">
<a-button @click="boundClose"></a-button>
<a-button @click="boundConfirm" type="primary">保存</a-button>
</div>
</a-drawer>
</div>
</template>
<script>
import {alipayList, isEnable, alipayDelete, alipayUpdate} from "@/api/manage"
import {alipayInsert, alipayBound, findBindById, findInfoById} from "@/api/manage"
import {getAllCommunityInfo} from "@/api/basic/console"
export default {
name: 'PaymentSet',
data() {
return {
form: {
name: ''
},
alipayForm: {
name: '',
alipayAppId: '',
alipayPublicKey: '',
rsaPublicKey: '',
rsaPrivatKey: '',
appAuthToken: ''
},
boundForm: {
alipaySettingId: undefined,
communityIds: []
},
tableData: [],
columns: [
{
title: "商户名称",
dataIndex: "name",
width: "200",
},
{
title: "绑定小区",
dataIndex: "communityList",
width: "200",
scopedSlots: { customRender: "communityList" },
},
{
title: "状态",
dataIndex: "status",
width: "200",
scopedSlots: { customRender: "status" },
},
{
title: "操作",
dataIndex: "action",
key: "action",
width: "180",
fixed: "right",
scopedSlots: { customRender: "action" },
},
],
pagination: {
current: 1,
total: 0,
pageSize: 10,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
},
//
activeMode: 1, //1 2
activeId: undefined,
drawerVisible: false,
//
comList: [],
boundVisible: false,
}
},
mounted() {
this.getApi();
this.getData()
},
methods: {
getApi() {
getAllCommunityInfo().then(res => {
let data = res.data;
this.comList = data;
})
},
getData() {
let obj = {pageNum: this.pagination.current, size: this.pagination.pageSize, name: this.form.name};
alipayList(obj).then(res => {
let data = res.data.rows;
this.pagination.total = res.data.total;
this.tableData = data;
})
},
handlerSearch() {
},
handlerReset() {
},
hanlderAdd() {
this.activeMode = 1;
this.alipayForm = {
name: '',
alipayAppId: '',
alipayPublicKey: '',
rsaPublicKey: '',
rsaPrivatKey: '',
appAuthToken: ''
},
this.drawerVisible = true;
},
//
alipayEdit(record) {
this.activeMode = 2;
findInfoById({alipaySettingId: record.id}).then(res => {
let data = res.data;
this.activeId = data.id;
this.alipayForm.name = data.name;
this.alipayForm.alipayAppId = data.alipayAppId;
this.alipayForm.alipayPublicKey = data.alipayPublicKey;
this.alipayForm.appAuthToken = data.appAuthToken;
this.alipayForm.rsaPrivatKey = data.rsaPrivatKey;
this.alipayForm.rsaPublicKey = data.rsaPublicKey;
})
this.drawerVisible = true;
},
//
boundEdit(record) {
this.boundForm.alipaySettingId = record.id;
findBindById({alipaySettingId: record.id}).then(res => {
let data = res.data;
this.boundForm.communityIds = data.communityIds
})
this.boundVisible = true;
},
//
pageChange(val) {
this.pagination.pageSize = val.pageSize;
this.pagination.current = val.current;
this.getData()
},
//
onChange(record) {
let obj = {alipaySettingId: record.id}
isEnable(obj).then(res => {
if (res.code === 200) {
this.$message.success(res.msg);
this.getData();
} else {
this.$message.error(res.msg);
}
})
},
//
alipaySetDel(record) {
let obj = {alipaySettingIds : [record.id]};
this.$confirm({
title: "是否删除?",
icon:'close',
onOk:async()=>{
let res = await alipayDelete(obj);
if (res.code === 200) {
this.$message.success(res.msg);
this.getData();
} else {
this.$message.error(res.msg);
}
},
})
},
//
drawerClose() {this.drawerVisible = false},
boundClose() {this.boundVisible = false},
alipayNext() {
alipayInsert(this.alipayForm).then(res => {
if (res.code === 200) {
this.$message.success(res.msg);
this.getData();
this.drawerVisible = false;
// this.boundVisible = true;
} else {
this.$message.error(res.msg);
}
})
},
//
editConfirm() {
let obj = Object.assign({}, this.alipayForm, {id: this.activeId})
alipayUpdate(obj).then(res => {
if (res.code === 200) {
this.$message.success(res.msg);
this.getData();
this.drawerVisible = false;
} else {
this.$message.error(res.msg);
}
})
},
//
cgChange(val) {
this.boundForm.communityIds = val
}, //
selectAll(val) {
if(val == true) {
let arr = []
getAllCommunityInfo().then(res => {
let data = res.data;
data.forEach(ele => {
arr.push(ele.id)
})
});
this.boundForm.communityIds = arr
} else {
this.boundForm.communityIds = []
}
},
boundConfirm() {
alipayBound(this.boundForm).then(res => {
if (res.code === 200) {
this.$message.success(res.msg);
this.getData();
this.boundForm = {alipaySettingId: undefined, communityIds: []}
this.boundVisible = false;
} else {
this.$message.error(res.msg);
}
})
}
}
}
</script>
<style>
</style>

@ -0,0 +1,13 @@
<template>
<router-view></router-view>
</template>
<script>
export default {
name: 'AdminSet'
}
</script>
<style>
</style>

@ -0,0 +1,372 @@
<template>
<div class="main">
<div class="cardTitle">收费标准</div>
<div class="search-box">
<a-space size="large">
<a-form-model layout="inline">
<a-form-model-item label="模版名称">
<a-input v-model="form.name" placeholder="请输入模版名称" />
</a-form-model-item>
<a-form-model-item label="状态">
<a-select placeholder="请选择状态" style="width: 180px" allowClear v-model="form.status">
<a-select-option :value="1">
启用
</a-select-option>
<a-select-option :value="2">
禁用
</a-select-option>
</a-select>
</a-form-model-item>
</a-form-model>
<a-button @click="onSearch" type="primary"> </a-button>
<a-button @click="onReset"> </a-button>
</a-space>
</div>
<div id="commonTable">
<div style="margin-bottom: 16px">
<a-button icon="plus" @click="handlerAdd" type="primary" ghost>
新建收费模版
</a-button>
</div>
<a-table
:scroll="{ x: 1300 }"
:columns="columns"
:data-source="tableData"
:pagination="pagination"
@change="handleTableChange"
:row-key="
(record, index) => {
return index;
}
"
>
<span slot="tags" slot-scope="text, record">
<a-tag v-for="(item, index) in record.includeFunctionModelList" :key="index" :color="colors[index] ? colors[index] : 'black'">
{{item}}
</a-tag>
</span>
<span slot="formatter" slot-scope="text, record">
<a-switch :checked="record.status==2 ? false : true" checked-children="" un-checked-children="" @change="onChange(record)" />
</span>
<span slot="action" slot-scope="text,record">
<a @click="detail(record)"></a>
</span>
</a-table>
<!-- 新建/修改框 -->
<a-drawer :title="drawerModel == 1 ? '新建收费模版':'修改收费模版'" :visible="visible" @close="hanlderClose" width="512">
<a-form-model>
<a-form-model-item label="模版名称">
<a-input v-model="addForm.name" style="width: 240px" placeholder="请输入模版名称" />
</a-form-model-item>
<a-form-model-item label="功能模块大类">
<!-- <a-checkbox-group :options="modalType" @change="modelChange" /> -->
<a-checkbox-group v-model="chargingFunctionIds">
<a-checkbox v-for="(item) in modelInput" :value="item.id" :key="item.id">
{{item.name}}
</a-checkbox>
</a-checkbox-group>
</a-form-model-item>
<a-form-model-item label="时间类型">
<!-- <a-checkbox-group :options="timeType" @change="timeChange" /> -->
<a-checkbox-group v-model="chargingTimeTypeIds">
<a-checkbox v-for="(item) in timeInput" :value="item.id" :key="item.id">
{{item.years}}{{item.months}}个月{{item.days}}
</a-checkbox>
</a-checkbox-group>
</a-form-model-item>
<a-form-model-item label="价格参数">
<div class="columns">
<span class="columns-item">功能模块</span>
<span class="columns-item">时间</span>
<span class="columns-item">价格</span>
</div>
<div class="model-item" v-for="(item, index) in modelInput" :key="index">
<template v-if="chargingFunctionIds.indexOf(item.id)!=-1">
<span class="models">{{item.name}}</span>
<span class="models2">
<div v-for="(it , id) in timeInput" :key="id">
<span v-if="chargingTimeTypeIds.indexOf(it.id)!=-1">
{{it.years}}{{it.months}}个月{{it.days}}
<a-input-number step="0.01" v-model="addForm.chargingTemplateFunctionTimeTypeDTO[id + index * timeInput.length].unitPrice" style="width:120px;margin-left: 65px"></a-input-number>
</span>
</div>
</span>
</template>
</div>
</a-form-model-item>
</a-form-model>
<a-button v-if="drawerModel==1" @click="addConfirm" type="primary"></a-button>
<a-button v-else type="primary" @click="addConfirm"></a-button>
</a-drawer>
</div>
</div>
</template>
<script>
import {getChargingList, getChargeById} from "@/api/manage"
import {onoffCharging} from "@/api/manage"
import {findTimeType, findSuperNavigation, addCharge, updateCharge } from "@/api/manage";
export default {
name: "chagingStandard",
data() {
return {
drawerModel: 1,
form: {
pageNum: 1,
size: 10,
name: '',
status: undefined
},
chargingFunctionIds: [],
chargingTimeTypeIds: [],
// colors: ['volcano','orange','yellow','green','blue','purple','grey'],
colors: ['#1F519B','#1F519B','#1F519B','#1F519B','#1F519B','#1F519B','#1F519B','#1F519B','#1F519B',],
tableData: [],
columns: [
{
title: "模版名称",
dataIndex: "name",
width: 120,
},
{
title: "包含功能模块",
dataIndex: "includeFunctionModelList",
scopedSlots: { customRender: "tags" },
width: 360,
},
{
title: "已购买次数",
dataIndex: "payNum",
width: 120,
},
{
title: "状态",
dataIndex: "status",
scopedSlots: { customRender: "formatter" },
width: 120,
},
{
title: "操作",
dataIndex: "action",
key: "action",
width: 180,
fixed: "right",
scopedSlots: { customRender: "action" },
},
],
pagination: {
current: 1,
total: 0,
pageSize: 10,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
},
//
addForm: {
name: '',
chargingTemplateFunctionTimeTypeDTO: [
{
chargingFunctionId: 0,
chargingTimeTypeId: 0,
unitPrice: 0,
}
],
},
visible: false,
//
// timeType: [],
activeTime: [],
timeInput: [],
//
// modalType: [],
activeModel: [],
modelInput: [],
}
},
mounted() {
this.getType();
this.getData();
},
methods: {
getData() {
getChargingList(this.form).then(res => {
this.pagination.total = res.data.total;
let data = res.data.rows;
this.tableData = data;
this.doPrice();
})
},
//
getType() {
findTimeType().then(res => {
let data = res.data;
this.timeInput = data; //
// let opts = [];
// data.forEach(ele => {
// let obj = {
// label: ele.years+'' + ele.months+'' + ele.days+'',
// value: ele.id
// };
// opts.push(obj)
// })
// this.timeType = opts //
});
findSuperNavigation().then(res => {
let data = res.data;
this.modelInput = data; //
// let opts = [];
// data.forEach(ele => {
// let obj = {
// label: ele.name, value: ele.id
// };
// opts.push(obj)
// })
// this.modalType = opts //
})
},
//
doPrice() {
let addForm = [];
for(let i = 0;i < this.modelInput.length;i++){
for(let j = 0; j < this.timeInput.length;j++) {
let obj = {
chargingFunctionId: this.modelInput[i].id,
chargingTimeTypeId: this.timeInput[j].id,
unitPrice: 0,
};
addForm.push(obj)
}
};
this.addForm.chargingTemplateFunctionTimeTypeDTO = addForm;
},
//
handleTableChange(pagination) {
this.pagination.current = pagination.current
this.pagination.pageSize = pagination.pageSize
this.form.size = pagination.pageSize;
this.form.pageNum = pagination.current;
this.getData();
},
//
handlerAdd() {
this.drawerModel = 1;
this.addForm.name = '';
this.chargingFunctionIds = [];
this.chargingTimeTypeIds = [];
this.visible = true
},
//-
// modelChange(val) {
// this.activeModel = val;
// },
// timeChange(val) {
// this.activeTime = val
// },
hanlderClose() {
this.visible = false
},
//
addConfirm() {
let adds = this.addForm.chargingTemplateFunctionTimeTypeDTO
let chosenAdds = [];
adds.forEach(ele => {
if(this.chargingFunctionIds.indexOf(ele.chargingFunctionId)!= -1 &&
this.chargingTimeTypeIds.indexOf(ele.chargingTimeTypeId)!= -1) {
let obj = {
chargingFunctionId: ele.chargingFunctionId,
chargingTimeTypeId: ele.chargingTimeTypeId,
unitPrice: ele.unitPrice
};
chosenAdds.push(obj)
}
})
let obj = {
name: this.addForm.name,
chargingTemplateFunctionTimeTypeDTO: chosenAdds
}
if(this.drawerModel == 1) {
addCharge(obj).then((res) => {
if (res.code === 200) {
this.visible = false
this.$message.success(res.msg);
this.getData();
} else {
this.$message.error(res.msg);
}
})
} else {
let o = Object.assign(obj, {id: this.chosenModel});
updateCharge(o).then((res) => {
if (res.code === 200) {
this.visible = false
this.$message.success(res.msg);
this.getData();
} else {
this.$message.error(res.msg);
}
})
};
},
//
detail(record) {
this.chosenModel = record.id
this.drawerModel = 2;
getChargeById({id: record.id}).then(res => {
let data = res.data;
this.addForm.name = data.name
this.chargingFunctionIds = data.functionList;
this.chargingTimeTypeIds = data.timeTypeList;
let arr = this.addForm.chargingTemplateFunctionTimeTypeDTO
let j = 0;
for(let i=0;i<arr.length;i++) {
if(this.chargingFunctionIds.indexOf(arr[i].chargingFunctionId)!= -1 &&
this.chargingTimeTypeIds.indexOf(arr[i].chargingTimeTypeId)!= -1) {
arr[i].unitPrice = data.chargingFunctionToTimeTypeVos[j].unitPrice;
j = j+1;
}
};
this.addForm.chargingTemplateFunctionTimeTypeDTO = arr;
})
this.visible = true
},
///
onChange(record) {
let obj = {id: record.id}
onoffCharging(obj).then(() => {
this.getData()
})
},
//
onSearch() {
this.getData()
},
onReset() {
this.form.name = '';
this.getData();
}
}
}
</script>
<style lang="less" scoped>
.columns {
display: flex;
justify-content: flex-start;
background: lightgrey;
.columns-item {
width: 160px;
}
}
.model-item {
display: flex;
justify-content: flex-start;
.models {
width: 160px;
}
.models2 {
width: 320px;
}
}
</style>

@ -0,0 +1,122 @@
<template>
<div class="main">
<div class="cardTitle">账单明细</div>
<a-divider />
<div class="content">
<a-descriptions title="账单信息" :column="3">
<a-descriptions-item label="订单号">
{{infoList.code}}
</a-descriptions-item>
<a-descriptions-item label="公司全称">
{{infoList.companyName}}
</a-descriptions-item>
<a-descriptions-item label="绑定账户">
{{infoList.userName}}
</a-descriptions-item>
<a-descriptions-item label="绑定小区">
{{infoList.communityName}}
</a-descriptions-item>
<a-descriptions-item label="小区地址">
{{infoList.communityAddress}}
</a-descriptions-item>
<a-descriptions-item label="购买功能">
<a-tag v-for="(item, index) in infoList.includeFunctionModelList" :key="index">
{{item}}
</a-tag>
</a-descriptions-item>
<a-descriptions-item label="时间备注">
{{infoList.remakes}}
</a-descriptions-item>
<a-descriptions-item label="支付方式">
{{infoList.payType == 1 ? '线上' : (infoList.payType == 2 ? '支付宝' : '微信')}}
</a-descriptions-item>
<a-descriptions-item label="支付金额">
{{infoList.price}}
</a-descriptions-item>
<a-descriptions-item label="购买时间">
{{infoList.buyingDate}}
</a-descriptions-item>
<a-descriptions-item label="有效期至">
{{infoList.expirationDate}}
</a-descriptions-item>
</a-descriptions>
<a-divider></a-divider>
<a-descriptions title="退款记录">
</a-descriptions>
<a-table :columns="columns" :data-source="tableData" :row-key="(record,index) => {return index}">
<span slot="payment" slot-scope="scope">
<div v-if="scope == 1">线</div>
<div v-if="scope == 2"></div>
<div v-if="scope == 3"></div>
</span>
</a-table>
<div class="footer">
<a-space style="margin-left: 70%">
<a-button type="primary">导出</a-button>
<a-button @click="goBack"></a-button>
</a-space>
</div>
</div>
</div>
</template>
<script>
import {getOrderDetail} from "@/api/manage"
export default {
name: "billDetail",
data() {
return {
form: {
id: 0,
},
infoList: [],
//退
columns: [
{
title: "退款时间",
dataIndex: "refundDate",
width: "200",
},
{
title: "退款金额",
dataIndex: "price",
width: "200",
},
{
title: "退款原因",
dataIndex: "reason",
width: "200",
},
{
title: "退款方式",
dataIndex: "type",
width: "200",
scopedSlots: { customRender: "payment" },
},
],
tableData: [],
}
},
mounted() {
this.form.id = this.$route.query.id;
this.getData();
},
methods: {
getData() {
let obj = Object.assign({}, this.form)
getOrderDetail(obj).then(res => {
let data = res.data;
this.infoList = data;
this.tableData = data.financialStatementsDetailRefundVoList
})
},
goBack() {
this.$router.go(-1);
}
}
}
</script>
<style>
</style>

@ -0,0 +1,153 @@
<template>
<div class="main">
<div class="cardTitle">退款订单</div>
<div class="content">
<a-descriptions style="padding: 12px" title="退款信息" :column="3">
<a-descriptions-item label="订单号">
{{infoList.code}}
</a-descriptions-item>
<a-descriptions-item label="公司信息">
{{infoList.companyName}}
</a-descriptions-item>
<a-descriptions-item label="小区信息">
{{infoList.communityName}}
</a-descriptions-item>
<a-descriptions-item label="小区地址">
{{infoList.communityAddress}}
</a-descriptions-item>
</a-descriptions>
<a-divider></a-divider>
<div class="payback-content">
<a-form-model :labelCol="{span: 2}" :wrapperCol="{span: 5,offset: 0}">
<a-form-model-item label="取消功能模块:">
<a-checkbox-group :options="modelType" @change="modelChange" />
</a-form-model-item>
<a-form-model-item label="退款金额">
<a-input-number v-model="paybackForm.price"></a-input-number>
</a-form-model-item>
<a-form-model-item label="退款方式">
<a-select v-model="paybackForm.type" placeholder="请选择退款方式">
<a-select-option :value="1">
线上
</a-select-option>
<a-select-option :value="2">
支付宝
</a-select-option>
<a-select-option :value="3">
微信
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="退款原因">
<a-textarea placeholder="请输入退款原因" v-model="paybackForm.reason"></a-textarea>
</a-form-model-item>
</a-form-model>
</div>
</div>
<div class="footer">
<a-space style="margin-left: 70%">
<a-button @click="handlerConfirm" type="primary">确定</a-button>
<a-button @click="goBack"></a-button>
</a-space>
</div>
<a-modal
title="确认退款信息"
:visible="auditShow"
@ok="auditSubmit"
@cancel="auditCancel"
>
<div class="content">
<a-descriptions :column="1">
<a-descriptions-item label="退款金额">
{{paybackForm.price}}
</a-descriptions-item>
<a-descriptions-item label="退款方式">
{{paybackForm.type == 1 ? '线上' : (paybackForm.type == 2 ? '支付宝' : '微信')}}
</a-descriptions-item>
<a-descriptions-item label="退款原因">
{{paybackForm.reason}}
</a-descriptions-item>
</a-descriptions>
</div>
</a-modal>
</div>
</template>
<script>
import {getPayback} from "@/api/manage";
import {postRefund} from "@/api/manage";
export default {
name: "billDetail",
data() {
return {
form: {
id: 0,
},
infoList: [],
paybackForm: {
functionOrderId: undefined,
chargingFunctionIds: '',
type: 1,
price: 0,
reason: '',
},
auditShow: false,
modelType: [],
}
},
mounted() {
this.form.id = this.$route.query.id;
this.paybackForm.functionOrderId = this.$route.query.id;
this.getData();
},
methods: {
getData() {
let obj = Object.assign({}, this.form)
getPayback(obj).then(res => {
let data = res.data;
this.infoList = data;
let modelType = [];
data.chooseFunctionModelVoList.forEach(ele => {
let obj = {label: ele.name, value: ele.id};
modelType.push(obj)
});
this.modelType = modelType
})
},
modelChange(val) {
let chargingFunctionIds = val.toString();
this.paybackForm.chargingFunctionIds = chargingFunctionIds
},
//
handlerConfirm() {
this.auditShow = true;
},
goBack() {
this.$router.go(-1);
},
auditSubmit() {
postRefund(this.paybackForm).then((res) => {
if (res.code === 200) {
this.$message.success(res.msg);
this.$router.go(-1);
} else {
this.$message.error(res.msg);
}
});
this.auditShow = false;
},
auditCancel() {
this.auditShow = false
}
}
}
</script>
<style lang="less">
.payback-content {
width: 100%;
}
.btn-container {
float: right;
}
</style>

@ -0,0 +1,176 @@
<template>
<div class="main">
<div class="cardTitle">财务账单</div>
<div class="search-box">
<a-space size="large">
<a-form-model layout="inline">
<a-form-model-item label="订单时间范围">
<a-date-picker v-model="form.createDateStart" placeholder="请选择开始时间" />
<a-date-picker v-model="form.createDateEnd" placeholder="请选择结束时间" />
</a-form-model-item>
<a-form-model-item label="购买时间范围">
<a-date-picker v-model="form.buyingDateStart" placeholder="请选择开始时间" />
<a-date-picker v-model="form.buyingDateEnd" placeholder="请选择结束时间" />
</a-form-model-item>
</a-form-model>
</a-space>
</div>
<div class="search-box">
<a-space size="large">
<a-form-model layout="inline">
<a-form-model-item label="订单号">
<a-input v-model="form.code" placeholder="请输入订单号" />
</a-form-model-item>
<a-form-model-item label="公司名称">
<a-input v-model="form.name" placeholder="请输入公司名称" />
</a-form-model-item>
</a-form-model>
<a-button @click="onSearch" type="primary"> </a-button>
<a-button @click="onReset"> </a-button>
</a-space>
</div>
<div id="commonTable">
<a-table
:scroll="{ x: 1300 }"
:columns="columns"
:data-source="tableData"
:pagination="pagination"
@change="handleTableChange"
:row-key="
(record, index) => {
return index;
}
"
>
<span slot="tags" slot-scope="text, record">
<a-tag v-for="(item, index) in record.includeFunctionModelList" :key="index" :color="colors[index] ? colors[index] : 'black'">
{{item}}
</a-tag>
</span>
<span slot="action" slot-scope="text,record">
<a @click="payback(record)">退</a>
<span style="margin: 5px">|</span>
<a @click="billDetail(record)"></a>
</span>
</a-table>
</div>
</div>
</template>
<script>
import {getAllList} from "@/api/manage"
export default {
name: "chagingStandard",
data() {
return {
form: {
pageNum: 1,
size: 10,
code: '',
name: '',
createDateStart: '',
createDateEnd: '',
buyingDateStart: '',
buyingDateEnd: ''
},
tableData: [],
colors: ['volcano','orange','yellow','green','blue','purple','grey'],
columns: [
{
title: "订单号",
dataIndex: "code",
width: 150,
},
{
title: "公司名称",
dataIndex: "name",
width: 150,
},
{
title: "付款金额",
dataIndex: "payPrice",
width: 150,
},
{
title: "包含功能模块",
dataIndex: "includeFunctionModelList",
scopedSlots: { customRender: "tags" },
width: 350,
},
{
title: "订单生成时间",
dataIndex: "createDate",
width: 160,
},
{
title: "操作",
dataIndex: "action",
key: "action",
width: 180,
fixed: "right",
scopedSlots: { customRender: "action" },
},
],
pagination: {
current: 1,
total: 0,
pageSize: 10,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
}
}
},
mounted() {
this.getData()
},
methods: {
getData() {
getAllList(this.form).then(res => {
this.pagination.total = res.data.total;
let data = res.data.rows;
this.tableData = data;
})
},
//
handleTableChange(pagination) {
this.form.size = pagination.pageSize;
this.form.pageNum = pagination.current;
this.getData();
},
//
onSearch() {
this.getData()
},
onReset() {
this.form.name = '';
this.getData();
},
//退
payback(record) {
this.$router.push(
{
name:'_payback',
query: {
id: record.id
}
}
)
},
billDetail(record) {
this.$router.push(
{
name:'_billDetail',
query: {
id: record.id
}
}
)
}
}
}
</script>
<style lang="less" scoped>
</style>

@ -0,0 +1,13 @@
<template>
<router-view></router-view>
</template>
<script>
export default {
}
</script>
<style>
</style>

@ -1,61 +1,59 @@
<template> <template>
<div> <div>
<div class="main"> <div class="main">
<div class="cardTitle">企业信息</div> <div class="cardTitle">客户信息</div>
<a-divider /> <a-divider />
<div class="content"> <div class="content">
<a-descriptions title="基本信息" :column="3"> <a-descriptions title="基本信息" :column="3">
<a-descriptions-item label="企业名称"> <a-descriptions-item label="企业名称">
浙江比利时物业有限公司 {{infoList.companyName}}
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="公司地址"> <a-descriptions-item label="公司地址">
湖南省湘潭市岳塘区红旗街道 8 单元 111 {{infoList.companyAddressDetails}}
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="社会信用代码" <a-descriptions-item label="社会信用代码"
>39123m13841bdi123341 >{{infoList.socialCreditCode}}
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="法人名称"> 陈晨 </a-descriptions-item> <a-descriptions-item label="法人名称"> {{infoList.legalPersonName}} </a-descriptions-item>
<a-descriptions-item label="法人身份证号" <a-descriptions-item label="法人身份证号"
>621222199804287702</a-descriptions-item >{{infoList.legalPersonIdCard}}</a-descriptions-item
> >
<a-descriptions-item label="执照有效期限"> <a-descriptions-item label="执照有效期限">
2021/04/09 2021/04/09</a-descriptions-item {{infoList.licenseTimeStart}}
> {{infoList.licenseTimeEnd == null ? '长期' : infoList.licenseTimeEnd}}
</a-descriptions-item>
</a-descriptions> </a-descriptions>
<a-descriptions title="法人身份证照" :column="1"> <a-descriptions title="法人身份证照" :column="1">
<a-descriptions-item label="头像面" @click="download(this.img)" <a-descriptions-item label="头像面" @click="download(this.img)"
><img :src="img" alt="" >
/></a-descriptions-item> <img :src="item.url" alt="" v-for="(item, index) in infoList.idCardFrontImgList" :key="index">
</a-descriptions-item>
<a-descriptions-item label="国徽面" <a-descriptions-item label="国徽面"
><img :src="img" alt="" ><img :src="item.url" alt="" v-for="(item, index) in infoList.idCardBackImgList" :key="index">
/></a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="营业执照" <a-descriptions-item label="营业执照"
><img :src="img" alt="" ><img :src="item.url" alt="" v-for="(item, index) in infoList.businessLicenseImgList" :key="index">
/></a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="其他附件" <a-descriptions-item label="其他附件"
><img :src="img" alt="" /><img :src="img" alt="" /><img ><img :src="item.url" alt="" v-for="(item, index) in infoList.othersImgList" :key="index">
:src="img" </a-descriptions-item>
alt="" /><img :src="img" alt="" /><img :src="img" alt="" /><img
:src="img"
alt=""
/></a-descriptions-item>
</a-descriptions> </a-descriptions>
<a-descriptions title="联系人信息" :column="3"> <a-descriptions title="联系人信息" :column="3">
<a-descriptions-item label="联系人"> 周立 </a-descriptions-item> <a-descriptions-item label="联系人"> {{infoList.contactsName}} </a-descriptions-item>
<a-descriptions-item label="联系人号码"> <a-descriptions-item label="联系人号码">
18716191912 {{infoList.contactsTel}}
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="邮箱">hpzs@sina.com </a-descriptions-item> <a-descriptions-item label="邮箱">{{infoList.contactsEmail}} </a-descriptions-item>
<a-descriptions-item label="联系人地址"> <a-descriptions-item label="联系人地址">
陕西省铜川市宜君县哭泉乡 10 单元 98 {{infoList.contactsAddressDetails}}
</a-descriptions-item> </a-descriptions-item>
</a-descriptions> </a-descriptions>
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<a-space style="margin-left: 70%"> <a-space style="margin-left: 70%">
<a-button type="primary" @click="auditShow=true"></a-button> <!-- <a-button type="primary" @click="auditShow=true"></a-button> -->
<a-button @click="cancel"></a-button> <a-button @click="cancel"></a-button>
</a-space> </a-space>
</div> </div>
<a-modal <a-modal
@ -90,19 +88,30 @@
</template> </template>
<script> <script>
import {getCustomerDetail} from "@/api/manage"
export default { export default {
data() { data() {
return { return {
form:{ form:{
type:'1', id: undefined
remark:''
}, },
auditShow: false, auditShow: false,
infoList: {},
detailData: {}, detailData: {},
img: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimgcdn.scol.com.cn%2FNEWS_1F3371B8BC0CD062D6AF69E363F8E32A.JPG&refer=http%3A%2F%2Fimgcdn.scol.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1643355029&t=835fe0ff21af86e6996eb308794df217", img: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimgcdn.scol.com.cn%2FNEWS_1F3371B8BC0CD062D6AF69E363F8E32A.JPG&refer=http%3A%2F%2Fimgcdn.scol.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1643355029&t=835fe0ff21af86e6996eb308794df217",
}; };
}, },
mounted() {
this.form.id = this.$route.query.id
this.getData();
},
methods: { methods: {
getData() {
getCustomerDetail(this.form).then(res => {
let data = res.data;
this.infoList = data;
})
},
download() {}, download() {},
cancel() { cancel() {
this.$router.go(-1); this.$router.go(-1);

@ -5,34 +5,31 @@
<!-- 搜索 --> <!-- 搜索 -->
<div class="search-box"> <div class="search-box">
<a-space size="large"> <a-space size="large">
<a-input placeholder="请输入申请人/公司名" /> <a-form-model layout="inline">
<a-select style="width: 200px" placeholder="选择状态" /> <a-form-model-item label="联系人">
<a-button type="primary"> </a-button> <a-input placeholder="请输入联系人" v-model="searchForm.name" />
<a-button> </a-button> </a-form-model-item>
<!-- <a-form-model-item label="到期状态">
<a-select style="width: 200px" placeholder="选择状态" v-model="searchForm.status">
<a-select-option :value="1">全部数据</a-select-option>
<a-select-option :value="2">已到期</a-select-option>
<a-select-option :value="3">未到期</a-select-option>
<a-select-option :value="4">临近到期</a-select-option>
</a-select>
</a-form-model-item> -->
</a-form-model>
<a-button type="primary" @click="handlerSearch"> </a-button>
<a-button @click="handlerReset"> </a-button>
</a-space> </a-space>
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div id="commonTable"> <div id="commonTable">
<div style="margin-bottom: 16px">
<a-button type="primary" :disabled="!hasSelected" :loading="loading">
批量操作
</a-button>
<span style="margin-left: 8px">
<template v-if="hasSelected">
{{ `已选择 ${selectedRowKeys.length}` }}
</template>
</span>
</div>
<a-table <a-table
:scroll="{ x: 1300 }" :scroll="{ x: 1300 }"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:pagination="pagination" :pagination="pagination"
@change="handleTableChange" @change="handleTableChange"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:row-key=" :row-key="
(record, index) => { (record, index) => {
return index; return index;
@ -40,74 +37,55 @@
" "
> >
<!-- 操作 --> <!-- 操作 -->
<span slot="action" slot-scope="scope"> <span slot="action" slot-scope="text,record">
<a @click="detail(scope)"></a> <a @click="detail(record)"></a>
</span> </span>
<span slot="formatter" slot-scope="scope">{{ <!-- <span slot="formatter" slot-scope="scope">{{
scope === 1 ? "可" : "" scope === 1 ? "可" : ""
}}</span> }}</span> -->
</a-table> </a-table>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import {getCustomerList} from "@/api/manage/index.js"
export default { export default {
data() { data() {
return { return {
// //
searchForm: { searchForm: {
name: "", name: "",
code: "", status: 1,
pageNum: 1,
size: 10,
}, },
// //
columns: [ columns: [
{ {
title: "Name", title: "公司名",
dataIndex: "name", dataIndex: "companyName",
width: "200", key: "companyName",
},
{
title: "Gender",
dataIndex: "gender",
width: "200",
},
{
title: "Gender1",
dataIndex: "gender1",
width: "200",
},
{
title: "Gender2",
dataIndex: "gender2",
width: "200",
},
{
title: "Gender3",
dataIndex: "gender3",
width: "200",
},
{
title: "Gender4",
dataIndex: "gender4",
width: "200", width: "200",
}, },
{ {
title: "Gender5", title: "联系人",
dataIndex: "gender5", dataIndex: "contactsName",
key: "contactsName",
width: "200", width: "200",
}, },
{ {
title: "Gender6", title: "联系人手机",
dataIndex: "gender6", dataIndex: "contactsTel",
width: "200", key: "contactsTel",
},
{
title: "status",
dataIndex: "status",
scopedSlots: { customRender: "formatter" },
width: "200", width: "200",
}, },
// {
// title: "status",
// dataIndex: "status",
// scopedSlots: { customRender: "formatter" },
// width: "200",
// },
{ {
title: "操作", title: "操作",
dataIndex: "action", dataIndex: "action",
@ -118,23 +96,7 @@ export default {
}, },
], ],
// //
tableData: [ tableData: [],
{
name: "11",
id: 1,
status: 1,
},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
],
// //
pagination: { pagination: {
current: 1, current: 1,
@ -148,26 +110,45 @@ export default {
selectedRowKeys: [], selectedRowKeys: [],
}; };
}, },
mounted(){}, mounted() {
this.getData();
},
computed: { computed: {
hasSelected() { hasSelected() {
return this.selectedRowKeys.length > 0; return this.selectedRowKeys.length > 0;
}, },
}, },
methods: { methods: {
detail(){ getData() {
this.$router.push({name:'customer_detail'}) getCustomerList(this.searchForm).then(res => {
let data = res.data;
this.tableData = data.rows;
this.pagination.total = data.total;
})
},
detail(index){
this.$router.push({
name:'customer_detail',
query: {
id: index.id
}
})
},
//
handlerSearch() {
this.getData()
}, },
onSelectChange(selectedRowKeys) { //
console.log("selectedRowKeys changed: ", selectedRowKeys); handlerReset() {
this.selectedRowKeys = selectedRowKeys; this.searchForm.name = '';
this.searchForm.status = 1;
this.getData()
}, },
//
handleTableChange(pagination) { handleTableChange(pagination) {
console.log(pagination); this.searchForm.size = pagination.pageSize;
const pager = { ...this.pagination }; this.searchForm.pageNum = pagination.current;
pager.current = pagination.current; this.getData();
pager.pageSize = pagination.pageSize;
this.pagination = pager;
}, },
}, },
}; };

@ -0,0 +1,228 @@
<template>
<div class="main">
<div class="main-content">
<div class="cardTitle">添加订单信息</div>
<div class="content">
<a-form-model :labelCol="{span: 2}" :wrapperCol="{span: 8}">
<a-form-model-item label="订单号">
<a-input v-model="form.code" ></a-input>
</a-form-model-item>
<a-form-model-item label="支付类型">
<a-select v-model="form.payType">
<a-select-option :value="1">线下</a-select-option>
<a-select-option :value="2">支付宝</a-select-option>
<a-select-option :value="3">微信</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="选择收费模版">
<a-select v-model="form.chargingTemplateId" @change="modelChange">
<a-select-option :value="item.id" v-for="(item, index) in modelData" :key="index">
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="选择功能模块">
<a-checkbox-group v-model="form.modelFunctionId" :options="functionType" @change="functionChange" />
</a-form-model-item>
<a-form-model-item label="选择有效时长">
<a-select v-model="form.timeTypeId" @change="timeChange">
<a-select-option :value="item.id" v-for="(item, index) in timeType" :key="index">
<!-- {{item.years == 0 ? '' : item.years+'年'}}
{{item.months == 0 ? '' : item.months+'个月'}}
{{item.days == 0 ? '' : item.days+'天'}} -->
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="购买金额">
<span style="color: red">¥ {{form.payPrice}}</span>
</a-form-model-item>
<a-form-model-item label="选择公司">
<a-select v-model="form.companyId" @change="boundCom">
<a-select-option :value="item.id" v-for="(item, index) in companyData" :key="index">
{{item.companyName}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="绑定小区">
<a-select v-model="form.communityId">
<a-select-option :value="item.id" v-for="(item, index) in comData" :key="index">
{{item.companyName}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-form-model>
</div>
<div class="cardTitle">高级配置</div>
<div class="content">
<a-form-model :labelCol="{span: 2}" :wrapperCol="{span: 8}">
<a-form-model-item label="域名">
<a-input v-model="form.domainName" style="width: 394px"></a-input>
</a-form-model-item>
<a-form-model-item label="服务器ip">
<a-input v-model="form.serviceIp" style="width: 394px"></a-input>
</a-form-model-item>
<a-form-model-item label="是否定制">
<a-select v-model="form.isCustomized" style="width: 394px" @change="textareaDisable">
<a-select-option :value="0">
不定制
</a-select-option>
<a-select-option :value="1">
定制
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="定制需求">
<a-textarea v-model="form.customizedDemand" style="width: 394px" :disabled="form.isCustomized == 0" placeholder="请填写定制需求">
</a-textarea>
</a-form-model-item>
</a-form-model>
</div>
</div>
<a-space style="margin-left: 138px">
<a-button type="primary" @click="addConfirm"></a-button>
<a-button @click="cancel"></a-button>
</a-space>
</div>
</template>
<script>
import {getAllRequest,getComById, createOrder, calcAmount} from "@/api/manage";
import {getChargingList, getChargeById} from "@/api/manage";
import {findTimeType, findSuperNavigation} from "@/api/manage";
export default {
name: "addOrder",
data() {
return {
form: {
code: '',
payType: 1,
chargingTemplateId: undefined,
modelFunctionId: [],
timeTypeId: undefined,
payPrice: 0,
companyId: undefined,
communityId: undefined,
domainName: '',
serviceIp: '',
isCustomized: 0, //
customizedDemand: '' //
},
//
companyData: [],
comData: [], //
//
functionType: [], //
allFunctionType: [],
//
timeType: [],
allTimeType: [],
//
modelData: [],
}
},
mounted() {
this.getApi();
},
methods: {
getApi() {
let obj = {pageNum: 1,size: 1000};
getAllRequest(obj).then(res => {
let data = res.data.rows
this.companyData = data;
});
let o = {pageNum: 1,size: 1000, status: 1}
getChargingList(o).then(res => {
let data = res.data.rows;
this.modelData = data
})
findTimeType().then(res => {
let data = res.data;
this.allTimeType = data
})
findSuperNavigation().then(res => {
let data = res.data;
this.allFunctionType = data;
})
},
getPrice() {
if(this.form.chargingTemplateId && this.form.modelFunctionId && this.form.timeTypeId) {
let obj = {
chargingTemplateId: this.form.chargingTemplateId,
modelFunctionId: this.form.modelFunctionId,
timeTypeId: this.form.timeTypeId
};
calcAmount(obj).then(res => {
let data = res.data;
this.form.payPrice = data * 1
});
}
},
modelChange(val) {
this.form.timeTypeId = undefined;
this.form.modelFunctionId = [];
this.form.communityId = undefined;
getChargeById({id: val}).then(res => {
let data = res.data;
let functionData = [];
data.functionList.forEach(ele => {
this.allFunctionType.forEach(e => {
if(e.id == ele) {
let obj = {label: e.name,value: e.id}
functionData.push(obj);
}
})
})
this.functionType = functionData;
let timeData = [];
data.timeTypeList.forEach(ele => {
this.allTimeType.forEach(e => {
if(e.id == ele) {
let year = e.years == 0 ? '' : e.years+'年';
let month = e.months == 0 ? '' : e.months+'个月';
let day = e.days == 0 ? '' : e.days+'天';
let obj = {name: year+month+day,id: e.id}
timeData.push(obj);
}
})
})
this.timeType = timeData;
});
this.getPrice();
},
timeChange(val) {
this.getPrice();
},
//
functionChange(val) {
// console.log(val)
},
textareaDisable(val) {
if(val == 0) {
this.form.customizedDemand = ''
}
},
//
boundCom(val) {
getComById(val).then(res => {
let data = res.data;
this.comData = data
})
},
addConfirm() {
createOrder(this.form).then(() => {
this.$router.go(-1);
})
},
cancel() {
this.$router.go(-1);
}
}
}
</script>
<style lang="less">
.main-content {
margin-left: 125px;
}
</style>

@ -0,0 +1,15 @@
<template>
<div>
test
</div>
</template>
<script>
export default {
name: "orderDetail"
}
</script>
<style>
</style>

@ -0,0 +1,196 @@
<template>
<div class="main">
<div class="cardTitle">订单管理</div>
<div class="search-box">
<a-space size="large">
<a-form-model layout="inline">
<a-form-model-item label="订单号">
<a-input v-model="form.code" placeholder="请输入订单号" />
</a-form-model-item>
<a-form-model-item label="企业名称">
<a-input v-model="form.name" placeholder="请输入企业名称" />
</a-form-model-item>
<a-form-model-item label="定制类型">
<a-select v-model="form.isCustomized" style="width: 200px" placeholder="类型">
<a-select-option :value="1">定制</a-select-option>
<a-select-option :value="0">不定制</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="订单状态">
<a-select v-model="form.status" style="width: 200px" placeholder="订单状态">
<a-select-option :value="0">待支付</a-select-option>
<a-select-option :value="1">支付超时</a-select-option>
<a-select-option :value="2">支付成功</a-select-option>
<a-select-option :value="3">交易结束不可退款</a-select-option>
</a-select>
</a-form-model-item>
</a-form-model>
<a-button type="primary" @click="handlerSearch"> </a-button>
<a-button @click="handlerReset"> </a-button>
</a-space>
</div>
<div id="commonTable">
<div style="margin-bottom: 16px">
<a-button icon="plus" @click="addOrder" type="primary" ghost>
新建订单
</a-button>
</div>
<a-table
:scroll="{ x: 1300 }"
:columns="columns"
:data-source="tableData"
:pagination="pagination"
@change="handleTableChange"
:row-key="
(record, index) => {
return index;
}
"
>
<!-- 操作 -->
<span slot="tags" slot-scope="text, record">
<a-tag v-for="(item, index) in record.includeFunctionModelList" :key="index" :color="colors[index] ? colors[index] : 'black'">
{{item}}
</a-tag>
</span>
<span slot="type" slot-scope="scope">
{{scope === 1 ? "定制" : "不定制"}}
</span>
<span slot="formatter" slot-scope="scope">{{
scope === 1 ? "支付超时" : (scope === 2 ? "已支付" : "待支付")
}}</span>
<span slot="action" slot-scope="text,record">
<a-popconfirm title="确定要解绑吗?" @confirm="unbound(record)" @cancel="() => {return}">
<a>解绑小区</a>
</a-popconfirm>
</span>
</a-table>
</div>
</div>
</template>
<script>
import { consoleShow } from "@/api/basic/console";
import {getAllOrder,orderUnbound} from "@/api/manage/index.js"
export default {
name: "",
data() {
return {
form: {
pageNum: 1,
size: 10,
code: '',
name: '',
isCustomized: 0,
status: 0,
},
//
colors: ['volcano','orange','yellow','green','blue','purple','grey'],
columns: [
{
title: "订单号",
dataIndex: "code",
width: 180,
},
{
title: "公司名",
dataIndex: "name",
width: 180,
},
{
title: "类型",
dataIndex: "isCustomized",
scopedSlots: { customRender: "type" },
width: 180,
},
{
title: "包含功能模块",
dataIndex: "includeFunctionModelList",
scopedSlots: { customRender: "tags" },
width: 400,
},
{
title: "状态",
dataIndex: "status",
scopedSlots: { customRender: "formatter" },
width: 120,
},
{
title: "操作",
dataIndex: "action",
key: "action",
width: 180,
fixed: "right",
scopedSlots: { customRender: "action" },
},
],
//
tableData: [],
//
pagination: {
current: 1,
total: 0,
pageSize: 10,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
},
loading: false,
selectedRowKeys: [],
}
},
mounted() {
consoleShow().then(res => {
// console.log(res)
})
this.getData();
},
methods: {
getData() {
getAllOrder(this.form).then(res => {
this.pagination.total = res.data.total;
let data = res.data.rows;
this.tableData = data;
})
},
//
handlerSearch() {
this.getData()
},
//
handlerReset() {
this.form.code = '',
this.form.name = '',
this.form.isCustomized = 0,
this.form.status = 0,
this.getData()
},
//
handleTableChange(pagination) {
this.form.size = pagination.pageSize;
this.form.pageNum = pagination.current;
this.getData();
},
//
addOrder() {
this.$router.push({name: 'add_order'})
},
//
unbound(record) {
let obj = { adminFunctionOrderId : record.id }
orderUnbound(obj).then(res => {
if (res.code === 200) {
this.$message.success(res.msg);
this.getData();
} else {
this.$message.error(res.msg);
}
})
},
}
}
</script>
<style lang="less" scoped>
</style>

@ -6,48 +6,46 @@
<div class="content"> <div class="content">
<a-descriptions title="基本信息" :column="3"> <a-descriptions title="基本信息" :column="3">
<a-descriptions-item label="企业名称"> <a-descriptions-item label="企业名称">
浙江比利时物业有限公司 {{infoList.companyName}}
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="公司地址"> <a-descriptions-item label="公司地址">
湖南省湘潭市岳塘区红旗街道 8 单元 111 {{infoList.companyAddressDetails}}
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="社会信用代码" <a-descriptions-item label="社会信用代码">
>39123m13841bdi123341 {{infoList.socialCreditCode}}
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="法人名称"> 陈晨 </a-descriptions-item> <a-descriptions-item label="法人名称"> {{infoList.legalPersonName}} </a-descriptions-item>
<a-descriptions-item label="法人身份证号" <a-descriptions-item label="法人身份证号"
>621222199804287702</a-descriptions-item >{{infoList.legalPersonIdCard}}</a-descriptions-item
> >
<a-descriptions-item label="执照有效期限"> <a-descriptions-item label="执照有效期限">
2021/04/09 2021/04/09</a-descriptions-item {{infoList.licenseTimeStart}}
{{infoList.licenseTimeEnd == null ? '长期' : infoList.licenseTimeEnd}}</a-descriptions-item
> >
</a-descriptions> </a-descriptions>
<a-descriptions title="法人身份证照" :column="1"> <a-descriptions title="法人身份证照" :column="1">
<a-descriptions-item label="头像面" @click="download(this.img)" <a-descriptions-item label="头像面" @click="download(this.img)"
><img :src="img" alt="" >
/></a-descriptions-item> <img :src="item.url" alt="" v-for="(item, index) in infoList.idCardFrontImgList" :key="index">
</a-descriptions-item>
<a-descriptions-item label="国徽面" <a-descriptions-item label="国徽面"
><img :src="img" alt="" ><img :src="item.url" alt="" v-for="(item, index) in infoList.idCardBackImgList" :key="index">
/></a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="营业执照" <a-descriptions-item label="营业执照"
><img :src="img" alt="" ><img :src="item.url" alt="" v-for="(item, index) in infoList.businessLicenseImgList" :key="index">
/></a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="其他附件" <a-descriptions-item label="其他附件"
><img :src="img" alt="" /><img :src="img" alt="" /><img ><img :src="item.url" alt="" v-for="(item, index) in infoList.othersImgList" :key="index">
:src="img" </a-descriptions-item>
alt="" /><img :src="img" alt="" /><img :src="img" alt="" /><img
:src="img"
alt=""
/></a-descriptions-item>
</a-descriptions> </a-descriptions>
<a-descriptions title="联系人信息" :column="3"> <a-descriptions title="联系人信息" :column="3">
<a-descriptions-item label="联系人"> 周立 </a-descriptions-item> <a-descriptions-item label="联系人"> {{infoList.contactsName}} </a-descriptions-item>
<a-descriptions-item label="联系人号码"> <a-descriptions-item label="联系人号码">
18716191912 {{infoList.contactsTel}}
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="邮箱">hpzs@sina.com </a-descriptions-item> <a-descriptions-item label="邮箱">{{infoList.contactsEmail}} </a-descriptions-item>
<a-descriptions-item label="联系人地址"> <a-descriptions-item label="联系人地址">
陕西省铜川市宜君县哭泉乡 10 单元 98 {{infoList.contactsAddressDetails}}
</a-descriptions-item> </a-descriptions-item>
</a-descriptions> </a-descriptions>
</div> </div>
@ -69,11 +67,11 @@
<a-form-item <a-form-item
label="审核类型" label="审核类型"
> >
<a-select v-model="form.type" style="width: 120px"> <a-select v-model="appForm.status" style="width: 120px">
<a-select-option value="1"> <a-select-option :value="1">
通过 通过
</a-select-option> </a-select-option>
<a-select-option value="2"> <a-select-option :value="2">
驳回 驳回
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -81,7 +79,7 @@
<a-form-item <a-form-item
label="审核留言" label="审核留言"
> >
<a-textarea v-model="form.remark" style="" :auto-size="{ minRows: 5, maxRows: 8 }"></a-textarea> <a-textarea v-model="appForm.reviewRemakes" style="" :auto-size="{ minRows: 5, maxRows: 8 }"></a-textarea>
</a-form-item> </a-form-item>
</a-form> </a-form>
</div> </div>
@ -90,24 +88,43 @@
</template> </template>
<script> <script>
import {getRequestDetail,isPass} from "@/api/manage/index.js"
export default { export default {
data() { data() {
return { return {
form:{ form:{
type:'1', id: undefined
remark:''
}, },
appForm: {
id: undefined,
status: 1,
reviewRemakes: ''
},
infoList: [],
auditShow: false, auditShow: false,
detailData: {}, detailData: {},
img: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimgcdn.scol.com.cn%2FNEWS_1F3371B8BC0CD062D6AF69E363F8E32A.JPG&refer=http%3A%2F%2Fimgcdn.scol.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1643355029&t=835fe0ff21af86e6996eb308794df217",
}; };
},
mounted() {
this.form.id = this.$route.query.id;
this.appForm.id = this.$route.query.id;
this.getData()
}, },
methods: { methods: {
getData() {
getRequestDetail(this.form).then(res => {
let data = res.data;
this.infoList = data;
})
},
download() {}, download() {},
cancel() { cancel() {
this.$router.go(-1); this.$router.go(-1);
}, },
auditSubmit(){ auditSubmit(){
isPass(this.appForm).then( () => {
})
this.auditShow = false this.auditShow = false
}, },
auditCancel(){ auditCancel(){

@ -5,34 +5,30 @@
<!-- 搜索 --> <!-- 搜索 -->
<div class="search-box"> <div class="search-box">
<a-space size="large"> <a-space size="large">
<a-input placeholder="请输入申请人/公司名" /> <a-form-model layout="inline">
<a-select style="width: 200px" placeholder="选择状态" /> <a-form-model-item label="申请人/公司名">
<a-button type="primary"> </a-button> <a-input v-model="searchForm.companyName" placeholder="请输入申请人/公司名" />
<a-button> </a-button> </a-form-model-item>
<a-form-model-item label="审核状态">
<a-select v-model="searchForm.status" style="width: 200px" placeholder="选择状态">
<a-select-option :value="1">待确认</a-select-option>
<a-select-option :value="2">审核通过</a-select-option>
<a-select-option :value="3">审核驳回</a-select-option>
</a-select>
</a-form-model-item>
</a-form-model>
<a-button type="primary" @click="handlerSearch"> </a-button>
<a-button @click="handlerReset"> </a-button>
</a-space> </a-space>
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div id="commonTable"> <div id="commonTable">
<div style="margin-bottom: 16px">
<a-button type="primary" :disabled="!hasSelected" :loading="loading">
批量操作
</a-button>
<span style="margin-left: 8px">
<template v-if="hasSelected">
{{ `已选择 ${selectedRowKeys.length}` }}
</template>
</span>
</div>
<a-table <a-table
:scroll="{ x: 1300 }" :scroll="{ x: 1300 }"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:pagination="pagination" :pagination="pagination"
@change="handleTableChange" @change="handleTableChange"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:row-key=" :row-key="
(record, index) => { (record, index) => {
return index; return index;
@ -40,11 +36,11 @@
" "
> >
<!-- 操作 --> <!-- 操作 -->
<span slot="action" slot-scope="scope"> <span slot="action" slot-scope="text,record">
<a @click="detail(scope)"></a> <a @click="detail(record)"></a>
</span> </span>
<span slot="formatter" slot-scope="scope">{{ <span slot="formatter" slot-scope="scope">{{
scope === 1 ? "可" : "" scope === 1 ? "待确认" : (scope === 2 ? "通过" : "驳回")
}}</span> }}</span>
</a-table> </a-table>
</div> </div>
@ -52,58 +48,36 @@
</template> </template>
<script> <script>
import {getAllRequest} from "@/api/manage/index.js"
export default { export default {
data() { data() {
return { return {
// //
searchForm: { searchForm: {
name: "", companyName: "",
code: "", status: 1,
pageNum: 1,
size: 10,
}, },
// //
columns: [ columns: [
{ {
title: "Name", title: "公司名",
dataIndex: "name", dataIndex: "companyName",
width: "200",
},
{
title: "Gender",
dataIndex: "gender",
width: "200",
},
{
title: "Gender1",
dataIndex: "gender1",
width: "200",
},
{
title: "Gender2",
dataIndex: "gender2",
width: "200",
},
{
title: "Gender3",
dataIndex: "gender3",
width: "200",
},
{
title: "Gender4",
dataIndex: "gender4",
width: "200", width: "200",
}, },
{ {
title: "Gender5", title: "负责人",
dataIndex: "gender5", dataIndex: "directorName",
width: "200", width: "200",
}, },
{ {
title: "Gender6", title: "负责人联系方式",
dataIndex: "gender6", dataIndex: "directorTel",
width: "200", width: "200",
}, },
{ {
title: "status", title: "状态",
dataIndex: "status", dataIndex: "status",
scopedSlots: { customRender: "formatter" }, scopedSlots: { customRender: "formatter" },
width: "200", width: "200",
@ -118,23 +92,7 @@ export default {
}, },
], ],
// //
tableData: [ tableData: [],
{
name: "11",
id: 1,
status: 1,
},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
],
// //
pagination: { pagination: {
current: 1, current: 1,
@ -148,27 +106,48 @@ export default {
selectedRowKeys: [], selectedRowKeys: [],
}; };
}, },
mounted(){}, mounted() {
this.getData();
},
computed: { computed: {
hasSelected() { hasSelected() {
return this.selectedRowKeys.length > 0; return this.selectedRowKeys.length > 0;
}, },
}, },
methods: { methods: {
getData() {
getAllRequest(this.searchForm).then(res => {
let data = res.data;
this.tableData = data.rows;
this.pagination.total = data.total;
})
},
detail(data){ detail(data){
console.log(data); let id = data.id
this.$router.push({name:'settle_detail'}) this.$router.push(
{
name:'settle_detail',
query: {
id: id
}
}
)
},
//
handlerSearch() {
this.getData()
}, },
onSelectChange(selectedRowKeys) { //
console.log("selectedRowKeys changed: ", selectedRowKeys); handlerReset() {
this.selectedRowKeys = selectedRowKeys; this.searchForm.companyName = '';
this.searchForm.status = 1;
this.getData()
}, },
//
handleTableChange(pagination) { handleTableChange(pagination) {
console.log(pagination); this.searchForm.size = pagination.pageSize;
const pager = { ...this.pagination }; this.searchForm.pageNum = pagination.current;
pager.current = pagination.current; this.getData();
pager.pageSize = pagination.pageSize;
this.pagination = pager;
}, },
}, },
}; };

@ -0,0 +1,177 @@
<template>
<div class="main">
<div class="cardTitle">商城余额</div>
<div class="search-box">
<a-space size="large">
<a-descriptions layout="vertical">
<a-descriptions-item label="余额">
¥ <span class="total-amount">5112</span>
</a-descriptions-item>
</a-descriptions>
</a-space>
</div>
<div id="commonTable">
<div style="margin-bottom: 16px">
<a-button @click="handlerCharge" type="primary">
充值
</a-button>
</div>
<a-table :scroll="{ x: 1300 }"
:columns="columns"
:data-source="tableData"
:pagination="pagination"
@change="handleTableChange"
:row-key="
(record, index) => {
return index;
}
">
</a-table>
</div>
<a-modal title="充值" :visible="modalVisible" @cancel="modalClose" @ok="confirm">
<a-form-model layout="inline">
<a-form-model-item label="充值金额">
¥ <a-input-number
:formatter="value => ` ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:parser="value => value.replace(/\$\s?|(,*)/g, '')"
v-model="form.payAmount" :min="0" :step="0.01" style="width: 150px">
</a-input-number>
</a-form-model-item>
</a-form-model>
<div style="margin-top: 12px">
<span>当前余额<span>{{}}</span>点击继续将跳转至支付宝付款页面</span>
</div>
</a-modal>
<!-- <div>
<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.page.pay&sign=B5HCq8qiiwkOfH%2FwKaKwxMeExsKFcibdK4oLcz5ypYxqSKcXn0KfqEBcW3u2219sqKKuzFNZGuT5%2F%2BK%2FO3RCeQGUBalM2JdknrI7MiJ4%2B3CvBfyLKDuwZd0SRu7xaPb0VkjIkgbn9g4vpufQaezq19lErd7LCL7wMu14%2FduswqptCQW9bYn%2F4uhTEcgm%2FTu3Ab17fEe3DKSHqG2VqjhzxhViRENB9wZ6Nvq6LltDHJF5QGBbellwvv%2BGikwYAyghtVwc61GJuagldqtlT4fP0zmUIpA1dj4ctUQuyfMYuBIzFbT3TuGDksJFfKQJ17FJkT9kSZYTJZy%2F2wN1Vdl3nQ%3D%3D&notify_url=http%3A%2F%2Fsaas.kaidalai.cn%2Fapi%2Fadmin%2Falipay%2FnotifyInfo%2FbalanceRechargeOrderNotifyInfo&version=1.0&app_id=2021003124652865&sign_type=RSA2&timestamp=2022-04-02+10%3A46%3A20&alipay_sdk=alipay-sdk-java-3.1.0&format=json">
<input type="hidden" name="biz_content" value="{&quot;body&quot;:&quot;商城购物支付&quot;,&quot;out_trade_no&quot;:&quot;CZ20220402104620169001&quot;,&quot;product_code&quot;:&quot;QUICK_MSECURITY_PAY&quot;,&quot;subject&quot;:&quot;商城购物&quot;,&quot;timeout_express&quot;:&quot;30m&quot;,&quot;total_amount&quot;:&quot;0.6&quot;}">
<input type="submit" value="立即支付" style="display:none" >
</form>
<script>document.forms[0].submit();</script>
</div> -->
</div>
</template>
<script>
import {getBalanceList, createBalanceRechargeOrder} from "@/api/user"
export default {
name: 'shopRemain',
data() {
return {
form: {
payAmount: 0
},
columns: [
{
title: "创建时间",
dataIndex: "createDate",
key: "createDate",
width: "200",
},
{
title: "订单编号",
dataIndex: "code",
key: "code",
width: "200",
},
{
title: "账单金额",
dataIndex: "payAmount",
key: "payAmount",
width: "200",
},
{
title: "账单类型",
dataIndex: "type",
key: "type",
width: "200",
customRender: function (type) {
switch (type) {
case 1: return '充值'
case 2: return '扣款'
case 3: return '退款'
default:
break;
}
}
},
{
title: "来源小区",
dataIndex: "communityName",
key: "communityName",
width: "200",
},
],
tableData: [],
pagination: {
current: 1,
total: 0,
pageSize: 10,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
},
modalVisible: false,
}
},
mounted() {
this.getData()
},
methods: {
getData() {
let obj = {pageNum: this.pagination.current,size: this.pagination.pageSize}
getBalanceList(obj).then(res => {
let data = res.data;
this.tableData = data.rows;
this.pagination.total = data.total
})
},
handleTableChange(val) {
this.pagination.current = val.current;
this.pagination.pageSize = val.pageSize;
this.getData()
},
//
handlerCharge() {
this.modalVisible = true
},
modalClose() {
this.modalVisible = false
},
confirm() {
createBalanceRechargeOrder(this.form).then(res => {
if (res.code === 200) {
this.$message.success(res.msg);
let data = res.data
let routeData = this.$router.resolve({
path: '/Manage/Pay',
query: {
htmls: data
}
});
window.open(routeData.href, '_blank');
this.getData();
this.form.payAmount = 0;
} else {
this.$message.error(res.msg);
}
})
this.modalVisible = false
}
}
}
</script>
<style lang="less">
.total-amount {
font-family: 'Roboto';
color: #CF1322;
font-style: normal;
font-weight: 500;
font-size: 24px;
line-height: 28px;
text-transform: uppercase;
}
</style>

@ -0,0 +1,20 @@
<template>
<div></div>
</template>
<script>
export default {
name: '',
mounted() {
//
const div = document.createElement('div');
div.innerHTML = this.$route.query.htmls;
document.body.appendChild(div);
document.forms[0].submit();
}
}
</script>
<style>
</style>

@ -0,0 +1,15 @@
<template>
<div>
test
</div>
</template>
<script>
export default {
}
</script>
<style>
</style>

@ -1,87 +1,135 @@
<template> <template>
<div> <div class="main">
<commonTable <div class="cardTitle">小区管理</div>
<div class="search-box">
<a-space size="large">
<a-form-model layout="inline">
<a-form-model-item label="小区名称">
<a-input v-model="form.communityName" placeholder="请输入小区名称" />
</a-form-model-item>
</a-form-model>
<a-button type="primary" @click="handlerSearch"> </a-button>
<a-button @click="handlerReset"> </a-button>
</a-space>
</div>
<!-- 表格 -->
<div id="commonTable">
<div style="margin-bottom: 16px">
<a-button icon="plus" @click="hanlderAdd" type="primary" ghost>
添加小区
</a-button>
</div>
<a-table
:columns="columns" :columns="columns"
:tableData="tableData" :data-source="tableData"
:ActionsList="ActionsList" :pagination="pagination"
@handleTableChange="handleTableChange" @change="handleTableChange"
@Actions="Actions" :row-key="
@selectionChoosed="selectionChoosed" (record, index) => {
return index;
}
"
> >
<template v-slot:actionBox="data"> <span slot="pics" slot-scope="text,record">
<a href="javascript:;" @click="del(data)">del</a> <img style="width: 40px;height: 40px" v-for="(item, index) in record.communityImgList" :src="$ImgUrl(item.url)" :key="index">
<span style="margin: 5px">|</span> <!-- {{record.communityImgList}} -->
<a href="javascript:;">detail</a> </span>
</template> <span slot="action" slot-scope="text,record">
</commonTable> <a @click="detail(record)"></a>
</span>
</a-table>
</div>
<a-drawer :title="modelType == 1 ? '填写小区信息':'修改小区信息'" :visible="visible" @close="hanlderClose" width="512">
<a-form-model>
<a-form-model-item label="小区全称">
<a-input v-model="addForm.name" style="width: 260px" placeholder="请输入小区全称" />
</a-form-model-item>
<a-form-model-item label="公司名称">
<a-select v-model="addForm.companyId" style="width: 260px" placeholder="请选择公司">
<a-select-option :value="item.id" v-for="(item, index) in companyData" :key="index">
{{item.companyName}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="小区地址">
<a-select v-model="province" @change="cityChange1" style="width: 120px" placeholder="请选择省">
<a-select-option :value="item.id" v-for="(item) in cityData" :key="item.id">
{{item.name}}
</a-select-option>
</a-select>
<a-select v-model="address1" @change="cityChange2" style="width: 120px;margin-left: 20px" placeholder="请选择市">
<a-select-option :value="item.id" v-for="(item) in cityData2" :key="item.id">
{{item.name}}
</a-select-option>
</a-select>
<a-select v-model="addForm.address" style="width: 120px;margin-left: 20px" placeholder="请选择区">
<a-select-option :value="item.id" v-for="(item) in cityData3" :key="item.id">
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item>
<a-input v-model="addForm.addressDetails" style="width: 260px" placeholder="请输入详细地址"></a-input>
</a-form-model-item>
<a-form-model-item label="小区正门图片">
<commonUpload @handleChange="addFile" :fileList="fileList"></commonUpload>
</a-form-model-item>
</a-form-model>
<a-button @click="addConfirm" type="primary">确定</a-button>
<a-button style="margin-left: 20px" @click="hanlderClose"></a-button>
</a-drawer>
</div> </div>
</template> </template>
<script> <script>
import {getCommunityList, getAddCommunity, getAllRequest, updateCommunity, findByIdAdmin} from "@/api/manage"
import {getAllCity, getCityByParent} from "@/api/city"
export default { export default {
data() { data() {
return { return {
tableChoosed: [], form: {
pageNum: 1,
size: 10,
communityName: ''
},
addForm: {
companyId: undefined,
name: '',
address: undefined,
addressDetails: '',
communityUrls: []
},
// //
pagination: { pagination: {
current: 1, current: 1,
total: 0, total: 0,
pageSize: 10, pageSize: 10,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
}, },
// //
columns: [ columns: [
{ {
title: "Name", title: "小区名称",
dataIndex: "name", dataIndex: "name",
width: "200", width: "200",
}, },
{ {
title: "Gender", title: "公司名称",
dataIndex: "gender", dataIndex: "companyName",
width: "200", width: "200",
customRender: function (gender) {
if (gender === 1) {
return "是";
} else {
return "否";
}
},
}, },
{ {
title: "Gender1", title: "小区地址",
dataIndex: "gender1", dataIndex: "addressName",
width: "200", width: "200",
}, },
{ {
title: "Gender2", title: "小区图片",
dataIndex: "gender2", dataIndex: "communityImgList",
width: "200",
},
{
title: "Gender3",
dataIndex: "gender3",
width: "200",
},
{
title: "Gender4",
dataIndex: "gender4",
width: "200",
},
{
title: "Gender5",
dataIndex: "gender5",
width: "200",
},
{
title: "Gender6",
dataIndex: "gender6",
width: "200",
},
{
title: "status",
dataIndex: "status",
width: "200", width: "200",
scopedSlots: { customRender: "pics" },
}, },
{ {
title: "操作", title: "操作",
@ -93,63 +141,172 @@ export default {
}, },
], ],
// //
tableData: [ tableData: [],
{ name: 1, gender: 1 }, companyData: [],
{}, cityData: [],
{}, cityData2: [],
{}, cityData3: [],
{}, province: undefined,
{}, address1: undefined,
{}, // /
{}, modelType: 1, //1 2
{}, visible: false,
{}, fileList: []
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
],
ActionsList: [
{
label: "批量删除",
value: 1,
},
{
label: "批量导出",
value: 2,
},
],
}; };
}, },
mounted() {
this.getApi();
this.getData()
},
methods: { methods: {
handleTableChange(pagination) { getData() {
console.log(pagination); getCommunityList(this.form).then(res => {
const pager = { ...this.pagination }; let data = res.data.rows;
pager.current = pagination.current; this.pagination.total = res.data.total;
pager.pageSize = pagination.pageSize; this.tableData = data
this.pagination = pager; })
}, },
del(data) { getApi() {
console.log(data); let obj = {pageNum: 1,size: 1000};
getAllRequest(obj).then(res => {
let data = res.data.rows
this.companyData = data;
})
getAllCity().then(res => {
let data = res.data;
this.cityData = data;
})
}, },
Actions(data) { //
console.log(data); handleTableChange(pagination) {
this.form.size = pagination.pageSize;
this.form.pageNum = pagination.current;
this.getData();
}, },
selectionChoosed(data) { selectionChoosed(data) {
console.log(data);
this.tableChoosed = data this.tableChoosed = data
}, },
//
detail(record) {
this.modelType = 2;
findByIdAdmin({communityId: record.id}).then(res => {
let data = res.data;
this.addForm.name = data.name;
this.addForm.companyId = data.companyId;
this.addForm.addressDetails = data.addressDetails;
getCityByParent({parentId: data.provinceId}).then(res => {
let data = res.data;
this.cityData2 = data;
})
getCityByParent({parentId: data.cityId}).then(res => {
let data = res.data;
this.cityData3 = data;
})
this.province = data.provinceId //
this.address1 = data.cityId //
this.addForm.address = data.countyId //
//
this.addForm.communityUrls = [];
if (res.data.imgList.length > 0) {
const pic = [];
this.addForm.communityUrls.push(res.data.imgList[0].url)
for (let item of res.data.imgList) {
let obj = {
name: item.url.split("_")[0] + "." + item.url.split(".")[1],
url: this.$ImgUrl(item.url),
uid: item.url.split("_")[1],
status: "done",
thumbUrl: this.$ImgUrl(item.url),
};
pic.push(obj);
}
this.fileList = pic;
}else{
this.addForm.communityUrls=[]
}
})
this.chosenId = record.id; //id
this.visible = true;
},
//
handlerSearch() {
this.getData()
},
//
handlerReset() {
this.form.communityName = '';
this.getData()
},
//
hanlderAdd() {
this.modelType = 1;
this.visible = true;
},
hanlderClose() {
this.addForm = {
companyId: undefined,
name: '',
address: undefined,
addressDetails: '',
communityUrls: []
},
this.province = undefined;
this.address1 = undefined;
this.cityData2 = [];
this.cityData3 = [];
this.visible = false;
this.fileList = [];
},
addConfirm() {
if(this.modelType == 1) {
getAddCommunity(this.addForm).then((res) => {
if (res.code === 200) {
this.$message.success(res.msg);
this.getData();
} else {
this.$message.error(res.msg);
}
})
} else {
let obj = Object.assign({id: this.chosenId}, this.addForm)
updateCommunity(obj).then((res) => {
if (res.code === 200) {
this.$message.success(res.msg);
this.getData();
} else {
this.$message.error(res.msg);
}
})
}
this.hanlderClose()
},
//-
cityChange1(val) {
this.address1 = undefined,
this.addForm.address = undefined,
this.cityData3 = [],
this.cityData2 = this.cityData[val-2].cityList
},
cityChange2(val) {
this.addForm.address = undefined
getCityByParent({parentId: val}).then(res => {
let data = res.data;
this.cityData3 = data;
})
},
//-
addFile(file) {
this.fileList = file;
this.addForm.communityUrls = [];
file.forEach(ele => {
if(ele.status == 'done') {
this.addForm.communityUrls.push(ele.response.data)
}
})
}
}, },
}; };
</script> </script>
<style> <style lang="less">
</style> </style>

@ -0,0 +1,829 @@
<template>
<div class="content">
<div class="content-title"><span class="agreement-underline">用户隐私政策摘要</span></div>
<div class="content-text">
<p>最近更新日期2022年03月25日</p>
<p><span class="agreement-underline">本隐私政策的摘要主要向您说明我们在必要范围内收集和使用您的个人信息类型和业务场景以及我们处理您个人信息的基本规则</span></p>
<p>小蜜蜂深知个人信息对您的重要性并会尽全力保护您的个人信息安全可靠小蜜蜂承诺我们将按业界成熟的安全标准采取相应的安全保护措施来保护您的个人信息</p>
<p>若您想要了解我们收集和使用您的个人信息的详细内容请仔细阅读并了解
<span class="agreement-underline">隐私政策</span>尤其是
<span class="agreement-underline">加粗</span>
<span class="agreement-underline">下划线</span>部分
</p>
<div class="agreement-rule">
<p><span>我们收集您哪些个人信息</span></p>
</div>
<p>小蜜蜂仅会
<span class="agreement-underline">出于必要的业务场景收集和使用您的个人信息</span>
以便向你提供对应的服务若您不提供相关的个人信息将无法享受相应的服务内容以下为部分场景及其获取信息示例
</p>
<p>
<span class="agreement-underline">产品功能</span>
在使用存储服务时会获取一些必要信息获取您的
<span class="agreement-underline">手机号码</span>
用于
<span class="agreement-underline">注册</span>
获取您的手机
<span class="agreement-underline">存储状态</span>
用于
<span class="agreement-underline">创建本地目录</span>
在使用
<span class="agreement-underline">照片视频文件和通讯录</span>
等备份功能时和
<span class="agreement-underline">文件预览及传输</span>
读取对应的
<span class="agreement-underline">本地文件信息</span>
查看
<span class="agreement-underline">网络状态</span>
用于
<span class="agreement-underline">登录</span>
<span class="agreement-underline">绑定设备</span>
</p>
<p>
<span class="agreement-underline">系统权限</span>
为提供更好的服务体验我们会向您申请一些系统权限获取
<span class="agreement-underline">存储权限</span>
用于
<span class="agreement-underline">传输文件</span>
获取
<span class="agreement-underline">相机权限</span>
用于
<span class="agreement-underline">拍照上传</span>
<span class="agreement-underline">扫一扫</span>
获取
<span class="agreement-underline">麦克风权限</span>
用于绑定对应设备的
<span class="agreement-underline">语音对讲</span>
</p>
<p>您的个人信息大部分是由您
<span class="agreement-underline">主动向我们提供或授权</span>
也有我们在您使用我们的产品或服务时
<span class="agreement-underline">通过CookiesSDK及类似技术获取</span>
我们会采取一切合理可行的措施保护您站点下用户的个人信息
</p>
<div class="agreement-rule">
<p><span>我们如何共享您的信息</span></p>
</div>
<p>为了向您提供全部的服务内容我们需要同我们的合作伙伴一起为您提供服务因此在获取您的明确同意后我们会
<span class="agreement-underline">委托授权合作伙伴为您提供某些服务或代表我们履行职能</span>
我们仅会处于本隐私政策声明的合法正当必要特定明确的目的共享您的信息我们会采取必要的技术和管理措施保护您的个人信息安全
</p>
<div class="agreement-rule">
<p><span>您的权力</span></p>
</div>
<p>在遵循相关法律法规及标准的情况下您有权
<span class="agreement-underline">访问更正删除您的个人信息以及注销账户</span>
有权
<span class="agreement-underline">改变或撤回已授权同意的个人信息和权限</span>
</p>
<p>若进行上述操作时遇到问题您可以联系我们我们会在七个工作日内作出回复为保障安全您可能需要提供书面请求或以其他方式证明您的身份</p>
<div class="agreement-rule">
<p><span>儿童个人信息保护</span></p>
</div>
<p>我们的产品网站和服务主要面向企业级用户用户对象一般为成人如果没有父母或监护人的同意儿童不得创建自己的用户账户</p>
<p>
<span class="agreement-underline">我们将不满 14 周岁的任何人均视为儿童对于经父母同意而收集儿童个人信息的情况我们只会在受到法律允许父母或监护人明确同意或者保护儿童所必要的情况下使用或公开披露此信息</span>
</p>
<div class="agreement-rule">
<p><span>如何联系我们</span></p>
</div>
<p>如果您对本隐私政策有任何疑问意见或建议可发送邮件至kaidalai@163.com</p>
<p>也可以在线反馈等多种方式与我们联系</p>
<p>您反馈的信息我们将有专人跟进负责处理我们将在十五个工作日内回复</p>
<p>如果您对我们的回复不满意特别是我们的个人信息处理行为损害了您的合法权益您还可以通过法律途径或前往行业自律协会等机构寻求解决方案</p>
</div>
<div class="content-title">用户隐私政策</div>
<div class="content-text">
<p>最近更新日期2022年03月25日</p>
<p>版本生效日期2022年03月27日</p>
<p>如果您有任何疑问意见或建议请您把问题发送到邮箱kaidalai@163.com我们将在7个工作日内进行处理</p>
<p>本政策将帮助您了解以下内容</p>
<p>1我们收集您哪些个人信息</p>
<p>2我们如何使用您的个人信息</p>
<p>3我们如何共享转让公开披露您的个人信息</p>
<p>4我们如何存储您的个人信息</p>
<p>5我们如何保护您的个人信息</p>
<p>6您的权利</p>
<p>7我们如何处理儿童的个人信息</p>
<p>8本政策如何更新</p>
<p>9如何联系我们</p>
<p>小蜜蜂深知个人信息对您的重要性并会尽全力保护您的个人信息安全可靠我们致力于维持您对我们的信任恪守以下原则保护您的个人信息权责一致原则目的明确原则选择同意原则最少够用原则确保安全原则主体参与原则公开透明原则等同时小蜜蜂承诺我们将按业界成熟的安全标准采取相应的安全保护措施来保护您的个人信息
</p>
<div class="agreement-rule">
<p><span class="no-bold">为了便于您了解您在使用我们的服务时我们需要收集的信息类型与用途我们将结合具体服务向您逐一说明</span><span
class="agreement-underline">请在使用我们的产品或服务仔细阅读并了解本隐私政策尤其是加粗及下划线部分</span></p>
<p><span>我们收集您哪些个人信息</span></p>
</div>
<p>个人信息是指以电子或者其他方式记录的与已识别或者可识别的自然人有关的各种信息不包括匿名化处理后的信息</p>
<p>敏感个人信息是指一旦泄露或者非法使用容易导致自然人的人格尊严受到侵害或者人身财产安全受到危害的个人信息包括生物识别宗教信仰特定身份医疗健康金融账户行踪轨迹等信息以及不满十四周岁未成年人的个人信息</p>
<p>小蜜蜂仅会出于本政策所述的以下目的收集和使用用户的个人信息</p>
<div class="agreement-rule">
<p><span>产品功能</span></p>
</div>
<div class="agreement-rule">
<p><span>1业务功能一注册成为用户</span></p>
</div>
<div class="agreement-rule">
<p>为完成创建账号您需提供<span
class="agreement-underline">手机号码</span>用于天翼账号免密登录或短信验证注册用户注册完成后会默认使用您的手机号码作为小蜜蜂的用户名如果不同意将无法完成注册
</p>
</div>
<div class="agreement-rule">
<p>此外在历史的客户端版本内Android端V8.0.0及以下版本iOS端V7.4.0及以下版本您可以登录应用后访问我的-&gt;点击头像进入账号与安全&gt;点击天翼账号进行<span
class="agreement-underline">查询和设置您的其他信息包含性别生日所在地级市手机号邮箱</span></p>
</div>
<p>您提供的上述信息将在您使用本服务期间持续授权我们使用在您注销账号时我们将停止使用并删除上述信息</p>
<p>我们使用的账号为天翼账号以上用户账号相关的信息均存储于天翼账号服务器中上述信息将存储于中华人民共和国境内如需跨境传输我们将会单独征得您的授权同意</p>
<div class="agreement-rule">
<p><span>2业务功能二文件预览及传输</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供预览传输功能当加载文件列表或预览文件时为了方便您下次可快速预览<span
class="agreement-underline">对文件数据进行临时缓存</span>当使用文件传输功能时如上传下载需要
<span class="agreement-underline">读取本机设备的文件</span>供您选择需要上传的文件下载文件时需要
<span class="agreement-underline">获取手机存储状态</span>确认本地存储空间剩余容量并将文件保存至本机设备内
</p>
</div>
<div class="agreement-rule">
<p><span>3业务功能三联系人分享</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供文件分享功能支持通过手机号分享文件当使用这个功能时<span
class="agreement-underline">需要您授权同意读取用户终端内的通讯录</span>如果不同意将会无法使用联系人分享功能
</p>
</div>
<div class="agreement-rule">
<p><span>4业务功能四添加家庭成员</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供家庭共享空间功能当使用这个功能时<span
class="agreement-underline">需要您授权同意读取用户终端内的通讯录</span>如果不同意将会无法使用添加家庭成员功能
</p>
</div>
<div class="agreement-rule">
<p><span>5业务功能五文件分享</span></p>
</div>
<div class="agreement-rule">
<p>我们会从您的Android终端
<span class="agreement-underline">读取应用列表</span>用于在分享文件时判断第三方应用是否已安装在本机以及辅助检测小蜜蜂安卓客户端是否在前台显示但如果您不提供这些信息可能会影响您使用本功能
</p>
</div>
<div class="agreement-rule">
<p><span>6业务功能六通讯录备份与恢复</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供通讯录备份与恢复功能支持备份通讯录以及将已备份至云端的通讯录数据恢复至您的移动终端设备内当使用通讯录备份功能我们会
<span class="agreement-underline">读取本机通讯录信息</span>
将通讯录信息备份到云端当使用通讯录恢复功能时我们会将云端通讯录恢复到本地
</p>
</div>
<div class="agreement-rule">
<p><span>7业务功能七通话记录备份与恢复仅适用于Android端</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供通话记录备份与恢复功能支持备份通话记录以及将已备份至云端的通话记录数据恢复至您的移动终端设备内当使用通话记录备份功能我们会<span
class="agreement-underline">读取本机通话记录</span>
将通话记录备份到云端当使用通话记录恢复功能时我们会将云端通话记录恢复到本地
</p>
</div>
<div class="agreement-rule">
<p><span>8业务功能八信息备份与恢复仅适用于Android端</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供信息备份与恢复功能支持备份信息以及将已备份至云端的信息记录数据恢复至您的移动终端设备内当使用信息备份功能我们会<span
class="agreement-underline">读取本机信息记录</span>
将信息记录备份到云端当使用信息恢复功能时我们会将云端信息恢复到本地
</p>
</div>
<div class="agreement-rule">
<p><span>9业务功能九相册备份</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供相册备份功能支持备份用户终端内的照片视频<span
class="agreement-underline">如果您同意开启相册备份功能我们会将终端内的照片视频存储至云端</span>
如果您不同意将导致该功能无法正常使用</p>
</div>
<div class="agreement-rule">
<p><span>10业务功能十私密空间</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供私密空间服务可以帮助您更好地保管您的隐私文件和照片为保障您私密空间二级密码的安全需要您<span
class="agreement-underline">提供个人邮箱作为找回二级密码的验证方式</span>我们会
<span class="agreement-underline">对您提供的个人邮箱进行记录</span>
如果您不同意将无法通过二级密码使用私密空间功能
</p>
</div>
<div class="agreement-rule">
<p><span>其他信息</span></p>
</div>
<div class="agreement-rule">
<p>
<span class="agreement-title">1活动运营</span>
小蜜蜂会开展运营活动在您中奖时会让您提供
<span class="agreement-underline">姓名联系方式地址</span>
用于奖品寄送这些信息属于个人敏感信息您可以拒绝提供如果拒绝提供您将可能无法参与运营活动或无法获得奖品但不影响其他功能和服务的正常使用
</p>
</div>
<div class="agreement-rule">
<p>
<span class="agreement-title">2信息推送</span>
为了更好为您提供服务我们引入了第三方消息推送SDK和短信通道实现对您及时的信息推送服务需要向您收集的信息仅包含
<span class="agreement-underline">设备型号设备MAC地址应用名称与版本设备APPlist操作系统类型版本设备型号与类型</span>
</p>
</div>
<div class="agreement-rule">
<p>
<span class="agreement-title">3计费收费</span>
小蜜蜂提供多档次多功能的会员服务您在订购不同会员的时候我们会通过终端设备采集产生的
<span class="agreement-underline">日志信息包括不限于订购手机号订购套餐类型订购费用订购时间</span>
订购信息及手机号用于用户管理和订单管理问卷答复我们可能会不定期向您投放用户体验改善的调查问卷您如果参与问卷调查的话可能会收集到您提供的信息内容
</p>
</div>
<div class="agreement-rule">
<p><span>权限说明</span></p>
</div>
<div class="privacy-agreement-table">
<table>
<tbody>
<tr>
<th style="width: 15%">业务功能</th>
<th style="width: 25%">对应权限</th>
<th style="width: 20%">调用权限目的</th>
<th style="width: 20%">是否询问</th>
<th style="width: 20%">可否关闭</th>
</tr>
<tr>
<td>安装与卸载应用</td>
<td>创建桌面快捷方式的权限</td>
<td>安装小蜜蜂客户端时
<span class="agreement-underline">部分Android终端需要使用您的创建桌面快捷方式的权限</span>
生成系统桌面图标如果您卸载小蜜蜂客户端卸载后我们不会在终端设备内保留您的用户信息如果不同意部分Android终端可能无法在终端主页面创建桌面快捷方式需要您进入系统的抽屉式桌面才可访问小蜜蜂客户端
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>获取存储状态及记录功能配置信息</td>
<td>获取读写手机存储权限</td>
<td>
当您启动小蜜蜂客户端时需要获取
<span class="agreement-underline">手机存储状态</span>
加载配置信息及创建用于存储缓存数据crash日志信息的本地目录
<span class="agreement-underline">需要您授权同意获取读写手机存储权限</span>
如果不同意将无法记录用户家庭配置信息相册备份状态无法写入日志
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>登录</td>
<td>安卓设备会使用到以下权限查看网络连接允许应用查看网络连接的相关信息更改WLAN状态允许应用程序连接到WLAN接入点以及WLAN接入点断开连接并对配置的WLAN网络进行更改更改网络连接性权限允许该应用更改网络连接的状态</td>
<td>小蜜蜂支持免密登录账密登录以及短信登录在登录过程中需要检查您的网络环境是移动网络还是在WiFi环境下登录过程
<span class="agreement-underline">安卓设备会使用到以下权限查看网络连接允许应用查看网络连接的相关信息更改WLAN状态允许应用程序连接到WLAN接入点以及WLAN接入点断开连接并对配置的WLAN网络进行更改更改网络连接性权限允许该应用更改网络连接的状态</span>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>退出</td>
<td>展开/收拢状态栏权限</td>
<td>小蜜蜂会在您的安卓终端设备内使用
<span class="agreement-underline">展开/收拢状态栏权限</span>
当您在小蜜蜂退出账号时用于清空保留在状态栏提示的消息
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>拍照上传</td>
<td>获取相机权限 </td>
<td>小蜜蜂提供拍照上传功能
<span class="agreement-underline">此功能需要您同意获取相机权限</span>
如果不同意将无法开启摄像头进行拍照上传
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>文件预览及传输</td>
<td>读取本机设备文件获取手机存储状态获取读写手机存储权限</td>
<td>当使用文件传输功能时如上传下载需要
<span class="agreement-underline">读取本机设备的文件</span>
供您选择需要上传的文件下载文件时需要
<span class="agreement-underline">获取手机存储状态</span>
确认本地存储空间剩余容量并将文件保存至本机设备内这些功能
<span class="agreement-underline">需要您授权同意获取读写手机存储权限</span>
如果不同意将无法预览文件无法加载文件列表或加载缓慢无法上传下载文件
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>相册备份</td>
<td><span class="agreement-underline">开机启动权限防止手机休眠权限</span></td>
<td>
在安卓终端设备内为了不让应用进程被回收导致相册备份失败小蜜蜂会用到您的
<span class="agreement-underline">开机启动权限和防止手机休眠权限</span>
iOS终端设备因系统原因需要您手动打开后台备份才支持后台自动备份
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>扫一扫</td>
<td>获取相机权限控制振动权限</td>
<td>小蜜蜂提供扫一扫功能您可以使用此功能进行扫描二维码登录PC端TV端以及web门户或扫描分享的文件二维码转存文件
<span class="agreement-underline">此功能需要您同意获取相机权限</span>
如果不同意将无法开启摄像头最终无法执行上述操作在您开启摄像头并扫描二维码后小蜜蜂
<span class="agreement-underline">安卓版会使用控制振动权限</span>
扫描成功后进行振动反馈
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>通讯录备份与恢复</td>
<td>
<span class="agreement-underline">读取/修改用户终端内的通讯录权限</span>
</td>
<td>小蜜蜂提供通讯录备份与恢复功能支持备份通讯录以及将已备份至云端的通讯录数据恢复至您的移动终端设备内当使用通讯录备份功能及备份恢复功能时
<span class="agreement-underline">需要您授权同意读取/修改用户终端内的通讯录权限</span>
如果不同意将无法使用本功能
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>通话记录备份与恢复仅适用于Android端</td>
<td>
<span class="agreement-underline">读取/修改通话记录权限</span>
</td>
<td>小蜜蜂提供通话记录备份与恢复功能支持备份通话记录以及将已备份至云端的通话记录数据恢复至您的移动终端设备内当使用通话记录备份与恢复功能时
<span class="agreement-underline">需要您授权同意读取/修改通话记录权限</span>
如果不同意将无法使用本功能
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>信息备份与恢复仅适用于Android端</td>
<td>
<span class="agreement-underline">读取短信/彩信权限</span>
</td>
<td>小蜜蜂提供信息备份与恢复功能支持备份信息以及将已备份至云端的信息记录数据恢复至您的移动终端设备内当使用信息备份与恢复功能时
<span class="agreement-underline">需要您授权同意读取短信/彩信权限</span>
如果不同意将无法使用本功能
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>日程备份和恢复仅适用于安卓端</td>
<td>读取/修改日历权限</td>
<td>
小蜜蜂提供日程备份与恢复功能支持备份日程信息以及将已备份至云端的日程信息数据恢复至您的移动终端设备内当使用日程备份与恢复功能时
<span class="agreement-underline">需要您授权同意读取/修改日历权限</span>
如果不同意将无法使用本功能
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>应用备份与恢复仅适用于安卓端v8.5.3及之前的版本</td>
<td>读取应用列表信息权限</td>
<td>小蜜蜂提供应用备份与恢复功能支持备份设备内已安装应用的记录以及根据已备份至云端的应用列表清单执行下载操作恢复至您的移动终端设备内此功能不会对应用内产生的数据备份至云端仅备份应用列表清单当用户选择恢复至本地设备时仅对已备份的应用列表清单做下载应用操作当使用应用备份与恢复功能时
<span class="agreement-underline">需要您授权同意读取应用列表信息权限</span>
如果不同意将无法使用本功能
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>设备内的消息提示</td>
<td>检索正在运行的应用的权限</td>
<td>
小蜜蜂在文件操作完成后顶部会出现toast提示安卓终端设备在实现此功能时需要使用
<span class="agreement-underline">检索正在运行的应用</span>
的权限
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>推送通知</td>
<td>开机启动权限同意开启通知权限</td>
<td>
小蜜蜂支持向移动终端设备推送通知方便您及时收到好友分享通知优惠信息系统公告信息可能会按手机号码归属地分别推送此功能会用到您的
<span class="agreement-underline">开机启动权限</span>
以及需要您授权同意
<span class="agreement-underline">开启通知</span>
如果您不同意可在APP内我的-设置- 接受消息推送进行关闭
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>指纹密码指纹验证面容ID解锁面容ID验证</td>
<td>安卓终端设备内使用管理指纹IFAA权限iOS终端设备内使用面容ID指纹密码</td>
<td>
如果您的终端设备支持指纹识别或人脸识别小蜜蜂还提供
<span class="agreement-underline">指纹密码面容ID解锁面容ID为小蜜蜂iOS端特有功能</span>
功能用于登录小蜜蜂您可以在小蜜蜂客户端内开启或关闭某项生物识别功能即您可以分别选择开通或关闭指纹密码面容ID解锁指纹验证面容ID验证中的一项或多项
<span class="agreement-underline">您的指纹特征和人脸特征由您录入指纹和录入人脸当时的载体如手机或其他智能手持终端设备及其系统保存小蜜蜂不会保存您的指纹特征和人脸特征</span>
小蜜蜂会在您的
<span class="agreement-underline">安卓终端设备内使用管理指纹IFAA权限您的iOS终端设备内使用面容ID指纹密码</span>
用于验证登录及解锁APP
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>私密空间验证</td>
<td>安卓终端设备内使用管理指纹IFAA权限iOS终端设备内使用面容ID指纹密码</td>
<td>
如果您的终端设备支持指纹识别或人脸识别小蜜蜂还提供
<span class="agreement-underline">指纹验证面容ID验证功能</span>
用于
<span class="agreement-underline">打开私密空间</span>
您可以在小蜜蜂客户端内开启或关闭某项生物识别功能即您可以分别选择开通或关闭指纹密码面容ID解锁指纹验证面容ID验证中的一项或多项
<span class="agreement-underline">您的指纹特征和人脸特征由您录入指纹和录入人脸当时的载体如手机或其他智能手持终端设备及其系统保存小蜜蜂不会保存您的指纹特征和人脸特征</span>
小蜜蜂会在您的
<span class="agreement-underline">安卓终端设备内使用管理指纹IFAA权限</span>
您的
<span class="agreement-underline">iOS终端设备内使用面容ID指纹密码</span>
用于解锁私密空间
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>绑定设备</td>
<td>查看网络连接查看WLAN状态更改WLAN状态更改网络连接性完全的网络访问权限</td>
<td>
小蜜蜂还提供了智能硬件设备服务在给硬件设备配网时我们需要
<span class="agreement-underline">获取 Wi-Fi SSID</span>
除此以外安卓设备还会使用到以下权限
<span class="agreement-underline">查看网络连接</span>
允许应用查看网络连接的相关信息
<span class="agreement-underline">查看WLAN状态</span>
允许应用查看有关WLAN状态的信息
<span class="agreement-underline">更改WLAN状态</span>
允许应用程序连接到WLAN接入点以及WLAN接入点断开连接并对配置的WLAN网络进行更改
<span class="agreement-underline">更改网络连接性</span>
允许该应用更改网络连接的状态
<span class="agreement-underline">完全的网络访问权限</span>
允许应用创建网络套接字和使用自定义网络协议
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>语音对讲</td>
<td>使用手机麦克风权限更改用户音频设置权限</td>
<td>
当您在小蜜蜂客户端内绑定了智能硬件设备后部分智能硬件设备支持语音对讲功能
<span class="agreement-underline">您在使用此功能前需要您授权同意使用手机麦克风</span>
如果您不同意将会导致无法与设备语音对讲安卓设备还会使用到
<span class="agreement-underline">更改您的音频设置权限</span>
允许应用修改全局音频设置方便您控制音量或在遥控器中对天翼高清进行语音控制
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>连接蓝牙设备</td>
<td>使用大致位置权限</td>
<td>
小蜜蜂支持特定的蓝牙设备通过小蜜蜂应用小程序连接到手机或其他智能手持终端设备在您允许开启蓝牙服务且进行蓝牙设备连接操作时
<span class="agreement-underline">需要您授权同意使用大致位置权限</span>
用于搜索周围的蓝牙设备如果您不同意将会导致Android系统版本6.0以上终端无法发现周围可连接的蓝牙设备最终导致无法连接
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>查找并连接到本地网络上的设备</td>
<td>使用查找并连接到本地网络上的设备权限</td>
<td>
小蜜蜂还提供了连接本地智能硬件设备服务当您在小蜜蜂客户端内使用打印投屏动感影集小程序我家硬盘小程序时
<span class="agreement-underline">需要您授权同意使用查找并连接到本地网络上的设备权限</span>
用于应用使用 Bonjour发现兼容隔空打印的打印机或发现兼容隔空播放的设备 Apple TV如果您不同意将无法发现本地网络中可连接的打印或投屏设备最终导致无法连接本地硬件
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>安全管理</td>
<td>获取小蜜蜂安卓终端和iOS终端的设备型号</td>
<td>
为了保障向您提供的服务的安全稳定运行预防传输过程的风险如识别是否常用设备登录是否常用位置登录我们会对您使用的
<span class="agreement-underline">小蜜蜂Android终端iOS终端的设备型号</span>
进行记录如果您不同意可能无法完成风控验证
</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="agreement-rule">
<p><span>SDK与代码使用</span></p>
</div>
<div class="agreement-rule">
<p>在您使用小蜜蜂APP的功能或者服务时在某些特定使用场景下我们可能会使用具有相应业务资质及能力的第三方服务商提供的软件服务工具包简称SDK和代码来为您提供服务
<span class="agreement-underline">小蜜蜂无法获得您在使用该类SDK服务时产生的信息但是如果你已明示同意该SDK获得你的云盘数据信息该SDK将通过小蜜蜂接口获得你的云盘数据信息</span>
关于第三方SDK具体调用的设备权限类型以及如何收集使用您的个人信息建议您参考第三方SDK的相关服务协议及隐私政策如果您希望进一步了解我们所接入的第三方SDK情况请您阅读第三方SDK情况说明
</p>
</div>
<div class="agreement-rule">
<a style="text-decoration: underline;color:blue;" href="https://h5.cloud.189.cn/third.html#/list/third">
<p>第三方SDK情况说明</p>
</a>
</div>
<div class="agreement-rule">
<p><span>我们如何使用Cookie 和同类技术</span></p>
</div>
<div class="agreement-rule">
<p><span>1Cookie</span></p>
</div>
<p>在您访问我们的网站时我们会在您的计算机或移动设备中存储名为Cookie的小数据文件Cookie通常包含了一些标识符主要存储了用户标识不涉及用户真实名称用户访问的时间以及用户访问页面的字符借助Cookie标识能够帮助网站统计用户的访问频次访问页面偏好及接入网站的加载性能的数据用于确保网站正常高效运转保护您的数据安全
</p>
<p>我们不会将 Cookie用于本政策所述目的之外的任何用途您可根据自己的偏好管理或删除 Cookie有关详情请参见
AboutCookies.org您可以清除计算机上保存的所有Cookie大部分网络浏览器都设有阻止Cookie 的功能<span
class="agreement-underline">如果您这么做则需要在每一次访问我们的网站时亲自更改用户设置</span></p>
<div class="agreement-rule">
<p><span>2网站信标和像素标签</span></p>
</div>
<p> Cookie
我们还会在网站上使用网站信标和像素标签及其他同类技术由于小蜜蜂产品需要嵌入到第三方的网站中受同源策略的影响为了能准确发送统计结果小蜜蜂使用了网站信标和像素标签及其他同类技术如用户在访问了您的网站时我们会通过像素标签的方式将用户访问的页面信息网站加载性能数据通过该技术去跨域发送到采集服务以实现后续的运营指标及性能指标数据的统计分析所有通过网站信标及像素标签技术发起的请求都通过HTTPS方式发送SSL会对数据进行加密您的数据都在加密协议下传输
</p>
<div class="agreement-rule">
<p><span>3本地存储器</span></p>
</div>
<p>除上述技术外小蜜蜂还启用了本地存储器的方式对您网站的访问者的一些交互行为进行记录这部分数据主要为了帮助您对网站的点击生成热力分布方便运营决策者优化自己的网站结构所有用户数据都存在用户自身的本地浏览器中同时数据在通过HTTPS发送到服务器后小蜜蜂会对用户的本地数据进行清除确保数据的安全性
</p>
<div class="agreement-rule">
<p><span>4Do Not Track请勿追踪</span></p>
</div>
<p>很多网络浏览器均设有 Do Not Track 功能该功能可向网站发布 Do Not Track 请求目前主要互联网标准组织尚未设立相关政策来规定网站应如何应对此类请求但如果您的浏览器启用了 Do
Not Track那么我们的所有网站都会尊重您的选择</p>
<div class="agreement-rule">
<p><span>征得授权同意的例外</span></p>
</div>
<div class="agreement-rule">
<p>
您充分理解并同意我们在以下情况下收集使用您的个人信息无需您的授权同意且我们可能不会响应您提出的更正/修改删除注销撤回同意索取信息的请求
</p>
</div>
<p>1与国家安全国防安全直接相关的</p>
<p>2与公共安全公共卫生重大公共利益直接相关的</p>
<p>3与犯罪侦查起诉审判和判决执行等直接相关的</p>
<p>4出于维护您或其他个人的生命财产等重大合法权益但又很难得到本人同意的</p>
<p>5您自行向社会公众公开的个人信息</p>
<p>6从合法公开披露的信息中收集个人信息的如合法的新闻报道政府信息公开等渠道</p>
<p>7根据与您签订和履行相关协议或其他书面文件所必需的</p>
<p>8用于维护所提供的产品及/或服务的安全稳定运行所必需的包括但不限于发现处置产品及/或服务的故障</p>
<p>9为合法的新闻报道所必需的</p>
<p>10学术研究机构基于公共利益开展统计或学术研究所必要且对外提供学术研究或描述的结果时对结果中所包含的个人信息进行去标识化处理的</p>
<p>11法律法规规定的其他情形</p>
<div class="agreement-rule">
<p><span>我们如何使用您的个人信息</span></p>
</div>
<div class="agreement-rule">
<p>1我们会保持您的个人数据及时更新安全地存储或销毁它最小化收集和保留我们需要为您提供服务所需的数据保护个人信息免遭泄露滥用未经授权的访问和披露采取适当的技术措施保护您个人信息的安全</p>
<p>2我们将您的信息用于以下用途</p>
<div class="agreement-rule">
<p>1根据我们与您签订的合同向您提供服务</p>
<p>2实现您的服务请求包括履行订单交付激活或验证产品或服务参加线上或线下活动应您的要求进行变更或者提供您请求的信息包括但不限于产品或服务的营销资料以及提供技术支持</p>
<p>3<span
class="agreement-underline">向您发送有关您可能感兴趣的产品和服务的信息邀请您参与电信活动包括促销活动市场调查或满意度调查或向您发送营销信息如果您不想接收此类信息则可以按平台提供的退订功能进行退订</span></p>
<p>4 按照我们收集信息时所述的要求提供其他您所要求的服务</p>
<p>5维持我们储存和处理您个人信息的数据技术系统的完整性和安全性</p>
<p>6执行或保护我们的协议或与您签订的合同</p>
<p>7检测和调查信息泄露非法活动和欺诈行为</p>
<p>8联系您解决问题</p>
<p>9经过您许可的其它用途</p>
</div>
<p>3需要注意的是以上使用方式涵盖了我们使用您信息的主要方式我们可能根据实际需要通过更新网站页面APP小程序或设备固件等方式为用户提供更加多样化的服务当我们要将信息用于本协议未载明的其他用途时或要将基于特定目的收集而来的信息用于其他目的时会以签署协议弹窗提示更新本协议等形式再次征求您的同意</p>
</div>
<div class="agreement-rule">
<p><span>我们如何共享转让公开披露您的个人信息</span></p>
</div>
<div class="agreement-rule">
<p><span>共享</span></p>
</div>
<p>我们不会与世纪龙信息网络有限责任公司以外的任何公司组织和个人分享您的个人信息但以下情况除外</p>
<div class="agreement-rule">
<p>1<span class="agreement-underline">我们可能会根据法律法规规定或按政府主管部门的强制性要求
对外共享您的个人信息见本协议第一条中描述需要收集您个人信息种类</span></p>
</div>
<p>2在获取明确同意的情况下共享获取您的明确同意后我们会与其它方共享您已明确同意的个人信息</p>
<p>3与授权合作伙伴的共享</p>
<div class="agreement-rule">
<p><span
class="agreement-underline">我们可能委托授权合作伙伴为您提供某些服务或代表我们履行职能</span>我们仅会处于本隐私政策声明的合法正当必要特定明确的目的共享您的信息授权合作伙伴只能接触到其履行职责所需信息如您选择云冲印的照片提供给服务提供方见本协议第一条中描述需要向您请求访问云盘内的照片且不得将此信息用于其他任何目的
</p>
</div>
<p>目前我们的授权合作伙伴包括以下类型</p>
<p>
</p>
<p>供应商和服务提供商我们将信息发送给支持我们服务的服务提供商这些支持包括受我们委托向用户提供技术和基础硬件服务分析我们服务的使用方式</p>
<p>我们会对授权合作伙伴获取有关信息的应用程序接口API软件工具开发包SDK进行严格的安全检测并于授权合作伙伴约定严格的数据保护措施令其按照我们的委托目的服务说明本隐私政策以及其它相关的保密和安全措施来处理个人信息
</p>
<div class="agreement-rule">
<p><span>转让</span></p>
</div>
<p>我们不会将您的个人信息转让给任何公司组织和个人但以下情况除外</p>
<div class="agreement-rule">
<p><span
class="agreement-underline">在涉及合并收购或破产清算时如涉及到个人信息转让我们会在要求新的持有您个人信息的公司组织继续受此隐私政策的约束否则我们将要求该公司组织重新向您征求授权同意见本协议第一条中描述需要收集您个人信息种类在涉及兼并重组或破产清算情形时我们会要求新的承接您个人信息的公司组织继续受本协议的约束承接数据安全责任和义务否则我们将要求该公司组织和个人重新向您征求授权同意没有数据承接方的将对数据作销毁处理</span>
</p>
</div>
<div class="agreement-rule">
<p><span>公开披露</span></p>
</div>
<p>我们仅会在以下情况下公开披露您的个人信息</p>
<div class="agreement-rule">
<p><span
class="agreement-underline">基于法律的披露在法律法律程序诉讼或政府主管部门强制性要求的情况下我们可能会公开披露您的个人信息见本协议第一条中描述需要收集您个人信息种类</span>
</p>
</div>
<div class="agreement-rule">
<p><span>我们如何存储您的个人信息</span></p>
</div>
<p>我们在中华人民共和国境内运营中收集和产生的个人信息存储在中国境内由于我们的产品不涉及跨境业务您的数据不会涉及跨境传输除非法律有另外规定小蜜蜂将按照如下期限保存您的信息</p>
<div class="agreement-rule">
<p>1在您使用小蜜蜂产品或服务期间我们将持续为您保存将严格按照国家有关规定做好您数据存储工作除非您主动删除或注销小蜜蜂帐号</p>
<p>2我们将根据小蜜蜂的数据备份策略定期对收集的信息进行备份处理</p>
<p>3我们仅为实现目的所必需的最短时间保留您的个人信息但在下列情况下我们有可能因需符合法律要求更改个人信息的存储时间</p>
<div class="agreement-rule">
<p>为遵守适用的法律法规等有关规定</p>
<p>为遵守法院判决裁定或其他法律程序的规定</p>
<p>为遵守相关政府机关或法定授权组织的要求</p>
<p>我们有理由确信需要遵守法律法规等有关规定</p>
<p>为执行相关服务协议或本政策维护社会公共利益为保护我们的客户我们或我们的关联公司其他用户或雇员的人身财产安全或其他合法权益所合理必需的用途</p>
</div>
<p>当我们要将信息用于本政策未载明的其它用途时会事先征求您的同意当我们要将基于特定目的收集而来的信息用于其他目的时会事先征求您的同意</p>
<p>4对于所收集的信息我们将在法律规定的最短期限内保存超出保存期限后我们将对所收集的信息进行匿名化处理您的个人信息经过匿名化与脱敏处理后将形成可以使用的流通数据小蜜蜂对此数据的保存和使用无需另外征得您的同意</p>
<p>5当您删除信息或注销小蜜蜂帐号后小蜜蜂将停止对您个人信息的使用并在一定期限内删除您的个人信息或匿名化处理</p>
<p>6当我们停止运营其产品或服务时我们将</p>
<div class="agreement-rule">
<p>1及时停止继续收集您个人信息的活动</p>
<p>2将停止运营的通知以送达或公告的形式通知您</p>
<p>3对我们所持有的个人信息进行删除或匿名化处理</p>
</div>
</div>
<div class="agreement-rule">
<p><span>我们如何保护您的个人信息</span></p>
</div>
<div class="agreement-rule">
<p>我们已使用符合业界标准的安全防护措施保护您提供的个人信息 <span
class="agreement-underline">防止数据遭到未经授权访问公开披露使用修改损坏或丢失</span>我们会采取一切合理可行的措施保护您站点下用户的个人信息在您站点用户的浏览器与服务之间交换数据如采集用户访问频次访问偏好及网站性能时受
SSL加密保护我们同时对小蜜蜂网站提供 https
安全浏览方式我们会使用加密技术确保数据的保密性我们会使用受信赖的保护机制防止数据遭到恶意攻击我们会部署访问控制机制确保只有授权人员才可访问个人信息以及我们会举办安全和隐私保护培训课程加强员工对于保护个人信息重要性的认识
</p>
</div>
<div class="agreement-rule">
<p>我们会采取一切合理可行的措施<span
class="agreement-underline">确保未收集无关的个人信息</span>我们只会在达成本政策所述目的所需的期限内保留您的个人信息除非需要延长保留期详见一存储信息的期限或受到法律的允许
</p>
</div>
<div class="agreement-rule">
<p><span
class="agreement-underline">互联网并非绝对安全的环境而且电子邮件即时通讯及与其他用户的交流方式并未加密我们强烈建议您不要通过此类方式发送小蜜蜂账号信息请使用复杂密码协助我们保证您的账号安全</span>
</p>
</div>
<p>互联网环境并非百分之百安全我们将尽力确保或担保您发送给我们的任何信息的安全性如果我们的物理技术或管理防护设施遭到破坏导致信息被非授权访问公开披露篡改或毁坏导致您的合法权益受损我们将承担相应的法律责任
</p>
<p>在不幸发生个人信息安全事件后我们将按照法律法规的要求及时向您告知安全事件的基本情况和可能的影响我们已采取或将要采取的处置措施您可自主防范和降低风险的建议对您的补救措施我们将及时将事件相关情况以邮件信函电话推送通知等方式告知您难以逐一告知个人信息主体时我们会采取合理有效的方式发布公告同时我们还将按照监管部门要求主动上报个人信息安全事件的处置情况
</p>
<p>对于所收集的信息我们将在法律规定的最短期限内保存超出保存期限后我们将对所收集的信息进行匿名化处理</p>
<div class="agreement-rule">
<p><span>您的权利</span></p>
</div>
<p>按照中国相关的法律法规标准以及其他国家地区的通行做法我们保障您对自己的个人信息行使以下权利</p>
<div class="agreement-rule">
<p><span>访问您的个人信息</span></p>
</div>
<p>您有权访问您的个人信息法律法规规定的例外情况除外如果您想行使数据访问权可以通过以下方式自行访问</p>
<p>账户信息为了您的个人信息安全您的手机号会进行脱敏显示您可以通过我的-&gt;设置-账号与安全查看您的用户头像昵称天翼账号手机号目前APP内支持修改用户头像及昵称如果您希望更改您的密码添加安全信息或关闭您的账户您可以通过访问e.189.cn执行此类操作
</p>
<p>如果您无法通过上述链接访问这些个人信息请您把问题发送到邮箱kaidalai@163.com我们将在7个工作日内回复您的请求</p>
<div class="agreement-rule">
<p><span>更正您的个人信息</span></p>
</div>
<p>当您发现我们处理的关于您的个人信息有错误时您有权要求我们做出更正您可以通过访问您的个人信息中罗列的方式提出更正申请</p>
<p>如果您无法通过上述链接更正这些个人信息请您把问题发送到邮箱kaidalai@163.com我们将在7个工作日内回复您的更正请求</p>
<div class="agreement-rule">
<p><span>删除您的个人信息</span></p>
</div>
<p>您可以通过访问e.189.cn-&gt;点击页面底部在线客服联系我们进行信息删除我们将在七个工作日内做出答复若我们决定响应您的删除请求我们还将同时通知从我们获得您的个人信息的实体要求其及时删除除非法律法规另有规定或这些实体获得您的独立授权
</p>
<p>当您从我们的服务中删除信息后我们可能不会立即备份系统中删除相应的信息但会在备份更新时删除这些信息</p>
<div class="agreement-rule">
<p><span>个人信息主体注销账户</span></p>
</div>
<p>您随时可注销此前注册的账户您可以通过以下方式自行操作</p>
<p>1手机端安卓/iOS在登录界面进入帮助-&gt;查看其它问题-&gt;我怎么注销账号</p>
<p>2手机端安卓/iOS我的-&gt;点击头像进入账号与安全页面-&gt;点击安全中心-&gt;小蜜蜂账号注销</p>
<p>3关注小蜜蜂公众号访问小蜜蜂公众号输入人工客服-&gt;通过人工客服引导由用户自己在APP内注销我的小蜜蜂账号我们将在七个工作日内做出答复服务时段830-2200
</p>
<p>在注销账户之后我们将停止为您提供产品或服务并依据您的要求删除您的个人信息法律法规另有规定的除外</p>
<div class="agreement-rule">
<p><span>改变您授权同意的范围</span></p>
<p>小蜜蜂业务功能可能需要一些基本的个人信息才能得以完成见本协议中的第一条除此之外对于额外个人信息的收集和使用您可以与通过在线客服以及联系个人信息保护相关负责人给予或撤回授权联系方式见本协议第九条</p>
<p>对于您已经授权同意我们收集和使用的终端设备权限信息您可以通过在终端设备进行设置改变或撤回您的授权同意Android终端可点击系统设置->应用与权限->应用权限管理进行设置iOS终端可点击系统设置->小蜜蜂进行设置您也可以在本APP中我的->点击头像进入账号与安全页面->点击安全中心->小蜜蜂账号注销的路径撤回授权同意您改变或撤回授权同意后可能无法使用相应的功能服务</p>
<p>当您收回同意后我们将不再处理相应的个人信息
<span
class="agreement-underline">但您收回同意的决定不会影响此前基于您的授权而开展的个人信息处理</span>
</p>
</div>
<div class="agreement-rule">
<p><span>响应您的上述请求</span></p>
</div>
<p>为保障安全您可能需要提供书面请求或以其他方式证明您的身份我们可能会先要求您验证自己的身份然后再处理您的请求</p>
<p>我们将在七个工作日内做出答复</p>
<p>对于您合理的请求我们原则上不收取费用但对多次重复超出合理限度的请求我们将视情收取一定成本费用对于那些无端重复需要过多技术手段需要开发新系统或从根本上改变现行惯例给他人合法权益带来风险或者非常不切实际涉及备份磁带上存放的信息的请求我们可能会予以拒绝
</p>
<p>在以下情形中按照法律法规要求我们将无法响应您的请求</p>
<p>1与国家安全国防安全直接相关的</p>
<p>2与公共安全公共卫生重大公共利益直接相关的</p>
<p>3与犯罪侦查起诉审判和判决执行等直接相关的</p>
<p>4有充分证据表明您存在主观恶意或滥用权利的</p>
<p>5响应您的请求将导致您或其他个人组织的合法权益受到严重损害的</p>
<p>6涉及商业秘密的</p>
<div class="agreement-rule">
<p><span>我们如何处理儿童的个人信息</span></p>
</div>
<div>
<p><span class="agreement-underline">我们的产品网站和服务主要面向企业级用户用户对象一般为成人如果没有父母或监护人的同意儿童不得创建自己的用户账户</span></p>
<p><span class="agreement-underline">对于经父母同意而收集儿童个人信息的情况我们只会在受到法律允许父母或监护人明确同意或者保护儿童所必要的情况下使用或公开披露此信息</span></p>
<p><span class="agreement-underline">尽管当地法律和习俗对儿童的定义不同但我们将不满 14 周岁的任何人均视为儿童如果我们发现自己在未事先获得可证实的父母同意的情况下收集了儿童的个人信息则会设法尽快删除相关数据</span></p>
</div>
<div class="agreement-rule">
<p><span>本政策如何更新</span></p>
</div>
<p>我们的隐私政策可能变更</p>
<p>未经您明确同意我们不会削减您按照本隐私政策所应享有的权利<span class="agreement-underline">我们会在本页面上发布对本政策所做的任何变更</span></p>
<p><span class="agreement-underline">对于重大变更我们还会提供更为显著的通知包括对于某些服务 我们会通过电子邮件发送通知说明隐私政策的具体变更内容</span></p>
<p>本政策所指的重大变更包括但不限于</p>
<p>1我们的服务模式发生重大变化如处理个人信息的目的处理的个人信息类型个人信息的使用方式等</p>
<p>2我们在所有权结构组织架构等方面发生重大变化如业务调整破产并购等引起的所有者变更等</p>
<p>3个人信息共享转让或公开披露的主要对象发生变化</p>
<p>4您参与个人信息处理方面的权利及其行使方式发生重大变化</p>
<p>5我们负责处理个人信息安全的责任部门联络方式及投诉渠道发生变化时</p>
<p>6个人信息安全影响评估报告表明存在高风险时我们还会将本政策的旧版本存档供您查阅</p>
<div class="agreement-rule">
<p><span>如何联系我们</span></p>
</div>
<p>如果您对本隐私政策有任何疑问意见或建议也通过以下方式与我们联系</p>
<p>电子邮箱kaidalai@163.com</p>
<p>个人信息保护相关负责人联系方式kaidalai@163.com</p>
<p>您反馈的信息我们将有专人跟进负责处理我们将在十五个工作日内回复</p>
<p>如果您对我们的回复不满意特别是我们的个人信息处理行为损害了您的合法权益您还可以通过法律途径或前往行业自律协会等机构寻求解决方案</p>
<p>企业名称深圳市凯达来科技有限公司</p>
<p>地点深圳市龙岗区横岗街道沙荷路40-11</p>
</div>
</div>
</template>
<script>
export default {
name: 'admin'
}
</script>
<style lang="less">
.content-text {
width: 900px;
margin: 10px auto 0;
padding-bottom: 60px;
color: #333;
font-size: 14px;
line-height: 2em;
}
.content-text .agreement-underline {
font-weight: bold;
text-decoration: underline;
}
.content-text .agreement-rule span {
font-weight: bold;
}
.content-title {
width: 900px;
margin: 0 auto;
height: 60px;
margin-top: 20px;
font-size: 22px;
font-weight: bold;
line-height: 60px;
text-align: center;
}
</style>

@ -0,0 +1,200 @@
<template>
<div class="text-container">
<h1>小蜜蜂管家端APP用户协议及隐私政策</h1>
<h2>用户协议</h2>
<h3>用户协议及隐私政策</h3>
<h4>本隐私信息保护政策生效日期2022年02月
本隐私信息保护政策版本2022 v1.0</h4>
<p>欢迎您使用小蜜蜂管家端APP软件及服务 为使用小蜜蜂管家端APP软件以下简称许可软件及服务您应当阅读并遵守用户协议及隐私政策以下简称本协议请您务必审慎阅读充分理解各条款内容特别是免除或者限制责任的条款以及开通或使用某项服务的单独协议并选择接受或不接受限制免责条款可能以加粗形式提示您注意 一旦您下载安装使用许可软件即表示您同意接受本协议所有条款和条件的约束如您不同意本协议条款和条件请勿使用许可软件并请销毁所有许可软件副本 请您注意本协议不适用于您通过我们的产品/服务而接入的其他第三方产品/服务(其他第三方包括您的交易相对方任何第三方网站以及第三方服务提供者等)具体规定请参照该第三方用户协议及隐私政策或类似声明</p>
<h3>第一部分 用户协议</h3>
<h3>协议的范围</h3>
<h4>1.1协议适用主体范围</h4>
<p>本协议是您与深圳市凯达来科技有限公司以下称凯达来之间关于您下载安装使用登录许可软件以及使用许可软件提供的服务所订立的协议</p>
<h3>关于本服务</h3>
<h4>2.1本服务内容</h4>
<p>本服务内容是指凯达来向用户提供的跨平台的生活助手小蜜蜂管家端APP软件同时提供由物业提供的基础服务增值物业服务周边商圈优惠信息在线支付政府提供的公共资源等服务内容</p>
<h4>2.2本服务形式</h4>
<p>2.2.1 您使用本服务需要下载小蜜蜂管家端软件对于这些软件凯达来给予您一项个人的不可转让及非排他性的许可</p>
<p>2.2.2 本服务中小蜜蜂管家端软件提供包括但不限于iOSandroid等多个应用版本用户必须选择与所安装手机相匹配的软件版本</p>
<h4>2.3许可的范围</h4>
<p>2.3.1 凯达来给予您一项个人的不可转让及非排他性的许可以使用许可软件您可以为非商业目的在终端设备上安装使用显示运行许可软件</p>
<p>2.3.2 本条及本协议其他条款未明示授权的其他一切权利仍由凯达来保留您在行使这些权利时须另外取得凯达来的书面许可凯达来如果未行使前述任何权利并不构成对该权利的放弃</p>
<h3>软件的获取</h3>
<h4>3.1 您可以直接从凯达来的网站上获取许可软件也可以从得到凯达来授权的第三方获取</h4>
<h4>3.2 如果您从未经凯达来授权的第三方获取许可软件或与许可软件名称相同的安装程序凯达来无法保证该软件能够正常使用并对因此给您造成的损失不予负责</h4>
<h3>软件的安装与卸载</h3>
<h4>4.1 凯达来可能为不同的终端设备开发了不同的软件版本您应当根据实际情况选择下载合适的版本进行安装</h4>
<h4>4.2 下载安装程序后您需要按照该程序提示的步骤正确安装</h4>
<h4>4.3 为提供更加优质安全的服务在许可软件安装时凯达来可能推荐您安装其他软件您可以选择安装或不安装</h4>
<h4>4.4 如果您不再需要使用许可软件或者需要安装新版软件可以自行卸载如果您愿意帮助凯达来改进产品服务请告知卸载的原因</h4>
<h3>软件的更新</h3>
<h4>5.1 为了改善用户体验完善服务内容凯达来将不断努力开发新的服务并为您不时提供软件更新这些更新可能会采取软件替换修改功能强化版本升级等形式</h4>
<h4>5.2 为了保证许可软件及服务的安全性和功能的一致性凯达来有权不经向您特别通知而对软件进行更新或者对软件的部分功能效果进行改变或限制</h4>
<h4>5.3 许可软件新版本发布后旧版本的软件可能无法使用凯达来不保证旧版许可软件继续可用及相应的客户服务请您随时核对并下载最新版本</h4>
<h3>用户个人信息保护</h3>
<h4>6.1 保护用户个人信息是凯达来的一项基本原则凯达来将会采取合理的措施保护用户的个人信息除法律法规规定的情形外未经用户许可凯达来不会向第三方公开透露用户个人信息凯达来对相关信息采用专业加密存储与传输方式保障用户个人信息的安全</h4>
<h4>6.2 您在注册账号或使用本服务的过程中可能需要提供一些必要的信息例如为向您提供账号注册服务或进行用户身份识别需要您填写手机号码住址信息等若国家法律法规或政策有特殊规定的您需要提供真实的身份信息若您提供的信息不完整则无法使用本服务或在使用过程中受到限制</h4>
<h4>6.3 一般情况下您可随时浏览修改自己提交的信息但出于安全性和身份识别如服务上门的考虑您最好不要修改注册时提供的住址信息及其他验证信息</h4>
<h4>6.4 凯达来将运用各种安全技术和程序建立完善的管理制度来保护您的个人信息以免遭受未经授权的访问使用或披露</h4>
<h4>6.5 未经您的同意凯达来不会向凯达来以外的任何公司组织和个人披露您的个人信息但法律法规另有规定的除外</h4>
<h3>主权利义务条款</h3>
<h4>7.1 账号使用规范</h4>
<p>7.1.1 您在使用本服务前需要注册一个唯一的小蜜蜂管家端账号注册账号时请按照软件的提示进行注册为使填写的信息能尽快被核实通过请填写您真实的个人及住址信息</p>
<p>7.1.2 小蜜蜂管家端账号的所有权归凯达来所有用户完成申请注册手续后仅获得小蜜蜂管家端账号的使用权且该使用权仅属于初始申请注册人同时初始申请注册人不得赠与借用租用转让或售卖小蜜蜂管家端账号或者以其他方式许可非初始申请注册人使用小蜜蜂管家端账号非初始申请注册人不得通过受赠继承承租受让或者其他任何方式使用小蜜蜂管家端账号 </p>
<p>7.1.3 用户有责任妥善保管注册账户信息及账户密码的安全用户需要对注册账户以及密码下的行为承担法律责任用户同意在任何情况下不向他人透露账户及密码信息在您怀疑他人在使用您的账号时您应立即通知凯达来公司</p>
<h4>7.2 用户注意事项</h4>
<p>7.2.1 您理解并同意为了向您提供有效的服务许可软件会利用您移动通讯终端的处理器和带宽等资源许可软件使用过程中可能产生数据流量的费用用户需自行向运营商了解相关资费信息并自行承担相关费用</p>
<b>7.2.2 您理解并同意凯达来将会尽其商业上的合理努力保障您在许可软件及服务中的数据存储安全但是凯达来并不能就此提供完全保证包括但不限于以下情形</b>
<p>7.2.2.1 凯达来不对您在许可软件及服务中相关数据的删除或储存失败负责</p>
<p>7.2.2.2 凯达来有权根据实际情况自行决定单个用户在许可软件及服务中数据的最长储存期限并在服务器上为其分配数据最大存储空间等您可根据自己的需要自行备份许可软件及服务中的相关数据</p>
<p>7.2.2.3 如果您停止使用许可软件及服务或服务被终止或取消凯达来可以从服务器上永久地删除您的数据服务停止终止或取消后凯达来没有义务向您返还任何数据</p>
<b>7.2.3 用户在使用许可软件及服务时须自行承担如下来自凯达来不可掌控的风险内容包括但不限于</b>
<p>7.2.3.1 由于不可抗拒因素可能引起的个人信息丢失泄漏等风险</p>
<p>7.2.3.2 用户必须选择与所安装手机相匹配的软件版本否则由于软件与手机型号不相匹配所导致的任何问题或损害均由用户自行承担</p>
<p>7.2.3.3 用户在使用许可软件访问第三方网站时因第三方网站及相关内容所可能导致的风险由用户自行承担</p>
<p>7.2.3.4 用户发布的内容被他人转发分享因此等传播可能带来的风险和责任</p>
<p>7.2.3.5 由于无线网络信号不稳定无线网络带宽小等原因所引起的小蜜蜂管家端登录失败资料同步不完整页面打开速度慢等风险</p>
<p>7.2.4 为了提高园区订单包括但不限于维修投诉建议咨询等的流转速度避免造成积压同时也为了能够给您提供更高效的服务在订单处理完成后请您及时进行确认并对我们的服务做出评价若您因故未能在14日内进行订单确认则系统会默认服务已经完成</p>
<p>7.2.5 代表用户身份的二维码仅供本人用于在本系统中证明身份;</p>
<h4>7.3 第三方产品和服务</h4>
<p>7.3.1 您在使用许可软件第三方提供的产品或服务时除遵守本协议约定外还应遵守第三方的用户协议凯达来和第三方对可能出现的纠纷在法律规定和约定的范围内各自承担责任</p>
<h3>用户行为规范</h3>
<h4>8.1 信息内容规范</h4>
<b>8.1.1 您理解并同意凯达来一直致力于为用户提供文明健康规范有序的网络环境您不得利用小蜜蜂管家端账号或许可软件及服务制作复制发布传播如下干扰许可软件正常运营以及侵犯其他用户或第三方合法权益的内容包括但不限于</b>
<p>8.1.1.1 发布传送传播储存违反国家法律危害国家安全统一社会稳定公序良俗社会公德以及侮辱诽谤淫秽或含有任何性或性暗示的暴力的内容</p>
<p>8.1.1.2 发布传送传播储存侵害他人名誉权肖像权知识产权商业秘密等合法权利的内容</p>
<p>8.1.1.3 涉及他人隐私个人信息或资料的</p>
<p>8.1.1.4 发表传送传播骚扰广告信息及垃圾信息</p>
<p>8.1.1.5 其他违反法律法规政策及公序良俗社会公德或干扰许可软件正常运营和侵犯其他用户或第三方合法权益内容的信息</p>
<h4>8.2 软件使用规范</h4>
<b>除非法律允许或凯达来书面许可您使用许可软件过程中不得从事下列行为</b>
<p>8.2.1 删除许可软件及其副本上关于著作权的信息</p>
<p>8.2.2 对许可软件进行反向工程反向汇编反向编译或者以其他方式尝试发现许可软件的源代码</p>
<p>8.2.3 对凯达来拥有知识产权的内容进行使用出租出借复制修改链接转载汇编发表出版建立镜像站点等</p>
<p>8.2.4 对许可软件或者许可软件运行过程中释放到任何终端内存中的数据软件运行过程中与服务器端的交互数据以及许可软件运行所必需的系统数据进行复制修改增加删除挂接运行或创作任何衍生作品形式包括但不限于使用插件外挂或非凯达来经授权的第三方工具/服务接入许可软件和相关系统</p>
<p>8.2.5 通过修改或伪造软件运行中的指令数据增加删减变动软件的功能或运行效果或者将用于上述用途的软件方法进行运营或向公众传播无论这些行为是否为商业目的</p>
<p>8.2.6 通过非凯达来开发授权的第三方软件插件外挂系统登录或使用小蜜蜂管家端软件及服务或制作发布传播上述工具</p>
<p>8.2.7 自行或者授权他人第三方软件对许可软件及其组件模块数据进行干扰</p>
<p>8.2.8 其他未经凯达来明示授权的行为</p>
<h4>8.3 服务运营规范</h4>
<b>除非法律允许或凯达来书面许可您使用本服务过程中不得从事下列行为</b>
<p>8.3.1 提交发布虚假信息或冒充利用他人名义的</p>
<p>8.3.2 诱导其他用户点击链接页面或分享信息的</p>
<p>8.3.3 虚构事实隐瞒真相以误导欺骗他人的</p>
<p>8.3.4 侵害他人名誉权肖像权知识产权商业秘密等合法权利的</p>
<p>8.3.5 未经凯达来书面许可利用小蜜蜂管家端账号和任何功能以及第三方运营平台进行推广或互相推广的</p>
<p>8.3.6 利用小蜜蜂管家端账号或许可软件及服务从事任何违法犯罪活动的</p>
<p>8.3.7 制作发布与以上行为相关的方法工具或对此类方法工具进行运营或传播无论这些行为是否为商业目的</p>
<p>8.3.8 其他违反法律法规规定侵犯其他用户合法权益干扰产品正常运营或凯达来未明示授权的行为</p>
<h4>8.4 对自己行为负责</h4>
<p>您充分了解并同意您必须为自己注册账号下的一切行为负责包括您所发表的任何内容以及由此产生的任何后果您应对本服务中的内容自行加以判断并承担因使用内容而引起的所有风险包括因对内容的正确性完整性或实用性的依赖而产生的风险凯达来无法且不会对因前述风险而导致的任何损失或损害承担责任</p>
<h4>8.5 违约处理</h4>
<p>8.5.1 如果凯达来发现或收到他人举报或投诉用户违反本协议约定的凯达来有权不经通知随时对相关内容进行删除并视行为情节对违规账号处以包括但不限于警告限制或禁止使用全部或部分功能账号封禁直至注销的处罚并公告处理结果</p>
<p>8.5.2 您理解并同意凯达来有权依合理判断对违反有关法律法规或本协议规定的行为进行处罚对违法违规的任何用户采取适当的法律行动并依据法律法规保存有关信息向有关部门报告等用户应独自承担由此而产生的一切法律责任</p>
<p>8.5.3 您理解并同意因您违反本协议或相关服务条款的规定导致或产生第三方主张的任何索赔要求或损失您应当独立承担责任凯达来因此遭受损失的您也应当一并赔偿</p>
<h3>知识产权声明</h3>
<h4>9.1 凯达来是许可软件的知识产权权利人许可软件的一切著作权商标权专利权商业秘密等知识产权以及与许可软件相关的所有信息内容包括但不限于文字图片音频视频图表界面设计版面框架有关数据或电子文档等均受中华人民共和国法律法规和相应的国际条约保护凯达来享有上述知识产权但相关权利人依照法律规定应享有的权利除外</h4>
<h4>9.2 未经凯达来或相关权利人书面同意您不得为任何商业或非商业目的自行或许可任何第三方实施利用转让上述知识产权</h4>
<h3>终端安全责任</h3>
<h4>10.1 您理解并同意许可软件同大多数互联网软件一样可能会受多种因素影响包括但不限于用户原因网络服务质量社会环境等也可能会受各种安全问题的侵扰包括但不限于他人非法利用用户资料进行现实中的骚扰用户下载安装的其他软件或访问的其他网站中可能含有病毒木马程序或其他恶意程序威胁您的终端设备信息和数据安全继而影响许可软件的正常使用等因此您应加强信息安全及个人信息的保护意识注意密码保护以免遭受损失</h4>
<h4>10.2 您不得制作发布使用传播用于窃取小蜜蜂管家端账号及他人个人信息财产的恶意程序</h4>
<h4>10.3 维护软件安全与正常使用是凯达来和您的共同责任凯达来将按照行业标准合理审慎地采取必要技术措施保护您的终端设备信息和数据安全但是您承认和同意凯达来并不能就此提供完全保证 </h4>
<h4>10.4 在任何情况下您不应轻信借款索要密码或其他涉及财产的网络信息涉及财产操作的请一定先核实对方身份并请经常留意凯达来有关防范诈骗犯罪的提示 </h4>
<h4>10.5 若其他用户发布有攻击性的内容时您可以通过提交举报或屏蔽的方式进行设置也可在设置中取消对其用户的屏蔽</h4>
<h3>十一第三方软件或技术</h3>
<h4>11.1 许可软件可能会使用第三方软件或技术包括许可软件可能使用的开源代码和公共领域代码等下同这种使用已经获得合法授权</h4>
<h4>11.2 许可软件如果使用了第三方的软件或技术凯达来将按照相关法规或约定对相关的协议或其他文件可能通过本协议附件在许可软件安装包特定文件夹中打包等形式进行展示它们可能会以软件使用许可协议授权协议开源代码许可证或其他形式来表达前述通过各种形式展现的相关协议或其他文件均是本协议不可分割的组成部分与本协议具有同等的法律效力您应当遵守这些要求如果您没有遵守这些要求该第三方或者国家机关可能会对您提起诉讼罚款或采取其他制裁措施并要求凯达来给予协助您应当自行承担法律责任</h4>
<h4>11.3 如因许可软件使用的第三方软件或技术引发的任何纠纷应由该第三方负责解决凯达来不承担任何责任凯达来不对第三方软件或技术提供客服支持若您需要获取支持请与第三方联系</h4>
<h3>十二账号注销</h3>
<h4>12.1您可以通过以下方式注销您的账号 登入小蜜蜂管家端APP通过我的-设置-账号管理-注销账号来注销账号在您注销账号前请确保你在小蜜蜂管家端APP的账号同时满足以下条件否则你注销账号的申请可能会被拒绝 1账户在小蜜蜂管家端APP中无资产无欠款 2账户内无未完成的订单已提供服务单未支付的订单/服务 在您主动注销账户之后我们将停止为您提供产品或服务我们将删除您的个人信息使其保持不可被检索访问的状态或对使其进行匿名化处理 </h4>
<h4>12.2若想要删除部分您所填写的信息如实名认证中身份证号身份证图像请通过0574-87760023与我们联系</h4>
<h2>隐私政策</h2>
<p>为用户提供更好更优更个性化的服务是我们坚持不懈的追求也希望通过我们提供的服务可以更方便您的生活依据法律的规定我们将在特定情形下收集使用保存和披露您的个人信息以下条款描述了我们如何收集使用保存和披露您的个人信息 本政策将帮助您了解以下内容请根据以下目录阅读相应章节</p>
<p>1.个人信息的收集 2.个人信息的使用 3.个人信息的披露 4.个人信息的共享 5.安全 6.第三方网站 7.未成年人保护 8.联系我们</p>
<h3>1.个人信息的收集 </h3>
<h4>1.1信息收集目的</h4>
<p>根据国家APP实名制管理规定我们保存使用和披露个人信息是为了通过创建账户识别用户回应查询等方式来为您提供服务在得到您的许可之后小蜜蜂管家端APP会向您提供基础物业服务便民生活服务业主自治及社交服务社区生活相关的服务发送资讯调查优惠和促销信息以及其他宣传材料以为您提供更好的服务物业基础服务包括报修报事生活缴费蓝牙开门访客通行鹰眼服务投诉表扬常用电话快递服务装修管家活动投票问卷调查咨询建议资讯服务幸福里快递代寄车位库房等服务 </p>
<h4>1.2 信息收集的主要范围及方式</h4>
<p>为实现小蜜蜂管家端APP之服务目的小蜜蜂管家端APP会通过技术手段收集您的个人信息通过技术手段所收集的个人信息仅限于您的姓名出生日期身份证号码联系方式住址等使用小蜜蜂管家端APP所必需的信息此外为确保园区安全使用蓝牙开门及鹰眼服务需根据审核规范上传您的有效身份证信息 小蜜蜂管家端APP支持多类操作系统的使用在您通过各种手机操作系统使用小蜜蜂管家端APP的过程中小蜜蜂管家端APP所收集的信息仅限于您同意使用小蜜蜂管家端APP基本服务所必需的信息 我们会遵循正当合法必要的原则出于本政策所述的目的收集和使用您的个人信息您需要授权我们收集和使用个人信息的场景如下所示 </p>
<p>服务项目的及收集范围</p>
<p>报修报事如您使用报修报事功能时我们可能收集您的姓名房号设备信息报修时间</p>
<p>投诉表扬/服务者评价如您使用投诉表扬功能时我们可能会收集您的姓名联系方式房号下单时间如您使用服务者评价功能时我们会收集您所上传或下载的信息这类信息包括搜索关键字发布和回复信息</p>
<p>缴费功能如您使用缴费功能时我们可能收集您的姓名联系地址联系方式支付渠道支付账号支付网关号订单信息交易和消费信息获奖信息虚拟财产信息这些信息属于个人敏感信息在获得您的明示同意后我们将使用加密技术收集此类信息的收集范围我们会在前述活动及其规则中向您明示</p>
<p>蓝牙开门如您使用蓝牙开门功能时我们可能收集您的姓名房号使用时间使用次数开门状态信息</p>
<p>访客通行如您使用访客通行功能时我们可能会收集您的姓名房号信息以及访客姓名访客手机号访客身份证号码访问时间访问人数访客类型访客车牌访客目的访客状态信息</p>
<p>鹰眼服务如您使用鹰眼服务功能时我们可能会收集您的姓名联系方式所在园区房号使用时间信息并在使用服务前按审核要求进行实名认证</p>
<p>常用电话如您使用常用电话功能时我们可能向您请求收集相关通讯录信息包括联系人姓名及对应的联系方式通讯录信息属于个人敏感信息我们将使用加密技术收集用于向您推荐通信录中的好友您可以通过关闭设备通讯录权限停止我们收集前述通讯录信息一旦您取消了授权我们将不再继续收集但是您停止授权的行为不会影响我们此前基于您的授权所进行的信息收集及使用</p>
<p>快递记录/快递代寄如您使用快递服务功能时我们可能收集您的收件人姓名联系方式联系地址收件人类型快递公司快递单号来源录入时间领取时间信息或订单信息</p>
<p>装修管家如您使用装修管家功能时我们可能会收集您的姓名联系方式房号信息</p>
<p>共享停车如您使用共享停车功能时我们可能会收集您的姓名联系方式车牌号使用次数使用时间车位信息</p>
<p>资讯服务如您使用资讯服务功能时我们可能会收集您的姓名查看时间信息</p>
<p>问卷调查/活动投票如您使用问卷调查功能时我们可能会收集您的姓名联系方式所在园区房号调查结果或投票结果信息</p>
<p>咨询建议如您使用咨询建议功能时我们会收集您所上传或下载的信息这类信息包括搜索关键字发布和回复信息</p>
<p>友邻社交如您使用友邻社交功能时我们会收集您姓名联系方式房号发布时间发布内容车位库房信息</p>
<p>业主自治如您使用业主自治功能时我们会收集您的姓名联系方式房号发布时间发布内容信息</p>
<p>中信ETC如您使用中信ETC功能时我们会收集您的姓名联系方式车牌号交易和消费信息订单信息虚拟财产信息</p>
<p>生活商圈如您使用生活商圈功能时我们可能会收集您的姓名联系地址联系方式支付渠道支付账号支付网关号订单信息交易和消费信息获奖信息虚拟财产信息这些信息属于个人敏感信息在获得您的明示同意后我们将使用加密技术收集此类信息的收集范围我们会在前述活动及其规则中向您明示</p>
<p>园区健康如您使用生活健康功能时我们可能会收集您的姓名联系方式园区信息房号使用时间信息</p>
<p>服务者评价如您使用服务者评价功能时我们会收集您所上传或下载的信息这类信息包括搜索关键字发布和回复信息</p>
<p>开门码如您使用开门码功能时,我们会收集您的姓名联系方式住址信息</p>
<b>您需要授权访问及使用权限的功能场景如下所示</b>
<p>业务场景访问及使用权限实名认证需要扫码证件或者选择相册图片使用相机设备权限访问外部存储权写外部存储权限</p>
<p>社区需要拍照或选择相册图片使用相机设备权限访问外部存储权限写外部存储权限 </p>
<p>更换头像 更换头像需要拍照或选择相册图片 使用相机设备权限访问外部存储权限写外部存储权限 </p>
<p>活动添加参与人参与人头像可以编辑需要拍照或选择相册图片 使用相机设备权限访问外部存储权限写外部存储权限 </p>
<p>首页扫一扫需要调用设备摄像头二维码或者从相册里选择图片 使用相机设备权限访问外部存储权限写外部存储权限</p>
<p>订单评价订单评价可以添加图片需要拍照或选择相册图片使用相机设备权限访问外部存储权限写外部存储权限</p>
<p>报事报修可以添加图片使用相机设备权限访问外部存储权限写外部存储权限</p>
<p>商家和商品详情页拨打商家和客服电话需要拨打电话权限</p>
<p>电话物业物业管家首页点击物业电话需要拨打电话权限</p>
<p>常用电话拨打电话权限</p>
<p>语音管家语音报事需要语音识别 访问录音权限</p>
<p>保存图片查看图片点击保存图片访问外部存储权限写外部存储权限 </p>
<p>任务发布填写目标地址时需要定位权限访问位置权限手机麦克风听筒访问权限语音识别访问录音权限</p>
<p>蓝牙开门蓝牙开门需要定位当前蓝牙点位置 访问位置权限</p>
<h4>1.3 信息推送及服务</h4>
<p>您提供的信息小蜜蜂管家端APP将最大限度尽合理之商业义务进行保密经过您的同意小蜜蜂管家端APP将会向您提供电子商务生活服务资讯版本升级等服务 为确保您的服务体验在您使用平台功能时根据服务状态将为您发送快递物业缴费访客物业工单巡查物品借用活动报名红包拼团商品订单售后工单发票状态信息以及对快递服务的短信通知服务</p>
<h4>1.4 收集信息的其他方式</h4>
<p>我们将采用其他方式例如信息下载购买产品或服务用户支持反馈以及调查表来收集您的个人信息如果您将个人信息填写在其他开放的平台上其他用户可能会获知您的信息</p>
<h4>1.5 收集的其他信息</h4>
<p>为了便于您使用小蜜蜂管家端APP软件我们的服务器将会收集关于您的移动通讯设备的信息例如型号设备ID互联网协议地址您访问的时间和地点路由数据包信息发送人和接收数据但不是信息本身以及其他类似的特征记录</p>
<h3>2.个人信息的使用</h3>
<h4>2.1 您的个人信息将不会用于本政策载明的目的之外的其他目的双方另有约定的除外</h4>
<h4>2.2 匿名汇总统计数据不是小蜜蜂管家端APP所定义的个人用户信息我们将为多种目的包括但不限于分析和使用模式的报告等来保存和使用此类信息用户使用本APP的视为已授权小蜜蜂管家端APP提供方以任何目的自身或许可第三方使用和披露匿名汇总统计数据的权利</h4>
<h3>3.个人信息的披露</h3>
<h4>3.1 除非本政策载明的有限披露我们会妥善保存您的个人信息并不会泄露客户信息</h4>
<h4>3.2 您于此授权以下情形下我们将会向第三方披露您的个人信息而无需通过您的同意 如果我们披露这些信息是用来识别联系或向可能对我们的权利或财产网站用户或者其他任何人包括其他任何人的权利和财产造成损害之行为提起诉讼之必要 法律调查之必要 此类披露是法律规定或应向我们送达的传票或其他执法部门发出的令状之必要</h4>
<h3>4.个人信息的共享</h3>
<p>您于此授权我们将在必要时向合作的第三方提供您的个人信息以便为您提供某些服务或代表我们履行职能我们仅会处于本隐私条款声明的合法正当必要特定明确的目的共享您的信息合作的第三方只能接触到其履行职责所需信息且不得将此信息用于其他任何目的我们不允许合作的第三方伴进行转委托</p>
<p>关于合作的第三方的信息及提供的服务场景应用见下
第三方名称深圳市凯达来科技有限公司
场景描述app数据统计
个人信息类型个人常用设备信息
个人信息字段设备信息网络信息</p>
<h3>5.安全</h3>
<p>对我们来说个人信息的安全非常重要我们将尽可能保障您的个人信息安全并实施合理的措施限制非授权访问使用或者披露您的个人信息尽管采取上述措施但是您应当知晓小蜜蜂管家端APP不能完全避免与个人信息相关的安全危险 双方同意如发生下述情形小蜜蜂生活APP不承担任何法律责任</p>
<p>①依据法律规定或相关政府部门的要求提供您的个人信息</p>
<p>②由于您的使用不当而导致任何个人信息的泄露</p>
<p>③任何由于黑客攻击电脑病毒的侵入非法内容信息骚扰信息的屏蔽政府管制以及其他任何网络技术通信线路信息安全管理措施等非小蜜蜂生活APP原因造成的服务中断受阻等不能满足用户要求的情形 您应当协助我们以保护您的个人信息安全例如不要泄露您的个人密码</p>
<h3>6.第三方网站</h3>
<h4>6.1 当您点击小蜜蜂管家端APP链接的其他网站时您已经离开我们的网站并访问其他网站其他网站可能会收集您的个人信息或匿名数据因此我们无法控制检查或者回应此类网站和网站内容</h4>
<h4>6.2 本政策不适用于在您点击链接后的外部网站收集数据的行为</h4>
<h3>7.未成年人保护 </h3>
<p>小蜜蜂管家端APP非常重视对未成年人信息的保护根据相关法律法规的规定若您是18周岁以下的未成年人在使用本APP服务前应事先取得您家长或法定监护人的书面同意小蜜蜂管家端APP不会使用未成年人的个人信息也不会向任何第三方透露可识别的信息若您是未成年人的监护人当您对您所监护的未成年人的个人信息有相关疑问时请通过第8节中的联系方式与我们联系</p>
<h3>8.联系我们</h3>
<p>当您有其他的投诉建议未成年人个人信息相关问题时您可以将您的问题发送至kaidalai@163.com 我们将尽快审核所涉问题并在验证您的用户身份后的十五天内予以回复</p>
</div>
</template>
<script>
export default {
name: "adminApp"
}
</script>
<style lang="less">
.text-container {
width: 800px;
}
</style>

@ -0,0 +1,13 @@
<template>
<router-view></router-view>
</template>
<script>
export default {
}
</script>
<style>
</style>

@ -0,0 +1,829 @@
<template>
<div class="content">
<div class="content-title"><span class="agreement-underline">用户隐私政策摘要</span></div>
<div class="content-text">
<p>最近更新日期2022年03月25日</p>
<p><span class="agreement-underline">本隐私政策的摘要主要向您说明我们在必要范围内收集和使用您的个人信息类型和业务场景以及我们处理您个人信息的基本规则</span></p>
<p>小蜜蜂深知个人信息对您的重要性并会尽全力保护您的个人信息安全可靠小蜜蜂承诺我们将按业界成熟的安全标准采取相应的安全保护措施来保护您的个人信息</p>
<p>若您想要了解我们收集和使用您的个人信息的详细内容请仔细阅读并了解
<span class="agreement-underline">隐私政策</span>尤其是
<span class="agreement-underline">加粗</span>
<span class="agreement-underline">下划线</span>部分
</p>
<div class="agreement-rule">
<p><span>我们收集您哪些个人信息</span></p>
</div>
<p>小蜜蜂仅会
<span class="agreement-underline">出于必要的业务场景收集和使用您的个人信息</span>
以便向你提供对应的服务若您不提供相关的个人信息将无法享受相应的服务内容以下为部分场景及其获取信息示例
</p>
<p>
<span class="agreement-underline">产品功能</span>
在使用存储服务时会获取一些必要信息获取您的
<span class="agreement-underline">手机号码</span>
用于
<span class="agreement-underline">注册</span>
获取您的手机
<span class="agreement-underline">存储状态</span>
用于
<span class="agreement-underline">创建本地目录</span>
在使用
<span class="agreement-underline">照片视频文件和通讯录</span>
等备份功能时和
<span class="agreement-underline">文件预览及传输</span>
读取对应的
<span class="agreement-underline">本地文件信息</span>
查看
<span class="agreement-underline">网络状态</span>
用于
<span class="agreement-underline">登录</span>
<span class="agreement-underline">绑定设备</span>
</p>
<p>
<span class="agreement-underline">系统权限</span>
为提供更好的服务体验我们会向您申请一些系统权限获取
<span class="agreement-underline">存储权限</span>
用于
<span class="agreement-underline">传输文件</span>
获取
<span class="agreement-underline">相机权限</span>
用于
<span class="agreement-underline">拍照上传</span>
<span class="agreement-underline">扫一扫</span>
获取
<span class="agreement-underline">麦克风权限</span>
用于绑定对应设备的
<span class="agreement-underline">语音对讲</span>
</p>
<p>您的个人信息大部分是由您
<span class="agreement-underline">主动向我们提供或授权</span>
也有我们在您使用我们的产品或服务时
<span class="agreement-underline">通过CookiesSDK及类似技术获取</span>
我们会采取一切合理可行的措施保护您站点下用户的个人信息
</p>
<div class="agreement-rule">
<p><span>我们如何共享您的信息</span></p>
</div>
<p>为了向您提供全部的服务内容我们需要同我们的合作伙伴一起为您提供服务因此在获取您的明确同意后我们会
<span class="agreement-underline">委托授权合作伙伴为您提供某些服务或代表我们履行职能</span>
我们仅会处于本隐私政策声明的合法正当必要特定明确的目的共享您的信息我们会采取必要的技术和管理措施保护您的个人信息安全
</p>
<div class="agreement-rule">
<p><span>您的权力</span></p>
</div>
<p>在遵循相关法律法规及标准的情况下您有权
<span class="agreement-underline">访问更正删除您的个人信息以及注销账户</span>
有权
<span class="agreement-underline">改变或撤回已授权同意的个人信息和权限</span>
</p>
<p>若进行上述操作时遇到问题您可以联系我们我们会在七个工作日内作出回复为保障安全您可能需要提供书面请求或以其他方式证明您的身份</p>
<div class="agreement-rule">
<p><span>儿童个人信息保护</span></p>
</div>
<p>我们的产品网站和服务主要面向企业级用户用户对象一般为成人如果没有父母或监护人的同意儿童不得创建自己的用户账户</p>
<p>
<span class="agreement-underline">我们将不满 14 周岁的任何人均视为儿童对于经父母同意而收集儿童个人信息的情况我们只会在受到法律允许父母或监护人明确同意或者保护儿童所必要的情况下使用或公开披露此信息</span>
</p>
<div class="agreement-rule">
<p><span>如何联系我们</span></p>
</div>
<p>如果您对本隐私政策有任何疑问意见或建议可发送邮件至kaidalai@163.com</p>
<p>也可以在线反馈等多种方式与我们联系</p>
<p>您反馈的信息我们将有专人跟进负责处理我们将在十五个工作日内回复</p>
<p>如果您对我们的回复不满意特别是我们的个人信息处理行为损害了您的合法权益您还可以通过法律途径或前往行业自律协会等机构寻求解决方案</p>
</div>
<div class="content-title">用户隐私政策</div>
<div class="content-text">
<p>最近更新日期2022年03月25日</p>
<p>版本生效日期2022年03月27日</p>
<p>如果您有任何疑问意见或建议请您把问题发送到邮箱kaidalai@163.com我们将在7个工作日内进行处理</p>
<p>本政策将帮助您了解以下内容</p>
<p>1我们收集您哪些个人信息</p>
<p>2我们如何使用您的个人信息</p>
<p>3我们如何共享转让公开披露您的个人信息</p>
<p>4我们如何存储您的个人信息</p>
<p>5我们如何保护您的个人信息</p>
<p>6您的权利</p>
<p>7我们如何处理儿童的个人信息</p>
<p>8本政策如何更新</p>
<p>9如何联系我们</p>
<p>小蜜蜂深知个人信息对您的重要性并会尽全力保护您的个人信息安全可靠我们致力于维持您对我们的信任恪守以下原则保护您的个人信息权责一致原则目的明确原则选择同意原则最少够用原则确保安全原则主体参与原则公开透明原则等同时小蜜蜂承诺我们将按业界成熟的安全标准采取相应的安全保护措施来保护您的个人信息
</p>
<div class="agreement-rule">
<p><span class="no-bold">为了便于您了解您在使用我们的服务时我们需要收集的信息类型与用途我们将结合具体服务向您逐一说明</span><span
class="agreement-underline">请在使用我们的产品或服务仔细阅读并了解本隐私政策尤其是加粗及下划线部分</span></p>
<p><span>我们收集您哪些个人信息</span></p>
</div>
<p>个人信息是指以电子或者其他方式记录的与已识别或者可识别的自然人有关的各种信息不包括匿名化处理后的信息</p>
<p>敏感个人信息是指一旦泄露或者非法使用容易导致自然人的人格尊严受到侵害或者人身财产安全受到危害的个人信息包括生物识别宗教信仰特定身份医疗健康金融账户行踪轨迹等信息以及不满十四周岁未成年人的个人信息</p>
<p>小蜜蜂仅会出于本政策所述的以下目的收集和使用用户的个人信息</p>
<div class="agreement-rule">
<p><span>产品功能</span></p>
</div>
<div class="agreement-rule">
<p><span>1业务功能一注册成为用户</span></p>
</div>
<div class="agreement-rule">
<p>为完成创建账号您需提供<span
class="agreement-underline">手机号码</span>用于天翼账号免密登录或短信验证注册用户注册完成后会默认使用您的手机号码作为小蜜蜂的用户名如果不同意将无法完成注册
</p>
</div>
<div class="agreement-rule">
<p>此外在历史的客户端版本内Android端V8.0.0及以下版本iOS端V7.4.0及以下版本您可以登录应用后访问我的-&gt;点击头像进入账号与安全&gt;点击天翼账号进行<span
class="agreement-underline">查询和设置您的其他信息包含性别生日所在地级市手机号邮箱</span></p>
</div>
<p>您提供的上述信息将在您使用本服务期间持续授权我们使用在您注销账号时我们将停止使用并删除上述信息</p>
<p>我们使用的账号为天翼账号以上用户账号相关的信息均存储于天翼账号服务器中上述信息将存储于中华人民共和国境内如需跨境传输我们将会单独征得您的授权同意</p>
<div class="agreement-rule">
<p><span>2业务功能二文件预览及传输</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供预览传输功能当加载文件列表或预览文件时为了方便您下次可快速预览<span
class="agreement-underline">对文件数据进行临时缓存</span>当使用文件传输功能时如上传下载需要
<span class="agreement-underline">读取本机设备的文件</span>供您选择需要上传的文件下载文件时需要
<span class="agreement-underline">获取手机存储状态</span>确认本地存储空间剩余容量并将文件保存至本机设备内
</p>
</div>
<div class="agreement-rule">
<p><span>3业务功能三联系人分享</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供文件分享功能支持通过手机号分享文件当使用这个功能时<span
class="agreement-underline">需要您授权同意读取用户终端内的通讯录</span>如果不同意将会无法使用联系人分享功能
</p>
</div>
<div class="agreement-rule">
<p><span>4业务功能四添加家庭成员</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供家庭共享空间功能当使用这个功能时<span
class="agreement-underline">需要您授权同意读取用户终端内的通讯录</span>如果不同意将会无法使用添加家庭成员功能
</p>
</div>
<div class="agreement-rule">
<p><span>5业务功能五文件分享</span></p>
</div>
<div class="agreement-rule">
<p>我们会从您的Android终端
<span class="agreement-underline">读取应用列表</span>用于在分享文件时判断第三方应用是否已安装在本机以及辅助检测小蜜蜂安卓客户端是否在前台显示但如果您不提供这些信息可能会影响您使用本功能
</p>
</div>
<div class="agreement-rule">
<p><span>6业务功能六通讯录备份与恢复</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供通讯录备份与恢复功能支持备份通讯录以及将已备份至云端的通讯录数据恢复至您的移动终端设备内当使用通讯录备份功能我们会
<span class="agreement-underline">读取本机通讯录信息</span>
将通讯录信息备份到云端当使用通讯录恢复功能时我们会将云端通讯录恢复到本地
</p>
</div>
<div class="agreement-rule">
<p><span>7业务功能七通话记录备份与恢复仅适用于Android端</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供通话记录备份与恢复功能支持备份通话记录以及将已备份至云端的通话记录数据恢复至您的移动终端设备内当使用通话记录备份功能我们会<span
class="agreement-underline">读取本机通话记录</span>
将通话记录备份到云端当使用通话记录恢复功能时我们会将云端通话记录恢复到本地
</p>
</div>
<div class="agreement-rule">
<p><span>8业务功能八信息备份与恢复仅适用于Android端</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供信息备份与恢复功能支持备份信息以及将已备份至云端的信息记录数据恢复至您的移动终端设备内当使用信息备份功能我们会<span
class="agreement-underline">读取本机信息记录</span>
将信息记录备份到云端当使用信息恢复功能时我们会将云端信息恢复到本地
</p>
</div>
<div class="agreement-rule">
<p><span>9业务功能九相册备份</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供相册备份功能支持备份用户终端内的照片视频<span
class="agreement-underline">如果您同意开启相册备份功能我们会将终端内的照片视频存储至云端</span>
如果您不同意将导致该功能无法正常使用</p>
</div>
<div class="agreement-rule">
<p><span>10业务功能十私密空间</span></p>
</div>
<div class="agreement-rule">
<p>小蜜蜂提供私密空间服务可以帮助您更好地保管您的隐私文件和照片为保障您私密空间二级密码的安全需要您<span
class="agreement-underline">提供个人邮箱作为找回二级密码的验证方式</span>我们会
<span class="agreement-underline">对您提供的个人邮箱进行记录</span>
如果您不同意将无法通过二级密码使用私密空间功能
</p>
</div>
<div class="agreement-rule">
<p><span>其他信息</span></p>
</div>
<div class="agreement-rule">
<p>
<span class="agreement-title">1活动运营</span>
小蜜蜂会开展运营活动在您中奖时会让您提供
<span class="agreement-underline">姓名联系方式地址</span>
用于奖品寄送这些信息属于个人敏感信息您可以拒绝提供如果拒绝提供您将可能无法参与运营活动或无法获得奖品但不影响其他功能和服务的正常使用
</p>
</div>
<div class="agreement-rule">
<p>
<span class="agreement-title">2信息推送</span>
为了更好为您提供服务我们引入了第三方消息推送SDK和短信通道实现对您及时的信息推送服务需要向您收集的信息仅包含
<span class="agreement-underline">设备型号设备MAC地址应用名称与版本设备APPlist操作系统类型版本设备型号与类型</span>
</p>
</div>
<div class="agreement-rule">
<p>
<span class="agreement-title">3计费收费</span>
小蜜蜂提供多档次多功能的会员服务您在订购不同会员的时候我们会通过终端设备采集产生的
<span class="agreement-underline">日志信息包括不限于订购手机号订购套餐类型订购费用订购时间</span>
订购信息及手机号用于用户管理和订单管理问卷答复我们可能会不定期向您投放用户体验改善的调查问卷您如果参与问卷调查的话可能会收集到您提供的信息内容
</p>
</div>
<div class="agreement-rule">
<p><span>权限说明</span></p>
</div>
<div class="privacy-agreement-table">
<table>
<tbody>
<tr>
<th style="width: 15%">业务功能</th>
<th style="width: 25%">对应权限</th>
<th style="width: 20%">调用权限目的</th>
<th style="width: 20%">是否询问</th>
<th style="width: 20%">可否关闭</th>
</tr>
<tr>
<td>安装与卸载应用</td>
<td>创建桌面快捷方式的权限</td>
<td>安装小蜜蜂客户端时
<span class="agreement-underline">部分Android终端需要使用您的创建桌面快捷方式的权限</span>
生成系统桌面图标如果您卸载小蜜蜂客户端卸载后我们不会在终端设备内保留您的用户信息如果不同意部分Android终端可能无法在终端主页面创建桌面快捷方式需要您进入系统的抽屉式桌面才可访问小蜜蜂客户端
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>获取存储状态及记录功能配置信息</td>
<td>获取读写手机存储权限</td>
<td>
当您启动小蜜蜂客户端时需要获取
<span class="agreement-underline">手机存储状态</span>
加载配置信息及创建用于存储缓存数据crash日志信息的本地目录
<span class="agreement-underline">需要您授权同意获取读写手机存储权限</span>
如果不同意将无法记录用户家庭配置信息相册备份状态无法写入日志
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>登录</td>
<td>安卓设备会使用到以下权限查看网络连接允许应用查看网络连接的相关信息更改WLAN状态允许应用程序连接到WLAN接入点以及WLAN接入点断开连接并对配置的WLAN网络进行更改更改网络连接性权限允许该应用更改网络连接的状态</td>
<td>小蜜蜂支持免密登录账密登录以及短信登录在登录过程中需要检查您的网络环境是移动网络还是在WiFi环境下登录过程
<span class="agreement-underline">安卓设备会使用到以下权限查看网络连接允许应用查看网络连接的相关信息更改WLAN状态允许应用程序连接到WLAN接入点以及WLAN接入点断开连接并对配置的WLAN网络进行更改更改网络连接性权限允许该应用更改网络连接的状态</span>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>退出</td>
<td>展开/收拢状态栏权限</td>
<td>小蜜蜂会在您的安卓终端设备内使用
<span class="agreement-underline">展开/收拢状态栏权限</span>
当您在小蜜蜂退出账号时用于清空保留在状态栏提示的消息
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>拍照上传</td>
<td>获取相机权限 </td>
<td>小蜜蜂提供拍照上传功能
<span class="agreement-underline">此功能需要您同意获取相机权限</span>
如果不同意将无法开启摄像头进行拍照上传
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>文件预览及传输</td>
<td>读取本机设备文件获取手机存储状态获取读写手机存储权限</td>
<td>当使用文件传输功能时如上传下载需要
<span class="agreement-underline">读取本机设备的文件</span>
供您选择需要上传的文件下载文件时需要
<span class="agreement-underline">获取手机存储状态</span>
确认本地存储空间剩余容量并将文件保存至本机设备内这些功能
<span class="agreement-underline">需要您授权同意获取读写手机存储权限</span>
如果不同意将无法预览文件无法加载文件列表或加载缓慢无法上传下载文件
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>相册备份</td>
<td><span class="agreement-underline">开机启动权限防止手机休眠权限</span></td>
<td>
在安卓终端设备内为了不让应用进程被回收导致相册备份失败小蜜蜂会用到您的
<span class="agreement-underline">开机启动权限和防止手机休眠权限</span>
iOS终端设备因系统原因需要您手动打开后台备份才支持后台自动备份
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>扫一扫</td>
<td>获取相机权限控制振动权限</td>
<td>小蜜蜂提供扫一扫功能您可以使用此功能进行扫描二维码登录PC端TV端以及web门户或扫描分享的文件二维码转存文件
<span class="agreement-underline">此功能需要您同意获取相机权限</span>
如果不同意将无法开启摄像头最终无法执行上述操作在您开启摄像头并扫描二维码后小蜜蜂
<span class="agreement-underline">安卓版会使用控制振动权限</span>
扫描成功后进行振动反馈
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>通讯录备份与恢复</td>
<td>
<span class="agreement-underline">读取/修改用户终端内的通讯录权限</span>
</td>
<td>小蜜蜂提供通讯录备份与恢复功能支持备份通讯录以及将已备份至云端的通讯录数据恢复至您的移动终端设备内当使用通讯录备份功能及备份恢复功能时
<span class="agreement-underline">需要您授权同意读取/修改用户终端内的通讯录权限</span>
如果不同意将无法使用本功能
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>通话记录备份与恢复仅适用于Android端</td>
<td>
<span class="agreement-underline">读取/修改通话记录权限</span>
</td>
<td>小蜜蜂提供通话记录备份与恢复功能支持备份通话记录以及将已备份至云端的通话记录数据恢复至您的移动终端设备内当使用通话记录备份与恢复功能时
<span class="agreement-underline">需要您授权同意读取/修改通话记录权限</span>
如果不同意将无法使用本功能
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>信息备份与恢复仅适用于Android端</td>
<td>
<span class="agreement-underline">读取短信/彩信权限</span>
</td>
<td>小蜜蜂提供信息备份与恢复功能支持备份信息以及将已备份至云端的信息记录数据恢复至您的移动终端设备内当使用信息备份与恢复功能时
<span class="agreement-underline">需要您授权同意读取短信/彩信权限</span>
如果不同意将无法使用本功能
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>日程备份和恢复仅适用于安卓端</td>
<td>读取/修改日历权限</td>
<td>
小蜜蜂提供日程备份与恢复功能支持备份日程信息以及将已备份至云端的日程信息数据恢复至您的移动终端设备内当使用日程备份与恢复功能时
<span class="agreement-underline">需要您授权同意读取/修改日历权限</span>
如果不同意将无法使用本功能
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>应用备份与恢复仅适用于安卓端v8.5.3及之前的版本</td>
<td>读取应用列表信息权限</td>
<td>小蜜蜂提供应用备份与恢复功能支持备份设备内已安装应用的记录以及根据已备份至云端的应用列表清单执行下载操作恢复至您的移动终端设备内此功能不会对应用内产生的数据备份至云端仅备份应用列表清单当用户选择恢复至本地设备时仅对已备份的应用列表清单做下载应用操作当使用应用备份与恢复功能时
<span class="agreement-underline">需要您授权同意读取应用列表信息权限</span>
如果不同意将无法使用本功能
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>设备内的消息提示</td>
<td>检索正在运行的应用的权限</td>
<td>
小蜜蜂在文件操作完成后顶部会出现toast提示安卓终端设备在实现此功能时需要使用
<span class="agreement-underline">检索正在运行的应用</span>
的权限
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>推送通知</td>
<td>开机启动权限同意开启通知权限</td>
<td>
小蜜蜂支持向移动终端设备推送通知方便您及时收到好友分享通知优惠信息系统公告信息可能会按手机号码归属地分别推送此功能会用到您的
<span class="agreement-underline">开机启动权限</span>
以及需要您授权同意
<span class="agreement-underline">开启通知</span>
如果您不同意可在APP内我的-设置- 接受消息推送进行关闭
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>指纹密码指纹验证面容ID解锁面容ID验证</td>
<td>安卓终端设备内使用管理指纹IFAA权限iOS终端设备内使用面容ID指纹密码</td>
<td>
如果您的终端设备支持指纹识别或人脸识别小蜜蜂还提供
<span class="agreement-underline">指纹密码面容ID解锁面容ID为小蜜蜂iOS端特有功能</span>
功能用于登录小蜜蜂您可以在小蜜蜂客户端内开启或关闭某项生物识别功能即您可以分别选择开通或关闭指纹密码面容ID解锁指纹验证面容ID验证中的一项或多项
<span class="agreement-underline">您的指纹特征和人脸特征由您录入指纹和录入人脸当时的载体如手机或其他智能手持终端设备及其系统保存小蜜蜂不会保存您的指纹特征和人脸特征</span>
小蜜蜂会在您的
<span class="agreement-underline">安卓终端设备内使用管理指纹IFAA权限您的iOS终端设备内使用面容ID指纹密码</span>
用于验证登录及解锁APP
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>私密空间验证</td>
<td>安卓终端设备内使用管理指纹IFAA权限iOS终端设备内使用面容ID指纹密码</td>
<td>
如果您的终端设备支持指纹识别或人脸识别小蜜蜂还提供
<span class="agreement-underline">指纹验证面容ID验证功能</span>
用于
<span class="agreement-underline">打开私密空间</span>
您可以在小蜜蜂客户端内开启或关闭某项生物识别功能即您可以分别选择开通或关闭指纹密码面容ID解锁指纹验证面容ID验证中的一项或多项
<span class="agreement-underline">您的指纹特征和人脸特征由您录入指纹和录入人脸当时的载体如手机或其他智能手持终端设备及其系统保存小蜜蜂不会保存您的指纹特征和人脸特征</span>
小蜜蜂会在您的
<span class="agreement-underline">安卓终端设备内使用管理指纹IFAA权限</span>
您的
<span class="agreement-underline">iOS终端设备内使用面容ID指纹密码</span>
用于解锁私密空间
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>绑定设备</td>
<td>查看网络连接查看WLAN状态更改WLAN状态更改网络连接性完全的网络访问权限</td>
<td>
小蜜蜂还提供了智能硬件设备服务在给硬件设备配网时我们需要
<span class="agreement-underline">获取 Wi-Fi SSID</span>
除此以外安卓设备还会使用到以下权限
<span class="agreement-underline">查看网络连接</span>
允许应用查看网络连接的相关信息
<span class="agreement-underline">查看WLAN状态</span>
允许应用查看有关WLAN状态的信息
<span class="agreement-underline">更改WLAN状态</span>
允许应用程序连接到WLAN接入点以及WLAN接入点断开连接并对配置的WLAN网络进行更改
<span class="agreement-underline">更改网络连接性</span>
允许该应用更改网络连接的状态
<span class="agreement-underline">完全的网络访问权限</span>
允许应用创建网络套接字和使用自定义网络协议
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>语音对讲</td>
<td>使用手机麦克风权限更改用户音频设置权限</td>
<td>
当您在小蜜蜂客户端内绑定了智能硬件设备后部分智能硬件设备支持语音对讲功能
<span class="agreement-underline">您在使用此功能前需要您授权同意使用手机麦克风</span>
如果您不同意将会导致无法与设备语音对讲安卓设备还会使用到
<span class="agreement-underline">更改您的音频设置权限</span>
允许应用修改全局音频设置方便您控制音量或在遥控器中对天翼高清进行语音控制
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>连接蓝牙设备</td>
<td>使用大致位置权限</td>
<td>
小蜜蜂支持特定的蓝牙设备通过小蜜蜂应用小程序连接到手机或其他智能手持终端设备在您允许开启蓝牙服务且进行蓝牙设备连接操作时
<span class="agreement-underline">需要您授权同意使用大致位置权限</span>
用于搜索周围的蓝牙设备如果您不同意将会导致Android系统版本6.0以上终端无法发现周围可连接的蓝牙设备最终导致无法连接
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>查找并连接到本地网络上的设备</td>
<td>使用查找并连接到本地网络上的设备权限</td>
<td>
小蜜蜂还提供了连接本地智能硬件设备服务当您在小蜜蜂客户端内使用打印投屏动感影集小程序我家硬盘小程序时
<span class="agreement-underline">需要您授权同意使用查找并连接到本地网络上的设备权限</span>
用于应用使用 Bonjour发现兼容隔空打印的打印机或发现兼容隔空播放的设备 Apple TV如果您不同意将无法发现本地网络中可连接的打印或投屏设备最终导致无法连接本地硬件
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>安全管理</td>
<td>获取小蜜蜂安卓终端和iOS终端的设备型号</td>
<td>
为了保障向您提供的服务的安全稳定运行预防传输过程的风险如识别是否常用设备登录是否常用位置登录我们会对您使用的
<span class="agreement-underline">小蜜蜂Android终端iOS终端的设备型号</span>
进行记录如果您不同意可能无法完成风控验证
</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="agreement-rule">
<p><span>SDK与代码使用</span></p>
</div>
<div class="agreement-rule">
<p>在您使用小蜜蜂APP的功能或者服务时在某些特定使用场景下我们可能会使用具有相应业务资质及能力的第三方服务商提供的软件服务工具包简称SDK和代码来为您提供服务
<span class="agreement-underline">小蜜蜂无法获得您在使用该类SDK服务时产生的信息但是如果你已明示同意该SDK获得你的云盘数据信息该SDK将通过小蜜蜂接口获得你的云盘数据信息</span>
关于第三方SDK具体调用的设备权限类型以及如何收集使用您的个人信息建议您参考第三方SDK的相关服务协议及隐私政策如果您希望进一步了解我们所接入的第三方SDK情况请您阅读第三方SDK情况说明
</p>
</div>
<div class="agreement-rule">
<a style="text-decoration: underline;color:blue;" href="https://h5.cloud.189.cn/third.html#/list/third">
<p>第三方SDK情况说明</p>
</a>
</div>
<div class="agreement-rule">
<p><span>我们如何使用Cookie 和同类技术</span></p>
</div>
<div class="agreement-rule">
<p><span>1Cookie</span></p>
</div>
<p>在您访问我们的网站时我们会在您的计算机或移动设备中存储名为Cookie的小数据文件Cookie通常包含了一些标识符主要存储了用户标识不涉及用户真实名称用户访问的时间以及用户访问页面的字符借助Cookie标识能够帮助网站统计用户的访问频次访问页面偏好及接入网站的加载性能的数据用于确保网站正常高效运转保护您的数据安全
</p>
<p>我们不会将 Cookie用于本政策所述目的之外的任何用途您可根据自己的偏好管理或删除 Cookie有关详情请参见
AboutCookies.org您可以清除计算机上保存的所有Cookie大部分网络浏览器都设有阻止Cookie 的功能<span
class="agreement-underline">如果您这么做则需要在每一次访问我们的网站时亲自更改用户设置</span></p>
<div class="agreement-rule">
<p><span>2网站信标和像素标签</span></p>
</div>
<p> Cookie
我们还会在网站上使用网站信标和像素标签及其他同类技术由于小蜜蜂产品需要嵌入到第三方的网站中受同源策略的影响为了能准确发送统计结果小蜜蜂使用了网站信标和像素标签及其他同类技术如用户在访问了您的网站时我们会通过像素标签的方式将用户访问的页面信息网站加载性能数据通过该技术去跨域发送到采集服务以实现后续的运营指标及性能指标数据的统计分析所有通过网站信标及像素标签技术发起的请求都通过HTTPS方式发送SSL会对数据进行加密您的数据都在加密协议下传输
</p>
<div class="agreement-rule">
<p><span>3本地存储器</span></p>
</div>
<p>除上述技术外小蜜蜂还启用了本地存储器的方式对您网站的访问者的一些交互行为进行记录这部分数据主要为了帮助您对网站的点击生成热力分布方便运营决策者优化自己的网站结构所有用户数据都存在用户自身的本地浏览器中同时数据在通过HTTPS发送到服务器后小蜜蜂会对用户的本地数据进行清除确保数据的安全性
</p>
<div class="agreement-rule">
<p><span>4Do Not Track请勿追踪</span></p>
</div>
<p>很多网络浏览器均设有 Do Not Track 功能该功能可向网站发布 Do Not Track 请求目前主要互联网标准组织尚未设立相关政策来规定网站应如何应对此类请求但如果您的浏览器启用了 Do
Not Track那么我们的所有网站都会尊重您的选择</p>
<div class="agreement-rule">
<p><span>征得授权同意的例外</span></p>
</div>
<div class="agreement-rule">
<p>
您充分理解并同意我们在以下情况下收集使用您的个人信息无需您的授权同意且我们可能不会响应您提出的更正/修改删除注销撤回同意索取信息的请求
</p>
</div>
<p>1与国家安全国防安全直接相关的</p>
<p>2与公共安全公共卫生重大公共利益直接相关的</p>
<p>3与犯罪侦查起诉审判和判决执行等直接相关的</p>
<p>4出于维护您或其他个人的生命财产等重大合法权益但又很难得到本人同意的</p>
<p>5您自行向社会公众公开的个人信息</p>
<p>6从合法公开披露的信息中收集个人信息的如合法的新闻报道政府信息公开等渠道</p>
<p>7根据与您签订和履行相关协议或其他书面文件所必需的</p>
<p>8用于维护所提供的产品及/或服务的安全稳定运行所必需的包括但不限于发现处置产品及/或服务的故障</p>
<p>9为合法的新闻报道所必需的</p>
<p>10学术研究机构基于公共利益开展统计或学术研究所必要且对外提供学术研究或描述的结果时对结果中所包含的个人信息进行去标识化处理的</p>
<p>11法律法规规定的其他情形</p>
<div class="agreement-rule">
<p><span>我们如何使用您的个人信息</span></p>
</div>
<div class="agreement-rule">
<p>1我们会保持您的个人数据及时更新安全地存储或销毁它最小化收集和保留我们需要为您提供服务所需的数据保护个人信息免遭泄露滥用未经授权的访问和披露采取适当的技术措施保护您个人信息的安全</p>
<p>2我们将您的信息用于以下用途</p>
<div class="agreement-rule">
<p>1根据我们与您签订的合同向您提供服务</p>
<p>2实现您的服务请求包括履行订单交付激活或验证产品或服务参加线上或线下活动应您的要求进行变更或者提供您请求的信息包括但不限于产品或服务的营销资料以及提供技术支持</p>
<p>3<span
class="agreement-underline">向您发送有关您可能感兴趣的产品和服务的信息邀请您参与电信活动包括促销活动市场调查或满意度调查或向您发送营销信息如果您不想接收此类信息则可以按平台提供的退订功能进行退订</span></p>
<p>4 按照我们收集信息时所述的要求提供其他您所要求的服务</p>
<p>5维持我们储存和处理您个人信息的数据技术系统的完整性和安全性</p>
<p>6执行或保护我们的协议或与您签订的合同</p>
<p>7检测和调查信息泄露非法活动和欺诈行为</p>
<p>8联系您解决问题</p>
<p>9经过您许可的其它用途</p>
</div>
<p>3需要注意的是以上使用方式涵盖了我们使用您信息的主要方式我们可能根据实际需要通过更新网站页面APP小程序或设备固件等方式为用户提供更加多样化的服务当我们要将信息用于本协议未载明的其他用途时或要将基于特定目的收集而来的信息用于其他目的时会以签署协议弹窗提示更新本协议等形式再次征求您的同意</p>
</div>
<div class="agreement-rule">
<p><span>我们如何共享转让公开披露您的个人信息</span></p>
</div>
<div class="agreement-rule">
<p><span>共享</span></p>
</div>
<p>我们不会与世纪龙信息网络有限责任公司以外的任何公司组织和个人分享您的个人信息但以下情况除外</p>
<div class="agreement-rule">
<p>1<span class="agreement-underline">我们可能会根据法律法规规定或按政府主管部门的强制性要求
对外共享您的个人信息见本协议第一条中描述需要收集您个人信息种类</span></p>
</div>
<p>2在获取明确同意的情况下共享获取您的明确同意后我们会与其它方共享您已明确同意的个人信息</p>
<p>3与授权合作伙伴的共享</p>
<div class="agreement-rule">
<p><span
class="agreement-underline">我们可能委托授权合作伙伴为您提供某些服务或代表我们履行职能</span>我们仅会处于本隐私政策声明的合法正当必要特定明确的目的共享您的信息授权合作伙伴只能接触到其履行职责所需信息如您选择云冲印的照片提供给服务提供方见本协议第一条中描述需要向您请求访问云盘内的照片且不得将此信息用于其他任何目的
</p>
</div>
<p>目前我们的授权合作伙伴包括以下类型</p>
<p>
</p>
<p>供应商和服务提供商我们将信息发送给支持我们服务的服务提供商这些支持包括受我们委托向用户提供技术和基础硬件服务分析我们服务的使用方式</p>
<p>我们会对授权合作伙伴获取有关信息的应用程序接口API软件工具开发包SDK进行严格的安全检测并于授权合作伙伴约定严格的数据保护措施令其按照我们的委托目的服务说明本隐私政策以及其它相关的保密和安全措施来处理个人信息
</p>
<div class="agreement-rule">
<p><span>转让</span></p>
</div>
<p>我们不会将您的个人信息转让给任何公司组织和个人但以下情况除外</p>
<div class="agreement-rule">
<p><span
class="agreement-underline">在涉及合并收购或破产清算时如涉及到个人信息转让我们会在要求新的持有您个人信息的公司组织继续受此隐私政策的约束否则我们将要求该公司组织重新向您征求授权同意见本协议第一条中描述需要收集您个人信息种类在涉及兼并重组或破产清算情形时我们会要求新的承接您个人信息的公司组织继续受本协议的约束承接数据安全责任和义务否则我们将要求该公司组织和个人重新向您征求授权同意没有数据承接方的将对数据作销毁处理</span>
</p>
</div>
<div class="agreement-rule">
<p><span>公开披露</span></p>
</div>
<p>我们仅会在以下情况下公开披露您的个人信息</p>
<div class="agreement-rule">
<p><span
class="agreement-underline">基于法律的披露在法律法律程序诉讼或政府主管部门强制性要求的情况下我们可能会公开披露您的个人信息见本协议第一条中描述需要收集您个人信息种类</span>
</p>
</div>
<div class="agreement-rule">
<p><span>我们如何存储您的个人信息</span></p>
</div>
<p>我们在中华人民共和国境内运营中收集和产生的个人信息存储在中国境内由于我们的产品不涉及跨境业务您的数据不会涉及跨境传输除非法律有另外规定小蜜蜂将按照如下期限保存您的信息</p>
<div class="agreement-rule">
<p>1在您使用小蜜蜂产品或服务期间我们将持续为您保存将严格按照国家有关规定做好您数据存储工作除非您主动删除或注销小蜜蜂帐号</p>
<p>2我们将根据小蜜蜂的数据备份策略定期对收集的信息进行备份处理</p>
<p>3我们仅为实现目的所必需的最短时间保留您的个人信息但在下列情况下我们有可能因需符合法律要求更改个人信息的存储时间</p>
<div class="agreement-rule">
<p>为遵守适用的法律法规等有关规定</p>
<p>为遵守法院判决裁定或其他法律程序的规定</p>
<p>为遵守相关政府机关或法定授权组织的要求</p>
<p>我们有理由确信需要遵守法律法规等有关规定</p>
<p>为执行相关服务协议或本政策维护社会公共利益为保护我们的客户我们或我们的关联公司其他用户或雇员的人身财产安全或其他合法权益所合理必需的用途</p>
</div>
<p>当我们要将信息用于本政策未载明的其它用途时会事先征求您的同意当我们要将基于特定目的收集而来的信息用于其他目的时会事先征求您的同意</p>
<p>4对于所收集的信息我们将在法律规定的最短期限内保存超出保存期限后我们将对所收集的信息进行匿名化处理您的个人信息经过匿名化与脱敏处理后将形成可以使用的流通数据小蜜蜂对此数据的保存和使用无需另外征得您的同意</p>
<p>5当您删除信息或注销小蜜蜂帐号后小蜜蜂将停止对您个人信息的使用并在一定期限内删除您的个人信息或匿名化处理</p>
<p>6当我们停止运营其产品或服务时我们将</p>
<div class="agreement-rule">
<p>1及时停止继续收集您个人信息的活动</p>
<p>2将停止运营的通知以送达或公告的形式通知您</p>
<p>3对我们所持有的个人信息进行删除或匿名化处理</p>
</div>
</div>
<div class="agreement-rule">
<p><span>我们如何保护您的个人信息</span></p>
</div>
<div class="agreement-rule">
<p>我们已使用符合业界标准的安全防护措施保护您提供的个人信息 <span
class="agreement-underline">防止数据遭到未经授权访问公开披露使用修改损坏或丢失</span>我们会采取一切合理可行的措施保护您站点下用户的个人信息在您站点用户的浏览器与服务之间交换数据如采集用户访问频次访问偏好及网站性能时受
SSL加密保护我们同时对小蜜蜂网站提供 https
安全浏览方式我们会使用加密技术确保数据的保密性我们会使用受信赖的保护机制防止数据遭到恶意攻击我们会部署访问控制机制确保只有授权人员才可访问个人信息以及我们会举办安全和隐私保护培训课程加强员工对于保护个人信息重要性的认识
</p>
</div>
<div class="agreement-rule">
<p>我们会采取一切合理可行的措施<span
class="agreement-underline">确保未收集无关的个人信息</span>我们只会在达成本政策所述目的所需的期限内保留您的个人信息除非需要延长保留期详见一存储信息的期限或受到法律的允许
</p>
</div>
<div class="agreement-rule">
<p><span
class="agreement-underline">互联网并非绝对安全的环境而且电子邮件即时通讯及与其他用户的交流方式并未加密我们强烈建议您不要通过此类方式发送小蜜蜂账号信息请使用复杂密码协助我们保证您的账号安全</span>
</p>
</div>
<p>互联网环境并非百分之百安全我们将尽力确保或担保您发送给我们的任何信息的安全性如果我们的物理技术或管理防护设施遭到破坏导致信息被非授权访问公开披露篡改或毁坏导致您的合法权益受损我们将承担相应的法律责任
</p>
<p>在不幸发生个人信息安全事件后我们将按照法律法规的要求及时向您告知安全事件的基本情况和可能的影响我们已采取或将要采取的处置措施您可自主防范和降低风险的建议对您的补救措施我们将及时将事件相关情况以邮件信函电话推送通知等方式告知您难以逐一告知个人信息主体时我们会采取合理有效的方式发布公告同时我们还将按照监管部门要求主动上报个人信息安全事件的处置情况
</p>
<p>对于所收集的信息我们将在法律规定的最短期限内保存超出保存期限后我们将对所收集的信息进行匿名化处理</p>
<div class="agreement-rule">
<p><span>您的权利</span></p>
</div>
<p>按照中国相关的法律法规标准以及其他国家地区的通行做法我们保障您对自己的个人信息行使以下权利</p>
<div class="agreement-rule">
<p><span>访问您的个人信息</span></p>
</div>
<p>您有权访问您的个人信息法律法规规定的例外情况除外如果您想行使数据访问权可以通过以下方式自行访问</p>
<p>账户信息为了您的个人信息安全您的手机号会进行脱敏显示您可以通过我的-&gt;设置-账号与安全查看您的用户头像昵称天翼账号手机号目前APP内支持修改用户头像及昵称如果您希望更改您的密码添加安全信息或关闭您的账户您可以通过访问e.189.cn执行此类操作
</p>
<p>如果您无法通过上述链接访问这些个人信息请您把问题发送到邮箱kaidalai@163.com我们将在7个工作日内回复您的请求</p>
<div class="agreement-rule">
<p><span>更正您的个人信息</span></p>
</div>
<p>当您发现我们处理的关于您的个人信息有错误时您有权要求我们做出更正您可以通过访问您的个人信息中罗列的方式提出更正申请</p>
<p>如果您无法通过上述链接更正这些个人信息请您把问题发送到邮箱kaidalai@163.com我们将在7个工作日内回复您的更正请求</p>
<div class="agreement-rule">
<p><span>删除您的个人信息</span></p>
</div>
<p>您可以通过访问e.189.cn-&gt;点击页面底部在线客服联系我们进行信息删除我们将在七个工作日内做出答复若我们决定响应您的删除请求我们还将同时通知从我们获得您的个人信息的实体要求其及时删除除非法律法规另有规定或这些实体获得您的独立授权
</p>
<p>当您从我们的服务中删除信息后我们可能不会立即备份系统中删除相应的信息但会在备份更新时删除这些信息</p>
<div class="agreement-rule">
<p><span>个人信息主体注销账户</span></p>
</div>
<p>您随时可注销此前注册的账户您可以通过以下方式自行操作</p>
<p>1手机端安卓/iOS在登录界面进入帮助-&gt;查看其它问题-&gt;我怎么注销账号</p>
<p>2手机端安卓/iOS我的-&gt;点击头像进入账号与安全页面-&gt;点击安全中心-&gt;小蜜蜂账号注销</p>
<p>3关注小蜜蜂公众号访问小蜜蜂公众号输入人工客服-&gt;通过人工客服引导由用户自己在APP内注销我的小蜜蜂账号我们将在七个工作日内做出答复服务时段830-2200
</p>
<p>在注销账户之后我们将停止为您提供产品或服务并依据您的要求删除您的个人信息法律法规另有规定的除外</p>
<div class="agreement-rule">
<p><span>改变您授权同意的范围</span></p>
<p>小蜜蜂业务功能可能需要一些基本的个人信息才能得以完成见本协议中的第一条除此之外对于额外个人信息的收集和使用您可以与通过在线客服以及联系个人信息保护相关负责人给予或撤回授权联系方式见本协议第九条</p>
<p>对于您已经授权同意我们收集和使用的终端设备权限信息您可以通过在终端设备进行设置改变或撤回您的授权同意Android终端可点击系统设置->应用与权限->应用权限管理进行设置iOS终端可点击系统设置->小蜜蜂进行设置您也可以在本APP中我的->点击头像进入账号与安全页面->点击安全中心->小蜜蜂账号注销的路径撤回授权同意您改变或撤回授权同意后可能无法使用相应的功能服务</p>
<p>当您收回同意后我们将不再处理相应的个人信息
<span
class="agreement-underline">但您收回同意的决定不会影响此前基于您的授权而开展的个人信息处理</span>
</p>
</div>
<div class="agreement-rule">
<p><span>响应您的上述请求</span></p>
</div>
<p>为保障安全您可能需要提供书面请求或以其他方式证明您的身份我们可能会先要求您验证自己的身份然后再处理您的请求</p>
<p>我们将在七个工作日内做出答复</p>
<p>对于您合理的请求我们原则上不收取费用但对多次重复超出合理限度的请求我们将视情收取一定成本费用对于那些无端重复需要过多技术手段需要开发新系统或从根本上改变现行惯例给他人合法权益带来风险或者非常不切实际涉及备份磁带上存放的信息的请求我们可能会予以拒绝
</p>
<p>在以下情形中按照法律法规要求我们将无法响应您的请求</p>
<p>1与国家安全国防安全直接相关的</p>
<p>2与公共安全公共卫生重大公共利益直接相关的</p>
<p>3与犯罪侦查起诉审判和判决执行等直接相关的</p>
<p>4有充分证据表明您存在主观恶意或滥用权利的</p>
<p>5响应您的请求将导致您或其他个人组织的合法权益受到严重损害的</p>
<p>6涉及商业秘密的</p>
<div class="agreement-rule">
<p><span>我们如何处理儿童的个人信息</span></p>
</div>
<div>
<p><span class="agreement-underline">我们的产品网站和服务主要面向企业级用户用户对象一般为成人如果没有父母或监护人的同意儿童不得创建自己的用户账户</span></p>
<p><span class="agreement-underline">对于经父母同意而收集儿童个人信息的情况我们只会在受到法律允许父母或监护人明确同意或者保护儿童所必要的情况下使用或公开披露此信息</span></p>
<p><span class="agreement-underline">尽管当地法律和习俗对儿童的定义不同但我们将不满 14 周岁的任何人均视为儿童如果我们发现自己在未事先获得可证实的父母同意的情况下收集了儿童的个人信息则会设法尽快删除相关数据</span></p>
</div>
<div class="agreement-rule">
<p><span>本政策如何更新</span></p>
</div>
<p>我们的隐私政策可能变更</p>
<p>未经您明确同意我们不会削减您按照本隐私政策所应享有的权利<span class="agreement-underline">我们会在本页面上发布对本政策所做的任何变更</span></p>
<p><span class="agreement-underline">对于重大变更我们还会提供更为显著的通知包括对于某些服务 我们会通过电子邮件发送通知说明隐私政策的具体变更内容</span></p>
<p>本政策所指的重大变更包括但不限于</p>
<p>1我们的服务模式发生重大变化如处理个人信息的目的处理的个人信息类型个人信息的使用方式等</p>
<p>2我们在所有权结构组织架构等方面发生重大变化如业务调整破产并购等引起的所有者变更等</p>
<p>3个人信息共享转让或公开披露的主要对象发生变化</p>
<p>4您参与个人信息处理方面的权利及其行使方式发生重大变化</p>
<p>5我们负责处理个人信息安全的责任部门联络方式及投诉渠道发生变化时</p>
<p>6个人信息安全影响评估报告表明存在高风险时我们还会将本政策的旧版本存档供您查阅</p>
<div class="agreement-rule">
<p><span>如何联系我们</span></p>
</div>
<p>如果您对本隐私政策有任何疑问意见或建议也通过以下方式与我们联系</p>
<p>电子邮箱kaidalai@163.com</p>
<p>个人信息保护相关负责人联系方式kaidalai@163.com</p>
<p>您反馈的信息我们将有专人跟进负责处理我们将在十五个工作日内回复</p>
<p>如果您对我们的回复不满意特别是我们的个人信息处理行为损害了您的合法权益您还可以通过法律途径或前往行业自律协会等机构寻求解决方案</p>
<p>企业名称深圳市凯达来科技有限公司</p>
<p>地点深圳市龙岗区横岗街道沙荷路40-11</p>
</div>
</div>
</template>
<script>
export default {
name: 'user'
}
</script>
<style lang="less">
.content-text {
width: 900px;
margin: 10px auto 0;
padding-bottom: 60px;
color: #333;
font-size: 14px;
line-height: 2em;
}
.content-text .agreement-underline {
font-weight: bold;
text-decoration: underline;
}
.content-text .agreement-rule span {
font-weight: bold;
}
.content-title {
width: 900px;
margin: 0 auto;
height: 60px;
margin-top: 20px;
font-size: 22px;
font-weight: bold;
line-height: 60px;
text-align: center;
}
</style>

@ -0,0 +1,200 @@
<template>
<div class="text-container">
<h1>小蜜蜂住户端APP用户协议及隐私政策</h1>
<h2>用户协议</h2>
<h3>用户协议及隐私政策</h3>
<h4>本隐私信息保护政策生效日期2022年02月
本隐私信息保护政策版本2022 v1.0</h4>
<p>欢迎您使用小蜜蜂住户端APP软件及服务 为使用小蜜蜂住户端APP软件以下简称许可软件及服务您应当阅读并遵守用户协议及隐私政策以下简称本协议请您务必审慎阅读充分理解各条款内容特别是免除或者限制责任的条款以及开通或使用某项服务的单独协议并选择接受或不接受限制免责条款可能以加粗形式提示您注意 一旦您下载安装使用许可软件即表示您同意接受本协议所有条款和条件的约束如您不同意本协议条款和条件请勿使用许可软件并请销毁所有许可软件副本 请您注意本协议不适用于您通过我们的产品/服务而接入的其他第三方产品/服务(其他第三方包括您的交易相对方任何第三方网站以及第三方服务提供者等)具体规定请参照该第三方用户协议及隐私政策或类似声明</p>
<h3>第一部分 用户协议</h3>
<h3>协议的范围</h3>
<h4>1.1协议适用主体范围</h4>
<p>本协议是您与深圳市凯达来科技有限公司以下称凯达来之间关于您下载安装使用登录许可软件以及使用许可软件提供的服务所订立的协议</p>
<h3>关于本服务</h3>
<h4>2.1本服务内容</h4>
<p>本服务内容是指凯达来向用户提供的跨平台的生活助手小蜜蜂住户端APP软件同时提供由物业提供的基础服务增值物业服务周边商圈优惠信息在线支付政府提供的公共资源等服务内容</p>
<h4>2.2本服务形式</h4>
<p>2.2.1 您使用本服务需要下载小蜜蜂住户端软件对于这些软件凯达来给予您一项个人的不可转让及非排他性的许可</p>
<p>2.2.2 本服务中小蜜蜂住户端软件提供包括但不限于iOSandroid等多个应用版本用户必须选择与所安装手机相匹配的软件版本</p>
<h4>2.3许可的范围</h4>
<p>2.3.1 凯达来给予您一项个人的不可转让及非排他性的许可以使用许可软件您可以为非商业目的在终端设备上安装使用显示运行许可软件</p>
<p>2.3.2 本条及本协议其他条款未明示授权的其他一切权利仍由凯达来保留您在行使这些权利时须另外取得凯达来的书面许可凯达来如果未行使前述任何权利并不构成对该权利的放弃</p>
<h3>软件的获取</h3>
<h4>3.1 您可以直接从凯达来的网站上获取许可软件也可以从得到凯达来授权的第三方获取</h4>
<h4>3.2 如果您从未经凯达来授权的第三方获取许可软件或与许可软件名称相同的安装程序凯达来无法保证该软件能够正常使用并对因此给您造成的损失不予负责</h4>
<h3>软件的安装与卸载</h3>
<h4>4.1 凯达来可能为不同的终端设备开发了不同的软件版本您应当根据实际情况选择下载合适的版本进行安装</h4>
<h4>4.2 下载安装程序后您需要按照该程序提示的步骤正确安装</h4>
<h4>4.3 为提供更加优质安全的服务在许可软件安装时凯达来可能推荐您安装其他软件您可以选择安装或不安装</h4>
<h4>4.4 如果您不再需要使用许可软件或者需要安装新版软件可以自行卸载如果您愿意帮助凯达来改进产品服务请告知卸载的原因</h4>
<h3>软件的更新</h3>
<h4>5.1 为了改善用户体验完善服务内容凯达来将不断努力开发新的服务并为您不时提供软件更新这些更新可能会采取软件替换修改功能强化版本升级等形式</h4>
<h4>5.2 为了保证许可软件及服务的安全性和功能的一致性凯达来有权不经向您特别通知而对软件进行更新或者对软件的部分功能效果进行改变或限制</h4>
<h4>5.3 许可软件新版本发布后旧版本的软件可能无法使用凯达来不保证旧版许可软件继续可用及相应的客户服务请您随时核对并下载最新版本</h4>
<h3>用户个人信息保护</h3>
<h4>6.1 保护用户个人信息是凯达来的一项基本原则凯达来将会采取合理的措施保护用户的个人信息除法律法规规定的情形外未经用户许可凯达来不会向第三方公开透露用户个人信息凯达来对相关信息采用专业加密存储与传输方式保障用户个人信息的安全</h4>
<h4>6.2 您在注册账号或使用本服务的过程中可能需要提供一些必要的信息例如为向您提供账号注册服务或进行用户身份识别需要您填写手机号码住址信息等若国家法律法规或政策有特殊规定的您需要提供真实的身份信息若您提供的信息不完整则无法使用本服务或在使用过程中受到限制</h4>
<h4>6.3 一般情况下您可随时浏览修改自己提交的信息但出于安全性和身份识别如服务上门的考虑您最好不要修改注册时提供的住址信息及其他验证信息</h4>
<h4>6.4 凯达来将运用各种安全技术和程序建立完善的管理制度来保护您的个人信息以免遭受未经授权的访问使用或披露</h4>
<h4>6.5 未经您的同意凯达来不会向凯达来以外的任何公司组织和个人披露您的个人信息但法律法规另有规定的除外</h4>
<h3>主权利义务条款</h3>
<h4>7.1 账号使用规范</h4>
<p>7.1.1 您在使用本服务前需要注册一个唯一的小蜜蜂住户端账号注册账号时请按照软件的提示进行注册为使填写的信息能尽快被核实通过请填写您真实的个人及住址信息</p>
<p>7.1.2 小蜜蜂住户端账号的所有权归凯达来所有用户完成申请注册手续后仅获得小蜜蜂住户端账号的使用权且该使用权仅属于初始申请注册人同时初始申请注册人不得赠与借用租用转让或售卖小蜜蜂住户端账号或者以其他方式许可非初始申请注册人使用小蜜蜂住户端账号非初始申请注册人不得通过受赠继承承租受让或者其他任何方式使用小蜜蜂住户端账号 </p>
<p>7.1.3 用户有责任妥善保管注册账户信息及账户密码的安全用户需要对注册账户以及密码下的行为承担法律责任用户同意在任何情况下不向他人透露账户及密码信息在您怀疑他人在使用您的账号时您应立即通知凯达来公司</p>
<h4>7.2 用户注意事项</h4>
<p>7.2.1 您理解并同意为了向您提供有效的服务许可软件会利用您移动通讯终端的处理器和带宽等资源许可软件使用过程中可能产生数据流量的费用用户需自行向运营商了解相关资费信息并自行承担相关费用</p>
<b>7.2.2 您理解并同意凯达来将会尽其商业上的合理努力保障您在许可软件及服务中的数据存储安全但是凯达来并不能就此提供完全保证包括但不限于以下情形</b>
<p>7.2.2.1 凯达来不对您在许可软件及服务中相关数据的删除或储存失败负责</p>
<p>7.2.2.2 凯达来有权根据实际情况自行决定单个用户在许可软件及服务中数据的最长储存期限并在服务器上为其分配数据最大存储空间等您可根据自己的需要自行备份许可软件及服务中的相关数据</p>
<p>7.2.2.3 如果您停止使用许可软件及服务或服务被终止或取消凯达来可以从服务器上永久地删除您的数据服务停止终止或取消后凯达来没有义务向您返还任何数据</p>
<b>7.2.3 用户在使用许可软件及服务时须自行承担如下来自凯达来不可掌控的风险内容包括但不限于</b>
<p>7.2.3.1 由于不可抗拒因素可能引起的个人信息丢失泄漏等风险</p>
<p>7.2.3.2 用户必须选择与所安装手机相匹配的软件版本否则由于软件与手机型号不相匹配所导致的任何问题或损害均由用户自行承担</p>
<p>7.2.3.3 用户在使用许可软件访问第三方网站时因第三方网站及相关内容所可能导致的风险由用户自行承担</p>
<p>7.2.3.4 用户发布的内容被他人转发分享因此等传播可能带来的风险和责任</p>
<p>7.2.3.5 由于无线网络信号不稳定无线网络带宽小等原因所引起的小蜜蜂住户端登录失败资料同步不完整页面打开速度慢等风险</p>
<p>7.2.4 为了提高园区订单包括但不限于维修投诉建议咨询等的流转速度避免造成积压同时也为了能够给您提供更高效的服务在订单处理完成后请您及时进行确认并对我们的服务做出评价若您因故未能在14日内进行订单确认则系统会默认服务已经完成</p>
<p>7.2.5 代表用户身份的二维码仅供本人用于在本系统中证明身份;</p>
<h4>7.3 第三方产品和服务</h4>
<p>7.3.1 您在使用许可软件第三方提供的产品或服务时除遵守本协议约定外还应遵守第三方的用户协议凯达来和第三方对可能出现的纠纷在法律规定和约定的范围内各自承担责任</p>
<h3>用户行为规范</h3>
<h4>8.1 信息内容规范</h4>
<b>8.1.1 您理解并同意凯达来一直致力于为用户提供文明健康规范有序的网络环境您不得利用小蜜蜂住户端账号或许可软件及服务制作复制发布传播如下干扰许可软件正常运营以及侵犯其他用户或第三方合法权益的内容包括但不限于</b>
<p>8.1.1.1 发布传送传播储存违反国家法律危害国家安全统一社会稳定公序良俗社会公德以及侮辱诽谤淫秽或含有任何性或性暗示的暴力的内容</p>
<p>8.1.1.2 发布传送传播储存侵害他人名誉权肖像权知识产权商业秘密等合法权利的内容</p>
<p>8.1.1.3 涉及他人隐私个人信息或资料的</p>
<p>8.1.1.4 发表传送传播骚扰广告信息及垃圾信息</p>
<p>8.1.1.5 其他违反法律法规政策及公序良俗社会公德或干扰许可软件正常运营和侵犯其他用户或第三方合法权益内容的信息</p>
<h4>8.2 软件使用规范</h4>
<b>除非法律允许或凯达来书面许可您使用许可软件过程中不得从事下列行为</b>
<p>8.2.1 删除许可软件及其副本上关于著作权的信息</p>
<p>8.2.2 对许可软件进行反向工程反向汇编反向编译或者以其他方式尝试发现许可软件的源代码</p>
<p>8.2.3 对凯达来拥有知识产权的内容进行使用出租出借复制修改链接转载汇编发表出版建立镜像站点等</p>
<p>8.2.4 对许可软件或者许可软件运行过程中释放到任何终端内存中的数据软件运行过程中与服务器端的交互数据以及许可软件运行所必需的系统数据进行复制修改增加删除挂接运行或创作任何衍生作品形式包括但不限于使用插件外挂或非凯达来经授权的第三方工具/服务接入许可软件和相关系统</p>
<p>8.2.5 通过修改或伪造软件运行中的指令数据增加删减变动软件的功能或运行效果或者将用于上述用途的软件方法进行运营或向公众传播无论这些行为是否为商业目的</p>
<p>8.2.6 通过非凯达来开发授权的第三方软件插件外挂系统登录或使用小蜜蜂住户端软件及服务或制作发布传播上述工具</p>
<p>8.2.7 自行或者授权他人第三方软件对许可软件及其组件模块数据进行干扰</p>
<p>8.2.8 其他未经凯达来明示授权的行为</p>
<h4>8.3 服务运营规范</h4>
<b>除非法律允许或凯达来书面许可您使用本服务过程中不得从事下列行为</b>
<p>8.3.1 提交发布虚假信息或冒充利用他人名义的</p>
<p>8.3.2 诱导其他用户点击链接页面或分享信息的</p>
<p>8.3.3 虚构事实隐瞒真相以误导欺骗他人的</p>
<p>8.3.4 侵害他人名誉权肖像权知识产权商业秘密等合法权利的</p>
<p>8.3.5 未经凯达来书面许可利用小蜜蜂住户端账号和任何功能以及第三方运营平台进行推广或互相推广的</p>
<p>8.3.6 利用小蜜蜂住户端账号或许可软件及服务从事任何违法犯罪活动的</p>
<p>8.3.7 制作发布与以上行为相关的方法工具或对此类方法工具进行运营或传播无论这些行为是否为商业目的</p>
<p>8.3.8 其他违反法律法规规定侵犯其他用户合法权益干扰产品正常运营或凯达来未明示授权的行为</p>
<h4>8.4 对自己行为负责</h4>
<p>您充分了解并同意您必须为自己注册账号下的一切行为负责包括您所发表的任何内容以及由此产生的任何后果您应对本服务中的内容自行加以判断并承担因使用内容而引起的所有风险包括因对内容的正确性完整性或实用性的依赖而产生的风险凯达来无法且不会对因前述风险而导致的任何损失或损害承担责任</p>
<h4>8.5 违约处理</h4>
<p>8.5.1 如果凯达来发现或收到他人举报或投诉用户违反本协议约定的凯达来有权不经通知随时对相关内容进行删除并视行为情节对违规账号处以包括但不限于警告限制或禁止使用全部或部分功能账号封禁直至注销的处罚并公告处理结果</p>
<p>8.5.2 您理解并同意凯达来有权依合理判断对违反有关法律法规或本协议规定的行为进行处罚对违法违规的任何用户采取适当的法律行动并依据法律法规保存有关信息向有关部门报告等用户应独自承担由此而产生的一切法律责任</p>
<p>8.5.3 您理解并同意因您违反本协议或相关服务条款的规定导致或产生第三方主张的任何索赔要求或损失您应当独立承担责任凯达来因此遭受损失的您也应当一并赔偿</p>
<h3>知识产权声明</h3>
<h4>9.1 凯达来是许可软件的知识产权权利人许可软件的一切著作权商标权专利权商业秘密等知识产权以及与许可软件相关的所有信息内容包括但不限于文字图片音频视频图表界面设计版面框架有关数据或电子文档等均受中华人民共和国法律法规和相应的国际条约保护凯达来享有上述知识产权但相关权利人依照法律规定应享有的权利除外</h4>
<h4>9.2 未经凯达来或相关权利人书面同意您不得为任何商业或非商业目的自行或许可任何第三方实施利用转让上述知识产权</h4>
<h3>终端安全责任</h3>
<h4>10.1 您理解并同意许可软件同大多数互联网软件一样可能会受多种因素影响包括但不限于用户原因网络服务质量社会环境等也可能会受各种安全问题的侵扰包括但不限于他人非法利用用户资料进行现实中的骚扰用户下载安装的其他软件或访问的其他网站中可能含有病毒木马程序或其他恶意程序威胁您的终端设备信息和数据安全继而影响许可软件的正常使用等因此您应加强信息安全及个人信息的保护意识注意密码保护以免遭受损失</h4>
<h4>10.2 您不得制作发布使用传播用于窃取小蜜蜂住户端账号及他人个人信息财产的恶意程序</h4>
<h4>10.3 维护软件安全与正常使用是凯达来和您的共同责任凯达来将按照行业标准合理审慎地采取必要技术措施保护您的终端设备信息和数据安全但是您承认和同意凯达来并不能就此提供完全保证 </h4>
<h4>10.4 在任何情况下您不应轻信借款索要密码或其他涉及财产的网络信息涉及财产操作的请一定先核实对方身份并请经常留意凯达来有关防范诈骗犯罪的提示 </h4>
<h4>10.5 若其他用户发布有攻击性的内容时您可以通过提交举报或屏蔽的方式进行设置也可在设置中取消对其用户的屏蔽</h4>
<h3>十一第三方软件或技术</h3>
<h4>11.1 许可软件可能会使用第三方软件或技术包括许可软件可能使用的开源代码和公共领域代码等下同这种使用已经获得合法授权</h4>
<h4>11.2 许可软件如果使用了第三方的软件或技术凯达来将按照相关法规或约定对相关的协议或其他文件可能通过本协议附件在许可软件安装包特定文件夹中打包等形式进行展示它们可能会以软件使用许可协议授权协议开源代码许可证或其他形式来表达前述通过各种形式展现的相关协议或其他文件均是本协议不可分割的组成部分与本协议具有同等的法律效力您应当遵守这些要求如果您没有遵守这些要求该第三方或者国家机关可能会对您提起诉讼罚款或采取其他制裁措施并要求凯达来给予协助您应当自行承担法律责任</h4>
<h4>11.3 如因许可软件使用的第三方软件或技术引发的任何纠纷应由该第三方负责解决凯达来不承担任何责任凯达来不对第三方软件或技术提供客服支持若您需要获取支持请与第三方联系</h4>
<h3>十二账号注销</h3>
<h4>12.1您可以通过以下方式注销您的账号 登入小蜜蜂住户端APP通过我的-设置-账号管理-注销账号来注销账号在您注销账号前请确保你在小蜜蜂住户端APP的账号同时满足以下条件否则你注销账号的申请可能会被拒绝 1账户在小蜜蜂住户端APP中无资产无欠款 2账户内无未完成的订单已提供服务单未支付的订单/服务 在您主动注销账户之后我们将停止为您提供产品或服务我们将删除您的个人信息使其保持不可被检索访问的状态或对使其进行匿名化处理 </h4>
<h4>12.2若想要删除部分您所填写的信息如实名认证中身份证号身份证图像请通过0574-87760023与我们联系</h4>
<h2>隐私政策</h2>
<p>为用户提供更好更优更个性化的服务是我们坚持不懈的追求也希望通过我们提供的服务可以更方便您的生活依据法律的规定我们将在特定情形下收集使用保存和披露您的个人信息以下条款描述了我们如何收集使用保存和披露您的个人信息 本政策将帮助您了解以下内容请根据以下目录阅读相应章节</p>
<p>1.个人信息的收集 2.个人信息的使用 3.个人信息的披露 4.个人信息的共享 5.安全 6.第三方网站 7.未成年人保护 8.联系我们</p>
<h3>1.个人信息的收集 </h3>
<h4>1.1信息收集目的</h4>
<p>根据国家APP实名制管理规定我们保存使用和披露个人信息是为了通过创建账户识别用户回应查询等方式来为您提供服务在得到您的许可之后小蜜蜂住户端APP会向您提供基础物业服务便民生活服务业主自治及社交服务社区生活相关的服务发送资讯调查优惠和促销信息以及其他宣传材料以为您提供更好的服务物业基础服务包括报修报事生活缴费蓝牙开门访客通行鹰眼服务投诉表扬常用电话快递服务装修管家活动投票问卷调查咨询建议资讯服务幸福里快递代寄车位库房等服务 </p>
<h4>1.2 信息收集的主要范围及方式</h4>
<p>为实现小蜜蜂住户端APP之服务目的小蜜蜂住户端APP会通过技术手段收集您的个人信息通过技术手段所收集的个人信息仅限于您的姓名出生日期身份证号码联系方式住址等使用小蜜蜂住户端APP所必需的信息此外为确保园区安全使用蓝牙开门及鹰眼服务需根据审核规范上传您的有效身份证信息 小蜜蜂住户端APP支持多类操作系统的使用在您通过各种手机操作系统使用小蜜蜂住户端APP的过程中小蜜蜂住户端APP所收集的信息仅限于您同意使用小蜜蜂住户端APP基本服务所必需的信息 我们会遵循正当合法必要的原则出于本政策所述的目的收集和使用您的个人信息您需要授权我们收集和使用个人信息的场景如下所示 </p>
<p>服务项目的及收集范围</p>
<p>报修报事如您使用报修报事功能时我们可能收集您的姓名房号设备信息报修时间</p>
<p>投诉表扬/服务者评价如您使用投诉表扬功能时我们可能会收集您的姓名联系方式房号下单时间如您使用服务者评价功能时我们会收集您所上传或下载的信息这类信息包括搜索关键字发布和回复信息</p>
<p>缴费功能如您使用缴费功能时我们可能收集您的姓名联系地址联系方式支付渠道支付账号支付网关号订单信息交易和消费信息获奖信息虚拟财产信息这些信息属于个人敏感信息在获得您的明示同意后我们将使用加密技术收集此类信息的收集范围我们会在前述活动及其规则中向您明示</p>
<p>蓝牙开门如您使用蓝牙开门功能时我们可能收集您的姓名房号使用时间使用次数开门状态信息</p>
<p>访客通行如您使用访客通行功能时我们可能会收集您的姓名房号信息以及访客姓名访客手机号访客身份证号码访问时间访问人数访客类型访客车牌访客目的访客状态信息</p>
<p>鹰眼服务如您使用鹰眼服务功能时我们可能会收集您的姓名联系方式所在园区房号使用时间信息并在使用服务前按审核要求进行实名认证</p>
<p>常用电话如您使用常用电话功能时我们可能向您请求收集相关通讯录信息包括联系人姓名及对应的联系方式通讯录信息属于个人敏感信息我们将使用加密技术收集用于向您推荐通信录中的好友您可以通过关闭设备通讯录权限停止我们收集前述通讯录信息一旦您取消了授权我们将不再继续收集但是您停止授权的行为不会影响我们此前基于您的授权所进行的信息收集及使用</p>
<p>快递记录/快递代寄如您使用快递服务功能时我们可能收集您的收件人姓名联系方式联系地址收件人类型快递公司快递单号来源录入时间领取时间信息或订单信息</p>
<p>装修管家如您使用装修管家功能时我们可能会收集您的姓名联系方式房号信息</p>
<p>共享停车如您使用共享停车功能时我们可能会收集您的姓名联系方式车牌号使用次数使用时间车位信息</p>
<p>资讯服务如您使用资讯服务功能时我们可能会收集您的姓名查看时间信息</p>
<p>问卷调查/活动投票如您使用问卷调查功能时我们可能会收集您的姓名联系方式所在园区房号调查结果或投票结果信息</p>
<p>咨询建议如您使用咨询建议功能时我们会收集您所上传或下载的信息这类信息包括搜索关键字发布和回复信息</p>
<p>友邻社交如您使用友邻社交功能时我们会收集您姓名联系方式房号发布时间发布内容车位库房信息</p>
<p>业主自治如您使用业主自治功能时我们会收集您的姓名联系方式房号发布时间发布内容信息</p>
<p>中信ETC如您使用中信ETC功能时我们会收集您的姓名联系方式车牌号交易和消费信息订单信息虚拟财产信息</p>
<p>生活商圈如您使用生活商圈功能时我们可能会收集您的姓名联系地址联系方式支付渠道支付账号支付网关号订单信息交易和消费信息获奖信息虚拟财产信息这些信息属于个人敏感信息在获得您的明示同意后我们将使用加密技术收集此类信息的收集范围我们会在前述活动及其规则中向您明示</p>
<p>园区健康如您使用生活健康功能时我们可能会收集您的姓名联系方式园区信息房号使用时间信息</p>
<p>服务者评价如您使用服务者评价功能时我们会收集您所上传或下载的信息这类信息包括搜索关键字发布和回复信息</p>
<p>开门码如您使用开门码功能时,我们会收集您的姓名联系方式住址信息</p>
<b>您需要授权访问及使用权限的功能场景如下所示</b>
<p>业务场景访问及使用权限实名认证需要扫码证件或者选择相册图片使用相机设备权限访问外部存储权写外部存储权限</p>
<p>社区需要拍照或选择相册图片使用相机设备权限访问外部存储权限写外部存储权限 </p>
<p>更换头像 更换头像需要拍照或选择相册图片 使用相机设备权限访问外部存储权限写外部存储权限 </p>
<p>活动添加参与人参与人头像可以编辑需要拍照或选择相册图片 使用相机设备权限访问外部存储权限写外部存储权限 </p>
<p>首页扫一扫需要调用设备摄像头二维码或者从相册里选择图片 使用相机设备权限访问外部存储权限写外部存储权限</p>
<p>订单评价订单评价可以添加图片需要拍照或选择相册图片使用相机设备权限访问外部存储权限写外部存储权限</p>
<p>报事报修可以添加图片使用相机设备权限访问外部存储权限写外部存储权限</p>
<p>商家和商品详情页拨打商家和客服电话需要拨打电话权限</p>
<p>电话物业物业管家首页点击物业电话需要拨打电话权限</p>
<p>常用电话拨打电话权限</p>
<p>语音管家语音报事需要语音识别 访问录音权限</p>
<p>保存图片查看图片点击保存图片访问外部存储权限写外部存储权限 </p>
<p>任务发布填写目标地址时需要定位权限访问位置权限手机麦克风听筒访问权限语音识别访问录音权限</p>
<p>蓝牙开门蓝牙开门需要定位当前蓝牙点位置 访问位置权限</p>
<h4>1.3 信息推送及服务</h4>
<p>您提供的信息小蜜蜂住户端APP将最大限度尽合理之商业义务进行保密经过您的同意小蜜蜂住户端APP将会向您提供电子商务生活服务资讯版本升级等服务 为确保您的服务体验在您使用平台功能时根据服务状态将为您发送快递物业缴费访客物业工单巡查物品借用活动报名红包拼团商品订单售后工单发票状态信息以及对快递服务的短信通知服务</p>
<h4>1.4 收集信息的其他方式</h4>
<p>我们将采用其他方式例如信息下载购买产品或服务用户支持反馈以及调查表来收集您的个人信息如果您将个人信息填写在其他开放的平台上其他用户可能会获知您的信息</p>
<h4>1.5 收集的其他信息</h4>
<p>为了便于您使用小蜜蜂住户端APP软件我们的服务器将会收集关于您的移动通讯设备的信息例如型号设备ID互联网协议地址您访问的时间和地点路由数据包信息发送人和接收数据但不是信息本身以及其他类似的特征记录</p>
<h3>2.个人信息的使用</h3>
<h4>2.1 您的个人信息将不会用于本政策载明的目的之外的其他目的双方另有约定的除外</h4>
<h4>2.2 匿名汇总统计数据不是小蜜蜂住户端APP所定义的个人用户信息我们将为多种目的包括但不限于分析和使用模式的报告等来保存和使用此类信息用户使用本APP的视为已授权小蜜蜂住户端APP提供方以任何目的自身或许可第三方使用和披露匿名汇总统计数据的权利</h4>
<h3>3.个人信息的披露</h3>
<h4>3.1 除非本政策载明的有限披露我们会妥善保存您的个人信息并不会泄露客户信息</h4>
<h4>3.2 您于此授权以下情形下我们将会向第三方披露您的个人信息而无需通过您的同意 如果我们披露这些信息是用来识别联系或向可能对我们的权利或财产网站用户或者其他任何人包括其他任何人的权利和财产造成损害之行为提起诉讼之必要 法律调查之必要 此类披露是法律规定或应向我们送达的传票或其他执法部门发出的令状之必要</h4>
<h3>4.个人信息的共享</h3>
<p>您于此授权我们将在必要时向合作的第三方提供您的个人信息以便为您提供某些服务或代表我们履行职能我们仅会处于本隐私条款声明的合法正当必要特定明确的目的共享您的信息合作的第三方只能接触到其履行职责所需信息且不得将此信息用于其他任何目的我们不允许合作的第三方伴进行转委托</p>
<p>关于合作的第三方的信息及提供的服务场景应用见下
第三方名称深圳市凯达来科技有限公司
场景描述app数据统计
个人信息类型个人常用设备信息
个人信息字段设备信息网络信息</p>
<h3>5.安全</h3>
<p>对我们来说个人信息的安全非常重要我们将尽可能保障您的个人信息安全并实施合理的措施限制非授权访问使用或者披露您的个人信息尽管采取上述措施但是您应当知晓小蜜蜂住户端APP不能完全避免与个人信息相关的安全危险 双方同意如发生下述情形小蜜蜂生活APP不承担任何法律责任</p>
<p>①依据法律规定或相关政府部门的要求提供您的个人信息</p>
<p>②由于您的使用不当而导致任何个人信息的泄露</p>
<p>③任何由于黑客攻击电脑病毒的侵入非法内容信息骚扰信息的屏蔽政府管制以及其他任何网络技术通信线路信息安全管理措施等非小蜜蜂生活APP原因造成的服务中断受阻等不能满足用户要求的情形 您应当协助我们以保护您的个人信息安全例如不要泄露您的个人密码</p>
<h3>6.第三方网站</h3>
<h4>6.1 当您点击小蜜蜂住户端APP链接的其他网站时您已经离开我们的网站并访问其他网站其他网站可能会收集您的个人信息或匿名数据因此我们无法控制检查或者回应此类网站和网站内容</h4>
<h4>6.2 本政策不适用于在您点击链接后的外部网站收集数据的行为</h4>
<h3>7.未成年人保护 </h3>
<p>小蜜蜂住户端APP非常重视对未成年人信息的保护根据相关法律法规的规定若您是18周岁以下的未成年人在使用本APP服务前应事先取得您家长或法定监护人的书面同意小蜜蜂住户端APP不会使用未成年人的个人信息也不会向任何第三方透露可识别的信息若您是未成年人的监护人当您对您所监护的未成年人的个人信息有相关疑问时请通过第8节中的联系方式与我们联系</p>
<h3>8.联系我们</h3>
<p>当您有其他的投诉建议未成年人个人信息相关问题时您可以将您的问题发送至kaidalai@163.com 我们将尽快审核所涉问题并在验证您的用户身份后的十五天内予以回复</p>
</div>
</template>
<script>
export default {
name: "rule"
}
</script>
<style lang="less">
.text-container {
width: 800px;
}
</style>

@ -0,0 +1,5 @@
"<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.page.pay&sign=B5HCq8qiiwkOfH%2FwKaKwxMeExsKFcibdK4oLcz5ypYxqSKcXn0KfqEBcW3u2219sqKKuzFNZGuT5%2F%2BK%2FO3RCeQGUBalM2JdknrI7MiJ4%2B3CvBfyLKDuwZd0SRu7xaPb0VkjIkgbn9g4vpufQaezq19lErd7LCL7wMu14%2FduswqptCQW9bYn%2F4uhTEcgm%2FTu3Ab17fEe3DKSHqG2VqjhzxhViRENB9wZ6Nvq6LltDHJF5QGBbellwvv%2BGikwYAyghtVwc61GJuagldqtlT4fP0zmUIpA1dj4ctUQuyfMYuBIzFbT3TuGDksJFfKQJ17FJkT9kSZYTJZy%2F2wN1Vdl3nQ%3D%3D&notify_url=http%3A%2F%2Fsaas.kaidalai.cn%2Fapi%2Fadmin%2Falipay%2FnotifyInfo%2FbalanceRechargeOrderNotifyInfo&version=1.0&app_id=2021003124652865&sign_type=RSA2&timestamp=2022-04-02+10%3A46%3A20&alipay_sdk=alipay-sdk-java-3.1.0&format=json">
<input type="hidden" name="biz_content" value="{&quot;body&quot;:&quot;商城购物支付&quot;,&quot;out_trade_no&quot;:&quot;CZ20220402104620169001&quot;,&quot;product_code&quot;:&quot;QUICK_MSECURITY_PAY&quot;,&quot;subject&quot;:&quot;商城购物&quot;,&quot;timeout_express&quot;:&quot;30m&quot;,&quot;total_amount&quot;:&quot;0.6&quot;}">
<input type="submit" value="立即支付" style="display:none" >
</form>
<script>document.forms[0].submit();</script>"

@ -9,7 +9,7 @@
module.exports = { module.exports = {
// ... // ...
runtimeCompiler: true, runtimeCompiler: true,
publicPath: process.env.NODE_ENV == 'production' ? './' : '/',
// ... // ...
}; };
Loading…
Cancel
Save