login.vue 7.12 KB
Newer Older
qzhxx's avatar
qzhxx committed
1 2 3
<template>
  <div id="backlogin">
    <div class="content">
xulili's avatar
xulili committed
4 5 6 7 8 9 10 11 12 13 14 15 16
      <div class="page-content">
        <div class="page-title">
          <p>中国国家博物馆建党百年展</p>
          <p>点播院线服务平台</p>
        </div>
        <el-form id="form" :model="form" :rules="rules" ref="loginForm">
          <el-form-item prop="username">
            <el-input
              v-model="form.username"
              type="text"
              placeholder="请输入用户名"
              autofocus
              clearable
xulili's avatar
xulili committed
17
              ininput="value = value.trim()"
xulili's avatar
xulili committed
18 19 20 21 22 23 24 25 26 27 28
            >
              <i class="icon-username icon-prefix" slot="prefix"> </i>
            </el-input>
          </el-form-item>
          <el-form-item prop="password">
            <el-input
              v-model="form.password"
              type="password"
              placeholder="请输入密码"
              autofocus
              clearable
xulili's avatar
xulili committed
29
              ininput="value = value.trim()"
xulili's avatar
xulili committed
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
            >
              <i class="icon-pwd icon-prefix" slot="prefix"> </i>
            </el-input>
          </el-form-item>
          <el-form-item>
            <el-button
              class="login"
              :disabled="flag"
              type="submit"
              @click="submitForm"
            >
              登录
            </el-button>
          </el-form-item>
        </el-form>
xulili's avatar
xulili committed
45
      </div>
qzhxx's avatar
qzhxx committed
46 47 48 49 50
    </div>
  </div>
</template>

<script>
xulili's avatar
xulili committed
51
import { loginOut } from "@/config/loginOut";
xulili's avatar
xulili committed
52
import util from "@/utils/util.js";
xulili's avatar
xulili committed
53 54 55 56 57 58
export default {
  data() {
    return {
      form: {
        username: "",
        password: "",
qzhxx's avatar
qzhxx committed
59
      },
xulili's avatar
xulili committed
60 61 62 63 64 65 66
      rules: {
        username: [
          { required: true, message: "请输入用户名", trigger: "blur,change" },
        ],
        password: [
          { required: true, message: "请输入密码", trigger: "blur,change" },
        ],
qzhxx's avatar
qzhxx committed
67
      },
xulili's avatar
xulili committed
68 69 70
      flag: false,
    };
  },
xulili's avatar
xulili committed
71 72 73
  mounted() {
    loginOut();
  },
xulili's avatar
xulili committed
74 75 76 77 78 79 80 81
  methods: {
    submitForm() {
      let _this = this;
      this.$refs.loginForm.validate((valid) => {
        if (valid) {
          _this.flag = true;
          let requestParams = {};
          requestParams.username = _this.form.username;
xulili's avatar
xulili committed
82
          requestParams.password = util.encrypt(_this.form.password);
xulili's avatar
xulili committed
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
          let params = this.$qs.stringify(requestParams);
          _this
            .$https(
              {
                method: "post",
                url: "ajaxLogin",
              },
              params
            )
            .then((res) => {
              _this.flag = false;
              if (res.status == 200) {
                let resData = res.data;
                if (resData.resultCode == 200) {
                  _this.$message({
                    type: "success",
                    message: resData.message,
                  });
xulili's avatar
xulili committed
101
                  localStorage.setItem("userType", resData.user.type);
xulili's avatar
xulili committed
102
                  localStorage.setItem("user", resData.user.userName);
xulili's avatar
xulili committed
103
                  localStorage.setItem("userId", resData.user.id);
xulili's avatar
xulili committed
104
                  localStorage.setItem("backToken", resData.token);
xulili's avatar
xulili committed
105
                  localStorage.setItem("roleList", resData.user.roleList);
xulili's avatar
xulili committed
106 107 108
                  if(!resData.user.permanent){
                     localStorage.setItem("expireNum", resData.expireNum);
                  }
xulili's avatar
xulili committed
109 110 111 112
                  localStorage.setItem(
                    "menuList",
                    JSON.stringify(resData.menuList)
                  );
xulili's avatar
xulili committed
113
                  if (resData.isDefault) {
xulili's avatar
xulili committed
114 115 116
                    this.$alert("登录成功,为了安全,建议修改密码", "", {
                      confirmButtonText: "确定",
                      callback: (action) => {
xulili's avatar
xulili committed
117
                       
xulili's avatar
xulili committed
118 119 120 121
                      },
                    });
                  }
                  if (_this.$route.query.redirect) {
xulili's avatar
xulili committed
122
                    _this.$router.push(_this.$route.query.redirect);
xulili's avatar
xulili committed
123 124
                  } else {
                    _this.$router.push("index");
xulili's avatar
xulili committed
125
                  }
xulili's avatar
xulili committed
126 127 128 129 130 131
                } else {
                  _this.$message.error(res.data.message);
                }
              } else {
                _this.$message.error(res.data.message);
              }
qzhxx's avatar
qzhxx committed
132
            })
xulili's avatar
xulili committed
133 134 135
            .catch((error) => {
              _this.$message.error(error.message);
            });
qzhxx's avatar
qzhxx committed
136
        } else {
xulili's avatar
xulili committed
137 138
          this.flag = false;
          return false;
qzhxx's avatar
qzhxx committed
139
        }
xulili's avatar
xulili committed
140 141 142 143
      });
    },
  },
};
qzhxx's avatar
qzhxx committed
144
</script>
xulili's avatar
xulili committed
145 146 147 148 149 150 151
<style lang="less" scoped>
#backlogin {
  position: absolute;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
