|
@@ -248,9 +248,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>
|
|
@@ -427,7 +424,7 @@
|
|
|
<el-form-item
|
|
|
label-width="160px"
|
|
|
>
|
|
|
- <el-button type="primary" round @click="saveOutwardStaff()">保存</el-button>
|
|
|
+ <el-button v-if="currentNode.nodeCode === 'DEPARTMENT_ALLOCATION'" type="primary" round @click="saveOutwardStaff()">保存</el-button>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -812,8 +809,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-group>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -931,7 +926,7 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6" v-if="currentNode.nodeCode==='QUOTATION_FEEDBACK' || currentNode.nodeCode==='STATEMENT_FEEDBACK'">
|
|
|
- <el-button type="primary" @click="saveFeedback()">保存反馈</el-button>
|
|
|
+ <el-button type="primary" round plain @click="saveFeedback()">保存反馈</el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
@@ -949,10 +944,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div style="display: flex;margin-top: 100px; width: 100%;">
|
|
|
- <!-- <div style="position:absolute;top:80px; left:6%">
|
|
|
- <el-button type="text">一键生成</el-button> <el-button type="text" @click="downloadPkg()">全部下载</el-button>
|
|
|
- </div> -->
|
|
|
+ <div v-if="showProds" style="display: flex;margin-top: 100px; width: 100%;">
|
|
|
<el-card :body-style="{ padding: '0px'}" shadow="always" style="margin-left: 5%; margin-right: 5%; width: 20%;" v-if="hasStatement">
|
|
|
<img :src="statementCardPNG" class="image">
|
|
|
<div style="padding: 14px;">
|
|
@@ -1011,6 +1003,26 @@
|
|
|
<el-button type="text" style="position: relative; left: 10px;top: -4px;" :disabled="currentNode.nodeCode!='WRITE_REPORT'">手动上传</el-button>
|
|
|
</el-upload>
|
|
|
</el-card>
|
|
|
+ <el-card :body-style="{ padding: '0px'}" shadow="always" style="margin-left: 5%; margin-right: 5%;width: 20%;" v-if="hasLetter">
|
|
|
+ <img :src="letterCardPNG" class="image">
|
|
|
+ <div style="padding: 14px;">
|
|
|
+ <span>复评函</span>
|
|
|
+ <span class="checked">{{ letterReprotProd.checkState }}<i v-if="letterReprotProd.checkState" class="el-icon-circle-check"></i></span>
|
|
|
+ <time class="time">{{ letterReprotProd.modified }}</time>
|
|
|
+ <div class="control" >
|
|
|
+ <el-button type="text" class="button" @click="warehouse()" :disabled="currentNode.nodeCode!='LETTER_IN' && currentNode.nodeCode!='LETTER_OUT'">出入库</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-upload style="position: relative; top: -10px;padding: 10px;"
|
|
|
+ :action="'/api/personalProduction/upload/'+target.id+'/4'" :file-list="letterReprotProd.files"
|
|
|
+ :limit="1" :on-exceed="handleExceed" :on-preview="handleAttachmentPreview" :on-success="getProductions"
|
|
|
+ :before-remove="handleRemoveFile">
|
|
|
+ <el-button type="text" style="position: relative; left: 10px;top: -4px;" :disabled="currentNode.nodeCode!='WRITE_LETTER'">手动上传</el-button>
|
|
|
+ </el-upload>
|
|
|
+ </el-card>
|
|
|
+ </div>
|
|
|
+ <div v-else style="display: flex;margin-top: 100px; width: 100%;">
|
|
|
+ <span style="color:rgb(144,147,153); margin-left: 2.2%; width: 20%; margin-top:-3%">还没有选择产品类型</span>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane name="workflowLog" class="pane-class" :lazy=true>
|
|
@@ -1082,7 +1094,7 @@
|
|
|
</div>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="decideProductionTypeDialog = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="saveFeedback()" >保存</el-button>
|
|
|
+ <el-button type="primary" @click="saveFeedbackWhenPrice()" >保存</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
<el-dialog :visible.sync="inWarehouseDialog" width="30%" center top="35vh" custom-class="doWarehouseClass">
|
|
@@ -1233,7 +1245,32 @@
|
|
|
feedback:{
|
|
|
handler(newVal,oldVal){
|
|
|
if (newVal!=oldVal){
|
|
|
+ this.nodeBusinessInfo.production = this.feedback;
|
|
|
this.$refs.board.getInstanceQueue();
|
|
|
+ if (this.feedback.includes("STATEMENT")){
|
|
|
+ this.hasStatement = true;
|
|
|
+ }else{
|
|
|
+ this.hasStatement = false;
|
|
|
+ }
|
|
|
+ if (this.feedback.includes("REPORT")){
|
|
|
+ this.hasReport = true;
|
|
|
+ }else{
|
|
|
+ this.hasReport = false;
|
|
|
+ }
|
|
|
+ if (this.feedback.includes("LETTER")){
|
|
|
+ this.hasLetter = true;
|
|
|
+ }else{
|
|
|
+ this.hasLetter = false;
|
|
|
+ }
|
|
|
+ if (this.feedback.includes("REPORT") && this.feedback.includes("LETTER")){
|
|
|
+ this.$message.error('报告和复评函只能选其一');
|
|
|
+ this.feedback = oldVal;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (this.feedback.length>0){
|
|
|
+ this.showProds = true
|
|
|
+ }else{
|
|
|
+ this.showProds = false;
|
|
|
}
|
|
|
},
|
|
|
deep:true
|
|
@@ -1242,7 +1279,7 @@
|
|
|
computed: {
|
|
|
certificateCouldEdit(){
|
|
|
let currentNodeCode = this.$route.query.currentNodeCode;
|
|
|
- if (currentNodeCode==='GENERATE_STATEMENT'){
|
|
|
+ if (currentNodeCode==='GENERATE_STATEMENT' || currentNodeCode==='WRITE_REPORT' || currentNodeCode==='WRITE_LETTER'){
|
|
|
return true;
|
|
|
}else{
|
|
|
return false;
|
|
@@ -1497,37 +1534,47 @@
|
|
|
targetId:null,
|
|
|
files:[],
|
|
|
created:null,
|
|
|
- checkSatae:null
|
|
|
+ checkState:null
|
|
|
},
|
|
|
technicReportProd:{
|
|
|
id:null,
|
|
|
targetId:null,
|
|
|
files:[],
|
|
|
created:null,
|
|
|
- checkSatae:null
|
|
|
+ checkState:null
|
|
|
},
|
|
|
finalReprotProd:{
|
|
|
id:null,
|
|
|
targetId:null,
|
|
|
files:[],
|
|
|
created:null,
|
|
|
+ checkState:null
|
|
|
+ },
|
|
|
+ letterReprotProd:{
|
|
|
+ id:null,
|
|
|
+ targetId:null,
|
|
|
+ files:[],
|
|
|
+ created:null,
|
|
|
checkSatae:null
|
|
|
},
|
|
|
statementCardPNG:emptyPNG,
|
|
|
technicCardPNG:emptyPNG,
|
|
|
finalCardPNG:emptyPNG,
|
|
|
+ letterCardPNG:emptyPNG,
|
|
|
outWarehouseDialog:false,
|
|
|
inWarehouseDialog:false,
|
|
|
warehouseTip:null,
|
|
|
productionId:null,
|
|
|
hasStatement:false,
|
|
|
hasReport:false,
|
|
|
- feedback:[],
|
|
|
+ hasLetter:false,
|
|
|
+ feedback:null,
|
|
|
checkDialog:false,
|
|
|
checkProDTO:{
|
|
|
targetId:null,
|
|
|
production:null
|
|
|
- }
|
|
|
+ },
|
|
|
+ showProds:true
|
|
|
|
|
|
}
|
|
|
},
|
|
@@ -1598,14 +1645,13 @@
|
|
|
if (res.data.sellingAbility){
|
|
|
this.target.sellingAbility = JSON.parse(res.data.sellingAbility);
|
|
|
}
|
|
|
- this.feedback = JSON.parse(res.data.feedback);
|
|
|
- this.nodeBusinessInfo.production = this.feedback;
|
|
|
- if (this.feedback.includes("STATEMENT")){
|
|
|
- this.hasStatement = true;
|
|
|
- }
|
|
|
- if (this.feedback.includes("REPORT")){
|
|
|
- this.hasReport = true;
|
|
|
+ if (res.data.feedback){
|
|
|
+ this.feedback = JSON.parse(res.data.feedback);
|
|
|
+ this.nodeBusinessInfo.production = this.feedback;
|
|
|
+ }else{
|
|
|
+ this.feedback = []
|
|
|
}
|
|
|
+
|
|
|
|
|
|
}
|
|
|
})
|
|
@@ -1628,7 +1674,11 @@
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
- handleClick(tab) {},
|
|
|
+ handleClick(tab) {
|
|
|
+ if ("producution" === tab && this.feedback==null){
|
|
|
+ this.feedback=[];
|
|
|
+ }
|
|
|
+ },
|
|
|
showCredentials(){
|
|
|
this.showCred = {};
|
|
|
this.personal.credentials.forEach(element => {
|
|
@@ -1689,6 +1739,9 @@
|
|
|
callback(verify);
|
|
|
this.decideProductionTypeDialog = true
|
|
|
return ;
|
|
|
+ }else{
|
|
|
+ callback(verify);
|
|
|
+ return ;
|
|
|
}
|
|
|
case "GENERATE_STATEMENT":
|
|
|
if (this.statementProd==null || this.statementProd.files.length===0){
|
|
@@ -1703,7 +1756,7 @@
|
|
|
callback(verify);
|
|
|
return ;
|
|
|
case "REVIEW_STATEMENT":
|
|
|
- if (!this.statementProd.checkState){
|
|
|
+ if (this.statementProd.checkState==='待审核'){
|
|
|
verify.state = false;
|
|
|
callback(verify);
|
|
|
this.checkProDTO.production = "STATEMENT";
|
|
@@ -1739,7 +1792,8 @@
|
|
|
callback(verify);
|
|
|
return ;
|
|
|
case "CHECK_REPORT":
|
|
|
- if (!this.technicReportProd.checkState || !this.finalReprotProd.checkState){
|
|
|
+ console.log(this.technicReportProd.checkState)
|
|
|
+ if (this.technicReportProd.checkState==='待审核' || this.finalReprotProd.checkState==='待审核'){
|
|
|
verify.state = false;
|
|
|
callback(verify);
|
|
|
this.checkProDTO.production = "REPORT";
|
|
@@ -1749,6 +1803,17 @@
|
|
|
}
|
|
|
callback(verify);
|
|
|
return ;
|
|
|
+ case "CHECK_LETTER":
|
|
|
+ if (!this.letterReprotProd.checkState){
|
|
|
+ verify.state = false;
|
|
|
+ callback(verify);
|
|
|
+ this.checkProDTO.production = "LETTER";
|
|
|
+ this.checkProDTO.targetId = this.target.id;
|
|
|
+ this.checkDialog = true
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ callback(verify);
|
|
|
+ return ;
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -1809,7 +1874,7 @@
|
|
|
this.$refs.board.commit(state);
|
|
|
},
|
|
|
jumpTabs(){
|
|
|
- const orderTag = ['DEPARTMENT_ALLOCATION'];
|
|
|
+ const orderTag = ['OPENING_ORDER','DEPARTMENT_ALLOCATION'];
|
|
|
const evaluate = ['SPOT_RECONNAISSANCE','DETERMINE_PRICE'];
|
|
|
const certificates = ['GENERATE_STATEMENT','WRITE_REPORT','WRITE_LETTER']
|
|
|
const nodeCode = this.$route.query.currentNodeCode;
|
|
@@ -1820,9 +1885,11 @@
|
|
|
return 'evaluate'
|
|
|
}
|
|
|
if (certificates.includes(nodeCode)){
|
|
|
-
|
|
|
return 'certificateInfo';
|
|
|
}
|
|
|
+ if (this.feedback==null){
|
|
|
+ this.feedback = [];
|
|
|
+ }
|
|
|
return 'producution'
|
|
|
},
|
|
|
calulate(){
|
|
@@ -1925,7 +1992,7 @@
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- saveFeedback(){
|
|
|
+ saveFeedbackWhenPrice(){
|
|
|
this.nodeBusinessInfo.ifFeedback = true;
|
|
|
if (this.target.id && this.target.feedback && this.target.feedback!='NONE'){
|
|
|
this.nodeBusinessInfo.ifFeedback = false;
|
|
@@ -1934,11 +2001,6 @@
|
|
|
feedbackReq.id = this.target.id;
|
|
|
this.$api.personalTarget.feedback(feedbackReq);
|
|
|
}
|
|
|
- this.$notify({
|
|
|
- title: '保存成功',
|
|
|
- type: 'success',
|
|
|
- duration: 2000
|
|
|
- });
|
|
|
this.decideProductionTypeDialog = false;
|
|
|
this.commit("PASS");
|
|
|
},
|
|
@@ -1958,6 +2020,33 @@
|
|
|
this.showCred.showIdCer = !this.showCred.showIdCer;
|
|
|
},
|
|
|
genProductionFile(tag){
|
|
|
+ const certificates = this.personal.credentials
|
|
|
+ for (let i in certificates){
|
|
|
+ if (certificates[i]==='HOUSE_CERTIFICATE' && !this.target.houseCertificate){
|
|
|
+ this.$message.error('房产证信息未完善');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (certificates[i]==='LAND_CERTIFICATE' && !this.target.landCertificate){
|
|
|
+ this.$message.error('国土证信息未完善');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (certificates[i]==='IMMOVABLE_CERTIFICATE' && !this.target.immovableCertificate){
|
|
|
+ this.$message.error('不动产权证信息未完善');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!this.target.entityInfo){
|
|
|
+ this.$message.error('实物状况信息未完善');
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ if (!this.target.backgroundInfo){
|
|
|
+ this.$message.error('区位状况信息未完善');
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ if (!this.target.sellingAbility){
|
|
|
+ this.$message.error('变现能力分析未完善');
|
|
|
+ return ;
|
|
|
+ }
|
|
|
this.$confirm('系统生成将会覆盖原有文档,请确认是否继续?','提示',{
|
|
|
confirmButtonText: '确认',
|
|
|
cancelButtonText: '取消',
|
|
@@ -2127,6 +2216,18 @@
|
|
|
type: 'success',
|
|
|
duration: 2000
|
|
|
});
|
|
|
+ const prodType = this.checkProDTO.production;
|
|
|
+ if (prodType==='REPORT'){
|
|
|
+ this.technicReportProd.checkState = '已审核';
|
|
|
+ this.finalReprotProd.checkState = '已审核';
|
|
|
+ }
|
|
|
+ if (prodType==='STATEMENT'){
|
|
|
+ this.statementProd.checkState = '已审核';
|
|
|
+ }
|
|
|
+ if (prodType==='LETTER'){
|
|
|
+ this.letterReprotProd.checkState = '已审核';
|
|
|
+ }
|
|
|
+ this.commit("PASS");
|
|
|
}else{
|
|
|
this.$notify({
|
|
|
title: '失败',
|
|
@@ -2136,7 +2237,6 @@
|
|
|
});
|
|
|
}
|
|
|
this.checkDialog = false;
|
|
|
- this.getProductions();
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -2226,19 +2326,33 @@
|
|
|
},
|
|
|
saveFeedback(){
|
|
|
let flag = true;
|
|
|
- const oldFeedback = JSON.parse(this.target.feedback);
|
|
|
- oldFeedback.forEach(element => {
|
|
|
- if (!this.feedback.includes(element)){
|
|
|
- this.$notify({
|
|
|
+ if (this.target.feedback){
|
|
|
+ const oldFeedback = JSON.parse(this.target.feedback);
|
|
|
+ oldFeedback.forEach(element => {
|
|
|
+ if (!this.feedback.includes(element)){
|
|
|
+ if (element==='STATEMENT' && this.statementProd.id){
|
|
|
+ this.$notify({
|
|
|
title: '提示',
|
|
|
message:'不能移除已存在的产品类型',
|
|
|
type: 'info',
|
|
|
duration: 2000
|
|
|
});
|
|
|
- flag =false;
|
|
|
- return;
|
|
|
- }
|
|
|
- });
|
|
|
+ flag =false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (element==='REPORT' && (this.technicReportProd.id || this.finalReprotProd.id)){
|
|
|
+ this.$notify({
|
|
|
+ title: '提示',
|
|
|
+ message:'不能移除已存在的产品类型',
|
|
|
+ type: 'info',
|
|
|
+ duration: 2000
|
|
|
+ });
|
|
|
+ flag =false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
if (flag){
|
|
|
const feedbackDTO = new Object();
|
|
|
feedbackDTO.id = this.target.id;
|
|
@@ -2252,6 +2366,7 @@
|
|
|
type: 'success',
|
|
|
duration: 2000
|
|
|
});
|
|
|
+ this.getPersonalTarget();
|
|
|
}else{
|
|
|
this.$notify({
|
|
|
title: '失败',
|
|
@@ -2262,7 +2377,8 @@
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
</script>
|