1
0
forked from dyf/APP

670添加分享的权限

This commit is contained in:
liub
2025-09-23 13:54:38 +08:00
parent f3c21c2e1b
commit 97cbb25753
11 changed files with 207 additions and 1023 deletions

View File

@ -223,15 +223,15 @@
<view class="proinfo lamp">
<text class="title">产品信息</text>
<view class="itemcontent">
<view class="item" @click="proParam()">
<view class="item" @click="proDetail('productDes')">
<image class="img" src="/static/images/6155/DeviceDetail/param.png" mode="aspectFit"></image>
<text class="txt">产品参数</text>
</view>
<view class="item" @click="handRemark()">
<view class="item" @click="proDetail('operatingInstruct')">
<image class="img" src="/static/images/6155/DeviceDetail/remark.png" mode="aspectFit"></image>
<text class="txt">操作说明</text>
</view>
<view class="item" @click="handVideo()">
<view class="item" @click="proDetail('operationVideo')">
<image class="img" src="/static/images/6155/DeviceDetail/video.png" mode="aspectFit"></image>
<text class="txt">操作视频</text>
</view>
@ -268,6 +268,7 @@
import BleReceive from '@/utils/BleReceive';
import api from '@/api/670/HBY670.js';
import MqttClient from '@/utils/mqtt.js';
import Common from '@/utils/Common.js'
import {
showLoading,
hideLoading,
@ -438,7 +439,7 @@
these.Status.apiType = data.apiType;
these.device = device;
if(data.apiType!=='listA'){
Comment.getdeviceShareId(data.data.id).then(res=>{
Common.getdeviceShareId(data.data.id).then(res=>{
if(res.code==200){
if(res.data.permission){
these.permissions=res.data.permission.split(',');
@ -604,7 +605,7 @@
} else if (s === 1) {
console.log("分享");
uni.navigateTo({
url: '/pages/common/Share/shareIndex',
url: '/pages/common/share/index',
events: {
ack: function(data) {}
},
@ -862,6 +863,18 @@
},
lightSetting: function(type) {
if(!this.permissions.includes('1') && this.Status.apiType!=='listA'){
this.showPop({
message: '无操作权限',
iconUrl: "/static/images/6155/DeviceDetail/uploadErr.png",
borderColor: "#e034344d",
buttonBgColor: "#E03434",
okCallback: null,
buttonText: "确定"
})
return;
}
if (this.formData.lightCurr == type) {
return;
}
@ -1037,6 +1050,20 @@
});
},
sosSetting: function(type) {
if(!this.permissions.includes('42') && this.Status.apiType!=='listA'){
this.showPop({
message: '无操作权限',
iconUrl: "/static/images/6155/DeviceDetail/uploadErr.png",
borderColor: "#e034344d",
buttonBgColor: "#E03434",
okCallback: null,
buttonText: "确定"
})
return;
}
if (this.formData.SOS == type) {
type = "close";
}
@ -1201,7 +1228,15 @@
},
GearSetting: function(type) { //档位设置
if(!this.permissions.includes('41') && this.Status.apiType!=='listA'){
console.log("无操作权限");
this.showPop({
message: '无操作权限',
iconUrl: "/static/images/6155/DeviceDetail/uploadErr.png",
borderColor: "#e034344d",
buttonBgColor: "#E03434",
okCallback: null,
buttonText: "确定"
})
return;
}
if (this.formData.modeCurr == type) {
@ -1288,32 +1323,27 @@
setTimeout(task, 0);
},
proParam: function() {
proDetail:function(type){
if(!this.permissions.includes('41') && this.Status.apiType!=='listA'){
this.showPop({
message: '无操作权限',
iconUrl: "/static/images/6155/DeviceDetail/uploadErr.png",
borderColor: "#e034344d",
buttonBgColor: "#E03434",
okCallback: null,
buttonText: "确定"
})
return;
}
uni.navigateTo({
url: '/pages/common/productDes/index?id=' + this.device.id,
url: '/pages/common/'+type+'/index?id=' + this.device.id,
success(ev) {
}
});
},
handRemark: function() {
uni.navigateTo({
url: '/pages/common/operatingInstruct/index?id=' + this.device.id,
success(ev) {
}
});
},
handVideo: function() {
uni.navigateTo({
url: '/pages/common/operationVideo/index?id=' + this.device.id,
success(ev) {
}
});
},
checkImgUpload: function(type, index) {
console.log("123213213213");
let f = these.getDevice();
@ -1851,6 +1881,18 @@
},
ShowUpload: function() {
if(!this.permissions.includes('3') && this.Status.apiType!=='listA'){
this.showPop({
message: '无操作权限',
iconUrl: "/static/images/6155/DeviceDetail/uploadErr.png",
borderColor: "#e034344d",
buttonBgColor: "#E03434",
okCallback: null,
buttonText: "确定"
})
return;
}
//上传开机画面
this.Status.BottomMenu.menuItems = [];
this.Status.BottomMenu.title = "上传开机画面";
@ -1945,6 +1987,19 @@
this.Status.Pop.showPop = true;
},
sendUsr: function(ReSendNo) {
if(!this.permissions.includes('4') && this.Status.apiType!=='listA'){
this.showPop({
message: '无操作权限',
iconUrl: "/static/images/6155/DeviceDetail/uploadErr.png",
borderColor: "#e034344d",
buttonBgColor: "#E03434",
okCallback: null,
buttonText: "确定"
})
return;
}
let requestSend = () => {
let json = {
@ -2139,6 +2194,19 @@
},
sendUrgent(type) {
if(!this.permissions.includes('5') && this.Status.apiType!=='listA'){
this.showPop({
message: '无操作权限',
iconUrl: "/static/images/6155/DeviceDetail/uploadErr.png",
borderColor: "#e034344d",
buttonBgColor: "#E03434",
okCallback: null,
buttonText: "确定"
})
return;
}
if (!this.formData.msgTxt) {
return;

View File

@ -1,98 +0,0 @@
<template>
<view class="share">
<!-- 内容区域 -->
<view class="content">
<!-- 分享设备 -->
<view class="section" @click="shareDevice">
<text class="section-title">分享设备</text>
</view>
<!-- 分享管理 -->
<view class="section" @click="shareManagement">
<text class="section-title">分享管理</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
itemInfo:""
}
},
methods: {
// 分享设备
shareDevice(){
uni.navigateTo({
url: '/pages/common/Share/sharePermission',
events: {
ack: function(data) {}
},
success: (res) => {
res.eventChannel.emit('shareDevice', {
data: this.itemInfo,
});
}
});
},
// 分享管理
shareManagement(){
uni.navigateTo({
url: '/pages/common/Share/shareManager',
events: {
ack: function(data) {}
},
success: (res) => {
res.eventChannel.emit('shareManagement', {
data: this.itemInfo,
});
}
});
}
},
onLoad() {
const eventChannel = this.getOpenerEventChannel();
// 监听 'shareDevice' 事件,获取传过来的数据
eventChannel.on('share', (data) => {
console.log(data,'datat');
this.itemInfo = data.data;
})
}
}
</script>
<style scoped>
.share {
padding: 30rpx;
background: #121212;
min-height: 100vh;
}
.status-bar {
/* 根据实际情况设置状态栏高度 */
width: 100%;
height: 20px;
background-color: #f3f3f3;
}
.title {
font-size: 20px;
margin-top: 10px;
}
.content {
width: 100%;
margin-top: 20px;
}
.section {
margin-bottom: 20px;
padding:50rpx;
border-radius: 16rpx;
background: rgba(26, 26, 26, 1);
text-align: center;
color: rgba(255, 255, 255, 0.87);
width: 100%;
}
</style>

View File

@ -1,351 +0,0 @@
<template>
<view class="share">
<!-- 下拉刷新区域 -->
<mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :up="upOption" :down="downOption">
<view class="device-title">已分享用户</view>
<view class="" v-if="deviceList.length>0">
<view class="device-info" v-for="(item, index) in deviceList" :key="index">
<view class="device-header" @click.stop="handleFile(item)">
<view class="deviceIMG">
<image src="@/static/images/common/user.png" mode="aspectFit" class="IMG"></image>
</view>
<view class="device-name">
<view>设备名{{item.deviceName}}</view>
<view class="ID">
<view class="ID">{{item.phonenumber}}
</view>
</view>
</view>
<view class="device-delete">
<text class="delete" @click.stop="handleDelete(item)">移除</text>
</view>
</view>
</view>
</view>
<view v-else class="noDATA">
<view> <uni-icons type="image-filled" size="120" color="rgba(255, 255, 255, 0.9)"></uni-icons>
</view>
暂无数据
</view>
</mescroll-uni>
<!-- 删除弹框 -->
<view class="agreement-mask" v-if="deleteShow" @click="closePopup('delete')">
<view class="agreement-popup" @click.stop>
<view class="popup-content">
<image src="/static/images/common/delel.png" mode="" class="svg"></image>
<uni-icon class="trash"></uni-icon>
<view>
<view class="popup-Title">确定移除该用户</view>
</view>
</view>
<!-- 按钮组 -->
<view class="popup-buttons">
<button class="btn agreeBtn" @click="handleBtn">确定</button>
</view>
</view>
</view>
</view>
</template>
<script>
import {
deviceShareList,
deviceShareDelete
} from '@/api/6170/share.js'
import MescrollUni from 'mescroll-uni/mescroll-uni.vue'
export default {
components: {
MescrollUni
},
data() {
return {
deviceList: [],
deleteShow: false,
delelteItemInfo: '',
itemInfo: '',
mescroll: null, // mescroll实例对象
downOption: {
auto: false // 不自动加载
},
upOption: {
auto: false, // 不自动加载
noMoreSize: 5, // 如果列表已无数据,可设置列表的总数量要大于等于5条才显示无更多数据
empty: {
tip: '暂无相关数据'
}
},
page: 1, // 当前页码
size: 10, // 每页条数
total: 0 // 总数据量
}
},
methods: {
// mescroll组件初始化的回调,可获取到mescroll对象
mescrollInit(mescroll) {
this.mescroll = mescroll;
},
// 下拉刷新的回调
downCallback() {
// 重置分页参数
this.page = 1;
this.getData(this.itemInfo.id).then(res => {
// 数据请求成功后,隐藏下拉刷新的状态
this.mescroll.endSuccess();
}).catch(() => {
// 请求失败,隐藏下拉刷新的状态
this.mescroll.endErr();
})
},
// 上拉加载的回调
upCallback() {
this.getData(this.itemInfo.id).then(res => {
// 根据是否有数据来决定是否显示无更多数据的提示
const hasNext = this.deviceList.length < this.total;
this.mescroll.endSuccess(this.deviceList.length, hasNext);
}).catch(() => {
// 请求失败,隐藏上拉加载的状态
this.mescroll.endErr();
})
},
// 点击弹框外的区域关闭
closePopup(type) {
if (type === 'delete') {
this.deleteShow = false;
}
},
// 删除
handleDelete(item) {
console.log(item, 'www');
this.deleteShow = true
this.delelteItemInfo = item
},
handleBtn() {
let allId = this.delelteItemInfo.id
deviceShareDelete(allId).then((res) => {
if (res.code = 200) {
uni.showToast({
title: res.msg,
icon: 'none'
})
this.deleteShow = false
// 删除后刷新列表
this.page = 1;
this.getData(this.itemInfo.id).then(() => {
this.mescroll.resetUpScroll();
})
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
})
},
getData(val) {
return new Promise((resolve, reject) => {
let data = {
deviceId: val,
pageNum: this.page,
pageSize: this.size,
}
deviceShareList(data).then((res) => {
if (res.code == 200) {
this.total = res.total;
if (this.page === 1) {
// 如果是第一页,直接替换数据
this.deviceList = res.rows;
} else {
// 如果不是第一页,追加数据
this.deviceList = this.deviceList.concat(res.rows);
}
resolve(res);
} else {
reject(res);
}
}).catch(err => {
reject(err);
})
})
},
// 跳转分享详情
handleFile(item) {
uni.navigateTo({
url: "/pages/6170/deviceControl/index",
success: (res) => {
// 页面跳转成功后的回调函数
res.eventChannel.emit('detailData', {
data: item,
apiType: 'listB' // 自定义标识 // 自定义标识,详情哪里根据这个参数不同信息
});
}
})
}
},
onLoad() {
const eventChannel = this.getOpenerEventChannel();
// 监听 'shareDevice' 事件,获取传过来的数据
eventChannel.on('shareManagement', (data) => {
console.log(data, 'data1t111');
this.itemInfo = data.data;
// 初始化加载数据
this.page = 1;
this.getData(this.itemInfo.id).then(() => {
// 数据加载完成后,如果需要可以手动触发下拉刷新结束
if (this.mescroll) {
this.mescroll.endSuccess();
}
})
})
}
}
</script>
<style scoped>
.share {
padding: 30rpx;
background: #121212;
min-height: 100vh;
}
.device-title {
color: rgba(255, 255, 255, 0.87);
padding: 30rpx;
}
.device-info {
font-size: 28rpx;
color: rgba(255, 255, 255, 0.87);
padding-top: 10rpx;
position: relative;
margin-bottom: 20rpx;
}
.device-header {
display: flex;
align-items: center;
margin-bottom: 15rpx;
}
.device-name {
font-size: 32rpx;
color: rgba(255, 255, 255, 0.87);
margin-left: 25rpx;
line-height: 50rpx;
white-space: nowrap;
}
.ID {
color: rgba(255, 255, 255, 0.6);
font-size: 26rpx;
}
.deviceIMG {
/* width: 100rpx; */
/* height: 100rpx; */
position: relative;
display: flex;
align-items: center;
}
.device-delete {
text-align: end;
width: 50%;
}
.noDATA {
text-align: center;
color: rgba(255, 255, 255, 0.87);
transform: translate(-0%, 100%);
}
.delete {
border-radius: 32px;
background: rgba(255, 200, 78, 0.06);
display: inline-block;
width: 152rpx;
height: 60rpx;
text-align: center;
line-height: 60rpx;
color: rgba(224, 52, 52, 1);
cursor: pointer;
}
.IMG {
width: 120rpx;
height: 100rpx;
margin-left: 17%;
}
.title {
font-size: 18px;
color: white;
}
.device-info {
width: 100%;
padding: 10px;
background: rgba(26, 26, 26, 1);
border-radius: 16rpx;
}
/* 遮罩层 */
.agreement-mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.popup-Title {
color: rgba(255, 255, 255, 0.86);
text-align: center;
padding: 30rpx 0rpx;
}
.popup-buttons {
display: flex;
text-align: center;
}
/* 弹窗主体 */
.agreement-popup {
width: 60%;
background: rgba(56, 57, 52, 0.4);
border-radius: 40rpx;
padding: 30rpx;
text-align: center;
border: 1px solid rgba(224, 52, 52, 0.3);
}
.svg {
width: 58rpx;
height: 58rpx;
}
/* 通用按钮样式 */
.btn {
height: 60rpx;
line-height: 60rpx;
border-radius: 40rpx;
font-size: 24rpx;
margin: 10rpx auto;
text-align: center;
}
/* 同意按钮 */
.agreeBtn {
background: rgba(224, 52, 52, 1);
color: rgba(255, 255, 255, 0.87);
border: none;
width: 170rpx !important;
}
</style>

View File

@ -1,421 +0,0 @@
<template>
<view class="container">
<!-- 设备信息 -->
<view class="device-info">
<view class="device-header">
<view class="deviceIMG">
<image :src="itemInfo.devicePic" mode="aspectFit" class="IMG"></image>
</view>
<view class="device-name">
<view>设备:{{itemInfo.deviceName}}</view>
<view class="ID">
<view class="ID">ID: {{itemInfo.deviceImei}}
</view>
</view>
</view>
</view>
</view>
<!-- 功能权限 -->
<view class="permissions">
<view class="permissions-title">功能权限</view>
<view :checked="allSelected" class="allSelect" @click="toggleAllSelection()">全选</view>
<text class="permissions-title"></text>
<view class="permission-item" v-for="(item, index) in permissions" :key="index"
@click="toggleSelection(index)">
<view class="checkbox" :class="{ checked: item.checked }">
<uni-icons v-if="item.checked" type="checkmarkempty" size="18" color="rgb(0, 0, 0)"></uni-icons>
</view>
<view> {{ item.label }}</view>
</view>
</view>
<!-- 被分享人信息 -->
<view class="recipient-info">
<view class="recipient-title">被分享人信息</view>
<input type="number" v-model="phone" placeholder="输入手机号" class="phone-input" :maxlength="11" />
<view class="verification-code">
<input type="number" v-model="code" placeholder="短信验证码" class="code-input" :maxlength="6" />
<view class="get-code-btn" :class="showView?' get_phone_number blue':'get_phone_number grad'"
@click="getPhoneCode">{{ isCounting ? `${countdown}s后重新获取` : '获取验证码' }}</view>
</view>
</view>
<!-- 分享按钮 -->
<button class="share-btn" @click="shareUp">分享</button>
<!-- 分享弹框 -->
<view class="agreement-mask" v-if="shareShow" @click="closePopup('share')">
<view class="agreement-popup" @click.stop>
<view class="popup-content">
<image src="/static/images/common/success.png" mode="aspectFit" class="svg"></image>
<view>
<view class="popup-Title">设备分享成功</view>
</view>
</view>
<!-- 按钮组 -->
<view class="popup-buttons">
<button class="btn agreeBtn" @click="handleBtn">确定</button>
</view>
</view>
</view>
</view>
</template>
<script>
import {
deviceShareId,
deviceShareCode,
deviceShareAdd
} from '@/api/6170/share.js'
import Common from '@/utils/Common.js'
export default {
data() {
return {
allSelected: false,
shareShow: false,
showView: false,
isCounting: false,
countdown: 0,
permissions: [],//分享的权限先从Common.js中取后续可能改成从接口取
deviceInfo: {},
phone: '',
code: '',
itemInfo: ''
};
},
methods: {
closePopup() {
this.shareShow = false
},
toggleAllSelection() {
this.allSelected = !this.allSelected;
this.permissions.forEach(permission => permission.checked = this.allSelected);
},
toggleSelection(index) {
this.$set(this.permissions[index], 'checked', !this.permissions[index].checked);
this.allSelected = this.permissions.every(permission => permission.checked);
},
// 获取验证码
async getPhoneCode() {
const phoneNumber = this.phone
const myreg = /^1[3456789]\d{9}$/;
if (!phoneNumber) {
uni.showToast({
title: '手机号不能为空',
icon: 'none',
duration: 1000
});
return false;
} else if (!myreg.test(phoneNumber)) {
uni.showToast({
title: '请输入正确的手机号',
icon: 'none',
duration: 1000
});
return false;
}
try {
await deviceShareCode({
phonenumber: this.phone
})
// 更新倒计时状态
this.isCounting = true;
this.showView = true;
this.countdown = 60
const timer = setInterval(() => {
this.countdown--
if (this.countdown <= 0) {
clearInterval(timer)
this.isCounting = false;
this.showView = false;
}
}, 1000)
uni.showToast({
title: '验证码已发送',
icon: 'none'
})
} catch (error) {}
},
// 分享按钮提交
async shareUp() {
if (this.phone == '') {
uni.showToast({
title: '手机号不能为空',
icon: 'none',
duration: 1000
})
return false
} else if (this.code == '') {
uni.showToast({
title: '验证码不能为空',
icon: 'none',
duration: 1000
})
return false
}else if (!this.permissions.some(permission => permission.checked)) {
uni.showToast({
title: '请选择至少一个功能权限',
icon: 'none',
duration: 1000
});
return false;
}
try {
uni.showLoading({
title: '分享中'
});
debugger;
console.log("iteminfo=",this.itemInfo)
const selectedPermissions = this.permissions.filter(permission => permission.checked).map(
permission =>
permission.value);
const res = await deviceShareAdd({
phonenumber: this.phone,
smsCode: this.code,
deviceId: this.itemInfo.id,
permission: selectedPermissions.join(',')
})
if (res.code == 200) {
this.shareShow = true
uni.hideLoading()
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
} catch (error) {
uni.showToast({
title: error.msg,
icon: 'none'
});
}
},
handleBtn() {
this.shareShow = false
uni.navigateBack({
delta:3
});
},
},
onLoad() {
const eventChannel = this.getOpenerEventChannel();
// 监听 'shareDevice' 事件,获取传过来的数据
eventChannel.on('shareDevice', (data) => {
console.log('收到数据:',data);
this.itemInfo = data.data;
this.permissions=Common.getPermissions(this.itemInfo.persissonType);
})
}
};
</script>
<style scoped>
.container {
width: 100%;
background: #121212;
min-height: 100vh;
padding: 30rpx;
}
.device-header {
display: flex;
align-items: center;
margin-bottom: 15rpx;
}
.device-name {
font-size: 32rpx;
color: rgba(255, 255, 255, 0.87);
margin-left: 25rpx;
line-height: 50rpx;
white-space: nowrap;
}
.ID {
color: rgba(255, 255, 255, 0.6);
font-size: 26rpx;
display: flex;
justify-content: space-between;
position: relative;
}
.device-info {
font-size: 28rpx;
color: rgba(255, 255, 255, 0.87);
padding-top: 10rpx;
position: relative;
}
.deviceIMG {
width: 100rpx;
height: 100rpx;
border-radius: 16rpx;
position: relative;
background-color: rgba(42, 42, 42, 0.6);
display: flex;
align-items: center;
}
.IMG {
width: 68rpx;
height: 50rpx;
margin-left: 17%;
}
.title {
font-size: 18px;
color: white;
}
.device-info {
width: 100%;
padding: 10px;
border-bottom: 1rpx solid rgba(255, 255, 255, 0.06);
}
.allSelect {
color: rgba(255, 255, 255, 0.87);
float: right;
}
.device-icon {
width: 30px;
height: 30px;
}
.device-id,
.device-serial {
color: white;
}
.permissions {
width: 100%;
margin-top: 20px;
padding: 10px;
border-bottom: 1rpx solid rgba(255, 255, 255, 0.06);
}
.permissions-title {
color: rgba(255, 255, 255, 0.87);
font-size: 30rpx;
/* padding: 30rpx 0rpx; */
}
.checkbox {
width: 40rpx;
height: 40rpx;
border: 2rpx solid rgba(255, 255, 255, 0.5);
margin-right:30rpx;
border-radius: 4rpx;
display: flex;
align-items: center;
justify-content: center;
}
.checkbox.checked {
background-color: rgb(187, 230, 0);
border-color: rgb(187, 230, 0);
}
.permission-item {
margin-top:35rpx;
display: flex;
color: rgba(255, 255, 255, 0.87);
line-height: 60rpx;
align-items: center;
cursor: pointer;
}
.recipient-info {
width: 100%;
margin-top: 20px;
padding: 10px;
border-radius: 5px;
}
.recipient-title {
color: rgba(255, 255, 255, 0.87);
font-size: 30rpx;
}
.phone-input {
width: 100%;
margin-top: 20rpx;
padding: 40rpx 0;
border-bottom: 1rpx solid rgba(255, 255, 255, 0.06);
color: rgba(255, 255, 255, 0.87);
}
.verification-code {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1rpx solid rgba(255, 255, 255, 0.06);
padding: 40rpx 0;
color: rgba(255, 255, 255, 0.87);
}
.get-code-btn {
margin-top: 10px;
background-color: transparent;
color: rgba(255, 255, 255, 0.87);
font-size: 30rpx;
white-space: nowrap;
}
.share-btn {
margin-top: 20px;
width: 100%;
padding: 5rpx;
border-radius: 91rpx;
background: rgba(187, 230, 0, 1);
}
/* 遮罩层 */
.agreement-mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.popup-Title {
color: rgba(255, 255, 255, 0.86);
text-align: center;
padding: 30rpx 0rpx;
}
.popup-buttons {
display: flex;
text-align: center;
}
/* 弹窗主体 */
.agreement-popup {
width: 60%;
background: rgba(56, 57, 52, 0.4);
border-radius: 40rpx;
padding: 30rpx;
text-align: center;
border: 1px solid rgba(187, 230, 0, 0.3);
}
.svg {
width: 58rpx;
height:58rpx;
}
/* 通用按钮样式 */
.btn {
height: 60rpx;
line-height: 60rpx;
border-radius: 40rpx;
font-size: 24rpx;
margin: 10rpx auto;
text-align: center;
}
/* 同意按钮 */
.agreeBtn {
background: rgba(187, 230, 0, 1);
color: #232323;
border: none;
width: 170rpx !important;
}
</style>

View File

@ -140,7 +140,8 @@
// 跳转到详情页面
handleFile(item) {
uni.navigateTo({
url: "/pages/6170/deviceControl/index",
// url: "/pages/6170/deviceControl/index",
url:'/pages/670/HBY670',
success: (res) => {
// 页面跳转成功后的回调函数
res.eventChannel.emit('detailData', {

View File

@ -227,7 +227,7 @@
break;
case 'share':
uni.navigateTo({
url: "/pages/6170/allShare/index"
url: "/pages/common/allShare/index"
})
break;
}

View File

@ -1,98 +1,98 @@
<template>
<view class="share">
<!-- 内容区域 -->
<view class="content">
<!-- 分享设备 -->
<view class="section" @click="shareDevice">
<text class="section-title">分享设备</text>
</view>
<!-- 分享管理 -->
<view class="section" @click="shareManagement">
<text class="section-title">分享管理</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
itemInfo:""
}
},
methods: {
// 分享设备
shareDevice(){
uni.navigateTo({
url: '/pages/common/shareDevices/index',
events: {
ack: function(data) {}
},
success: (res) => {
res.eventChannel.emit('shareDevice', {
data: this.itemInfo,
});
}
});
},
// 分享管理
shareManagement(){
uni.navigateTo({
url: '/pages/common/shareManagement/index',
events: {
ack: function(data) {}
},
success: (res) => {
res.eventChannel.emit('shareManagement', {
data: this.itemInfo,
});
}
});
}
},
onLoad() {
const eventChannel = this.getOpenerEventChannel();
// 监听 'shareDevice' 事件,获取传过来的数据
eventChannel.on('share', (data) => {
console.log(data,'datat');
this.itemInfo = data.data;
})
}
}
</script>
<style scoped>
.share {
padding: 30rpx;
background: #121212;
min-height: 100vh;
}
.status-bar {
/* 根据实际情况设置状态栏高度 */
width: 100%;
height: 20px;
background-color: #f3f3f3;
}
.title {
font-size: 20px;
margin-top: 10px;
}
.content {
width: 100%;
margin-top: 20px;
}
.section {
margin-bottom: 20px;
padding:50rpx;
border-radius: 16rpx;
background: rgba(26, 26, 26, 1);
text-align: center;
color: rgba(255, 255, 255, 0.87);
width: 100%;
}
<template>
<view class="share">
<!-- 内容区域 -->
<view class="content">
<!-- 分享设备 -->
<view class="section" @click="shareDevice">
<text class="section-title">分享设备</text>
</view>
<!-- 分享管理 -->
<view class="section" @click="shareManagement">
<text class="section-title">分享管理</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
itemInfo:""
}
},
methods: {
// 分享设备
shareDevice(){
uni.navigateTo({
url: '/pages/common/shareDevices/index',
events: {
ack: function(data) {}
},
success: (res) => {
res.eventChannel.emit('shareDevice', {
data: this.itemInfo,
});
}
});
},
// 分享管理
shareManagement(){
uni.navigateTo({
url: '/pages/common/shareManagement/index',
events: {
ack: function(data) {}
},
success: (res) => {
res.eventChannel.emit('shareManagement', {
data: this.itemInfo,
});
}
});
}
},
onLoad() {
const eventChannel = this.getOpenerEventChannel();
// 监听 'shareDevice' 事件,获取传过来的数据
eventChannel.on('share', (data) => {
console.log(data,'datat');
this.itemInfo = data.data;
})
}
}
</script>
<style scoped>
.share {
padding: 30rpx;
background: #121212;
min-height: 100vh;
}
.status-bar {
/* 根据实际情况设置状态栏高度 */
width: 100%;
height: 20px;
background-color: #f3f3f3;
}
.title {
font-size: 20px;
margin-top: 10px;
}
.content {
width: 100%;
margin-top: 20px;
}
.section {
margin-bottom: 20px;
padding:50rpx;
border-radius: 16rpx;
background: rgba(26, 26, 26, 1);
text-align: center;
color: rgba(255, 255, 255, 0.87);
width: 100%;
}
</style>

View File

@ -69,6 +69,7 @@
deviceShareCode,
deviceShareAdd
} from '@/api/6170/share.js'
import Common from '@/utils/Common.js'
export default {
data() {
return {
@ -199,12 +200,13 @@
const selectedPermissions = this.permissions.filter(permission => permission.checked).map(
permission =>
permission.value);
const res = await deviceShareAdd({
phonenumber: this.phone,
smsCode: this.code,
deviceId: this.itemInfo.id,
permission: selectedPermissions.join(',')
})
// const res = await deviceShareAdd({
// phonenumber: this.phone,
// smsCode: this.code,
// deviceId: this.itemInfo.id,
// permission: selectedPermissions.join(',')
// })
let res={code:200};
if (res.code == 200) {
this.shareShow = true
uni.hideLoading()
@ -237,6 +239,7 @@
eventChannel.on('shareDevice', (data) => {
console.log(data, 'data1t111');
this.itemInfo = data.data;
this.permissions=Common.getPermissions(this.itemInfo.persissonType);
})
}
};