xulili's avatar
xulili committed
152 153
  background: #9b1f23 url("~@/assets/login/login_bg.png") no-repeat center/ 100%
    100%;
xulili's avatar
xulili committed
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
  .content {
    width: 33.33%;
    height: 100vh;
    background-color: @party-white;
    position: absolute;
    right: 13.5%;
    box-shadow: 0 0 20px 8px rgba(0, 0, 0, 0.2);
    &:before,
    &::after {
      display: inline-block;
      content: "";
      width: 100%;
      height: auto;
    }
    &:before {
      height: 100px;
      background: url("~@/assets/login/login_top01.png") no-repeat center/ 100%
        100%;
    }
    &:after {
      height: 130px;
      position: absolute;
      bottom: 0;
      left: 0;
      background: url("~@/assets/login/login_bt01.png") no-repeat center/ 100%
        100%;
    }
xulili's avatar
xulili committed
181 182 183 184 185 186
    .page-content {
      position: absolute;
      top: 50%;
      left: 50%;
      margin-top: -50%;
      margin-left: -50%;
xulili's avatar
xulili committed
187
      width: 100%;
xulili's avatar
xulili committed
188
    }
xulili's avatar
xulili committed
189
    .page-title {
xulili's avatar
xulili committed
190 191
      width: 100%;
      margin-bottom: 60px;
xulili's avatar
xulili committed
192
      p {
qzhxx's avatar
qzhxx committed
193
        text-align: center;
xulili's avatar
xulili committed
194 195 196 197
        font-weight: bold;
        font-size: 44px;
        color: @font-color;
        letter-spacing: 0;
qzhxx's avatar
qzhxx committed
198
        text-align: center;
xulili's avatar
xulili committed
199 200 201
        line-height: 66px;
        margin: 0;
        padding: 0;
qzhxx's avatar
qzhxx committed
202
      }
xulili's avatar
xulili committed
203 204 205 206 207 208 209 210 211 212 213 214
    }
    .icon-prefix {
      display: inline-block;
      width: 24px;
      height: 24px;
    }
    .icon-username {
      background: url("~@/assets/login/user.png") no-repeat center/ 100%;
    }
    .icon-pwd {
      background: url("~@/assets/login/pwd.png") no-repeat center/ 100%;
    }
xulili's avatar
xulili committed
215

xulili's avatar
xulili committed
216
    /deep/.el-form {
xulili's avatar
xulili committed
217
      width: 100%;
xulili's avatar
xulili committed
218 219 220 221 222 223 224 225 226 227 228 229 230 231
      text-align: center;
      .el-form-item {
        margin-bottom: 60px;
      }
      .el-input {
        width: 320px;
        height: 48px;
        .el-input__inner {
          height: 48px;
          line-height: 48px;
          background-color: @party-bg-gray;
          border-color: @party-bg-gray;
          padding-left: 68px;
          font-size: 18px;
qzhxx's avatar
qzhxx committed
232
        }
xulili's avatar
xulili committed
233 234 235
        .el-input__prefix {
          left: 20px;
          padding-top: 12px;
qzhxx's avatar
qzhxx committed
236 237
        }
      }
xulili's avatar
xulili committed
238 239 240
      .el-form-item__error {
        left: calc(50% - 160px);
      }
xulili's avatar
xulili committed
241 242 243 244
      .el-button.login {
        width: 320px;
        height: 48px;
        background: #a4151d;
qzhxx's avatar
qzhxx committed
245
        border-radius: 4px;
xulili's avatar
xulili committed
246 247 248 249 250 251 252 253 254
        color: @party-white;
        margin-top: 20px;
        span {
          font-size: 18px;
          font-weight: bold;
        }
        &:hover {
          opacity: 0.8;
        }
qzhxx's avatar
qzhxx committed
255 256 257
      }
    }
  }
xulili's avatar
xulili committed
258 259 260 261
}
@media (min-width: 1301px) and (max-width: 1600px) {
  #backlogin .content {
    .page-title {
xulili's avatar
xulili committed
262
      margin-bottom: 50px;
xulili's avatar
xulili committed
263 264 265 266 267 268 269 270 271
      p {
        font-size: 30px;
      }
    }
  }
}
@media screen and (max-width: 1300px) {
  #backlogin .content {
    .page-title {
xulili's avatar
xulili committed
272
      margin-bottom: 30px;
xulili's avatar
xulili committed
273 274 275 276 277 278
      p {
        font-size: 24px;
      }
    }
  }
}
qzhxx's avatar
qzhxx committed
279
</style>