chenlei 7 месяцев назад
Родитель
Сommit
7f666b7142
4 измененных файлов с 234 добавлено и 108 удалено
  1. 139 0
      pc/upload/uploadImg.vue
  2. 1 1
      pc/wcarrier/comp/auth.vue
  3. 10 7
      pc/wcarrier/comp/review.vue
  4. 84 100
      pc/wcarrier/join.vue

+ 139 - 0
pc/upload/uploadImg.vue

@@ -0,0 +1,139 @@
+<template>
+  <div class="card card-file">
+    <el-upload
+      v-for="(item, index) in fileList"
+      :key="index"
+      :action="'#'"
+      class="fileBox"
+      :class="{big:$props.big,disabled:$props.disabled}"
+      list-type="none"
+      :show-file-list="false"
+      :accept="acceptType"
+      :on-change="(file, fileList) => changeFile(file, fileList, item)"
+      :auto-upload="false"
+      :disabled="$props.disabled"
+      v-loading.lock="uploading"
+      >
+        <template slot="default">
+          <img :src="item.path ? item.path : item.defaultPath" alt="">
+          <div class="text mode">{{item.text}}</div>
+        </template>
+    </el-upload>
+    <slot></slot>
+  </div>
+</template>
+<script>
+import { $upload } from '@/service/main/index'
+import { mapGetters } from 'vuex'
+export default {
+  props: {
+    fileList: {
+      require: true,
+      type: Array
+    },
+    currentStatus: {
+      require: true,
+      // eslint-disable-next-line vue/require-prop-type-constructor
+      type: Number | String
+    },
+    successStatus: {
+      require: true,
+      // eslint-disable-next-line vue/require-prop-type-constructor
+      type: Number | String
+    },
+    acceptType: {
+      type: String,
+      default: '.jpg,.png'
+    },
+    big: {
+      type: Boolean,
+      default: false
+    },
+    disabled: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data() {
+    return {
+      uploading: false
+    }
+  },
+
+  computed: {
+    ...mapGetters({
+      orgId: 'woporg',
+      user: 'wopuser'
+    })
+  },
+  mounted() {
+  },
+  methods: {
+    changeFile(file, fileList, item) {
+      const fileD = new FormData()
+      fileD.append('file', file.raw)
+      this.uploading = true
+      $upload(fileD).then(res => {
+        if (res.data.code === 0) {
+          item.path = process.env.VUE_APP_FILE_URL + res.data.data
+          this.$emit('uploadOrgPic', res.data.data, item.fileIndex)
+        }
+        this.uploading = false
+      }).catch(() => { this.uploading = false })
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+// .card {
+  // margin: 12px;
+//}
+.card-file {
+  display: inline-block;
+  // padding-bottom: 36px;
+  .fileBox {
+    margin: 0 16px 0 0;
+    &:last-child {
+      margin: 0;
+    }
+  }
+}
+.fileBox {
+  margin: 0 10px;
+  position: relative;
+  width: 216px;
+  height: 140px;
+  &.disabled {
+    filter: grayscale(1);
+    &::v-deep .el-upload {
+      cursor: auto;
+    }
+  }
+  &.big {
+    width: 340px;
+    height: 220px;
+    .text {
+      padding-top: 154px;
+    }
+  }
+  &::v-deep .el-upload {
+    width: 100%;
+    height: 100%;
+  }
+  .text {
+    position: absolute;
+    left: 0; right: 0; top: 0; bottom: 0;
+    margin: auto;
+    padding-top: 94px;
+    color: #868B9A;
+  }
+  .mode {
+    background: rgba(25,25,25,0.2);
+    color: #fff;
+  }
+  img {
+    width: 100%;
+    height: 100%;
+  }
+}
+</style>

+ 1 - 1
pc/wcarrier/comp/auth.vue

@@ -57,7 +57,7 @@
   </div>
 </template>
 <script>
-import UploadImg from '@/components/uploadImg'
+import UploadImg from 'submodule/components/pc/upload/uploadImg.vue'
 
 export default {
   name: 'auth',

+ 10 - 7
pc/wcarrier/comp/review.vue

@@ -6,8 +6,8 @@
             <el-radio v-model="formData.audit" :label="3" class="p-dcolor">审核驳回</el-radio>
         </div>
         <div class="flex p-spac" v-if="formData.audit === 3">
-            <span class="required">驳回理由:</span>
-            <el-input type="textarea" :rows="6" placeholder="请输入驳回理由" v-model="formData.reason" class="textarea ml-spac">
+            <span class="required nowrap">驳回理由:</span>
+            <el-input type="textarea" :rows="6" placeholder="请输入驳回理由" v-model="formData.reason" class="ml-spac">
                 </el-input>
 
         </div>
@@ -29,7 +29,7 @@
             </div>
         </template>
         <div class="p-spac">
-            <el-button type="primary" @click="submit" :disabled="!canSubmit">确定</el-button>
+            <el-button type="primary" @click="submit" :disabled="!canSubmit" :loading="$reqState($interfaces.user.road_transport_audit).ing">确定</el-button>
             <el-button @click="cancel">取消</el-button>
         </div>
 
@@ -52,6 +52,12 @@ export default {
       }
     }
   },
+  props: {
+    orgId: {
+      type: String,
+      default: ''
+    }
+  },
   computed: {
     canSubmit() {
       return this.formData.audit === 2 || (this.formData.audit === 3 && this.formData.reason)
@@ -59,7 +65,7 @@ export default {
   },
   methods: {
     submit() {
-      this.$http(this.$interfaces.user.carrier_open_account, this.formData).then(res => {
+      this.$http(this.$interfaces.user.road_transport_audit, { orgId: this.$props.orgId, ...this.formData }).then(res => {
         this.$emit('feedback', this.formData.audit)
       })
     },
@@ -76,7 +82,4 @@ export default {
         color: inherit;
     }
 }
-.textarea {
-    width: 500px;
-}
 </style>

+ 84 - 100
pc/wcarrier/join.vue

@@ -2,25 +2,22 @@
 
 <template>
   <div class="p-spac p-fz">
-    <div class="defbb p-spac">企业认证 [ <span class="gray-color" :class="{ 'green-color': isAuth }">{{ authText }}</span> ]</div>
-    <div v-if="isAuth" class="s-fz flex">
-      <div class="flex1 defbb p-spac p-t-0">
+    <div class="defbb p-spac">企业认证 [ <span class="gray-color" :class="{ 'green-color': isAuth }">{{ authText }}</span> ]
+    </div>
+    <div v-if="isAuth" class="s-fz flex p-spac p-b-0">
+      <div class="flex1 defbb ">
         <div class="chunk1">
           <div><span>公司名称:</span>{{ carrierAuthInfo.orgName }}</div>
           <div class=" "><span>统一社会信用代码:</span>{{ carrierAuthInfo.taxpayer }}</div>
         </div>
         <div class="gray-color defbb p-spac">公司营业执照</div>
         <div class="p-spac">
-          <el-image
-            class="big-img"
-            fit="cover"
-            :src="$tools.getFullFileUrl(carrierAuthInfo.businessLicense)"
-            :preview-src-list="[$tools.getFullFileUrl(carrierAuthInfo.businessLicense)]"
-          >
+          <el-image class="big-img" fit="cover" :src="$tools.getFullFileUrl(carrierAuthInfo.businessLicense)"
+            :preview-src-list="[$tools.getFullFileUrl(carrierAuthInfo.businessLicense)]">
           </el-image>
         </div>
       </div>
-      <div class="flex1 defbb p-spac p-t-0">
+      <div class="flex1 defbb ml-spacm4">
         <div class="chunk1">
           <div class="abs-rt"><span>证件类型:</span>身份证</div>
           <div><span>法人姓名:</span>{{ carrierAuthInfo.legalperson }}</div>
@@ -30,112 +27,84 @@
           <div class="mr-spac">
             <div class="gray-color defbb p-spac">法人身份证人像面</div>
             <div class="p-spac">
-          <el-image
-            class="small-img"
-            fit="cover"
-            :src="$tools.getFullFileUrl(carrierAuthInfo.idCardFront)"
-            :preview-src-list="[$tools.getFullFileUrl(carrierAuthInfo.idCardFront)]"
-          >
-          </el-image>
+              <el-image class="small-img" fit="cover" :src="$tools.getFullFileUrl(carrierAuthInfo.idCardFront)"
+                :preview-src-list="[$tools.getFullFileUrl(carrierAuthInfo.idCardFront)]">
+              </el-image>
             </div>
           </div>
           <div>
             <div class="gray-color defbb p-spac">法人身份证人像面</div>
             <div class="p-spac">
-          <el-image
-            class="small-img"
-            fit="cover"
-            :src="$tools.getFullFileUrl(carrierAuthInfo.idCardBack)"
-            :preview-src-list="[$tools.getFullFileUrl(carrierAuthInfo.idCardBack)]"
-          >
-          </el-image>
+              <el-image class="small-img" fit="cover" :src="$tools.getFullFileUrl(carrierAuthInfo.idCardBack)"
+                :preview-src-list="[$tools.getFullFileUrl(carrierAuthInfo.idCardBack)]">
+              </el-image>
             </div>
           </div>
         </div>
       </div>
     </div>
-    <auth v-else v-model="carrierAuthInfo"/>
-    <div class="defbb p-spac">
-      资质审核 [
-      <span class="gray-color" :class="{ 'green-color': isreView }">{{
-        operateState
-      }}</span>
-      ]
-          <el-button type="text"  v-if="reViewing" @click="getCarrierInfo()" :loading="$reqState($interfaces.user.get_carrier_info).ing">刷新</el-button>
+    <auth v-else v-model="carrierAuthInfo" />
+    <template v-if="module.carrierRoadInfo.show">
+      <div class="defbb p-spac">
+        资质审核 [
+        <span class="gray-color" :class="{ 'green-color': isreView }">{{
+          operateState
+        }}</span>
+        ]
+        <el-button type="text" v-if="module.carrierRoadInfo.edit && reViewing" @click="getCarrierInfo()"
+          :loading="$reqState($interfaces.user.get_carrier_info).ing">刷新</el-button>
 
-      <span class="ml-spac p-wcolor" v-if="!isAuth">
-        [ 提醒:请先完成“企业认证”!]</span
-      >
-    </div>
-    <div class="p-spac p-b-0 flex defbb">
-      <div>
-        <div
-          class="gray-color"
-          :class="
-            carrierRoadInfoView ? 'defbb pb-spac' : 'required ml-spac mb-spac'
-          "
-        >
-          道路运输经营许可证
+        <span class="ml-spac p-wcolor" v-if="!isAuth">
+          [ 提醒:请先完成“企业认证”!]</span>
+      </div>
+      <div class="p-spac p-b-0 flex defbb">
+        <div :class="{flex1:carrierRoadInfoView}">
+          <div class="gray-color" :class="carrierRoadInfoView ? 'defbb pb-spac' : 'required ml-spac mb-spac'
+            ">
+            道路运输经营许可证
+          </div>
+          <div class="p-spac" v-if="carrierRoadInfoView">
+            <el-image class="big-img" fit="cover" :src="$tools.getFullFileUrl(carrierRoadInfo.roadTransport)"
+              :preview-src-list="[$tools.getFullFileUrl(carrierRoadInfo.roadTransport)]">
+            </el-image>
+          </div>
+          <el-form v-else ref="carrierRoadInfo" :model="carrierRoadInfo" :rules="rules" size="mini">
+            <el-form-item prop="roadTransport">
+              <upload-img :fileList="carrierRoadInfoImg" :big="true" :disabled="!isAuth"
+                @uploadOrgPic="uploadOrgPic"></upload-img>
+            </el-form-item>
+          </el-form>
         </div>
-        <div class="p-spac" v-if="carrierRoadInfoView">
-          <el-image
-            class="big-img"
-            fit="cover"
-            :src="$tools.getFullFileUrl(carrierRoadInfo.roadTransport)"
-            :preview-src-list="[$tools.getFullFileUrl(carrierRoadInfo.roadTransport)]"
-          >
-          </el-image>
+        <div v-if="carrierRoadInfoView" class="flex1 ml-spacm4">
+          <div class="defbb gray-color pb-spac">审核记录</div>
+          <div class="p-spacd2" v-for="(crir,i) in carrierRoadInfo.records" :key="i">
+            {{ crir.createDate }} {{ crir.createrName }} {{ crir.action }}
+          </div>
         </div>
-        <el-form
-          v-else
-          ref="carrierRoadInfo"
-          :model="carrierRoadInfo"
-          :rules="rules"
-          size="mini"
-        >
-          <el-form-item prop="roadTransport">
-            <upload-img
-              :fileList="carrierRoadInfoImg"
-              :big="true"
-              :disabled="!isAuth"
-              @uploadOrgPic="uploadOrgPic"
-            ></upload-img>
-          </el-form-item>
-        </el-form>
-      </div>
-      <div
-        class="flex-column justify-between flex-items-start ml-spac pb-spac"
-        v-if="!carrierRoadInfoView"
-      >
-        <div v-if="isAuth&&isReject">
-          驳回理由:
-          <div>{{carrierRoadInfo.reason}}</div>
+        <div class="flex-column justify-between flex-items-start ml-spac pb-spac" v-else>
+          <div v-if="isAuth && isReject">
+            驳回理由:
+            <div>{{ carrierRoadInfo.reason }}</div>
+          </div>
+          <div v-else></div>
+          <el-button v-if="isAuth && (unStart || isReject)" type="primary" size="medium" class="auth-btn"
+            @click="submitForm()">{{ reviewBtnText }}</el-button>
         </div>
-        <div v-else></div>
-        <el-button
-          v-if="isAuth&&(unStart||isReject)"
-          type="primary"
-          size="medium"
-          class="auth-btn"
-          @click="submitForm()"
-          >{{ reviewBtnText }}</el-button
-        >
       </div>
-    </div>
+    </template>
     <template v-if="$props.module.carrierFpInfo">
-    <div class="defbb p-spac">
-      开票补充信息<span class="ml-spac p-wcolor" v-if="!isreView"
-        >[ 提醒:请先完成“资质审核”!]</span
-      >
-    </div>
-    <invoice :disabled="!isreView" :readOnly="false" v-model="carrierFpInfo" class="p-spacd2 p-b-0"/>
+      <div class="defbb p-spac">
+        开票补充信息<span class="ml-spac p-wcolor" v-if="!isreView">[ 提醒:请先完成“资质审核”!]</span>
+      </div>
+      <invoice :disabled="!isreView" :readOnly="false" v-model="carrierFpInfo" class="p-spacd2 p-b-0" />
     </template>
-    <authorize v-model="bindPhone" :carrierBalanceInfo="carrierBalanceInfo" :carrierWithdrawInfo="carrierWithdrawInfo" :tradeType="tradeType" v-if="$props.module.carrierWithdrawInfo&&isreView" />
-    <review :orgId="$props.orgId" v-if="$props.module.review" @feedback="reviewFeedback"/>
+    <authorize v-model="bindPhone" :carrierBalanceInfo="carrierBalanceInfo" :carrierWithdrawInfo="carrierWithdrawInfo"
+      :tradeType="tradeType" v-if="$props.module.carrierWithdrawInfo && isreView" />
+    <review class="w50" :orgId="safeOrgId" v-if="$props.module.review" @feedback="reviewFeedback" />
   </div>
 </template>
 <script>
-import UploadImg from '@/components/uploadImg'
+import UploadImg from 'submodule/components/pc/upload/uploadImg.vue'
 import auth from './comp/auth.vue'
 import invoice from './comp/invoice.vue'
 import authorize from './comp/authorize.vue'
@@ -145,6 +114,7 @@ export default {
   name: 'join',
   data() {
     return {
+      args: {},
       /** 交易模式(1经销模式;2直销模式,默认经销模式1) */
       tradeType: 1,
       /** 绑定手机号信息 */
@@ -252,6 +222,10 @@ export default {
     module: {
       type: Object,
       default: () => ({
+        carrierRoadInfo: {
+          show: false,
+          edit: false
+        },
         carrierFpInfo: false,
         carrierWithdrawInfo: false,
         review: false
@@ -259,7 +233,10 @@ export default {
     }
   },
   computed: {
-
+    safeOrgId() {
+      return this.$props.orgId ||
+        this.args.orgId
+    },
     // 已认证
     isAuth() {
       return this.carrierAuthInfo.channelAuthStatus === 2
@@ -288,7 +265,7 @@ export default {
     },
     // 营运许可证为查看状态
     carrierRoadInfoView() {
-      return this.reViewing || this.isreView
+      return !this.module.carrierRoadInfo.edit || this.reViewing || this.isreView
     },
     reviewBtnText() {
       return this.isReject ? '重新发起审核' : '发起审核'
@@ -298,6 +275,10 @@ export default {
     this.getCarrierInfo()
   },
   methods: {
+    init(args) {
+      this.args = args
+      this.getCarrierInfo()
+    },
     /**
      * qualificationReviewFeedback
      * @description: 资质审核反馈
@@ -308,8 +289,8 @@ export default {
       this.$emit('reviewFeedback', type)
     },
     getCarrierInfo() {
-      if (this.orgId) {
-        this.$http(this.$interfaces.user.get_carrier_info, { orgId: this.orgId }).then(res => {
+      if (this.safeOrgId) {
+        this.$http(this.$interfaces.user.get_carrier_info, { orgId: this.safeOrgId }).then(res => {
           this.tradeType = res.org.tradeType
           this.carrierAuthInfo = res.carrierAuthInfo
           this.carrierBalanceInfo = res.carrierBalanceInfo
@@ -342,15 +323,18 @@ export default {
 </script>
 <style lang="scss" scoped>
 @import "submodule/utils/style/variables.scss";
+
 .abs-rt {
   position: absolute;
   right: $p-spac;
   top: $p-spac;
 }
+
 .small-img {
   width: 216px;
   height: 140px;
 }
+
 .big-img {
   width: 340px;
   height: 220px;