Browse Source

app2.0 统一身份认证[H5]

西昌分支
ndbs 1 year ago
parent
commit
03032e7489
5 changed files with 608 additions and 0 deletions
  1. +200
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/SSO/MyApp/attestation.vue
  2. +119
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/SSO/MyApp/list.vue
  3. +26
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/SSO/MyApp/listview.vue
  4. +163
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/SSO/MyApp20/attestation.vue
  5. +100
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/SSO/MyApp20/list.vue

+ 200
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/SSO/MyApp/attestation.vue View File

@@ -0,0 +1,200 @@
<template>
<view class="wrap">
<view class="imgwrap">
<image src="@/static/SSO/attes.png" mode=""></image>
</view>
<view class="title">IDENTITY AUTHENTICATION</view>
<view class="titletext">统一身份认证平台</view>

<view>
<view v-if="firsttype">
<view class="loading">系统认证中,请耐心等待......</view>
</view>
<view v-else>
<view class="logintitle">用户登录</view>
<view class="logintext">首次登录,请输入账号密码。</view>
<view class="account" style="margin-top: 30rpx;">
<view>账号:</view>
<input v-model="UPUserName" class="uni-input" focus placeholder="请输入账号" />
</view>
<view class="account">
<view>密码:</view>
<input v-model="UPPass" class="uni-input" password="" placeholder="请输入密码" />
</view>
<view class="btnwrap">
<button @click="register">登录</button>
</view>
</view>
</view>



</view>
</template>

<script>
export default {
data() {
return {
dataitem: '',
sysid: '',
openid: '',
firsttype: true,
UPUserName: '',
UPPass: '',
UPId: '',
FId: '',
UserId: ''
}
},
onLoad(data) {
this.dataitem = JSON.parse(data.item)
this.sysid = this.dataitem.sysid;
this.openid = this.dataitem.openid;
setTimeout(() => {
this.gotolist(this.sysid, this.openid)
}, 1000)

},
methods: {
gotolist(sysid, openid) {
let _this = this
// const { sysid,openid } = this
this.HTTP_GET(
'quanjiang/sso/goto', {
sysid,
openid
},
'加载数据时出错'
).then(res => {
let item = {
FInterfaceUrl: res.FInterfaceUrl,
FName: _this.dataitem.FName
}
if (res.FInterfaceUrl.indexOf('http') != -1) {
uni.redirectTo({
// url:`/pages/SSO/MyApp/listview?FInterfaceUrl=${item.FInterfaceUrl}&FName=${item.FName}`
url: `/pages/SSO/MyApp/listview?data=` + encodeURIComponent(JSON.stringify(
item))
})
} else {
let sysid = item.FInterfaceUrl.slice(item.FInterfaceUrl.indexOf('=') + 1, item
.FInterfaceUrl.indexOf('&'))
let openid = item.FInterfaceUrl.slice(item.FInterfaceUrl.lastIndexOf('=') + 1)
this.HTTP_GET(
'quanjiang/sso/first', {
sysid,
openid
},
'加载数据时出错'
).then(resitem => {
_this.firsttype = false
_this.UPId = resitem.UPId
_this.FId = resitem.FId
_this.UserId = resitem.UserId
})
}
})

},
register() {
let _this = this
let {UPId,UPUserName,UPPass,FId,UserId} = this
if (UPUserName && UPPass) {
_this.HTTP_POST(
'quanjiang/sso/first', {UPId,FId,UserId,UPUserName,UPPass},'加载数据时出错').then(resitem => {
let sysid = resitem.FInterfaceUrl.slice(resitem.FInterfaceUrl.indexOf('=') + 1, resitem
.FInterfaceUrl.indexOf('&'))
let openid = resitem.FInterfaceUrl.slice(resitem.FInterfaceUrl.lastIndexOf('=') + 1)
this.gotolist(sysid, openid)
})
} else {
this.CONFIRM('账号或密码不能为空')
}


}
}
}
</script>

<style lang="less">
.imgwrap {
width: 214rpx;
margin: 0 auto;
padding-top: 100rpx;
font-size: 0;
}

.imgwrap image {
width: 214rpx;
height: 200rpx;
display: block;
}

.title {
font-size: 24rpx;
text-align: center;
margin-top: 40rpx;
color: gray;
}

.titletext {
font-size: 50rpx;
text-align: center;
margin-top: 20rpx;
}

.loading {
font-size: 28rpx;
text-align: center;
margin-top: 50rpx;
color: goldenrod;
}

.logintitle {
font-size: 36rpx;
text-align: center;
margin-top: 90rpx;
color: gray;
}

.logintext {
font-size: 28rpx;
text-align: center;
margin-top: 30rpx;
color: goldenrod;
}

