Merge branch 'master' into outside-the-system
# Conflicts: # config/index.js # manifest.json # unpackage/dist/build/app-plus/app-config-service.js # unpackage/dist/build/app-plus/app-service.js # unpackage/dist/build/app-plus/manifest.json # unpackage/dist/dev/app-plus/app-config-service.js # unpackage/dist/dev/app-plus/app-service.js # unpackage/dist/dev/app-plus/manifest.json
@ -10,10 +10,6 @@
|
|||||||
"default" : {
|
"default" : {
|
||||||
"launchtype" : "local"
|
"launchtype" : "local"
|
||||||
},
|
},
|
||||||
"h5" : {
|
|
||||||
"launchtype" : "local"
|
|
||||||
},
|
|
||||||
"provider" : "aliyun",
|
|
||||||
"type" : "uniCloud"
|
"type" : "uniCloud"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
44
App.vue
@ -1,40 +1,16 @@
|
|||||||
<script setup>
|
<script>
|
||||||
import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
|
export default {
|
||||||
/* import location from "./utils/location"; */
|
onLaunch: function() {
|
||||||
onLaunch(() => {
|
|
||||||
/* location.startLocationService((res)=>{
|
|
||||||
console.log(JSON.stringify(res),'JSON.stringify(res)');
|
|
||||||
uni.showToast({
|
|
||||||
duration:1000,
|
|
||||||
icon:'none',
|
|
||||||
title:JSON.stringify(res)
|
|
||||||
})
|
|
||||||
},()=>{
|
|
||||||
|
|
||||||
}) */
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
onShow(() => {
|
|
||||||
|
|
||||||
})
|
|
||||||
onHide(() => {
|
|
||||||
plus.geolocation.clearWatch(LocationId)
|
|
||||||
console.log("App Hide")
|
|
||||||
})
|
|
||||||
uni.getPushClientId({
|
|
||||||
success: (res) => {
|
|
||||||
let push_clientid = res.cid
|
|
||||||
console.log('客户端推送标识cid:',push_clientid)
|
|
||||||
},
|
},
|
||||||
fail(err) {
|
onShow: function() {
|
||||||
console.log(err)
|
console.log('App Show')
|
||||||
|
},
|
||||||
|
onHide: function() {
|
||||||
|
console.log('App Hide')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
uni.onPushMessage((res)=>{
|
|
||||||
console.log(JSON.stringify(res),);
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
/*每个页面公共css */
|
||||||
</style>
|
</style>
|
||||||
|
36
androidPrivacy.json
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"version" : "1",
|
||||||
|
"prompt" : "template",
|
||||||
|
"title" : "服务协议和隐私政策",
|
||||||
|
"message" : " 请你务必审慎阅读、充分理解“平台服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/> 你可阅读<a href=\"https://oa.szjixun.cn/#/pages/login/serveInfo\">《用户服务协议》</a>和<a href=\"https://oa.szjixun.cn/#/pages/login/privateInfo\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
|
||||||
|
"buttonAccept" : "同意并接受",
|
||||||
|
"buttonRefuse" : "不同意",
|
||||||
|
"second" : {
|
||||||
|
"title" : "确认提示",
|
||||||
|
"message" : " 进入应用前,你需先同意<a href=\"https://oa.szjixun.cn/#/pages/login/serveInfo\">《用户服务协议》</a>和<a href=\"https://oa.szjixun.cn/#/pages/login/privateInfo\">《隐私政策》</a>,否则将退出应用。",
|
||||||
|
"buttonAccept" : "同意并继续",
|
||||||
|
"buttonRefuse" : "退出应用"
|
||||||
|
},
|
||||||
|
"disagreeMode" : {
|
||||||
|
"support" : false,
|
||||||
|
"loadNativePlugins" : false,
|
||||||
|
"visitorEntry" : false,
|
||||||
|
"showAlways" : false
|
||||||
|
},
|
||||||
|
"styles" : {
|
||||||
|
"backgroundColor" : "#ffffff",
|
||||||
|
"borderRadius" : "5px",
|
||||||
|
"title" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonAccept" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonRefuse" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonVisitor" : {
|
||||||
|
"color" : "#009"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,25 +0,0 @@
|
|||||||
/* 非空验证 */
|
|
||||||
const vefEmpty = (key,msg) => {
|
|
||||||
if (key === '' || key === undefined || key === null) {
|
|
||||||
uni.showToast({
|
|
||||||
title: msg,
|
|
||||||
duration: 2000,
|
|
||||||
icon: 'none'
|
|
||||||
});
|
|
||||||
return false
|
|
||||||
} else {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const addZero = (num) => {
|
|
||||||
if (num < 10) {
|
|
||||||
num = `0${num}`;
|
|
||||||
}
|
|
||||||
return num;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default {
|
|
||||||
vefEmpty,
|
|
||||||
addZero
|
|
||||||
}
|
|
@ -1,17 +1,22 @@
|
|||||||
const env = 'dev';
|
const env = 'dev';
|
||||||
const configs = {
|
const configs = {
|
||||||
|
LocalTest: {
|
||||||
|
apiBaseUrl: 'https://warehouse.szjixun.cn/oa_backend',
|
||||||
|
h5Url:'http://192.168.88.53:8080/#/'
|
||||||
|
},
|
||||||
dev: {
|
dev: {
|
||||||
apiBaseUrl: 'https://warehouse.szjixun.cn/oa_backend',
|
apiBaseUrl: 'https://warehouse.szjixun.cn/oa_backend',
|
||||||
h5Url: 'http://192.168.88.49:8080/#/'
|
h5Url:'http://192.168.88.50:8080/#/'
|
||||||
},
|
},
|
||||||
test: {
|
test: {
|
||||||
apiBaseUrl: 'https://warehouse.szjixun.cn/oa_backend',
|
apiBaseUrl: 'https://warehouse.szjixun.cn/oa_backend',
|
||||||
h5Url: 'http://114.218.158.24:9051/#/'
|
h5Url:'http://114.218.158.24:8042/#/'
|
||||||
},
|
},
|
||||||
prod: {
|
prod: {
|
||||||
apiBaseUrl: 'https://oa-b.szjixun.cn/#/',
|
apiBaseUrl: 'https://oa-a.szjixun.cn/api',
|
||||||
h5Url: 'https://oa-b.szjixun.cn/#/'
|
h5Url:'https://oa-a.szjixun.cn/#/'
|
||||||
},
|
},
|
||||||
}
|
};
|
||||||
|
|
||||||
const config = configs[env];
|
const config = configs[env];
|
||||||
export default config;
|
export default config;
|
||||||
|
1
files/readme.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
@ -1,8 +1,13 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,viewport-fit=cover" />
|
<meta charset="UTF-8" />
|
||||||
<script>
|
<script>
|
||||||
|
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
|
||||||
|
CSS.supports('top: constant(a)'))
|
||||||
|
document.write(
|
||||||
|
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||||
|
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
|
||||||
</script>
|
</script>
|
||||||
<title></title>
|
<title></title>
|
||||||
<!--preload-links-->
|
<!--preload-links-->
|
||||||
|
@ -1,21 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name" : "泰丰考勤",
|
"name" : "OA系统",
|
||||||
"appid" : "__UNI__4796942",
|
"appid" : "__UNI__4796942",
|
||||||
"description" : "",
|
"description" : "",
|
||||||
"versionName" : "1.0.0",
|
"versionName" : "2.0.1",
|
||||||
"versionCode" : 100,
|
"versionCode" : 201,
|
||||||
"transformPx" : false,
|
"transformPx" : false,
|
||||||
/* 5+App特有相关 */
|
/* 5+App特有相关 */
|
||||||
"app-plus" : {
|
"app-plus" : {
|
||||||
"usingComponents" : true,
|
"usingComponents" : true,
|
||||||
"nvueStyleCompiler" : "uni-app",
|
"nvueStyleCompiler" : "uni-app",
|
||||||
"compilerVersion" : 3,
|
"compilerVersion" : 3,
|
||||||
"statusbar" : {
|
|
||||||
"immersed" : true
|
|
||||||
},
|
|
||||||
"navigationbar" : {
|
|
||||||
"hidden" : true
|
|
||||||
},
|
|
||||||
"splashscreen" : {
|
"splashscreen" : {
|
||||||
"alwaysShowBeforeRender" : true,
|
"alwaysShowBeforeRender" : true,
|
||||||
"waiting" : true,
|
"waiting" : true,
|
||||||
@ -25,7 +19,8 @@
|
|||||||
/* 模块配置 */
|
/* 模块配置 */
|
||||||
"modules" : {
|
"modules" : {
|
||||||
"Camera" : {},
|
"Camera" : {},
|
||||||
"Geolocation" : {}
|
"Geolocation" : {},
|
||||||
|
"Push" : {}
|
||||||
},
|
},
|
||||||
/* 应用发布信息 */
|
/* 应用发布信息 */
|
||||||
"distribute" : {
|
"distribute" : {
|
||||||
@ -88,6 +83,7 @@
|
|||||||
"version" : "2",
|
"version" : "2",
|
||||||
"offline" : true,
|
"offline" : true,
|
||||||
"hms" : {},
|
"hms" : {},
|
||||||
|
"oppo" : {},
|
||||||
"vivo" : {}
|
"vivo" : {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -125,10 +121,19 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"splashscreen" : {
|
"splashscreen" : {
|
||||||
"useOriginalMsgbox" : true
|
"useOriginalMsgbox" : true,
|
||||||
}
|
"androidStyle" : "default",
|
||||||
|
"android" : {
|
||||||
|
"hdpi" : "static/image/sy.png",
|
||||||
|
"xhdpi" : "static/image/sy.png",
|
||||||
|
"xxhdpi" : "static/image/sy.png"
|
||||||
},
|
},
|
||||||
"nativePlugins" : {}
|
"iosStyle" : "storyboard",
|
||||||
|
"ios" : {
|
||||||
|
"storyboard" : "files/CustomStoryboard.zip"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
/* 快应用特有相关 */
|
/* 快应用特有相关 */
|
||||||
"quickapp" : {},
|
"quickapp" : {},
|
||||||
|
15
pages.json
@ -3,15 +3,16 @@
|
|||||||
{
|
{
|
||||||
"path": "pages/index/index",
|
"path": "pages/index/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom",
|
"navigationBarTitleText": "uni-app",
|
||||||
|
"navigationStyle": "custom"
|
||||||
"app-plus": {
|
|
||||||
"titleNView": false
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
],
|
],
|
||||||
|
"globalStyle": {
|
||||||
|
"navigationBarTextStyle": "black",
|
||||||
|
"navigationBarTitleText": "uni-app",
|
||||||
|
"navigationBarBackgroundColor": "#F8F8F8",
|
||||||
|
"backgroundColor": "#F8F8F8"
|
||||||
|
},
|
||||||
"uniIdRouter": {}
|
"uniIdRouter": {}
|
||||||
}
|
}
|
||||||
|
90
pages/index/index.vue
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<template>
|
||||||
|
<web-view class="webview" @message="webLoad" style="flex: 1;" ref="webViewRef" :src="config.h5Url"></web-view>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import { ref } from 'vue'
|
||||||
|
import config from "../../config";
|
||||||
|
import { onShow, onHide } from "@dcloudio/uni-app";
|
||||||
|
/* import location from "../../utils/location"; */
|
||||||
|
/* import {
|
||||||
|
registerRequestPermissionTipsListener,
|
||||||
|
unregisterRequestPermissionTipsListener,
|
||||||
|
setRequestPermissionTips
|
||||||
|
} from "@/uni_modules/uni-registerRequestPermissionTips" */
|
||||||
|
/* plus.runtime.setBadgeNumber(999); */
|
||||||
|
|
||||||
|
/* const permissionListener = uni.createRequestPermissionListener();
|
||||||
|
permissionListener.onRequest((e)=>{
|
||||||
|
})
|
||||||
|
permissionListener.onConfirm((e) => {
|
||||||
|
sendWebWiew(webViewRef.value,{auth:e,open:true})
|
||||||
|
});
|
||||||
|
permissionListener.onComplete((e) => {
|
||||||
|
/* uni.showToast({
|
||||||
|
duration:1000000,
|
||||||
|
title:`${JSON.stringify(e)}1111${JSON.stringify(f)}`,
|
||||||
|
icon:'none'
|
||||||
|
}) */
|
||||||
|
/* sendWebWiew(webViewRef.value,{auth:e,open:false})
|
||||||
|
}); *!/*/
|
||||||
|
/* registerRequestPermissionTipsListener({
|
||||||
|
onRequest: (e) => {
|
||||||
|
console.log(e)
|
||||||
|
},
|
||||||
|
onConfirm: (e) => {
|
||||||
|
sendWebWiew(webViewRef.value,{auth:e,open:true})
|
||||||
|
},
|
||||||
|
onComplete: (e) => {
|
||||||
|
|
||||||
|
const arr=['android.permission.ACCESS_COARSE_LOCATION','android.permission.ACCESS_FINE_LOCATION','android.permission.ACCESS_LOCATION_EXTRA_COMMANDS','android.permission.ACCESS_MOCK_LOCATION']
|
||||||
|
const hasIntersection = Object.keys(e).some(item => new Set(arr).has(item));
|
||||||
|
uni.setSt
|
||||||
|
sendWebWiew(webViewRef.value,{auth:Object.keys(e),open:false})
|
||||||
|
}
|
||||||
|
})*/
|
||||||
|
//解决ios的h5问题,获取网络权限之后,重新加载
|
||||||
|
const networkStatusChange=(res)=>{
|
||||||
|
if(res.isConnected) {
|
||||||
|
uni.redirectTo({
|
||||||
|
url: '/pages/index/index'
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: '网络无连接',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const webViewObj=ref(null)
|
||||||
|
onShow(()=>{
|
||||||
|
uni.onNetworkStatusChange(networkStatusChange);
|
||||||
|
plus.push.getClientInfoAsync((info) => {
|
||||||
|
console.log('获取CID',info.clientid)
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
onHide(()=>{
|
||||||
|
uni.offNetworkStatusChange(networkStatusChange)
|
||||||
|
})
|
||||||
|
const webLoad=(e)=>{
|
||||||
|
|
||||||
|
const h5SendString=e.detail.data?.[0]?.action
|
||||||
|
switch (h5SendString) {
|
||||||
|
//webview初始化加载完成
|
||||||
|
case 'load-complete':{
|
||||||
|
|
||||||
|
const {statusBarHeight} = uni.getSystemInfoSync()
|
||||||
|
const currentWebview = getCurrentPages().pop().$getAppWebview()
|
||||||
|
webViewObj.value=currentWebview.children()[0]
|
||||||
|
webViewObj.value.setStyle({
|
||||||
|
top: statusBarHeight,
|
||||||
|
bottom: 0,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
@ -1,10 +0,0 @@
|
|||||||
uni.addInterceptor({
|
|
||||||
returnValue (res) {
|
|
||||||
if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
|
|
||||||
});
|
|
||||||
},
|
|
||||||
});
|
|
6
uni_modules/uni-config-center/changelog.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## 0.0.3(2022-11-11)
|
||||||
|
- 修复 config 方法获取根节点为数组格式配置时错误的转化为了对象的Bug
|
||||||
|
## 0.0.2(2021-04-16)
|
||||||
|
- 修改插件package信息
|
||||||
|
## 0.0.1(2021-03-15)
|
||||||
|
- 初始化项目
|
81
uni_modules/uni-config-center/package.json
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"id": "uni-config-center",
|
||||||
|
"displayName": "uni-config-center",
|
||||||
|
"version": "0.0.3",
|
||||||
|
"description": "uniCloud 配置中心",
|
||||||
|
"keywords": [
|
||||||
|
"配置",
|
||||||
|
"配置中心"
|
||||||
|
],
|
||||||
|
"repository": "",
|
||||||
|
"engines": {
|
||||||
|
"HBuilderX": "^3.1.0"
|
||||||
|
},
|
||||||
|
"dcloudext": {
|
||||||
|
"sale": {
|
||||||
|
"regular": {
|
||||||
|
"price": "0.00"
|
||||||
|
},
|
||||||
|
"sourcecode": {
|
||||||
|
"price": "0.00"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"contact": {
|
||||||
|
"qq": ""
|
||||||
|
},
|
||||||
|
"declaration": {
|
||||||
|
"ads": "无",
|
||||||
|
"data": "无",
|
||||||
|
"permissions": "无"
|
||||||
|
},
|
||||||
|
"npmurl": "",
|
||||||
|
"type": "unicloud-template-function"
|
||||||
|
},
|
||||||
|
"directories": {
|
||||||
|
"example": "../../../scripts/dist"
|
||||||
|
},
|
||||||
|
"uni_modules": {
|
||||||
|
"dependencies": [],
|
||||||
|
"encrypt": [],
|
||||||
|
"platforms": {
|
||||||
|
"cloud": {
|
||||||
|
"tcb": "y",
|
||||||
|
"aliyun": "y"
|
||||||
|
},
|
||||||
|
"client": {
|
||||||
|
"App": {
|
||||||
|
"app-vue": "u",
|
||||||
|
"app-nvue": "u"
|
||||||
|
},
|
||||||
|
"H5-mobile": {
|
||||||
|
"Safari": "u",
|
||||||
|
"Android Browser": "u",
|
||||||
|
"微信浏览器(Android)": "u",
|
||||||
|
"QQ浏览器(Android)": "u"
|
||||||
|
},
|
||||||
|
"H5-pc": {
|
||||||
|
"Chrome": "u",
|
||||||
|
"IE": "u",
|
||||||
|
"Edge": "u",
|
||||||
|
"Firefox": "u",
|
||||||
|
"Safari": "u"
|
||||||
|
},
|
||||||
|
"小程序": {
|
||||||
|
"微信": "u",
|
||||||
|
"阿里": "u",
|
||||||
|
"百度": "u",
|
||||||
|
"字节跳动": "u",
|
||||||
|
"QQ": "u"
|
||||||
|
},
|
||||||
|
"快应用": {
|
||||||
|
"华为": "u",
|
||||||
|
"联盟": "u"
|
||||||
|
},
|
||||||
|
"Vue": {
|
||||||
|
"vue2": "y",
|
||||||
|
"vue3": "u"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
93
uni_modules/uni-config-center/readme.md
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
# 为什么使用uni-config-center
|
||||||
|
|
||||||
|
实际开发中很多插件需要配置文件才可以正常运行,如果每个插件都单独进行配置的话就会产生下面这样的目录结构
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cloudfunctions
|
||||||
|
└─────common 公共模块
|
||||||
|
├─plugin-a // 插件A对应的目录
|
||||||
|
│ ├─index.js
|
||||||
|
│ ├─config.json // plugin-a对应的配置文件
|
||||||
|
│ └─other-file.cert // plugin-a依赖的其他文件
|
||||||
|
└─plugin-b // plugin-b对应的目录
|
||||||
|
├─index.js
|
||||||
|
└─config.json // plugin-b对应的配置文件
|
||||||
|
```
|
||||||
|
|
||||||
|
假设插件作者要发布一个项目模板,里面使用了很多需要配置的插件,无论是作者发布还是用户使用都是一个大麻烦。
|
||||||
|
|
||||||
|
uni-config-center就是用了统一管理这些配置文件的,使用uni-config-center后的目录结构如下
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cloudfunctions
|
||||||
|
└─────common 公共模块
|
||||||
|
├─plugin-a // 插件A对应的目录
|
||||||
|
│ └─index.js
|
||||||
|
├─plugin-b // plugin-b对应的目录
|
||||||
|
│ └─index.js
|
||||||
|
└─uni-config-center
|
||||||
|
├─index.js // config-center入口文件
|
||||||
|
├─plugin-a
|
||||||
|
│ ├─config.json // plugin-a对应的配置文件
|
||||||
|
│ └─other-file.cert // plugin-a依赖的其他文件
|
||||||
|
└─plugin-b
|
||||||
|
└─config.json // plugin-b对应的配置文件
|
||||||
|
```
|
||||||
|
|
||||||
|
使用uni-config-center后的优势
|
||||||
|
|
||||||
|
- 配置文件统一管理,分离插件主体和配置信息,更新插件更方便
|
||||||
|
- 支持对config.json设置schema,插件使用者在HBuilderX内编写config.json文件时会有更好的提示(后续HBuilderX会提供支持)
|
||||||
|
|
||||||
|
# 用法
|
||||||
|
|
||||||
|
在要使用uni-config-center的公共模块或云函数内引入uni-config-center依赖,请参考:[使用公共模块](https://uniapp.dcloud.net.cn/uniCloud/cf-common)
|
||||||
|
|
||||||
|
```js
|
||||||
|
const createConfig = require('uni-config-center')
|
||||||
|
|
||||||
|
const uniIdConfig = createConfig({
|
||||||
|
pluginId: 'uni-id', // 插件id
|
||||||
|
defaultConfig: { // 默认配置
|
||||||
|
tokenExpiresIn: 7200,
|
||||||
|
tokenExpiresThreshold: 600,
|
||||||
|
},
|
||||||
|
customMerge: function(defaultConfig, userConfig) { // 自定义默认配置和用户配置的合并规则,不设置的情况侠会对默认配置和用户配置进行深度合并
|
||||||
|
// defaudltConfig 默认配置
|
||||||
|
// userConfig 用户配置
|
||||||
|
return Object.assign(defaultConfig, userConfig)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
// 以如下配置为例
|
||||||
|
// {
|
||||||
|
// "tokenExpiresIn": 7200,
|
||||||
|
// "passwordErrorLimit": 6,
|
||||||
|
// "bindTokenToDevice": false,
|
||||||
|
// "passwordErrorRetryTime": 3600,
|
||||||
|
// "app-plus": {
|
||||||
|
// "tokenExpiresIn": 2592000
|
||||||
|
// },
|
||||||
|
// "service": {
|
||||||
|
// "sms": {
|
||||||
|
// "codeExpiresIn": 300
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// 获取配置
|
||||||
|
uniIdConfig.config() // 获取全部配置,注意:uni-config-center内不存在对应插件目录时会返回空对象
|
||||||
|
uniIdConfig.config('tokenExpiresIn') // 指定键值获取配置,返回:7200
|
||||||
|
uniIdConfig.config('service.sms.codeExpiresIn') // 指定键值获取配置,返回:300
|
||||||
|
uniIdConfig.config('tokenExpiresThreshold', 600) // 指定键值获取配置,如果不存在则取传入的默认值,返回:600
|
||||||
|
|
||||||
|
// 获取文件绝对路径
|
||||||
|
uniIdConfig.resolve('custom-token.js') // 获取uni-config-center/uni-id/custom-token.js文件的路径
|
||||||
|
|
||||||
|
// 引用文件(require)
|
||||||
|
uniIDConfig.requireFile('custom-token.js') // 使用require方式引用uni-config-center/uni-id/custom-token.js文件。文件不存在时返回undefined,文件内有其他错误导致require失败时会抛出错误。
|
||||||
|
|
||||||
|
// 判断是否包含某文件
|
||||||
|
uniIDConfig.hasFile('custom-token.js') // 配置目录是否包含某文件,true: 文件存在,false: 文件不存在
|
||||||
|
```
|
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"name": "uni-config-center",
|
||||||
|
"version": "0.0.3",
|
||||||
|
"description": "配置中心",
|
||||||
|
"main": "index.js",
|
||||||
|
"keywords": [],
|
||||||
|
"author": "DCloud",
|
||||||
|
"license": "Apache-2.0"
|
||||||
|
}
|
34
uni_modules/uni-id-common/changelog.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
## 1.0.17(2024-04-26)
|
||||||
|
- 兼容uni-app-x对客户端uniPlatform的调整(uni-app-x内uniPlatform区分app-android、app-ios)
|
||||||
|
## 1.0.16(2023-04-25)
|
||||||
|
- 新增maxTokenLength配置,用于限制数据库用户记录token数组的最大长度
|
||||||
|
## 1.0.15(2023-04-06)
|
||||||
|
- 修复部分语言国际化出错的Bug
|
||||||
|
## 1.0.14(2023-03-07)
|
||||||
|
- 修复 admin用户包含其他角色时未包含在token的Bug
|
||||||
|
## 1.0.13(2022-07-21)
|
||||||
|
- 修复 创建token时未传角色权限信息生成的token不正确的bug
|
||||||
|
## 1.0.12(2022-07-15)
|
||||||
|
- 提升与旧版本uni-id的兼容性(补充读取配置文件时回退平台app-plus、h5),但是仍推荐使用新平台名进行配置(app、web)
|
||||||
|
## 1.0.11(2022-07-14)
|
||||||
|
- 修复 部分情况下报`read property 'reduce' of undefined`的错误
|
||||||
|
## 1.0.10(2022-07-11)
|
||||||
|
- 将token存储在用户表的token字段内,与旧版本uni-id保持一致
|
||||||
|
## 1.0.9(2022-07-01)
|
||||||
|
- checkToken兼容token内未缓存角色权限的情况,此时将查库获取角色权限
|
||||||
|
## 1.0.8(2022-07-01)
|
||||||
|
- 修复clientDB默认依赖时部分情况下获取不到uni-id配置的Bug
|
||||||
|
## 1.0.7(2022-06-30)
|
||||||
|
- 修复config文件不合法时未抛出具体错误的Bug
|
||||||
|
## 1.0.6(2022-06-28)
|
||||||
|
- 移除插件内的数据表schema
|
||||||
|
## 1.0.5(2022-06-27)
|
||||||
|
- 修复使用多应用配置时报`Cannot read property 'appId' of undefined`的Bug
|
||||||
|
## 1.0.4(2022-06-27)
|
||||||
|
- 修复使用自定义token内容功能报错的Bug [详情](https://ask.dcloud.net.cn/question/147945)
|
||||||
|
## 1.0.2(2022-06-23)
|
||||||
|
- 对齐旧版本uni-id默认配置
|
||||||
|
## 1.0.1(2022-06-22)
|
||||||
|
- 补充对uni-config-center的依赖
|
||||||
|
## 1.0.0(2022-06-21)
|
||||||
|
- 提供uni-id token创建、校验、刷新接口,简化旧版uni-id公共模块
|
85
uni_modules/uni-id-common/package.json
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"id": "uni-id-common",
|
||||||
|
"displayName": "uni-id-common",
|
||||||
|
"version": "1.0.17",
|
||||||
|
"description": "包含uni-id token生成、校验、刷新功能的云函数公共模块",
|
||||||
|
"keywords": [
|
||||||
|
"uni-id-common",
|
||||||
|
"uniCloud",
|
||||||
|
"token",
|
||||||
|
"权限"
|
||||||
|
],
|
||||||
|
"repository": "https://gitcode.net/dcloud/uni-id-common",
|
||||||
|
"engines": {
|
||||||
|
"HBuilderX": "^3.1.0"
|
||||||
|
},
|
||||||
|
"dcloudext": {
|
||||||
|
"sale": {
|
||||||
|
"regular": {
|
||||||
|
"price": "0.00"
|
||||||
|
},
|
||||||
|
"sourcecode": {
|
||||||
|
"price": "0.00"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"contact": {
|
||||||
|
"qq": ""
|
||||||
|
},
|
||||||
|
"declaration": {
|
||||||
|
"ads": "无",
|
||||||
|
"data": "无",
|
||||||
|
"permissions": "无"
|
||||||
|
},
|
||||||
|
"npmurl": "",
|
||||||
|
"type": "unicloud-template-function"
|
||||||
|
},
|
||||||
|
"uni_modules": {
|
||||||
|
"dependencies": ["uni-config-center"],
|
||||||
|
"encrypt": [],
|
||||||
|
"platforms": {
|
||||||
|
"cloud": {
|
||||||
|
"tcb": "y",
|
||||||
|
"aliyun": "y",
|
||||||
|
"alipay": "n"
|
||||||
|
},
|
||||||
|
"client": {
|
||||||
|
"Vue": {
|
||||||
|
"vue2": "u",
|
||||||
|
"vue3": "u"
|
||||||
|
},
|
||||||
|
"App": {
|
||||||
|
"app-vue": "u",
|
||||||
|
"app-nvue": "u"
|
||||||
|
},
|
||||||
|
"H5-mobile": {
|
||||||
|
"Safari": "u",
|
||||||
|
"Android Browser": "u",
|
||||||
|
"微信浏览器(Android)": "u",
|
||||||
|
"QQ浏览器(Android)": "u"
|
||||||
|
},
|
||||||
|
"H5-pc": {
|
||||||
|
"Chrome": "u",
|
||||||
|
"IE": "u",
|
||||||
|
"Edge": "u",
|
||||||
|
"Firefox": "u",
|
||||||
|
"Safari": "u"
|
||||||
|
},
|
||||||
|
"小程序": {
|
||||||
|
"微信": "u",
|
||||||
|
"阿里": "u",
|
||||||
|
"百度": "u",
|
||||||
|
"字节跳动": "u",
|
||||||
|
"QQ": "u",
|
||||||
|
"钉钉": "u",
|
||||||
|
"快手": "u",
|
||||||
|
"飞书": "u",
|
||||||
|
"京东": "u"
|
||||||
|
},
|
||||||
|
"快应用": {
|
||||||
|
"华为": "u",
|
||||||
|
"联盟": "u"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
uni_modules/uni-id-common/readme.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# uni-id-common
|
||||||
|
|
||||||
|
文档请参考:[uni-id-common](https://uniapp.dcloud.net.cn/uniCloud/uni-id-common.html)
|
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "uni-id-common",
|
||||||
|
"version": "1.0.17",
|
||||||
|
"description": "uni-id token生成、校验、刷新",
|
||||||
|
"main": "index.js",
|
||||||
|
"homepage": "https://uniapp.dcloud.io/uniCloud/uni-id-common.html",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://gitee.com/dcloud/uni-id-common.git"
|
||||||
|
},
|
||||||
|
"author": "DCloud",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"uni-config-center": "file:../../../../../uni-config-center/uniCloud/cloudfunctions/common/uni-config-center"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
## 1.0.0(2024-03-09)
|
||||||
|
支持全局监听权限申请。当申请权限时,会在页面顶部显示申请权限的目的。
|
114
uni_modules/uni-registerRequestPermissionTips/package.json
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
{
|
||||||
|
"id": "uni-registerRequestPermissionTips",
|
||||||
|
"displayName": "uni-registerRequestPermissionTips",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "支持android平台全局监听权限的申请。当申请权限时,会在页面顶部显示申请权限的目的。主要解决上架华为应用市场审核要求:APP在调用终端权限时,应同步告知用户申请该权限的目的。",
|
||||||
|
"keywords": [
|
||||||
|
"权限",
|
||||||
|
"权限申请",
|
||||||
|
"上架",
|
||||||
|
"华为"
|
||||||
|
],
|
||||||
|
"repository": "",
|
||||||
|
"engines": {
|
||||||
|
"HBuilderX": "^4.0"
|
||||||
|
},
|
||||||
|
"dcloudext": {
|
||||||
|
"type": "uts",
|
||||||
|
"sale": {
|
||||||
|
"regular": {
|
||||||
|
"price": "0.00"
|
||||||
|
},
|
||||||
|
"sourcecode": {
|
||||||
|
"price": "0.00"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"contact": {
|
||||||
|
"qq": ""
|
||||||
|
},
|
||||||
|
"declaration": {
|
||||||
|
"ads": "无",
|
||||||
|
"data": "无",
|
||||||
|
"permissions": "无"
|
||||||
|
},
|
||||||
|
"npmurl": ""
|
||||||
|
},
|
||||||
|
"uni_modules": {
|
||||||
|
"dependencies": [
|
||||||
|
],
|
||||||
|
"uni-ext-api": {
|
||||||
|
"uni": {
|
||||||
|
"registerRequestPermissionTipsListener": {
|
||||||
|
"name": "registerRequestPermissionTipsListener",
|
||||||
|
"app": {
|
||||||
|
"js": false,
|
||||||
|
"kotlin": true,
|
||||||
|
"swift": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"unregisterRequestPermissionTipsListener": {
|
||||||
|
"name": "unregisterRequestPermissionTipsListener",
|
||||||
|
"app": {
|
||||||
|
"js": false,
|
||||||
|
"kotlin": true,
|
||||||
|
"swift": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"setRequestPermissionTips": {
|
||||||
|
"name": "setRequestPermissionTips",
|
||||||
|
"app": {
|
||||||
|
"js": false,
|
||||||
|
"kotlin": true,
|
||||||
|
"swift": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"encrypt": [],
|
||||||
|
"platforms": {
|
||||||
|
"cloud": {
|
||||||
|
"tcb": "y",
|
||||||
|
"aliyun": "y",
|
||||||
|
"alipay": "y"
|
||||||
|
},
|
||||||
|
"client": {
|
||||||
|
"Vue": {
|
||||||
|
"vue2": "y",
|
||||||
|
"vue3": "y"
|
||||||
|
},
|
||||||
|
"App": {
|
||||||
|
"app-android": "y",
|
||||||
|
"app-ios": "n"
|
||||||
|
},
|
||||||
|
"H5-mobile": {
|
||||||
|
"Safari": "n",
|
||||||
|
"Android Browser": "n",
|
||||||
|
"微信浏览器(Android)": "n",
|
||||||
|
"QQ浏览器(Android)": "n"
|
||||||
|
},
|
||||||
|
"H5-pc": {
|
||||||
|
"Chrome": "n",
|
||||||
|
"IE": "n",
|
||||||
|
"Edge": "n",
|
||||||
|
"Firefox": "n",
|
||||||
|
"Safari": "n"
|
||||||
|
},
|
||||||
|
"小程序": {
|
||||||
|
"微信": "n",
|
||||||
|
"阿里": "n",
|
||||||
|
"百度": "n",
|
||||||
|
"字节跳动": "n",
|
||||||
|
"QQ": "n",
|
||||||
|
"钉钉": "n",
|
||||||
|
"快手": "n",
|
||||||
|
"飞书": "n",
|
||||||
|
"京东": "n"
|
||||||
|
},
|
||||||
|
"快应用": {
|
||||||
|
"华为": "n",
|
||||||
|
"联盟": "n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
95
uni_modules/uni-registerRequestPermissionTips/readme.md
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
## registerRequestPermissionTipsListener(listener?)
|
||||||
|
注册权限监听事件
|
||||||
|
## unregisterRequestPermissionTipsListener(listener?)
|
||||||
|
取消注册权限监听事件
|
||||||
|
|
||||||
|
## RequestPermissionTipsListener的属性值
|
||||||
|
|名称 |类型 |描述 |必填 |
|
||||||
|
|:-- |:-- |:-- |:-- |
|
||||||
|
|onRequest |(permissions:Array<string>)=>void |申请系统权限回调,permissions为触发权限申请的所有权限 |否 |
|
||||||
|
|onConfirm |(permissions:Array<string>)=>void |弹出系统权限授权框回调,permissions为触发弹出权限授权框的所有权限 |否 |
|
||||||
|
|onComplete |(permissions:UTSJSONObject)=>void |权限申请完成回调,permissions包括权限及权限的状态。`grant`为权限已获取,`denied`为权限已拒绝 |否 |
|
||||||
|
|
||||||
|
## setRequestPermissionTips(UTSJSONObject)
|
||||||
|
设置权限监听的说明。支持针对权限设置具体的说明。
|
||||||
|
|
||||||
|
参考:`{"android.permission.CAMERA":"<p>相机权限申请说明</p>"}`
|
||||||
|
|
||||||
|
安卓权限列表可参考[谷歌官方文档](https://developer.android.com/reference/android/Manifest.permission)。
|
||||||
|
|
||||||
|
权限申请说明基于原生TextView实现,可以实现加载html内容,支持的标签及属性可参考:
|
||||||
|
```
|
||||||
|
<b> 或 <strong>:加粗文本。
|
||||||
|
<i> 或 <em>:斜体文本。
|
||||||
|
<u>:下划线文本。
|
||||||
|
<sup>:上标文本。
|
||||||
|
<sub>:下标文本。
|
||||||
|
<tt>:等宽字体文本。
|
||||||
|
<big>:放大字体。
|
||||||
|
<small>:缩小字体。
|
||||||
|
<strike> 或 <s> 或 <del>:带有删除线的文本。
|
||||||
|
<p>:段落。
|
||||||
|
<div>:块级容器。
|
||||||
|
<h1>,<h2>,<h3>,<h4>,<h5>,<h6>:区域标题元素。
|
||||||
|
<ul>, <ol>, <li>:无序列表和有序列表。
|
||||||
|
<br>:换行。
|
||||||
|
<font color="..."> 和 <font size="...">:设置文本颜色和大小。
|
||||||
|
```
|
||||||
|
|
||||||
|
## 示例
|
||||||
|
|
||||||
|
```
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
registerRequestPermissionTipsListener,
|
||||||
|
unregisterRequestPermissionTipsListener,
|
||||||
|
setRequestPermissionTips
|
||||||
|
} from "@/uni_modules/uni-registerRequestPermissionTips"
|
||||||
|
var PermissionTips = {
|
||||||
|
"android.permission.CAMERA": "<h4 style=\"font-size:40px;\">正在读取通讯录权限</h4><font color=#cccccc>通讯录权限不会获取任何信息,请注意</font>",
|
||||||
|
"android.permission.READ_PHONE_STATE": "<h4 style=\"font-size:40px;\">正在读取网络状态权限</h4><font color=#cccccc>通讯录权限不会获取任何信息,请注意通讯录权限不会获取任何信息,请注意通讯录权限不会获取任何信息,请注意</font>"
|
||||||
|
}
|
||||||
|
export default {
|
||||||
|
onLaunch: function() {
|
||||||
|
var brand = uni.getSystemInfoSync().deviceBrand
|
||||||
|
setRequestPermissionTips(PermissionTips)
|
||||||
|
registerRequestPermissionTipsListener({
|
||||||
|
onRequest: (e) => {
|
||||||
|
console.log(e)
|
||||||
|
},
|
||||||
|
onConfirm: (e) => {
|
||||||
|
console.log(e)
|
||||||
|
},
|
||||||
|
onComplete: (e) => {
|
||||||
|
// 华为手机在权限禁止之后,再次申请权限不会出现权限申请框。此时应该引导用户去系统设置开启此权限,不应该频繁申请。
|
||||||
|
if (brand.toLowerCase() == "huawei") {
|
||||||
|
var tips = {}
|
||||||
|
var hasDeniedPermission = false
|
||||||
|
for (var k in PermissionTips) {
|
||||||
|
if (e[k] != "denied") {
|
||||||
|
tips[k] = PermissionTips[k]
|
||||||
|
} else {
|
||||||
|
hasDeniedPermission = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setRequestPermissionTips(tips) // 更新弹框提醒,防止华为手机不出现权限申请框时权限提醒框闪烁的情况
|
||||||
|
if (hasDeniedPermission)
|
||||||
|
uni.showModal({
|
||||||
|
content: "权限已经被拒绝,请前往设置中开启"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onShow: function() {
|
||||||
|
console.log('App Show')
|
||||||
|
},
|
||||||
|
onHide: function() {
|
||||||
|
console.log('App Hide')
|
||||||
|
},
|
||||||
|
onExit: function() {
|
||||||
|
unregisterRequestPermissionTipsListener(null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
```
|
@ -0,0 +1,3 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="io.dcloud.uts.permissionrequest">
|
||||||
|
</manifest>
|
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"minSdkVersion": "21"
|
||||||
|
}
|
@ -0,0 +1,115 @@
|
|||||||
|
import { UnregisterRequestPermissionTipsListener, RegisterRequestPermissionTipsListener, RequestPermissionTipsListener, SetRequestPermissionTips } from "../interface";
|
||||||
|
import RelativeLayout from 'android.widget.RelativeLayout';
|
||||||
|
import LinearLayout from 'android.widget.LinearLayout';
|
||||||
|
import Color from 'android.graphics.Color';
|
||||||
|
import TextView from 'android.widget.TextView';
|
||||||
|
import ViewGroup from 'android.view.ViewGroup';
|
||||||
|
import Activity from 'android.app.Activity';
|
||||||
|
import HashMap from 'java.util.HashMap';
|
||||||
|
import AnimationUtils from 'android.view.animation.AnimationUtils';
|
||||||
|
import R from 'io.dcloud.uts.permissionrequest.R'
|
||||||
|
import Html from 'android.text.Html';
|
||||||
|
import View from 'android.view.View';
|
||||||
|
|
||||||
|
let PermissionTipsView : View | null = null
|
||||||
|
let permissionTips : HashMap<String, String> = new HashMap<String, String>()
|
||||||
|
var permissionListener : RequestPermissionListener | null = null
|
||||||
|
var listener : RequestPermissionTipsListener | null = null
|
||||||
|
export const unregisterRequestPermissionTipsListener : UnregisterRequestPermissionTipsListener = (l : RequestPermissionTipsListener | null) => {
|
||||||
|
listener = null;
|
||||||
|
if (permissionListener != null) {
|
||||||
|
permissionListener!.stop()
|
||||||
|
permissionListener = null
|
||||||
|
}
|
||||||
|
if (PermissionTipsView != null) {
|
||||||
|
if (PermissionTipsView!.getParent() != null) {
|
||||||
|
PermissionTipsView!.setAnimation(null);
|
||||||
|
((PermissionTipsView!.getParent()) as ViewGroup).removeView(PermissionTipsView)
|
||||||
|
}
|
||||||
|
PermissionTipsView = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const registerRequestPermissionTipsListener : RegisterRequestPermissionTipsListener = (l : RequestPermissionTipsListener | null) => {
|
||||||
|
listener = l
|
||||||
|
if (permissionListener == null) {
|
||||||
|
permissionListener = uni.createRequestPermissionListener()
|
||||||
|
permissionListener!.onRequest((permissions : Array<string>) => {
|
||||||
|
if (listener != null)
|
||||||
|
listener!.onRequest?.invoke(permissions)
|
||||||
|
})
|
||||||
|
permissionListener!.onConfirm((permissions : Array<string>) => {
|
||||||
|
let activity = UTSAndroid.getUniActivity()!
|
||||||
|
if (PermissionTipsView != null && PermissionTipsView!.getParent() != null) {
|
||||||
|
PermissionTipsView!.setAnimation(null);
|
||||||
|
((PermissionTipsView!.getParent()) as ViewGroup).removeView(PermissionTipsView)
|
||||||
|
}
|
||||||
|
if (permissions.length > 0) {
|
||||||
|
PermissionTipsView = createPermissionWindow(activity, permissions);
|
||||||
|
if (PermissionTipsView != null) {
|
||||||
|
(activity.findViewById(android.R.id.content) as ViewGroup).addView(PermissionTipsView!)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (listener != null)
|
||||||
|
listener!.onConfirm?.invoke(permissions)
|
||||||
|
|
||||||
|
})
|
||||||
|
permissionListener!.onComplete((permissions : Array<string>) => {
|
||||||
|
// clearTimeout(timeoutRequestId)
|
||||||
|
let activity = UTSAndroid.getUniActivity()!
|
||||||
|
if (PermissionTipsView != null) {
|
||||||
|
PermissionTipsView!.setAnimation(AnimationUtils.loadAnimation(activity, R.anim.popupwindow_exit));
|
||||||
|
((PermissionTipsView!.getParent()) as ViewGroup).removeView(PermissionTipsView!)
|
||||||
|
PermissionTipsView = null
|
||||||
|
}
|
||||||
|
if (listener != null) {
|
||||||
|
var permissionStatus = {}
|
||||||
|
for (var p in permissions) {
|
||||||
|
permissionStatus[p] = UTSAndroid.checkSystemPermissionGranted(UTSAndroid.getUniActivity()!, [p]) ? "grant" : "denied"
|
||||||
|
}
|
||||||
|
listener!.onComplete?.invoke(permissionStatus)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const setRequestPermissionTips : SetRequestPermissionTips = (tips : UTSJSONObject) => {
|
||||||
|
permissionTips.clear()
|
||||||
|
for (var k in tips) {
|
||||||
|
permissionTips.put(k, tips[k] != null ? tips[k].toString() : "")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function createPermissionWindow(activity : Activity, permissions : Array<string>) : ViewGroup | null {
|
||||||
|
let rootView = new RelativeLayout(activity);
|
||||||
|
rootView.setBackgroundColor(Color.TRANSPARENT);
|
||||||
|
let backgroundView = new LinearLayout(activity);
|
||||||
|
backgroundView.setPadding(30, 0, 30, 30);
|
||||||
|
backgroundView.setOrientation(1)
|
||||||
|
backgroundView.setBackgroundResource(R.drawable.dcloud_permission_background);
|
||||||
|
let permissionTipsList : Array<string> = new Array<string>()
|
||||||
|
for (var p in permissions) {
|
||||||
|
if (permissionTips.containsKey(p) && permissionTipsList.indexOf(permissionTips.get(p)) == -1) {
|
||||||
|
permissionTipsList.push(permissionTips.get(p)!)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var p in permissionTipsList) {
|
||||||
|
let text = new TextView(activity);
|
||||||
|
text.setText(Html.fromHtml(p, Html.FROM_HTML_SEPARATOR_LINE_BREAK_HEADING))
|
||||||
|
text.setPadding(0, 30, 0, 0)
|
||||||
|
text.setTextSize((5 * UTSAndroid.getScale()).toFloat())
|
||||||
|
text.setTextColor(Color.BLACK)
|
||||||
|
backgroundView.addView(text)
|
||||||
|
}
|
||||||
|
if (backgroundView.getChildCount() == 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
let rll = new RelativeLayout.LayoutParams(-1, -2)
|
||||||
|
rll.topMargin = (UTSAndroid.getStatusBarHeight() * UTSAndroid.getScale()).toInt();
|
||||||
|
rll.leftMargin = 30;
|
||||||
|
rll.rightMargin = 30;
|
||||||
|
rll.bottomMargin = 30;
|
||||||
|
rootView.addView(backgroundView, rll)
|
||||||
|
rootView.setAnimation(AnimationUtils.loadAnimation(activity, R.anim.popupwindow_enter));
|
||||||
|
return rootView;
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<translate xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:duration="200"
|
||||||
|
android:fromYDelta="-100%"
|
||||||
|
android:toYDelta="0" >
|
||||||
|
</translate>
|
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<translate xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:duration="200"
|
||||||
|
android:fromYDelta="0"
|
||||||
|
android:toYDelta="-100%" />
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||||
|
<corners android:radius="8dp" />
|
||||||
|
<!-- <stroke android:color="@color/black" android:width="2dp"/>-->
|
||||||
|
<solid android:color="#ffffff"/>
|
||||||
|
</shape>
|
@ -0,0 +1,19 @@
|
|||||||
|
export type RequestPermissionTipsListener = {
|
||||||
|
onRequest ?: ((permissions : Array<string>) => void) | null,
|
||||||
|
onConfirm ?: ((permission : Array<string>) => void) | null,
|
||||||
|
onComplete ?: ((permissions : UTSJSONObject) => void) | null
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export type RegisterRequestPermissionTipsListener = (listener : RequestPermissionTipsListener | null) => void
|
||||||
|
export type UnregisterRequestPermissionTipsListener = (listener : RequestPermissionTipsListener | null) => void
|
||||||
|
export type SetRequestPermissionTips = (tips : UTSJSONObject) => void
|
||||||
|
|
||||||
|
export interface Uni {
|
||||||
|
|
||||||
|
registerRequestPermissionTipsListener : RegisterRequestPermissionTipsListener,
|
||||||
|
|
||||||
|
unregisterRequestPermissionTipsListener : UnregisterRequestPermissionTipsListener
|
||||||
|
|
||||||
|
setRequestPermissionTips : SetRequestPermissionTips
|
||||||
|
}
|
30
unpackage/cache/appleConfig.ini
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
[appleAppid]
|
||||||
|
appleAppid=com.fonchain.attendance
|
||||||
|
|
||||||
|
[appstore]
|
||||||
|
appstore=70695af7d1a0be20d1ba633bf98ec76e
|
||||||
|
|
||||||
|
[iosStyle]
|
||||||
|
iosStyle=storyboard
|
||||||
|
|
||||||
|
[universalLinks]
|
||||||
|
universalLinks=
|
||||||
|
spaceid=
|
||||||
|
|
||||||
|
[universalLinks_qq]
|
||||||
|
universalLinks_qq=
|
||||||
|
spaceid_qq=
|
||||||
|
|
||||||
|
[universalLinks_weibo]
|
||||||
|
universalLinks_weibo=
|
||||||
|
spaceid_weibo=
|
||||||
|
|
||||||
|
[iphone]
|
||||||
|
app%402x=efbc54bca681a68f352e357693dd0adc
|
||||||
|
app%403x=07cc7fe6568729d8260f2ea5400cdb1c
|
||||||
|
notification%402x=6dab6ded0ca82920d3ae1cf618bc07ca
|
||||||
|
notification%403x=8b4f295e9144a8e30070a2b64c5593bb
|
||||||
|
settings%402x=4291cf8010e170f83b69d002111be23b
|
||||||
|
settings%403x=94c1b4514f88af3d1cc1f496471c16b3
|
||||||
|
spotlight%402x=7862b7a531181221e609694960355fd3
|
||||||
|
spotlight%403x=efbc54bca681a68f352e357693dd0adc
|
3
unpackage/cache/certdataios
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
iosProfile=D:/WebstormProjects/oa-base/files/ios/oa_dev_20240104.mobileprovision
|
||||||
|
ioscertFile=D:/WebstormProjects/oa-base/files/ios/20230714_dev.p12
|
||||||
|
ioscertPassword=uecGPNMV8s+KLcdEgW/MRg==
|
1
unpackage/cache/uts_custom_ios/app-ios-debug.json
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"dir":"/Users/seaman/srv/bdserver.dcloud.net.cn/service/storage/app/package/IOS/queue/b87978d0-38da-11ef-862d-698846b5d25e/wgtRoot/__UNI__4796942/"}
|
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/apple-mobileprovision.mobileprovision
vendored
Normal file
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/apple-private.p12
vendored
Normal file
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/appstore.png
vendored
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-ipad-app.png
vendored
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-ipad-app@2x.png
vendored
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-ipad-notification.png
vendored
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-ipad-notification@2x.png
vendored
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-ipad-proapp@2x.png
vendored
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-ipad-settings.png
vendored
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-ipad-settings@2x.png
vendored
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-ipad-spotlight.png
vendored
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-ipad-spotlight@2x.png
vendored
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-iphone-app@2x.png
vendored
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-iphone-app@3x.png
vendored
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-iphone-notification@2x.png
vendored
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-iphone-notification@3x.png
vendored
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-iphone-settings@2x.png
vendored
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-iphone-settings@3x.png
vendored
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-iphone-spotlight@2x.png
vendored
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
unpackage/cache/wgt/__UNI__4796942/.manifest/icon-iphone-spotlight@3x.png
vendored
Normal file
After Width: | Height: | Size: 5.1 KiB |
16
unpackage/cache/wgt/__UNI__4796942/__uniappautomator.js
vendored
Normal file
32
unpackage/cache/wgt/__UNI__4796942/__uniappchooselocation.js
vendored
Normal file
BIN
unpackage/cache/wgt/__UNI__4796942/__uniapperror.png
vendored
Normal file
After Width: | Height: | Size: 5.7 KiB |
32
unpackage/cache/wgt/__UNI__4796942/__uniappopenlocation.js
vendored
Normal file
33
unpackage/cache/wgt/__UNI__4796942/__uniapppicker.js
vendored
Normal file
8
unpackage/cache/wgt/__UNI__4796942/__uniappquill.js
vendored
Normal file
1
unpackage/cache/wgt/__UNI__4796942/__uniappquillimageresize.js
vendored
Normal file
32
unpackage/cache/wgt/__UNI__4796942/__uniappscan.js
vendored
Normal file
BIN
unpackage/cache/wgt/__UNI__4796942/__uniappsuccess.png
vendored
Normal file
After Width: | Height: | Size: 2.0 KiB |
23
unpackage/cache/wgt/__UNI__4796942/__uniappview.html
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<title>View</title>
|
||||||
|
<link rel="stylesheet" href="app.css" />
|
||||||
|
<script>var __uniConfig = {"globalStyle":{},"darkmode":false}</script>
|
||||||
|
<script>
|
||||||
|
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
|
||||||
|
CSS.supports('top: constant(a)'))
|
||||||
|
document.write(
|
||||||
|
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||||
|
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="uni-app-view.umd.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
36
unpackage/cache/wgt/__UNI__4796942/androidPrivacy.json
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"version" : "1",
|
||||||
|
"prompt" : "template",
|
||||||
|
"title" : "服务协议和隐私政策",
|
||||||
|
"message" : " 请你务必审慎阅读、充分理解“平台服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/> 你可阅读<a href=\"https://oa.szjixun.cn/#/pages/login/serveInfo\">《用户服务协议》</a>和<a href=\"https://oa.szjixun.cn/#/pages/login/privateInfo\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
|
||||||
|
"buttonAccept" : "同意并接受",
|
||||||
|
"buttonRefuse" : "不同意",
|
||||||
|
"second" : {
|
||||||
|
"title" : "确认提示",
|
||||||
|
"message" : " 进入应用前,你需先同意<a href=\"https://oa.szjixun.cn/#/pages/login/serveInfo\">《用户服务协议》</a>和<a href=\"https://oa.szjixun.cn/#/pages/login/privateInfo\">《隐私政策》</a>,否则将退出应用。",
|
||||||
|
"buttonAccept" : "同意并继续",
|
||||||
|
"buttonRefuse" : "退出应用"
|
||||||
|
},
|
||||||
|
"disagreeMode" : {
|
||||||
|
"support" : false,
|
||||||
|
"loadNativePlugins" : false,
|
||||||
|
"visitorEntry" : false,
|
||||||
|
"showAlways" : false
|
||||||
|
},
|
||||||
|
"styles" : {
|
||||||
|
"backgroundColor" : "#ffffff",
|
||||||
|
"borderRadius" : "5px",
|
||||||
|
"title" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonAccept" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonRefuse" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonVisitor" : {
|
||||||
|
"color" : "#009"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
unpackage/cache/wgt/__UNI__4796942/app-config-service.js
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
;(function(){
|
||||||
|
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
||||||
|
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"OA系统","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.15","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||||
|
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"titleText":"uni-app","style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||||
|
__uniConfig.styles=[];//styles
|
||||||
|
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
|
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
|
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:16})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:u,window:u,document:u,frames:u,self:u,location:u,navigator:u,localStorage:u,history:u,Caches:u,screen:u,alert:u,confirm:u,prompt:u,fetch:u,XMLHttpRequest:u,WebSocket:u,webkit:u,print:u}}}});
|
||||||
|
})();
|
||||||
|
|
1
unpackage/cache/wgt/__UNI__4796942/app-config.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
(function(){})();
|
1
unpackage/cache/wgt/__UNI__4796942/app-service.js
vendored
Normal file
2
unpackage/cache/wgt/__UNI__4796942/app.css
vendored
Normal file
1
unpackage/cache/wgt/__UNI__4796942/manifest.json
vendored
Normal file
0
unpackage/cache/wgt/__UNI__4796942/pages/index/index.css
vendored
Normal file
0
unpackage/cache/wgt/__UNI__4796942/static/logo.png
vendored
Normal file
7
unpackage/cache/wgt/__UNI__4796942/uni-app-view.umd.js
vendored
Normal file
BIN
unpackage/debug/android_debug.apk
Normal file
BIN
unpackage/debug/iOS_debug.ipa
Normal file
3
unpackage/dist/build/.nvue/app.css.js
vendored
@ -4,7 +4,8 @@ var __commonJS = (cb, mod) => function __require() {
|
|||||||
};
|
};
|
||||||
var require_app_css = __commonJS({
|
var require_app_css = __commonJS({
|
||||||
"app.css.js"(exports) {
|
"app.css.js"(exports) {
|
||||||
exports.styles = [];
|
const _style_0 = {};
|
||||||
|
exports.styles = [_style_0];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
export default require_app_css();
|
export default require_app_css();
|
||||||
|
36
unpackage/dist/build/app-plus/androidPrivacy.json
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"version" : "1",
|
||||||
|
"prompt" : "template",
|
||||||
|
"title" : "服务协议和隐私政策",
|
||||||
|
"message" : " 请你务必审慎阅读、充分理解“平台服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/> 你可阅读<a href=\"https://oa.szjixun.cn/#/pages/login/serveInfo\">《用户服务协议》</a>和<a href=\"https://oa.szjixun.cn/#/pages/login/privateInfo\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
|
||||||
|
"buttonAccept" : "同意并接受",
|
||||||
|
"buttonRefuse" : "不同意",
|
||||||
|
"second" : {
|
||||||
|
"title" : "确认提示",
|
||||||
|
"message" : " 进入应用前,你需先同意<a href=\"https://oa.szjixun.cn/#/pages/login/serveInfo\">《用户服务协议》</a>和<a href=\"https://oa.szjixun.cn/#/pages/login/privateInfo\">《隐私政策》</a>,否则将退出应用。",
|
||||||
|
"buttonAccept" : "同意并继续",
|
||||||
|
"buttonRefuse" : "退出应用"
|
||||||
|
},
|
||||||
|
"disagreeMode" : {
|
||||||
|
"support" : false,
|
||||||
|
"loadNativePlugins" : false,
|
||||||
|
"visitorEntry" : false,
|
||||||
|
"showAlways" : false
|
||||||
|
},
|
||||||
|
"styles" : {
|
||||||
|
"backgroundColor" : "#ffffff",
|
||||||
|
"borderRadius" : "5px",
|
||||||
|
"title" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonAccept" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonRefuse" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonVisitor" : {
|
||||||
|
"color" : "#009"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
;(function(){
|
;(function(){
|
||||||
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
||||||
const __uniConfig = {"pages":[],"globalStyle":{"navigationBar":{},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"泰丰考勤","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.15","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"OA系统","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.15","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||||
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"titleNView":false,"navigationBar":{"style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"titleText":"uni-app","style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||||
__uniConfig.styles=[];//styles
|
__uniConfig.styles=[];//styles
|
||||||
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
|
2
unpackage/dist/build/app-plus/app-service.js
vendored
34
unpackage/dist/build/app-plus/manifest.json
vendored
@ -5,10 +5,10 @@
|
|||||||
"iPad"
|
"iPad"
|
||||||
],
|
],
|
||||||
"id": "__UNI__4796942",
|
"id": "__UNI__4796942",
|
||||||
"name": "泰丰考勤",
|
"name": "OA系统",
|
||||||
"version": {
|
"version": {
|
||||||
"name": "1.0.0",
|
"name": "2.0.1",
|
||||||
"code": 100
|
"code": 201
|
||||||
},
|
},
|
||||||
"description": "",
|
"description": "",
|
||||||
"developer": {
|
"developer": {
|
||||||
@ -19,6 +19,7 @@
|
|||||||
"permissions": {
|
"permissions": {
|
||||||
"Camera": {},
|
"Camera": {},
|
||||||
"Geolocation": {},
|
"Geolocation": {},
|
||||||
|
"Push": {},
|
||||||
"UniNView": {
|
"UniNView": {
|
||||||
"description": "UniNView原生渲染"
|
"description": "UniNView原生渲染"
|
||||||
}
|
}
|
||||||
@ -43,14 +44,6 @@
|
|||||||
"usingComponents": true,
|
"usingComponents": true,
|
||||||
"nvueStyleCompiler": "uni-app",
|
"nvueStyleCompiler": "uni-app",
|
||||||
"compilerVersion": 3,
|
"compilerVersion": 3,
|
||||||
"statusbar": {
|
|
||||||
"immersed": "supportedDevice",
|
|
||||||
"style": "dark",
|
|
||||||
"background": "#000000"
|
|
||||||
},
|
|
||||||
"navigationbar": {
|
|
||||||
"hidden": true
|
|
||||||
},
|
|
||||||
"distribute": {
|
"distribute": {
|
||||||
"icons": {
|
"icons": {
|
||||||
"android": {
|
"android": {
|
||||||
@ -85,7 +78,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"splashscreen": {
|
"splashscreen": {
|
||||||
"useOriginalMsgbox": true
|
"useOriginalMsgbox": true,
|
||||||
|
"androidStyle": "default",
|
||||||
|
"android": {
|
||||||
|
"hdpi": "static/image/sy.png",
|
||||||
|
"xhdpi": "static/image/sy.png",
|
||||||
|
"xxhdpi": "static/image/sy.png"
|
||||||
|
},
|
||||||
|
"iosStyle": "storyboard",
|
||||||
|
"ios": {
|
||||||
|
"storyboard": "files/CustomStoryboard.zip"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"google": {
|
"google": {
|
||||||
"permissions": [
|
"permissions": [
|
||||||
@ -152,6 +155,7 @@
|
|||||||
"version": "2",
|
"version": "2",
|
||||||
"offline": true,
|
"offline": true,
|
||||||
"hms": {},
|
"hms": {},
|
||||||
|
"oppo": {},
|
||||||
"vivo": {}
|
"vivo": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -162,7 +166,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nativePlugins": {},
|
"statusbar": {
|
||||||
|
"immersed": "supportedDevice",
|
||||||
|
"style": "dark",
|
||||||
|
"background": "#F8F8F8"
|
||||||
|
},
|
||||||
"uniStatistics": {
|
"uniStatistics": {
|
||||||
"enable": false
|
"enable": false
|
||||||
},
|
},
|
||||||
|
0
unpackage/dist/build/app-plus/pages/index/index.css
vendored
Normal file
8
unpackage/dist/cache/.vite/deps/_metadata.json
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"hash": "fd84dcc1",
|
||||||
|
"configHash": "8979c8e1",
|
||||||
|
"lockfileHash": "e3b0c442",
|
||||||
|
"browserHash": "4c910bc0",
|
||||||
|
"optimized": {},
|
||||||
|
"chunks": {}
|
||||||
|
}
|
3
unpackage/dist/cache/.vite/deps/package.json
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"type": "module"
|
||||||
|
}
|
3
unpackage/dist/dev/.nvue/app.css.js
vendored
@ -4,7 +4,8 @@ var __commonJS = (cb, mod) => function __require() {
|
|||||||
};
|
};
|
||||||
var require_app_css = __commonJS({
|
var require_app_css = __commonJS({
|
||||||
"app.css.js"(exports) {
|
"app.css.js"(exports) {
|
||||||
exports.styles = [];
|
const _style_0 = {};
|
||||||
|
exports.styles = [_style_0];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
export default require_app_css();
|
export default require_app_css();
|
||||||
|
36
unpackage/dist/dev/app-plus/androidPrivacy.json
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"version" : "1",
|
||||||
|
"prompt" : "template",
|
||||||
|
"title" : "服务协议和隐私政策",
|
||||||
|
"message" : " 请你务必审慎阅读、充分理解“平台服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/> 你可阅读<a href=\"https://oa.szjixun.cn/#/pages/login/serveInfo\">《用户服务协议》</a>和<a href=\"https://oa.szjixun.cn/#/pages/login/privateInfo\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
|
||||||
|
"buttonAccept" : "同意并接受",
|
||||||
|
"buttonRefuse" : "不同意",
|
||||||
|
"second" : {
|
||||||
|
"title" : "确认提示",
|
||||||
|
"message" : " 进入应用前,你需先同意<a href=\"https://oa.szjixun.cn/#/pages/login/serveInfo\">《用户服务协议》</a>和<a href=\"https://oa.szjixun.cn/#/pages/login/privateInfo\">《隐私政策》</a>,否则将退出应用。",
|
||||||
|
"buttonAccept" : "同意并继续",
|
||||||
|
"buttonRefuse" : "退出应用"
|
||||||
|
},
|
||||||
|
"disagreeMode" : {
|
||||||
|
"support" : false,
|
||||||
|
"loadNativePlugins" : false,
|
||||||
|
"visitorEntry" : false,
|
||||||
|
"showAlways" : false
|
||||||
|
},
|
||||||
|
"styles" : {
|
||||||
|
"backgroundColor" : "#ffffff",
|
||||||
|
"borderRadius" : "5px",
|
||||||
|
"title" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonAccept" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonRefuse" : {
|
||||||
|
"color" : "#000"
|
||||||
|
},
|
||||||
|
"buttonVisitor" : {
|
||||||
|
"color" : "#009"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
;(function(){
|
;(function(){
|
||||||
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
||||||
const __uniConfig = {"pages":[],"globalStyle":{"navigationBar":{},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"泰丰考勤","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.15","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"OA系统","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.15","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||||
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"titleNView":false,"navigationBar":{"style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"titleText":"uni-app","style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||||
__uniConfig.styles=[];//styles
|
__uniConfig.styles=[];//styles
|
||||||
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||||
|
134
unpackage/dist/dev/app-plus/app-service.js
vendored
@ -33,8 +33,6 @@ if (uni.restoreGlobal) {
|
|||||||
"use strict";
|
"use strict";
|
||||||
const ON_SHOW = "onShow";
|
const ON_SHOW = "onShow";
|
||||||
const ON_HIDE = "onHide";
|
const ON_HIDE = "onHide";
|
||||||
const ON_LAUNCH = "onLaunch";
|
|
||||||
const ON_LOAD = "onLoad";
|
|
||||||
function formatAppLog(type, filename, ...args) {
|
function formatAppLog(type, filename, ...args) {
|
||||||
if (uni.__log__) {
|
if (uni.__log__) {
|
||||||
uni.__log__(type, filename, ...args);
|
uni.__log__(type, filename, ...args);
|
||||||
@ -47,28 +45,26 @@ if (uni.restoreGlobal) {
|
|||||||
};
|
};
|
||||||
const onShow = /* @__PURE__ */ createHook(ON_SHOW);
|
const onShow = /* @__PURE__ */ createHook(ON_SHOW);
|
||||||
const onHide = /* @__PURE__ */ createHook(ON_HIDE);
|
const onHide = /* @__PURE__ */ createHook(ON_HIDE);
|
||||||
const onLaunch = /* @__PURE__ */ createHook(ON_LAUNCH);
|
|
||||||
const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
|
|
||||||
const env = "dev";
|
const env = "dev";
|
||||||
const configs = {
|
const configs = {
|
||||||
|
LocalTest: {
|
||||||
|
apiBaseUrl: "https://warehouse.szjixun.cn/oa_backend",
|
||||||
|
h5Url: "http://192.168.88.53:8080/#/"
|
||||||
|
},
|
||||||
dev: {
|
dev: {
|
||||||
apiBaseUrl: "https://warehouse.szjixun.cn/oa_backend",
|
apiBaseUrl: "https://warehouse.szjixun.cn/oa_backend",
|
||||||
h5Url: "http://192.168.88.49:8080/#/"
|
h5Url: "http://192.168.88.50:8080/#/"
|
||||||
},
|
},
|
||||||
test: {
|
test: {
|
||||||
apiBaseUrl: "https://warehouse.szjixun.cn/oa_backend",
|
apiBaseUrl: "https://warehouse.szjixun.cn/oa_backend",
|
||||||
h5Url: "http://114.218.158.24:9051/#/"
|
h5Url: "http://114.218.158.24:8042/#/"
|
||||||
},
|
},
|
||||||
prod: {
|
prod: {
|
||||||
apiBaseUrl: "https://oa-b.szjixun.cn/#/",
|
apiBaseUrl: "https://oa-a.szjixun.cn/api",
|
||||||
h5Url: "https://oa-b.szjixun.cn/#/"
|
h5Url: "https://oa-a.szjixun.cn/#/"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const config = configs[env];
|
const config = configs[env];
|
||||||
const receiveWebView = (e2) => {
|
|
||||||
return e2.detail.data[0];
|
|
||||||
};
|
|
||||||
uni;
|
|
||||||
const _export_sfc = (sfc, props) => {
|
const _export_sfc = (sfc, props) => {
|
||||||
const target = sfc.__vccOpts || sfc;
|
const target = sfc.__vccOpts || sfc;
|
||||||
for (const [key, val] of props) {
|
for (const [key, val] of props) {
|
||||||
@ -79,8 +75,6 @@ if (uni.restoreGlobal) {
|
|||||||
const _sfc_main$1 = {
|
const _sfc_main$1 = {
|
||||||
__name: "index",
|
__name: "index",
|
||||||
setup(__props) {
|
setup(__props) {
|
||||||
const webViewRef = vue.ref(null);
|
|
||||||
uni.getSystemInfoSync();
|
|
||||||
const networkStatusChange = (res) => {
|
const networkStatusChange = (res) => {
|
||||||
if (res.isConnected) {
|
if (res.isConnected) {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
@ -94,40 +88,26 @@ if (uni.restoreGlobal) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
const webViewObj = vue.ref(null);
|
const webViewObj = vue.ref(null);
|
||||||
onLoad(() => {
|
|
||||||
});
|
|
||||||
onShow(() => {
|
onShow(() => {
|
||||||
uni.onNetworkStatusChange(networkStatusChange);
|
uni.onNetworkStatusChange(networkStatusChange);
|
||||||
|
plus.push.getClientInfoAsync((info) => {
|
||||||
|
formatAppLog("log", "at pages/index/index.vue:62", "获取CID", info.clientid);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
onHide(() => {
|
onHide(() => {
|
||||||
uni.offNetworkStatusChange(networkStatusChange);
|
uni.offNetworkStatusChange(networkStatusChange);
|
||||||
});
|
});
|
||||||
const webLoad = (e2) => {
|
const webLoad = (e2) => {
|
||||||
const m2 = receiveWebView(e2);
|
var _a, _b;
|
||||||
switch (m2.action) {
|
const h5SendString = (_b = (_a = e2.detail.data) == null ? void 0 : _a[0]) == null ? void 0 : _b.action;
|
||||||
|
switch (h5SendString) {
|
||||||
case "load-complete": {
|
case "load-complete": {
|
||||||
const currentWebview = getCurrentPages().at(-1).$getAppWebview();
|
const { statusBarHeight } = uni.getSystemInfoSync();
|
||||||
|
const currentWebview = getCurrentPages().pop().$getAppWebview();
|
||||||
webViewObj.value = currentWebview.children()[0];
|
webViewObj.value = currentWebview.children()[0];
|
||||||
let statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
|
|
||||||
webViewObj.value.setStyle({
|
webViewObj.value.setStyle({
|
||||||
//设置web-view距离顶部的距离以及自己的高度,单位为px
|
|
||||||
top: statusBarHeight,
|
top: statusBarHeight,
|
||||||
//此处是距离顶部的高度,应该是你页面的头部
|
|
||||||
bottom: 0
|
bottom: 0
|
||||||
//webview的高度
|
|
||||||
});
|
|
||||||
const systemInfo = uni.getSystemInfoSync();
|
|
||||||
uni.getLocation({
|
|
||||||
type: "gcj02",
|
|
||||||
geocode: false,
|
|
||||||
isHighAccuracy: false,
|
|
||||||
success: async (res) => {
|
|
||||||
const jsonString = JSON.stringify({ ...res, systemInfo });
|
|
||||||
webViewObj.value.evalJS(`window.onReceive(${jsonString})`);
|
|
||||||
},
|
|
||||||
fail: (e3) => {
|
|
||||||
formatAppLog("log", "at pages/index/index.vue:111", e3);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -137,8 +117,7 @@ if (uni.restoreGlobal) {
|
|||||||
class: "webview",
|
class: "webview",
|
||||||
onMessage: webLoad,
|
onMessage: webLoad,
|
||||||
style: { "flex": "1" },
|
style: { "flex": "1" },
|
||||||
ref_key: "webViewRef",
|
ref: "webViewRef",
|
||||||
ref: webViewRef,
|
|
||||||
src: vue.unref(config).h5Url
|
src: vue.unref(config).h5Url
|
||||||
}, null, 40, ["src"]);
|
}, null, 40, ["src"]);
|
||||||
};
|
};
|
||||||
@ -146,31 +125,51 @@ if (uni.restoreGlobal) {
|
|||||||
};
|
};
|
||||||
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "D:/WebstormProjects/oa-base/pages/index/index.vue"]]);
|
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "D:/WebstormProjects/oa-base/pages/index/index.vue"]]);
|
||||||
__definePage("pages/index/index", PagesIndexIndex);
|
__definePage("pages/index/index", PagesIndexIndex);
|
||||||
const _sfc_main = {
|
function initPushNotification() {
|
||||||
__name: "App",
|
if (typeof plus !== "undefined" && plus.push) {
|
||||||
setup(__props) {
|
plus.globalEvent.addEventListener("newPath", ({ path }) => {
|
||||||
onLaunch(() => {
|
if (!path) {
|
||||||
});
|
return;
|
||||||
onShow(() => {
|
}
|
||||||
});
|
const pages2 = getCurrentPages();
|
||||||
onHide(() => {
|
const currentPage = pages2[pages2.length - 1];
|
||||||
plus.geolocation.clearWatch(LocationId);
|
if (currentPage && currentPage.$page && currentPage.$page.fullPath === path) {
|
||||||
formatAppLog("log", "at App.vue:23", "App Hide");
|
return;
|
||||||
});
|
}
|
||||||
uni.getPushClientId({
|
uni.navigateTo({
|
||||||
success: (res) => {
|
url: path,
|
||||||
let push_clientid = res.cid;
|
fail(res) {
|
||||||
formatAppLog("log", "at App.vue:28", "客户端推送标识cid:", push_clientid);
|
if (res.errMsg.indexOf("tabbar") > -1) {
|
||||||
},
|
uni.switchTab({
|
||||||
fail(err) {
|
url: path,
|
||||||
formatAppLog("log", "at App.vue:31", err);
|
fail(res2) {
|
||||||
|
console.error(res2.errMsg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
uni.onPushMessage((res) => {
|
} else {
|
||||||
formatAppLog("log", "at App.vue:35", JSON.stringify(res));
|
console.error(res.errMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
return () => {
|
});
|
||||||
};
|
}
|
||||||
|
}
|
||||||
|
uni.invokePushCallback({
|
||||||
|
type: "enabled",
|
||||||
|
offline: true
|
||||||
|
});
|
||||||
|
Promise.resolve().then(() => {
|
||||||
|
initPushNotification();
|
||||||
|
plus.push.setAutoNotification && plus.push.setAutoNotification(false);
|
||||||
|
});
|
||||||
|
const _sfc_main = {
|
||||||
|
onLaunch: function() {
|
||||||
|
},
|
||||||
|
onShow: function() {
|
||||||
|
formatAppLog("log", "at App.vue:6", "App Show");
|
||||||
|
},
|
||||||
|
onHide: function() {
|
||||||
|
formatAppLog("log", "at App.vue:9", "App Hide");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "D:/WebstormProjects/oa-base/App.vue"]]);
|
const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "D:/WebstormProjects/oa-base/App.vue"]]);
|
||||||
@ -178,16 +177,21 @@ if (uni.restoreGlobal) {
|
|||||||
{
|
{
|
||||||
path: "pages/index/index",
|
path: "pages/index/index",
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: "custom",
|
navigationBarTitleText: "uni-app",
|
||||||
"app-plus": {
|
navigationStyle: "custom"
|
||||||
titleNView: false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
const globalStyle = {
|
||||||
|
navigationBarTextStyle: "black",
|
||||||
|
navigationBarTitleText: "uni-app",
|
||||||
|
navigationBarBackgroundColor: "#F8F8F8",
|
||||||
|
backgroundColor: "#F8F8F8"
|
||||||
|
};
|
||||||
const uniIdRouter = {};
|
const uniIdRouter = {};
|
||||||
const e = {
|
const e = {
|
||||||
pages,
|
pages,
|
||||||
|
globalStyle,
|
||||||
uniIdRouter
|
uniIdRouter
|
||||||
};
|
};
|
||||||
var define_process_env_UNI_SECURE_NETWORK_CONFIG_default = [];
|
var define_process_env_UNI_SECURE_NETWORK_CONFIG_default = [];
|
||||||
@ -479,7 +483,7 @@ if (uni.restoreGlobal) {
|
|||||||
function I(e2) {
|
function I(e2) {
|
||||||
return e2 && "string" == typeof e2 ? JSON.parse(e2) : e2;
|
return e2 && "string" == typeof e2 ? JSON.parse(e2) : e2;
|
||||||
}
|
}
|
||||||
const S = true, b = "app", A = I(define_process_env_UNI_SECURE_NETWORK_CONFIG_default), P = b, T = I('{\n "address": [\n "127.0.0.1",\n "192.168.56.1",\n "192.168.88.49"\n ],\n "debugPort": 9000,\n "initialLaunchType": "local",\n "servePort": 7000,\n "skipFiles": [\n "<node_internals>/**",\n "C:/Users/37363/Downloads/HBuilderX.4.08.2024040127/HBuilderX/plugins/unicloud/**/*.js"\n ]\n}\n'), C = I('[{"provider":"aliyun","spaceName":"oabase","spaceId":"mp-edf38b0d-bc9a-4e81-9a15-f55995ccca70","clientSecret":"ty1X79FB2pMuAQUzaQBKXA==","endpoint":"https://api.next.bspapp.com"}]') || [];
|
const S = true, b = "app", A = I(define_process_env_UNI_SECURE_NETWORK_CONFIG_default), P = b, T = I('{\n "address": [\n "127.0.0.1",\n "192.168.56.1",\n "192.168.88.50"\n ],\n "debugPort": 9000,\n "initialLaunchType": "local",\n "servePort": 7000,\n "skipFiles": [\n "<node_internals>/**",\n "C:/Users/37363/Downloads/HBuilderX.4.08.2024040127/HBuilderX/plugins/unicloud/**/*.js"\n ]\n}\n'), C = I('[{"provider":"alipay","spaceName":"oaapp","spaceId":"env-00jxgxphla18","spaceAppId":"2021004145628977","accessKey":"ZALus7EgJXdovISb","secretKey":"7qzvVrPN0mAxfcLr"}]') || [];
|
||||||
let O = "";
|
let O = "";
|
||||||
try {
|
try {
|
||||||
O = "__UNI__4796942";
|
O = "__UNI__4796942";
|
||||||
|
2
unpackage/dist/dev/app-plus/app.css
vendored
34
unpackage/dist/dev/app-plus/manifest.json
vendored
@ -5,10 +5,10 @@
|
|||||||
"iPad"
|
"iPad"
|
||||||
],
|
],
|
||||||
"id": "__UNI__4796942",
|
"id": "__UNI__4796942",
|
||||||
"name": "泰丰考勤",
|
"name": "OA系统",
|
||||||
"version": {
|
"version": {
|
||||||
"name": "1.0.0",
|
"name": "2.0.1",
|
||||||
"code": 100
|
"code": 201
|
||||||
},
|
},
|
||||||
"description": "",
|
"description": "",
|
||||||
"developer": {
|
"developer": {
|
||||||
@ -19,6 +19,7 @@
|
|||||||
"permissions": {
|
"permissions": {
|
||||||
"Camera": {},
|
"Camera": {},
|
||||||
"Geolocation": {},
|
"Geolocation": {},
|
||||||
|
"Push": {},
|
||||||
"UniNView": {
|
"UniNView": {
|
||||||
"description": "UniNView原生渲染"
|
"description": "UniNView原生渲染"
|
||||||
}
|
}
|
||||||
@ -43,14 +44,6 @@
|
|||||||
"usingComponents": true,
|
"usingComponents": true,
|
||||||
"nvueStyleCompiler": "uni-app",
|
"nvueStyleCompiler": "uni-app",
|
||||||
"compilerVersion": 3,
|
"compilerVersion": 3,
|
||||||
"statusbar": {
|
|
||||||
"immersed": "supportedDevice",
|
|
||||||
"style": "dark",
|
|
||||||
"background": "#000000"
|
|
||||||
},
|
|
||||||
"navigationbar": {
|
|
||||||
"hidden": true
|
|
||||||
},
|
|
||||||
"distribute": {
|
"distribute": {
|
||||||
"icons": {
|
"icons": {
|
||||||
"android": {
|
"android": {
|
||||||
@ -85,7 +78,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"splashscreen": {
|
"splashscreen": {
|
||||||
"useOriginalMsgbox": true
|
"useOriginalMsgbox": true,
|
||||||
|
"androidStyle": "default",
|
||||||
|
"android": {
|
||||||
|
"hdpi": "static/image/sy.png",
|
||||||
|
"xhdpi": "static/image/sy.png",
|
||||||
|
"xxhdpi": "static/image/sy.png"
|
||||||
|
},
|
||||||
|
"iosStyle": "storyboard",
|
||||||
|
"ios": {
|
||||||
|
"storyboard": "files/CustomStoryboard.zip"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"google": {
|
"google": {
|
||||||
"permissions": [
|
"permissions": [
|
||||||
@ -152,6 +155,7 @@
|
|||||||
"version": "2",
|
"version": "2",
|
||||||
"offline": true,
|
"offline": true,
|
||||||
"hms": {},
|
"hms": {},
|
||||||
|
"oppo": {},
|
||||||
"vivo": {}
|
"vivo": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -162,7 +166,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nativePlugins": {},
|
"statusbar": {
|
||||||
|
"immersed": "supportedDevice",
|
||||||
|
"style": "dark",
|
||||||
|
"background": "#F8F8F8"
|
||||||
|
},
|
||||||
"uniStatistics": {
|
"uniStatistics": {
|
||||||
"enable": false
|
"enable": false
|
||||||
},
|
},
|
||||||
|
0
unpackage/dist/dev/app-plus/pages/index/index.css
vendored
Normal file
BIN
unpackage/oa考勤系统.zip
Normal file
BIN
unpackage/release/__UNI__4796942.wgt
Normal file
BIN
unpackage/release/__UNI__70C49A3_google_0416120157.aab
Normal file
BIN
unpackage/res/icons/1024x1024.png
Normal file
After Width: | Height: | Size: 27 KiB |