You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
475 lines
17 KiB
475 lines
17 KiB
<template>
|
|
<div>
|
|
<!-- 标题按钮部分开始 -->
|
|
<div class="tab-header webtop">
|
|
<!-- 标题 -->
|
|
<div>外采申请表详情</div>
|
|
<!-- start 详情按钮 -->
|
|
<div>
|
|
<el-button type="primary" @click="openAgree">同 意</el-button>
|
|
<el-button type="danger" @click="openReject">驳 回</el-button>
|
|
<el-button type="danger" @click="openStop">终 止</el-button>
|
|
</div>
|
|
<!-- end 详情按钮 -->
|
|
</div>
|
|
<!-- 标题按钮部分结束 -->
|
|
<div>
|
|
<el-form ref="form_obj" :model="formobj" label-position="right" class="formadd" >
|
|
<el-row >
|
|
<el-col :span="3" class="tleftb" >申请编号</el-col>
|
|
<el-col :span="5" class="trightb"><el-form-item prop="applicationCode">
|
|
<span>{{ formobj.applicationCode }}</span></el-form-item></el-col>
|
|
<el-col :span="3" class="tleftb">申请人姓名</el-col>
|
|
<el-col :span="5" class="trightb"><el-form-item prop="createByName"><span>{{ formobj.createByName }}</span></el-form-item></el-col>
|
|
<el-col :span="3" class="tleftb">申请日期</el-col>
|
|
<el-col :span="5" class="trightb"><el-form-item prop="applicationDate"><span>{{ formobj.applicationDate }}</span></el-form-item></el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="3" class="tleftb">外采类型</el-col>
|
|
<el-col :span="21" class="trightb">
|
|
<el-form-item prop="externalMiningTypeValue">
|
|
<span v-show="formobj.externalMiningTypeKey==2">政策外采</span>
|
|
<span v-show="formobj.externalMiningTypeKey==1">直接外采</span>
|
|
</el-form-item></el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="3" class="tleftb">采购单位名称</el-col>
|
|
<el-col :span="21" class="trightb"><el-form-item prop="purchasingUnitName"><span>{{ formobj.purchasingUnitName }}</span></el-form-item></el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="3" class="tleftb">车型名称</el-col>
|
|
<el-col :span="21" class="trightb"><el-form-item prop="useOrg"><span>{{ formobj.modelName }}</span></el-form-item></el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="3" class="tleftb">常用配置名称</el-col>
|
|
<el-col :span="21" class="trightb"><el-form-item prop="useOrg"><span>{{ formobj.configName }}</span></el-form-item></el-col>
|
|
</el-row>
|
|
<el-row><el-col :span="3" class="tleftb">采购价格</el-col>
|
|
<el-col :span="9" class="trightb"><el-form-item prop="useOrg"><span>{{ formobj.purchasePrice }}</span></el-form-item></el-col>
|
|
|
|
<el-col :span="4" class="tleftb">销售指导价</el-col>
|
|
<el-col :span="8" class="trightb"><el-form-item prop="useOrg"><span>{{ formobj.guidedPrice }}</span></el-form-item></el-col>
|
|
</el-row>
|
|
<el-row> <el-col :span="3" class="tleftb">厂家合同价</el-col>
|
|
<el-col :span="9" class="trightb"><el-form-item prop="useOrg"><span>{{ formobj.manufactorSettlementPrice }}</span></el-form-item></el-col>
|
|
|
|
<el-col :span="4" class="tleftb">台数</el-col>
|
|
<el-col :span="8" class="trightb"><el-form-item prop="useOrg"><span>{{ formobj.num }}</span></el-form-item></el-col>
|
|
</el-row>
|
|
<el-row> <el-col :span="3" class="tleftb">订金</el-col>
|
|
<el-col :span="9" class="trightb"><el-form-item prop="useOrg"><span>{{ formobj.deposit }}</span></el-form-item></el-col>
|
|
|
|
<el-col :span="4" class="tleftb">费用名称</el-col>
|
|
<el-col :span="8" class="trightb"><el-form-item prop="useOrg"><span>{{ formobj.expenseName }}</span></el-form-item></el-col>
|
|
</el-row>
|
|
<el-row> <el-col :span="3" class="tleftb">费用金额合计</el-col>
|
|
<el-col :span="21" class="trightb"><el-form-item prop="useOrg"><span>{{ formobj.totalExpenseAmount }}</span></el-form-item></el-col>
|
|
</el-row>
|
|
<div class="listcon" v-show="formobj.externalMiningTypeKey==2">
|
|
<div style="border:1px solid #c0c0c0;padding:5px 5px 5px 5px;">
|
|
车辆列表
|
|
</div>
|
|
<el-table :data="formobj.baseOutsourcingApplicationVehicleDtos" border style="width: 100%" >‘
|
|
<el-table-column width="60px" label="序号" type="index" align="center" />
|
|
<el-table-column prop="vinNo" label="车架号" align="center" />
|
|
</el-table>
|
|
</div>
|
|
<span class="el-icon-picture-outline">流程图</span>
|
|
<flow :xmlData="xmlData" :taskData="taskList"></flow>
|
|
</el-form>
|
|
</div>
|
|
<!-- 选择待办人 的弹出框-->
|
|
<el-dialog title="选择待办人" :visible.sync="nodeDialogVisible" width="80%">
|
|
<el-form label-position="right" class="formadd" >
|
|
<el-row>
|
|
<el-col :span="4" class="tleftb">当前环节</el-col>
|
|
<el-col :span="20" class="trightb">
|
|
<el-form-item prop="purchasingUnitName"><span>{{ formobj.taskName }}->{{ nextNode.name }}</span></el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="4" class="tleftb">意见</el-col>
|
|
<el-col :span="20" class="trightb">
|
|
<el-input size="small" v-model="formobj.comment" placeholder="审批意见" class="addinputw" clearable ></el-input>
|
|
</el-col>
|
|
</el-row>
|
|
<div style="text-align:center;margin-top: 20px;">
|
|
<el-button type="primary" size="mini" @click="agree">确 定</el-button>
|
|
<el-button type="info " size="mini" @click="closeNodeDialog">取 消</el-button>
|
|
</div>
|
|
</el-form>
|
|
</el-dialog>
|
|
<!-- 选择待办人 的弹出框-->
|
|
<el-dialog title="选择待办人" :visible.sync="nodeDialogVisibleForReject" width="80%">
|
|
<el-form label-position="right" class="formadd" >
|
|
<el-row>
|
|
<el-col :span="4" class="tleftb">当前环节</el-col>
|
|
<el-col :span="20" class="trightb">
|
|
<el-form-item prop="purchasingUnitName"><span>{{ formobj.taskName }}->{{ nextNode.name }}</span></el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="4" class="tleftb">意见</el-col>
|
|
<el-col :span="20" class="trightb">
|
|
<el-input size="small" v-model="formobj.comment" placeholder="审批意见" class="addinputw" clearable ></el-input>
|
|
</el-col>
|
|
</el-row>
|
|
<div style="text-align:center;margin-top: 20px;">
|
|
<el-button type="primary" size="mini" @click="agree">确 定</el-button>
|
|
<el-button type="info " size="mini" @click="closeNodeDialog">取 消</el-button>
|
|
</div>
|
|
</el-form>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import flow from '@/views/baseoutsourcingapplication/workflow/flow'
|
|
import req from '@/api/baseoutsourcingapplication/baseoutsourcingapplication'
|
|
export default {
|
|
name: 'BaseOutsourcingApplicationInfo',
|
|
components: {
|
|
flow
|
|
},
|
|
data() {
|
|
return {
|
|
//角色sid
|
|
roleSid:"",
|
|
//选择待办人弹框
|
|
nodeDialogVisible:false,
|
|
nodeDialogVisibleForReject:false,
|
|
//选择用户弹框
|
|
nodeUserDialogVisible:false,
|
|
// 模型xml数据
|
|
xmlData: "",
|
|
//根据角色查询的用户数组
|
|
users:[],
|
|
//选择的用户的姓名
|
|
userName:'',
|
|
//选择的用户sid
|
|
userSid:'',
|
|
taskList: [],
|
|
//获取环节时默认是最后一个环节
|
|
endTask:true,
|
|
startTask:true,
|
|
//下一环节
|
|
nextNode:{},
|
|
formobj: {
|
|
sid: '',
|
|
comment:'',
|
|
applicationCode: '123456', // 申请编号
|
|
createByName: window.sessionStorage.getItem('name'), // 申请人姓名
|
|
applicationDate: '', // 申请日期
|
|
externalMiningTypeKey: '1', // 外采类型key
|
|
externalMiningTypeValue: '', // 外采类型value
|
|
purchasingUnitName: '', // 采购单位名称
|
|
modelSid: '', // 车型sid
|
|
modelName: '', // 车型名称
|
|
configName: '', // 常用配置名称
|
|
configSid: '', // 常用配置sid
|
|
purchasePrice: '', // 采购价格
|
|
guidedPrice: '', // 销售指导价
|
|
manufactorSettlementPrice: '', // 厂家合同价
|
|
num: '0', // 台数
|
|
deposit: '', // 订金
|
|
expenseName: '', // 费用名称
|
|
totalExpenseAmount: '', // 费用金额合计
|
|
orgSid: '', // 部门sid
|
|
orgSidPath: window.sessionStorage.getItem('orgSidPath'),
|
|
baseOutsourcingApplicationVehicleDtos:[],
|
|
businessSid: '',//同意办理列表
|
|
instanceId: '',
|
|
taskId: '',
|
|
taskDefKey: '',
|
|
taskName: '',
|
|
nextNodeSid:'',
|
|
nextUserSid:'',
|
|
userSid: window.sessionStorage.getItem('userSid')
|
|
},
|
|
regectList: { // 驳回列表
|
|
businessSid: '',
|
|
comment: '',
|
|
instanceId: '',
|
|
taskId: '',
|
|
userSid: window.sessionStorage.getItem('userSid')
|
|
},
|
|
stopList: { // 终止列表
|
|
businessSid: '',
|
|
comment: '',
|
|
instanceId: '',
|
|
taskId: '',
|
|
userSid: window.sessionStorage.getItem('userSid')
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
// ===获取sid
|
|
var a = window.location.href.indexOf('?') + 1 // 第一个?后面的一个字符的位置
|
|
var b = window.location.href.indexOf('#data') // 第一个#data出现的位置
|
|
const info = window.location.href.slice(a, b)
|
|
var sid = info.substr(info.indexOf('=') + 1)
|
|
this.showInfo(sid)
|
|
// ===获取参数
|
|
var one = window.location.href.lastIndexOf('#') + 1
|
|
var two = window.location.href.lastIndexOf('}') + 1
|
|
const data = decodeURI(window.location.href.slice(one, two)) // url解码unescape()已从web中移除,尽量不使用
|
|
var tar = data.substr(data.indexOf('=') + 1)
|
|
const obj = JSON.parse(tar)
|
|
// 同意列表 父级页面传递过来的流程的相关的属性参数
|
|
this.formobj.businessSid = sid
|
|
this.formobj.instanceId = obj.instanceId
|
|
this.formobj.taskId = obj.taskId
|
|
this.formobj.taskDefKey = obj.taskDefKey
|
|
this.formobj.taskName = obj.taskName
|
|
// 驳回列表
|
|
this.regectList.businessSid = sid
|
|
this.regectList.instanceId = obj.instanceId
|
|
this.regectList.taskId = obj.taskId
|
|
// 终止列表
|
|
this.stopList.businessSid = sid
|
|
this.stopList.instanceId = obj.instanceId
|
|
this.stopList.taskId = obj.taskId
|
|
//加载流程图相关的数据
|
|
this.getModelDetail(obj.deployId)
|
|
this.getFlowViewer(obj.instanceId)
|
|
window.parent.postMessage({
|
|
cmd: 'returnHeight',
|
|
params: {
|
|
//告诉父级页面,子页面的弹框高度。
|
|
code: 2,
|
|
data: 1500 + 'px'
|
|
}
|
|
}, '*')
|
|
},
|
|
methods: {
|
|
//关闭弹出框 选择待办人弹框
|
|
closeNodeDialog(){
|
|
this.nodeDialogVisible = false
|
|
this.nodeDialogVisibleForReject=false
|
|
},
|
|
//根据环节上配置的角色查询用户
|
|
selectUser() {
|
|
this.nodeUserDialogVisible=true
|
|
req.getUsers(this.nextNode.candidateGroups[0]).then(res => {
|
|
var users = res.data
|
|
var sid="";
|
|
for(var i=0;i<users.length;i++){
|
|
sid=sid+users[i].sid+",";
|
|
}
|
|
sid=sid.substr(0,str.length - 1)
|
|
this.userSid = sid
|
|
})
|
|
},
|
|
//选中下一环节的用户
|
|
checkedUser(val) {
|
|
this.userName = val.name
|
|
this.userSid = val.sid
|
|
this.nodeUserDialogVisible = false
|
|
},
|
|
/** xml 文件 */
|
|
getModelDetail(deployId) {
|
|
// 发送请求,获取xml
|
|
req.readXml(deployId).then(res =>{
|
|
this.xmlData = res.data
|
|
})
|
|
},
|
|
//已办环节的节点
|
|
getFlowViewer(procInsId){
|
|
req.getFlowViewer(procInsId).then(res =>{
|
|
this.taskList = res.data
|
|
})
|
|
},
|
|
// 终止
|
|
openStop() {
|
|
this.$confirm('是否确认执行终止操作', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
})
|
|
.then(() => {
|
|
this.handleStop()
|
|
})
|
|
.catch(() => {
|
|
this.$message({
|
|
type: 'info',
|
|
message: '已取消终止'
|
|
})
|
|
})
|
|
},
|
|
// 驳回
|
|
openReject() {
|
|
req.getPreviousNodesForReject(this.formobj).then(resp=>{
|
|
if (resp.success) {
|
|
var arr= resp.data;
|
|
//循环获取当前环节的下一个环节信息
|
|
var startTask=arr[0].startTask;
|
|
if(startTask){
|
|
alert('当前环节不能驳回!');
|
|
}
|
|
this.nextNode=startTask
|
|
this.nodeDialogVisibleForReject = true
|
|
}
|
|
});
|
|
},
|
|
// 同意
|
|
openAgree() {
|
|
//查验下一环节要用到,流程定义的id
|
|
req.getNextNodesForSubmit(this.formobj).then(resp=>{
|
|
if (resp.success) {
|
|
var arr= resp.data;
|
|
this.nextNode=arr[0]
|
|
this.nodeDialogVisible = true
|
|
}
|
|
this.submitdisabled = false
|
|
});
|
|
|
|
},
|
|
handleReturn() {
|
|
this.$emit('doback')
|
|
},
|
|
showInfo(sid) {
|
|
this.$nextTick(() => {
|
|
this.$refs['form_obj'].clearValidate()
|
|
})
|
|
const _this = this
|
|
req
|
|
.fetchBySid(sid)
|
|
.then(resp => {
|
|
if (resp.success) {
|
|
const vdata = resp.data
|
|
_this.formobj.applicationCode = vdata.applicationCode // 申请编号
|
|
_this.formobj.createByName = vdata.createByName // 申请人姓名
|
|
_this.formobj.applicationDate = vdata.applicationDate // 申请日期
|
|
_this.formobj.externalMiningTypeKey = vdata.externalMiningTypeKey // 外采类型key
|
|
_this.formobj.externalMiningTypeValue = vdata.externalMiningTypeValue // 外采类型value
|
|
_this.formobj.purchasingUnitSid = vdata.purchasingUnitSid // 采购单位sid
|
|
_this.formobj.purchasingUnitName = vdata.purchasingUnitName // 采购单位名称
|
|
_this.formobj.modelSid = vdata.modelSid // 车型sid
|
|
_this.formobj.modelName = vdata.modelName // 车型名称
|
|
_this.formobj.configName = vdata.configName // 常用配置名称
|
|
_this.formobj.purchasePrice = vdata.purchasePrice // 采购价格
|
|
_this.formobj.guidedPrice = vdata.guidedPrice // 销售指导价
|
|
_this.formobj.manufactorSettlementPrice = vdata.manufactorSettlementPrice // 厂家合同价
|
|
_this.formobj.num = vdata.num // 台数
|
|
_this.formobj.deposit = vdata.deposit // 订金
|
|
_this.formobj.expenseName = vdata.expenseName // 费用名称
|
|
_this.formobj.totalExpenseAmount = vdata.totalExpenseAmount // 费用金额合计
|
|
_this.formobj.orgSid = vdata.orgSid // 部门sid
|
|
_this.formobj.baseOutsourcingApplicationVehicleDtos = vdata.baseOutsourcingApplicationVehicleVos
|
|
}
|
|
})
|
|
.catch(e => {
|
|
_this.formobj = {}
|
|
})
|
|
},
|
|
reject(){
|
|
if(this.formobj.comment==''){
|
|
alert('请填写审批意见!');
|
|
}
|
|
this.handleReject();
|
|
},
|
|
//同意任务
|
|
agree() {
|
|
if(this.formobj.comment==''){
|
|
alert('请填写审批意见!');
|
|
}
|
|
//意见
|
|
//下一环节的用户sid
|
|
//调用后台接口流转
|
|
req.agreeTask(this.formobj).then((response) => {
|
|
if (response.code === '200') {
|
|
this.nodeDialogVisible=false;
|
|
//子页面向父级页面传递值
|
|
window.parent.postMessage({
|
|
cmd: 'returnHeight',
|
|
params: {
|
|
//操作成功,告诉父级页面关闭弹框
|
|
code: 1
|
|
}
|
|
}, '*')
|
|
} else {
|
|
this.$notify({
|
|
title: '提示',
|
|
message: '执行失败',
|
|
type: 'error',
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
},
|
|
/** 驳回任务 */
|
|
handleReject() {
|
|
this.regectList.comment = this.formobj.comment
|
|
req.rejectTask(this.regectList).then((response) => {
|
|
if (response.code === '200') {
|
|
this.$notify({
|
|
title: '提示',
|
|
message: '执行成功',
|
|
type: 'success',
|
|
duration: 2000
|
|
})
|
|
this.nodeDialogVisible=false;
|
|
window.parent.postMessage({
|
|
cmd: 'returnHeight',
|
|
params: {
|
|
code: 1
|
|
}
|
|
}, '*')
|
|
// this.refreshIt()
|
|
} else {
|
|
this.$notify({
|
|
title: '提示',
|
|
message: '执行失败',
|
|
type: 'error',
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
} ,
|
|
/** 终止任务 */
|
|
handleStop() {
|
|
this.stopList.comment = this.comment
|
|
req.breakTask(this.stopList).then((response) => {
|
|
if (response.code === '200') {
|
|
this.$notify({
|
|
title: '提示',
|
|
message: '执行成功',
|
|
type: 'success',
|
|
duration: 2000
|
|
})
|
|
this.nodeDialogVisible=false;
|
|
window.parent.postMessage({
|
|
cmd: 'returnHeight',
|
|
params: {
|
|
code: 1,
|
|
data: document.body.scrollHeight + 'px'
|
|
}
|
|
}, '*')
|
|
// this.refreshIt()
|
|
} else {
|
|
this.$notify({
|
|
title: '提示',
|
|
message: '执行失败',
|
|
type: 'error',
|
|
duration: 2000
|
|
})
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.tleftb{
|
|
font-size: 12px;
|
|
}
|
|
.trightb{
|
|
font-size: 12px;
|
|
}
|
|
|
|
.box-card {
|
|
width: 100%;
|
|
margin-bottom: 20px;
|
|
}
|
|
</style>
|
|
|