From 7043590a8a1d24a4c86472051c103a8e4dc2ddb4 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sat, 09 Aug 2025 17:34:01 +0800
Subject: [PATCH] 1

---
 src/page/authentication/index.vue |  764 +++++++++++++++++++++++++---------------------------------
 1 files changed, 328 insertions(+), 436 deletions(-)

diff --git a/src/page/authentication/index.vue b/src/page/authentication/index.vue
index cc92791..30b19d7 100644
--- a/src/page/authentication/index.vue
+++ b/src/page/authentication/index.vue
@@ -1,477 +1,369 @@
 <template>
-  <div class="wrapper">
-    <div class="header">
-      <div class="left_back" @click="handleGoToBack()">
-        <img src="../../assets/img/zuojiantou.png" alt="">
-      </div>
-      <div class="header_titles">
-        <span>{{ '实名认证' }}</span>
-      </div>
-    </div>
-    <div class="boxs"></div>
-    <div class="box transaction">
-      <div class="box-contain clearfix">
-        <div class="empty text-center">
-          <!-- 您已通过实名认证 -->
-          <i v-if="this.$store.state.userInfo.isActive == 1" style="color:red;font-size: 1.5rem;"
-             class="iconfont icon-shenhezhong"></i>
-          <i v-if="!showBtn && this.$store.state.userInfo.isActive != 1" style="color:red;font-size: 1.5rem;"
-             class="iconfont icon-tongguo1"></i>
-          <i v-if="showBtn" style="color:red;font-size: 1.5rem;" class="iconfont icon-icon-test"></i>
-        </div>
-      </div>
-    </div>
-    <div class="form-block">
-      <div class="auth-msg" v-if="this.$store.state.userInfo.isActive == 3">
-        <p>认证失败,请重新认证</p>
-        <div>
-          失败原因:{{this.$store.state.userInfo.authMsg}}
-        </div>
-      </div>
-      <!-- <mt-field label="手机号" placeholder="请输入您的手机号" v-model="form.phone"></mt-field> -->
-      <mt-field label="真实姓名" placeholder="请输入您的真实姓名" type="text" v-model="form.name"></mt-field>
-      <mt-field label="身份证号" placeholder="请输入您的身份证号" type="text" v-model="form.idCard"></mt-field>
-    </div>
-    <div class="upload-box clearfix">
-      <!-- <form action=""> -->
-      <div class="upload-btn">
-        <el-upload
-          :with-credentials='true'
-          class="avatar-uploader"
-          :action="admin+'/user/upload.do'"
-          list-type="picture-card"
-          name="upload_file"
-          :show-file-list="false"
-          :on-success="handleAvatarSuccess"
-          :on-error='handleError'
-          :before-upload="beforeAvatarUpload">
-          <img v-if="form.img1key" :src="form.img1key" class="id-img avatar">
-          <i v-else class="iconfont icon-zhaopian"></i>
-          <span v-if="!form.img1key && !imgStatus" class="btn-title">身份证正面</span>
-          <span v-if="imgStatus" class="btn-title">正在上传中...</span>
-        </el-upload>
-        <!-- <i class="iconfont icon-tupian"></i> -->
-        <!-- <span class="btn-title">身份证正面</span> -->
-        <!-- <input class="btn-hidden" type="file" accept="image/jpeg, image/png, image/jpg" @change="handleFile"/> -->
-        <!-- <img class="id-img" :src="this.form.img2Key" alt=""> -->
-      </div>
-      <div class="upload-btn">
-        <el-upload
-          :with-credentials='true'
-          class="avatar-uploader"
-          :action="admin+'/user/upload.do'"
-          list-type="picture-card"
-          name="upload_file"
-          :show-file-list="false"
-          :on-success="handleAvatarSuccess2"
-          :on-error='handleError2'
-          :before-upload="beforeAvatarUpload2">
-          <img v-if="form.img2key" :src="form.img2key" class="id-img avatar">
-          <i v-else class="iconfont icon-zhaopian"></i>
-          <span v-if="!form.img2key && !imgStatus2" class="btn-title">身份证背面</span>
-          <span v-if="imgStatus2" class="btn-title">正在上传中...</span>
-        </el-upload>
-        <!--
-            :auto-upload="false"
-            身份证背面 -->
-      </div>
-      <!-- <div class="upload-btn">
-          <el-upload
-              :with-credentials='true'
-              class="avatar-uploader"
-              :action="admin+'/user/upload.do'"
-              list-type="picture-card"
-              name="upload_file"
-              :show-file-list="false"
-              :on-success="handleAvatarSuccess3"
-              :before-upload="beforeAvatarUpload3">
-              <img v-if="form.img3key" :src="form.img3key" class="id-img avatar">
-              <i v-else class="iconfont icon-zhaopian"></i>
-              <span v-if="!form.img3key"  class="btn-title">手持身份证</span>
-          </el-upload>
-      </div> -->
-    </div>
-    <div class="rule-box">
-      <div class="title">认证规则:</div>
-      <ul>
-        <li>1、新用户注册后必须通过实名认证审核。</li>
-        <li>2、姓名和身份证号码一经认证不予修改,修改请联系客服。</li>
-        <li>3、真实姓名必须和出金银行卡户名一致。</li>
-      </ul>
-    </div>
-    <div v-if="showBtn" class="btnbox">
-      <span class="" @click="toSure">确定</span>
+  <div class="authentication-container">
+    <van-nav-bar :placeholder="true" :safe-area-inset-top="true" :title="$t('rnv')" left-arrow
+      @click-left="$router.go(-1)">
+    </van-nav-bar>
+
+    <div style="width: 100%; height: .25em; background-color: #f8f8f8"></div>
+
+    <div class="form-group" :class="{ 'disabled': isSubmitting || isActive }">
+      <label class="required-label">{{ $t('hj195') }}</label>
+      <input type="text" v-model="form.name" class="form-input" :disabled="isActive" />
     </div>
 
