From 3f3e2d5977787b0c6e09cd5cba7b41e5fb7d3fd0 Mon Sep 17 00:00:00 2001
From: zzzz <690498789@qq.com>
Date: Sun, 21 Apr 2024 15:59:28 +0800
Subject: [PATCH] first

---
 src/page/authentication/index.vue |  542 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 334 insertions(+), 208 deletions(-)

diff --git a/src/page/authentication/index.vue b/src/page/authentication/index.vue
index f591cd2..230774e 100644
--- a/src/page/authentication/index.vue
+++ b/src/page/authentication/index.vue
@@ -4,79 +4,181 @@
     <assets-head :title="$t('进阶认证')" />
     <!-- <country-list /> -->
     <div v-if="show">
-         <div class=" pt-58 pb-54 box-border border-b-color" v-if="disabled() || status === 3">
-           <div class="flex justify-between items-center px-30 textColor">
-             <div class="font-50">{{ $t('身份认证') }}</div>
-             <div class="flex items-center" v-if="resultArr[this.status]">
-               <img
-                 :src="require(`@/assets/image/assets-center/${resultArr[this.status] && resultArr[this.status].split('_')[0]}.png`)"
-                 alt="success img" class="w-36 h-36" />
-               <div class="font-32 ml-18">{{resultArr[this.status] && resultArr[this.status].split('_')[1] }}</div>
-             </div>
-           </div>
-         </div>
-         <div class="pl-30 pr-30">
-           <div class="mb-40">
-             <div class="mt-54 mb-25 font-24 textColor">{{ $t('国籍') }}</div>
-             <div class="pt-28 pb-28 pl-38 pr-38 flex justify-between items-center rounded inputBackground textColor" @click="openBtn">
-               <div class="flex items-center">
-                 <!-- <div class="iti-flag mr-20" :class="countryCode" style="transform: scale(2.1)"></div> -->
-                 <div>{{ countryName }}</div>
-               </div>
-         
-               <img v-if="resultArr.length === 0" src="../../assets/image/public/down-arrow.png" class="w-33 h-20" alt="arrow" />
-             </div>
-           </div>
-           <ExInput :label="$t('真实姓名')" :disabled="disabled()" :clearBtn="!disabled()" :placeholderText="$t('请输入真实姓名')"
-             v-model="name" />
-           <ExInput :label="$t('证件/护照号码')" :disabled="disabled()" :clearBtn="!disabled()" :placeholderText="$t('请输入您的证件/护照号码')"
-             v-model="idnumber" />
-           <div>
-             <div v-if="resultArr.length > 0" class="mt-4 mb-25 textColor">{{ $t('证件照/上传护照') }}</div>
-             <div v-else class="mt-4 mb-25 textColor">{{ $t('证件/护照认证图片上传') }}</div>
-             <div class="flex mt-33 mb-80 justify-between">
-               <div class="flex-1 flex flex-col text-center justify-center items-center">
-                 <div class="upload-wrap">
-                   <img src="@/assets/image/kyc/0.png" alt="" class="w-full"
-                     v-if="[1,2].includes(status) && frontFile.length === 0" />
-                   <van-uploader v-model="frontFile" multiple :max-count="1" :disabled="disabled()" :deletable="!disabled()"
-                     :after-read="afterRead" @click-upload="onClickUpload('frontFile')" v-else />
-                 </div>
-                 <div class="mt-32 font-26 h-20" style="color:#868D9A;">{{ $t('证件正面') }}</div>
-               </div>
-               <div class="flex-1 flex flex-col text-center justify-center items-center">
-                 <div class="upload-wrap">
-                   <img src="@/assets/image/kyc/1.png" alt="" class="w-full"
-                     v-if="[1,2].includes(status) && reverseFile.length === 0" />
-                   <van-uploader v-model="reverseFile" multiple :max-count="1" :disabled="disabled()" :deletable="!disabled()"
-                     :after-read="afterRead" @click-upload="onClickUpload('reverseFile')" v-else />
-                 </div>
-                 <div class="mt-32 font-26 h-20" style="color:#868D9A;">{{ $t('证件反面') }}</div>
-               </div>
-               <div class="flex-1 flex flex-col text-center justify-center items-center">
-                 <div class="upload-wrap">
-                   <img src="@/assets/image/kyc/2.png" alt="" class="w-full"
-                     v-if="[1,2].includes(status) && fileList.length === 0" />
-                   <van-uploader v-model="fileList" multiple :max-count="1" :disabled="disabled()" :deletable="!disabled()"
-                     :after-read="afterRead" @click-upload="onClickUpload('fileList')" v-else />
-                 </div>
-                 <div class="mt-32 font-26 h-20" style="color:#868D9A;">{{ $t('手持证件照') }}</div>
-               </div>
-             </div>
-           </div>
-           <template v-if="!disabled()">
-             <div class="font-35 mb-32 textColor">{{ $t('拍摄示例') }}</div>
-             <img src="../../assets/image/kyc/kyc-demo.png" alt="" style="width:100%;height:auto;" class="w-756 h-220 mb-100">
-           </template>
-           <button class="apply-btn btnMain text-white font-35 h-100 rounded" @click="onSubmit" v-if="!disabled()">{{
-           $t('申请认证') }}</button>
-           <div class="pt-35 pb-60 font-30" v-if="!disabled() || status === 3">
-             <span class="text-grey">{{ $t('上传证件照失败,请联系客服获取邮箱地址发送证件照或者重新上传') }}</span>
-             <span class="text-blue service-text" @click="tokefu"> {{ $t('联系客服') }}</span>
-           </div>
-           <nationality-list ref='controlChild' :title="$t('请选择国家')" @getName="getName(arguments)" v-if="!disabled()">
-           </nationality-list>
-         </div>
+      <div
+        class="pt-58 pb-54 box-border border-b-color"
+        v-if="disabled() || status === 3"
+      >
+        <div class="flex justify-between items-center px-30 textColor">
+          <div class="font-50">{{ $t("身份认证") }}</div>
+          <div class="flex items-center" v-if="resultArr[this.status]">
+            <img
+              :src="
+                require(`@/assets/image/assets-center/${
+                  resultArr[this.status] && resultArr[this.status].split('_')[0]
+                }.png`)
+              "
+              alt="success img"
+              class="w-36 h-36"
+            />
+            <div class="font-32 ml-18">
+              {{
+                resultArr[this.status] && resultArr[this.status].split("_")[1]
+              }}
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="pl-30 pr-30">
+        <div class="mb-40">
+          <div class="mt-54 mb-25 font-24 textColor">{{ $t("国籍") }}</div>
+          <div
+            class="pt-28 pb-28 pl-38 pr-38 flex justify-between items-center rounded inputBackground textColor"
+            @click="openBtn"
+          >
+            <div class="flex items-center">
+              <!-- <div class="iti-flag mr-20" :class="countryCode" style="transform: scale(2.1)"></div> -->
+              <div>{{ countryName }}</div>
+            </div>
+
+            <img
+              v-if="resultArr.length === 0"
+              src="../../assets/image/public/down-arrow.png"
+              class="w-33 h-20"
+              alt="arrow"
+            />
+          </div>
+        </div>
+        <ExInput
+          :label="$t('真实姓名')"
+          :disabled="disabled()"
+          :clearBtn="!disabled()"
+          :placeholderText="$t('请输入真实姓名')"
+          v-model="name"
+        />
+        <ExInput
+          :label="$t('证件/护照号码')"
+          :disabled="disabled()"
+          :clearBtn="!disabled()"
+          :placeholderText="$t('请输入您的证件/护照号码')"
+          v-model="idnumber"
+        />
+        <div>
+          <div v-if="resultArr.length > 0" class="mt-4 mb-25 textColor">
+            {{ $t("证件照/上传护照") }}
+          </div>
+          <div v-else class="mt-4 mb-25 textColor">
+            {{ $t("证件/护照认证图片上传") }}
+          </div>
+          <div class="flex mt-33 mb-80 justify-between">
+            <div
+              class="flex-1 flex flex-col text-center justify-center items-center"
+            >
+              <div class="upload-wrap">
+                <img
+                  src="@/assets/image/kyc/0.png"
+                  alt=""
+                  class="w-full"
+                  v-if="[1, 2].includes(status) && frontFile.length === 0"
+                />
+                <van-uploader
+                  v-model="frontFile"
+                  multiple
+                  :max-count="1"
+                  :disabled="disabled()"
+                  :deletable="!disabled()"
+                  :after-read="afterRead"
+                  @click-upload="onClickUpload('frontFile')"
+                  v-else
+                />
+              </div>
+              <div class="mt-32 font-26 h-20" style="color: #868d9a">
+                {{ $t("证件正面") }}
+              </div>
+            </div>
+            <div
+              class="flex-1 flex flex-col text-center justify-center items-center"
+            >
+              <div class="upload-wrap">
+                <img
+                  src="@/assets/image/kyc/1.png"
+                  alt=""
+                  class="w-full"
+                  v-if="[1, 2].includes(status) && reverseFile.length === 0"
+                />
+                <van-uploader
+                  v-model="reverseFile"
+                  multiple
+                  :max-count="1"
+                  :disabled="disabled()"
+                  :deletable="!disabled()"
+                  :after-read="afterRead"
+                  @click-upload="onClickUpload('reverseFile')"
+                  v-else
+                />
+              </div>
+              <div class="mt-32 font-26 h-20" style="color: #868d9a">
+                {{ $t("证件反面") }}
+              </div>
+            </div>
+            <!-- <div
+              class="flex-1 flex flex-col text-center justify-center items-center"
+            >
+              <div class="upload-wrap">
+                <img
+                  src="@/assets/image/kyc/2.png"
+                  alt=""
+                  class="w-full"
+                  v-if="[1, 2].includes(status) && fileList.length === 0"
+                />
+                <van-uploader
+                  v-model="fileList"
+                  multiple
+                  :max-count="1"
+                  :disabled="disabled()"
+                  :deletable="!disabled()"
+                  :after-read="afterRead"
+                  @click-upload="onClickUpload('fileList')"
+                  v-else
+                />
+              </div>
+              <div class="mt-32 font-26 h-20" style="color: #868d9a">
+                {{ $t("手持证件照") }}
+              </div>
+            </div> -->
+          </div>
+        </div>
+        <template v-if="!disabled()">
+          <div class="font-35 mb-32 textColor">{{ $t("拍摄示例") }}</div>
+          <img
+            src="../../assets/image/kyc/kyc-demo.png"
+            alt=""
+            style="width: 100%; height: auto"
+            class="w-756 h-220 mb-100"
+          />
+        </template>
+        <button
+          class="apply-btn btnMain text-white font-35 h-100 rounded"
+          @click="onSubmit"
+          v-if="!disabled()"
+        >
+          {{ $t("申请认证") }}
+        </button>
+        <div class="pt-35 pb-60 font-30" v-if="!disabled() || status === 3">
+          <span class="text-grey">{{
+            $t("上传证件照失败,请联系客服获取邮箱地址发送证件照或者重新上传")
+          }}</span>
+          <span class="text-blue service-text" @click="tokefu">
+            {{ $t("联系客服") }}</span
+          >
+        </div>
+        <nationality-list
+          ref="controlChild"
+          :title="$t('请选择国家')"
+          @getName="getName(arguments)"
+          v-if="!disabled()"
+        >
+        </nationality-list>
+      </div>
     </div>
   </div>
 </template>