.account {
display: flex;
align-items: center;
margin-top: 30rpx;
justify-content: center;
}

.account view {
font-size: 38rpx;
}

.account input {
border: 1px solid #ccc;
height: 80rpx;
font-size: 30rpx;
width: 450rpx;
padding-left: 20rpx;
}

.btnwrap {}

.btnwrap button {
width: 50%;
line-height: 50px;
background-color: #0c86d8;
text-align: center;
color: #fff;
border-radius: 4px;
margin: 40px auto;
font-size: 40rpx;
}
</style>

+ 119
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/SSO/MyApp/list.vue View File

@@ -0,0 +1,119 @@
<template>
<view class="page" id="more">

<!-- 分块显示功能区 -->
<template v-for="(group, title) in listitem">
<view :key="title" class="margin-bottom">
<!-- 区块标题 -->
<l-title>{{ group.FTName }}</l-title>
<!-- 按钮组 -->
<view class="function-list cu-list grid no-border col-4">
<view v-for="(item, index) in group.PermFunction" :key="index"
class="cu-item text-center flex flex-wrap justify-center align-center">
<view @click="funcListClick(item)" style="backgroundColor:#62bbff;"
class="app-item align-center flex flex-wrap justify-center align-center">
<l-icon type="calendar" color="white" class="text-sl" />
</view>
<text>{{ item && item.FName }}</text>
</view>
</view>
</view>
</template>
</view>
</template>

<script>
import without from 'lodash/without'
import concat from 'lodash/concat'
import keyBy from 'lodash/keyBy'
import mapKeys from 'lodash/mapKeys'
import mapValues from 'lodash/mapValues'
import groupBy from 'lodash/groupBy'

export default {
data() {
return {
allList: [],
myList: [],
editList: [],
searchText: '',
listitem: [],
focus: false,
edit: false
}
},

async onLoad() {
await this.init()
},

methods: {
// 页面初始化
async init() {
this.LOADING('加载菜单中…')
this.HTTP_GET(
'quanjiang/sso/list'
).then(res => {
this.listitem = res
this.HIDE_LOADING()
})
},

// 点击按钮
funcListClick(item) {
if(item.FInterfaceUrl.indexOf('http')!=-1){
let option = {
FInterfaceUrl:item.FInterfaceUrl,
FName:item.FName
}
uni.navigateTo({
url:`/pages/SSO/MyApp/listview?data=`+ encodeURIComponent(JSON.stringify(option))
})
}else{
console.log(item.FInterfaceUrl)
let FInterfaceUrldata = item.FInterfaceUrl
if(FInterfaceUrldata.indexOf('sysid')!=-1 && FInterfaceUrldata.indexOf('openid')!=-1 ){
let sysid = item.FInterfaceUrl.slice(item.FInterfaceUrl.indexOf('sysid')+6,item.FInterfaceUrl.indexOf('openid')-1)
let openid = item.FInterfaceUrl.slice(item.FInterfaceUrl.lastIndexOf ('openid')+7)
let FName = item.FName
let dataitem = {
sysid,openid,FName
}
console.log(dataitem)
uni.navigateTo({
url:`/pages/SSO/MyApp/attestation?item=${JSON.stringify(dataitem)}`
})
}
}
},

}
}
</script>

<style lang="less" scoped>
.function-list {
padding-bottom: 0;

.cu-item {
.app-item {
border-radius: 50%;
height: 45px;
width: 45px;
}
}
}
</style>

<style lang="less">
#more {
.function-list .cu-item text[class*='cuIcon'] {
margin-top: 0 !important;
}
}

page {
// padding-top: 100rpx;
}
</style>

+ 26
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/SSO/MyApp/listview.vue View File

@@ -0,0 +1,26 @@
<template>
<view>
<web-view :src="url"></web-view>
</view>
</template>

<script>
export default {
data() {
return {
dataitem: '',
url: ''
}
},
onLoad(option) {
let dataitem = JSON.parse(option.data)
this.url = dataitem.FInterfaceUrl
uni.setNavigationBarTitle({
title: dataitem.FName
})
}
}
</script>

<style>
</style>

+ 163
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/SSO/MyApp20/attestation.vue View File

@@ -0,0 +1,163 @@
<template>
<view class="wrap">
<view class="imgwrap">
<image src="@/static/SSO/attes.png" mode=""></image>
</view>
<view class="title">IDENTITY AUTHENTICATION</view>
<view class="titletext">统一身份认证平台</view>

