Commit 4ca22c56 authored by youjie's avatar youjie
parents 55bfa3eb 9da31480
...@@ -65,18 +65,19 @@ ...@@ -65,18 +65,19 @@
text-align: center; text-align: center;
margin: 10px; margin: 10px;
} }
.PassengerList .disClick {
.PassengerList .disClick {
background-color: #d1d1d1; background-color: #d1d1d1;
color: #fff; color: #fff;
border: 1px solid #d1d1d1; border: 1px solid #d1d1d1;
} }
.PassengerList .disClick:hover {
.PassengerList .disClick:hover {
background-color: #d1d1d1 !important; background-color: #d1d1d1 !important;
cursor: default !important; cursor: default !important;
box-shadow: none !important; box-shadow: none !important;
} }
</style> </style>
<template> <template>
...@@ -99,8 +100,7 @@ ...@@ -99,8 +100,7 @@
</table> </table>
</li> </li>
<li> <li>
<!-- <input type="button" class="normalBtn" v-if="!allDIs" value="分房表确认" @click="querenHotel(2)"> --> <input type="button" class="normalBtn" v-if="allDIs" value="取消分房表确认" @click="querenHotel(0)">
<input type="button" class="normalBtn" v-if="allDIs" value="取消分房表确认" @click="querenHotel(0)">
<input type="button" class="normalBtn" value="分房表下载" @click="exportExcel_singleRoom()"> <input type="button" class="normalBtn" value="分房表下载" @click="exportExcel_singleRoom()">
<input type="button" class="normalBtn" value="旅客名单下载" @click="exportExcel()"> <input type="button" class="normalBtn" value="旅客名单下载" @click="exportExcel()">
</li> </li>
...@@ -148,12 +148,8 @@ ...@@ -148,12 +148,8 @@
</el-select> </el-select>
</td> </td>
<td> <td>
<!-- <el-select v-model="subItem.HouseType" placeholder="请选择" @change="changeRmType(subItem, subIndex)" v-if="subItem.IsLeaderOrder==1"> <el-select v-model="subItem.HouseType" placeholder="请选择"
<el-option :disabled="(subItem.HouseType == 1 && IsLeaderGuide == 1) || allDIs" @change="changeRmType1(subItem, subIndex,subItem.HouseType)" v-if="subItem.IsLeaderOrder==1">
v-for="(hs, hsIndex) in HouseTypeList" :key="hsIndex" :label="hs.HouseName" :value="hs.HouseType">
</el-option>
</el-select> -->
<el-select v-model="subItem.HouseType" placeholder="请选择" @change="changeRmType1(subItem, subIndex,subItem.HouseType)" v-if="subItem.IsLeaderOrder==1">
<el-option :disabled="(hs.disabled && IsLeaderGuide == 1) || allDIs" <el-option :disabled="(hs.disabled && IsLeaderGuide == 1) || allDIs"
v-for="(hs, hsIndex) in HouseTypeList" :key="hsIndex" :label="hs.HouseName" :value="hs.HouseType"> v-for="(hs, hsIndex) in HouseTypeList" :key="hsIndex" :label="hs.HouseName" :value="hs.HouseType">
</el-option> </el-option>
...@@ -189,7 +185,8 @@ ...@@ -189,7 +185,8 @@
</tr> </tr>
<tr v-if="!allDIs" style="height:50px; line-height:50px;"> <tr v-if="!allDIs" style="height:50px; line-height:50px;">
<td style="text-align:right" colspan="23"> <td style="text-align:right" colspan="23">
<input type="button" value="保存" :class="{'disClick':!isSubmit}" class="leader2Btn" @click="saveOPSetGuestHouse"> <input type="button" value="保存" :class="{'disClick':!isSubmit}" class="leader2Btn"
@click="saveOPSetGuestHouse">
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -260,12 +257,12 @@ ...@@ -260,12 +257,12 @@
houseList: [], houseList: [],
HouseTypeList: [], HouseTypeList: [],
//领队才能选数据 //领队才能选数据
LeaderHouseList:[], LeaderHouseList: [],
numberList: [], numberList: [],
dataList: [], dataList: [],
otherList: [], //单机票和自由行列表 otherList: [], //单机票和自由行列表
//只有两个项、 //只有两个项、
twoList:[], twoList: [],
allDIs: false, allDIs: false,
//验证重复提交 //验证重复提交
isSubmit: true, isSubmit: true,
...@@ -277,7 +274,7 @@ ...@@ -277,7 +274,7 @@
this.apipost( this.apipost(
"travel_get_UpdateOpSureHouse", { "travel_get_UpdateOpSureHouse", {
TCID: this.TCID, TCID: this.TCID,
OpSureHouse:OpSureHouse OpSureHouse: OpSureHouse
}, },
res => { res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
...@@ -291,11 +288,11 @@ ...@@ -291,11 +288,11 @@
); );
}, },
// 修改类型1 // 修改类型1
changeRmType1: function (obj, index,type) { changeRmType1: function (obj, index, type) {
if(type==1||type==6){ if (type == 1 || type == 6) {
this.HouseTypeList.forEach((x,index)=>{ this.HouseTypeList.forEach((x, index) => {
if(index!=0&&index!=5){ if (index != 0 && index != 5) {
x.disabled=true x.disabled = true
} }
}) })
} }
...@@ -309,7 +306,6 @@ ...@@ -309,7 +306,6 @@
list = list.sort(this.compare) list = list.sort(this.compare)
this.dataList = list; this.dataList = list;
}, },
// 修改类型 // 修改类型
changeRmType: function (obj, index) { changeRmType: function (obj, index) {
let list = this.dataList; let list = this.dataList;
...@@ -387,26 +383,6 @@ ...@@ -387,26 +383,6 @@
} }
return str; return str;
}, },
//获取房间类型
getHouseTypeStr(HouseType) {
var str = "";
if (HouseType == 1) {
str = "自然单间";
} else if (HouseType == 2) {
str = "标准双人间";
} else if (HouseType == 3) {
str = "大床房";
} else if (HouseType == 4) {
str = "三人间";
} else if (HouseType == 5) {
str = "拼凑双人间";
}else if (HouseType == 6) {
str = "司导间";
} else {
str = "未分配";
}
return str;
},
getHouseTypeList: function () { getHouseTypeList: function () {
this.apipost( this.apipost(
"travel_get_GetHouseType", "travel_get_GetHouseType",
...@@ -415,14 +391,14 @@ ...@@ -415,14 +391,14 @@
this.QueryMsg.loading = false; this.QueryMsg.loading = false;
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.HouseTypeList = res.data.data; this.HouseTypeList = res.data.data;
this.LeaderHouseList=[]; this.LeaderHouseList = [];
this.twoList=[]; this.twoList = [];
this.HouseTypeList.forEach(x=>{ this.HouseTypeList.forEach(x => {
x.disabled=false; x.disabled = false;
if(x.HouseType!=6){ if (x.HouseType != 6) {
this.LeaderHouseList.push(x) this.LeaderHouseList.push(x)
} }
if(x.HouseType==1||x.HouseType==6){ if (x.HouseType == 1 || x.HouseType == 6) {
this.twoList.push(x); this.twoList.push(x);
} }
}) })
...@@ -431,30 +407,6 @@ ...@@ -431,30 +407,6 @@
err => {} err => {}
); );
}, },
setDataList: function (list) {
var Diningmap = {},
Diningdest = [];
for (var i = 0; i < list.length; i++) {
var ai = list[i];
if (!Diningmap[ai.HouseNo]) {
Diningdest.push({
HouseType: ai.HouseType,
HouseNo: ai.HouseNo,
data: [ai]
});
Diningmap[ai.HouseNo] = ai;
} else {
for (var j = 0; j < Diningdest.length; j++) {
var dj = Diningdest[j];
if (dj.HouseType == ai.HouseType && dj.HouseNo == ai.HouseNo) {
dj.data.push(ai);
break;
}
}
}
}
this.QueryMsg.dataList = Diningdest;
},
//获取数据 //获取数据
getList() { getList() {
this.QueryMsg.loading = true; this.QueryMsg.loading = true;
...@@ -513,27 +465,26 @@ ...@@ -513,27 +465,26 @@
TCID: this.msg.TCID, TCID: this.msg.TCID,
isGetTicket: 1, //不查询机票 isGetTicket: 1, //不查询机票
isGetZiYouXing: 0, //查询自由行 isGetZiYouXing: 0, //查询自由行
isOnlyFenFang:1,//只查询已分房的 isOnlyFenFang: 1, //只查询已分房的
}; };
var fileName = "旅客名单.xls"; var fileName = "旅客名单.xls";
if (this.QueryMsg.TeamInfoData != null) { if (this.QueryMsg.TeamInfoData != null) {
fileName = fileName =
"【" + this.QueryMsg.TeamInfoData[0].TCNUM + "】分房表["+this.getCurrentTime()+"].xls"; "【" + this.QueryMsg.TeamInfoData[0].TCNUM + "】分房表[" + this.getCurrentTime() + "].xls";
} }
this.GetLocalFile("travel_get_GetTravelRoomExport", msg, fileName, res => { this.GetLocalFile("travel_get_GetTravelRoomExport", msg, fileName, res => {
this.QueryMsg.loading = false; this.QueryMsg.loading = false;
}); });
}, },
getCurrentTime() getCurrentTime() {
{
var date = new Date(); var date = new Date();
var year = date.getFullYear(); var year = date.getFullYear();
var month = date.getMonth()+1; var month = date.getMonth() + 1;
var day = date.getDate(); var day = date.getDate();
var hour = date.getHours(); var hour = date.getHours();
var minute = date.getMinutes(); var minute = date.getMinutes();
var second = date.getSeconds(); var second = date.getSeconds();
return year+'_'+month+'_'+day+'_'+hour+'_'+minute+'_'+second; return year + '_' + month + '_' + day + '_' + hour + '_' + minute + '_' + second;
}, },
//获取团期信息 //获取团期信息
getTeamInfo() { getTeamInfo() {
......
<template> <template>
<div class="flexOne"> <div class="flexOne">
<div :class="{approval_page_layer:showlayer}" @click="closeLayer"> <div :class="{approval_page_layer:showlayer}" @click="closeLayer">
<div :class="{approval_person_set:true,approval_person_set_right:isTransition}" @click.stop> <div :class="{approval_person_set:true,approval_person_set_right:isTransition}" @click.stop>
<p class="setTitle">审批人设置</p> <p class="setTitle">审批人设置</p>
<div class="approval_person_layerContent"> <div class="approval_person_layerContent">
<div class="approval_page_title">审批人类别</div> <div class="approval_page_title">审批人类别</div>
<p style="padding-left: 20px;"> <p style="padding-left: 20px;">
<el-radio-group v-model="approvalType" @change='clearValue'> <el-radio-group v-model="approvalType" @change='clearValue'>
<el-radio :label="1">主管</el-radio> <el-radio :label="1">主管</el-radio>
<el-radio :label="2">指定成员</el-radio> <el-radio :label="2">指定成员</el-radio>
<el-radio :label="3">岗位</el-radio> <el-radio :label="3">岗位</el-radio>
</el-radio-group> </el-radio-group>
</p> </p>
<div class="approval_layer_info" v-if="approvalType==1"> <div class="approval_layer_info" v-if="approvalType==1">
发起人的&nbsp; 发起人的&nbsp;
<el-select v-model='zgObj.RoleOrInitiator' @change="changeValue"> <el-select v-model='zgObj.RoleOrInitiator' @change="changeValue">
<el-option v-for='item in zgList' :label='item.label' :value='item.value' :key='item.value'> <el-option v-for='item in zgList' :label='item.label' :value='item.value' :key='item.value'>
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div class="approval_layer_info" v-if="approvalType==2"> <div class="approval_layer_info" v-if="approvalType==2">
<div class="normalMember"> <div class="normalMember">
<ul> <ul>
<li v-for="item in showMember">{{item.DepartmentName}}</li> <!-- @click="mySetCheckedKeys(item.DepartmentId)"--> <li v-for="item in showMember">{{item.DepartmentName}}</li>
</ul> </ul>
</div> </div>
<input type="button" class="normalBtn" @click="getMember(),mySetCheckedKeys(-1)" value="添加成员" /> <input type="button" class="normalBtn" @click="getMember(),mySetCheckedKeys(-1)" value="添加成员" />
<div style="margin: 10px 0;" v-if="showMember.length>1"> <div style="margin: 10px 0;" v-if="showMember.length>1">
<el-radio-group v-model="zgObj.AuditWay"> <el-radio-group v-model="zgObj.AuditWay">
<el-radio :label="2">会签(须所有审批人同意)</el-radio> <el-radio :label="2">会签(须所有审批人同意)</el-radio>
<el-radio :label="3">或签(一名审批人同意或拒绝即可)</el-radio> <el-radio :label="3">或签(一名审批人同意或拒绝即可)</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
</div> </div>
<div class="approval_layer_info" v-if="approvalType==3"> <div class="approval_layer_info" v-if="approvalType==3">
<div class="normalMember"> <div class="normalMember">
<ul> <ul>
<li v-for="item in showRole">{{item.DepartmentName}}</li> <!-- @click="deleteRole()--> <li v-for="item in showRole">{{item.DepartmentName}}</li> <!-- @click="deleteRole()-->
</ul> </ul>
</div> </div>
<input type="button" class="normalBtn" @click="getRole()" value="添加岗位" /> <input type="button" class="normalBtn" @click="getRole()" value="添加岗位" />
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
<el-radio-group v-model="zgObj.AuditWay"> <el-radio-group v-model="zgObj.AuditWay">
<el-radio :label="2">会签(须所有审批人同意)</el-radio> <el-radio :label="2">会签(须所有审批人同意)</el-radio>
<el-radio :label="3">或签(一名审批人同意或拒绝即可)</el-radio> <el-radio :label="3">或签(一名审批人同意或拒绝即可)</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
</div> </div>
</div>
</div> <div class="approval_page_layer_bottom">
<div class="approval_page_layer_bottom"> <input type="button" class="hollowFixedBtn" value="取消" @click="closeLayer" /> &nbsp;&nbsp;
<input type="button" class="hollowFixedBtn" value="取消" @click="closeLayer" /> &nbsp;&nbsp; <input type="button" class="normalBtn" v-if='addBtn' value="确定" @click="addNode" />
<input type="button" class="normalBtn" v-if='addBtn' value="确定" @click="addNode" /> <input type="button" class="normalBtn" v-if='!addBtn' value="修改节点" @click="saveUpdateNode" />
<input type="button" class="normalBtn" v-if='!addBtn' value="修改节点" @click="saveUpdateNode" /> </div>
</div> </div>
</div> </div>
</div> <input type="button" class="hollowFixedBtn approval_back_btn" value="返回" @click="goback" />
<input type="button" class="hollowFixedBtn approval_back_btn" value="返回" @click="goback"/> <div class="approval_page_content" v-loading="loading">
<div class="approval_page_content" v-loading="loading"> <p style="text-align: center; border-bottom:1px solid #f1f1f1; padding: 15px 0 10px 0;font-size: 16px;">
<p style="text-align: center; border-bottom:1px solid #f1f1f1; padding: 15px 0 10px 0;font-size: 16px;">{{TemplateTypeName}}流程设置</p> {{TemplateTypeName}}流程设置</p>
<div class="approval_page_title">默认审批流程</div> <div class="approval_page_title">默认审批流程</div>
<div class="approval_person_content"> <div class="approval_person_content">
<span class="approval_span_type">默认审批人</span> <span class="approval_span_type">默认审批人</span>
<div class="approval_person_list fl"> <div class="approval_person_list fl">
<div class="approval_process_item" draggable="true" v-for="(item,index) in myAuditList" @click="getItemValue(item,index)"> <div class="approval_process_item" draggable="true" v-for="(item,index) in myAuditList"
<span style="position: relative;" @mouseenter="itemIndex=index" @mouseleave="itemIndex='-1'"> @click="getItemValue(item,index)">
<i class="iconfont icon-user11"></i> <span style="position: relative;" @mouseenter="itemIndex=index" @mouseleave="itemIndex='-1'">
{{item.AuditDescription}}&nbsp; <i class="iconfont icon-user11"></i>
<b class="bnotice" v-if="item.AuditWay!=1">({{item.AuditWay=="2"?'会签':'或签'}})</b> {{item.AuditDescription}}&nbsp;
<em v-if='index==itemIndex' class="iconfont icon-guanbi approval_process_item_delete" @click.stop='deleteItem(item.Sort)'></em> <b class="bnotice" v-if="item.AuditWay!=1">({{item.AuditWay=="2"?'会签':'或签'}})</b>
</span> <em v-if='index==itemIndex' class="iconfont icon-guanbi approval_process_item_delete"
<i class="iconfont icon-jiantouyou"></i> @click.stop='deleteItem(item.Sort)'></em>
</div> </span>
<input type="button" class="hollowFixedBtn" @click="addAppPerson" value="添加" /> <i class="iconfont icon-jiantouyou"></i>
</div> </div>
</div> <input type="button" class="hollowFixedBtn" @click="addAppPerson" value="添加" />
<div class="approval_person_content"> </div>
<span class="approval_span_type">默认抄送人</span> </div>
<div class="approval_person_list fl"> <div class="approval_person_content">
<div class="approval_process_item" v-for="(item,index) in myAuditUserList"> <span class="approval_span_type">默认抄送人</span>
<span style="position: relative;" @mouseenter="itemIndex1=index" @mouseleave="itemIndex1='-1'"> <div class="approval_person_list fl">
<i class="iconfont icon-user11"></i> <div class="approval_process_item" v-for="(item,index) in myAuditUserList">
{{item.EmName}}&nbsp; <span style="position: relative;" @mouseenter="itemIndex1=index" @mouseleave="itemIndex1='-1'">
<em v-if='index==itemIndex1' @click="deleteUser(item.EmployeeId)" class="iconfont icon-guanbi approval_process_item_delete" ></em> <i class="iconfont icon-user11"></i>
</span> {{item.EmName}}&nbsp;
</div> <em v-if='index==itemIndex1' @click="deleteUser(item.EmployeeId)"
<input type="button" class="hollowFixedBtn" value="添加" @click='addAuditUser'/> class="iconfont icon-guanbi approval_process_item_delete"></em>
</div> </span>
</div> </div>
<input type="button" class="hollowFixedBtn" value="添加" @click='addAuditUser' />
<div v-if='TemplateType!=4'> </div>
<div class="approval_page_title">分条件审批</div> </div>
<p>
<input type="button" value="添加" @click="goUrl('processDesign',TemplateId)" class="hollowFixedBtn" /> <div v-if='TemplateType!=4'>
<span style="font-size: 12px; color: #666; margin-left: 15px;">审批单首先匹配优先级高的条件</span> <div class="approval_page_title">分条件审批</div>
</p> <p>
<div> <input type="button" value="添加" @click="goUrl('processDesign',TemplateId)" class="hollowFixedBtn" />
<div class="processOtherDiv" v-for="(item,index) in otherList" @click="goUrl('updateProcessDesign',item.Id)"> <span style="font-size: 12px; color: #666; margin-left: 15px;">审批单首先匹配优先级高的条件</span>
<p style="background: #f1f1f1; padding: 10px 30px;">{{item.Description}} </p>
<span class="fr processOtherdelSpan" style="margin-left: 10px;" @click.stop="deleteOtherProcess(item.Id)">删除</span> <div>
<span class="fr processOtherdelSpan">修改</span> <div class="processOtherDiv" v-for="(item,index) in otherList" @click="goUrl('updateProcessDesign',item.Id)">
</p> <p style="background: #f1f1f1; padding: 10px 30px;">{{item.Description}}
<div style="padding: 0 30px;"> <span class="fr processOtherdelSpan" style="margin-left: 10px;"
<p style="padding: 10px 0 0 0;">审批人:</p> @click.stop="deleteOtherProcess(item.Id)">删除</span>
<div class="approval_process_item" v-for="(item,index) in otherList[index].AuditList"> <span class="fr processOtherdelSpan">修改</span>
<span style="position: relative;"> </p>
<i class="iconfont icon-user11"></i> <div style="padding: 0 30px;">
{{item.AuditDescription}}&nbsp; <p style="padding: 10px 0 0 0;">审批人:</p>
<b class="bnotice" v-if="item.AuditWay!=1">({{item.AuditWay=="2"?'会签':'或签'}})</b> <div class="approval_process_item" v-for="(item,index) in otherList[index].AuditList">
</span> <span style="position: relative;">
<i class="iconfont icon-jiantouyou"></i> <i class="iconfont icon-user11"></i>
</div> {{item.AuditDescription}}&nbsp;
<p style="padding: 10px 0 0 0;">抄送人:</p> <b class="bnotice" v-if="item.AuditWay!=1">({{item.AuditWay=="2"?'会签':'或签'}})</b>
<div class="approval_process_item" v-for="(item,index) in otherList[index].AuditUserList"> </span>
<span style="position: relative;"> <i class="iconfont icon-jiantouyou"></i>
<i class="iconfont icon-user11"></i> </div>
{{item.EmName}}&nbsp; <p style="padding: 10px 0 0 0;">抄送人:</p>
</span> <div class="approval_process_item" v-for="(item,index) in otherList[index].AuditUserList">
</div> <span style="position: relative;">
</div> <i class="iconfont icon-user11"></i>
</div> {{item.EmName}}&nbsp;
</div> </span>
</div> </div>
<div style="margin: 30px 0;"> </div>
<input type="button" value="取消" class="hollowFixedBtn" @click="goback" /> </div>
<input type="button" value="保存" class="normalBtn" @click="saveApproval" /> </div>
</div> </div>
</div> <div style="margin: 30px 0;">
<input type="button" value="取消" class="hollowFixedBtn" @click="goback" />
<el-dialog custom-class='w700' :title="dialogTitle" :visible.sync="outerVisible" center> <input type="button" value="保存" class="normalBtn" @click="saveApproval" />
<div class="fl" style="width: 300px; margin: 0 20px;"> </div>
<p style="margin: 0 0 10px 0;">选择: <el-input class='w200' placeholder="输入关键字进行过滤" v-model="filterText"> </div>
</el-input>
</p> <el-dialog custom-class='w700' :title="dialogTitle" :visible.sync="outerVisible" center>
<el-tree class='ApprovalProcessBg' <div class="fl" style="width: 300px; margin: 0 20px;">
:data="memberList" <p style="margin: 0 0 10px 0;">选择: <el-input class='w200' placeholder="输入关键字进行过滤" v-model="filterText">
show-checkbox </el-input>
:filter-node-method="filterNode" </p>
ref="tree" :props="defaultProps" <el-tree class='ApprovalProcessBg' :data="memberList" show-checkbox :filter-node-method="filterNode" ref="tree"
:render-after-expand="false" :props="defaultProps" :render-after-expand="false" node-key="DepartmentId" @check-change="handleNodeChange">
node-key="DepartmentId" </el-tree>
@check-change="handleNodeChange"> </div>
</el-tree> <div class="fl">
</div> <p style="margin: 0 0 20px 0;">已选:</p>
<div class="fl"> <div class="Approval_yxList">
<p style="margin: 0 0 20px 0;">已选:</p> <li v-for="item in showMember">{{item.DepartmentName}}
<div class="Approval_yxList"> <i @click="mySetCheckedKeys(item.DepartmentId)" class="el-icon-circle-close showMemberIcon"></i>
<li v-for="item in showMember">{{item.DepartmentName}} </li>
<i @click="mySetCheckedKeys(item.DepartmentId)" class="el-icon-circle-close showMemberIcon"></i> </div>
</li> </div>
</div> <div slot="footer" class="dialog-footer">
</div> <button class="hollowFixedBtn" @click="outerVisible = false">取 消</button> &nbsp;
<div slot="footer" class="dialog-footer"> <button class="normalBtn" type="primary" @click="outerVisible = false">确定</button>
<button class="hollowFixedBtn" @click="outerVisible = false">取 消</button> &nbsp; </div>
<button class="normalBtn" type="primary" @click="outerVisible = false">确定</button> </el-dialog>
</div>
</el-dialog> <el-dialog custom-class='w700' :title="dialogTitle" :visible.sync="outerVisible1" center>
<div class="fl" style="width: 300px; margin: 0 20px;">
<el-dialog custom-class='w700' :title="dialogTitle" :visible.sync="outerVisible1" center> <p style="margin: 0 0 10px 0;">选择岗位: <el-input class='w200' placeholder="输入关键字进行过滤" v-model="filterText1">
<div class="fl" style="width: 300px; margin: 0 20px;"> </el-input>
<p style="margin: 0 0 10px 0;">选择岗位: <el-input class='w200' placeholder="输入关键字进行过滤" v-model="filterText1"> </p>
</el-input> <el-tree class='ApprovalProcessBg' :data="roleList" ref="treeRole" show-checkbox
</p> :filter-node-method="filterNode1" :props="defaultProps1" @check-change="checkedRole">
<el-tree class='ApprovalProcessBg' </el-tree>
:data="roleList" </div>
ref="treeRole" <div class="fl">
show-checkbox <p style="margin: 0 0 20px 0;">已选岗位:</p>
:filter-node-method="filterNode1" <div class="Approval_yxList">
:props="defaultProps1" <li v-for="item in showRole">{{item.DepartmentName}}
@check-change="checkedRole" <i @click="deleteRole()" class="el-icon-circle-close showMemberIcon"></i>
> </li>
</el-tree> </div>
</div> </div>
<div class="fl"> <div slot="footer" class="dialog-footer">
<p style="margin: 0 0 20px 0;">已选岗位:</p> <button class="hollowFixedBtn" @click="outerVisible1= false">取 消</button> &nbsp;
<div class="Approval_yxList"> <button class="normalBtn" type="primary" @click="outerVisible1 = false">确定</button>
<li v-for="item in showRole">{{item.DepartmentName}} </div>
<i @click="deleteRole()" class="el-icon-circle-close showMemberIcon"></i> </el-dialog>
</li>
</div> <el-dialog custom-class='w700' :title="dialogTitle" :visible.sync="outerVisible2" center>
</div> <div class="fl" style="width: 300px; margin: 0 20px;">
<div slot="footer" class="dialog-footer"> <p style="margin: 0 0 10px 0;">选择抄送人:<el-input class='w200' placeholder="输入关键字进行过滤" v-model="filterText2">
<button class="hollowFixedBtn" @click="outerVisible1= false">取 消</button> &nbsp; </el-input>
<button class="normalBtn" type="primary" @click="outerVisible1 = false">确定</button> </p>
</div> <el-tree class='ApprovalProcessBg' :data="userList" show-checkbox :filter-node-method="filterNode2"
</el-dialog> ref="treeUser" :props="defaultProps2" :render-after-expand="false" node-key="DepartmentId"
@check-change="handleNodeChange1">
<el-dialog custom-class='w700' :title="dialogTitle" :visible.sync="outerVisible2" center> </el-tree>
<div class="fl" style="width: 300px; margin: 0 20px;"> </div>
<p style="margin: 0 0 10px 0;">选择抄送人:<el-input class='w200' placeholder="输入关键字进行过滤" v-model="filterText2"> <div class="fl">
</el-input> <p style="margin: 0 0 20px 0;">已选:</p>
</p> <div class="Approval_yxList">
<el-tree class='ApprovalProcessBg' <li v-for="item in myAuditUserList1">{{item.EmName}}
:data="userList" <i @click="deleteUser(item.EmployeeId)" class="el-icon-circle-close showMemberIcon"></i>
show-checkbox </li>
:filter-node-method="filterNode2" </div>
ref="treeUser" </div>
:props="defaultProps2" <div slot="footer" class="dialog-footer">
:render-after-expand="false" <button class="hollowFixedBtn" @click="outerVisible2 = false">取消</button> &nbsp;
node-key="DepartmentId" <button class="normalBtn" type="primary" @click="saveAuditUser">确定</button>
@check-change="handleNodeChange1"> </div>
</el-tree> </el-dialog>
</div> </div>
<div class="fl">
<p style="margin: 0 0 20px 0;">已选:</p>
<div class="Approval_yxList">
<li v-for="item in myAuditUserList1">{{item.EmName}}
<i @click="deleteUser(item.EmployeeId)" class="el-icon-circle-close showMemberIcon"></i>
</li>
</div>
</div>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="outerVisible2 = false">取消</button> &nbsp;
<button class="normalBtn" type="primary" @click="saveAuditUser">确定</button>
</div>
</el-dialog>
</div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
filterText:"", filterText: "",
filterText1:"", filterText1: "",
filterText2:"", filterText2: "",
defaultProps: { defaultProps: {
children: 'ChildList', children: 'ChildList',
label: 'DepartmentName', label: 'DepartmentName',
}, },
defaultProps1: { defaultProps1: {
children: 'ChildList', children: 'ChildList',
label: 'DepartmentName', label: 'DepartmentName',
disabled: "Disabled" disabled: "Disabled"
}, },
defaultProps2: { defaultProps2: {
children: 'ChildList', children: 'ChildList',
label: 'DepartmentName', label: 'DepartmentName',
}, },
zgList: [{ zgList: [{
value: '1', value: '1',
label: '直接主管' label: '直接主管'
}, },
{ {
value: '2', value: '2',
label: '第2级主管' label: '第2级主管'
}, },
{ {
value: '3', value: '3',
label: '第3级主管' label: '第3级主管'
}, },
{ {
value: '4', value: '4',
label: '第4级主管' label: '第4级主管'
}, },
{ {
value: '5', value: '5',
label: '第5级主管' label: '第5级主管'
}, },
{ {
value: '6', value: '6',
label: '第6级主管' label: '第6级主管'
}, },
], ],
TemplateType:'', TemplateType: '',
addBtn:true, addBtn: true,
loading:true, loading: true,
dialogTitle: '', dialogTitle: '',
outerVisible:false, outerVisible: false,
outerVisible1:false, outerVisible1: false,
outerVisible2:false, outerVisible2: false,
itemIndex: -1, itemIndex: -1,
itemIndex1: -1, itemIndex1: -1,
approvalType: 1, approvalType: 1,
showlayer: false, showlayer: false,
isTransition: false, isTransition: false,
updateItem:[], updateItem: [],
updateItemIndex:-1, //修改节点 updateItemIndex: -1, //修改节点
TemplateId:'', TemplateId: '',
addMsg:{ addMsg: {
Id:'', Id: '',
TemplateId:'', TemplateId: '',
AuditList:[], AuditList: [],
AuditUserList:[], AuditUserList: [],
ConditionSortList:[], ConditionSortList: [],
Sort:'', Sort: '',
}, },
zgObj: { zgObj: {
AuditDescription: '', AuditDescription: '',
RoleOrInitiator: '1', RoleOrInitiator: '1',
AuditType: '', AuditType: '',
AuditUserList: [], AuditUserList: [],
AuditWay:2, AuditWay: 2,
Sort: '', Sort: '',
}, },
tempChosenId: -1, tempChosenId: -1,
//返回数据 //返回数据
TemplateTypeName:'', TemplateTypeName: '',
myAuditList: [], myAuditList: [],
myAuditUserList: [], myAuditUserList: [],
myAuditUserList1:[], myAuditUserList1: [],
memberList: [], memberList: [],
sysUserKeys:[], sysUserKeys: [],
userList:[], userList: [],
roleList: [], roleList: [],
checkedMember: [], checkedMember: [],
showMember: [], showMember: [],
showRole:[], showRole: [],
memberSetCheckedKeys: [], memberSetCheckedKeys: [],
memberSetCheckedUserKeys:[], memberSetCheckedUserKeys: [],
normalMember: [], normalMember: [],
otherList:[], otherList: [],
otherListSpr:[], otherListSpr: [],
otherListCsr:[], otherListCsr: [],
} }
}, },
watch: { watch: {
filterText(val) { filterText(val) {
this.$refs.tree.filter(val); this.$refs.tree.filter(val);
}, },
filterText1(val) { filterText1(val) {
this.$refs.treeRole.filter(val); this.$refs.treeRole.filter(val);
}, },
filterText2(val) { filterText2(val) {
this.$refs.treeUser.filter(val); this.$refs.treeUser.filter(val);
} }
}, },
methods: { methods: {
filterNode(value, data) { filterNode(value, data) {
if (!value) return true; if (!value) return true;
return data.DepartmentName.indexOf(value) !== -1; return data.DepartmentName.indexOf(value) !== -1;
}, },
filterNode1(value, data) { filterNode1(value, data) {
if (!value) return true; if (!value) return true;
return data.DepartmentName.indexOf(value) !== -1; return data.DepartmentName.indexOf(value) !== -1;
}, },
filterNode2(value, data) { filterNode2(value, data) {
if (!value) return true; if (!value) return true;
return data.DepartmentName.indexOf(value) !== -1; return data.DepartmentName.indexOf(value) !== -1;
}, },
deleteOtherProcess(id){ deleteOtherProcess(id) {
this.$confirm('是否删除?', '提示', { this.$confirm('是否删除?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.apipost('WorkFlow_post_DelOtherCondition',{ConditionId:id},res=>{ this.apipost('WorkFlow_post_DelOtherCondition', {
if(res.data.resultCode==1){ ConditionId: id
this.$message.success('删除成功!'); }, res => {
this.getOtherList() if (res.data.resultCode == 1) {
} this.$message.success('删除成功!');
},err=>{}) this.getOtherList()
}).catch(() => { }
this.$message.info('已取消删除!'); }, err => {})
}); }).catch(() => {
}, this.$message.info('已取消删除!');
addAppPerson(){ });
this.approvalType=1; },
this.addBtn=true; addAppPerson() {
this.showLayer(); this.approvalType = 1;
}, this.addBtn = true;
deleteUser(id){ this.showLayer();
if(this.memberSetCheckedUserKeys.findIndex(item => item === id)!=-1){ },
this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === id), 1) deleteUser(id) {
} if (this.memberSetCheckedUserKeys.findIndex(item => item === id) != -1) {
if(this.myAuditUserList.findIndex(item => item.EmployeeId === id)!=-1) this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === id), 1)
{ }
this.myAuditUserList.splice(this.myAuditUserList.findIndex(item => item.EmployeeId === id), 1) if (this.myAuditUserList.findIndex(item => item.EmployeeId === id) != -1) {
} this.myAuditUserList.splice(this.myAuditUserList.findIndex(item => item.EmployeeId === id), 1)
if(this.myAuditUserList1.findIndex(item => item.EmployeeId === id)!=-1) }
{ if (this.myAuditUserList1.findIndex(item => item.EmployeeId === id) != -1) {
this.myAuditUserList1.splice(this.myAuditUserList1.findIndex(item => item.EmployeeId === id), 1) this.myAuditUserList1.splice(this.myAuditUserList1.findIndex(item => item.EmployeeId === id), 1)
} }
}, },
addAuditUser(){ addAuditUser() {
let _arr=this.sysUserKeys.concat(this.memberSetCheckedUserKeys) let _arr = this.sysUserKeys.concat(this.memberSetCheckedUserKeys)
this.dialogTitle = '选择人员'; this.dialogTitle = '选择人员';
this.outerVisible2=true; this.outerVisible2 = true;
let _this=this; let _this = this;
this.apipost('WorkFlow_get_GetDepartMentEmployee', {}, res => { this.apipost('WorkFlow_get_GetDepartMentEmployee', {}, res => {
if(res.data.resultCode==1){ if (res.data.resultCode == 1) {
this.userList = res.data.data this.userList = res.data.data
_this.$refs.treeUser.setCheckedKeys(_arr); _this.$refs.treeUser.setCheckedKeys(_arr);
} }
}, err => {}) }, err => {})
}, },
saveAuditUser(){ saveAuditUser() {
if(this.myAuditUserList1.length<=10){ if (this.myAuditUserList1.length <= 10) {
this.myAuditUserList=JSON.parse(JSON.stringify(this.myAuditUserList1)) this.myAuditUserList = JSON.parse(JSON.stringify(this.myAuditUserList1))
this.outerVisible2 = false this.outerVisible2 = false
}else{ } else {
this.$message.error('人数不能超过10人') this.$message.error('人数不能超过10人')
return false; return false;
} }
}, },
clearValue(value){ clearValue(value) {
if(value=='1'){ if (value == '1') {
this.zgObj.RoleOrInitiator='1' this.zgObj.RoleOrInitiator = '1'
} }
if(value=='2'){ if (value == '2') {
this.showMember=[]; this.showMember = [];
this.memberSetCheckedKeys=[]; this.memberSetCheckedKeys = [];
} }
if(value=='3'){ if (value == '3') {
this.showRole=[] this.showRole = []
this.zgObj.AuditWay=2 this.zgObj.AuditWay = 2
} }
}, },
getList() { getList() {
this.apipost('WorkFlow_get_GetDefaultCondition', {TemplateId:this.TemplateId}, res => { this.apipost('WorkFlow_get_GetDefaultCondition', {
if(res.data.resultCode == 1) { TemplateId: this.TemplateId
this.loading=false }, res => {
this.addMsg.Id=res.data.data.Id if (res.data.resultCode == 1) {
this.myAuditList = res.data.data.AuditList==null?[]:res.data.data.AuditList this.loading = false
this.myAuditUserList = res.data.data.AuditUserList==null?[]:res.data.data.AuditUserList this.addMsg.Id = res.data.data.Id
this.myAuditUserList1 = JSON.parse(JSON.stringify(this.myAuditUserList)) this.myAuditList = res.data.data.AuditList == null ? [] : res.data.data.AuditList
this.myAuditUserList1.forEach(item=>{ this.myAuditUserList = res.data.data.AuditUserList == null ? [] : res.data.data.AuditUserList
this.sysUserKeys.push(item.EmployeeId) this.myAuditUserList1 = JSON.parse(JSON.stringify(this.myAuditUserList))
}) this.myAuditUserList1.forEach(item => {
this.TemplateTypeName=res.data.data.TemplateTypeName this.sysUserKeys.push(item.EmployeeId)
this.TemplateType=res.data.data.TemplateType; })
} else {} this.TemplateTypeName = res.data.data.TemplateTypeName
}, error => {}) this.TemplateType = res.data.data.TemplateType;
}, } else {}
getOtherList(){ }, error => {})
this.apipost('WorkFlow_get_GetOtherConditionList', {TemplateId:this.TemplateId}, res => { },
if(res.data.resultCode == 1) { getOtherList() {
this.otherList=res.data.data this.apipost('WorkFlow_get_GetOtherConditionList', {
this.otherListSpr=res.data.data.AuditList TemplateId: this.TemplateId
} else {} }, res => {
}, error => {}) if (res.data.resultCode == 1) {
}, this.otherList = res.data.data
getMember() { this.otherListSpr = res.data.data.AuditList
this.outerVisible = true; } else {}
this.dialogTitle = '选择人员'; }, error => {})
this.apipost('WorkFlow_get_GetDepartMentEmployee', {}, res => { },
this.memberList = res.data.data getMember() {
}, err => {}) this.outerVisible = true;
}, this.dialogTitle = '选择人员';
getRole() { this.apipost('WorkFlow_get_GetDepartMentEmployee', {}, res => {
this.outerVisible1 = true; this.memberList = res.data.data
this.dialogTitle = '选择岗位'; }, err => {})
this.apipost('WorkFlow_get_GetDepartMentPost', {}, res => { },
this.roleList = res.data.data getRole() {
}, err => {}) this.outerVisible1 = true;
}, this.dialogTitle = '选择岗位';
handleNodeChange1(data, checked) { this.apipost('WorkFlow_get_GetDepartMentPost', {}, res => {
data.IsCheck = checked; this.roleList = res.data.data
if(data.Type == 2 && data.IsCheck) { //是员工且选中 }, err => {})
let isExsit = false },
this.myAuditUserList1.forEach(x => { handleNodeChange1(data, checked) {
if(x.EmployeeId == data.DepartmentId) { data.IsCheck = checked;
isExsit = true if (data.Type == 2 && data.IsCheck) { //是员工且选中
return false let isExsit = false
} this.myAuditUserList1.forEach(x => {
}) if (x.EmployeeId == data.DepartmentId) {
if(!isExsit) { isExsit = true
this.myAuditUserList1.push({ return false
EmName: data.DepartmentName, }
EmployeeId: data.DepartmentId, })
Sort: '1' if (!isExsit) {
}) this.myAuditUserList1.push({
this.memberSetCheckedUserKeys.push(data.DepartmentId) EmName: data.DepartmentName,
} EmployeeId: data.DepartmentId,
} else if(data.Type == 2 && !data.IsCheck) { Sort: '1'
if(this.myAuditUserList1.findIndex(item => item.EmployeeId === data.DepartmentId) != -1) { })
this.myAuditUserList1.splice(this.myAuditUserList1.findIndex(item => item.EmployeeId === data.DepartmentId), 1) this.memberSetCheckedUserKeys.push(data.DepartmentId)
this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data.DepartmentId), 1) }
if(this.myAuditUserList1.findIndex(item => item.EmployeeId === data.ParentId) != -1) { } else if (data.Type == 2 && !data.IsCheck) {
this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data.ParentId), 1) if (this.myAuditUserList1.findIndex(item => item.EmployeeId === data.DepartmentId) != -1) {
} this.myAuditUserList1.splice(this.myAuditUserList1.findIndex(item => item.EmployeeId === data.DepartmentId),
} 1)
} this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data
if(data.Type != 2 && data.IsCheck) { .DepartmentId), 1)
if(this.memberSetCheckedUserKeys.findIndex(item => item === data.DepartmentId) == -1) { if (this.myAuditUserList1.findIndex(item => item.EmployeeId === data.ParentId) != -1) {
this.memberSetCheckedUserKeys.push(data.DepartmentId) this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data
} .ParentId), 1)
} else if(data.Type == 2 && !data.IsCheck) { }
if(this.memberSetCheckedUserKeys.findIndex(item => item === data.DepartmentId) != -1) { }
this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data.DepartmentId), 1) }
if(this.myAuditUserList1.findIndex(item => item.EmployeeId === data.ParentId) != -1) { if (data.Type != 2 && data.IsCheck) {
this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data.ParentId), 1) if (this.memberSetCheckedUserKeys.findIndex(item => item === data.DepartmentId) == -1) {
} this.memberSetCheckedUserKeys.push(data.DepartmentId)
} }
} } else if (data.Type == 2 && !data.IsCheck) {
}, if (this.memberSetCheckedUserKeys.findIndex(item => item === data.DepartmentId) != -1) {
handleNodeChange(data, checked) { this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data
data.IsCheck = checked; .DepartmentId), 1)
if(data.Type == 2 && data.IsCheck) { //是员工且选中 if (this.myAuditUserList1.findIndex(item => item.EmployeeId === data.ParentId) != -1) {
let isExsit = false this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data
this.showMember.forEach(x => { .ParentId), 1)
if(x.DepartmentId == data.DepartmentId) { }
isExsit = true }
return false }
} },
}) handleNodeChange(data, checked) {
if(!isExsit) { data.IsCheck = checked;
this.showMember.push({ if (data.Type == 2 && data.IsCheck) { //是员工且选中
DepartmentName: data.DepartmentName, let isExsit = false
DepartmentId: data.DepartmentId this.showMember.forEach(x => {
}) if (x.DepartmentId == data.DepartmentId) {
this.memberSetCheckedKeys.push(data.DepartmentId) isExsit = true
} return false
} else if(data.Type == 2 && !data.IsCheck) { }
if(this.showMember.findIndex(item => item.DepartmentId === data.DepartmentId) != -1) { })
this.showMember.splice(this.showMember.findIndex(item => item.DepartmentId === data.DepartmentId), 1) if (!isExsit) {
this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId), 1) this.showMember.push({
if(this.showMember.findIndex(item => item.DepartmentId === data.ParentId) != -1) { DepartmentName: data.DepartmentName,
this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.ParentId), 1) DepartmentId: data.DepartmentId
} })
} this.memberSetCheckedKeys.push(data.DepartmentId)
} }
if(data.Type != 2 && data.IsCheck) { } else if (data.Type == 2 && !data.IsCheck) {
if(this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId) == -1) { if (this.showMember.findIndex(item => item.DepartmentId === data.DepartmentId) != -1) {
this.memberSetCheckedKeys.push(data.DepartmentId) this.showMember.splice(this.showMember.findIndex(item => item.DepartmentId === data.DepartmentId), 1)
} this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId), 1)
} else if(data.Type == 2 && !data.IsCheck) { if (this.showMember.findIndex(item => item.DepartmentId === data.ParentId) != -1) {
if(this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId) != -1) { this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.ParentId), 1)
this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId), 1) }
if(this.showMember.findIndex(item => item.DepartmentId === data.ParentId) != -1) { }
this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.ParentId), 1) }
} if (data.Type != 2 && data.IsCheck) {
} if (this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId) == -1) {
} this.memberSetCheckedKeys.push(data.DepartmentId)
}, }
mySetCheckedKeys(id) { } else if (data.Type == 2 && !data.IsCheck) {
if(this.memberSetCheckedKeys.length == 0) if (this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId) != -1) {
return this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId), 1)
if(id == -1) { if (this.showMember.findIndex(item => item.DepartmentId === data.ParentId) != -1) {
this.$refs.tree.setCheckedKeys(this.memberSetCheckedKeys) this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.ParentId), 1)
return }
} }
this.showMember.splice(this.showMember.findIndex(item => item.DepartmentId === id), 1) }
this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === id), 1) },
this.$refs.tree.setCheckedKeys(this.memberSetCheckedKeys); mySetCheckedKeys(id) {
}, if (this.memberSetCheckedKeys.length == 0)
mySetCheckedUsersKeys(){ return
if (id == -1) {
}, this.$refs.tree.setCheckedKeys(this.memberSetCheckedKeys)
checkedRole(data,checked){ return
data.IsCheck = checked; }
if(data.Disabled==false&&data.IsCheck){ this.showMember.splice(this.showMember.findIndex(item => item.DepartmentId === id), 1)
this.showRole=[]; this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === id), 1)
this.showRole.push({DepartmentName:data.DepartmentName,Id:data.DepartmentId}) this.$refs.tree.setCheckedKeys(this.memberSetCheckedKeys);
} },
mySetCheckedUsersKeys() {
},
deleteItem(sort) { },
this.myAuditList.splice(this.myAuditList.findIndex(item => item.Sort === sort), 1) checkedRole(data, checked) {
}, data.IsCheck = checked;
getItemValue(obj,index){ if (data.Disabled == false && data.IsCheck) {
this.addBtn=false; this.showRole = [];
this.updateItemIndex=index; this.showRole.push({
this.updateItem=obj; DepartmentName: data.DepartmentName,
this.showLayer(); Id: data.DepartmentId
this.approvalType=obj.AuditType; })
if(obj.AuditType==1){ }
this.zgObj.RoleOrInitiator=obj.RoleOrInitiator.toString(); },
} deleteItem(sort) {
if(obj.AuditType==2){ this.myAuditList.splice(this.myAuditList.findIndex(item => item.Sort === sort), 1)
this.showMember=[]; },
this.memberSetCheckedKeys=[]; getItemValue(obj, index) {
this.zgObj.AuditWay=obj.AuditWay; this.addBtn = false;
obj.AuditUserList.forEach((item,index)=>{ this.updateItemIndex = index;
this.showMember.push({ this.updateItem = obj;
DepartmentName: item.EmName, this.showLayer();
DepartmentId: item.EmployeeId this.approvalType = obj.AuditType;
}) if (obj.AuditType == 1) {
this.memberSetCheckedKeys.push(item.EmployeeId) this.zgObj.RoleOrInitiator = obj.RoleOrInitiator.toString();
}) }
} if (obj.AuditType == 2) {
if(obj.AuditType==3){ this.showMember = [];
this.zgObj.AuditWay=obj.AuditWay; this.memberSetCheckedKeys = [];
this.showRole=[]; this.zgObj.AuditWay = obj.AuditWay;
this.showRole.push({DepartmentName:obj.AuditDescription}) obj.AuditUserList.forEach((item, index) => {
} this.showMember.push({
DepartmentName: item.EmName,
}, DepartmentId: item.EmployeeId
saveUpdateNode(){ })
let zg = {} this.memberSetCheckedKeys.push(item.EmployeeId)
if(this.approvalType == 1) })
{ }
zg.AuditType = 1; if (obj.AuditType == 3) {
zg.AuditWay = 1; this.zgObj.AuditWay = obj.AuditWay;
zg.AuditUserList=[], this.showRole = [];
zg.Sort = this.myAuditList.length + 1; this.showRole.push({
zg.RoleOrInitiator = this.zgObj.RoleOrInitiator DepartmentName: obj.AuditDescription
let obj = {} })
if(this.tempChosenId != -1) { }
obj = this.zgList.find((item) => {
return item.value === this.tempChosenId; },
}) saveUpdateNode() {
zg.AuditDescription = obj.label let zg = {}
} else { if (this.approvalType == 1) {
zg.AuditDescription = '直接主管' zg.AuditType = 1;
} zg.AuditWay = 1;
this.myAuditList[this.updateItemIndex]=zg; zg.AuditUserList = [],
} zg.Sort = this.myAuditList.length + 1;
if(this.approvalType == 2) { //指定成员 zg.RoleOrInitiator = this.zgObj.RoleOrInitiator
let Au = this.showMember; let obj = {}
let Auu = []; if (this.tempChosenId != -1) {
Au.forEach((item, index) => { obj = this.zgList.find((item) => {
Auu.push({ return item.value === this.tempChosenId;
EmployeeId: item.DepartmentId, })
EmName:item.DepartmentName, zg.AuditDescription = obj.label
Sort: index } else {
}) zg.AuditDescription = '直接主管'
}) }
if(Auu.length==1){ this.myAuditList[this.updateItemIndex] = zg;
zg.AuditWay = 1 }
zg.AuditDescription = Auu[0].EmName if (this.approvalType == 2) { //指定成员
}else if(Auu.length>1){ let Au = this.showMember;
zg.AuditWay = this.zgObj.AuditWay; let Auu = [];
zg.AuditDescription = '指定' + this.showMember.length + '人' Au.forEach((item, index) => {
} Auu.push({
zg.AuditType = 2; EmployeeId: item.DepartmentId,
zg.RoleOrInitiator = '-1'; EmName: item.DepartmentName,
zg.Sort = this.myAuditList.length + 1; Sort: index
zg.AuditUserList = Auu; })
if(Auu.length==0) })
{ if (Auu.length == 1) {
this.$message.error("成员不能为空") zg.AuditWay = 1
return zg.AuditDescription = Auu[0].EmName
}else if(Auu.length>10){ } else if (Auu.length > 1) {
this.$message.error("人数不能超过10人!") zg.AuditWay = this.zgObj.AuditWay;
return zg.AuditDescription = '指定' + this.showMember.length + '人'
} }
this.myAuditList[this.updateItemIndex]=zg; zg.AuditType = 2;
} zg.RoleOrInitiator = '-1';
if(this.approvalType == 3) { //岗位 zg.Sort = this.myAuditList.length + 1;
zg.AuditType=3; zg.AuditUserList = Auu;
zg.AuditWay = this.zgObj.AuditWay; if (Auu.length == 0) {
zg.Sort = this.myAuditList.length + 1; this.$message.error("成员不能为空")
zg.AuditUserList=''; return
if(this.showRole.length==0) } else if (Auu.length > 10) {
{ this.$message.error("人数不能超过10人!")
this.$message.error("请选择岗位") return
return }
}else{ this.myAuditList[this.updateItemIndex] = zg;
zg.RoleOrInitiator=this.showRole[0].Id; }
zg.AuditDescription=this.showRole[0].DepartmentName; if (this.approvalType == 3) { //岗位
} zg.AuditType = 3;
this.myAuditList[this.updateItemIndex]=zg; zg.AuditWay = this.zgObj.AuditWay;
} zg.Sort = this.myAuditList.length + 1;
this.closeLayer() zg.AuditUserList = '';
}, if (this.showRole.length == 0) {
deleteRole(){ this.$message.error("请选择岗位")
this.showRole=[]; return
}, } else {
changeValue(value) { zg.RoleOrInitiator = this.showRole[0].Id;
this.tempChosenId = value zg.AuditDescription = this.showRole[0].DepartmentName;
}, }
addNode() { this.myAuditList[this.updateItemIndex] = zg;
//data>>AuditList>>AuditType 核人类型 1主管(指定一级) 2 指定成员 3角色 }
let zg = {} this.closeLayer()
if(this.approvalType == 1) //主管 },
{ deleteRole() {
zg.AuditType = 1; this.showRole = [];
zg.AuditWay = 1; },
zg.AuditUserList=[], changeValue(value) {
zg.Sort = this.myAuditList.length + 1; this.tempChosenId = value
zg.RoleOrInitiator = this.zgObj.RoleOrInitiator },
let obj = {} addNode() {
if(this.tempChosenId != -1) { //data>>AuditList>>AuditType 核人类型 1主管(指定一级) 2 指定成员 3角色
obj = this.zgList.find((item) => { let zg = {}
return item.value === this.tempChosenId; if (this.approvalType == 1) //主管
}) {
zg.AuditDescription = obj.label zg.AuditType = 1;
} else { zg.AuditWay = 1;
zg.AuditDescription = '直接主管' zg.AuditUserList = [],
} zg.Sort = this.myAuditList.length + 1;
this.myAuditList.push(zg); zg.RoleOrInitiator = this.zgObj.RoleOrInitiator
} let obj = {}
if(this.approvalType == 2) { //指定成员 if (this.tempChosenId != -1) {
let Au = this.showMember; obj = this.zgList.find((item) => {
let Auu = []; return item.value === this.tempChosenId;
Au.forEach((item, index) => { })
Auu.push({ zg.AuditDescription = obj.label
EmployeeId: item.DepartmentId, } else {
EmName:item.DepartmentName, zg.AuditDescription = '直接主管'
Sort: index }
}) this.myAuditList.push(zg);
}) }
if(Auu.length==1){ if (this.approvalType == 2) { //指定成员
zg.AuditWay = 1 let Au = this.showMember;
zg.AuditDescription = Auu[0].EmName let Auu = [];
}else if(Auu.length>1){ Au.forEach((item, index) => {
zg.AuditWay = this.zgObj.AuditWay; Auu.push({
zg.AuditDescription = '指定' + this.showMember.length + '人' EmployeeId: item.DepartmentId,
} EmName: item.DepartmentName,
zg.AuditType = 2; Sort: index
zg.RoleOrInitiator = '-1'; })
zg.Sort = this.myAuditList.length + 1; })
zg.AuditUserList = Auu; if (Auu.length == 1) {
if(Auu.length==0) zg.AuditWay = 1
{ zg.AuditDescription = Auu[0].EmName
this.$message.error("成员不能为空") } else if (Auu.length > 1) {
return zg.AuditWay = this.zgObj.AuditWay;
}else if(Auu.length>10){ zg.AuditDescription = '指定' + this.showMember.length + '人'
this.$message.error("人数不能超过10人!") }
return zg.AuditType = 2;
} zg.RoleOrInitiator = '-1';
zg.Sort = this.myAuditList.length + 1;
this.myAuditList.push(zg); zg.AuditUserList = Auu;
if (Auu.length == 0) {
} this.$message.error("成员不能为空")
if(this.approvalType == 3) { //岗位 return
zg.AuditType=3; } else if (Auu.length > 10) {
zg.AuditWay = this.zgObj.AuditWay; this.$message.error("人数不能超过10人!")
zg.Sort = this.myAuditList.length + 1; return
zg.AuditUserList=''; }
if(this.showRole.length==0)
{ this.myAuditList.push(zg);
this.$message.error("请选择部门")
return }
}else{ if (this.approvalType == 3) { //岗位
zg.RoleOrInitiator=this.showRole[0].Id; zg.AuditType = 3;
zg.AuditDescription=this.showRole[0].DepartmentName; zg.AuditWay = this.zgObj.AuditWay;
} zg.Sort = this.myAuditList.length + 1;
this.myAuditList.push(zg); zg.AuditUserList = '';
} if (this.showRole.length == 0) {
this.closeLayer() this.$message.error("请选择部门")
}, return
showLayer() { } else {
this.showlayer = true; zg.RoleOrInitiator = this.showRole[0].Id;
this.isTransition = true; zg.AuditDescription = this.showRole[0].DepartmentName;
}, }
closeLayer() { this.myAuditList.push(zg);
let _this = this; }
setTimeout(function() { this.closeLayer()
_this.showlayer = false; },
}, 300) showLayer() {
this.isTransition = false; this.showlayer = true;
}, this.isTransition = true;
saveApproval(){ },
this.addMsg.AuditList=this.myAuditList; closeLayer() {
this.addMsg.AuditUserList=this.myAuditUserList; let _this = this;
this.ConditionSortList=[], setTimeout(function () {
this.addMsg.Sort=0, _this.showlayer = false;
this.loading=true; }, 300)
this.apipost('WorkFlow_post_SetDefaultCondition',this.addMsg,res=>{ this.isTransition = false;
if(res.data.resultCode==1){ },
this.loading=false; saveApproval() {
this.$message.success("操作成功!") this.addMsg.AuditList = this.myAuditList;
} this.addMsg.AuditUserList = this.myAuditUserList;
},err=>{}) this.ConditionSortList = [],
}, this.addMsg.Sort = 0,
goUrl (path,id) { this.loading = true;
this.$router.push({ name: path,query:{"id":id} }) this.apipost('WorkFlow_post_SetDefaultCondition', this.addMsg, res => {
}, if (res.data.resultCode == 1) {
goback(){ this.loading = false;
this.$router.push({name: 'Approval',query:{"Bid":this.$route.query.Bid}}); this.$message.success("操作成功!")
} }
}, }, err => {})
mounted() { },
this.TemplateId = this.addMsg.TemplateId = this.$route.query.id goUrl(path, id) {
this.getList() this.$router.push({
this.getOtherList() name: path,
} query: {
"id": id
} }
})
},
goback() {
this.$router.push({
name: 'Approval',
query: {
"Bid": this.$route.query.Bid
}
});
}
},
mounted() {
this.TemplateId = this.addMsg.TemplateId = this.$route.query.id
this.getList()
this.getOtherList()
}
}
</script> </script>
<style> <style>
.processOtherdelSpan{ .processOtherdelSpan {
color: #E95252; color: #E95252;
} }
.processOtherdelSpan:hover{
text-decoration: underline; .processOtherdelSpan:hover {
} text-decoration: underline;
.processOtherDiv{ }
font-size: 12px;
min-height: 80px; .processOtherDiv {
border:1px solid #D2D2D2; font-size: 12px;
margin-top: 20px; min-height: 80px;
cursor: pointer; border: 1px solid #D2D2D2;
} margin-top: 20px;
.showMemberIcon { cursor: pointer;
float: right; }
font-size: 20px;
margin: 10px 20px 0 0; .showMemberIcon {
color: #999; float: right;
cursor: pointer; font-size: 20px;
} margin: 10px 20px 0 0;
color: #999;
.normalMember { cursor: pointer;
margin: 10px 0; }
width: 700px;
max-height: 500px; .normalMember {
overflow: auto margin: 10px 0;
} width: 700px;
max-height: 500px;
.normalMember li { overflow: auto
display: inline-block; }
margin: 10px;
padding: 5px 10px; .normalMember li {
background: #f8f8f8; display: inline-block;
border-radius: 4px; margin: 10px;
text-align: center; padding: 5px 10px;
font-size: 14px; background: #f8f8f8;
color: #333; border-radius: 4px;
} text-align: center;
font-size: 14px;
.approval_layer_info { color: #333;
padding: 20px 0 0 30px; }
}
.approval_layer_info {
.ApprovalProcessBg { padding: 20px 0 0 30px;
background: #f8f8f8; }
max-height: 400px;
overflow-y: auto; .ApprovalProcessBg {
} background: #f8f8f8;
max-height: 400px;
.Approval_yxList { overflow-y: auto;
width: 300px; }
background: #f8f8f8;
min-height: 400px; .Approval_yxList {
max-height: 400px; width: 300px;
overflow-y: auto; background: #f8f8f8;
} min-height: 400px;
max-height: 400px;
.Approval_yxList li { overflow-y: auto;
line-height: 40px; }
text-indent: 15px;
border-bottom: 1px dotted #eee; .Approval_yxList li {
} line-height: 40px;
text-indent: 15px;
.approval_page_content i { border-bottom: 1px dotted #eee;
color: #999!important; }
}
.approval_page_content i {
.approval_page_layer_bottom { color: #999 !important;
position: absolute; }
bottom: 20px;
padding-left: 20px; .approval_page_layer_bottom {
} position: absolute;
bottom: 20px;
.approval_span_type { padding-left: 20px;
float: left; }
width: 120px;
margin-bottom: 10px; .approval_span_type {
} float: left;
width: 120px;
.approval_process_item_delete { margin-bottom: 10px;
position: absolute; }
right: 2px;
top: -11px; .approval_process_item_delete {
font-size: 5px; position: absolute;
} right: 2px;
top: -11px;
.approval_process_item { font-size: 5px;
display: inline-block; }
margin: 10px 5px 10px 0;
cursor: pointer; .approval_process_item {
} display: inline-block;
margin: 10px 5px 10px 0;
.approval_process_item b.bnotice { cursor: pointer;
color: #E95252; }
}
.approval_process_item b.bnotice {
.approval_process_item>span { color: #E95252;
padding: 0 10px; }
min-width: 100px;
height: 40px; .approval_process_item>span {
line-height: 40px; padding: 0 10px;
text-align: center; min-width: 100px;
font-size: 12px; height: 40px;
background: #f8f8f8; line-height: 40px;
border-radius: 4px; text-align: center;
display: inline-block; font-size: 12px;
} background: #f8f8f8;
border-radius: 4px;
.approval_page_layer { display: inline-block;
position: fixed; }
width: 100%;
left: 0; .approval_page_layer {
top: 0; position: fixed;
z-index: 99; width: 100%;
height: 100%; left: 0;
background: rgba(0, 0, 0, .2); top: 0;
} z-index: 99;
height: 100%;
.approval_page_title { background: rgba(0, 0, 0, .2);
height: 14px; }
line-height: 14px;
padding-left: 15px; .approval_page_title {
border-left: 3px solid #E95252; height: 14px;
margin: 20px 0; line-height: 14px;
} padding-left: 15px;
border-left: 3px solid #E95252;
.approval_back_btn { margin: 20px 0;
margin: 20px 0; }
}
.approval_back_btn {
.approval_page_content { margin: 20px 0;
width: 680px; }
min-height: 480px;
overflow: hidden; .approval_page_content {
padding: 0 20px; width: 680px;
background: #fff; min-height: 480px;
border-radius: 4px; overflow: hidden;
} padding: 0 20px;
background: #fff;
.approval_person_content { border-radius: 4px;
padding: 0 30px; }
overflow: hidden;
margin-bottom: 30px; .approval_person_content {
} padding: 0 30px;
overflow: hidden;
.approval_person_content>span { margin-bottom: 30px;
font-size: 12px; }
color: #666;
margin-right: 30px; .approval_person_content>span {
} font-size: 12px;
color: #666;
.approval_person_list { margin-right: 30px;
float: left; }
width: 550px;
max-height: 400px; .approval_person_list {
overflow: auto; float: left;
} width: 550px;
max-height: 400px;
.approval_person_set { overflow: auto;
width: 800px; }
height: 100%;
transition: right .3s; .approval_person_set {
background: #fff; width: 800px;
position: fixed; height: 100%;
top: 0; transition: right .3s;
right: -800px; background: #fff;
box-shadow: 4px 0px 10px rgba(0, 0, 0, 0.1) position: fixed;
} top: 0;
right: -800px;
.approval_person_set_right { box-shadow: 4px 0px 10px rgba(0, 0, 0, 0.1)
right: 0; }
}
.approval_person_set_right {
.approval_person_set .setTitle { right: 0;
height: 48px; }
line-height: 48px;
background: #EDEEF0; .approval_person_set .setTitle {
font-size: 16px; height: 48px;
color: #333; line-height: 48px;
text-indent: 20px; background: #EDEEF0;
} font-size: 16px;
color: #333;
.approval_person_layerContent { text-indent: 20px;
padding-left: 20px; }
overflow: hidden;
} .approval_person_layerContent {
</style> padding-left: 20px;
\ No newline at end of file overflow: hidden;
}
</style>
...@@ -824,8 +824,6 @@ ...@@ -824,8 +824,6 @@
this.PostConfig.TripColor = tempData.LineTripColor; this.PostConfig.TripColor = tempData.LineTripColor;
this.FeatureData.TripColor = tempData.LineTripColor; this.FeatureData.TripColor = tempData.LineTripColor;
} }
console.log(" this.PostConfig", this.PostConfig)
console.log(" this.FeatureData", this.FeatureData)
this.FeatureData.LtName = tempData.LtName; this.FeatureData.LtName = tempData.LtName;
this.FeatureData.DayList = tempData.DayList; this.FeatureData.DayList = tempData.DayList;
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
</div> </div>
</div> </div>
<Tripmap v-if="ShowMap" :PostConfig="PostConfig" :ConfigId="ConfigId" @Cancel="ShowMap=false" <Tripmap v-if="ShowMap" :PostConfig="PostConfig" :ConfigId="ConfigId" @Cancel="ShowMap=false"
@Success="getMapImgSuccess()" @saveMsg="SaveData(1)"></Tripmap> @saveMsg="ShowMap=false,SaveData(1)"></Tripmap>
</div> </div>
<TravelNotice :class="{'showOther':TeamType==3}" ref="TravelNotice" id="fourAnchor" @headCallBack="getNotice" <TravelNotice :class="{'showOther':TeamType==3}" ref="TravelNotice" id="fourAnchor" @headCallBack="getNotice"
:subArray="NoticeParameters" :NoticeData="NoticeData" v-bind:PostConfig="PostConfig" :subArray="NoticeParameters" :NoticeData="NoticeData" v-bind:PostConfig="PostConfig"
...@@ -299,10 +299,6 @@ ...@@ -299,10 +299,6 @@
}; };
}, },
methods: { methods: {
getMapImgSuccess(path) {
this.PostConfig.MapUrl = path
this.ShowMap = false
},
/*获取行程特色内容对象*/ /*获取行程特色内容对象*/
getFeature(featureObj) { getFeature(featureObj) {
this.PostFeature = featureObj; this.PostFeature = featureObj;
......
...@@ -109,6 +109,7 @@ ...@@ -109,6 +109,7 @@
], ],
homeBg3: "https://imgfile.oytour.com/Static/NewTripFeature/homeBg3.jpg", homeBg3: "https://imgfile.oytour.com/Static/NewTripFeature/homeBg3.jpg",
homeBg1: "https://imgfile.oytour.com/Static/NewTripFeature/homeBg1.jpg", homeBg1: "https://imgfile.oytour.com/Static/NewTripFeature/homeBg1.jpg",
homeBgOz1: "https://imgfile.oytour.com/Static/NewTripFeature/homebgoz.jpg", //欧洲线默认图
homeBg2: "http://imgfile.oytour.com/Static/NewTripFeature/homeBg2.jpg", homeBg2: "http://imgfile.oytour.com/Static/NewTripFeature/homeBg2.jpg",
dinner1: "http://imgfile.oytour.com/Static/NewTripFeature/dinner1.jpg", dinner1: "http://imgfile.oytour.com/Static/NewTripFeature/dinner1.jpg",
dinner2: "http://imgfile.oytour.com/Static/NewTripFeature/dinner2.jpg", dinner2: "http://imgfile.oytour.com/Static/NewTripFeature/dinner2.jpg",
...@@ -292,13 +293,14 @@ ...@@ -292,13 +293,14 @@
}, },
//介绍页数据 //介绍页数据
getIntroduceData(tripObj, newObj) { getIntroduceData(tripObj, newObj) {
newObj.ImgList = [{ var imgObj = {
url: this.homeBg1, url: this.homeBg1,
x: 0, x: 0,
y: 0, y: 0,
}]; }
if (this.FeatureData && this.FeatureData.LineShortName && this.FeatureData.LineShortName.indexOf('欧洲') > -1) { if (this.FeatureData && this.FeatureData.LineShortName && this.FeatureData.LineShortName.indexOf('欧洲') > -1) {
newObj.MainName = "欧洲旅行家"; imgObj.url = this.homeBgOz1;
newObj.MainName = "欧洲旅行专家";
newObj.SubName = '‹印象欧洲› 欧洲旅行家'; newObj.SubName = '‹印象欧洲› 欧洲旅行家';
newObj.MainDesc = newObj.MainDesc =
"坚持以高端旅游服务广大客户群体!我们坚信旅游是美好的体验!带您体验欧洲的四季之美,印象欧洲不断思索旅游本质,坚持旅游质量,对于旅游的专业与服务有着深刻认知!我们的用心,您一定会看的见!选择印象欧洲,会是你前往欧洲最好的选择,您一定会认同并期待您的参与,这也是我们由衷的期盼!“旅游”不是舟车劳顿的代名词~提供高档旅游产品,印象之旅有其独到的见解与坚持,这就是各位选择旅游的真正定义!来吧~如果你还在犹豫不知道该选择什么样的欧洲产品,相信印象之旅是你最棒的选择!最后并祝各位有个愉快的旅游假期!" "坚持以高端旅游服务广大客户群体!我们坚信旅游是美好的体验!带您体验欧洲的四季之美,印象欧洲不断思索旅游本质,坚持旅游质量,对于旅游的专业与服务有着深刻认知!我们的用心,您一定会看的见!选择印象欧洲,会是你前往欧洲最好的选择,您一定会认同并期待您的参与,这也是我们由衷的期盼!“旅游”不是舟车劳顿的代名词~提供高档旅游产品,印象之旅有其独到的见解与坚持,这就是各位选择旅游的真正定义!来吧~如果你还在犹豫不知道该选择什么样的欧洲产品,相信印象之旅是你最棒的选择!最后并祝各位有个愉快的旅游假期!"
...@@ -308,6 +310,7 @@ ...@@ -308,6 +310,7 @@
newObj.MainDesc = newObj.MainDesc =
"坚持以高端旅游服务广大客户群体!我们坚信旅游是美好的体验!带您体验日本的四季之美,赏花.赏枫.赏雪并且享受怀石料理,泡露天温泉,遨游日本的秀丽山海美景!印象日本不断思索旅游本质,坚持旅游质量,对于旅游的专业与服务有着深刻体认!我们的用心,您一定会看的见!选择印象日本,会是你前往日本最好的选择,您一定会认同并期待您的参与,这也是我们由衷的期盼!“旅遊”不是舟車勞頓的代名詞~提供高档旅游产品,印象之旅有其独到的见解与坚持,这就是各位选择旅游的真正定义!来吧~如果你还在犹豫不知道该选择什么样的日本产品,相信印象之旅对是你最棒的选择!最后并祝各位有个愉快的旅游假期!"; "坚持以高端旅游服务广大客户群体!我们坚信旅游是美好的体验!带您体验日本的四季之美,赏花.赏枫.赏雪并且享受怀石料理,泡露天温泉,遨游日本的秀丽山海美景!印象日本不断思索旅游本质,坚持旅游质量,对于旅游的专业与服务有着深刻体认!我们的用心,您一定会看的见!选择印象日本,会是你前往日本最好的选择,您一定会认同并期待您的参与,这也是我们由衷的期盼!“旅遊”不是舟車勞頓的代名詞~提供高档旅游产品,印象之旅有其独到的见解与坚持,这就是各位选择旅游的真正定义!来吧~如果你还在犹豫不知道该选择什么样的日本产品,相信印象之旅对是你最棒的选择!最后并祝各位有个愉快的旅游假期!";
} }
newObj.ImgList = [imgObj];
}, },
//详情页数据 //详情页数据
getDetailsData(tripObj, newObj) { getDetailsData(tripObj, newObj) {
......
<template> <template>
<div class="tripmap-form marginT20" v-if="PostConfig"> <div class="tripmap-form marginT20" v-if="PostConfig">
<div class="tripmap-Search" v-loading="setLoading"> <div class="tripmap-Search" v-loading="pageLoading">
<div style="display: flex;align-items: start; justify-content: space-between;"> <div style="display: flex;align-items: start; justify-content: space-between;">
<div style="display: flex;flex-wrap: wrap; flex-grow: 1;"> <div style="display: flex;flex-wrap: wrap; flex-grow: 1;">
<div v-for="(x, index) in TripMapList" :key="index" class="row-aic"> <div v-for="(x, index) in TripMapList" :key="index" class="row-aic">
...@@ -8,9 +8,8 @@ ...@@ -8,9 +8,8 @@
filterable> filterable>
<el-option v-for="(item, i) in x.NationList" :label="item.Name" :value="item.ID" :key="i"></el-option> <el-option v-for="(item, i) in x.NationList" :label="item.Name" :value="item.ID" :key="i"></el-option>
</el-select> </el-select>
<!-- class="Ht_hotelSelect" -->
<el-select style="min-width: 300px;max-width: 600px;margin-left: 5px;margin-right: 5px;" size="mini" <el-select style="min-width: 300px;max-width: 600px;margin-left: 5px;margin-right: 5px;" size="mini"
placeholder="选择城市" v-model="x.CityListIds" multiple filterable @change="getCityListIds(x, index)"> placeholder="选择城市" v-model="x.CityListIds" multiple filterable @change="changeCityListIds(x, index)">
<el-option v-for="(item, i) in x.CityListAll" :label="item.Name" :value="item.ID" :key="i"> <el-option v-for="(item, i) in x.CityListAll" :label="item.Name" :value="item.ID" :key="i">
</el-option> </el-option>
</el-select> </el-select>
...@@ -18,22 +17,16 @@ ...@@ -18,22 +17,16 @@
@change="getColorStr"></el-color-picker> @change="getColorStr"></el-color-picker>
<div style="margin-left: 5px; font-size: 23px;cursor: pointer;"> <div style="margin-left: 5px; font-size: 23px;cursor: pointer;">
<i v-if="TripMapList.length - 1 == index" class="el-icon-circle-plus" style="color: #E95252;" <i v-if="TripMapList.length - 1 == index" class="el-icon-circle-plus" style="color: #E95252;"
@click="alterCity(x, index, 1)"></i> @click="operateCountry(x, index, 1)"></i>
<i v-if="index != 0" class="el-icon-delete-solid" style="color: gray;" <i v-if="index != 0" class="el-icon-delete-solid" style="color: gray;"
@click="alterCity(x, index, 0)"></i> @click="operateCountry(x, index, 0)"></i>
</div> </div>
</div> </div>
</div> </div>
<div class="row-aic" style="flex-shrink: 0;"> <div class="row-aic" style="flex-shrink: 0;">
<div> <el-button type="danger" key="BtnClose" @click="Cancel">关闭</el-button>
<span class="MapImgButtom CancelMapImg" @click="Cancel">取消</span> <el-button type="primary" key="BtnCreateImg" :disabled="setLoading" @click="getResultImg()">{{btnStr}}
</div> </el-button>
<div style="margin-left: 20px;">
<span class="MapImgButtom setMapImg" @click="SavePositionStr">保存坐标</span>
</div>
<div style="margin-left: 20px;">
<span class="MapImgButtom setMapImg" @click="(setLoading = true), getResultImg()">生成图片</span>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -55,13 +48,8 @@ ...@@ -55,13 +48,8 @@
props: ["PostConfig", "ConfigId"], props: ["PostConfig", "ConfigId"],
data() { data() {
return { return {
layerIds: [],
sourceIds: [],
setLoading: false, setLoading: false,
imageUrl: "", pageLoading: false,
deviceMarkers: [],
loadingCity: false,
loading: false,
TripColor: "", TripColor: "",
NationList: [], NationList: [],
searchNation: { searchNation: {
...@@ -125,7 +113,8 @@ ...@@ -125,7 +113,8 @@
"fill-opacity": 0.5 "fill-opacity": 0.5
}, },
paintRbBgList: [], paintRbBgList: [],
paintHgBgList: [] paintHgBgList: [],
btnStr: '生成图片'
}; };
}, },
watch: { watch: {
...@@ -135,9 +124,24 @@ ...@@ -135,9 +124,24 @@
this.TripMapList.forEach(x => { this.TripMapList.forEach(x => {
x.CityList.forEach(y => { x.CityList.forEach(y => {
this.citiesData.forEach(z => { this.citiesData.forEach(z => {
if (y.MName == z.name && y.Lng) { if (y.MName == z.name) {
z.Lng = y.Lng; if (y.Lat && y.Lng) {
z.Lat = y.Lat; z.Lng = y.Lng;
z.Lat = y.Lat;
} else {
//使用系统中的经纬度
var tempCity = x.CityListAll.find((cItem) => {
return cItem.ID === y.MId;
})
if (tempCity && tempCity.Lng && tempCity.Lat) {
z.Lng = tempCity.Lng;
z.Lat = tempCity.Lat;
z.latitude = Number(tempCity.Lat);
z.longitude = Number(tempCity.Lng);
}
}
y.Lat = z.Lat;
y.Lng = z.Lng;
} }
}); });
}); });
...@@ -175,9 +179,7 @@ ...@@ -175,9 +179,7 @@
CityListAll: this.CityListAll, CityListAll: this.CityListAll,
CityListIds: [4, 6], CityListIds: [4, 6],
NationList: this.NationList, NationList: this.NationList,
ColorStr: this.PostConfig.TripColor ? ColorStr: this.PostConfig.TripColor ? this.PostConfig.TripColor : "#409eff",
this.PostConfig.TripColor :
"#409eff",
ConfigId: this.ConfigId, ConfigId: this.ConfigId,
Id: 0, Id: 0,
MId: 2, MId: 2,
...@@ -210,7 +212,6 @@ ...@@ -210,7 +212,6 @@
this.setPaintRbBgList() this.setPaintRbBgList()
this.initMap() this.initMap()
}, },
methods: { methods: {
// 初始化地图 // 初始化地图
initMap() { initMap() {
...@@ -228,13 +229,12 @@ ...@@ -228,13 +229,12 @@
}); });
this.map.addSource("word-source-japan", { this.map.addSource("word-source-japan", {
type: "geojson", type: "geojson",
data: worldGeoJSONJapan, //"http://imgfile.oytour.com/MapData/japan_.geojson" data: worldGeoJSONJapan,
}); });
this.map.addSource("word-source-Korea", { this.map.addSource("word-source-Korea", {
type: "geojson", type: "geojson",
data: worldGeoJSONKorea, data: worldGeoJSONKorea,
}); });
if ( if (
this.TripMapList && this.TripMapList &&
this.TripMapList.length > 0 && this.TripMapList.length > 0 &&
...@@ -263,7 +263,6 @@ ...@@ -263,7 +263,6 @@
console.log(type, "1初始化---- 2数据更新"); console.log(type, "1初始化---- 2数据更新");
// 显示国家 // 显示国家
this.addCountryFillRange(); this.addCountryFillRange();
// 获取坐标信息 // 获取坐标信息
await this.calcCitiesGeoInfoHandler(); await this.calcCitiesGeoInfoHandler();
// 可见范围 // 可见范围
...@@ -283,15 +282,12 @@ ...@@ -283,15 +282,12 @@
this.createLineHandler(); //连线 this.createLineHandler(); //连线
await this.addCountriesMaker(); //标记国家 await this.addCountriesMaker(); //标记国家
} }
//this.addDocumentEventListener();
}, },
//组装数据
// 组装数据
UpdateDatas() { UpdateDatas() {
let listCity = []; let listCity = [];
let listCountries = []; let listCountries = [];
this.listCity = []; this.listCity = [];
// this.countriesData = [];
this.pois = ""; this.pois = "";
this.TripMapList.forEach(x => { this.TripMapList.forEach(x => {
let obj = { let obj = {
...@@ -332,9 +328,24 @@ ...@@ -332,9 +328,24 @@
this.TripMapList.forEach(x => { this.TripMapList.forEach(x => {
x.CityList.forEach(y => { x.CityList.forEach(y => {
this.citiesData.forEach(z => { this.citiesData.forEach(z => {
if (y.MName == z.name && y.Lng) { if (y.MName == z.name) {
z.Lng = y.Lng; if (y.Lat && y.Lng) {
z.Lat = y.Lat; z.Lng = y.Lng;
z.Lat = y.Lat;
} else {
//使用系统中的经纬度
var tempCity = x.CityListAll.find((cItem) => {
return cItem.ID === y.MId;
})
if (tempCity && tempCity.Lng && tempCity.Lat) {
z.Lng = tempCity.Lng;
z.Lat = tempCity.Lat;
z.latitude = Number(tempCity.Lat);
z.longitude = Number(tempCity.Lng);
}
}
y.Lat = z.Lat;
y.Lng = z.Lng;
} }
}); });
}); });
...@@ -390,71 +401,49 @@ ...@@ -390,71 +401,49 @@
}); });
}); });
}, },
// 保存标记坐标
SavePositionStr() {
this.PostConfig.TripMapList = JSON.parse(JSON.stringify(this.TripMapList));
this.$emit('saveMsg')
// this.TripMapList.forEach(x => {
// x.CityList.forEach(y => {
// this.citiesData.forEach(z => {
// if (y.MName == z.name) {
// y.Lng = z.Lng;
// y.Lat = z.Lat;
// }
// });
// });
// this.countriesData.forEach(y => {
// if (x.MName == y.name) {
// x.Lng = y.Lng;
// x.Lat = y.Lat;
// }
// });
// });
},
// 导出地图片 // 导出地图片
getResultImg() { getResultImg() {
this.btnStr = "生成中..";
this.setLoading = true;
this.pageLoading = true;
let that = this; let that = this;
var postJson = { var postJson = {
ConfigId: this.ConfigId ConfigId: this.ConfigId
}; };
this.imageUrl = this.map.getCanvas().toDataURL("image/png"); var trip_map_obj = document.getElementById("trip_map");
let mapCanvas = document.querySelector(".mapboxgl-canvas"); html2Canvas(trip_map_obj).then(function (canvas) {
// mapCanvas.style.display = "none"; var image = document.createElement("a");
html2Canvas(document.getElementById("trip_map")).then(function (canvas) {
var image = document.createElement(
"a"); //image.href = canvas.toDataURL("image/jpeg").replace("image/jpeg", "image/octet-stream");
image.href = canvas.toDataURL("image/png"); image.href = canvas.toDataURL("image/png");
let blob = that.base64ToBlob(image.href); let blob = that.base64ToBlob(image.href);
let newArr = []; let newArr = [];
newArr.push(blob); newArr.push(blob);
var path = `/Upload/Temporary`; var path = `/Upload/Temporary`;
that.uploadSelfBlob(path, newArr, postJson, x => { that.uploadSelfBlob(path, newArr, postJson, x => {
that.pageLoading = false;
that.btnStr = "生成图片";
if (x.data.StatusCode == 1) { if (x.data.StatusCode == 1) {
that.SavePositionStr()
that.setLoading = false; that.setLoading = false;
let allPath = that.domainManager().ViittoFileUrl + x.data.FilePath; let allPath = that.domainManager().ViittoFileUrl + x.data.FilePath;
that.PostConfig.Mapurl = allPath; that.PostConfig.Mapurl = allPath;
that.$emit("Success", allPath); //调用父页面保存方法
that.PostConfig.TripMapList = JSON.parse(JSON.stringify(that.TripMapList));
that.$emit('saveMsg');
} else { } else {
that.setLoading = false; that.setLoading = false;
} }
}); });
return;
image.download = "map.png";
image.click();
}); });
}, },
//关闭地图弹窗
Cancel() { Cancel() {
this.$emit("Cancel"); this.$emit("Cancel");
}, },
// 获取国家 // 获取国家
async getAddress(Type) { async getAddress(Type) {
this.loading = true;
await this.apipost( await this.apipost(
"dict_get_Destination_GetCityExtList", "dict_get_Destination_GetCityExtList",
this.searchNation, this.searchNation,
res => { res => {
this.loading = false;
if (Type == 1) { if (Type == 1) {
this.NationList = res.data.data; this.NationList = res.data.data;
this.NationList.forEach(x => { this.NationList.forEach(x => {
...@@ -464,17 +453,16 @@ ...@@ -464,17 +453,16 @@
this.TripMapList.forEach(x => { this.TripMapList.forEach(x => {
x.NationList = res.data.data; x.NationList = res.data.data;
}); });
this.$forceUpdate();
} }
}, },
err => {} err => {}
); );
}, },
// 添加、删除 //添加、删除国家(type=1,新增,0-删除)
alterCity(x, index, type) { operateCountry(x, index, type) {
let obj = { let obj = {
CityList: [], CityList: [],
CityListAll: [], CityListAll: [], //国家城市下来列表
CityListIds: [], CityListIds: [],
NationList: x.NationList, NationList: x.NationList,
ColorStr: x.ColorStr, ColorStr: x.ColorStr,
...@@ -498,10 +486,13 @@ ...@@ -498,10 +486,13 @@
if (type) { if (type) {
this.TripMapList.push(JSON.parse(JSON.stringify(obj))); this.TripMapList.push(JSON.parse(JSON.stringify(obj)));
} else { } else {
let MId = this.countriesData[index].MId; var currentCountry = this.countriesData[index];
this.ClearSource('curve-layer-' + MId, 1) if (currentCountry) {
this.ClearSource('curve-source-' + MId, 2) let MId = currentCountry.MId;
this.ClearSource('world-layer-' + MId, 1) this.ClearSource('curve-layer-' + MId, 1)
this.ClearSource('curve-source-' + MId, 2)
this.ClearSource('world-layer-' + MId, 1)
}
this.TripMapList.splice(index, 1); this.TripMapList.splice(index, 1);
this.PostConfig.TripMapList = JSON.parse(JSON.stringify(this.TripMapList)); this.PostConfig.TripMapList = JSON.parse(JSON.stringify(this.TripMapList));
} }
...@@ -509,8 +500,8 @@ ...@@ -509,8 +500,8 @@
getColorStr() { getColorStr() {
this.PostConfig.TripMapList = JSON.parse(JSON.stringify(this.TripMapList)); this.PostConfig.TripMapList = JSON.parse(JSON.stringify(this.TripMapList));
}, },
// 城市ids //选择城市或移除城市
getCityListIds(x, index) { changeCityListIds(x, index) {
x.CityList = []; x.CityList = [];
let obj = { let obj = {
CityList: [], CityList: [],
...@@ -546,8 +537,7 @@ ...@@ -546,8 +537,7 @@
this.$forceUpdate(); this.$forceUpdate();
this.PostConfig.TripMapList = JSON.parse(JSON.stringify(this.TripMapList)); this.PostConfig.TripMapList = JSON.parse(JSON.stringify(this.TripMapList));
}, },
//查询国家下面的城市
// 查询城市
SearchCity(MId, x, index) { SearchCity(MId, x, index) {
if (x) { if (x) {
x.NationList.forEach(item => { x.NationList.forEach(item => {
...@@ -556,14 +546,11 @@ ...@@ -556,14 +546,11 @@
} }
}); });
} }
this.loadingCity = true;
this.apipost( this.apipost(
"dict_get_Destination_GetCountryCityList", { "dict_get_Destination_GetCountryCityList", {
QCountry: MId QCountry: MId
}, },
res => { res => {
this.loadingCity = false;
this.CityList = res.data.data; this.CityList = res.data.data;
this.CityList.forEach(x => { this.CityList.forEach(x => {
x.ID = Number(x.ID); x.ID = Number(x.ID);
...@@ -579,7 +566,6 @@ ...@@ -579,7 +566,6 @@
let obj = [ let obj = [
["==", ["get", "name"], x.MName], this.getRandomColor(), ["==", ["get", "name"], x.MName], this.getRandomColor(),
] ]
}) })
} }
}); });
...@@ -600,11 +586,8 @@ ...@@ -600,11 +586,8 @@
this.countriesData.forEach((x, i) => { this.countriesData.forEach((x, i) => {
if (x.MName == "中国") x.name = "中华人民共和国"; if (x.MName == "中国") x.name = "中华人民共和国";
if (x.MName == "韩国") x.name = "大韩民国"; if (x.MName == "韩国") x.name = "大韩民国";
x.CityListAll.forEach(y => { let source;
var paintBgObj;
})
let source
var paintBgObj
if (x.MId != 651 && x.MId != 891) { if (x.MId != 651 && x.MId != 891) {
source = "word-source" source = "word-source"
} else { } else {
...@@ -654,7 +637,6 @@ ...@@ -654,7 +637,6 @@
paint: paintBgObj paint: paintBgObj
}) })
} }
}); });
}, },
clearCitiesMarkersHandler() { clearCitiesMarkersHandler() {
...@@ -666,7 +648,6 @@ ...@@ -666,7 +648,6 @@
} }
}, },
addMarker() { addMarker() {
// let markerColor = calculateComplementaryColor("#71adeb");
this.citiesData.forEach((item, i) => { this.citiesData.forEach((item, i) => {
var marker = new mapboxgl.Marker({ var marker = new mapboxgl.Marker({
color: "#d73b33", color: "#d73b33",
...@@ -697,6 +678,7 @@ ...@@ -697,6 +678,7 @@
marker.setLngLat([item.longitude, item.latitude]); marker.setLngLat([item.longitude, item.latitude]);
} }
marker.addTo(this.map); marker.addTo(this.map);
marker.on("dragend", function () { marker.on("dragend", function () {
let currentMarkerLngLat = marker.getLngLat(); let currentMarkerLngLat = marker.getLngLat();
console.log(currentMarkerLngLat, '------currentMarkerLngLat') console.log(currentMarkerLngLat, '------currentMarkerLngLat')
...@@ -704,7 +686,6 @@ ...@@ -704,7 +686,6 @@
that.citiesData[i].Lat = currentMarkerLngLat.lat; that.citiesData[i].Lat = currentMarkerLngLat.lat;
that.setCitiesPosition() that.setCitiesPosition()
}); });
this.deviceMarkers.push(marker); this.deviceMarkers.push(marker);
}, },
async getCoordinates(x) { async getCoordinates(x) {
...@@ -712,11 +693,9 @@ ...@@ -712,11 +693,9 @@
const response = await fetch( const response = await fetch(
`https://api.mapbox.com/geocoding/v5/mapbox.places/${x.PMName}/${x.MName}.json?types=place&access_token=pk.eyJ1IjoiYWxleDkwMTIiLCJhIjoiY2xtOGw4NHdkMGFndTNjcnFkeWZncGc2dyJ9.lVrAdPHE0Dg5zoWFidfj4Q` `https://api.mapbox.com/geocoding/v5/mapbox.places/${x.PMName}/${x.MName}.json?types=place&access_token=pk.eyJ1IjoiYWxleDkwMTIiLCJhIjoiY2xtOGw4NHdkMGFndTNjcnFkeWZncGc2dyJ9.lVrAdPHE0Dg5zoWFidfj4Q`
); );
if (!response.ok) { if (!response.ok) {
throw new Error("网络请求失败"); throw new Error("网络请求失败");
} }
const data = await response.json(); const data = await response.json();
if (data.features.length > 0) { if (data.features.length > 0) {
const [longitude, latitude] = data.features[0].center; const [longitude, latitude] = data.features[0].center;
...@@ -745,7 +724,6 @@ ...@@ -745,7 +724,6 @@
); );
}, },
createLineHandler() { createLineHandler() {
// let poilines = this.pois.split(",");
let that = this let that = this
this.listCity.forEach((p, i) => { this.listCity.forEach((p, i) => {
if (i < this.listCity.length - 1) { if (i < this.listCity.length - 1) {
...@@ -785,7 +763,6 @@ ...@@ -785,7 +763,6 @@
paint: { paint: {
"line-color": ["rgba", 0, 0, 0, 0.3], "line-color": ["rgba", 0, 0, 0, 0.3],
"line-width": 1.5 "line-width": 1.5
//'line-dasharray': [2, 4],
} }
}); });
} }
...@@ -794,7 +771,6 @@ ...@@ -794,7 +771,6 @@
}); });
}, },
calculateBezierControlPoint(start, end) { calculateBezierControlPoint(start, end) {
//const controlPoint1 = [start[0] + 0.3, start[1] + 0.2];
const controlPoint1 = [ const controlPoint1 = [
start[0] > end[0] ? start[0] - 0.1 : start[0] + 0.1, start[0] > end[0] ? start[0] - 0.1 : start[0] + 0.1,
start[1] > end[1] ? end[1] + 0.1 : end[1] - 0.1 start[1] > end[1] ? end[1] + 0.1 : end[1] - 0.1
...@@ -813,10 +789,8 @@ ...@@ -813,10 +789,8 @@
end[0], end[0],
end[1] end[1]
); );
const numberOfPoints = 100; const numberOfPoints = 100;
const bezierCoordinates = []; const bezierCoordinates = [];
for (let i = 0; i <= numberOfPoints; i++) { for (let i = 0; i <= numberOfPoints; i++) {
const t = i / numberOfPoints; const t = i / numberOfPoints;
const point = bezier.get(t); const point = bezier.get(t);
...@@ -848,7 +822,6 @@ ...@@ -848,7 +822,6 @@
let drift = parseInt( let drift = parseInt(
e.target.parentNode.getAttribute("data-x-drift") e.target.parentNode.getAttribute("data-x-drift")
); );
console.log(drift);
if (arrow == "top") { if (arrow == "top") {
marker.setOffset([0, -25]); marker.setOffset([0, -25]);
} else if (arrow == "bottom") { } else if (arrow == "bottom") {
...@@ -908,26 +881,22 @@ ...@@ -908,26 +881,22 @@
}) })
); );
}, },
//获取国家地址
async getCountryCoordinates(countryName) { async getCountryCoordinates(countryName) {
let result = []; let result = [];
try { try {
const response = await fetch( const response = await fetch(
`https://api.mapbox.com/geocoding/v5/mapbox.places/${countryName}.json?types=country&access_token=pk.eyJ1IjoiYWxleDkwMTIiLCJhIjoiY2xtOGw4NHdkMGFndTNjcnFkeWZncGc2dyJ9.lVrAdPHE0Dg5zoWFidfj4Q` `https://api.mapbox.com/geocoding/v5/mapbox.places/${countryName}.json?types=country&access_token=pk.eyJ1IjoiYWxleDkwMTIiLCJhIjoiY2xtOGw4NHdkMGFndTNjcnFkeWZncGc2dyJ9.lVrAdPHE0Dg5zoWFidfj4Q`
); );
if (response.ok) { if (response.ok) {
const data = await response.json(); const data = await response.json();
if (data.features.length > 0) { if (data.features.length > 0) {
const countryInfo = data.features.find(x => const countryInfo = data.features.find(x =>
x.id.startsWith("country.") x.id.startsWith("country.")
); );
// const bbox = countryInfo.bbox;
// const topCenterLatitude = bbox[3] + (bbox[1] - bbox[3]) / 2;
// const topCenterLongitude = bbox[0] + (bbox[2] - bbox[0]) / 2;
// result = [topCenterLongitude, topCenterLatitude];
const [longitude, latitude] = countryInfo.center; const [longitude, latitude] = countryInfo.center;
result = [longitude, latitude]; result = [longitude, latitude];
} else {} }
} }
} catch (error) {} } catch (error) {}
return result; return result;
...@@ -950,7 +919,6 @@ ...@@ -950,7 +919,6 @@
} }
#trip_map { #trip_map {
/* position: absolute; */
position: fixed; position: fixed;
top: 0; top: 0;
bottom: 0; bottom: 0;
......
...@@ -591,7 +591,6 @@ ...@@ -591,7 +591,6 @@
//选中的景点 //选中的景点
'ChooseScenicArray': { 'ChooseScenicArray': {
handler: function (val, oldVal) { handler: function (val, oldVal) {
console.log("this.ChooseScenicArray",this.ChooseScenicArray)
//新增 //新增
this.ChooseScenicArray.forEach(x => { this.ChooseScenicArray.forEach(x => {
let isExist = false; let isExist = false;
...@@ -604,7 +603,6 @@ ...@@ -604,7 +603,6 @@
let scenic = this.$tripUtils.scenicObj(); let scenic = this.$tripUtils.scenicObj();
this.QScenicList.forEach(s => { this.QScenicList.forEach(s => {
if (s.ID === x) { if (s.ID === x) {
console.log("scenic22",s);
scenic.Description = s.Feature; scenic.Description = s.Feature;
scenic.CouponsId = x; scenic.CouponsId = x;
scenic.CouponsName = s.Name; scenic.CouponsName = s.Name;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment