Compare commits
10 Commits
test
...
da98464e1a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
da98464e1a | ||
|
|
5e281672a3 | ||
|
|
aae8e6fb50 | ||
|
|
f44108a486 | ||
|
|
b2a53d04aa | ||
|
|
2514b279b6 | ||
|
|
d40d8e1e91 | ||
|
|
96a9932e70 | ||
|
|
2ad389e2f0 | ||
|
|
a0f2fab6bf |
18
src/App.vue
18
src/App.vue
@@ -4,16 +4,16 @@
|
|||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { onLaunch } from '@dcloudio/uni-app';
|
// import { onLaunch } from '@dcloudio/uni-app';
|
||||||
onLaunch((opt) => {
|
// onLaunch((opt) => {
|
||||||
console.log("onLaunch")
|
// console.log("onLaunch")
|
||||||
|
|
||||||
uni.preloadPage({ url: "/pages/login/login" });
|
// uni.preloadPage({ url: "/pages/login/login" });
|
||||||
uni.preloadPage({ url: "/pages/home/home" });
|
// uni.preloadPage({ url: "/pages/home/home" });
|
||||||
uni.preloadPage({ url: "/pages/business/business" });
|
// uni.preloadPage({ url: "/pages/business/business" });
|
||||||
uni.preloadPage({ url: "/pages/notice/notice" });
|
// uni.preloadPage({ url: "/pages/notice/notice" });
|
||||||
uni.preloadPage({ url: "/pages/userinfo/userinfo" });
|
// uni.preloadPage({ url: "/pages/userinfo/userinfo" });
|
||||||
})
|
// })
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -58,15 +58,15 @@ const handleBack = () => {
|
|||||||
margin-left:-375rpx;
|
margin-left:-375rpx;
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
/* #ifdef APP-PLUS */
|
/* #ifdef APP-PLUS */
|
||||||
background: url('@/static/images/bg-Blue-header.png') no-repeat;
|
/* background: url('@/static/images/bg-Blue-header.png') no-repeat;
|
||||||
background-size:750rpx 160rpx;
|
background-size:750rpx 160rpx;
|
||||||
height:160rpx;
|
height:160rpx; */
|
||||||
/* #endif */
|
/* #endif */
|
||||||
|
|
||||||
/* #ifndef APP-PLUS */
|
/* #ifndef APP-PLUS */
|
||||||
background: url('@/static/images/bg-Blue-header2.png') no-repeat;
|
/* background: url('@/static/images/bg-Blue-header2.png') no-repeat;
|
||||||
background-size:750rpx 116rpx;
|
background-size:750rpx 116rpx;
|
||||||
height:116rpx;
|
height:116rpx; */
|
||||||
/* #endif */
|
/* #endif */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,5 +4,5 @@ export const AGREEWELCOME_KEY="agreewelcome";
|
|||||||
// clientId 默认写2
|
// clientId 默认写2
|
||||||
export const CLIENT_ID="2";
|
export const CLIENT_ID="2";
|
||||||
// #区分内外网 //1-内网,2-外网
|
// #区分内外网 //1-内网,2-外网
|
||||||
export const NETWORK_ENV=2;
|
export const NETWORK_ENV=1;
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,21 @@
|
|||||||
import { createSSRApp } from "vue";
|
import { createSSRApp } from "vue";
|
||||||
import App from "./App.vue";
|
import App from "./App.vue";
|
||||||
|
import { CLIENT_ID,NETWORK_ENV } from '@/enums/cacheEnums';
|
||||||
import '@/static/font/iconfont.css'
|
import '@/static/font/iconfont.css'
|
||||||
|
|
||||||
// pinia
|
// pinia
|
||||||
import { createPinia } from 'pinia'
|
import { createPinia } from 'pinia'
|
||||||
const pinia = createPinia()
|
const pinia = createPinia()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export function createApp() {
|
export function createApp() {
|
||||||
|
|
||||||
const app = createSSRApp(App);
|
const app = createSSRApp(App);
|
||||||
|
|
||||||
|
app.config.globalProperties.$CLIENT_ID = CLIENT_ID;
|
||||||
|
app.config.globalProperties.$NETWORK_ENV = NETWORK_ENV;
|
||||||
|
|
||||||
app.use(pinia)
|
app.use(pinia)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -145,14 +145,7 @@
|
|||||||
"navigationBarTitleText": "718友晟",
|
"navigationBarTitleText": "718友晟",
|
||||||
"navigationBarBackgroundColor": "#F8F8F8",
|
"navigationBarBackgroundColor": "#F8F8F8",
|
||||||
"backgroundColor": "#F8F8F8",
|
"backgroundColor": "#F8F8F8",
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom"
|
||||||
// #ifdef APP-PLUS
|
|
||||||
"style": {
|
|
||||||
"app-plus": {
|
|
||||||
"background":"#F5F5F5"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// #endif
|
|
||||||
},
|
},
|
||||||
"tabBar": {
|
"tabBar": {
|
||||||
"color": "#919191",
|
"color": "#919191",
|
||||||
|
|||||||
@@ -2,12 +2,11 @@
|
|||||||
<view class="con-body">
|
<view class="con-body">
|
||||||
<view class="con-bg">
|
<view class="con-bg">
|
||||||
<!-- 头部 -->
|
<!-- 头部 -->
|
||||||
<customHeader ref="customHeaderRef" :title="'业务中心'"
|
<customHeader ref="customHeaderRef" :title="!searchShow?'业务中心':'搜索'"
|
||||||
:leftFlag="false" :rightFlag="false" v-if="!searchShow"
|
:leftFlag="!searchShow?false:true"
|
||||||
></customHeader>
|
:rightFlag="false"
|
||||||
<customHeader v-else ref="customHeaderRef" :title="'搜索'"
|
@back="handleBack"
|
||||||
:leftFlag="true" :rightFlag="false"
|
:searchType="searchShow?1:undefined"
|
||||||
@back="handleBack" :searchType="1"
|
|
||||||
></customHeader>
|
></customHeader>
|
||||||
<!-- 高度来避免头部遮挡 -->
|
<!-- 高度来避免头部遮挡 -->
|
||||||
<view class="top-height"></view>
|
<view class="top-height"></view>
|
||||||
@@ -68,7 +67,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref,onMounted } from 'vue'
|
import { ref,onMounted } from 'vue'
|
||||||
import { onLoad,onShow } from '@dcloudio/uni-app';
|
import { onLoad,onHide } from '@dcloudio/uni-app';
|
||||||
import customHeader from '@/components/customHeader.vue';
|
import customHeader from '@/components/customHeader.vue';
|
||||||
import customSearch from '@/components/customSearch.vue'
|
import customSearch from '@/components/customSearch.vue'
|
||||||
import MescrollUni from 'mescroll-uni/mescroll-uni.vue';
|
import MescrollUni from 'mescroll-uni/mescroll-uni.vue';
|
||||||
@@ -99,6 +98,10 @@ let searchShow = ref(false);
|
|||||||
let searchText = ref(undefined);
|
let searchText = ref(undefined);
|
||||||
let searchTypeObj = ref({typeId:2});
|
let searchTypeObj = ref({typeId:2});
|
||||||
|
|
||||||
|
onHide(()=>{
|
||||||
|
searchShow.value=false;
|
||||||
|
})
|
||||||
|
|
||||||
// 搜索返回操作
|
// 搜索返回操作
|
||||||
const handleBack=()=>{
|
const handleBack=()=>{
|
||||||
searchShow.value=false;
|
searchShow.value=false;
|
||||||
@@ -173,7 +176,7 @@ let handleJump=(url)=>{
|
|||||||
<style scope>
|
<style scope>
|
||||||
.scroll-h{
|
.scroll-h{
|
||||||
/* #ifdef APP-PLUS */
|
/* #ifdef APP-PLUS */
|
||||||
height: calc(100vh - 120px) !important;
|
height: calc(100vh - 130px) !important;
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* #ifndef APP-PLUS */
|
/* #ifndef APP-PLUS */
|
||||||
height: calc(100vh - 140px) !important;
|
height: calc(100vh - 140px) !important;
|
||||||
|
|||||||
@@ -6,13 +6,26 @@
|
|||||||
<view :style="{height: navBarPaddingTop + 'px'}"></view>
|
<view :style="{height: navBarPaddingTop + 'px'}"></view>
|
||||||
<view class="auth-title">
|
<view class="auth-title">
|
||||||
<image src="@/static/images/icon-lock@2x.png"/>
|
<image src="@/static/images/icon-lock@2x.png"/>
|
||||||
<text>设备授权</text>
|
<text>{{networkEnv==1?'内网':''}}设备授权</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="login-con">
|
<view class="login-con">
|
||||||
<!-- 登录 -->
|
<!-- 登录 -->
|
||||||
<block v-if="!bindStatus">
|
<block v-if="!bindStatus">
|
||||||
<view class="login-form">
|
<view class="login-form" :class="{network1:networkEnv==1}">
|
||||||
<uni-forms ref="form2" :model="formData2" :rules="rules2" label-position="top">
|
<uni-forms ref="form2" :model="formData2" :rules="rules2" label-position="top">
|
||||||
|
<!-- networkEnv -->
|
||||||
|
<uni-forms-item label="设备标识" required name="uniqCode" v-if="networkEnv==1">
|
||||||
|
<view class="code-con code-device">
|
||||||
|
<uni-easyinput prefixIcon="person" :inputBorder="false"
|
||||||
|
v-model="formData2.uniqCode" placeholder="请输入设备标识"
|
||||||
|
>
|
||||||
|
<!-- <template #prefixIcon> -->
|
||||||
|
<!-- <image src="@/static/images/login-biaoshi.png" style="width: 20px; height: 20px;" /> -->
|
||||||
|
<!-- </template> -->
|
||||||
|
|
||||||
|
</uni-easyinput>
|
||||||
|
</view>
|
||||||
|
</uni-forms-item>
|
||||||
<uni-forms-item label="用户名" required name="username">
|
<uni-forms-item label="用户名" required name="username">
|
||||||
<view class="code-con">
|
<view class="code-con">
|
||||||
<uni-easyinput prefixIcon="person" :inputBorder="false"
|
<uni-easyinput prefixIcon="person" :inputBorder="false"
|
||||||
@@ -80,7 +93,6 @@ import { v4 as uuidv4 } from 'uuid'
|
|||||||
import { getNavBarPaddingTop} from '@/utils/system.js';
|
import { getNavBarPaddingTop} from '@/utils/system.js';
|
||||||
import { getBindStatus,authDeviceApply,authInputCode } from '@/api/auth.js';
|
import { getBindStatus,authDeviceApply,authInputCode } from '@/api/auth.js';
|
||||||
import {showToast,showAlert} from '@/utils/message.js'
|
import {showToast,showAlert} from '@/utils/message.js'
|
||||||
import { CLIENT_ID,NETWORK_ENV } from '@/enums/cacheEnums';
|
|
||||||
import encryptObj from '@/utils/encrypt.js'
|
import encryptObj from '@/utils/encrypt.js'
|
||||||
import { requestAndroidPermissionAsync } from '@/utils/common.js'
|
import { requestAndroidPermissionAsync } from '@/utils/common.js'
|
||||||
|
|
||||||
@@ -94,8 +106,10 @@ const safeSave = uni.requireNativePlugin("Tm-TmSafeSaveFileModule");
|
|||||||
// #endif
|
// #endif
|
||||||
let systemInfo = {};
|
let systemInfo = {};
|
||||||
let deviceId = ref(undefined);
|
let deviceId = ref(undefined);
|
||||||
|
let clientId = `${proxy.$CLIENT_ID || 2}`;
|
||||||
|
let networkEnv = ref(proxy.$NETWORK_ENV);//1-内网 2-外网
|
||||||
onLoad(async(opt) => {
|
onLoad(async(opt) => {
|
||||||
console.log("deviceAuth=>onLoad");
|
console.log("deviceAuth=>onLoad",clientId,networkEnv.value);
|
||||||
uni.setStorageSync('page_cache',true);
|
uni.setStorageSync('page_cache',true);
|
||||||
// uni.preloadPage({url: "/pages/login/login"});
|
// uni.preloadPage({url: "/pages/login/login"});
|
||||||
// uni.preloadPage({url: "/pages/home/home"});
|
// uni.preloadPage({url: "/pages/home/home"});
|
||||||
@@ -186,11 +200,17 @@ let refreshBindStatus = async ()=>{
|
|||||||
// 账号登录
|
// 账号登录
|
||||||
const form2 = ref(null);
|
const form2 = ref(null);
|
||||||
const formData2 = ref({
|
const formData2 = ref({
|
||||||
|
uniqCode:'',
|
||||||
username: '',
|
username: '',
|
||||||
password: ''
|
password: ''
|
||||||
});
|
});
|
||||||
|
|
||||||
const rules2 = {
|
const rules2 = {
|
||||||
|
uniqCode:{
|
||||||
|
rules: [
|
||||||
|
{ required: true, errorMessage: '请输入设备标识' },
|
||||||
|
]
|
||||||
|
},
|
||||||
username: {
|
username: {
|
||||||
rules: [
|
rules: [
|
||||||
{ required: true, errorMessage: '请输入用户名' },
|
{ required: true, errorMessage: '请输入用户名' },
|
||||||
@@ -210,14 +230,19 @@ const submitForm = async() => {
|
|||||||
// 用户名和密码登录
|
// 用户名和密码登录
|
||||||
form2.value.validate().then(async param => {
|
form2.value.validate().then(async param => {
|
||||||
btnLoading.value = true;
|
btnLoading.value = true;
|
||||||
deviceId.value = uuidv4();
|
//1-内网,2-外网
|
||||||
let clientId = `${CLIENT_ID || 2}`;
|
if(networkEnv.value==1){
|
||||||
|
deviceId.value = param.uniqCode;
|
||||||
|
}else{
|
||||||
|
deviceId.value = uuidv4(); //2-外网 生成的设备唯一标识
|
||||||
|
}
|
||||||
|
|
||||||
let password = encryptObj.Encrypt(param.username + clientId + "," + param.password);
|
let password = encryptObj.Encrypt(param.username + clientId + "," + param.password);
|
||||||
let params = {
|
let params = {
|
||||||
username:param.username,
|
username:param.username,
|
||||||
password,
|
password,
|
||||||
networkEnv:NETWORK_ENV,//1-内网,2-外网
|
networkEnv:networkEnv.value,//1-内网,2-外网
|
||||||
uniqCode:deviceId.value,//生成的设备唯一标识
|
uniqCode:deviceId.value,
|
||||||
...systemInfo,//设备信息
|
...systemInfo,//设备信息
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
verId:systemInfo.appWgtVersion,//当前版本号
|
verId:systemInfo.appWgtVersion,//当前版本号
|
||||||
@@ -402,6 +427,7 @@ const handleSubmit=()=>{
|
|||||||
border-bottom: 1px solid #E7E7E7;
|
border-bottom: 1px solid #E7E7E7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
:deep(.uni-forms-item__label){
|
:deep(.uni-forms-item__label){
|
||||||
color:#239FDF;
|
color:#239FDF;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
@@ -443,6 +469,31 @@ const handleSubmit=()=>{
|
|||||||
content: "\e66c" !important;
|
content: "\e66c" !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 加设备ID样式 */
|
||||||
|
.container .login-form.network1{
|
||||||
|
padding-bottom:50rpx;
|
||||||
|
}
|
||||||
|
.container .login-form.network1 .code-con{
|
||||||
|
padding:0 0 3rpx;
|
||||||
|
}
|
||||||
|
.container .login-form.network1 :deep(.uni-forms-item){
|
||||||
|
margin-bottom:10px !important
|
||||||
|
}
|
||||||
|
.container .login-form.network1 :deep(.uni-easyinput__content-input){
|
||||||
|
height: 30px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container .login-form .code-con.code-device :deep(.uni-easyinput__content .uniui-person){
|
||||||
|
background: url('@/static/images/login-biaoshi.png') 15rpx no-repeat;
|
||||||
|
background-size:25rpx 30rpx;
|
||||||
|
width: 25rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-right:10rpx;
|
||||||
|
}
|
||||||
|
.container .login-form .code-con.code-device :deep(.uniui-person:before){
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.btn-submit{
|
.btn-submit{
|
||||||
width:496rpx;
|
width:496rpx;
|
||||||
height:88rpx;
|
height:88rpx;
|
||||||
|
|||||||
@@ -1,71 +1,71 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view id="test">
|
||||||
|
<!-- #ifdef h5 -->
|
||||||
<web-view :src="url"></web-view>
|
<web-view :src="url"></web-view>
|
||||||
|
<!-- #endif -->
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref,onMounted,getCurrentInstance } from 'vue';
|
import { ref,onMounted,getCurrentInstance } from 'vue';
|
||||||
import { onLoad,onReady } from '@dcloudio/uni-app';
|
import { onLoad,onReady,onBackPress } from '@dcloudio/uni-app';
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
let windowInfo = ref(null);
|
let windowInfo = ref(null);
|
||||||
let url = ref('');
|
let url = ref('');
|
||||||
let title = ref('');
|
let title = ref('');
|
||||||
//将要创建的webview对象
|
|
||||||
let wv;
|
|
||||||
onLoad(async(opt) => {
|
onLoad(async(opt) => {
|
||||||
// console.log(opt)
|
console.log(opt)
|
||||||
url.value = opt.url;
|
url.value = opt.url;
|
||||||
title.value = opt.title;
|
title.value = opt.title;
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
titleNViewWebview(url.value,title.value);
|
||||||
|
// #endif
|
||||||
|
// uni.getSystemInfo({
|
||||||
|
// success: (res)=> {
|
||||||
|
// windowInfo.value = res;
|
||||||
|
// createWvAndLoadUrl(url.value,title.value);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
})
|
})
|
||||||
|
|
||||||
onReady(()=>{
|
|
||||||
setTimeout(()=>{
|
|
||||||
uni.setNavigationBarTitle({
|
|
||||||
title:title.value
|
|
||||||
})
|
|
||||||
},2000)
|
|
||||||
})
|
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
uni.getSystemInfo({
|
// 带标题栏控件的Webview窗口
|
||||||
success: (res)=> {
|
let webview = null;
|
||||||
windowInfo.value = res;
|
function titleNViewWebview(url,title) {
|
||||||
createWvAndLoadUrl(url.value);
|
webview = plus.webview.create(url, 'test', {
|
||||||
|
titleNView: {
|
||||||
|
backgroundColor: '#307AF5',
|
||||||
|
titleText: title,
|
||||||
|
titleColor: '#ffffff',
|
||||||
|
autoBackButton: true,
|
||||||
|
backgroundImage:'./../../static/images/bg-Blue-header.png',
|
||||||
|
buttons:[{onclick:clickButton}]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})
|
webview.addEventListener('close', function(){
|
||||||
|
webview=null;
|
||||||
/*创建web-view并加载url*/
|
});
|
||||||
const createWvAndLoadUrl=(url)=>{
|
webview.addEventListener('titleUpdate', function(){
|
||||||
// #ifdef APP-PLUS
|
webview.show();
|
||||||
wv = plus.webview.create(url,"webview",{
|
});
|
||||||
// plusrequire:"none", //禁止远程网页使用plus的API,有些使用mui制作的网页可能会监听plus.key,造成关闭页面混乱,可以通过这种方式禁止
|
webview.addEventListener('loading', () => {
|
||||||
top: 0,//this.windowInfo.statusBarHeight + 126, //放置在titleNView下方。如果还想在webview上方加个地址栏的什么的,可以继续降低TOP值
|
|
||||||
scalable: true,
|
|
||||||
height: windowInfo.value.windowHeight - windowInfo.value.statusBarHeight //- 126
|
|
||||||
})
|
|
||||||
wv.addEventListener('loading', () => {
|
|
||||||
plus.nativeUI.showWaiting("loading...",{
|
plus.nativeUI.showWaiting("loading...",{
|
||||||
width:'110px',
|
width:'110px',
|
||||||
padding:'10px'
|
padding:'10px'
|
||||||
})
|
})
|
||||||
}, false);
|
}, false);
|
||||||
//plus.nativeUI.showWaiting()
|
//plus.nativeUI.showWaiting()
|
||||||
wv.addEventListener('loaded', () => {
|
webview.addEventListener('loaded', () => {
|
||||||
plus.nativeUI.closeWaiting();
|
plus.nativeUI.closeWaiting();
|
||||||
}, false);
|
}, false);
|
||||||
|
}
|
||||||
|
|
||||||
//wv.loadURL(url)
|
// 左侧按钮返回
|
||||||
let currentWebview = proxy.$scope.$getAppWebview();
|
function clickButton(){
|
||||||
currentWebview = wv;
|
// plus.nativeUI.alert('clicked!');
|
||||||
// console.log(wv)
|
webview=null;
|
||||||
// setTimeout(()=> {
|
|
||||||
// console.log(wv.getStyle())
|
|
||||||
// }, 1000);
|
|
||||||
// #endif
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -1,156 +1,140 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="con-body">
|
<view class="con-body">
|
||||||
<view class="con-bg">
|
<view class="con-bg">
|
||||||
|
<!-- 头部 -->
|
||||||
|
<customHeader ref="customHeaderRef" :title="'首页'"
|
||||||
|
:leftFlag="false" :rightFlag="false"
|
||||||
|
></customHeader>
|
||||||
|
<!-- 高度来避免头部遮挡 -->
|
||||||
|
<view class="top-height"></view>
|
||||||
<!-- 下拉刷新 -->
|
<!-- 下拉刷新 -->
|
||||||
<mescroll-uni ref="mescrollRef" @init="mescrollInit"
|
<mescroll-uni ref="mescrollRef" @init="mescrollInit"
|
||||||
:down="downOption" @down="downCallback"
|
:down="downOption" @down="downCallback"
|
||||||
:fixed="false" class="scroll-h" :style="{ paddingTop: navBarPaddingTop + 'px' }"
|
:fixed="false" class="scroll-h"
|
||||||
>
|
>
|
||||||
<!-- #ifdef H5 -->
|
|
||||||
<view style="height:50rpx"></view>
|
|
||||||
<!-- #endif -->
|
|
||||||
<!-- #ifdef APP-PLUS -->
|
<!-- #ifdef APP-PLUS -->
|
||||||
<!-- 删除设备ID--测试用 -->
|
<!-- 删除设备ID--测试用 -->
|
||||||
<view class="del-cache" @click="handleDelete">
|
<!-- <view class="del-cache" @click="handleDelete">
|
||||||
<uni-icons type="minus" size="30" color="#ffffff"></uni-icons>
|
<uni-icons type="minus" size="30" color="#ffffff"></uni-icons>
|
||||||
</view>
|
</view> -->
|
||||||
<!-- #endif -->
|
<!-- #endif -->
|
||||||
|
|
||||||
<!-- 搜索 @confirm="handleSearch" -->
|
<!-- 待办内容 -->
|
||||||
<customSearch v-if="searchShow"
|
<view class="backlog-bg">
|
||||||
:searchKeywords="searchText"
|
<view class="backlog-b-item">
|
||||||
:searchType="searchTypeObj"
|
<view class="font-number">{{ backBlogObj.count1 }}</view>
|
||||||
@confirm="handleSearchConfirm"
|
<view class="font-title">待办</view>
|
||||||
></customSearch>
|
</view>
|
||||||
<view class="search search-sao" v-else>
|
<view class="backlog-b-item">
|
||||||
<uni-search-bar class="custom-search" radius="28"
|
<view class="font-number">{{ backBlogObj.count2 }}</view>
|
||||||
placeholder="请输入您想查询的内容或服务"
|
<view class="font-title">待审查</view>
|
||||||
clearButton="auto" cancelButton="none"
|
</view>
|
||||||
bgColor="#6FA2F8" textColor="#ffffff"
|
<view class="backlog-b-item">
|
||||||
@focus="handleSearchFocus"
|
<view class="font-number">{{ backBlogObj.count3 }}</view>
|
||||||
v-model="searchText"
|
<view class="font-title">待巡检</view>
|
||||||
/>
|
</view>
|
||||||
<uni-icons custom-prefix="iconfont" color="#ffffff" type="icon-phonesaoyisao" size="20"></uni-icons>
|
<view class="backlog-b-item">
|
||||||
|
<view class="font-number">{{ backBlogObj.count4 }}</view>
|
||||||
|
<view class="font-title">待发货</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<block v-if="!searchShow">
|
<!-- 跑马灯滚动 -->
|
||||||
<!-- 待办内容 -->
|
<view class="notice-bg">
|
||||||
<view class="backlog-bg">
|
<img :src="'static/images/icon-notice@2x.png'" class="notice-icon" />
|
||||||
<view class="backlog-b-item">
|
<view class="notice-list">
|
||||||
<view class="font-number">{{ backBlogObj.count1 }}</view>
|
<!-- :interval="4000" -->
|
||||||
<view class="font-title">待办</view>
|
<swiper class="swiper-con"
|
||||||
</view>
|
:vertical="true"
|
||||||
<view class="backlog-b-item">
|
:autoplay="true"
|
||||||
<view class="font-number">{{ backBlogObj.count2 }}</view>
|
:duration="500"
|
||||||
<view class="font-title">待审查</view>
|
:circular="true"
|
||||||
</view>
|
:disable-touch="true"
|
||||||
<view class="backlog-b-item">
|
:display-multiple-items="1"
|
||||||
<view class="font-number">{{ backBlogObj.count3 }}</view>
|
>
|
||||||
<view class="font-title">待巡检</view>
|
<swiper-item v-for="(item, index) in extendedList" :key="index" >
|
||||||
</view>
|
<view class="swiper-item">
|
||||||
<view class="backlog-b-item">
|
{{ item }}
|
||||||
<view class="font-number">{{ backBlogObj.count4 }}</view>
|
|
||||||
<view class="font-title">待发货</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<!-- 跑马灯滚动 -->
|
|
||||||
<view class="notice-bg">
|
|
||||||
<img :src="'static/images/icon-notice@2x.png'" class="notice-icon" />
|
|
||||||
<view class="notice-list">
|
|
||||||
<!-- :interval="4000" -->
|
|
||||||
<swiper class="swiper-con"
|
|
||||||
:vertical="true"
|
|
||||||
:autoplay="true"
|
|
||||||
:duration="500"
|
|
||||||
:circular="true"
|
|
||||||
:disable-touch="true"
|
|
||||||
:display-multiple-items="1"
|
|
||||||
>
|
|
||||||
<swiper-item v-for="(item, index) in extendedList" :key="index" >
|
|
||||||
<view class="swiper-item">
|
|
||||||
{{ item }}
|
|
||||||
</view>
|
|
||||||
</swiper-item>
|
|
||||||
</swiper>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<!-- 日程提醒 -->
|
|
||||||
<view class="white-bg mar-top" v-if="stepList.length>0">
|
|
||||||
<view class="w-b-title">日程提醒
|
|
||||||
<view class="yellow-bg">
|
|
||||||
<i :class="{iconfont:true,'icon-phoneshizhong':true}"></i>
|
|
||||||
<view class="text-black">{{ weekStr }}</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="section-line">
|
|
||||||
<customSteps :steps="stepList" :modelValue="stepList"></customSteps>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<!-- 销售任务完成情况 -->
|
|
||||||
<view class="white-bg mar-top">
|
|
||||||
<view class="w-b-title">销售任务完成情况
|
|
||||||
<view class="yellow-bg">
|
|
||||||
<picker @change="bindPickerChange" :value="activeIndex" :range="salesList" @click="clickPicker" @cancel="bindPickerCancel">
|
|
||||||
<view class="uni-input">{{salesList[activeIndex]}}</view>
|
|
||||||
</picker>
|
|
||||||
<i :class="{iconfont:true,'icon-down':salesFlag,'icon-up':!salesFlag}" class="picker-icon"></i>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="progress-bg">
|
|
||||||
<progress :percent="percentNum" stroke-width="10" activeColor="#41E1B1" backgroundColor="#F0F0F0" />
|
|
||||||
<view class="percent" :style="{left:percentNum+'%'}">
|
|
||||||
<view class="percent-num">{{ percentNum }}%</view>
|
|
||||||
<i class="iconfont icon-down"></i>
|
|
||||||
</view>
|
|
||||||
<view class="percent-con">
|
|
||||||
<view class="p-first">
|
|
||||||
<view>实际销售额</view>
|
|
||||||
<view class="font-money">{{totalSales}}</view>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="p-last">
|
</swiper-item>
|
||||||
<view>目标销售额</view>
|
</swiper>
|
||||||
<view class="font-money">{{ targetSales }}</view>
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 日程提醒 -->
|
||||||
|
<view class="white-bg mar-top" v-if="stepList.length>0">
|
||||||
|
<view class="w-b-title">日程提醒
|
||||||
|
<view class="yellow-bg">
|
||||||
|
<i :class="{iconfont:true,'icon-phoneshizhong':true}"></i>
|
||||||
|
<view class="text-black">{{ weekStr }}</view>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="section-line">
|
||||||
|
<customSteps :steps="stepList" :modelValue="stepList"></customSteps>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 销售任务完成情况 -->
|
||||||
|
<view class="white-bg mar-top">
|
||||||
|
<view class="w-b-title">销售任务完成情况
|
||||||
|
<view class="yellow-bg">
|
||||||
|
<picker @change="bindPickerChange" :value="activeIndex" :range="salesList" @click="clickPicker" @cancel="bindPickerCancel">
|
||||||
|
<view class="uni-input">{{salesList[activeIndex]}}</view>
|
||||||
|
</picker>
|
||||||
|
<i :class="{iconfont:true,'icon-down':salesFlag,'icon-up':!salesFlag}" class="picker-icon"></i>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="progress-bg">
|
||||||
|
<progress :percent="percentNum" stroke-width="10" activeColor="#41E1B1" backgroundColor="#F0F0F0" />
|
||||||
|
<view class="percent" :style="{left:percentNum+'%'}">
|
||||||
|
<view class="percent-num">{{ percentNum }}%</view>
|
||||||
|
<i class="iconfont icon-down"></i>
|
||||||
|
</view>
|
||||||
|
<view class="percent-con">
|
||||||
|
<view class="p-first">
|
||||||
|
<view>实际销售额</view>
|
||||||
|
<view class="font-money">{{totalSales}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="p-last">
|
||||||
|
<view>目标销售额</view>
|
||||||
|
<view class="font-money">{{ targetSales }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<!-- 常用服务 -->
|
<!-- 常用服务 -->
|
||||||
<view class="white-bg" v-if="commonServiceList.length>0">
|
<view class="white-bg" v-if="commonServiceList.length>0">
|
||||||
<view class="w-b-title">常用服务</view>
|
<view class="w-b-title">常用服务</view>
|
||||||
<view class="logo-list">
|
<view class="logo-list">
|
||||||
<view v-for="(item,index) in commonServiceList" class="l-l-item" :key="index" @click="handleJump(item.bizUrl)">
|
<view v-for="(item,index) in commonServiceList" class="l-l-item" :key="index" @click="handleJump(item.bizUrl)">
|
||||||
<img :src="'static/images/business/'+item.icon+'.png'" />
|
<img :src="'static/images/business/'+item.icon+'.png'" />
|
||||||
<text class="font-gray">{{ item.bizName }}</text>
|
<text class="font-gray">{{ item.bizName }}</text>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="l-l-item" @click="handleAddCommonSercice">
|
<!-- <view class="l-l-item" @click="handleAddCommonSercice">
|
||||||
<img :src="'static/images/business/icon-add.png'">
|
<img :src="'static/images/business/icon-add.png'">
|
||||||
<text class="font-gray">添加</text>
|
<text class="font-gray">添加</text>
|
||||||
</view> -->
|
</view> -->
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 新闻公告 -->
|
<!-- 新闻公告 -->
|
||||||
<view class="white-bg">
|
<view class="white-bg">
|
||||||
<view class="w-b-title">新闻公告
|
<view class="w-b-title">新闻公告
|
||||||
<text>更多新闻</text>
|
<text>更多新闻</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="news-list">
|
<view class="news-list">
|
||||||
<view v-for="(item,index) in newsList" class="news-item" :key="index">
|
<view v-for="(item,index) in newsList" class="news-item" :key="index">
|
||||||
<view class="n-i-title">{{ item.name }}
|
<view class="n-i-title">{{ item.name }}
|
||||||
<view class="n-i-date">{{ formatDateStr(item.date) }}</view>
|
<view class="n-i-date">{{ formatDateStr(item.date) }}</view>
|
||||||
</view>
|
</view>
|
||||||
<img :src="item.imgSrc" v-if="item.imgSrc" />
|
<img :src="item.imgSrc" v-if="item.imgSrc" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 底部加高度来避免tabbar遮挡 -->
|
<!-- 底部加高度来避免tabbar遮挡 -->
|
||||||
<view class="bottom-height"></view>
|
<view class="bottom-height"></view>
|
||||||
</block>
|
|
||||||
</mescroll-uni>
|
</mescroll-uni>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -159,6 +143,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref,onMounted,computed } from 'vue';
|
import { ref,onMounted,computed } from 'vue';
|
||||||
import { onLoad } from '@dcloudio/uni-app';
|
import { onLoad } from '@dcloudio/uni-app';
|
||||||
|
import customHeader from '@/components/customHeader.vue'
|
||||||
import MescrollUni from 'mescroll-uni/mescroll-uni.vue';
|
import MescrollUni from 'mescroll-uni/mescroll-uni.vue';
|
||||||
import customSteps from '@/components/customSteps.vue'
|
import customSteps from '@/components/customSteps.vue'
|
||||||
import customSearch from '@/components/customSearch.vue'
|
import customSearch from '@/components/customSearch.vue'
|
||||||
@@ -204,7 +189,7 @@ onLoad(async(opt) => {
|
|||||||
// 初始化调用方法
|
// 初始化调用方法
|
||||||
const initLoad =()=>{
|
const initLoad =()=>{
|
||||||
try {
|
try {
|
||||||
showLoading("加载中...")
|
showLoading("加载中...");
|
||||||
getBackBlogCount();
|
getBackBlogCount();
|
||||||
getSwiperList();
|
getSwiperList();
|
||||||
getStepData();
|
getStepData();
|
||||||
@@ -251,24 +236,6 @@ onMounted(() => {
|
|||||||
navBarPaddingTop.value = getNavBarPaddingTop()*2;
|
navBarPaddingTop.value = getNavBarPaddingTop()*2;
|
||||||
})
|
})
|
||||||
|
|
||||||
// 搜索处理
|
|
||||||
let searchShow = ref(false);
|
|
||||||
let searchTypeObj = ref({typeId:1});
|
|
||||||
let searchText = ref(undefined);
|
|
||||||
|
|
||||||
// 获取input 焦点跳转
|
|
||||||
const handleSearchFocus=()=>{
|
|
||||||
searchShow.value = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 搜索完返回处理
|
|
||||||
const handleSearchConfirm = (param1,param2)=>{
|
|
||||||
// console.log(param1,param2)
|
|
||||||
searchText.value=param2.value;;
|
|
||||||
searchShow.value=false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
let backBlogObj = ref({
|
let backBlogObj = ref({
|
||||||
count1:0,
|
count1:0,
|
||||||
count2:0,
|
count2:0,
|
||||||
@@ -409,10 +376,10 @@ const formatDateStr =(times)=>{
|
|||||||
|
|
||||||
.scroll-h{
|
.scroll-h{
|
||||||
/* #ifdef APP-PLUS */
|
/* #ifdef APP-PLUS */
|
||||||
height:calc(100vh - 30px) !important;
|
height:calc(100vh - 78px) !important;
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* #ifndef APP-PLUS */
|
/* #ifndef APP-PLUS */
|
||||||
height: calc(100vh - 30px) !important;
|
height: calc(100vh - 80px) !important;
|
||||||
/* #endif */
|
/* #endif */
|
||||||
}
|
}
|
||||||
:deep(.mescroll-upwarp){
|
:deep(.mescroll-upwarp){
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue';
|
import { ref,getCurrentInstance } from 'vue';
|
||||||
import { onLoad } from '@dcloudio/uni-app';
|
import { onLoad } from '@dcloudio/uni-app';
|
||||||
import { versionCheck,getBindStatus } from '@/api/auth.js';
|
import { versionCheck,getBindStatus } from '@/api/auth.js';
|
||||||
import { formatIOS } from '@/utils/status.js'
|
import { formatIOS } from '@/utils/status.js'
|
||||||
@@ -28,6 +28,7 @@ import { requestAndroidPermissionAsync,requestAndroidPermission } from '@/utils/
|
|||||||
import {showAlert} from '@/utils/message.js'
|
import {showAlert} from '@/utils/message.js'
|
||||||
import { useUserStore } from '@/stores/user';
|
import { useUserStore } from '@/stores/user';
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
// 获取 存储手机的module
|
// 获取 存储手机的module
|
||||||
@@ -45,9 +46,9 @@ let versionData = ref({}); //版本参数
|
|||||||
onLoad(async(opt) => {
|
onLoad(async(opt) => {
|
||||||
console.log("onLoad");
|
console.log("onLoad");
|
||||||
|
|
||||||
uni.preloadPage({url: "/pages/login/login"});
|
// uni.preloadPage({url: "/pages/login/login"});
|
||||||
uni.preloadPage({url: "/pages/deviceAuth/deviceAuth"});
|
// uni.preloadPage({url: "/pages/deviceAuth/deviceAuth"});
|
||||||
uni.preloadPage({url: "/pages/home/home"});
|
// uni.preloadPage({url: "/pages/home/home"});
|
||||||
|
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
// 查询版本接口
|
// 查询版本接口
|
||||||
@@ -89,8 +90,10 @@ onLoad(async(opt) => {
|
|||||||
|
|
||||||
// 检查版本是否是最新的s
|
// 检查版本是否是最新的s
|
||||||
const getOSVesion = async()=>{
|
const getOSVesion = async()=>{
|
||||||
|
let networkEnv = proxy.$NETWORK_ENV;//1-内网 2-外网
|
||||||
systemInfo = uni.getSystemInfoSync();
|
systemInfo = uni.getSystemInfoSync();
|
||||||
let param = {
|
let param = {
|
||||||
|
runEnv:networkEnv,
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
verNumber:systemInfo.appWgtVersion,//当前版本号
|
verNumber:systemInfo.appWgtVersion,//当前版本号
|
||||||
// #endif
|
// #endif
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref,onMounted } from 'vue';
|
import { ref,onMounted,getCurrentInstance } from 'vue';
|
||||||
import { onLoad } from '@dcloudio/uni-app';
|
import { onLoad } from '@dcloudio/uni-app';
|
||||||
import customTabs from '@/components/customTabs.vue';
|
import customTabs from '@/components/customTabs.vue';
|
||||||
import {isPhoneNumber} from '@/utils/validate';
|
import {isPhoneNumber} from '@/utils/validate';
|
||||||
@@ -83,14 +83,17 @@ import { AGREEWELCOME_KEY } from '@/enums/cacheEnums';
|
|||||||
import { getNavBarPaddingTop} from '@/utils/system.js'
|
import { getNavBarPaddingTop} from '@/utils/system.js'
|
||||||
import { useUserStore } from '@/stores/user';
|
import { useUserStore } from '@/stores/user';
|
||||||
import encryptObj from '@/utils/encrypt.js'
|
import encryptObj from '@/utils/encrypt.js'
|
||||||
import { CLIENT_ID } from '@/enums/cacheEnums';
|
|
||||||
import {showAlert} from '@/utils/message.js'
|
import {showAlert} from '@/utils/message.js'
|
||||||
|
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
// 获取 存储手机的module
|
// 获取 存储手机的module
|
||||||
const safeSave = uni.requireNativePlugin("Tm-TmSafeSaveFileModule");
|
const safeSave = uni.requireNativePlugin("Tm-TmSafeSaveFileModule");
|
||||||
// #endif
|
// #endif
|
||||||
const userStore = useUserStore()
|
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const userStore = useUserStore();
|
||||||
|
let clientId = `${proxy.$CLIENT_ID || 2}`;
|
||||||
|
let networkEnv = ref(proxy.$NETWORK_ENV);//1-内网 2-外网
|
||||||
onLoad(async(opt) => {
|
onLoad(async(opt) => {
|
||||||
uni.setStorageSync('page_cache',true);
|
uni.setStorageSync('page_cache',true);
|
||||||
})
|
})
|
||||||
@@ -248,13 +251,13 @@ const submitForm = () => {
|
|||||||
// 用户名和密码登录
|
// 用户名和密码登录
|
||||||
form2.value.validate().then(async param => {
|
form2.value.validate().then(async param => {
|
||||||
param.loginType = activeTab.value;
|
param.loginType = activeTab.value;
|
||||||
let clientId = `${CLIENT_ID || "2"}`;
|
|
||||||
param.clientId = clientId;
|
param.clientId = clientId;
|
||||||
let password = encryptObj.Encrypt(param.username + clientId + "," + param.password);
|
let password = encryptObj.Encrypt(param.username + clientId + "," + param.password);
|
||||||
param.password = password;
|
param.password = password;
|
||||||
|
param.runEnv = networkEnv.value;
|
||||||
|
|
||||||
// #ifdef H5
|
// #ifdef H5
|
||||||
param.uniqCode = '7f47cfb4-59e2-4cb9-ac46-9da5e23c4de2';//uni.getStorageSync('app_device_id');//先从缓存取之后处理 '7f47cfb4-59e2-4cb9-ac46-9da5e23c4de2'//
|
param.uniqCode = 'sn123456';//h5测试用 内网-sn123456 外网-e5687e80-526f-4522-ba7d-41d5db197a15
|
||||||
let res = await login(param);
|
let res = await login(param);
|
||||||
userStore.login(res);
|
userStore.login(res);
|
||||||
uni.switchTab({ url: '/pages/home/home' })
|
uni.switchTab({ url: '/pages/home/home' })
|
||||||
|
|||||||
@@ -2,17 +2,18 @@
|
|||||||
<view class="con-body">
|
<view class="con-body">
|
||||||
<view class="con-bg">
|
<view class="con-bg">
|
||||||
<!-- 头部 -->
|
<!-- 头部 -->
|
||||||
<customHeader ref="customHeaderRef" :title="'消息'" :leftFlag="false" :rightFlag="true" v-if="!searchShow">
|
<customHeader ref="customHeaderRef" :title="!searchShow?'消息':'搜索'"
|
||||||
<template #right>
|
:leftFlag="!searchShow?false:true"
|
||||||
|
:rightFlag="true"
|
||||||
|
@back="handleBack" :searchType="searchShow?1:undefined"
|
||||||
|
>
|
||||||
|
<template #right v-if="!searchShow">
|
||||||
<view class="head-right" @click="handleRead">
|
<view class="head-right" @click="handleRead">
|
||||||
<img :src="'static/images/icon-clean@2x.png'" />清除未读
|
<img :src="'static/images/icon-clean@2x.png'" />清除未读
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
</customHeader>
|
</customHeader>
|
||||||
<customHeader v-else ref="customHeaderRef" :title="'搜索'"
|
|
||||||
:leftFlag="true" :rightFlag="false"
|
|
||||||
@back="handleBack" :searchType="1"
|
|
||||||
></customHeader>
|
|
||||||
<!-- 高度来避免头部遮挡 -->
|
<!-- 高度来避免头部遮挡 -->
|
||||||
<view class="top-height"></view>
|
<view class="top-height"></view>
|
||||||
|
|
||||||
@@ -54,7 +55,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted,computed } from 'vue'
|
import { ref, onMounted,computed } from 'vue'
|
||||||
import { onLoad } from '@dcloudio/uni-app';
|
import { onLoad,onHide } from '@dcloudio/uni-app';
|
||||||
import customHeader from '@/components/customHeader.vue'
|
import customHeader from '@/components/customHeader.vue'
|
||||||
import customSearch from '@/components/customSearch.vue'
|
import customSearch from '@/components/customSearch.vue'
|
||||||
import MescrollUni from 'mescroll-uni/mescroll-uni.vue';
|
import MescrollUni from 'mescroll-uni/mescroll-uni.vue';
|
||||||
@@ -85,6 +86,9 @@ let noticeTypeList=ref([
|
|||||||
]);
|
]);
|
||||||
let notictTypeCheck = ref({});//选中类型
|
let notictTypeCheck = ref({});//选中类型
|
||||||
|
|
||||||
|
onHide(()=>{
|
||||||
|
searchShow.value=false;
|
||||||
|
})
|
||||||
|
|
||||||
// 搜索返回操作
|
// 搜索返回操作
|
||||||
const handleBack=()=>{
|
const handleBack=()=>{
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ import MescrollUni from 'mescroll-uni/mescroll-uni.vue';
|
|||||||
import { getNavBarPaddingTop } from '@/utils/system.js'
|
import { getNavBarPaddingTop } from '@/utils/system.js'
|
||||||
import { getUserInfo,versionCheck } from '@/api/auth.js'
|
import { getUserInfo,versionCheck } from '@/api/auth.js'
|
||||||
import { formatIOS } from '@/utils/status.js'
|
import { formatIOS } from '@/utils/status.js'
|
||||||
|
import { showAlert } from '@/utils/message.js'
|
||||||
import { useUserStore } from '@/stores/user';
|
import { useUserStore } from '@/stores/user';
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
||||||
@@ -193,10 +194,14 @@ const getVersion = async ()=>{
|
|||||||
|
|
||||||
// 3.退出登录
|
// 3.退出登录
|
||||||
const handleLoginOut = async ()=>{
|
const handleLoginOut = async ()=>{
|
||||||
userStore.logout();
|
|
||||||
uni.reLaunch({
|
showAlert('是否确认退出?','提示',true,()=>{
|
||||||
url: '/pages/login/login',
|
userStore.logout();
|
||||||
});
|
uni.reLaunch({
|
||||||
|
url: '/pages/login/login',
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4.跳转到版本
|
// 4.跳转到版本
|
||||||
@@ -213,7 +218,7 @@ onMounted(() => {
|
|||||||
<style scoped>
|
<style scoped>
|
||||||
.scroll-h{
|
.scroll-h{
|
||||||
/* #ifdef APP-PLUS */
|
/* #ifdef APP-PLUS */
|
||||||
height:calc(100vh - 30px) !important;
|
height:calc(100vh - 50px) !important;
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* #ifndef APP-PLUS */
|
/* #ifndef APP-PLUS */
|
||||||
height: calc(100vh - 30px) !important;
|
height: calc(100vh - 30px) !important;
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ page {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: #F5F5F5;
|
background-color: #307AF5;
|
||||||
|
/* background-color: #F5F5F5; */
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,26 +20,30 @@ page {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
background-color: #F5F5F5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.con-bg {
|
.con-bg {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
/* #ifdef APP-PLUS */
|
/* #ifdef APP-PLUS */
|
||||||
background: url('@/static/images/bg-Blue.png') no-repeat;
|
background-color: #F5F5F5;
|
||||||
background-size: 100vw 761rpx;
|
background-image: url('@/static/images/bg-Blue.png');
|
||||||
width: 100vw;
|
background-repeat: no-repeat;
|
||||||
height: 761rpx;
|
background-size: 750rpx 761rpx;
|
||||||
|
width: 750rpx;
|
||||||
|
/* height: 761rpx; */
|
||||||
left: 0;
|
left: 0;
|
||||||
/* #endif */
|
/* #endif */
|
||||||
/* #ifndef APP-PLUS */
|
/* #ifndef APP-PLUS */
|
||||||
background: url('@/static/images/bg-Blue.png') no-repeat;
|
background-color: #F5F5F5;
|
||||||
|
background-image: url('@/static/images/bg-Blue.png');
|
||||||
|
background-repeat: no-repeat;
|
||||||
background-size: 750rpx 761rpx;
|
background-size: 750rpx 761rpx;
|
||||||
width: 750rpx;
|
width: 750rpx;
|
||||||
height: 761rpx;
|
/* height: 761rpx; */
|
||||||
left: 50%;
|
left: 50%;
|
||||||
margin-left: -375rpx;
|
margin-left: -375rpx;
|
||||||
/* #endif */
|
/* #endif */
|
||||||
@@ -187,7 +192,7 @@ page {
|
|||||||
/* width:690rpx; */
|
/* width:690rpx; */
|
||||||
width:630rpx;
|
width:630rpx;
|
||||||
height:56rpx;
|
height:56rpx;
|
||||||
margin:0 auto 30rpx;
|
margin:10rpx auto 30rpx;
|
||||||
padding:0 30rpx;
|
padding:0 30rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
color:#fff;
|
color:#fff;
|
||||||
|
|||||||
BIN
src/static/images/login-biaoshi.png
Normal file
BIN
src/static/images/login-biaoshi.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 860 B |
Reference in New Issue
Block a user