Files
dvcp_v2_wxcp_app/src/App.vue

190 lines
3.5 KiB
Vue
Raw Normal View History

2021-11-15 10:29:05 +08:00
<script>
import {mapMutations, mapState} from 'vuex'
export default {
provide() {
return {
root: this,
}
},
onLaunch: function () {
2021-11-24 16:47:27 +08:00
this.repairWxSDK()
2022-05-30 18:46:49 +08:00
this.initLoginBtn()
this.getApps()
2021-11-15 10:29:05 +08:00
},
onShow: function () {
this.initWaterMarker()
},
onPageNotFound() {
},
computed: {
2022-07-19 18:06:22 +08:00
...mapState(['user']),
2021-11-15 10:29:05 +08:00
},
methods: {
2022-05-30 18:46:49 +08:00
...mapMutations(['initWaterMarker', 'logout', 'getConfig', 'setApps']),
2021-11-23 14:58:51 +08:00
goto(params, cb) {
2021-11-23 09:07:37 +08:00
let {path: url, query: {app}} = this.$route
params.query = {app, ...(params.query || {})}
uni.navigateTo({
url, success: () => {
this.$router.push({...params})
2021-11-23 14:58:51 +08:00
cb && cb()
2021-11-23 09:07:37 +08:00
}
})
2021-11-24 16:47:27 +08:00
},
repairWxSDK() {
wx = jWeixin
2022-05-30 18:46:49 +08:00
},
initLoginBtn() {
let btn = document.createElement("div")
btn.id = "__loginBtn"
btn.innerText = "登录"
btn.addEventListener("click", () => {
if (location.pathname == "/pages/login") {
return this.$u.toast("已在登录页!")
} else uni.navigateTo({url: "/pages/login?back=" + encodeURIComponent(location.href?.replace(location.origin, ""))})
})
2022-06-27 11:44:20 +08:00
btn.addEventListener('touchmove', e => {
let {clientX, clientY, target: {clientWidth, clientHeight}} = e.touches?.[0],
{width, height} = screen
btn.style.right = `${Math.min(Math.max(0, width - clientX - clientWidth), width - clientWidth)}px`
btn.style.top = `${Math.min(Math.max(0, clientY), height - clientHeight)}px`
})
2022-05-30 18:46:49 +08:00
document.body.appendChild(btn)
},
getApps() {
this.setApps([])
this.$http.post("/node/wechatapps/list", null, {
withoutToken: true,
2022-05-30 18:46:49 +08:00
params: {size: 999, type: 'wxwork'}
}).then(res => {
if (res?.data) {
this.setApps(res.data.records)
}
})
},
2021-11-15 10:29:05 +08:00
},
}
</script>
<style lang="scss">
2022-08-09 11:11:53 +08:00
@import 'styles/common';
2021-11-15 10:29:05 +08:00
body {
font-family: 'Microsoft YaHei', serif;
}
uni-page-body {
2022-01-14 09:25:58 +08:00
min-height: 100%;
// height: 100vh;
2021-11-15 10:29:05 +08:00
background: #f5f5f5;
position: relative;
}
2022-03-11 16:48:38 +08:00
2022-05-30 18:46:49 +08:00
.text-hover {
opacity: 0.7;
}
.bg-hover {
background: #eee;
}
2021-11-15 10:29:05 +08:00
div[bottom] {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
height: 128px;
padding: 24px 32px;
box-sizing: border-box;
background: #ffffff;
border-top: 1px solid #d4d4d4;
display: flex;
gap: 32px;
& > * {
flex: 1;
min-width: 0;
& + * {
margin-left: 32px;
}
}
}
uni-button {
border-radius: 4px;
&.u-btn--primary {
background-color: $uni-color-primary !important;
border-color: $uni-color-primary !important;
}
&:after {
border-radius: 4px;
}
}
.fill {
flex: 1;
min-width: 0;
min-height: 0;
}
.u-form-item {
width: 100%;
min-height: 100px;
background: #ffffff;
padding: 0 32px !important;
box-sizing: border-box;
display: flex;
line-height: normal !important;
.u-form-item__body {
height: inherit;
flex: 1;
.u-form-item--left {
min-height: 100px;
}
.u-form-item--right__content__slot {
padding-bottom: 10px;
}
}
.u-form-item__message {
margin: 15px 0;
}
}
2022-05-30 18:46:49 +08:00
#__loginBtn {
position: fixed;
right: 16px;
top: 20px;
background-color: $uni-color-primary;
color: #fff;
padding: 8px 16px;
border-radius: 8px;
font-size: 24px;
box-shadow: 0 0 0.61538462em rgb(0 0 0 / 40%);
2022-06-27 11:44:20 +08:00
z-index: 202206271112;
2022-05-30 18:46:49 +08:00
}
2021-11-15 10:29:05 +08:00
@keyframes mapWarn {
0% {
transform: scale(.5);
opacity: 1
}
30% {
opacity: .5
}
to {
transform: scale(1.4);
opacity: 0
}
}
</style>