Browse Source

合併兩版首頁砍掉不用的頁面

osbert 4 years ago
parent
commit
92ff4cb543

+ 444 - 166
TEAMModelOS/ClientApp/src/view/login/Index.vue

@@ -1,197 +1,475 @@
 <style lang="less" scoped>
-  @import './Index.less';
+@import "./Index.less";
 </style>
 
 <style lang="less">
-.identityModal{
-  .ivu-modal{
-    .ivu-modal-content{
-      background-color: #2a292e;
-      padding: 12px;
-      border: 1px solid #ccc;
-      .ivu-modal-header, .ivu-modal-footer{
-        border: 0;
-      }
-      .ivu-modal-footer{
-        padding: 0;
-      }
-      .ivu-modal-header{
-        padding: 5px 16px;
-        p{
-          color: whitesmoke;
+.loginBox {
+    .loginForm {
+        .formItem {
+            input,
+            select {
+                border-radius: 0;
+                font-size: 12px;
+            }
+            .ivu-select-selection {
+                border-radius: 0;
+            }
         }
-      }
-      .identity-body{
+        .schoolAutoComplete {
+            height: 170px;
+            .schoolsBox {
+                border-bottom: 1px solid #e9e9e9;
+                padding: 5px 5px 5px 15px;
+                .area {
+                    font-size: 12px;
+                    padding: 5px;
+                }
+            }
+        }
+        .ivu-select-dropdown {
+            border-radius: 0;
+        }
+    }
+}
+.identityModal {
+    .ivu-modal {
+        .ivu-modal-content {
+            background-color: #2a292e;
+            padding: 12px;
+            border: 1px solid #ccc;
+            .ivu-modal-header,
+            .ivu-modal-footer {
+                border: 0;
+            }
+            .ivu-modal-footer {
+                padding: 0;
+            }
+            .ivu-modal-header {
+                padding: 5px 16px;
+                p {
+                    color: whitesmoke;
+                }
+            }
+            .identity-body {
+                display: flex;
+                justify-content: space-around;
+                align-items: center;
+                .ivu-btn {
+                    background-color: #1cc0f2;
+                    color: white;
+                    font-weight: bold;
+                    border: 0;
+                    padding: 0 22px;
+                }
+            }
+        }
+    }
+}
+.demo-spin-col .ivu-spin-main {
+    background-color: transparent;
+    padding: 0;
+}
+.login-main-wrap {
+    display: flex;
+    justify-content: center;
+    width: 100%;
+    height: 600px;
+    flex-direction: row;
+    align-items: center;
+    margin-top: -50px;
+}
+
+.login-main-img {
+    width: 100%;
+    height: auto;
+}
+.login-enter-wrap {
+    width: 45%;
+    max-width: 600px;
+    height: 100%;
+    display: flex;
+    flex-direction: row;
+    flex-wrap: nowrap;
+    justify-content: space-evenly;
+    align-items: center;
+    margin-top: 0px;
+    margin-left: 2%;
+}
+.enter-box {
+    width: 150px;
+    border-radius: 4px;
+    cursor: pointer;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+}
+.enter-type-btn {
+    width: 136px;
+    margin-left: 5px;
+    background-image: url("./../../assets/login/1-7.png");
+    background-repeat: no-repeat;
+    background-size: cover;
+    height: 42px;
+    margin-top: 30px;
+    font-size: 26px;
+    line-height: 42px;
+    color: white;
+    text-align: center;
+}
+.icon-to-img {
+    display: block;
+    color: white;
+    font-size: 200px;
+}
+.login-img-wrap {
+    width: 45%;
+    max-width: 760px;
+    height: 500px;
+    padding: 12px;
+    margin-right: 5%;
+    margin-top: -20px;
+}
+.swiper-item-box {
+    // margin-top: -20px;
+    width: 100%;
+    min-height: 500px;
+    padding: 20px 40px;
+    background: rgba(28,34,50,0.5);
+    .title {
+        font-size: 40px;
+        color: #fff;
+        line-height: 1.1;
+        letter-spacing: 1px;
+        font-weight: 600;
+    }
+    .cont {
+        margin-top: 30px;
+        margin-left: 15px;
+    }
+    .cont-title {
+        font-size: 26px;
+        color: #fff;
+        line-height: 1.1;
+        font-weight: 500;
+        margin-bottom: 7px;
+        letter-spacing: 1px;
+    }
+    .cont-text {
+        font-size: 16px;
+        margin-bottom: 3px;
+        color: #9e9e9e;
+        letter-spacing: 1px;
+        &::before {
+            content: "|";
+            margin-right: 11px;
+            font-weight: 900;
+        }
+    }
+    .border1::before {
+        color: #de5c53;
+    }
+    .border2::before {
+        color: #fcdc6b;
+    }
+    .border3::before {
+        color: #25ca92;
+    }
+    .border4::before {
+        color: #3eaefe;
+    }
+
+    .link {
+        margin-top: 50px;
+        color: #57a3f3;
+        cursor: pointer;
+    }
+}
+.logintype {
+    .title {
+        display: block;
+        margin-bottom: 17px;
+        letter-spacing: 1px;
+        color: #9e9e9e;
+        font-size: 13px;
+    }
+    .login-box {
+        min-width: 520px;
+        background-color: rgba(66, 69, 81, 0.9);
+        width: 100%;
+        height: 100px;
         display: flex;
-        justify-content: space-around;
         align-items: center;
-        .ivu-btn{
-          background-color: #1cc0f2;
-          color: white;
-          font-weight: bold;
-          border: 0;
-          padding: 0 22px;
+        border-left: 5px solid #3dadff;
+        border-radius: 5px;
+        border-right: 5px solid #3dadff;
+        margin-bottom: 25px;
+        cursor: pointer;
+        box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5);
+        &:hover {
+            background-color: rgba(75, 79, 96, 0.9);
         }
-      }
-    }        
-  }
+    }
+    .login-box-icon {
+        width: 20%;
+        float: left;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        height: 100%;
+        border-right: 1px solid #616161;
+    }
+    .login-box-cont {
+        width: 80%;
+        float: left;
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        justify-content: space-between;
+        padding: 0 17px;
+    }
+    .main {
+        color: #bdbdbd;
+        font-size: 12px;
+    }
+    .subtitle {
+        display: block;
+        font-size: 30px;
+        color: #fff;
+        font-weight: 600;
+        margin-bottom: 6px;
+    }
 }
-.demo-spin-col .ivu-spin-main{
-	background-color: transparent;
-	padding: 0;
+.login-img-wrap .ivu-carousel-arrow .ivu-icon{
+    line-height: 36px;
 }
 </style>
 
 <template>
-  <div class="loginDiv">
-    <div class="loginDiv-block loginDiv-block-left">
-      <Marketing/>
-    </div>
-    <div class="loginDiv-block loginDiv-block-right">
-      <div class="logintype">
-        <span class="title">{{$t('login.subTitle.selectType')}}</span>
-        <div class="login-box" @click="loginTo('teacher')">
-          <div class="login-box-icon">
-            <img width="40" src="@/assets/icon_teacher.svg">
-          </div>
-          <div class="login-box-cont">
-            <div class="main">
-              <span class="subtitle">{{$t('login.type.teacher')}}</span>
-              {{$t('login.type.teacherCont')}}
-            </div>
-            <Icon color="#bdbdbd" size="35" type="ios-arrow-forward" />
-          </div>
+    <div class="login-main-wrap">
+        <div class="login-img-wrap">
+            <!-- <img src="@/assets/login/1-3.png" class="login-main-img"> -->
+            <!-- 轮播区域 -->
+            <Carousel v-model="curPage" radius-dot loop dots="inside" arrow="hover">
+                <CarouselItem>
+                    <div class="swiper-item-box">
+                        <div class="title">
+                            {{$t('login.welcome1')}}
+                            <br>
+                            {{$t('login.welcome2')}}
+                        </div>
+                        <div class="cont">
+                            <div class="cont-title">
+                                {{$t('login.subtitle1')}}
+                            </div>
+                            <p class="cont-text border1">
+                                {{$t('login.teachText1')}}
+                            </p>
+                            <p class="cont-text border2">
+                                {{$t('login.teachText2')}}
+                            </p>
+                            <p class="cont-text border3">
+                                {{$t('login.teachText3')}}
+                            </p>
+                            <p class="cont-text border4">
+                                {{$t('login.teachText4')}}
+                            </p>
+                        </div>
+                        <div class="cont">
+                            <div class="cont-title">
+                                {{$t('login.subtitle2')}}
+                            </div>
+                            <p class="cont-text border1">
+                                {{$t('login.iesText1')}}
+                            </p>
+                            <p class="cont-text border2">
+                                {{$t('login.iesText2')}}
+                            </p>
+                            <p class="cont-text border3">
+                                {{$t('login.iesText3')}}
+                            </p>
+                            <p class="cont-text border4">
+                                {{$t('login.iesText4')}}
+                            </p>
+                        </div>
+                        <div class="link">
+                            <a style="color:#57a3f3" target="_block" :href="tmdurl">
+                                {{$t('login.toOfficial')}}
+                                <i class="ivu-icon ivu-icon-ios-arrow-forward" style="font-size: 19px;"></i>
+                            </a>
+                        </div>
+                    </div>
+                </CarouselItem>
+            </Carousel>
         </div>
-        <div class="login-box" @click="loginTo('student')">
-          <div class="login-box-icon">
-            <img width="40" src="@/assets/icon_student.svg">
-          </div>
-          <div class="login-box-cont">
-            <div class="main">
-              <span class="subtitle">{{$t('login.type.student')}}</span>
-              {{$t('login.type.studentCont')}}
+        <div class="login-enter-wrap">
+            <div class="logintype">
+                <span class="title">{{$t('login.chooseTips')}}</span>
+                <div class="login-box" @click="loginTo('teacher')">
+                    <div class="login-box-icon"><img width="40" src="@/assets/login/icon_teacher.svg"></div>
+                    <div class="login-box-cont">
+                        <div class="main">
+                            <span class="subtitle">
+                                {{$t('login.teacherIden')}}
+                            </span>
+                            {{$t('login.teacherText')}}
+                        </div>
+                        <i class="ivu-icon ivu-icon-ios-arrow-forward" style="font-size: 35px; color: rgb(189, 189, 189);"></i>
+                    </div>
+                </div>
+                <div class="login-box" @click="loginTo('student')">
+                    <div class="login-box-icon"><img width="40" src="@/assets/login/icon_student.svg"></div>
+                    <div class="login-box-cont">
+                        <div class="main">
+                            <span class="subtitle">
+                                {{$t('login.studentIden')}}
+                            </span>
+                            {{$t('login.studText')}}
+                        </div>
+                        <i class="ivu-icon ivu-icon-ios-arrow-forward" style="font-size: 35px; color: rgb(189, 189, 189);"></i>
+                    </div>
+                </div>
+                <div class="link" style="text-align: right; letter-spacing: 1px;"><span style="margin-right: 20px;">
+                         {{$t('login.noAccout')}}
+                    </span>
+                    <a href="/regist" class="" style="text-decoration: underline; color: rgb(41, 114, 169);">
+                        {{$t('login.freeReg')}}
+                    </a>
+                </div>
             </div>
-            <Icon color="#bdbdbd" size="35" type="ios-arrow-forward" />
-          </div>
-        </div>
-        <div class="link" style="text-align: right; letter-spacing: 1px;">
-          <span style="margin-right: 20px;">{{ $t('login.link.if') }}</span>{{ $t('login.link.click') }}<router-link style="text-decoration: underline;color:#2972a9;" to="/regist">{{ $t('login.link.regist') }}</router-link>
+            <!-- <div class="enter-box" @click="loginTo('teacher')">
+                <img style="display: block;width: 100%;" src="@/assets/login/1-5.png">
+                <p class="enter-type-btn">
+                    教师端
+                </p>
+            </div>
+            <div class="enter-box" @click="loginTo('student')">
+                <img style="display: block;width: 100%;" src="@/assets/login/1-4.png">
+                <p class="enter-type-btn">
+                    学生端
+                </p>
+            </div> -->
         </div>
-      </div>
+        <!-- 提示視窗 -->
+        <Modal v-model="identityFlag" width="360" :mask-closable="false" :closable="false" class-name="identityModal">
+            <p slot="header">{{ $t('login.modal.title') }}</p>
+            <div class="identity-body">
+                <Button size="large" @click="goWhere('teacher')">{{ $t('login.modal.btn1') }}</Button>
+                <Button size="large" @click="goWhere('student')">{{ $t('login.modal.btn2') }}</Button>
+            </div>
+            <div slot="footer"></div>
+        </Modal>
     </div>
-    <!-- 提示視窗 -->
-    <Modal v-model="identityFlag" width="360" :mask-closable="false" :closable="false" class-name="identityModal">
-        <p slot="header">{{ $t('login.modal.title') }}</p>
-        <div class="identity-body">
-            <Button size="large" @click="goWhere('teacher')">{{ $t('login.modal.btn1') }}</Button>
-            <Button size="large" @click="goWhere('student')">{{ $t('login.modal.btn2') }}</Button>
-        </div>
-        <div slot="footer"></div>
-    </Modal>
-  </div>
 </template>
 <script>
 import { User } from '@/service/User'
 
 export default {
-  components: {
-    Marketing: () => import('./components/marketing/Index.vue')
-  },
-  data() {
-    return {
-      defaultSchool: {
-        name: '',
-        code: ''
-      },
-      userOauth:{
-        code: '',
-        state: ''
-      },
-      identityFlag: false,
-      lang: localStorage.getItem('local'),
-    }
-  },
-  created() {
-    // 取得學校設定簡碼
-    this.setDefSchool()
+    data() {
+        return {
+            curPage: 0,
+            defaultSchool: {
+                name: '',
+                code: ''
+            },
+            userOauth: {
+                code: '',
+                state: ''
+            },
+            identityFlag: false,
+            lang: localStorage.getItem('local')
+        }
+    },
+    computed:{
+        tmdurl: function(){
+            let twUrl = 'https://www.habook.com/zh-tw/news.php?act=view&id=408'
+            let cnUrl = ' https://www.habook.com.cn/news.php?act=view&id=331'
+            let enUrl = 'https://www.habook.com/en/news.php?act=view&id=408'
+            
+            return this.lang === 'zh-tw' ? twUrl : this.lang === 'zh-cn' ? cnUrl : enUrl
+        }
+    },
+    created() {
+        // 取得學校設定簡碼
+        this.setDefSchool()
 
-    //TEAMModelID 社群登入資訊
-    this.userOauth.code = this.$route.query.code == undefined ? '' : this.$route.query.code;
-    this.userOauth.state = this.$route.query.state == undefined ? '' : this.$route.query.state;
+        //TEAMModelID 社群登入資訊
+        this.userOauth.code = this.$route.query.code == undefined ? '' : this.$route.query.code;
+        this.userOauth.state = this.$route.query.state == undefined ? '' : this.$route.query.state;
 
-    // 社群帳號登入
-    if(this.userOauth.code != '' & this.userOauth.state !='' ) {
-      this.putUserCode()
-    } else if(this.userOauth.code != ''){ // 大雲快速登入
-      this.SSOLogin(this.userOauth.code)
-    }
-  },
-  methods: {
-    putUserCode: function(){ //如果第三方登入會啟動的function
-      this.$Spin.show(); //開啟加載畫面
-      let redirect_uri = window.location.origin + '/login'
-      this.$api.OauthLogin(this.userOauth.state, this.userOauth.code, redirect_uri).then(res=>{
-        this.$Spin.hide(); //關閉加載畫面
-        this.loginProcess(res, this.defaultSchool.code)
-      })  
+        // 社群帳號登入
+        if (this.userOauth.code != '' & this.userOauth.state != '') {
+            this.putUserCode()
+        } else if (this.userOauth.code != '') { // 大雲快速登入
+            this.SSOLogin(this.userOauth.code)
+        }
     },
-    SSOLogin: function(code){ // 快速登入
-      this.$Spin.show(); //開啟加載畫面
-      this.$api.SSOLogin(code).then( async res=>{
-        this.$Spin.hide(); // 關閉加載畫面
-          if(!res.error){
-            // 登入大雲開始
-            this.loginProcess(res, this.defaultSchool.code)
-          } else {
-            this.$Message.warning(this.$t('login.sse.error.text1'));
-          }
+    methods: {
+        putUserCode: function () { //如果第三方登入會啟動的function
+            this.$Spin.show(); //開啟加載畫面
+            let redirect_uri = window.location.origin + '/login'
+            this.$api.OauthLogin(this.userOauth.state, this.userOauth.code, redirect_uri).then(res => {
+                this.$Spin.hide(); //關閉加載畫面
+                this.loginProcess(res, this.defaultSchool.code)
+            })
+        },
+        SSOLogin: function (code) { // 快速登入
+            this.$Spin.show(); //開啟加載畫面
+            this.$api.SSOLogin(code).then(async res => {
+                this.$Spin.hide(); // 關閉加載畫面
+                if (!res.error) {
+                    // 登入大雲開始
+                    this.loginProcess(res, this.defaultSchool.code)
+                } else {
+                    this.$Message.warning(this.$t('login.sse.error.text1'));
+                }
 
-          this.$router.push({ name: 'login' })
-      })
-    },
-    loginProcess: async function(item, schoolCode){ // 登入用function
-      let result;
+                this.$router.push({ name: 'login' })
+            })
+        },
+        loginProcess: async function (item, schoolCode) { // 登入用function
+            let result;
 
-      await this.$api.login.loginIES(item, schoolCode).then( res => {
-        result = res
-      })
-      console.log('////',result)
-      //設定權限並登入
-      let identity = localStorage.getItem('identity')
-      User.login(result).then(res => {
-        if(res && identity) {
-          this.saveUserCodes({
-            TEAMModelId: result.id,
-            name:result.name,
-            schoolCode: result.defaultschool
-          })
-          let path = identity == 'student' ? '/studentWeb' : '/home'
-          this.$router.push({ path: path })
-        } else {
-          this.identityFlag = true;
+            await this.$api.login.loginIES(item, schoolCode).then(res => {
+                result = res
+            })
+            console.log('////', result)
+            //設定權限並登入
+            let identity = localStorage.getItem('identity')
+            User.login(result).then(res => {
+                if (res && identity) {
+                    this.saveUserCodes({
+                        TEAMModelId: result.id,
+                        name: result.name,
+                        schoolCode: result.defaultschool
+                    })
+                    let path = identity == 'student' ? '/studentWeb' : '/home'
+                    this.$router.push({ path: path })
+                } else {
+                    this.identityFlag = true;
+                }
+            })
+        },
+        saveUserCodes: function (res) {
+            this.$store.commit('setUserInfo', res)
+        },
+        setDefSchool: function () {
+            let defschool = sessionStorage.defaultSchool
+            if (defschool) {
+                defschool = JSON.parse(decodeURIComponent(defschool), "utf-8")
+                this.defaultSchool.code = defSchool.code
+                this.defaultSchool.name = defSchool.name
+            }
+        },
+        goWhere: function (identity) {
+            localStorage.setItem('identity', identity)
+            let path = identity == 'student' ? '/studentWeb' : '/home'
+            this.$router.push({ path: path })
+        },
+        loginTo: function (identity) {
+            let pathname = identity == 'student' ? 'loginStudent' : 'loginTeacher'
+            this.$router.push({ name: pathname })
         }
-      })
-    },
-    saveUserCodes: function (res) {
-  		this.$store.commit('setUserInfo',res)
-	  },
-    setDefSchool: function(){
-      let defschool = sessionStorage.defaultSchool
-      if(defschool){
-        defschool = JSON.parse(decodeURIComponent(defschool), "utf-8")
-        this.defaultSchool.code = defSchool.code
-        this.defaultSchool.name = defSchool.name
-      }      
-    },
-    goWhere: function(identity){
-      localStorage.setItem('identity', identity)
-      let path = identity == 'student' ? '/studentWeb' : '/home'
-      this.$router.push({ path: path })
-    },
-    loginTo: function(identity) {
-      let pathname = identity == 'student' ? 'loginStudent' : 'loginTeacher'
-      this.$router.push({ name: pathname })
     }
-  }
 }
 </script>

+ 0 - 57
TEAMModelOS/ClientApp/src/view/login/components/marketing/Index.less

@@ -1,57 +0,0 @@
-.marketing{
-    .title{
-        font-size: 40px;
-        color: #ffffff;
-        line-height: 1.1;
-        letter-spacing: 1px;
-        font-weight: 600;
-    }
-    .cont{
-        margin-top: 30px;
-        margin-left: 15px;
-        &-title{
-            font-size: 26px;
-            color: #ffffff;
-            line-height: 1.1;
-            font-weight: 500;
-            margin-bottom: 7px;
-            letter-spacing: 1px;
-        }
-        &-text{
-            font-size: 16px;
-            margin-bottom: 3px;
-            color: #9e9e9e;
-            letter-spacing: 1px;
-            &.border1:before{
-                content: '|';                            
-                margin-right: 11px;
-                font-weight: 900;
-                color: rgb(222,92,83);
-            }
-            &.border2:before{
-                content: '|';                            
-                margin-right: 11px;
-                font-weight: 900;
-                color: rgb(252,220,107);
-            }
-            &.border3:before{
-                content: '|';                            
-                margin-right: 11px;
-                font-weight: 900;
-                color: rgb(37,202,146);
-            }
-            &.border4:before{
-                content: '|';                            
-                margin-right: 11px;
-                font-weight: 900;
-                color: rgb(62,174,254);
-            }
-        }
-    }
-    .link{
-        margin-top: 50px;
-        a{
-            color: #2972a9;
-        }
-    }
-}  

+ 0 - 49
TEAMModelOS/ClientApp/src/view/login/components/marketing/Index.vue

@@ -1,49 +0,0 @@
-<style lang="less" scoped>
-  @import './Index.less';
-</style>
-
-<template>
-    <div class="marketing">
-        <div class="title">
-            {{$t('login.marketing.title.text1_1')}}<br/>
-            {{$t('login.marketing.title.text1_2')}}
-        </div>
-        <div class="cont">
-            <div class="cont-title">{{$t('login.marketing.subTitle.text1')}}</div>
-            <p class="cont-text border1" >{{$t('login.marketing.cont.text1')}}</p>
-            <p class="cont-text border2" >{{$t('login.marketing.cont.text2')}}</p>
-            <p class="cont-text border3" >{{$t('login.marketing.cont.text3')}}</p>
-            <p class="cont-text border4" >{{$t('login.marketing.cont.text4')}}</p>
-        </div>
-        <div class="cont">
-            <div class="cont-title">{{$t('login.marketing.subTitle.text2')}}</div>
-            <p class="cont-text border1" >{{$t('login.marketing.cont.text5')}}</p>
-            <p class="cont-text border2" >{{$t('login.marketing.cont.text6')}}</p>
-            <p class="cont-text border3" >{{$t('login.marketing.cont.text7')}}</p>
-            <p class="cont-text border4" >{{$t('login.marketing.cont.text8')}}</p>
-        </div>
-        <div class="link">
-            <a target="_block" :href="tmdurl">{{$t('login.marketing.cont.text9')}}<Icon size="19" type="ios-arrow-forward" /></a>
-        </div>
-    </div>
-</template>
-
-<script>
-export default {
-    name: 'Marketing',
-    data() {
-        return {
-            lang: localStorage.getItem('local'),
-        }
-    },
-    computed:{
-        tmdurl: function(){
-        let twUrl = 'https://www.habook.com/zh-tw/news.php?act=view&id=408'
-        let cnUrl = ' https://www.habook.com.cn/news.php?act=view&id=331'
-        let enUrl = 'https://www.habook.com/en/news.php?act=view&id=408'
-        
-        return this.lang === 'zh-tw' ? twUrl : this.lang === 'zh-cn' ? cnUrl : enUrl
-        }
-    },
-}
-</script>

+ 1 - 1
TEAMModelOS/ClientApp/src/view/login/page/Student.vue

@@ -177,7 +177,7 @@
                 <p class="teacher-login-title">
                     {{$t('login.title.IDLogin')}}
                 </p>
-                <p class="teacher-login-decr">{{$t('login.subTitle.IDLogin')}}</p>
+                <p class="teacher-login-decr">{{$t('login.subTitle.studentIDLogin')}}</p>
                 <Form class="loginForm" ref="loginForm" :model="loginForm" :rules="loginRule" :show-message="false" @keydown.enter.native="loginSubmit('loginForm')">
                     <FormItem class="formItem" prop="id">
                         <Input class="login-input-box" element-id="tmdID" v-model="loginForm.id" :placeholder="$t('login.placeholder.id')" />

+ 0 - 2
TEAMModelOS/ClientApp/src/view/login/page/Teacher.less

@@ -7,8 +7,6 @@
         border-radius: 50%;
         border: 1px solid #808695;
     }
-    height: 100%;
-    width:100%;
     &-block{        
         height: 100%;
         float:left;

+ 0 - 465
TEAMModelOS/ClientApp/src/view/login/test.vue

@@ -1,465 +0,0 @@
-<style lang="less" scoped>
-@import "./Index.less";
-</style>
-
-<style lang="less">
-.loginBox {
-    .loginForm {
-        .formItem {
-            input,
-            select {
-                border-radius: 0;
-                font-size: 12px;
-            }
-            .ivu-select-selection {
-                border-radius: 0;
-            }
-        }
-        .schoolAutoComplete {
-            height: 170px;
-            .schoolsBox {
-                border-bottom: 1px solid #e9e9e9;
-                padding: 5px 5px 5px 15px;
-                .area {
-                    font-size: 12px;
-                    padding: 5px;
-                }
-            }
-        }
-        .ivu-select-dropdown {
-            border-radius: 0;
-        }
-    }
-}
-.identityModal {
-    .ivu-modal {
-        .ivu-modal-content {
-            background-color: #2a292e;
-            padding: 12px;
-            border: 1px solid #ccc;
-            .ivu-modal-header,
-            .ivu-modal-footer {
-                border: 0;
-            }
-            .ivu-modal-footer {
-                padding: 0;
-            }
-            .ivu-modal-header {
-                padding: 5px 16px;
-                p {
-                    color: whitesmoke;
-                }
-            }
-            .identity-body {
-                display: flex;
-                justify-content: space-around;
-                align-items: center;
-                .ivu-btn {
-                    background-color: #1cc0f2;
-                    color: white;
-                    font-weight: bold;
-                    border: 0;
-                    padding: 0 22px;
-                }
-            }
-        }
-    }
-}
-.demo-spin-col .ivu-spin-main {
-    background-color: transparent;
-    padding: 0;
-}
-.login-main-wrap {
-    display: flex;
-    justify-content: center;
-    width: 100%;
-    height: 600px;
-    flex-direction: row;
-    align-items: center;
-    margin-top: -50px;
-}
-
-.login-main-img {
-    width: 100%;
-    height: auto;
-}
-.login-enter-wrap {
-    width: 45%;
-    max-width: 600px;
-    height: 100%;
-    display: flex;
-    flex-direction: row;
-    flex-wrap: nowrap;
-    justify-content: space-evenly;
-    align-items: center;
-    margin-top: 0px;
-    margin-left: 2%;
-}
-.enter-box {
-    width: 150px;
-    border-radius: 4px;
-    cursor: pointer;
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-}
-.enter-type-btn {
-    width: 136px;
-    margin-left: 5px;
-    background-image: url("./../../assets/login/1-7.png");
-    background-repeat: no-repeat;
-    background-size: cover;
-    height: 42px;
-    margin-top: 30px;
-    font-size: 26px;
-    line-height: 42px;
-    color: white;
-    text-align: center;
-}
-.icon-to-img {
-    display: block;
-    color: white;
-    font-size: 200px;
-}
-.login-img-wrap {
-    width: 45%;
-    max-width: 760px;
-    height: 500px;
-    padding: 12px;
-    margin-right: 5%;
-    margin-top: -20px;
-}
-.swiper-item-box {
-    // margin-top: -20px;
-    width: 100%;
-    min-height: 500px;
-    padding: 20px 40px;
-    background: rgba(28,34,50,0.5);
-    .title {
-        font-size: 40px;
-        color: #fff;
-        line-height: 1.1;
-        letter-spacing: 1px;
-        font-weight: 600;
-    }
-    .cont {
-        margin-top: 30px;
-        margin-left: 15px;
-    }
-    .cont-title {
-        font-size: 26px;
-        color: #fff;
-        line-height: 1.1;
-        font-weight: 500;
-        margin-bottom: 7px;
-        letter-spacing: 1px;
-    }
-    .cont-text {
-        font-size: 16px;
-        margin-bottom: 3px;
-        color: #9e9e9e;
-        letter-spacing: 1px;
-        &::before {
-            content: "|";
-            margin-right: 11px;
-            font-weight: 900;
-        }
-    }
-    .border1::before {
-        color: #de5c53;
-    }
-    .border2::before {
-        color: #fcdc6b;
-    }
-    .border3::before {
-        color: #25ca92;
-    }
-    .border4::before {
-        color: #3eaefe;
-    }
-
-    .link {
-        margin-top: 50px;
-        color: #57a3f3;
-        cursor: pointer;
-    }
-}
-.logintype {
-    .title {
-        display: block;
-        margin-bottom: 17px;
-        letter-spacing: 1px;
-        color: #9e9e9e;
-        font-size: 13px;
-    }
-    .login-box {
-        min-width: 520px;
-        background-color: rgba(66, 69, 81, 0.9);
-        width: 100%;
-        height: 100px;
-        display: flex;
-        align-items: center;
-        border-left: 5px solid #3dadff;
-        border-radius: 5px;
-        border-right: 5px solid #3dadff;
-        margin-bottom: 25px;
-        cursor: pointer;
-        box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5);
-        &:hover {
-            background-color: rgba(75, 79, 96, 0.9);
-        }
-    }
-    .login-box-icon {
-        width: 20%;
-        float: left;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        height: 100%;
-        border-right: 1px solid #616161;
-    }
-    .login-box-cont {
-        width: 80%;
-        float: left;
-        display: flex;
-        flex-direction: row;
-        align-items: center;
-        justify-content: space-between;
-        padding: 0 17px;
-    }
-    .main {
-        color: #bdbdbd;
-        font-size: 12px;
-    }
-    .subtitle {
-        display: block;
-        font-size: 30px;
-        color: #fff;
-        font-weight: 600;
-        margin-bottom: 6px;
-    }
-}
-.login-img-wrap .ivu-carousel-arrow .ivu-icon{
-    line-height: 36px;
-}
-</style>
-
-<template>
-    <div class="login-main-wrap">
-        <div class="login-img-wrap">
-            <!-- <img src="@/assets/login/1-3.png" class="login-main-img"> -->
-            <!-- 轮播区域 -->
-            <Carousel v-model="curPage" radius-dot loop dots="inside" arrow="hover">
-                <CarouselItem>
-                    <div class="swiper-item-box">
-                        <div class="title">
-                            {{$t('login.welcome1')}}
-                            <br>
-                            {{$t('login.welcome2')}}
-                        </div>
-                        <div class="cont">
-                            <div class="cont-title">
-                                {{$t('login.subtitle1')}}
-                            </div>
-                            <p class="cont-text border1">
-                                {{$t('login.teachText1')}}
-                            </p>
-                            <p class="cont-text border2">
-                                {{$t('login.teachText2')}}
-                            </p>
-                            <p class="cont-text border3">
-                                {{$t('login.teachText3')}}
-                            </p>
-                            <p class="cont-text border4">
-                                {{$t('login.teachText4')}}
-                            </p>
-                        </div>
-                        <div class="cont">
-                            <div class="cont-title">
-                                {{$t('login.subtitle2')}}
-                            </div>
-                            <p class="cont-text border1">
-                                {{$t('login.iesText1')}}
-                            </p>
-                            <p class="cont-text border2">
-                                {{$t('login.iesText2')}}
-                            </p>
-                            <p class="cont-text border3">
-                                {{$t('login.iesText3')}}
-                            </p>
-                            <p class="cont-text border4">
-                                {{$t('login.iesText4')}}
-                            </p>
-                        </div>
-                        <div class="link">
-                            <a style="color:#57a3f3" target="_block" href="https://www.habook.com">
-                                {{$t('login.toOfficial')}}
-                                <i class="ivu-icon ivu-icon-ios-arrow-forward" style="font-size: 19px;"></i>
-                            </a>
-                        </div>
-                    </div>
-                </CarouselItem>
-            </Carousel>
-        </div>
-        <div class="login-enter-wrap">
-            <div class="logintype">
-                <span class="title">{{$t('login.chooseTips')}}</span>
-                <div class="login-box" @click="loginTo('teacher')">
-                    <div class="login-box-icon"><img width="40" src="@/assets/login/icon_teacher.svg"></div>
-                    <div class="login-box-cont">
-                        <div class="main">
-                            <span class="subtitle">
-                                {{$t('login.teacherIden')}}
-                            </span>
-                            {{$t('login.teacherText')}}
-                        </div>
-                        <i class="ivu-icon ivu-icon-ios-arrow-forward" style="font-size: 35px; color: rgb(189, 189, 189);"></i>
-                    </div>
-                </div>
-                <div class="login-box" @click="loginTo('student')">
-                    <div class="login-box-icon"><img width="40" src="@/assets/login/icon_student.svg"></div>
-                    <div class="login-box-cont">
-                        <div class="main">
-                            <span class="subtitle">
-                                {{$t('login.studentIden')}}
-                            </span>
-                            {{$t('login.studText')}}
-                        </div>
-                        <i class="ivu-icon ivu-icon-ios-arrow-forward" style="font-size: 35px; color: rgb(189, 189, 189);"></i>
-                    </div>
-                </div>
-                <div class="link" style="text-align: right; letter-spacing: 1px;"><span style="margin-right: 20px;">
-                         {{$t('login.noAccout')}}
-                    </span>
-                    <a href="/regist" class="" style="text-decoration: underline; color: rgb(41, 114, 169);">
-                        {{$t('login.freeReg')}}
-                    </a>
-                </div>
-            </div>
-            <!-- <div class="enter-box" @click="loginTo('teacher')">
-                <img style="display: block;width: 100%;" src="@/assets/login/1-5.png">
-                <p class="enter-type-btn">
-                    教师端
-                </p>
-            </div>
-            <div class="enter-box" @click="loginTo('student')">
-                <img style="display: block;width: 100%;" src="@/assets/login/1-4.png">
-                <p class="enter-type-btn">
-                    学生端
-                </p>
-            </div> -->
-        </div>
-        <!-- 提示視窗 -->
-        <Modal v-model="identityFlag" width="360" :mask-closable="false" :closable="false" class-name="identityModal">
-            <p slot="header">{{ $t('login.modal.title') }}</p>
-            <div class="identity-body">
-                <Button size="large" @click="goWhere('teacher')">{{ $t('login.modal.btn1') }}</Button>
-                <Button size="large" @click="goWhere('student')">{{ $t('login.modal.btn2') }}</Button>
-            </div>
-            <div slot="footer"></div>
-        </Modal>
-    </div>
-</template>
-<script>
-import { User } from '@/service/User'
-
-export default {
-    data() {
-        return {
-            curPage: 0,
-            defaultSchool: {
-                name: '',
-                code: ''
-            },
-            userOauth: {
-                code: '',
-                state: ''
-            },
-            identityFlag: false
-        }
-    },
-    created() {
-        // 取得學校設定簡碼
-        this.setDefSchool()
-
-        //TEAMModelID 社群登入資訊
-        this.userOauth.code = this.$route.query.code == undefined ? '' : this.$route.query.code;
-        this.userOauth.state = this.$route.query.state == undefined ? '' : this.$route.query.state;
-
-        // 社群帳號登入
-        if (this.userOauth.code != '' & this.userOauth.state != '') {
-            this.putUserCode()
-        } else if (this.userOauth.code != '') { // 大雲快速登入
-            this.SSOLogin(this.userOauth.code)
-        }
-    },
-    methods: {
-        putUserCode: function () { //如果第三方登入會啟動的function
-            this.$Spin.show(); //開啟加載畫面
-            let redirect_uri = window.location.origin + '/login'
-            this.$api.OauthLogin(this.userOauth.state, this.userOauth.code, redirect_uri).then(res => {
-                this.$Spin.hide(); //關閉加載畫面
-                this.loginProcess(res, this.defaultSchool.code)
-            })
-        },
-        SSOLogin: function (code) { // 快速登入
-            this.$Spin.show(); //開啟加載畫面
-            this.$api.SSOLogin(code).then(async res => {
-                this.$Spin.hide(); // 關閉加載畫面
-                if (!res.error) {
-                    // 登入大雲開始
-                    this.loginProcess(res, this.defaultSchool.code)
-                } else {
-                    this.$Message.warning(this.$t('login.sse.error.text1'));
-                }
-
-                this.$router.push({ name: 'login' })
-            })
-        },
-        loginProcess: async function (item, schoolCode) { // 登入用function
-            let result;
-
-            await this.$api.login.loginIES(item, schoolCode).then(res => {
-                result = res
-            })
-            console.log('////', result)
-            //設定權限並登入
-            let identity = localStorage.getItem('identity')
-            User.login(result).then(res => {
-                if (res && identity) {
-                    this.saveUserCodes({
-                        TEAMModelId: result.id,
-                        name: result.name,
-                        schoolCode: result.defaultschool
-                    })
-                    let path = identity == 'student' ? '/studentWeb' : '/home'
-                    this.$router.push({ path: path })
-                } else {
-                    this.identityFlag = true;
-                }
-            })
-        },
-        saveUserCodes: function (res) {
-            this.$store.commit('setUserInfo', res)
-        },
-        setDefSchool: function () {
-            let defschool = sessionStorage.defaultSchool
-            if (defschool) {
-                defschool = JSON.parse(decodeURIComponent(defschool), "utf-8")
-                this.defaultSchool.code = defSchool.code
-                this.defaultSchool.name = defSchool.name
-            }
-        },
-        goWhere: function (identity) {
-            localStorage.setItem('identity', identity)
-            let path = identity == 'student' ? '/studentWeb' : '/home'
-            this.$router.push({ path: path })
-        },
-        loginTo: function (identity) {
-            let pathname = identity == 'student' ? 'loginStudent' : 'loginTeacher'
-            this.$router.push({ name: pathname })
-        }
-    }
-}
-</script>