|
@@ -1,5 +1,5 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <div class="group-progress">
|
|
|
|
|
|
|
+ <div class="group-progress" v-loading="progressloading">
|
|
|
<div class="progress-hade">
|
|
<div class="progress-hade">
|
|
|
<el-form style="display: flex;justify-content: space-between;align-items: center;" :inline="true" :model="formInline" class="demo-form-inline">
|
|
<el-form style="display: flex;justify-content: space-between;align-items: center;" :inline="true" :model="formInline" class="demo-form-inline">
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
@@ -33,7 +33,7 @@
|
|
|
<span style="font-size: 18px; font-weight: bold;">商邀报批流程</span>
|
|
<span style="font-size: 18px; font-weight: bold;">商邀报批流程</span>
|
|
|
</template>
|
|
</template>
|
|
|
<div class="process-diagram">
|
|
<div class="process-diagram">
|
|
|
- <div slot="reference" @mouseenter="item.nodeName=='报批资料准备'?visible = true:''" @mouseleave="visible = false" :class="item.statusText=='已完成'?'process-diagram-lis':'process-diagram-li'" v-for="(item,index) in activities" :key="index">
|
|
|
|
|
|
|
+ <div slot="reference" @click="confirmclick(item,'商邀')" @mouseenter="item.nodeName=='报批资料准备'?visible = true:''" @mouseleave="visible = false" :class="item.statusText=='已完成'?'process-diagram-lis':'process-diagram-li'" v-for="(item,index) in activities" :key="index">
|
|
|
<el-popover
|
|
<el-popover
|
|
|
v-if="item.nodeName=='报批资料准备'"
|
|
v-if="item.nodeName=='报批资料准备'"
|
|
|
placement="top"
|
|
placement="top"
|
|
@@ -52,7 +52,12 @@
|
|
|
</el-collapse-item>
|
|
</el-collapse-item>
|
|
|
<el-collapse-item name="2">
|
|
<el-collapse-item name="2">
|
|
|
<template #title>
|
|
<template #title>
|
|
|
- <span style="font-size: 18px; font-weight: bold;">签证流程</span>
|
|
|
|
|
|
|
+ <div style="display: inline-block;width: 100%;">
|
|
|
|
|
+ <div style="display: flex;justify-content: space-between;align-items: center;">
|
|
|
|
|
+ <span style="font-size: 18px; font-weight: bold;">签证流程</span>
|
|
|
|
|
+ <el-button @click.stop="Visaclick('签证')" style="margin-right: 20px;" size="mini" type="primary">签证流程保存</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
</template>
|
|
</template>
|
|
|
<div class="progress-table">
|
|
<div class="progress-table">
|
|
|
<el-table :border="true" :header-cell-style="headerCellStyle" :data="tableData" style="width: 100%">
|
|
<el-table :border="true" :header-cell-style="headerCellStyle" :data="tableData" style="width: 100%">
|
|
@@ -125,13 +130,13 @@
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
<el-table-column label="操作" width="100">
|
|
<el-table-column label="操作" width="100">
|
|
|
- <template>
|
|
|
|
|
- <el-button style="margin-top: 10px;" size="mini" type="danger">删除</el-button>
|
|
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <el-button style="margin-top: 10px;" size="mini" @click.native.prevent="deleteRow(scope.$index, tableData,'签证')" type="danger">删除</el-button>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
<div style="margin-top: 10px; text-align: center;">
|
|
<div style="margin-top: 10px; text-align: center;">
|
|
|
- <el-button @click="addRow" size="mini" type="primary">添加一行</el-button>
|
|
|
|
|
|
|
+ <el-button @click="addRow('签证')" size="mini" type="primary">添加一行</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</el-collapse-item>
|
|
</el-collapse-item>
|
|
@@ -140,7 +145,7 @@
|
|
|
<span style="font-size: 18px; font-weight: bold;">机票流程</span>
|
|
<span style="font-size: 18px; font-weight: bold;">机票流程</span>
|
|
|
</template>
|
|
</template>
|
|
|
<div class="process-diagram">
|
|
<div class="process-diagram">
|
|
|
- <div :class="item.statusText=='已完成'?'process-diagram-twos':'process-diagram-two'" v-for="(item,index) in activitiesAir" :key="index">
|
|
|
|
|
|
|
+ <div @click="confirmclick(item,'机票')" :class="item.statusText=='已完成'?'process-diagram-twos':'process-diagram-two'" v-for="(item,index) in activitiesAir" :key="index">
|
|
|
<div style="font-weight: 600;font-size: 15px;">{{item.nodeName}}</div>
|
|
<div style="font-weight: 600;font-size: 15px;">{{item.nodeName}}</div>
|
|
|
<div>{{item.statusText}}</div>
|
|
<div>{{item.statusText}}</div>
|
|
|
<div>{{item.operator}}</div>
|
|
<div>{{item.operator}}</div>
|
|
@@ -153,7 +158,7 @@
|
|
|
<span style="font-size: 18px; font-weight: bold;">酒店流程</span>
|
|
<span style="font-size: 18px; font-weight: bold;">酒店流程</span>
|
|
|
</template>
|
|
</template>
|
|
|
<div class="process-diagram">
|
|
<div class="process-diagram">
|
|
|
- <div :class="item.statusText=='已完成'?'process-diagram-twos':'process-diagram-two'" v-for="(item,index) in activitiesHotel" :key="index">
|
|
|
|
|
|
|
+ <div @click="confirmclick(item,'酒店')" :class="item.statusText=='已完成'?'process-diagram-twos':'process-diagram-two'" v-for="(item,index) in activitiesHotel" :key="index">
|
|
|
<div style="font-weight: 600;font-size: 15px;">{{item.nodeName}}</div>
|
|
<div style="font-weight: 600;font-size: 15px;">{{item.nodeName}}</div>
|
|
|
<div>{{item.statusText}}</div>
|
|
<div>{{item.statusText}}</div>
|
|
|
<div>{{item.operator}}</div>
|
|
<div>{{item.operator}}</div>
|
|
@@ -166,7 +171,7 @@
|
|
|
<span style="font-size: 18px; font-weight: bold;">地接流程</span>
|
|
<span style="font-size: 18px; font-weight: bold;">地接流程</span>
|
|
|
</template>
|
|
</template>
|
|
|
<div class="process-diagram">
|
|
<div class="process-diagram">
|
|
|
- <div :class="item.statusText=='已完成'?'process-diagram-sans':'process-diagram-san'" v-for="(item,index) in activitiesGuide" :key="index">
|
|
|
|
|
|
|
+ <div @click="confirmclick(item,'OP')" :class="item.statusText=='已完成'?'process-diagram-sans':'process-diagram-san'" v-for="(item,index) in activitiesGuide" :key="index">
|
|
|
<div style="font-weight: 600;font-size: 15px;">{{item.nodeName}}</div>
|
|
<div style="font-weight: 600;font-size: 15px;">{{item.nodeName}}</div>
|
|
|
<div>{{item.statusText}}</div>
|
|
<div>{{item.statusText}}</div>
|
|
|
<div>{{item.operator}}</div>
|
|
<div>{{item.operator}}</div>
|
|
@@ -216,6 +221,9 @@ export default {
|
|
|
},
|
|
},
|
|
|
token:'',
|
|
token:'',
|
|
|
userId:'',
|
|
userId:'',
|
|
|
|
|
+ progressloading:false,
|
|
|
|
|
+ jobName:'',
|
|
|
|
|
+ visaclickid:'',
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
@@ -238,6 +246,8 @@ export default {
|
|
|
},
|
|
},
|
|
|
//获取团组id
|
|
//获取团组id
|
|
|
GetGroupNameList(){
|
|
GetGroupNameList(){
|
|
|
|
|
+ this.progressloading=true;
|
|
|
|
|
+ this.AuditStatus=[];
|
|
|
var url = "/api/Business/GetGroupNameList"
|
|
var url = "/api/Business/GetGroupNameList"
|
|
|
var that = this
|
|
var that = this
|
|
|
this.$axios({
|
|
this.$axios({
|
|
@@ -258,6 +268,7 @@ export default {
|
|
|
}
|
|
}
|
|
|
that.PostShareGroupInfo();
|
|
that.PostShareGroupInfo();
|
|
|
}else{
|
|
}else{
|
|
|
|
|
+ that.progressloading=false;
|
|
|
that.$message.error(res.data.msg);
|
|
that.$message.error(res.data.msg);
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
@@ -288,6 +299,7 @@ export default {
|
|
|
that.GroupProcessDetails();
|
|
that.GroupProcessDetails();
|
|
|
}else{
|
|
}else{
|
|
|
that.$message.error('获取数据源失败!');
|
|
that.$message.error('获取数据源失败!');
|
|
|
|
|
+ that.progressloading=false;
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
@@ -322,8 +334,10 @@ export default {
|
|
|
}
|
|
}
|
|
|
if (res.data.data[i].processName == '签证') {
|
|
if (res.data.data[i].processName == '签证') {
|
|
|
that.tableData=res.data.data[i].nodes[0].visaSubNodes;
|
|
that.tableData=res.data.data[i].nodes[0].visaSubNodes;
|
|
|
|
|
+ that.visaclickid=res.data.data[i].nodes[0].id;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ that.progressloading=false;
|
|
|
} else {
|
|
} else {
|
|
|
that.activitiesCost=[];
|
|
that.activitiesCost=[];
|
|
|
that.activitiesGuide=[];
|
|
that.activitiesGuide=[];
|
|
@@ -332,11 +346,19 @@ export default {
|
|
|
that.activities=[];
|
|
that.activities=[];
|
|
|
that.tableData=[];
|
|
that.tableData=[];
|
|
|
that.$message.error(res.data.msg);
|
|
that.$message.error(res.data.msg);
|
|
|
|
|
+ that.progressloading=false;
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
//签证添加一行
|
|
//签证添加一行
|
|
|
- addRow() {
|
|
|
|
|
|
|
+ addRow(text) {
|
|
|
|
|
+ if (text!=this.jobName) {
|
|
|
|
|
+ this.$message({
|
|
|
|
|
+ message: '该流程不在此账号的操作权限内!如有疑问联系该流程负责人!',
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ });
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
this.tableData.push({
|
|
this.tableData.push({
|
|
|
countryName: '',
|
|
countryName: '',
|
|
|
nodeName1: '收集资料',
|
|
nodeName1: '收集资料',
|
|
@@ -360,10 +382,108 @@ export default {
|
|
|
returner: ''
|
|
returner: ''
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
|
|
+ //签证删除一行
|
|
|
|
|
+ deleteRow(index, rows,text) {
|
|
|
|
|
+ if (text!=this.jobName) {
|
|
|
|
|
+ this.$message({
|
|
|
|
|
+ message: '该流程不在此账号的操作权限内!如有疑问联系该流程负责人!',
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ });
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ this.$confirm('此操作将该数据移除并未保存,需要更新数据请点击本流程保存按钮, 是否继续?', '提示', {
|
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ }).then(() => {
|
|
|
|
|
+ rows.splice(index, 1);
|
|
|
|
|
+ }).catch(() => {
|
|
|
|
|
+ this.$message({
|
|
|
|
|
+ type: 'info',
|
|
|
|
|
+ message: '操作已取消!'
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+ //点击确认
|
|
|
|
|
+ confirmclick(item,text){
|
|
|
|
|
+ if (text!=this.jobName) {
|
|
|
|
|
+ this.$message({
|
|
|
|
|
+ message: '该流程不在此账号的操作权限内!如有疑问联系该流程负责人!',
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ });
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ this.progressloading=true;
|
|
|
|
|
+ var url = "/api/Groups/GroupProcessUpdateNodeStatus"
|
|
|
|
|
+ var that = this
|
|
|
|
|
+ this.$axios({
|
|
|
|
|
+ method: 'post',
|
|
|
|
|
+ url: url,
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ Authorization: 'Bearer '
|
|
|
|
|
+ },
|
|
|
|
|
+ data:{
|
|
|
|
|
+ nodeId:item.id,
|
|
|
|
|
+ currUserId: that.userId
|
|
|
|
|
+ }
|
|
|
|
|
+ }).then(function (res) {
|
|
|
|
|
+ console.log(res)
|
|
|
|
|
+ if(res.data.code==200){
|
|
|
|
|
+ that.$message({
|
|
|
|
|
+ type: 'success',
|
|
|
|
|
+ message: res.data.msg
|
|
|
|
|
+ });
|
|
|
|
|
+ that.GroupProcessDetails();
|
|
|
|
|
+ }else{
|
|
|
|
|
+ that.$message.error(res.data.msg);
|
|
|
|
|
+ that.progressloading=false;
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ //签证保存
|
|
|
|
|
+ Visaclick(text){
|
|
|
|
|
+ console.log(this.tableData);
|
|
|
|
|
+
|
|
|
|
|
+ if (text!=this.jobName) {
|
|
|
|
|
+ this.$message({
|
|
|
|
|
+ message: '该流程不在此账号的操作权限内!如有疑问联系该流程负责人!',
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ });
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ this.progressloading=true;
|
|
|
|
|
+ var url = "/api/Groups/GroupProcessUpdateVisaNodeDetails"
|
|
|
|
|
+ var that = this
|
|
|
|
|
+ this.$axios({
|
|
|
|
|
+ method: 'post',
|
|
|
|
|
+ url: url,
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ Authorization: 'Bearer '
|
|
|
|
|
+ },
|
|
|
|
|
+ data:{
|
|
|
|
|
+ nodeId:that.visaclickid,
|
|
|
|
|
+ currUserId:that.userId,
|
|
|
|
|
+ visaSubNodes:that.tableData,
|
|
|
|
|
+ }
|
|
|
|
|
+ }).then(function (res) {
|
|
|
|
|
+ if(res.data.code==200){
|
|
|
|
|
+ that.$message({
|
|
|
|
|
+ type: 'success',
|
|
|
|
|
+ message: res.data.msg
|
|
|
|
|
+ });
|
|
|
|
|
+ that.GroupProcessDetails();
|
|
|
|
|
+ }else{
|
|
|
|
|
+ that.$message.error(res.data.msg);
|
|
|
|
|
+ that.progressloading=false;
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
mounted(){
|
|
mounted(){
|
|
|
this.token = JSON.parse(localStorage.getItem('userinif')).token;
|
|
this.token = JSON.parse(localStorage.getItem('userinif')).token;
|
|
|
this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
|
|
this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
|
|
|
|
|
+ this.jobName = JSON.parse(localStorage.getItem('userinif')).userInfo.jobName;
|
|
|
this.GetGroupNameList();
|
|
this.GetGroupNameList();
|
|
|
// this.GroupProcessDetails();
|
|
// this.GroupProcessDetails();
|
|
|
}
|
|
}
|