Ver Fonte

个贷换证

wucl há 1 ano atrás
pai
commit
28cc364e59

+ 3 - 0
src/api/modules/personal.js

@@ -48,5 +48,8 @@ export default {
   batchAllotOrder(params){
     return request.post(`personal/batchAllot`, params)
   },
+  changeCredentials(params){
+    return request.put(`personal/change`, params)
+  }
 
 }

+ 13 - 0
src/components/personalForms/houseCertificate.vue

@@ -413,8 +413,21 @@ export default {
         // 组件事件
         callParentEvent(data) {
             this.$emit('custom-event', data);
+        },
+        refreshLinkAttributes(){
+            if (this.houseCertificateObject == null) {
+                this.certificate.location = this.linkAttributes.location;
+                this.certificate.sceneAddress = this.linkAttributes.location;
+                this.certificate.bailor1 = this.linkAttributes.bailor1;
+                this.certificate.bailor1Tel = this.linkAttributes.bailor1Tel;
+                this.certificate.bailor2 = this.linkAttributes.bailor2;
+                this.certificate.bailor2Tel = this.linkAttributes.bailor2Tel;
+                this.certificate.allAcreage =this.linkAttributes.acreage;
+                this.certificate.ownerName = this.linkAttributes.ownerName;
+            }
         }
     }
+        
 }
 </script>
 <style scoped lang="css">

+ 19 - 16
src/components/personalForms/immovableCertificate.vue

@@ -262,27 +262,17 @@ export default {
         this.certificate = value;
       }
     },
-    linkAttributes: {
-      handler(nv, ov) {
-        if (this.immovableCertificateObject == null) {
-          this.certificate.location = nv.location;
-          this.certificate.sceneAddress = nv.location;
-          this.certificate.bailor1 = nv.bailor1;
-          this.certificate.bailor1Tel = nv.bailor1Tel;
-          this.certificate.bailor2 = nv.bailor2;
-          this.certificate.bailor2Tel = nv.bailor2Tel;
-          this.certificate.acreage = nv.acreage;
-          this.certificate.ownerName = nv.ownerName;
-          this.converteUseTo(nv.purpose);
-        }
 
-      },
-      deep: true
-    }
   },
   computed: {
 
   },
+  created() {
+    this.certificate.id = this.id;
+    if (this.immovableCertificateObject) {
+      this.certificate = this.immovableCertificateObject;
+    }
+  },
   data() {
     return {
       rules: {
@@ -382,6 +372,19 @@ export default {
         });;
       }
 
+    },
+    refreshLinkAttributes(){
+      if (this.immovableCertificateObject == null) {
+          this.certificate.location = this.linkAttributes.location;
+          this.certificate.sceneAddress = this.linkAttributes.location;
+          this.certificate.bailor1 = this.linkAttributes.bailor1;
+          this.certificate.bailor1Tel = this.linkAttributes.bailor1Tel;
+          this.certificate.bailor2 = this.linkAttributes.bailor2;
+          this.certificate.bailor2Tel = this.linkAttributes.bailor2Tel;
+          this.certificate.acreage =this.linkAttributes.acreage;
+          this.certificate.ownerName = this.linkAttributes.ownerName;
+          this.converteUseTo(this.linkAttributes.purpose);
+        }
     }
 
   },

+ 9 - 0
src/components/personalForms/landCertificate.vue

@@ -114,6 +114,10 @@ export default {
     landCertificateObject: {
       type: Object,
     },
+    linkAttributes: {
+      type: Object,
+      default: null
+    },
     editStatus: {
       type: Boolean,
       default: false
@@ -195,6 +199,11 @@ export default {
         })
       }
     },
