You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

170 lines
4.0 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<script setup>
/**
* name
* usersa0ChunLuyu
* date2023年8月14日 06:57:50
*/
import {
ref
} from 'vue'
import {
$response
} from '@/api'
import {
onShow
} from '@dcloudio/uni-app'
const clicks = ref(0);
const env = ref(process.env.NODE_ENV)
const last_click_time = ref(0);
const magicButtonClick = () => {
const current_time = new Date().getTime();
if (current_time - last_click_time.value <= 1000) {
clicks.value++;
} else {
clicks.value = 1;
}
last_click_time.value = current_time;
if (clicks.value === 10) {
magic_popup_ref.value.open()
clicks.value = 0;
}
}
const quitDevClick = () => {
quit_popup_ref.value.open()
}
const magic_popup_ref = ref(null)
const magicPopupRef = (e) => {
magic_popup_ref.value = e
}
const quit_popup_ref = ref(null)
const quitPopupRef = (e) => {
quit_popup_ref.value = e
}
const magicConfirmClick = () => {
uni.setStorageSync(dev_status_key, '1')
uni.reLaunch({
url: '/pages/main/index/index'
})
}
const quitConfirmClick = () => {
uni.setStorageSync(dev_status_key, '0')
uni.reLaunch({
url: '/pages/main/index/index'
})
}
const dev_status_key = 'DEV_STATUS'
const dev_status = ref(2)
const checkDevStatus = () => {
const status = uni.getStorageSync(dev_status_key)
dev_status.value = Number(!!status ? status : '0')
}
const devStatusChangeClick = () => {
dev_status.value = dev_status.value === 1 ? 2 : 1
}
const jumpTo = (url) => {
uni.navigateTo({
url
})
}
onShow(() => {
checkDevStatus()
})
</script>
<template>
<view class="dev_wrapper">
<uni-popup :ref="magicPopupRef" type="dialog">
<uni-popup-dialog type="error" cancelText="取消" confirmText="重启" title="提示" content="点击重启进入开发者模式"
@confirm="magicConfirmClick()"></uni-popup-dialog>
</uni-popup>
<uni-popup :ref="quitPopupRef" type="dialog">
<uni-popup-dialog type="error" cancelText="取消" confirmText="确定" title="提示" content="点击确认退出开发者模式"
@confirm="quitConfirmClick()"></uni-popup-dialog>
</uni-popup>
<view v-if="Number(dev_status) === 0" @click="magicButtonClick()" class="dev_magic_button_wrapper" :style="{
background: env === 'development' ? '#000000' : '#00000000'
}">
</view>
<view v-else class="dev_box_wrapper" :style="{
width: Number(dev_status) === 1 ? '80rpx' : '730rpx',
height: Number(dev_status) === 1 ? '80rpx' : '400rpx',
}">
<view @click="devStatusChangeClick()" class="dev_button_wrapper">
<uni-icons v-if="Number(dev_status) === 1" type="tune" size="40rpx"></uni-icons>
<uni-icons v-else type="closeempty" size="40rpx"></uni-icons>
</view>
<view v-if="Number(dev_status) === 2" class="dev_panel_wrapper">
<view @click="jumpTo('/pages/dev/example/example?name=yo')" class="dev_button_item_wrapper">示例</view>
<view @click="jumpTo('/pages/dev/proxy/proxy')" class="dev_button_item_wrapper">代理设置</view>
<view @click="quitDevClick()" class="dev_button_item_wrapper">退</view>
</view>
</view>
</view>
</template>
<style scoped>
.dev_panel_wrapper {
height: calc(100% - 100rpx);
overflow-y: auto;
}
.dev_button_item_wrapper {
width: 600rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
margin: 15rpx auto;
background: #f9f9f9;
font-size: 26rpx;
font-weight: bold;
border-radius: 6rpx;
}
.dev_wrapper {
position: relative;
z-index: 10;
}
.dev_button_wrapper {
width: 80rpx;
height: 80rpx;
line-height: 80rpx;
text-align: center;
}
.dev_box_wrapper {
position: fixed;
/* #ifdef MP-WEIXIN */
bottom: 10rpx;
/* #endif */
/* #ifdef H5 */
top: 10rpx;
/* #endif */
left: 10rpx;
width: 80rpx;
height: 80rpx;
background: #ffffff;
border-radius: 10rpx;
text-align: center;
transition: all 0.5s ease-in-out;
overflow: hidden;
}
.dev_magic_button_wrapper {
position: fixed;
/* #ifdef MP-WEIXIN */
bottom: 0;
/* #endif */
/* #ifdef H5 */
top: 0;
/* #endif */
left: 0;
width: 30rpx;
height: 30rpx;
}
</style>