|
@@ -3,15 +3,16 @@
|
|
<div class="top" style="margin-bottom: 20px">
|
|
<div class="top" style="margin-bottom: 20px">
|
|
<div class="account-title">{{ contractTitle }}</div>
|
|
<div class="account-title">{{ contractTitle }}</div>
|
|
<div class="button-group">
|
|
<div class="button-group">
|
|
|
|
+ <!--通过"-->
|
|
|
|
+ <el-button icon="el-icon-circle-check" type="success" v-if="type === 'approve'" @click="approveYes">{{ $t('contract.approveYes') }}</el-button>
|
|
|
|
+ <!--驳回v-if="type === 'approve'"-->
|
|
|
|
+ <el-button icon="el-icon-circle-close" type="primary" v-if="type === 'approve'" @click="approveNoOpen">{{ $t('contract.approveNo') }}</el-button>
|
|
<el-button v-if="!disableFlag" type="primary" icon="el-icon-circle-check" @click="submitForm"
|
|
<el-button v-if="!disableFlag" type="primary" icon="el-icon-circle-check" @click="submitForm"
|
|
:loading="submitLoading">{{ $t('common.confirm') }}
|
|
:loading="submitLoading">{{ $t('common.confirm') }}
|
|
</el-button>
|
|
</el-button>
|
|
<el-button @click="cancel" icon="el-icon-remove-outline">
|
|
<el-button @click="cancel" icon="el-icon-remove-outline">
|
|
{{ $t('common.cancel') }}
|
|
{{ $t('common.cancel') }}
|
|
</el-button>
|
|
</el-button>
|
|
- <!-- <el-button v-if="type == 'view'" icon="el-icon-arrow-left" plain size="mini" @click="cancel">-->
|
|
|
|
- <!-- {{ $t('common.back') }}-->
|
|
|
|
- <!-- </el-button>-->
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -577,6 +578,26 @@
|
|
<el-button @click="additionalCostFormCancel" icon="el-icon-remove-outline">{{ $t('common.cancel') }}</el-button>
|
|
<el-button @click="additionalCostFormCancel" icon="el-icon-remove-outline">{{ $t('common.cancel') }}</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <!--驳回-->
|
|
|
|
+ <el-dialog width="35%" :title="$t('contract.approve')" :visible.sync="approveOpen" :close-on-click-modal="false" append-to-body>
|
|
|
|
+ <el-form ref="approveForm" class="account-form" label-position="top" :model="approveForm" :rules="approveFormRules">
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="24">
|
|
|
|
+ <!--驳回原因 -->
|
|
|
|
+ <el-form-item :label="$t('quotation.rejectReason')" prop="approveRemark">
|
|
|
|
+ <el-input v-model="approveForm.approveRemark" type="textarea" maxlength="500" show-word-limit :rows="5" style="width: 100%;margin-right: 20px"
|
|
|
|
+ :placeholder="$t('common.pleaseInput') + $t('quotation.rejectReason')"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+
|
|
|
|
+ </el-row>
|
|
|
|
+ </el-form>
|
|
|
|
+
|
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button type="primary" icon="el-icon-circle-check" @click="approveNo">{{ $t('common.confirm') }}</el-button>
|
|
|
|
+ <el-button icon="el-icon-remove-outline" @click="approveOpen = false">{{ $t('common.cancel') }}</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -601,13 +622,14 @@ import MoneyInput from "@/components/element/form/items/moneyInput.vue";
|
|
import CardTableZy from "@/components/element/table/CardTableZy.vue";
|
|
import CardTableZy from "@/components/element/table/CardTableZy.vue";
|
|
import {align} from "quill/ui/icons";
|
|
import {align} from "quill/ui/icons";
|
|
import {getProjectName} from "@/api/business/crm/project";
|
|
import {getProjectName} from "@/api/business/crm/project";
|
|
-import {addContract, getContractById, updateContract} from "@/api/contract/contract";
|
|
|
|
|
|
+import {addContract, editFlow, getContractById, updateContract} from "@/api/contract/contract";
|
|
import {listLift} from "@/api/contract/lift";
|
|
import {listLift} from "@/api/contract/lift";
|
|
import {comdify, delcommafy} from "@/utils/money";
|
|
import {comdify, delcommafy} from "@/utils/money";
|
|
import {getContractHistory4Contract, listContractHistory} from "@/api/contract/contractHistory";
|
|
import {getContractHistory4Contract, listContractHistory} from "@/api/contract/contractHistory";
|
|
import {getAccountByAgent} from "@/api/business/crm/account";
|
|
import {getAccountByAgent} from "@/api/business/crm/account";
|
|
import Vue from "vue";
|
|
import Vue from "vue";
|
|
import {getI18nDictName} from "@/utils/dict/DictFind";
|
|
import {getI18nDictName} from "@/utils/dict/DictFind";
|
|
|
|
+import {audit} from "@/api/system/flow";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: "Contract-Edit",
|
|
name: "Contract-Edit",
|
|
@@ -719,6 +741,15 @@ export default {
|
|
tableLoading:false,
|
|
tableLoading:false,
|
|
contractHistory:{},
|
|
contractHistory:{},
|
|
currentEquipmentRow:{},
|
|
currentEquipmentRow:{},
|
|
|
|
+
|
|
|
|
+ //审批
|
|
|
|
+ approveOpen:false,
|
|
|
|
+ approveFormRules: {
|
|
|
|
+ approveRemark: [
|
|
|
|
+ {required: true, message: this.$t('common.pleaseInput') + this.$t('quotation.rejectReason'), trigger: 'blur'}
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
|
|
+ approveForm:{approveRemark:''},
|
|
};
|
|
};
|
|
},
|
|
},
|
|
|
|
|
|
@@ -811,9 +842,12 @@ export default {
|
|
case 'history':
|
|
case 'history':
|
|
this.contractTitle = "合同履历";
|
|
this.contractTitle = "合同履历";
|
|
break;
|
|
break;
|
|
|
|
+ case 'approve':
|
|
|
|
+ this.contractTitle = "合同审批";
|
|
|
|
+ break;
|
|
|
|
|
|
}
|
|
}
|
|
- this.disableFlag = this.type == 'view' || this.type == 'history';
|
|
|
|
|
|
+ this.disableFlag = this.type == 'view' || this.type == 'history' || this.type == 'approve';
|
|
},
|
|
},
|
|
// 区域发生变化
|
|
// 区域发生变化
|
|
async areaChange(val) {
|
|
async areaChange(val) {
|
|
@@ -978,12 +1012,11 @@ export default {
|
|
if(this.form.contractNo && this.type != 'history'){
|
|
if(this.form.contractNo && this.type != 'history'){
|
|
//获取履历信息
|
|
//获取履历信息
|
|
listContractHistory({contractNo:this.form.contractNo}).then(resHis=>{
|
|
listContractHistory({contractNo:this.form.contractNo}).then(resHis=>{
|
|
- // if(res && res.)
|
|
|
|
this.amendmentList = resHis.rows
|
|
this.amendmentList = resHis.rows
|
|
})
|
|
})
|
|
}
|
|
}
|
|
//获取设备数据
|
|
//获取设备数据
|
|
- listLift({contractNo:this.form.contractNo}).then(res=>{
|
|
|
|
|
|
+ listLift({contractNo:this.form.contractNo,version:this.form.version}).then(res=>{
|
|
if(res ){
|
|
if(res ){
|
|
this.equipmentList = res.rows
|
|
this.equipmentList = res.rows
|
|
//暂存履历信息
|
|
//暂存履历信息
|
|
@@ -991,6 +1024,13 @@ export default {
|
|
this.contractHistory.tqContractLiftHistoryList = [...this.equipmentList]
|
|
this.contractHistory.tqContractLiftHistoryList = [...this.equipmentList]
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
+ if(this.type == 'approve'){
|
|
|
|
+ getContractById(this.contractId).then(response => {
|
|
|
|
+ this.approveForm = response.data;
|
|
|
|
+ //确定走审批流程3 还是 4(少) 1.首先如果是不是第一版本 || 付款方式是信用证 || 付款比例不是是30/70 走财务流程3 3.否则还是走4
|
|
|
|
+ this.approveForm.businessDesc = this.form.version > 1 || this.approveForm.paymentMethod === '1' || this.approveForm.paymentRatio !=='1' ? 3 : 4
|
|
|
|
+ })
|
|
|
|
+ }
|
|
});
|
|
});
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -1445,6 +1485,77 @@ export default {
|
|
handleHistory(row){
|
|
handleHistory(row){
|
|
this.$tab.openPage("查看合同", '/contract-edit/index/' + row.id, {type: 'history'});
|
|
this.$tab.openPage("查看合同", '/contract-edit/index/' + row.id, {type: 'history'});
|
|
},
|
|
},
|
|
|
|
+ //审核通过
|
|
|
|
+ async approveYes(){
|
|
|
|
+ this.$set(this.approveForm,"approveStatus","2")
|
|
|
|
+ let bargainObj = {
|
|
|
|
+ paymentMethod:this.approveForm.paymentMethod,
|
|
|
|
+ paymentRatio:this.approveForm.paymentRatio
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ let auditForm = {
|
|
|
|
+ // 审批流
|
|
|
|
+ auditFlow: this.approveForm.businessDesc,
|
|
|
|
+ // 业务id 报价id
|
|
|
|
+ businessId: this.approveForm.id,
|
|
|
|
+ // 审批结果
|
|
|
|
+ status: 200,
|
|
|
|
+ // 备注
|
|
|
|
+ remark: '审核通过',
|
|
|
|
+ // 业务参数
|
|
|
|
+ businessObj: bargainObj
|
|
|
|
+ }
|
|
|
|
+ const response = await audit(auditForm)
|
|
|
|
+ if(response && response.code == 200){
|
|
|
|
+ const res = await editFlow({...this.approveForm})
|
|
|
|
+ if(res && res.code == 200){
|
|
|
|
+ this.$message.success(this.$t('common.operateSuccess'))
|
|
|
|
+ }else{
|
|
|
|
+ this.$message.error("操作失败")
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.approveOpen = false
|
|
|
|
+ this.$tab.closeOpenPage({path: "/contract/contract"});
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ approveNoOpen(){
|
|
|
|
+
|
|
|
|
+ this.approveOpen = true;
|
|
|
|
+ },
|
|
|
|
+ //审核驳回
|
|
|
|
+ async approveNo(){
|
|
|
|
+ let valid = await this.$refs['approveForm'].validate()
|
|
|
|
+ if (!valid) {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ this.$set(this.approveForm,"approveStatus","1")
|
|
|
|
+ let bargainObj = {}
|
|
|
|
+ let auditForm = {
|
|
|
|
+ // 审批流
|
|
|
|
+ auditFlow: this.approveForm.businessDesc,
|
|
|
|
+ // 业务id 报价id
|
|
|
|
+ businessId: this.approveForm.id,
|
|
|
|
+ // 审批结果
|
|
|
|
+ status: 30,
|
|
|
|
+ // 备注
|
|
|
|
+ remark: this.approveForm.approveRemark,
|
|
|
|
+ // 业务参数
|
|
|
|
+ businessObj: bargainObj
|
|
|
|
+ }
|
|
|
|
+ const response = await audit(auditForm)
|
|
|
|
+ if(response && response.code == 200){
|
|
|
|
+ const res = await updateContract({...this.approveForm})
|
|
|
|
+ if(res && res.code == 200){
|
|
|
|
+ this.$message.success(this.$t('common.operateSuccess'))
|
|
|
|
+ this.approveOpen = false
|
|
|
|
+ }else{
|
|
|
|
+ this.$message.error("操作失败")
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.approveOpen = false
|
|
|
|
+ this.$tab.closeOpenPage({path: "/contract/contract"});
|
|
|
|
+
|
|
|
|
+ },
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
@@ -1675,5 +1786,8 @@ export default {
|
|
white-space: nowrap;
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+::v-deep .account-form .el-form-item--medium .el-form-item__label {
|
|
|
|
+ line-height: 10px;
|
|
|
|
+}
|
|
|
|
|
|
</style>
|
|
</style>
|