|
@@ -390,7 +390,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<el-row class="row-style">
|
|
|
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
+ <el-col :xs="24" :sm="12" :lg="18" :span="6">
|
|
|
<el-form-item label="流程:" prop="acreage" label-width="140px" class="postInfo-container-item" >
|
|
|
<el-switch v-model="target.isOnline" style="margin-bottom: 5px;" active-text="线上" inactive-text="线下"
|
|
|
@change="calculateSwith()"
|
|
@@ -401,6 +401,13 @@
|
|
|
</el-switch>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :xs="12" :sm="12" :lg="4" :span="6">
|
|
|
+ <el-form-item label="打印二维码:" prop="validateCode" label-width="140px" class="postInfo-container-item">
|
|
|
+ <div class="qr-code-div">
|
|
|
+ <img id="validateCode" class="qr-code" :src="target.validateCode" alt="未定价" @click="printQR()"/>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
<el-row class="row-style">
|
|
|
<el-col :xs="12" :sm="12" :lg="18" :span="6">
|
|
@@ -408,6 +415,7 @@
|
|
|
<el-input v-model="personal.location" class="filter-item" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+
|
|
|
</el-row>
|
|
|
<el-row class="row-style">
|
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
@@ -836,7 +844,7 @@
|
|
|
<time class="time">{{ statementProd.modified }}</time>
|
|
|
<div class="control">
|
|
|
<el-button type="text" class="button" @click="doStamp(statementProd.files)"
|
|
|
- :disabled="currentNode.nodeCode != 'GENERATE_STATEMENT'">加盖公章</el-button>
|
|
|
+ :disabled="currentNode.nodeCode != 'GENERATE_STATEMENT' || !statementProd.isOnline" >加盖公章</el-button>
|
|
|
<el-button type="text" class="button" @click="warehouse()"
|
|
|
:disabled="currentNode.nodeCode != 'STATEMENT_IN' && currentNode.nodeCode != 'STATEMENT_OUT'">出入库</el-button>
|
|
|
<el-button type="text" class="button" @click="genProductionFile(1)"
|
|
@@ -1141,39 +1149,42 @@ export default {
|
|
|
},
|
|
|
feedback: {
|
|
|
handler(newVal, oldVal) {
|
|
|
- if (newVal != oldVal) {
|
|
|
- if (this.currentNode.nodeCode === 'STATEMENT_FEEDBACK' && !newVal.includes("STATEMENT")) {
|
|
|
- this.feedback.push("STATEMENT");
|
|
|
- }
|
|
|
- if ((newVal.includes("REPORT") && newVal.includes("LETTER")) ||
|
|
|
- (newVal.includes("REPORT") && newVal.includes("NONE")) ||
|
|
|
- (newVal.includes("LETTER") && newVal.includes("NONE"))) {
|
|
|
- this.$message({
|
|
|
- message: '只能选择其一',
|
|
|
- type: 'error'
|
|
|
- });
|
|
|
- this.feedback = oldVal;
|
|
|
- }
|
|
|
+ if (this.currentNode.nodeCode === 'STATEMENT_FEEDBACK' && !newVal.includes("STATEMENT")) {
|
|
|
+ //this.feedback.push("STATEMENT");
|
|
|
+ }
|
|
|
+ // if (this.currentNode.nodeCode === 'QUOTATION_FEEDBACK' && newVal.length>1) {
|
|
|
+ // this.$message("只能选择一种产品类型。");
|
|
|
+ // //this.feedback = oldVal;
|
|
|
+ // }
|
|
|
+ // if (this.currentNode.nodeCode === 'STATEMENT_FEEDBACK' && newVal.length!=2) {
|
|
|
+ // this.$message("只能选择一种产品类型。");
|
|
|
+ // //this.feedback = oldVal;
|
|
|
+ // }
|
|
|
+ // if ((newVal.includes("REPORT") && newVal.includes("LETTER")) ||
|
|
|
+ // (newVal.includes("REPORT") && newVal.includes("NONE")) ||
|
|
|
+ // (newVal.includes("LETTER") && newVal.includes("NONE"))) {
|
|
|
+ // this.$message('除意见书以外,只能选择剩余中的一种选项');
|
|
|
+ // //this.feedback = 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;
|
|
|
- }
|
|
|
-
|
|
|
+ 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.length > 0) {
|
|
|
this.showProds = true
|
|
|
} else {
|
|
@@ -1331,7 +1342,8 @@ export default {
|
|
|
sellingAbility: null,
|
|
|
sellMoney: null,
|
|
|
sellMoneyBase: null,
|
|
|
- sellMoneyRate: null
|
|
|
+ sellMoneyRate: null,
|
|
|
+ validateCode:null
|
|
|
},
|
|
|
compareList: {
|
|
|
targetId: null,
|
|
@@ -1468,7 +1480,8 @@ export default {
|
|
|
targetId: null,
|
|
|
files: [],
|
|
|
created: null,
|
|
|
- checkState: null
|
|
|
+ checkState: null,
|
|
|
+ isOnline:null
|
|
|
},
|
|
|
technicReportProd: {
|
|
|
id: null,
|
|
@@ -1655,12 +1668,7 @@ export default {
|
|
|
switch (nodeCode) {
|
|
|
case 'DEPARTMENT_ALLOCATION':
|
|
|
if (!this.personal.outwardStaff) {
|
|
|
- this.$notify({
|
|
|
- title: '提示',
|
|
|
- message: '请确定外业人员后,再提交流程。',
|
|
|
- type: 'error',
|
|
|
- duration: 3000
|
|
|
- });
|
|
|
+ this.$message('请确定外业人员后,再提交流程。')
|
|
|
verify.state = false;
|
|
|
} else {
|
|
|
verify.nextHandlerId = this.personal.outwardStaff;
|
|
@@ -1749,32 +1757,7 @@ export default {
|
|
|
return;
|
|
|
}
|
|
|
callback(verify);
|
|
|
- return;
|
|
|
- // case "WRITE_REPORT":
|
|
|
- // if (this.technicReportProd == null || this.technicReportProd.files.length === 0) {
|
|
|
- // this.$notify({
|
|
|
- // title: '提示',
|
|
|
- // message: '请生成或上传技术报告后,再提交流程',
|
|
|
- // type: 'error',
|
|
|
- // duration: 3000
|
|
|
- // });
|
|
|
- // verify.state = false;
|
|
|
- // callback(verify);
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if (this.finalReprotProd == null || this.finalReprotProd.files.length === 0) {
|
|
|
- // this.$notify({
|
|
|
- // title: '提示',
|
|
|
- // message: '请生成或上传结果报告后,再提交流程',
|
|
|
- // type: 'error',
|
|
|
- // duration: 3000
|
|
|
- // });
|
|
|
- // verify.state = false;
|
|
|
- // callback(verify);
|
|
|
- // return
|
|
|
- // }
|
|
|
- // callback(verify);
|
|
|
- // return;
|
|
|
+
|
|
|
case "CHECK_REPORT":
|
|
|
if (this.technicReportProd.checkState==null || this.finalReprotProd.checkState==null ||
|
|
|
this.technicReportProd.checkState === '待审核' || this.finalReprotProd.checkState === '待审核') {
|
|
@@ -1798,6 +1781,24 @@ export default {
|
|
|
}
|
|
|
callback(verify);
|
|
|
return;
|
|
|
+ case "QUOTATION_FEEDBACK":
|
|
|
+ if (this.feedback.length!=1){
|
|
|
+ verify.state = false;
|
|
|
+ callback(verify);
|
|
|
+ this.$message("还没有确定产品类型");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ callback(verify);
|
|
|
+ return;
|
|
|
+ case "STATEMENT_FEEDBACK":
|
|
|
+ if (this.feedback.length!=2){
|
|
|
+ verify.state = false;
|
|
|
+ callback(verify);
|
|
|
+ this.$message("意见书送达后,还没有确定后续产品类型。");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ callback(verify);
|
|
|
+ return;
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -1964,17 +1965,15 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
calculateSwith() {
|
|
|
- this.$api.personalTarget.calculateSwith(this.target.isOnline, this.target.id);
|
|
|
+ this.$api.personalTarget.calculateSwith(this.target.isOnline, this.target.id).then(res=>{
|
|
|
+ if (res.code === 200 && res.data){
|
|
|
+ this.isOnline = this.target.isOnline;
|
|
|
+ }
|
|
|
+ })
|
|
|
if (this.target.isOnline && !this.compareList.calculateId) {
|
|
|
this.getCaluateTable(this.target.id);
|
|
|
}
|
|
|
- // if (this.target.isOnline) {
|
|
|
- // setTimeout(() => {
|
|
|
- // const element = document.getElementById("evaluteObject");
|
|
|
- // element.scrollTop = element.scrollHeight;
|
|
|
- // }, 500);
|
|
|
-
|
|
|
- // }
|
|
|
+
|
|
|
},
|
|
|
selectCalculateType() {
|
|
|
let data = this.compareList.analysisData
|
|
@@ -2005,28 +2004,28 @@ export default {
|
|
|
const certificates = this.personal.credentials
|
|
|
for (let i in certificates) {
|
|
|
if (certificates[i] === 'HOUSE_CERTIFICATE' && !this.target.houseCertificate) {
|
|
|
- this.$message.error('房产证信息未完善');
|
|
|
+ this.$message('房产证未点击保存');
|
|
|
return;
|
|
|
}
|
|
|
if (certificates[i] === 'LAND_CERTIFICATE' && !this.target.landCertificate) {
|
|
|
- this.$message.error('国土证信息未完善');
|
|
|
+ this.$message('国土证未点击保存');
|
|
|
return;
|
|
|
}
|
|
|
if (certificates[i] === 'IMMOVABLE_CERTIFICATE' && !this.target.immovableCertificate) {
|
|
|
- this.$message.error('不动产权证信息未完善');
|
|
|
+ this.$message('不动产权证未点击保存');
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
if (!this.target.entityInfo) {
|
|
|
- this.$message.error('实物状况信息未完善');
|
|
|
+ this.$message('实物状况未点击保存');
|
|
|
return;
|
|
|
}
|
|
|
if (!this.target.backgroundInfo) {
|
|
|
- this.$message.error('区位状况信息未完善');
|
|
|
+ this.$message('区位状况未点击保存');
|
|
|
return;
|
|
|
}
|
|
|
if (!this.target.sellingAbility) {
|
|
|
- this.$message.error('变现能力分析未完善');
|
|
|
+ this.$message('变现能力未点击保存');
|
|
|
return;
|
|
|
}
|
|
|
this.$confirm('系统生成将会覆盖原有文档,请确认是否继续?', '提示', {
|
|
@@ -2045,6 +2044,7 @@ export default {
|
|
|
duration: 2000
|
|
|
});
|
|
|
this.getProductions();
|
|
|
+ this.getPersonalTarget();
|
|
|
} else {
|
|
|
this.$notify({
|
|
|
title: '失败',
|
|
@@ -2108,7 +2108,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
handleExceed(files, fileList) {
|
|
|
- this.$message.warning(`当前限制选择 1个文件,本次选择了 ${files.length} 个文件`);
|
|
|
+ this.$message(`当前限制选择 1个文件,本次选择了 ${files.length} 个文件`);
|
|
|
},
|
|
|
handleAttachmentPreview(file) {
|
|
|
window.open(file.url)
|
|
@@ -2314,36 +2314,35 @@ export default {
|
|
|
},
|
|
|
saveFeedback() {
|
|
|
let flag = true;
|
|
|
- if (this.target.feedback) {
|
|
|
- const oldFeedback = JSON.parse(this.target.feedback);
|
|
|
+ const oldFeedback = JSON.parse(this.target.feedback);
|
|
|
+ if (oldFeedback) {
|
|
|
oldFeedback.forEach(element => {
|
|
|
if (!this.feedback.includes(element)) {
|
|
|
if (element === 'STATEMENT' && this.statementProd.id) {
|
|
|
- this.$notify({
|
|
|
- title: '提示',
|
|
|
- message: '不能移除已存在的产品类型',
|
|
|
- type: 'info',
|
|
|
- duration: 2000
|
|
|
- });
|
|
|
+ this.$message("不能移除已存在的产品类型");
|
|
|
flag = false;
|
|
|
- return;
|
|
|
}
|
|
|
if (element === 'REPORT' && (this.technicReportProd.id || this.finalReprotProd.id)) {
|
|
|
- this.$notify({
|
|
|
- title: '提示',
|
|
|
- message: '不能移除已存在的产品类型',
|
|
|
- type: 'info',
|
|
|
- duration: 2000
|
|
|
- });
|
|
|
+ this.$message("不能移除已存在的产品类型");
|
|
|
flag = false;
|
|
|
- return;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ if (this.currentNode.nodeCode==='QUOTATION_FEEDBACK' && this.feedback.length>1){
|
|
|
+ this.$message("只能选择一种产品类型");
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ if (this.currentNode.nodeCode==='STATEMENT_FEEDBACK' && this.feedback.length>2){
|
|
|
+ this.$message("只能选择一种产品类型");
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
}
|
|
|
if (flag) {
|
|
|
const feedbackDTO = new Object();
|
|
|
feedbackDTO.id = this.target.id;
|
|
|
+ if (this.feedback.length==0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
feedbackDTO.feedback = JSON.stringify(this.feedback);
|
|
|
const taskRecordDTO = this.buildTaskRecordDTO(feedbackDTO)
|
|
|
this.$api.personalTarget.doFeedback(taskRecordDTO).then(res => {
|
|
@@ -2364,6 +2363,8 @@ export default {
|
|
|
});
|
|
|
}
|
|
|
})
|
|
|
+ }else{
|
|
|
+ this.feedback = oldFeedback;
|
|
|
}
|
|
|
},
|
|
|
saveScene(){
|
|
@@ -2429,6 +2430,19 @@ export default {
|
|
|
})
|
|
|
})
|
|
|
|
|
|
+ },
|
|
|
+ printQR(){
|
|
|
+ const path = this.target.validateCode;
|
|
|
+ console.log(path)
|
|
|
+ if (!path){
|
|
|
+ this.$message("二维码还未生成,无法打印。")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let routeUrl = this.$router.resolve({
|
|
|
+ path: `/print/code?path=${path}`
|
|
|
+ });
|
|
|
+ window.open(routeUrl.href, '_blank');
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -2529,6 +2543,30 @@ export default {
|
|
|
font-size: 12px;
|
|
|
color: green;
|
|
|
}
|
|
|
+.qr-code-div{
|
|
|
+ border-radius:10px;
|
|
|
+ background-color: RGB(245,245,245);
|
|
|
+ width: 200px;
|
|
|
+ height: 200px;
|
|
|
+ position:absolute;
|
|
|
+ top:-10;
|
|
|
+ left:0;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+.qr-code{
|
|
|
+ width: 190px;
|
|
|
+ height: 190px;
|
|
|
+ z-index: 999;
|
|
|
+ }
|
|
|
+.qr-code-div:hover {
|
|
|
+ cursor: pointer;
|
|
|
+ // background-color:RGB(220,220,220);
|
|
|
+ width: 205px;
|
|
|
+ height: 205px;
|
|
|
+
|
|
|
+}
|
|
|
|
|
|
</style>
|
|
|
|