+    refreshLinkAttributes(){
+      if (this.landCertificateObject == null) {
+          this.certificate.landLocation = this.linkAttributes.location;
+        }
+    },
     // 组件事件
     callParentEvent(data) {
       this.$emit('custom-event', data);

+ 28 - 2
src/components/personalForms/sellingAbilityInfo.vue

@@ -230,6 +230,10 @@ export default {
       type: Boolean,
       default: false
     },
+    outWardStaffId:{
+      type: Number,
+      required: true
+    }
   },
   watch: {
     id: function (value) {
@@ -240,6 +244,12 @@ export default {
         this.sellingAbilityInfo = value;
       }
     },
+    // 'sellingAbilityInfo.outStaffId': {
+    //   handler(){
+    //     this.selectOutStaff();
+    //   },
+    //   immediate:true
+    // }
   },
 
   computed: {
@@ -248,10 +258,17 @@ export default {
 
   created() {
     this.sellingAbilityInfo.id = this.id;
+    this.sellingAbilityInfo.outStaffId = this.outWardStaffId;
     if (this.sellingAbilityInfoObject) {
       this.sellingAbilityInfo = this.sellingAbilityInfoObject;
     }
     this.getOutStaffs();
+    setTimeout(()=>{
+      this.selectOutStaff();
+      this.getLimitDate();
+      this.getYestoday();
+    },1000)
+   
   },
   data() {
     return {
@@ -263,7 +280,7 @@ export default {
       },
       sellingAbilityInfo: {
         id: null,
-        acreage: '适中',
+        acreageDesc: '适中',
         demandGroup: '较大',
         common: '较强',
         roadSmooth: '区域主、次干道及支路分布较密集、道路通达程度较高',
@@ -283,7 +300,7 @@ export default {
         sceneDate: null,
         createDate: null,
         sceneDateD: null,
-        createDateD: null,
+        createDateD: new Date(),
         limitDate: null
       },
       outwardStaffs: [],
@@ -352,6 +369,15 @@ export default {
     // 组件事件
     callParentEvent(data) {
       this.$emit('custom-event', data);
+    },
+
+    getYestoday(){
+      // 获取当前日期
+      var today = new Date();
+      // 获取昨天的日期
+      var yesterday = new Date(today);
+      yesterday.setDate(today.getDate() - 1);
+      this.sellingAbilityInfo.sceneDateD = yesterday;
     }
 
 

+ 0 - 3
src/views/personal/order.vue

@@ -252,9 +252,6 @@
                           <el-checkbox-button label="HOUSE_CERTIFICATE" name="credentials">房产证</el-checkbox-button>
                           <el-checkbox-button label="LAND_CERTIFICATE" name="credentials">国土证</el-checkbox-button>
                           <el-checkbox-button label="IMMOVABLE_CERTIFICATE" name="credentials">不动产权证</el-checkbox-button>
-                          <el-checkbox-button label="LEASE_CONTRACT" name="credentials">租赁合同</el-checkbox-button>
-                          <el-checkbox-button label="IDENTITY_CARD" name="credentials">身份证</el-checkbox-button>
-                          <el-checkbox-button label="NONE" name="credentials">无资料</el-checkbox-button>
                         </el-checkbox-group>
                       </el-form-item>
                     </el-col>

+ 26 - 48
src/views/personal/readonlyDetail.vue

@@ -686,25 +686,26 @@
       </el-tab-pane>
       <el-tab-pane name="certificateInfo" class="pane-class" :lazy=true>
         <span slot="label"><i class="el-icon-postcard"></i> 证件信息</span>
-        <el-tabs v-model="certificateInfo">
-          <el-tab-pane name="houseCertificate" class="pane-class" :lazy=true>
+        <el-tabs v-model="certificateInfo" v-if="certificateInfo!=null">
+          <el-tab-pane name="HOUSE_CERTIFICATE" class="pane-class" :lazy=true v-if="houseShow">
             <span slot="label"><i class="el-icon-postcard"></i> 房产证</span>
             <HouseCertificate @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
               :houseCertificateObject="target.houseCertificate" :editStatus="certificateCouldEdit">
             </HouseCertificate>
           </el-tab-pane>
-          <el-tab-pane name="landCertificate" class="pane-class" :lazy=true>
+          <el-tab-pane name="LAND_CERTIFICATE" class="pane-class" :lazy=true v-if="landShow">
             <span slot="label"><i class="el-icon-postcard"></i> 国土证</span>
             <LandCertificate @custom-event="getPersonalTarget()" :id="target.id"
               :landCertificateObject="target.landCertificate" :editStatus="certificateCouldEdit"></LandCertificate>
           </el-tab-pane>
-          <el-tab-pane name="immovableCertificate" class="pane-class" :lazy=true>
+          <el-tab-pane name="IMMOVABLE_CERTIFICATE" class="pane-class" :lazy=true v-if="immovalbeShow">
             <span slot="label"><i class="el-icon-postcard"></i> 不动产权证</span>
             <ImmovableCertificate @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
               :immovableCertificateObject="target.immovableCertificate" :editStatus="certificateCouldEdit">
             </ImmovableCertificate>
           </el-tab-pane>
         </el-tabs>
+        <span v-else style="color: RGB(168,168,168)">未提供任何证件信息</span>
       </el-tab-pane>
       <el-tab-pane name="otherInfo" class="pane-class" :lazy=true>
         <span slot="label"><i class="el-icon-chat-line-square"></i> 附加信息</span>
@@ -898,7 +899,22 @@ export default {
         } else {
           this.outwardStaffTip = true;
         }
-        this.showCredentials();
+        this.certificateInfo = newVal.credentials[0];
+        if (newVal.credentials.includes("HOUSE_CERTIFICATE")){
+          this.houseShow = true;
+        }else{
+          this.houseShow = false;
+        }
+        if (newVal.credentials.includes("LAND_CERTIFICATE")){
+          this.landShow = true;
+        }else{
+          this.landShow = false;
+        }
+        if (newVal.credentials.includes("IMMOVABLE_CERTIFICATE")){
+          this.immovalbeShow = true;
+        }else{
+          this.immovalbeShow = false;
+        }
       },
       deep: true
     },
@@ -1162,13 +1178,6 @@ export default {
       },
       calculating: false,
       decideProductionTypeDialog: false,
-      showCred: {
-        showHouseCer: false,
-        showLandCer: false,
-        showImmovableCer: false,
-        showleaseCer: false,
-        showIdCer: false
-      },
       linkAttributes: {
         location: null,
         bailor1: null,
@@ -1228,7 +1237,10 @@ export default {
         remark: null
       },
       otherInfo: 'entityInfo',
-      certificateInfo: 'houseCertificate',
+      certificateInfo: null,
+      houseShow:false,
+      immovalbeShow:false,
+      landShow:false,
 
     }
   },
@@ -1333,26 +1345,7 @@ export default {
       }
     },
     handleClick(tab) { },
-    showCredentials() {
-      this.showCred = {};
-      this.personal.credentials.forEach(element => {
-        if (element === 'HOUSE_CERTIFICATE') {
-          this.showCred.showHouseCer = true;
-        }
-        if (element === 'LAND_CERTIFICATE') {
-          this.showCred.showLandCer = true;
-        }
-        if (element === 'IMMOVABLE_CERTIFICATE') {
-          this.showCred.showImmovableCer = true;
-        }
-        if (element === 'LEASE_CONTRACT') {
-          this.showCred.showleaseCer = true;
-        }
-        if (element === 'IDENTITY_CARD') {
-          this.showCred.showIdCer = true;
-        }
-      });
-    },
+   
     getWorkflowLogs() {
       let param = {
         businessId: this.personalId,
@@ -1404,21 +1397,6 @@ export default {
 
       }
     },
-    selectHouse() {
-      this.showCred.showHouseCer = !this.showCred.showHouseCer;
-    },
-    selectLand() {
-      this.showCred.showLandCer = !this.showCred.showLandCer;
-    },
-    selectImmovable() {
-      this.showCred.showImmovableCer = !this.showCred.showImmovableCer;
-    },
-    selectLease() {
-      this.showCred.showleaseCer = !this.showCred.showleaseCer;
-    },
-    selectIdCard() {
-      this.showCred.showIdCer = !this.showCred.showIdCer;
-    },
     getProductions() {
       if (this.target.id) {
         this.$api.personalProduction.getProductions(this.target.id).then(res => {

+ 148 - 68
src/views/personal/todoDetail.vue

@@ -159,6 +159,7 @@
                       <el-checkbox-button label="HOUSE_CERTIFICATE" name="credentials">房产证</el-checkbox-button>
                       <el-checkbox-button label="LAND_CERTIFICATE" name="credentials">国土证</el-checkbox-button>
                       <el-checkbox-button label="IMMOVABLE_CERTIFICATE" name="credentials">不动产权证</el-checkbox-button>
+                      <el-checkbox-button label="NONE" name="credentials">无资料</el-checkbox-button>
                     </el-checkbox-group>
                   </el-form-item>
                 </el-col>
@@ -731,20 +732,31 @@
       <el-tab-pane name="certificateInfo" class="pane-class" :lazy=true :disabled="!target.isOnline">
         <span slot="label"><i class="el-icon-postcard"></i> 证件信息</span>
         <el-tabs v-model="certificateInfo">
-          <el-tab-pane name="houseCertificate" class="pane-class" :lazy=true>
+          <el-tab-pane name="CHANGE" class="pane-class" :lazy=true :disabled="!certificateCouldEdit">
+            <span slot="label" :style="certificateCouldEdit?'color:red':'color:RGB(168,168,168)'"><i class="el-icon-refresh"></i> 换证</span>
+            <div >
+              <el-checkbox-group v-model="changeCredentials" size="medium" style="float: left;">
+                          <el-checkbox-button label="HOUSE_CERTIFICATE" name="credentials">房产证</el-checkbox-button>
+                          <el-checkbox-button label="LAND_CERTIFICATE" name="credentials">国土证</el-checkbox-button>
+                          <el-checkbox-button label="IMMOVABLE_CERTIFICATE" name="credentials">不动产权证</el-checkbox-button>
+                        </el-checkbox-group>
+            <el-button type="danger" round style="float: left; margin-left: 20px;margin-top: 2px" @click="saveChangeCer()">确认换证</el-button>
+            </div>
+          </el-tab-pane>
+          <el-tab-pane name="HOUSE_CERTIFICATE" class="pane-class" :lazy=true  v-if="houseShow">
             <span slot="label"><i class="el-icon-postcard"></i> 房产证</span>
-            <HouseCertificate @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
+            <HouseCertificate ref="houseComponent" @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
                     :houseCertificateObject="target.houseCertificate" :editStatus="certificateCouldEdit">
                   </HouseCertificate>
           </el-tab-pane>
-          <el-tab-pane name="landCertificate" class="pane-class" :lazy=true>
+          <el-tab-pane name="LAND_CERTIFICATE" class="pane-class" :lazy=true v-if="landShow">
             <span slot="label"><i class="el-icon-postcard"></i> 国土证</span>
-            <LandCertificate @custom-event="getPersonalTarget()" :id="target.id" :landCertificateObject="target.landCertificate"
-            :editStatus="certificateCouldEdit"></LandCertificate>
+            <LandCertificate ref="landComponent" @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
+            :landCertificateObject="target.landCertificate" :editStatus="certificateCouldEdit"></LandCertificate>
           </el-tab-pane>
-          <el-tab-pane name="immovableCertificate" class="pane-class" :lazy=true>
+          <el-tab-pane name="IMMOVABLE_CERTIFICATE" class="pane-class" :lazy=true v-if="immovalbeShow">
             <span slot="label"><i class="el-icon-postcard"></i> 不动产权证</span>
-            <ImmovableCertificate @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
+            <ImmovableCertificate  ref="immovComponent" @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
                     :immovableCertificateObject="target.immovableCertificate" :editStatus="certificateCouldEdit">
                   </ImmovableCertificate>
           </el-tab-pane>
@@ -766,7 +778,7 @@
           <el-tab-pane name="sellingAbilityInfo" class="pane-class" :lazy=true>
             <span slot="label"><i class="el-icon-paperclip"></i> 变现能力</span>
             <SellingAbilityInfo @custom-event="getPersonalTarget()" :id="target.id" :sellingAbilityInfoObject="target.sellingAbility"
-                    :editStatus="certificateCouldEdit"></SellingAbilityInfo>
+                    :editStatus="certificateCouldEdit" :outWardStaffId="personal.outwardStaff"></SellingAbilityInfo>
           </el-tab-pane>
         </el-tabs>
       </el-tab-pane>
@@ -1086,7 +1098,23 @@ export default {
         } else {
           this.outwardStaffTip = true;
         }
-        this.showCredentials();
+        this.certificateInfo = newVal.credentials[0];
+        if (newVal.credentials.includes("HOUSE_CERTIFICATE")){
+          this.houseShow = true;
+        }else{
+          this.houseShow = false;
+        }
+        if (newVal.credentials.includes("LAND_CERTIFICATE")){
+          this.landShow = true;
+        }else{
+          this.landShow = false;
+        }
+        if (newVal.credentials.includes("IMMOVABLE_CERTIFICATE")){
+          this.immovalbeShow = true;
+        }else{
+          this.immovalbeShow = false;
+        }
+        this.changeCredentials = newVal.credentials;
       },
       deep: true
     },
@@ -1167,6 +1195,23 @@ export default {
         }
       },
       deep: true,
+    },
+    certificateInfo:{
+      handler(){
+        this.$nextTick(()=>{
+          if (this.$refs.immovComponent){
+            this.$refs.immovComponent.refreshLinkAttributes();
+            
+          }
+          if (this.$refs.houseComponent){
+            this.$refs.houseComponent.refreshLinkAttributes();
+          }
+          if (this.$refs.landComponent){
+            this.$refs.landComponent.refreshLinkAttributes();
+          }
+        })
+      },
+      immediate:true
     }
   },
   computed: {
@@ -1266,7 +1311,7 @@ export default {
       outwardStaffTip: true,
       certificateName: null,
       otherInfo: 'entityInfo',
-      certificateInfo: 'houseCertificate',
+      certificateInfo: null,
       target: {
         id: null,
         personalId: null,
@@ -1405,13 +1450,6 @@ export default {
       },
       calculating: false,
       decideProductionTypeDialog: false,
-      showCred: {
-        showHouseCer: false,
-        showLandCer: false,
-        showImmovableCer: false,
-        showleaseCer: false,
-        showIdCer: false
-      },
       linkAttributes: {
         location: null,
         bailor1: null,
@@ -1479,7 +1517,11 @@ export default {
         inRingBuilding:null,
         outRingBuilding:null,
         remark:null
-      }
+      },
+      houseShow:false,
+      immovalbeShow:false,
+      landShow:false,
+      changeCredentials:[]
 
     }
   },
@@ -1520,6 +1562,7 @@ export default {
             if (this.personal.evaluateAim === '抵押') {
               this.linkAttributes.ownerName = this.personal.bailorA;
             }
+            
             this.nodeBusinessInfo.ccId = this.personal.clienteleId;
           }
         })
@@ -1589,26 +1632,7 @@ export default {
         this.getScene();
       }
     },