+    <div class="form-group" :class="{ 'disabled': isSubmitting || isActive }">
+      <label class="required-label">{{ $t('it1') }}</label>
+      <van-radio-group v-model="auRadio" direction="horizontal" disabled style="font-size: 3.5vw;margin-top: 1em;">
+        <van-radio name="1">{{ $t('dl1') }}</van-radio>
+        <van-radio name="2">{{ $t('pa1') }}</van-radio>
+        <van-radio name="3">{{ $t('ot1') }}</van-radio>
+      </van-radio-group>
+    </div>
+
+    <div class="form-group" :class="{ 'disabled': isSubmitting || isActive }">
+      <label class="required-label">{{ $t('in1') }}</label>
+      <input type="text" v-model="form.idCard" class="form-input" :disabled="isActive" />
+    </div>
+
+    <div class="form-group" :class="{ 'disabled': isSubmitting || isActive }">
+      <label class="required-label">{{ $t("电话号码") }}</label>
+      <input type="text" v-model="form.vaildNumber" class="form-input" :disabled="isActive" />
+    </div>
+
+    <div style="width: 100%; height: .25em; background-color: #f8f8f8"></div>
+
+    <div class="form-group flex-between" :class="{ 'disabled': isSubmitting || isActive }">
+      <label class="required-label">{{ $t('fsi1') }}</label>
+
+      <el-upload :with-credentials="true" class="avatar-uploader" :action="admin + 'user/upload.do'"
+        list-type="picture-card" name="upload_file" :show-file-list="false" :on-success="handleAvatarSuccess"
+        :on-error="handleError" :before-upload="beforeAvatarUpload" :disabled="isActive">
+        <img v-if="form.img1key" :src="form.img1key" class="id-img avatar" style="width: 100%; height: 100%" />
+        <i v-else class="iconfont icon-zhaopian"></i>
+      </el-upload>
+    </div>
+
+    <div class="form-group flex-between" :class="{ 'disabled': isSubmitting || isActive }">
+      <label class="required-label">{{ $t('bsi1') }}</label>
+
+      <el-upload :with-credentials="true" class="avatar-uploader" :action="admin + 'user/upload.do'"
+        list-type="picture-card" name="upload_file" :show-file-list="false" :on-success="handleAvatarSuccess2"
+        :on-error="handleError2" :before-upload="beforeAvatarUpload2" :disabled="isActive">
+        <img v-if="form.img2key" :src="form.img2key" class="id-img avatar" style="width: 100%; height: 100%" />
+        <i v-else class="iconfont icon-zhaopian"></i>
+      </el-upload>
+    </div>
+
+    <div style="width: 100%; height: .25em; background-color: #f8f8f8"></div>
+
+    <div class="submit-button" :class="{ 'disabled': isSubmitting || isActive }" @click="toSure">
+      <span>{{ $t("uv1") }}</span>
+    </div>
   </div>
 </template>
 
 <script>
