4 files modified
1 files added
| New file |
| | |
| | | <template> |
| | | <div class="login-container" ref="login" @keyup.enter.native="handleLogin"> |
| | | <top-color v-show="false"></top-color> |
| | | <div class="login-weaper animated bounceInDown"> |
| | | <div class="login-left"> |
| | | <div class="login-time"> |
| | | {{ time }} |
| | | </div> |
| | | <img class="img" src="/img/logo.png" alt="" /> |
| | | <!-- <p class="title">{{ $t("login.info") }}</p>--> |
| | | <p class="title">保安员定点考勤系统</p> |
| | | </div> |
| | | <div class="login-border"> |
| | | <!-- <div class="login-erweima">--> |
| | | <!-- <div class="title-l-e">--> |
| | | <!-- <img :src="link" alt="" />--> |
| | | <!-- </div>--> |
| | | <!-- <div class="title-l-e">扫一扫 加入群聊</div>--> |
| | | <!-- </div>--> |
| | | <div class="login-main"> |
| | | <h4 class="login-title"> |
| | | {{ $t("login.title") }} |
| | | <!-- <top-lang></top-lang>--> |
| | | </h4> |
| | | <h4 class="login-title-child">IoT security cloud service platform</h4> |
| | | <userLogin></userLogin> |
| | | <!-- <codeLogin v-else-if="activeName==='code'"></codeLogin>--> |
| | | <!-- <thirdLogin v-else-if="activeName==='third'"></thirdLogin>--> |
| | | <div class="login-menu"> |
| | | <!-- <a href="#" @click.stop="activeName='user'">{{ $t('login.userLogin') }}</a>--> |
| | | <a href="#" @click.stop="zShow">{{ $t("login.phoneLogin") }}</a> |
| | | <!-- <a href="#" @click.stop="activeName='third'">{{ $t('login.thirdLogin') }}</a>--> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="z" v-show="activeName == 'code'" :style="{height:height}"> |
| | | <codeLogin v-on:height='setHeight'></codeLogin> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import userLogin from "./userlogin"; |
| | | import codeLogin from "./codelogin"; |
| | | import thirdLogin from "./thirdlogin"; |
| | | import { mapGetters } from "vuex"; |
| | | import { dateFormat } from "@/util/date"; |
| | | import { validatenull } from "@/util/validate"; |
| | | import topLang from "@/page/index/top/top-lang"; |
| | | import topColor from "@/page/index/top/top-color"; |
| | | import { getQueryString, getTopUrl } from "@/util/util"; |
| | | import { geterweima } from "@/api/logs"; |
| | | |
| | | export default { |
| | | name: "login", |
| | | components: { |
| | | userLogin, |
| | | codeLogin, |
| | | thirdLogin, |
| | | topLang, |
| | | topColor, |
| | | }, |
| | | data() { |
| | | return { |
| | | time: "", |
| | | activeName: "user", |
| | | socialForm: { |
| | | tenantId: "000000", |
| | | source: "", |
| | | code: "", |
| | | state: "", |
| | | link: "", |
| | | }, |
| | | height:"500px" |
| | | }; |
| | | }, |
| | | watch: { |
| | | $route() { |
| | | this.handleLogin(); |
| | | }, |
| | | }, |
| | | created() { |
| | | this.handleLogin(); |
| | | this.getTime(); |
| | | geterweima(9).then((res) => { |
| | | this.link = res.data.data.link; |
| | | }); |
| | | }, |
| | | mounted() {}, |
| | | computed: { |
| | | ...mapGetters(["website", "tagWel"]), |
| | | }, |
| | | props: [], |
| | | methods: { |
| | | //获取高度 |
| | | setHeight(height){ |
| | | // console.log(height,8888); |
| | | this.height = height; |
| | | }, |
| | | getTime() { |
| | | setInterval(() => { |
| | | this.time = dateFormat(new Date()); |
| | | }, 1000); |
| | | }, |
| | | handleLogin() { |
| | | const topUrl = getTopUrl(); |
| | | const redirectUrl = "/oauth/redirect/"; |
| | | this.socialForm.source = getQueryString("source"); |
| | | this.socialForm.code = getQueryString("code"); |
| | | this.socialForm.state = getQueryString("state"); |
| | | if ( |
| | | validatenull(this.socialForm.source) && |
| | | topUrl.includes(redirectUrl) |
| | | ) { |
| | | let source = topUrl.split("?")[0]; |
| | | source = source.split(redirectUrl)[1]; |
| | | this.socialForm.source = source; |
| | | } |
| | | if ( |
| | | !validatenull(this.socialForm.source) && |
| | | !validatenull(this.socialForm.code) && |
| | | !validatenull(this.socialForm.state) |
| | | ) { |
| | | const loading = this.$loading({ |
| | | lock: true, |
| | | text: "第三方系统登录中,请稍后。。。", |
| | | spinner: "el-icon-loading", |
| | | }); |
| | | this.$store |
| | | .dispatch("LoginBySocial", this.socialForm) |
| | | .then(() => { |
| | | window.location.href = topUrl.split(redirectUrl)[0]; |
| | | this.$router.push({ path: this.tagWel.value }); |
| | | loading.close(); |
| | | }) |
| | | .catch(() => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }, |
| | | zShow() { |
| | | document.querySelector(".z").style.display = "block"; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .z { |
| | | position: fixed; |
| | | margin: auto; |
| | | padding: 10px; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 80px; |
| | | width: 600px; |
| | | height: 500px; |
| | | background-color: #fff; |
| | | box-sizing: border-box; |
| | | box-shadow: 6px 6px 5px #909090; |
| | | } |
| | | |
| | | .company-jx { |
| | | position: fixed; |
| | | margin: auto; |
| | | top: auto; |
| | | left: 0px; |
| | | right: 0px; |
| | | bottom: 120px; |
| | | text-align: center; |
| | | color: #fff; |
| | | font-size: 15px; |
| | | } |
| | | @import "@/styles/login.scss"; |
| | | </style> |
| | |
| | | {{ time }} |
| | | </div> |
| | | <img class="img" src="/img/logo.png" alt="" /> |
| | | <p class="title">{{ $t("login.info") }}</p> |
| | | <p class="title">保安员分级统筹管理系统</p> |
| | | </div> |
| | | <div class="login-border"> |
| | | <div class="login-erweima"> |
| | | <div class="title-l-e"> |
| | | <img :src="link" alt="" /> |
| | | </div> |
| | | <div class="title-l-e">扫一扫 加入群聊</div> |
| | | </div> |
| | | <!-- <div class="login-erweima">--> |
| | | <!-- <div class="title-l-e">--> |
| | | <!-- <img :src="link" alt="" />--> |
| | | <!-- </div>--> |
| | | <!-- <div class="title-l-e">扫一扫 加入群聊</div>--> |
| | | <!-- </div>--> |
| | | <div class="login-main"> |
| | | <h4 class="login-title"> |
| | | {{ $t("login.title") }} |
| | |
| | | } |
| | | }, |
| | | { |
| | | path: '/checkLogin', |
| | | name: '登录页', |
| | | component: () => |
| | | import( /* webpackChunkName: "page" */ '@/page/login/checkIndex.vue'), |
| | | meta: { |
| | | keepAlive: true, |
| | | isTab: false, |
| | | isAuth: false |
| | | } |
| | | }, |
| | | { |
| | | path: '/lock', |
| | | name: '锁屏页', |
| | | component: () => |
| | |
| | | { |
| | | label: "上岗时间", |
| | | prop: "dutyTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | display: false, |
| | | }, |
| | | { |
| | | label: "上岗时间", |
| | | prop: "dutyTime", |
| | | type: "time", |
| | | format: "HH:mm", |
| | | valueFormat: "HH:mm", |
| | | hide:true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | { |
| | | label: "下岗时间", |
| | | prop: "layoffTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | display: false, |
| | | }, |
| | | { |
| | | label: "下岗时间", |
| | | prop: "layoffTime", |
| | | type: "time", |
| | | format: "HH:mm", |
| | | valueFormat: "HH:mm", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | methods: { |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.form.id).then(res => { |
| | | getDetail({id:this.form.id}).then(res => { |
| | | this.form = res.data.data; |
| | | this.form['address'] = [this.form.lon,this.form.lat,this.form.position] |
| | | |
| | |
| | | { |
| | | label: "上岗时间", |
| | | prop: "dutyTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | display: false, |
| | | }, |
| | | { |
| | | label: "上岗时间", |
| | | prop: "dutyTime", |
| | | type: "time", |
| | | format: "HH:mm", |
| | | valueFormat: "HH:mm", |
| | | hide:true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | { |
| | | label: "下岗时间", |
| | | prop: "layoffTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | display: false, |
| | | }, |
| | | { |
| | | label: "下岗时间", |
| | | prop: "layoffTime", |
| | | type: "time", |
| | | format: "HH:mm", |
| | | valueFormat: "HH:mm", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | methods: { |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.form.id).then(res => { |
| | | getDetail({id:this.form.id}).then(res => { |
| | | this.form = res.data.data; |
| | | this.form['address'] = [this.form.lon,this.form.lat,this.form.position] |
| | | |
| | |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | params = this.questionBankSearch; |
| | | |
| | | |
| | | const { releaseTimeRange } = this.query; |
| | | let values = { |