Bläddra i källkod

Pedding:F2、F3 认证;

huan-jie 4 år sedan
förälder
incheckning
34d0dc0fd1
2 ändrade filer med 83 tillägg och 19 borttagningar
  1. 7 2
      components/uploader.vue
  2. 76 17
      pages/cert/type/_id.vue

+ 7 - 2
components/uploader.vue

@@ -18,7 +18,7 @@
 
 <script>
 export default {
-  props: ["imageUrl", "title"],
+  props: ["imageUrl", "title", "limitFileSize"],
   components: {},
   data() {
     return {
@@ -32,7 +32,12 @@ export default {
       this.$emit("change", "");
     },
     handleFileChange(file) {
-      if (file.size / 1024 > 2048) {
+      if (this.limitFileSize && this.limitFileSize > 0) {
+        if (file.size / (1024 * 1024) > this.limitFileSize) {
+          this.$message.error(`图片大小不得超过${this.limitFileSize}M,请重新选择`);
+          return false;
+        }
+      } else if (file.size / 1024 > 2048) {
         this.$message.error("图片大小不得超过2M,请重新选择");
         return false;
       }

+ 76 - 17
pages/cert/type/_id.vue

@@ -35,6 +35,13 @@
           <a v-else :href="`${baseUrl}/sign/new`" class="action active">去签约</a>
           <div class="condition-text">签约程序员客栈</div>
         </div>
+        <!-- F2、F3新增上传协议签名图片 -->
+        <div class="condition-item" :class="certSignUrl ? 'condition-item-completed' : ''">
+          <div class="condition-point"></div>
+          <div v-if="certSignUrl" class="action">已完成</div>
+          <div v-else class="action unactive">未完成</div>
+          <div class="condition-text">上传协议签名图片</div>
+        </div>
         <div class="condition-item" :class="conditions[1] && conditions[1].is_completed ? 'condition-item-completed' : ''">
           <div class="condition-point"></div>
           <div v-if="conditions[1] && conditions[1].is_completed" class="action">已达标</div>
@@ -64,6 +71,13 @@
           <a v-else :href="`${baseUrl}/sign/new`" class="action active">去签约</a>
           <div class="condition-text">签约程序员客栈</div>
         </div>
+        <!-- F2、F3新增上传协议签名图片 -->
+        <div class="condition-item" :class="certSignUrl ? 'condition-item-completed' : ''">
+          <div class="condition-point"></div>
+          <div v-if="certSignUrl" class="action">已完成</div>
+          <div v-else class="action unactive">未完成</div>
+          <div class="condition-text">上传协议签名图片</div>
+        </div>
         <div class="condition-item" :class="conditions[1] && conditions[1].is_completed ? 'condition-item-completed' : ''">
           <div class="condition-point"></div>
           <div v-if="conditions[1] && conditions[1].is_completed" class="action">已达标</div>
@@ -84,14 +98,36 @@
         </div>
         <div class="verify-tips" v-if="!f2f3ConditionsCompelete">提示:由于您未在以上条件未达标,您还可以通过提交过往知名互联网公司职级证明,申请人工审核认证</div>
       </section>
-      <!-- F2、F3上传图片 -->
-      <section v-if="(id === '20' || id === '21') && !f2f3ConditionsCompelete" class="user-level-wrapper">
-        <!-- <div class="user-level-title">上传职级证明<span class="tips">请上传png,jp(e)g格式的图片</span></div> -->
-        <div class="user-level-title">职级证明图片</div>
+      <!-- F2、F3 上传协议签名图片 -->
+      <section v-if="(id === '20' || id === '21')" class="user-level-wrapper">
+        <div class="user-level-title">协议签名图片</div>
         <uploader
-          :imageUrl="certVerifyUrl"
-          @change="val => uploadImgSuccess(val)"
+          :imageUrl="certSignUrl"
+          :limitFileSize="5"
+          @change="val => uploadSignImgSuccess(val)"
         ></uploader>
+      </section>
+      <!-- F2、F3 上传职级证明图片 -->
+      <section v-if="(id === '20' || id === '21') && !f2f3ConditionsCompelete" class="user-level-wrapper">
+        <!-- <div class="user-level-title">上传职级证明<span class="tips">请上传png,jp(e)g格式的图片</span></div> -->
+        <div class="upload-content">
+          <div class="upload-item">
+            <div class="user-level-title">职级证明图片</div>
+            <uploader
+              :imageUrl="certVerifyUrl"
+              :limitFileSize="5"
+              @change="val => uploadImgSuccess(val)"
+            ></uploader>
+          </div>
+          <div class="upload-item">
+            <div class="user-level-title">协议签名图片</div>
+            <uploader
+              :imageUrl="certSignUrl"
+              :limitFileSize="5"
+              @change="val => uploadSignImgSuccess(val)"
+            ></uploader>
+          </div>
+        </div>
         <div class="tips-wrapper">
           <a href="https://support.proginn.com/data/company/" style="color: #0093fd;" target="_blank" class="tips-text">1.知名互联网大厂详情参考</a>
           <div class="tips-text">2.有效的职级证明包括:职称提升通知、邮件/证书等(提交一种证明即可,图中需同时出现公司信息和个人信息)</div>
@@ -237,7 +273,10 @@ export default {
   mixins: [WxMixin],
   data() {
     return {
+      // 职级证明图片 url
       certVerifyUrl: '',
+      // 协议签名图片
+      certSignUrl: '',
       baseUrl: '',
       companyVerifyUrl: 'https://www.proginn.com/wo/company_verify',
       mobile: this.$deviceType.isMobile(),
@@ -268,10 +307,10 @@ export default {
     },
     isDeath() {
       if (this.id === '20' || this.id === '21') {
-        if (this.detail.can_click) {
+        if (this.detail.can_click && this.certSignUrl) {
           return false
-        } else if (this.certVerifyUrl && this.detail.btn_name === '未达标') {
-          // 去认证状态 && 已上传图片可点击
+        } else if (this.certVerifyUrl && this.certSignUrl && this.detail.btn_name === '未达标') {
+          // 去认证状态 && 已上传职级证明图片 && 已上传协议签名图片
           return false
         } else {
           return true
@@ -326,12 +365,15 @@ export default {
         let next = '/cert'
         // F2、F3 认证,判断是否已上传图片
         if (this.id === '20' || this.id === '21') {
-          // !can_click:未达标,!certVerifyUrl:没有上传图片
+          // !can_click:未达标,!certVerifyUrl:没有上传图片,!certSignUrl:没有上传协议签名图片
           if (!this.certVerifyUrl && !this.detail.can_click) {
             this.$message.error('请先上传职级证明图片')
             return
+          } else if (!this.certSignUrl && !this.detail.can_click) {
+            this.$message.error('请先上传协议签名图片')
+            return
           } else {
-            next = encodeURIComponent(`${next}?attachment=${this.certVerifyUrl}`)
+            next = encodeURIComponent(`${next}?attachment=${this.certVerifyUrl}&attachment2=${this.certSignUrl}`)
           }
         }
         if (screenWidth > 480) {
@@ -348,14 +390,15 @@ export default {
               .then(async () => {
                 if (!this.detail.is_free_apply) {
                   if (this.$deviceType.app) {
-                    location.href = `proginn://pay?product_type=12&product_id=${this.detail.id}&next=${next}&attachment=${encodeURIComponent(this.certVerifyUrl)}`
+                    location.href = `proginn://pay?product_type=12&product_id=${this.detail.id}&next=${next}&attachment=${encodeURIComponent(this.certVerifyUrl)}&attachment2=${encodeURIComponent(this.certSignUrl)}`
                   } else {
-                    location.href = `/pay?product_type=12&product_id=${this.detail.id}&next=${next}&attachment=${encodeURIComponent(this.certVerifyUrl)}`;
+                    location.href = `/pay?product_type=12&product_id=${this.detail.id}&next=${next}&attachment=${encodeURIComponent(this.certVerifyUrl)}&attachment2=${encodeURIComponent(this.certSignUrl)}`;
                   }
                 } else {
                   await this.$axios.$post("/api/cert/apply", {
                     user_cert_id: this.detail.user_cert_id,
-                    attachment: this.certVerifyUrl
+                    attachment: this.certVerifyUrl,
+                    attachment2: this.certSignUrl
                   });
                   this.$message({
                     message: "申请成功",
@@ -400,15 +443,16 @@ export default {
               if (action === 'confirm') {
                 if (!this.detail.is_free_apply) {
                   if (this.$deviceType.app) {
-                    location.href = `proginn://pay?product_type=12&product_id=${this.detail.id}&next=${next}&attachment=${encodeURIComponent(this.certVerifyUrl)}`
+                    location.href = `proginn://pay?product_type=12&product_id=${this.detail.id}&next=${next}&attachment=${encodeURIComponent(this.certVerifyUrl)}&attachment2=${encodeURIComponent(this.certSignUrl)}`
                   } else {
-                    location.href = `/pay?product_type=12&product_id=${this.detail.id}&next=${next}&attachment=${encodeURIComponent(this.certVerifyUrl)}`;
+                    location.href = `/pay?product_type=12&product_id=${this.detail.id}&next=${next}&attachment=${encodeURIComponent(this.certVerifyUrl)}&attachment2=${encodeURIComponent(this.certSignUrl)}`;
                   }
                 }
                 else {
                   await this.$axios.$post("/api/cert/apply", {
                     user_cert_id: this.detail.user_cert_id,
-                    attachment: this.certVerifyUrl
+                    attachment: this.certVerifyUrl,
+                    attachment2: this.certSignUrl
                   });
                   this.$message({
                     message: "申请成功",
@@ -455,6 +499,12 @@ export default {
       this.certVerifyUrl = url
     },
     /**
+     * 上传协议签名图片成功时
+     */
+    uploadSignImgSuccess (url) {
+      this.certSignUrl = url
+    },
+    /**
      * 点击添加整包项目开发服务方案时
      */
     handleAddService (uid) {
@@ -767,6 +817,15 @@ export default {
   padding: 24px 0;
   border-bottom: 1px solid #d8d8d8;
 }
+.user-level-wrapper .upload-content {
+  display: flex;
+}
+.user-level-wrapper .upload-content .upload-item {
+  margin-right: 30px;
+}
+.user-level-wrapper .upload-content .upload-item:last-child {
+  margin-right: 0;
+}
 .user-level-wrapper .user-level-title {
   height: 28px;
   line-height: 28px;