-import * as api from '@/axios/api'
-import { Toast } from 'mint-ui'
-import { isNull, idCardReg, isName } from '@/utils/utils'
-import { compress } from '@/utils/imgupload'
-
+import * as api from "@/axios/api";
+import apiUrl from "@/axios/api.url.js";
+import { compress } from "@/utils/imgupload";
+import { isNull } from "@/utils/utils";
+import { Toast } from "vant";
 export default {
-  components: {},
-  props: {},
-  data () {
+  name: 'Authentication',
+  data() {
     return {
+      frontImage: '',
+      backImage: '',
+      isSubmitting: false,
+      auRadio: '1',
       form: {
-        phone: '',
-        name: '',
-        idCard: '',
-        img1key: '',
-        img2key: '',
-        img3key: ''
+        phone: "",
+        name: "",
+        idCard: "",
+        vaildNumber: "",
+        img1key: "",
+        img2key: "",
       },
-      img1Key: '',
-      img2Key: '',
-      img3Key: '',
-      showBtn: true,
-      admin: '',
       imgStatus: false,
-      imgStatus2: false
+      admin: apiUrl.baseURL,
     }
   },
-  watch: {},
-  computed: {},
-  created () {
-    if (this.$store.state.userInfo.isActive === 1 || this.$store.state.userInfo.isActive === 2) {
-      this.form.idCard = this.$store.state.userInfo.idCard
-      this.form.name = this.$store.state.userInfo.realName
-      this.form.img1key = this.$store.state.userInfo.img1Key
-      this.form.img2key = this.$store.state.userInfo.img2Key
-      //   this.form.img3key = this.$store.state.userInfo.img3Key
-      this.showBtn = false
+  computed: {
+    //注册默认0  1.提交未实名 2.已实名 3.驳回, 状态1||2的时候屏蔽所有的输入
+    isActive() {
+      return this.$store.state.userInfo.isActive == 1 || this.$store.state.userInfo.isActive == 2;
+      // return false;
     }
   },
-  beforeDestroy () {
-    if (this.$state.theme =='red') {
-      document.body.classList.remove('red-bg')
-        document.body.classList.add('black-bg')
-    }
+  created() {
+    this.getUserInfo();
   },
-  mounted () {
-    if (this.$state.theme =='red') {
-        document.body.classList.remove('black-bg')
-        document.body.classList.add('red-bg')
-    }
-    this.admin = process.env.API_HOST
-    if (this.admin === undefined) {
-      this.admin = ''
-    }
+  mounted() {
+    // 可以在这里加载用户已有的认证信息
+    // 如果用户已经提交过认证信息,可以显示认证状态
   },
   methods: {
-    handleAvatarSuccess (res, file) {
-      this.imgStatus = false
-      this.form.img1key = res.data.url
-    },
-    handleGoToBack() {
-      this.$router.go(-1);
-    },
-    beforeAvatarUpload (file) {
-      this.imgStatus = true
-      //     const isJPG = file.type === 'image/jpg' || file.type === 'image/jpeg' || file.type === 'image/png';
-      //     const isLt2M = file.size / 1024 / 1024 < 20;
-      //     if (!isJPG) {
-      //         Toast('请选择jpg或者png的图片格式!');
-      //     }
-      // // if (!isLt2M) {
-      // //     Toast('上传头像图片大小不能超过 2MB!');
-      // // }
-      //     return isJPG && isLt2M;
-    },
-    handleError () {
-      this.imgStatus = false
-    },
-    handleAvatarSuccess2 (res, file) {
-      this.imgStatus2 = false
-      this.form.img2key = res.data.url // URL.createObjectURL(file.raw);
-    },
-    // 自动义图片上传 uploadFileFun2
-    // async uploadFileFun2 (params) {
-    //   console.log('uploadFile', params)
-    //   const _that = this
-    //   const isLt10M = file.size / 1024 / 1024 < 10
-    //   if (!isLt10M) {
-    //     this.$message.error('上传图片大小不能超过 10M!')
-    //     return false
-    //   } else {
-    //     this.form.img2key = URL.createObjectURL(file.raw)
-    //     compress(file.raw, function (val) {
-    //       _that.form.img2key = val
-    //     })
-    //   }
-    //   // 通过 FormData 对象上传文件
-    //   const _file = params.file
-    //   var formData = new FormData()
-    //   formData.append('upload_file', _file)
-    //   let data = await api.uploadimg(formData)
-    //   if (data.status === 0) {
-    //     this.form.img2key = data.data
-    //   } else {
-    //     Toast(data.msg)
-    //   }
-    // },
-    beforeAvatarUpload2 (file) {
-      this.imgStatus2 = true
-      // const _that = this
-      const isLt10M = file.size / 1024 / 1024 < 10
-      if (!isLt10M) {
-        this.$message.error('上传图片大小不能超过 10M!')
-        return false
-      } else {
-        this.form.img2key = URL.createObjectURL(file)
-        compress(file, function (val) {
-          // _that.theForm.picUrl = val
-          // _that.imgFile = val
-          // _that.showDelete = true
-          // _that.$refs['addBuildingForm'].validateField('picUrl')
-        })
-      }
-      // const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';
-      // const isLt2M = file.size / 1024 / 1024 < 20;
 
-      // return isJPG && isLt2M;
-    },
-    handleError2 () {
-      this.imgStatus2 = false
-    },
-    handleAvatarSuccess3 (res, file) {
-      this.form.img3key = res.data.url // URL.createObjectURL(file.raw);
-    },
-    beforeAvatarUpload3 (file) {
-      // const isJPG = file.type === 'image/jpeg' || file.type === 'image/jpeg' || file.type === 'image/png';
-      // const isLt2M = file.size / 1024 / 1024 < 20;
-      // if (!isJPG) {
-      //     Toast('请选择jpg或者png的图片格式!');
-      // }
-      // return isJPG && isLt2M;
-    },
-    // 上传
-    handleFile: function (e) {
-      // var that = this
-      let $target = e.target || e.srcElement
-      let file = $target.files[0]
-      // if(file.size > 1024 * 1024 *20){
-      console.log(file, 'file')
-      let i = false
-      if (i) {
-        Toast('您上传的照片过大,请选择20M以下的图片')
-      } else {
-        // Indicator.open('Loading...')
-        this.img1Key = file
-        // this.$refs.formDate.submit()
-        // this.uploadIdImg({upload_file:file})
-        var reader = new FileReader()
-        reader.onload = (data) => {
-          let res = data.target || data.srcElement
-          this.form.img1Key = res.result
-          // Indicator.close()
-        }
-        // reader.onloadend = () => {
-        //   Indicator.close()
-        // }
-        reader.readAsDataURL(file)
-      }
-    },
-    // async uploadIdImg(){
-    //      let imgformData = new FormData()
-
-    //         imgformData.append('upload_file', this.img1Key)
-    //     let data = await api.uploadFile({upload_file:this.img1Key})
-    //     if(data.status == 0){
-    //         Toast('认证成功!')
-    //     }else{
-    //         Toast(data.msg)
-    //     }
-    // },
-    toSure () {
+    toSure() {
+      if (this.isSubmitting || this.isActive) return // 防止重复提交
       // 实名认证弹框
-      if (isNull(this.form.name) || !isName(this.form.name)) {
-        Toast('请输入您的真实姓���')
-      } else if (isNull(this.form.idCard) || !idCardReg(this.form.idCard)) {
-        Toast('请输入您的正确的身份证号码')
-      } else if (isNull(this.form.img1key) || isNull(this.form.img2key)) {
-        Toast('请上传您的身份证照片')
+      if (isNull(this.form.name)) {
+        Toast(this.$t("hj207"));
+      } else if (isNull(this.form.idCard)) {
+        Toast(this.$t("hj208"));
+      } else if (!this.form.img1key) {
+        Toast(this.$t("hj209"));
+      } else if (!this.form.img2key) {
+        Toast(this.$t("hj209"));
       } else {
         // 显示确认弹窗
-        this.toAuthentication()
+        this.toAuthentication();
       }
     },
-    async toAuthentication () {
+    async toAuthentication() {
+      this.isSubmitting = true
+
       let opts = {
         realName: this.form.name,
         idCard: this.form.idCard,
+        vaildNumber: this.form.vaildNumber,
         img1key: this.form.img1key,
         img2key: this.form.img2key,
-        img3key: this.form.img3key
-      }
-      let data = await api.userAuth(opts)
+        img3key: this.form.img3key,
+      };
+      let data = await api.userAuth(opts);
       if (data.status === 0) {
-        Toast('提交成功!')
-        this.goBack()
+        Toast(this.$t("hj210"));
+        this.goBack();
       } else {
-        Toast(data.msg)
+        Toast(data.msg);
+      }
+      this.isSubmitting = false
+    },
+    async getUserInfo() {
+      // 获取用户信息
+      let data = await api.getUserInfodata();
+      if (data.status === 0) {
+        // 判断是否登录
+        this.$store.commit("dialogVisible", false);
+        this.$store.state.userInfo = data.data;
+        this.userInfo = data.data;
+        if (
+          this.$store.state.userInfo.isActive === 1 ||
+          this.$store.state.userInfo.isActive === 2
+        ) {
+          this.form.idCard = this.$store.state.userInfo.idCard;
+          this.form.vaildNumber = this.$store.state.userInfo.vaildNumber;
+          this.form.name = this.$store.state.userInfo.realName;
+          this.form.img1key = this.$store.state.userInfo.img1Key;
+          this.form.img2key = this.$store.state.userInfo.img2Key;
+          this.showBtn = false;
+        }
+      } else {
+        //this.$store.commit('dialogVisible',true);
+        //跳转到login
+        this.$router.push({ path: "/login" });
       }
     },
-    goBack () {
-      this.$router.back(-1)
-    }
+    handleAvatarSuccess(res, file) {
+      this.imgStatus = false;
+      this.form.img1key = res.data.url;
+    },
+    beforeAvatarUpload(file) {
+      this.imgStatus = true;
+    },
+    handleError() {
+      this.imgStatus = false;
+    },
+    handleAvatarSuccess2(res, file) {
+      this.imgStatus2 = false;
+      this.form.img2key = res.data.url; // URL.createObjectURL(file.raw);
+    },
+    beforeAvatarUpload2(file) {
+      this.imgStatus2 = true;
+      const isLt10M = file.size / 1024 / 1024 < 10;
+      if (!isLt10M) {
+        this.$message.error(this.$t("hj205"));
+        return false;
+      } else {
+        this.form.img2key = URL.createObjectURL(file);
+        compress(file, function (val) { });
+      }
+    },
+    handleError2() {
+      this.imgStatus2 = false;
+    },
   }
 }
 </script>
+
 <style lang="less" scoped>
-  .transaction {
-    color: rgba(100, 100, 100, 0.78);
+@green: #c4d600;
 
-    .empty {
-      width: 100%;
-      // height: 1.34rem;
-      font-size: 0.43rem;
-      color: #888888;
-      text-align: center;
-      line-height: 2rem;
-      // background: url('../../assets/img/thingsOk.png') no-repeat center center;
-      background-size: 70%;
-    }
+/deep/ .van-nav-bar__content {
+  height: 65px;
+}
+
+/deep/ .van-nav-bar__title {
+  font-family: "DINPro";
+  width: 100%;
+  height: 1.17333rem;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  font-style: normal;
+  font-weight: 700;
+  font-size: 0.48rem;
+  color: #14181f;
+}
+
+/deep/ .el-upload__input {
+  display: none;
+}
+
+.authentication-container {
+  /* padding: 20px; */
+  background-color: #ffffff;
+  min-height: 100vh;
+  font-size: 10vw;
+}
+
+.form-group {
+  margin-bottom: .25em;
+  padding: .25em .25em 0;
+}
+
+label {
+  display: block;
+  margin-bottom: 8px;
+  color: #999;
+  font-size: 16px;
+  font-weight: normal;
+}
+
+.required-label {
+  color: #333;
+  font-weight: bold;
+  font-size: .4em;
+}
+
+.required-label::before {
+  content: '*';
+  color: #ff4d4f;
+  margin-right: 4px;
+}
+
+.form-input {
+  width: 100%;
+  height: 3em;
+  border: 1px solid #e8e8e8;
+  border-radius: 4px;
+  padding: 0 15px;
+  font-size: .4em;
+  box-sizing: border-box;
+  color: #333;
+}
+
+.id-type-options {
+  display: flex;
+  justify-content: space-between;
+}
+
+.option {
+  display: flex;
+  align-items: center;
+  padding: 10px 15px;
+  border: 1px solid #e8e8e8;
+  border-radius: 4px;
+  background-color: #fff;
+  flex: 1;
+  margin-right: 10px;
+}
+
+.option:last-child {
+  margin-right: 0;
+}
+
+.option.selected {
+  border-color: #4a90e2;
+}
+
+.radio-circle {
+  width: 24px;
+  height: 24px;
+  border-radius: 50%;
+  border: 1px solid #ccc;
+  margin-right: 8px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background-color: #f5f5f5;
+}
+
+.option.selected .radio-circle {
+  border-color: #4a90e2;
+  background-color: #fff;
+}
+
+.radio-inner {
+  width: 14px;
+  height: 14px;
+  border-radius: 50%;
+  background-color: #4a90e2;
+}
+
+.upload-box {
+  width: 100%;
+  height: 120px;
+  border: 1px solid #e8e8e8;
+  border-radius: 4px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background-color: #fafafa;
+  cursor: pointer;
+  overflow: hidden;
+}
+
+.upload-placeholder {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+}
+
+.upload-icon {
+  width: 40px;
+  height: 40px;
+  margin-bottom: 8px;
+  opacity: 0.5;
+}
+
+.preview-image {
+  width: 100%;
+  height: 100%;
+  object-fit: cover;
+}
+
+.submit-button {
+  width: 9.5em;
+  margin: .4em auto 0;
+  height: 1.2em;
+  background-color: #e6e254;
+  color: #fff;
+  border-radius: 4px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  cursor: pointer;
+  font-weight: normal;
+
+  span {
+    font-size: .4em;
   }
+}
 
-  .rule-box {
-    padding: 0.2rem 0.3rem;
-
-    .title {
-      font-size: 0.3rem;
-      height: 0.5rem;
-      line-height: 0.5rem;
-      margin-bottom: 0.2rem;
-    }
-
-    ul {
-      li {
-        color: #999;
-        line-height: 0.5rem;
-      }
-    }
-  }
-
-  .upload-box {
-    padding: 0.5rem;
-
-    .upload-btn {
-      // border: 1px solid #ddd;
-      border-radius: 4px;
-      width: 40%;
-      height: 1.6rem;
-      margin-bottom: 10px;
-      float: left;
-      margin: 0.2rem 5%;
-      text-align: center;
-      position: relative;
-
-      .btn-hidden {
-        height: 100%;
-        width: 100%;
-        position: absolute;
-        top: 0;
-        left: 0;
-        z-index: 3;
-        opacity: 0;
-      }
-
-      .id-img {
-        max-width: 100%;
-        max-height: 100%;
-      }
-
-      /deep/ .el-upload--picture-card {
-        background: none;
-        width: 100%;
-        height: 1.6rem;
-        line-height: 1.6rem;
-      }
-
-      .btn-title {
-        position: absolute;
-        top: 23px;
-        left: 0;
-        width: 100%;
-      }
-
-      /deep/ .el-upload__input {
-        display: none;
-      }
-
-    }
-
-  }
-
-  .auth-msg {
-    padding: 0.2rem 0.6rem;
-    line-height: 0.4rem;
-
-    p {
-      color: red;
-    }
-
-    div {
-      color: #ddd;
-    }
-  }
-  .header {
-    width: 100%;
-    height: 1.5rem;
-    background: #fff;
-    position: fixed;
-    z-index: 999;
-    border-radius: 0 0 .15rem .15rem;
-    .left_back {
-      width: 1rem;
-      height: 100%;
-      left: 0;
-      position: absolute;
-      display: flex;
-      justify-content: center;
-      align-items: center;
-      img {
-        width: .6rem;
-        height: .6rem;
-      }
-    }
-    .header_titles {
-      width: 100%;
-      height: 100%;
-      text-align: center;
-      font-size: .4615rem;
-      line-height: 1.5rem;
-      span {
-        font-weight: 600;
-      }
-    }
-  }
-  .boxs {
-    width: 100%;
-    height: 1.7rem;
-  }
-  .btnbox {
-    width: 100%;
-    height: 1rem;
-    padding: 0 .3rem;
-    font-size: .4615rem;
-    color: #fff;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    span {
-      display: inline-block;
-      width: 100%;
-      height: 1rem;
-      line-height: 1rem;
-      background: #2d6ae9;
-      text-align: center;
-      font-weight: 600;
-      border-radius: .12rem;
-    }
-  }
-</style>
+.disabled {
+  opacity: .5;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3