调试预警信息推送接口

This commit is contained in:
BianLzhaoMin 2024-08-13 19:07:43 +08:00
parent 30542baa34
commit 95aa4f4a03
9 changed files with 19365 additions and 7860 deletions

View File

@ -80,6 +80,14 @@ const index = {
header header
) )
}, },
async alarmPush(data = {}, header = {}) {
return await Http.get(
HttpConfig.materialPath,
HttpConfig.serviceUrl.index.alarmPush,
data,
header
)
},
async fetchCompanyName(data = {}, header = {}) { async fetchCompanyName(data = {}, header = {}) {
return await Http.get( return await Http.get(
HttpConfig.systemPath, HttpConfig.systemPath,

View File

@ -6,7 +6,7 @@ class HttpConfig {
// baseUrl = "http://112.29.103.165:21624" // baseUrl = "http://112.29.103.165:21624"
// baseUrl = "http://192.168.0.14:21624" // baseUrl = "http://192.168.0.14:21624"
// baseUrl = "http://192.168.0.56:21626" // baseUrl = "http://192.168.0.56:21626"
baseUrl = "http://192.168.0.14:18866" baseUrl = "http://192.168.2.216:49080"
// baseUrl = "http://112.29.103.165:21626" // baseUrl = "http://112.29.103.165:21626"
// baseUrl = "http://172.20.10.3:8080" // baseUrl = "http://172.20.10.3:8080"
// baseUrl = "http://10.40.92.9:8080" // baseUrl = "http://10.40.92.9:8080"
@ -17,14 +17,14 @@ class HttpConfig {
// baseUrl = "https://z.csgmall.com.cn/gl" // baseUrl = "https://z.csgmall.com.cn/gl"
// #endif // #endif
// 基地址 // 基地址
authPath = `${this.baseUrl}/dev-api/auth` // authPath = `${this.baseUrl}/dev-api/auth`
systemPath = `${this.baseUrl}/dev-api/system` // systemPath = `${this.baseUrl}/dev-api/system`
basePath = `${this.baseUrl}/dev-api/base` // basePath = `${this.baseUrl}/dev-api/base`
materialPath = `${this.baseUrl}/dev-api/material` // materialPath = `${this.baseUrl}/dev-api/material`
/* authPath = `${this.baseUrl}/auth` authPath = `${this.baseUrl}/auth`
systemPath = `${this.baseUrl}/system` systemPath = `${this.baseUrl}/system`
basePath = `${this.baseUrl}/base` basePath = `${this.baseUrl}/material/base`
materialPath = `${this.baseUrl}/material` */ materialPath = `${this.baseUrl}/material`
// 短链 // 短链
serviceUrl = { serviceUrl = {
login: { login: {
@ -42,6 +42,7 @@ class HttpConfig {
keyData: '/app/getCriticalData', // 获取关键数据 keyData: '/app/getCriticalData', // 获取关键数据
getUserInfo: '/user/getInfo', // 获取用户信息 getUserInfo: '/user/getInfo', // 获取用户信息
fetchCompanyName: '/dept/getCompanyByAncestors', // 获取公司名称 fetchCompanyName: '/dept/getCompanyByAncestors', // 获取公司名称
alarmPush: '/iotMachine/alarmPush'
}, },
fetchMaterial: { fetchMaterial: {
fetchMaterialList: '/type/selectMaTypeListByLevelIndex', // 获取设备列表 fetchMaterialList: '/type/selectMaTypeListByLevelIndex', // 获取设备列表

View File

@ -22,7 +22,8 @@
/* */ /* */
"modules" : { "modules" : {
"Camera" : {}, "Camera" : {},
"Barcode" : {} "Barcode" : {},
"Push" : {}
}, },
/* */ /* */
"distribute" : { "distribute" : {
@ -62,7 +63,13 @@
}, },
/* SDK */ /* SDK */
"sdkConfigs" : { "sdkConfigs" : {
"ad" : {} "ad" : {},
"push" : {
"unipush" : {
"version" : "2",
"offline" : false
}
}
}, },
"icons" : { "icons" : {
"android" : { "android" : {

View File

@ -31,8 +31,7 @@
<view <view
v-for="(part, index) in isUsingList" v-for="(part, index) in isUsingList"
:key="index" :key="index"
@click="jumpUrl(part.iconMark)" @click="jumpUrl(part.iconMark)">
>
<image :src="`/static/${part.iconMark}.png`" mode=""></image> <image :src="`/static/${part.iconMark}.png`" mode=""></image>
<span>{{ part.iconName }}</span> <span>{{ part.iconName }}</span>
</view> </view>
@ -45,7 +44,7 @@
<span>退料申请</span> <span>退料申请</span>
</view> --> </view> -->
</view> </view>
<h4 style="width: 90%; margin: 3vh auto;">待办事项</h4> <h4 style="width: 90%; margin: 3vh auto">待办事项</h4>
<view class="wait-do"> <view class="wait-do">
<view class="llsp" @click="jumpUrl('fetchExam')"> <view class="llsp" @click="jumpUrl('fetchExam')">
<h4>{{ waitList.leaseNum }}</h4> <h4>{{ waitList.leaseNum }}</h4>
@ -64,16 +63,26 @@
<h5>维修待审核</h5> <h5>维修待审核</h5>
</view> </view>
</view> </view>
<h4 style="width: 90%; margin: 3vh auto; display: flex; justify-content: space-between; align-items: center;"> <h4
style="
width: 90%;
margin: 3vh auto;
display: flex;
justify-content: space-between;
align-items: center;
">
<span>通知公告</span> <span>通知公告</span>
<text @click="seeMore" style="color: #5297FF; font-weight: normal; font-size: 12px;">查看更多>></text> <text
@click="seeMore"
style="color: #5297ff; font-weight: normal; font-size: 12px"
>查看更多>></text
>
</h4> </h4>
<view <view
class="single-notice" class="single-notice"
v-for="(notice, index) in noticeList" v-for="(notice, index) in noticeList"
:key="index" :key="index"
@click="noticeDetail(notice.noticeId)" @click="noticeDetail(notice.noticeId)">
>
<view class="notice-lef"> <view class="notice-lef">
<image src="/static/notice.png" mode=""></image> <image src="/static/notice.png" mode=""></image>
</view> </view>
@ -82,215 +91,261 @@
<h5>{{ notice.createTime }}</h5> <h5>{{ notice.createTime }}</h5>
</view> </view>
</view> </view>
<u-loading-page :loading="showLoading" color="#000" :loading-text="`下载中,请稍后...${percent}%`"></u-loading-page> <u-loading-page
:loading="showLoading"
color="#000"
:loading-text="`下载中,请稍后...${percent}%`"></u-loading-page>
</view> </view>
</template> </template>
<script> <script>
import { authPath, basePath, publicPath, systemPath } from '../../public'; import { authPath, basePath, publicPath, systemPath } from "../../public";
export default { export default {
data() { data() {
return { return {
showLoading: false, showLoading: false,
username: uni.getStorageSync('userInfo').username, username: uni.getStorageSync("userInfo").username,
noticeList: [], noticeList: [],
todayDatas: { todayDatas: {
dayLeaseNum: '', dayLeaseNum: "",
dayBackNum: '', dayBackNum: "",
dayInputNum: '', dayInputNum: "",
dayOutNum: '' dayOutNum: "",
}, },
waitList: { waitList: {
lldsp: '', lldsp: "",
tldsp: '', tldsp: "",
bfdsh: '', bfdsh: "",
sydsh: '' sydsh: "",
}, },
isUsingList: [], isUsingList: [],
percent: '' percent: "",
} };
}, },
methods: { methods: {
seeMore() { seeMore() {
uni.navigateTo({ uni.navigateTo({
url: '/pages/moreNotice/moreNotice' url: "/pages/moreNotice/moreNotice",
}) });
}, },
noticeDetail(id) { noticeDetail(id) {
console.log(id); console.log(id);
uni.navigateTo({ uni.navigateTo({
url: `/pages/noticeDetail/noticeDetail?noticeId=${id}` url: `/pages/noticeDetail/noticeDetail?noticeId=${id}`,
}) });
}, },
jumpUrl(path) { jumpUrl(path) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/${path}/${path}` url: `/pages/${path}/${path}`,
}) });
}, },
toast() { toast() {
uni.showToast({ uni.showToast({
icon: 'none', icon: "none",
title: '敬请期待!' title: "敬请期待!",
}) });
}
}, },
onReady() {
}, },
onReady() {},
onLoad() { onLoad() {
let that = this let that = this;
let nowVer = '' let nowVer = "";
let serveVer = '' let serveVer = "";
let apkPath = '' let apkPath = "";
// app // app
plus.runtime.getProperty(plus.runtime.appid, (info) => { plus.runtime.getProperty(plus.runtime.appid, (info) => {
nowVer = info.version.replace(/\./g, '') nowVer = info.version.replace(/\./g, "");
}) });
// app // app
this.$api.update.fetchAppVer().then(res => { this.$api.update
.fetchAppVer()
.then((res) => {
console.log(res); console.log(res);
if (res.data.code == 200) { if (res.data.code == 200) {
serveVer = res.data.data[0].versionName.replace(/\./g, '') serveVer = res.data.data[0].versionName.replace(
apkPath = res.data.data[0].apkPath /\./g,
""
);
apkPath = res.data.data[0].apkPath;
// //
setTimeout(() => { setTimeout(() => {
console.log(nowVer, serveVer, apkPath); console.log(nowVer, serveVer, apkPath);
if (nowVer < serveVer) { if (nowVer < serveVer) {
uni.showModal({ uni.showModal({
title: '版本升级', title: "版本升级",
content: '当前版本非最新版本,请前往升级!', content: "当前版本非最新版本,请前往升级!",
showCancel: false, showCancel: false,
confirmText: '升级', confirmText: "升级",
success: (res) => { success: (res) => {
if (res.confirm) { if (res.confirm) {
that.showLoading = true that.showLoading = true;
uni.hideTabBar() uni.hideTabBar();
let downloadApk = uni.downloadFile({ let downloadApk = uni.downloadFile({
url: apkPath, url: apkPath,
success: (download) => { success: (download) => {
console.log(download); console.log(download);
if (download.statusCode == 200) { if (
plus.runtime.install(download.tempFilePath, { download.statusCode ==
force: true 200
}, (install) => { ) {
that.showLoading = false plus.runtime.install(
uni.showTabBar() download.tempFilePath,
console.log(install); {
}) force: true,
},
(install) => {
that.showLoading = false;
uni.showTabBar();
console.log(
install
);
}
);
} else { } else {
uni.showTabBar() uni.showTabBar();
that.showLoading = false that.showLoading = false;
uni.showToast({ uni.showToast({
icon: 'none', icon: "none",
title: '下载异常,请稍后再试!' title: "下载异常,请稍后再试!",
}) });
} }
},
});
downloadApk.onProgressUpdate(
(res) => {
that.percent = res.progress;
}
);
}
},
});
}
}, 500);
} }
}) })
downloadApk.onProgressUpdate(res => { .catch((err) => {
that.percent = res.progress
})
}
}
})
}
}, 500)
}
}).catch(err => {
console.log(err); console.log(err);
}) });
}, },
onShow() { onShow() {
console.log(uni.getStorageSync('token')); console.log(uni.getStorageSync("token"));
console.log(uni.getStorageSync('userInfo')); console.log(uni.getStorageSync("userInfo"));
let that = this let that = this;
that.noticeList = [] that.noticeList = [];
// //
that.$api.index.noticeCont().then(res => { that.$api.index
.noticeCont()
.then((res) => {
console.log(res); console.log(res);
if (res.data.code == 200) { if (res.data.code == 200) {
that.noticeList = res.data.data.slice(0, 5) that.noticeList = res.data.data.slice(0, 5);
} else if (res.data.code == 401) { } else if (res.data.code == 401) {
uni.showToast({ uni.showToast({
icon: 'none', icon: "none",
title: '登录状态已过期,请重新登录!', title: "登录状态已过期,请重新登录!",
success: () => { success: () => {
uni.removeStorageSync('token') uni.removeStorageSync("token");
uni.removeStorageSync('userInfo') uni.removeStorageSync("userInfo");
uni.reLaunch({ uni.reLaunch({
url: '/pages/login/login' url: "/pages/login/login",
}) });
},
});
} }
}) })
} .catch((err) => {
}).catch(err => {
console.log(err); console.log(err);
}) });
// //
that.$api.index.waitDo().then(res => { that.$api.index
.waitDo()
.then((res) => {
console.log(res); console.log(res);
if (res.data.code == 200) { if (res.data.code == 200) {
that.waitList = res.data.data that.waitList = res.data.data;
} }
}).catch(err => {
console.log(err);
}) })
.catch((err) => {
console.log(err);
});
// //
that.$api.index.keyData().then(res => { that.$api.index
.keyData()
.then((res) => {
console.log(res); console.log(res);
if (res.data.code == 200) { if (res.data.code == 200) {
that.todayDatas = res.data.data that.todayDatas = res.data.data;
} }
}).catch(err => {
console.log(err);
}) })
.catch((err) => {
console.log(err);
});
// //
that.$api.authManage.fetchIsUsing({ that.$api.authManage
userId: uni.getStorageSync('userInfo').userid .fetchIsUsing({
}).then(res => { userId: uni.getStorageSync("userInfo").userid,
})
.then((res) => {
console.log(res); console.log(res);
if (res.data.code == 200) { if (res.data.code == 200) {
that.isUsingList = res.data.data that.isUsingList = res.data.data;
console.log(that.isUsingList); console.log(that.isUsingList);
} }
}).catch(err => {
console.log(err);
}) })
.catch((err) => {
console.log(err);
});
// //
that.$api.index.fetchCompanyName({ that.$api.index
ancestors: uni.getStorageSync('userInfo').sysUser.dept.ancestors .fetchCompanyName({
}).then(res => { ancestors:
console.log(res); uni.getStorageSync("userInfo").sysUser.dept.ancestors,
if (res.data.code == 200) uni.setStorageSync('companyName', res.data.msg)
}).catch(err => {
console.log(err);
}) })
.then((res) => {
console.log(res);
if (res.data.code == 200)
uni.setStorageSync("companyName", res.data.msg);
})
.catch((err) => {
console.log(err);
});
//
that.$api.index.alarmPush().then((res) => {
console.log(res, "推送结果---");
if (res.data.data == 1) {
// uni.showToast({
// icon: "none",
// title: "",
// });
}
});
}, },
onNavigationBarButtonTap(e) { onNavigationBarButtonTap(e) {
console.log(e); console.log(e);
if (e.text == '权限') { if (e.text == "权限") {
uni.navigateTo({ uni.navigateTo({
url: '/pages/authManage/authManage' url: "/pages/authManage/authManage",
}) });
} else if (e.text == '扫一扫') { } else if (e.text == "扫一扫") {
uni.scanCode({ uni.scanCode({
success: (res) => { success: (res) => {
console.log(res); console.log(res);
const fixedRes = res.result.split('=')[1] const fixedRes = res.result.split("=")[1];
console.log(fixedRes); console.log(fixedRes);
uni.navigateTo({ uni.navigateTo({
url: `/pages/indexScan/indexScan?scan=${fixedRes}` url: `/pages/indexScan/indexScan?scan=${fixedRes}`,
}) });
} },
}) });
}
}
} }
},
};
</script> </script>
<style lang="scss"> <style lang="scss">
body { body {
background: url('/static/bgd.png'); background: url("/static/bgd.png");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
@ -339,13 +394,13 @@ import { authPath, basePath, publicPath, systemPath } from '../../public';
border-radius: 15rpx 15rpx 0 0; border-radius: 15rpx 15rpx 0 0;
background: rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(2px); backdrop-filter: blur(2px);
border: 1px solid #B3D3FF; border: 1px solid #b3d3ff;
padding: 1.3vh 0; padding: 1.3vh 0;
display: flex; display: flex;
view { view {
width: 25%; width: 25%;
height: 100%; height: 100%;
border-right: 1px solid #CDE2FF; border-right: 1px solid #cde2ff;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-around; justify-content: space-around;
@ -408,22 +463,22 @@ import { authPath, basePath, publicPath, systemPath } from '../../public';
} }
} }
.llsp { .llsp {
background: url('/static/llsp.png'); background: url("/static/llsp.png");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.tlsp { .tlsp {
background: url('/static/tlsp.png'); background: url("/static/tlsp.png");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.bfsh { .bfsh {
background: url('/static/bfsh.png'); background: url("/static/bfsh.png");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.sysh { .sysh {
background: url('/static/sysh.png'); background: url("/static/sysh.png");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
@ -431,7 +486,7 @@ import { authPath, basePath, publicPath, systemPath } from '../../public';
.single-notice { .single-notice {
width: 100%; width: 100%;
margin: 0 auto; margin: 0 auto;
border-bottom: 1px solid #DEE3EA; border-bottom: 1px solid #dee3ea;
box-sizing: border-box; box-sizing: border-box;
padding: 20rpx 5%; padding: 20rpx 5%;
display: flex; display: flex;
@ -458,7 +513,7 @@ import { authPath, basePath, publicPath, systemPath } from '../../public';
} }
h5 { h5 {
font-size: 12px; font-size: 12px;
color: #8F9298; color: #8f9298;
font-weight: normal; font-weight: normal;
} }
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__9D122E1","name":"智慧仓储","version":{"name":"1.1.0","code":110},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Camera":{},"Barcode":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"compatible":{"ignoreVersion":true},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"hdpi":"unpackage/res/icons/72x72.png","xhdpi":"unpackage/res/icons/96x96.png","xxhdpi":"unpackage/res/icons/144x144.png","xxxhdpi":"unpackage/res/icons/192x192.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"}}},"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"]},"apple":{"dSYMs":false,"idfa":false,"privacyDescription":{"NSPhotoLibraryUsageDescription":"该应用上传照片信息时需要访问您的相册","NSPhotoLibraryAddUsageDescription":"该应用上传照片信息时需要访问您的相册","NSCameraUsageDescription":"该应用需要扫描二维码或拍照,是否允许打开相机","NSMicrophoneUsageDescription":"该应用需要使用您的麦克风,以便视频录音","NSLocationWhenInUseUsageDescription":"该应用需要使用您的地理位置,以便为您提供当前位置信息","NSLocationAlwaysUsageDescription":"该应用需要使用您的地理位置,以便为您提供当前位置信息","NSLocationAlwaysAndWhenInUseUsageDescription":"该应用需要使用您的地理位置,以便为您提供当前位置信息"}},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"nativePlugins":{"BNS-RfidRed":{"__plugin_info__":{"name":"BNS-RfidRed","description":"BNS-RfidRed","platforms":"Android","url":"","android_package_name":"","ios_bundle_id":"","isCloud":false,"bought":-1,"pid":"","parameters":{}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#FFFFFF","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"4.23","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#2c2c2c","selectedColor":"#1296db","borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#FFFFFF","iconWidth":"24px","list":[{"pagePath":"pages/index/index","iconPath":"static/home.png","selectedIconPath":"static/homeSelected.png","text":"首页"},{"pagePath":"pages/workSpace/workSpace","iconPath":"static/workSpace.png","selectedIconPath":"static/workSpaceSelected.png","text":"工作台"},{"pagePath":"pages/user/user","iconPath":"static/my.png","selectedIconPath":"static/mySelected.png","text":"个人中心"}],"height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}} {"@platforms":["android","iPhone","iPad"],"id":"__UNI__9D122E1","name":"智慧仓储","version":{"name":"1.1.0","code":110},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Camera":{},"Barcode":{},"Push":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"compatible":{"ignoreVersion":true},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"hdpi":"unpackage/res/icons/72x72.png","xhdpi":"unpackage/res/icons/96x96.png","xxhdpi":"unpackage/res/icons/144x144.png","xxxhdpi":"unpackage/res/icons/192x192.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"}}},"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"]},"apple":{"dSYMs":false,"idfa":false,"privacyDescription":{"NSPhotoLibraryUsageDescription":"该应用上传照片信息时需要访问您的相册","NSPhotoLibraryAddUsageDescription":"该应用上传照片信息时需要访问您的相册","NSCameraUsageDescription":"该应用需要扫描二维码或拍照,是否允许打开相机","NSMicrophoneUsageDescription":"该应用需要使用您的麦克风,以便视频录音","NSLocationWhenInUseUsageDescription":"该应用需要使用您的地理位置,以便为您提供当前位置信息","NSLocationAlwaysUsageDescription":"该应用需要使用您的地理位置,以便为您提供当前位置信息","NSLocationAlwaysAndWhenInUseUsageDescription":"该应用需要使用您的地理位置,以便为您提供当前位置信息"}},"plugins":{"ad":{},"push":{"unipush":{"version":"2","offline":false}},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"nativePlugins":{"BNS-RfidRed":{"__plugin_info__":{"name":"BNS-RfidRed","description":"BNS-RfidRed","platforms":"Android","url":"","android_package_name":"","ios_bundle_id":"","isCloud":false,"bought":-1,"pid":"","parameters":{}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#FFFFFF","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"4.24","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#2c2c2c","selectedColor":"#1296db","borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#FFFFFF","iconWidth":"24px","list":[{"pagePath":"pages/index/index","iconPath":"static/home.png","selectedIconPath":"static/homeSelected.png","text":"首页"},{"pagePath":"pages/workSpace/workSpace","iconPath":"static/workSpace.png","selectedIconPath":"static/workSpaceSelected.png","text":"工作台"},{"pagePath":"pages/user/user","iconPath":"static/my.png","selectedIconPath":"static/mySelected.png","text":"个人中心"}],"height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}