<view>
<view v-if="firsttype">
<view class="loading">系统认证中,请耐心等待......</view>
</view>
<view v-else>
<view class="logintitle">用户登录</view>
<view class="logintext">首次登录,请输入账号密码。</view>
<view class="account" style="margin-top: 30rpx;">
<view>账号:</view>
<input v-model="UPUserName" class="uni-input" focus placeholder="请输入账号" />
</view>
<view class="account">
<view>密码:</view>
<input v-model="UPPass" class="uni-input" password="" placeholder="请输入密码" />
</view>
<view class="btnwrap">
<button @click="register">登录</button>
</view>
</view>
</view>



</view>
</template>

<script>
export default {
data() {
return {
dataitem: '',
FName: '',
appid: '',
firsttype: true,
UPUserName: '',
UPPass: '',
UPId: '',
FId: '',
UserId: ''
}
},
onLoad(data) {
this.dataitem = JSON.parse(data.item)
this.FName = this.dataitem.FName;
this.appid = this.dataitem.appid;
setTimeout(() => {
this.gotolist()
}, 1000)

},
methods: {
gotolist() {
let _this = this
const { appid } = this
// console.log(appid)
this.HTTP_GET(
'quanjiang/sso/goto20', {
appid
},
'加载数据时出错'
).then(res => {
let option = {
FInterfaceUrl:res.FInterfaceUrl,
FName:this.FName
}
uni.redirectTo({
url:`/pages/SSO/MyApp/listview?data=`+ encodeURIComponent(JSON.stringify(option))
})
})

}
}
}
</script>

<style lang="less">
.imgwrap {
width: 214rpx;
margin: 0 auto;
padding-top: 100rpx;
font-size: 0;
}

.imgwrap image {
width: 214rpx;
height: 200rpx;
display: block;
}

.title {
font-size: 24rpx;
text-align: center;
margin-top: 40rpx;
color: gray;
}

.titletext {
font-size: 50rpx;
text-align: center;
margin-top: 20rpx;
}

.loading {
font-size: 28rpx;
text-align: center;
margin-top: 50rpx;
color: goldenrod;
}

.logintitle {
font-size: 36rpx;
text-align: center;
margin-top: 90rpx;
color: gray;
}

.logintext {
font-size: 28rpx;
text-align: center;
margin-top: 30rpx;
color: goldenrod;
}

.account {
display: flex;
align-items: center;
margin-top: 30rpx;
justify-content: center;
}

.account view {
font-size: 38rpx;
}

.account input {
border: 1px solid #ccc;
height: 80rpx;
font-size: 30rpx;
width: 450rpx;
padding-left: 20rpx;
}

.btnwrap {}

.btnwrap button {
width: 50%;
line-height: 50px;
background-color: #0c86d8;
text-align: center;
color: #fff;
border-radius: 4px;
margin: 40px auto;
font-size: 40rpx;
}
</style>

+ 100
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/SSO/MyApp20/list.vue View File

@@ -0,0 +1,100 @@
<template>
<view class="page" id="more">
<view class="function-list cu-list grid no-border col-4">
<view v-for="(item, index) in listitem" :key="index"
class="cu-item text-center flex flex-wrap justify-center align-center">
<view @click="funcListClick(item)" style="backgroundColor:#62bbff;"
class="app-item align-center flex flex-wrap justify-center align-center">
<l-icon type="calendar" color="white" class="text-sl" />
</view>
<text>{{ item && item.FName }}</text>
</view>
</view>
</view>
</template>

<script>
import without from 'lodash/without'
import concat from 'lodash/concat'
import keyBy from 'lodash/keyBy'
import mapKeys from 'lodash/mapKeys'
import mapValues from 'lodash/mapValues'
import groupBy from 'lodash/groupBy'

export default {
data() {
return {
allList: [],
myList: [],
editList: [],
searchText: '',

listitem: [],
focus: false,
edit: false
}
},

async onLoad() {
await this.init()
},

methods: {
// 页面初始化
async init() {

this.LOADING('加载菜单中…')
this.HTTP_GET(
'quanjiang/sso/list20'
).then(res => {
this.listitem = res
this.HIDE_LOADING()
})
},



// 点击按钮
funcListClick(item) {
let appid = item.FId
let FName = item.FName
let dataitem = {
appid,FName
}
uni.navigateTo({
url:`/pages/SSO/MyApp20/attestation?item=${JSON.stringify(dataitem)}`
})
},

}
}
</script>

<style lang="less" scoped>
.function-list {
padding-bottom: 0;

.cu-item {
.app-item {
border-radius: 50%;
height: 45px;
width: 45px;
}
}
}
</style>

<style lang="less">
#more {
.function-list .cu-item text[class*='cuIcon'] {
margin-top: 0 !important;
}
}

page {
// padding-top: 100rpx;
}
</style>

Loading…
Cancel
Save