-    showCredentials() {
-      this.showCred = {};
-      this.personal.credentials.forEach(element => {
-        if (element === 'HOUSE_CERTIFICATE') {
-          this.showCred.showHouseCer = true;
-        }
-        if (element === 'LAND_CERTIFICATE') {
-          this.showCred.showLandCer = true;
-        }
-        if (element === 'IMMOVABLE_CERTIFICATE') {
-          this.showCred.showImmovableCer = true;
-        }
-        if (element === 'LEASE_CONTRACT') {
-          this.showCred.showleaseCer = true;
-        }
-        if (element === 'IDENTITY_CARD') {
-          this.showCred.showIdCer = true;
-        }
-      });
-    },
+
     getWorkflowLogs() {
       let param = {
         businessId: this.personalId,
@@ -1653,18 +1677,68 @@ export default {
               callback(verify);
               return;
             }
-          // case "GENERATE_STATEMENT":
-          //   if (this.statementProd == null || this.statementProd.files.length === 0) {
-          //     this.$notify({
-          //       title: '提示',
-          //       message: '请生成或上传房地产意见书后,再提交流程',
-          //       type: 'error',
-          //       duration: 3000
-          //     });
-          //     verify.state = false;
-          //   }
-          //   callback(verify);
-          //   return;
+          case "GENERATE_STATEMENT":
+          case "WRITE_REPORT":
+          case "WRITE_LETTER":
+            if (this.isOnline) {
+              let ok = true;
+              this.personal.credentials.forEach(item=>{
+                  if (item=== 'HOUSE_CERTIFICATE' && !this.target.houseCertificate){
+                    this.$notify({
+                    title: '提示',
+                    message: '请先完成房产证信息录入再提交,否则请切换为线下流程。',
+                    type: 'error',
+                    duration: 2000
+                  });
+                  ok = false;
+                  }
+                  if (item=== 'LAND_CERTIFICATE' && !this.target.landCertificate){
+                    this.$notify({
+                    title: '提示',
+                    message: '请先完成国土证信息录入再提交,否则请切换为线下流程。',
+                    type: 'error',
+                    duration: 2000
+                  });
+                  ok = false;
+                  }
+                  if (item=== 'IMMOVABLE_CERTIFICATE' && !this.target.immovableCertificate ){
+                    this.$notify({
+                      title: '提示',
+                      message: '请先完成不动产权证信息录入再提交,否则请切换为线下流程。',
+                      type: 'error',
+                      duration: 2000
+                    });
+                    ok = false;
+                  }
+              })
+              if (ok && nodeCode === 'GENERATE_STATEMENT' && (this.statementProd == null || this.statementProd.files.length === 0)) {
+                this.$notify({
+                  title: '提示',
+                  message: '请生成意见书,再提交流程',
+                  type: 'error',
+                  duration: 2000
+                });
+              }
+              if (ok && nodeCode === 'WRITE_REPORT' && (this.technicReportProd == null || this.technicReportProd.files.length === 0)) {
+                this.$notify({
+                  title: '提示',
+                  message: '请生成报告,再提交流程',
+                  type: 'error',
+                  duration: 2000
+                });
+              }
+              if (ok && nodeCode === 'WRITE_LETTER' && (this.letterReprotProd == null || this.letterReprotProd.files.length === 0)) {
+                this.$notify({
+                  title: '提示',
+                  message: '请生成复评函,再提交流程',
+                  type: 'error',
+                  duration: 2000
+                });
+              }
+              verify.state = false;
+            }
+            callback(verify);
+            return;
           case "REVIEW_STATEMENT":
             if (this.statementProd==null || this.statementProd.checkState === '待审核') {
               verify.state = false;
@@ -1702,8 +1776,6 @@ export default {
           //   callback(verify);
           //   return;
           case "CHECK_REPORT":
-            console.log(this.technicReportProd)
-            console.log(this.finalReprotProd)
             if (this.technicReportProd.checkState==null || this.finalReprotProd.checkState==null ||
             this.technicReportProd.checkState === '待审核' || this.finalReprotProd.checkState === '待审核') {
               verify.state = false;
@@ -1929,21 +2001,6 @@ export default {
       this.decideProductionTypeDialog = false;
       this.commit("PASS");
     },
-    selectHouse() {
-      this.showCred.showHouseCer = !this.showCred.showHouseCer;
-    },
-    selectLand() {
-      this.showCred.showLandCer = !this.showCred.showLandCer;
-    },
-    selectImmovable() {
-      this.showCred.showImmovableCer = !this.showCred.showImmovableCer;
-    },
-    selectLease() {
-      this.showCred.showleaseCer = !this.showCred.showleaseCer;
-    },
-    selectIdCard() {
-      this.showCred.showIdCer = !this.showCred.showIdCer;
-    },
     genProductionFile(tag) {
       const certificates = this.personal.credentials
       for (let i in certificates) {
@@ -2350,7 +2407,29 @@ export default {
         }
       })
     },
-
+    saveChangeCer(){
+      this.$confirm('是否确定需要换证。换证之后,已录入的证件信息将被清空。请确认?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(()=>{
+          const personal = new Object();
+          personal.id = this.personal.id;
+          personal.credentials = JSON.stringify(this.changeCredentials);
+          this.$api.personal.changeCredentials(personal).then(res => {
+          if (res.code === 200) {
+            this.$notify({
+              title: '成功',
+              message: '换证成功',
+              type: 'success',
+              duration: 2000
+            });
+            this.getPersonal();
+          }
+        })
+      })
+     
+    }
   }
 }
 </script>
@@ -2450,5 +2529,6 @@ export default {
   font-size: 12px;
   color: green;
 }
+
 </style>