@@ -84,137 +186,162 @@
 <script>
 // import { ActionSheet,Search } from 'vant';
 import assetsHead from "@/components/assets-head";
-import nationalityList  from './components/nationalityList.vue'
-import { Uploader} from 'vant';
-import { _uploadImage, _applyIdentify, _getIdentify } from '@/API/fund.api'
+import nationalityList from "./components/nationalityList.vue";
+import { Uploader } from "vant";
+import { _uploadImage, _applyIdentify, _getIdentify } from "@/API/fund.api";
 // import CountryList from '@/components/country-list' // 我页不知道为啥要先调用这个,先放着
 import countries from "./components/countryList";
 import ExInput from "@/components/ex-input";
+import { mapActions } from "vuex";
 export default {
-    name:"AuthenticationPage",
-    components:{
-        assetsHead,
-        nationalityList,
-        [Uploader.name]:Uploader,
-      ExInput
-        // CountryList
-    },
-    data() {
-        return {
-            countryName:this.$t("请选择国家"), //国家名称
-            countryCode:"af", //国家地区号
-            idnumber: '',
-            name: '',
-            frontFile:[],
-            reverseFile:[],
-            fileList:[],
-            curFile: 'frontFile',
-            status: '', // 0
-            imgs: [],
-            idcard_path_front_path: '',
-            idcard_path_back_path: '',
-            idcard_path_hold_path: '',
-            resultArr: ['small-success_' + this.$t('已申请未审核'), 'identifing_' + this.$t('审核中'), 'small-success_' + this.$t('审核通过'), 'icon-close_' + this.$t('审核未通过')], // 0 好像是未提交
-            show:false,
-            language: 'en',
+  name: "AuthenticationPage",
+  components: {
+    assetsHead,
+    nationalityList,
+    [Uploader.name]: Uploader,
+    ExInput,
+    // CountryList
+  },
+  data() {
+    return {
+      countryName: this.$t("请选择国家"), //国家名称
+      countryCode: "af", //国家地区号
+      idnumber: "",
+      name: "",
+      frontFile: [],
+      reverseFile: [],
+      fileList: [],
+      curFile: "frontFile",
+      status: "", // 0
+      imgs: [],
+      idcard_path_front_path: "",
+      idcard_path_back_path: "",
+      idcard_path_hold_path: "",
+      resultArr: [
+        "small-success_" + this.$t("已申请未审核"),
+        "identifing_" + this.$t("审核中"),
+        "small-success_" + this.$t("审核通过"),
+        "icon-close_" + this.$t("审核未通过"),
+      ], // 0 好像是未提交
+      show: false,
+      language: "en",
+    };
+  },
+  created() {
+    this.language = this.$i18n.locale;
+    this.fetchInfo();
+  },
+  methods: {
+    ...mapActions("user", ["GET_UERS_KYC"]),
+
+    fetchInfo() {
+      // 获取状态
+      _getIdentify().then((data) => {
+        this.show = true;
+        this.status = data.status;
+        if (data.status !== 0) {
+          this.countryName =
+            countries[this.language][data.nationality.toLowerCase()]["name"];
+          this.countryCode = data.nationality.toLowerCase();
+          this.idnumber = data.idnumber;
+          this.name = data.name;
+          this.frontFile = data.idimg_1
+            ? [{ url: data.idimg_1_path, resURL: data.idimg_1 }]
+            : [];
+          this.reverseFile = data.idimg_2
+            ? [{ url: data.idimg_2_path, resURL: data.idimg_2 }]
+            : [];
+          this.fileList = data.idimg_3
+            ? [{ url: data.idimg_3_path, resURL: data.idimg_3 }]
+            : [];
         }
+      });
     },
-    created() {
-      this.language = this.$i18n.locale
-      this.fetchInfo()
+    onClickUpload(type) {
+      this.curFile = type;
     },
-    methods:{
-        fetchInfo() {   // 获取状态
-            _getIdentify().then(data => {
-              this.show = true
-                this.status = data.status
-                if (data.status !== 0) {
-                    this.countryName = countries[this.language][data.nationality.toLowerCase()]['name']
-                    this.countryCode = data.nationality.toLowerCase()
-                    this.idnumber = data.idnumber
-                    this.name = data.name
-                    this.frontFile = data.idimg_1 ? [{ url: data.idimg_1_path, resURL: data.idimg_1 }] : []
-                    this.reverseFile = data.idimg_2 ? [{ url: data.idimg_2_path, resURL: data.idimg_2 }] : []
-                    this.fileList = data.idimg_3 ? [{ url: data.idimg_3_path, resURL: data.idimg_3 }] : []
-                }
-            })
-        },
-        onClickUpload(type) {
-            this.curFile = type
-        },
-        onClickLeft() {
-            this.$router.go(-1);
-        },
-        disabled() { // 是否禁用按钮
-            return ![0, 3, ''].includes(this.status)
-        },
-        afterRead(file) { /// 处理文件
-          console.log(file)
-            file.status = 'uploading'
-            file.message = this.$t('上传中...')
-            _uploadImage(file).then(data => {
-                file.status = 'success';
-                file.message = this.$t('上传成功');
-                file.resURL = data
-                this[this.curFile] = [file]
-            }).catch(err => {
-              file.status = 'failed';
-              file.message = this.$t('图片上传失败');
-            })
-        },
-        //打开国家列表底部弹窗
-        openBtn() {
-          if (!this.disabled()) {
-            this.$refs.controlChild.open();
+    onClickLeft() {
+      this.$router.go(-1);
+    },
+    disabled() {
+      // 是否禁用按钮
+      return ![0, 3, ""].includes(this.status);
+    },
+    afterRead(file) {
+      /// 处理文件
+      console.log(file);
+      file.status = "uploading";
+      file.message = this.$t("上传中...");
+      _uploadImage(file)
+        .then((data) => {
+          file.status = "success";
+          file.message = this.$t("上传成功");
+          file.resURL = data;
+          this[this.curFile] = [file];
+        })
+        .catch((err) => {
+          file.status = "failed";
+          file.message = this.$t("图片上传失败");
+        });
+    },
+    //打开国家列表底部弹窗
+    openBtn() {
+      if (!this.disabled()) {
+        this.$refs.controlChild.open();
+      }
+    },
+    //获取到当前选中国家的code值
+    getName(params) {
+      this.countryName = params[0];
+      this.countryCode = params[1];
+    },
+    onSubmit() {
+      if (!this.countryName) {
+        this.$toast(this.$t("请选择国家"));
+        return;
+      }
+      if (!this.name) {
+        this.$toast(this.$t("请输入姓名"));
+        return;
+      }
+      if (!this.idnumber) {
+        this.$toast(this.$t("请输入证件号码"));
+        return;
+      }
+      console.log(this.frontFile, this.reverseFile);
+      if (!this.frontFile.length || !this.reverseFile.length) {
+        this.$toast(this.$t("请上传完整证件信息"));
+        return;
+      }
+      _applyIdentify({
+        name: this.name,
+        idnumber: this.idnumber,
+        frontFile: this.frontFile,
+        reverseFile: this.reverseFile,
+        countryName: this.countryCode, // this.countryName 存储的 code, 回来再遍历
+      })
+        .then(() => {
+          this.GET_UERS_KYC();
+          this.$toast(this.$t("提交成功"));
+          this.$router.push("/verified");
+          // this.fetchInfo()
+        })
+        .catch((err) => {
+          if (err.code === "ECONNABORTED") {
+            this.$toast(this.$t("网络超时!"));
+          } else if (err.msg !== undefined) {
+            this.$toast(this.$t(err.msg));
           }
-        },
-        //获取到当前选中国家的code值
-        getName(params) {
-            this.countryName = params[0];
-            this.countryCode = params[1];
-        },
-        onSubmit() {
-            if (!this.countryName) {
-                this.$toast(this.$t('请选择国家'))
-                return
-            }
-            if (!this.name) {
-                this.$toast(this.$t('请输入姓名'))
-                return
-            }
-            if (!this.idnumber) {
-                this.$toast(this.$t('请输入证件号码'))
-                return
-            }
-            if (!this.frontFile.length || !this.reverseFile.length ||!this.fileList.length) {
-                this.$toast(this.$t('请上传完整证件信息'))
-                return
-            }
-            _applyIdentify({
-                name: this.name,
-                idnumber: this.idnumber,
-                frontFile: this.frontFile,
-                reverseFile:  this.reverseFile ,
-                fileList: this.fileList,
-                countryName: this.countryCode // this.countryName 存储的 code, 回来再遍历
-            }).then(() => {
-                this.$toast(this.$t('提交成功'))
-                this.$router.push('/verified')
-                // this.fetchInfo()
-            }).catch(err => {
-              if(err.code === 'ECONNABORTED'){this.$toast(this.$t('网络超时!'));}              
-              else if(err.msg !== undefined){this.$toast(this.$t(err.msg));}      
-            })
-        },
-        tokefu() {
-          this.$router.push('/customerService')
-        }
-    }
-}
+        });
+    },
+    tokefu() {
+      this.$router.push("/customerService");
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
-
-.authentication{
+.authentication {
   width: 100%;
   box-sizing: border-box;
 }
@@ -231,25 +358,24 @@
 input:disabled {
   background: #fff;
 }
-.list-view{
-    overflow-y:scroll;
-    border-bottom:1px solid #e5e5e5;
+.list-view {
+  overflow-y: scroll;
+  border-bottom: 1px solid #e5e5e5;
 }
 
-.kyc-input{
-    width:100%;
-    border:none;
+.kyc-input {
+  width: 100%;
+  border: none;
 }
 
-.apply-btn{
-    border:none;
-    outline:none;
-    width:100%;
-    line-height:100px;
+.apply-btn {
+  border: none;
+  outline: none;
+  width: 100%;
+  line-height: 100px;
 }
 
-.service-text{
-    text-decoration:underline;
+.service-text {
+  text-decoration: underline;
 }
-
 </style>

--
Gitblit v1.9.3