Commit 1cea4433 authored by youjie's avatar youjie

no message

parent 5a2f963b
<style>
.page_MyCustomer ._mc_addbox {
height: 52px;
width: 100%;
margin-top: 20px;
}
.page_MyCustomer ._mc_addbox>li {
float: left;
width: 116px;
font-size: 14px;
height: 52px;
color: #666;
text-align: center;
line-height: 52px;
background: #E9E9E9;
cursor: pointer;
}
.page_MyCustomer ._mc_addbox>li.active {
background: #fff;
color: #333;
}
.page_MyCustomer ._mc_addbox .divActive {
margin: -3px auto;
width: 26px;
height: 3px;
background: #E95252;
}
.page_MyCustomer ._mc_edit {
overflow: auto;
display: none;
position: fixed;
z-index: 50;
bottom: 0;
left: 0;
border-top: 3px solid #38425d;
background-color: #f9f9f9;
padding: 10px;
width: 100%;
min-width: 1146px;
}
.page_MyCustomer .edHeight {
display: block;
height: 291px;
}
.page_MyCustomer ._mc_list {
overflow-x: auto;
background: #fff;
padding-top: 20px;
padding-left: 15px;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar {
width: 4px;
height: 8px;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar-thumb {
border-radius: 4px;
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #EDEDED;
}
.page_MyCustomer ._mc_edit ._tit {
padding-left: 10px;
border-left: 3px solid #E95252;
font-size: 16px;
font-family: 'PingFangSc-Fine';
color: #000000
}
.page_MyCustomer ._mc_edit ._info_box ul._form li {
float: left;
}
.page_MyCustomer ._check_list {
padding-left: 120px;
margin-bottom: 20px;
}
.page_MyCustomer ._check_box .el-form-item {
margin-bottom: 0
}
.page_MyCustomer ._info_box .el-form-item__label {
font-size: 12px;
color: #666;
}
._remark textarea {
resize: none;
width: 646px;
height: 100px
}
.page_MyCustomer .avatar {
width: 148px;
height: 148px;
display: block;
}
.page_MyCustomerSearch {
width: 100%;
min-height: auto;
overflow: hidden;
padding: 0 0 20px 0;
}
.page_MyCustomerSearch li {
float: left;
font-size: 12px;
color: #666;
margin: 20px 0 0px 0;
}
.page_MyCustomerSearch li>span {
display: inline-block;
}
.page_MyCustomerSearch li span>em {
display: inline-block;
min-width: 60px;
text-align: right;
font-style: normal;
margin: 0 12px 0 0;
}
.page_MyCustomerSearch li:last-child {
float: right;
}
.VisaProductTable {
width: 100%;
font-size: 14px;
color: #333;
border-collapse: collapse;
}
.VisaProductTable tr th {
background: #E6E6E6;
height: 30px;
font-size: 12px;
text-align: left;
text-indent: 25px;
}
.VisaProductTable tr {
background: #fff;
text-align: left;
}
.VisaProductTable tr td {
height: 60px;
padding-left: 25px;
border: 1px solid #cccccc;
font-size: 14px;
color: #333;
}
.VisaProductTable tr td>img {
width: 24px;
height: 24px;
border-radius: 50%;
float: left;
margin-right: 5px;
}
.VisaProductTable tr td .tuanqian {
vertical-align: middle;
font-weight: 400;
display: table-cell;
text-align: center;
width: 44px;
font-size: 12px;
height: 19px;
color: #FFFFFF;
background: #2AAEF2;
}
.VisaProductTable tr td .geqian {
vertical-align: middle;
font-weight: 400;
display: table-cell;
text-align: center;
width: 44px;
font-size: 12px;
height: 19px;
color: #FFFFFF;
background: #FF9000;
}
.VisaProductTable tr td .totalPrice {
color: #FF9000;
font-weight: 400;
font-size: 16px;
}
.VisaProductTable tr td .sendVisaDate {
font-weight: bold;
}
.page_MyCustomer ._edHeight {
height: 340px;
}
.dateClass {
width: 171px !important;
}
.surplusNum {
color: #E95252 !important;
}
.peopleNum {
height: 15px;
font-size: 16px;
font-weight: 400;
color: rgba(51, 51, 51, 1);
line-height: 24px;
}
.Visa_income {
width: 18px;
height: 16px;
font-size: 16px;
font-weight: 400;
line-height: 24px;
color: RGBA(71, 191, 140, 1);
}
.VisaProductTable tr td .createName {
vertical-align: middle;
display: table-cell;
text-align: center;
width: 50px;
height: 21px;
}
.groupTourOrderIcon button {
width: 28px;
height: 28px;
border-radius: 4px;
}
.groupTourOrderIcon .el-button--primary {
padding: 5px;
margin: 0;
font-size: 14px !important;
}
.groupTourOrder_tickets_red {
color: #ff0000;
text-decoration: underline;
}
.groupTourOrder_tickets_blue {
color: #0000ff;
text-decoration: underline;
}
.groupTourOrder_tickets_green {
color: #008000;
text-decoration: underline;
}
.groupTourOrder_tickets_black {
color: #000000;
text-decoration: underline;
}
.VD-remarkTitle {
display: inline-block;
float: left;
width: 36px;
white-space: nowrap;
font-size: 14px;
}
.VD-remarkCon {
float: left;
display: inline-block;
width: 94%;
font-size: 14px;
}
.VD-redType {
color: red;
}
</style>
<template> <template>
<div class="page_MyCustomer"> <VisaProductOrder :pagesTitle="pagesTitle"></VisaProductOrder>
<div class="query-box" style="border:none">
<ul>
<li>
<span>
<em>{{$t('fnc.danhao')}}</em>
<el-input class='w220' v-model='msg.VisaTCNUM' :placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<li>
<span>
<em>订单ID</em>
<el-input class='w220' v-model='msg.OrderId' placeholder="请输入订单ID"></el-input>
</span>
</li>
<li>
<span>
<em>{{$t('hotel.product_name')}}</em>
<el-input class='w220' v-model='msg.Name' :placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<!-- <li>
<span>
<em>送签日期</em><el-date-picker v-model='msg.SendStartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>-<el-date-picker v-model='msg.SendEndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li> -->
<li>
<span>
<em>订单状态</em>
<el-select v-model='msg.VisaOrderStatus'>
<el-option label="不限" value="0" key='0'></el-option>
<el-option label="正常" value="1" key='1'></el-option>
<el-option label="取消" value="2" key='2'></el-option>
<el-option label="待付款" value="3" key='3'></el-option>
</el-select>
</span></li>
<li>
<span>
<em>{{$t('fnc.bmriqi')}}</em>
<el-date-picker v-model='msg.StartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
-<el-date-picker v-model='msg.EndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li>
<li>
<button class="hollowFixedBtn" @click="getList()">{{$t('pub.searchBtn')}}</button>
<!-- <button class="normalBtn" @click="addShow=true">添加</button> -->
</li>
</ul>
</div>
<div style="display: flex;justify-content: end;margin-bottom: 10px;">
<p><span class="groupTourOrderByTuan_ico"><i style="background-color:#3FC4FF"></i><span>{{$t('fnc.yidadan')}}</span></span>
<span class="groupTourOrderByTuan_ico"><i style="background-color:#F1416C"></i><span>{{$t('fnc.yhcnyshenhe')}}</span></span>
<span class="groupTourOrderByTuan_ico"><i style="background-color:#ff9800"></i><span>{{$t('fnc.ytongguo')}}</span></span></p>
</div>
<visaOrderList :pagesTitle="pagesTitle" :OrderList="dataList" v-loading="loading" @success="getList"> </visaOrderList>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="this.msg.pageSize" :total="total">
</el-pagination>
<div class="_mc_edit _scrollbar" :class="addShow==true?'edHeight':''">
<p class="_tit">{{$t('salesModule.UpOrder')}}
<span class="fr">
<button class="hollowFixedBtn" type="button" @click="cancelEdit()">{{$t('pub.cancelBtn')}}</button>
<button type="button" class="normalBtn" @click="saveVisa()">{{$t('pub.saveBtn')}}</button>
</span>
</p>
<el-form class="_info_box clearfix" :model="addMsg" :rules="rules" ref="addMsg" label-width="120px">
<el-row :gutter="20">
<el-col :span="4">
<el-form-item :label="$t('hotel.product_name')" prop="Name">
<el-input v-model="addMsg.Name" :placeholder="$t('pub.pleaseImport')" :disabled="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('Airticket.Air_Number')" prop="PeopleNum">
<el-input @keyup.native="checkInteger(addMsg,'PeopleNum')" min="1" v-model="addMsg.PeopleNum"
:placeholder="$t('pub.pleaseImport')" maxlength="20" :disabled="updateRemarksStatus"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('salesModule.CustomerType')">
<el-select v-model="addMsg.ClientType" :disabled="updateRemarksStatus" size=mini>
<el-option :label="$t('salesModule.Trade')" value="1"></el-option>
<el-option :label="$t('Operation.Op_direct')" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('pub.pubRemark')">
<el-input v-model="addMsg.Remark" type="textarea" maxlength="500" :placeholder="$t('pub.pleaseImport')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="4">
</el-col>
</el-row>
<el-row :gutter="20" v-if='visaManagementId>0'>
<el-col :span="4">
<el-form-item :label="$t('visaT.rujingtime')" prop="EnterCountryTime">
<el-date-picker value-format="yyyy-MM-dd" class='w170' v-model='addMsg.EnterCountryTime' type="date"
:disabled="updateRemarksStatus"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.chujingtime')" prop="LeaveCountryTime">
<el-date-picker value-format="yyyy-MM-dd" class='w170' v-model='addMsg.LeaveCountryTime' type="date"
:disabled="updateRemarksStatus"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.cfAirport')" prop="DepartAirport">
<el-select v-model="addMsg.DepartAirport" filterable size=mini @change="getFilghtForAir(1)"
:disabled="updateRemarksStatus">
<el-option v-for="item in ChinaAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Portofentry')" prop="EnterCountryPort">
<el-select v-model="addMsg.EnterCountryPort" filterable size=mini @change="getFilghtForAir(1)"
:disabled="updateRemarksStatus">
<el-option v-for="item in JapanAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Inboundflights')" prop="EnterCountryFlight">
<el-select v-model="addMsg.EnterCountryFlight" filterable size=mini :disabled="updateRemarksStatus">
<el-option v-for="item in FilghtForAirIn" :key="item.ID" :label="item.Flight_number" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
</el-col>
</el-row>
<el-row :gutter="20" v-if='visaManagementId>0'>
<el-col :span="4">
<el-form-item :label="$t('visaT.fhjichang')" prop="GetBackAirport">
<el-select v-model="addMsg.GetBackAirport" filterable size=mini @change="getFilghtForAir(2)"
:disabled="updateRemarksStatus">
<el-option v-for="item in ChinaAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Exitport')" prop="LeaveCountryPort">
<el-select v-model="addMsg.LeaveCountryPort" filterable size=mini @change="getFilghtForAir(2)"
:disabled="updateRemarksStatus">
<el-option v-for="item in JapanAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Outboundflight')" prop="LeaveCountryFlight">
<el-select v-model="addMsg.LeaveCountryFlight" filterable size=mini :disabled="updateRemarksStatus">
<el-option v-for="item in FilghtForAirOut" :key="item.ID" :label="item.Flight_number" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template> </template>
<script> <script>
import visaOrderList from './components/visaOrderList.vue'; import VisaProductOrder from './components/VisaProductOrder.vue';
export default { export default {
components: { visaOrderList }, components: { VisaProductOrder },
data() { data() {
return { return {
pagesTitle: '销售', pagesTitle: '销售',
userInfo: {},
qjGroupId: -1,
F_InvoiceManagement: false,
F_Finance_Create: false,
// pickerOptions: {
// disabledDate: (time) => {
// let endTime=new Date(this.SendStartDate)
// return time.getTime()<endTime.getTime()
// //return time.getTime() <starTime.getTime() ||time.getTime() > starTime.getTime()+2.592e9 || time.getTime() > Date.now();//禁止选择的日期:(开始日期之前,开始日期一个月以后的日期,今天之后的日期)
// }
// },
msg: {
pageIndex: 1,
pageSize: 12,
StartDate: '',
EndDate: '',
SendStartDate: '',
SendEndDate: '',
Name: '',
VisaTCNUM: '',
VisaOrderStatus: '0',
OrderId: 0
},
addMsg: {
Id: 0,
Remark: '',
VisaId: '',
Name: "",
PeopleNum: '',
EnterCountryTime: '',
LeaveCountryTime: '',
DepartAirport: '',
GetBackAirport: '',
EnterCountryPort: '',
LeaveCountryPort: '',
EnterCountryFlight: '',
LeaveCountryFlight: '',
VisaPlanId: 0,
DepartDate: '',
ClientType: ''
},
rules: {
PeopleNum: [{
required: true,
message: "请输入人数",
trigger: "blur"
}],
//DepartDate:[{required: true, message: "请输入出发日期", trigger: "blur"}],
EnterCountryTime: [{
required: true,
message: "请输入入境日期",
trigger: "blur"
}],
LeaveCountryTime: [{
required: true,
message: "请输入出境日期",
trigger: "blur"
}]
},
updateRemarksStatus: false,
SendStartDate: '',
visaManagementId: 0,
VisaApplyForTypeEnum: [],
JapanAirportList: [],
ChinaAirportList: [],
countryList: [],
MarriageType: [],
VisaDeparturesType: [],
VisaDutyTypeEnum: [],
VisaIdentityTypeEnum: [],
FilghtForAirIn: [],
FilghtForAirOut: [],
dataList: [],
EmployeeList: [],
loading: false,
total: 0,
addShow: false,
currentPage: 1,
} }
}, },
methods: { methods: {
GetSupperOrderEditAuth() {
var actionCode = this.$AuthCode.F_InvoiceManagement;
this.CheckUserAuth(actionCode, res => {
if (res.data.resultCode == 1 && res.data.data == 1) {
this.F_InvoiceManagement = true;
}
});
var actionCodeNew = this.$AuthCode.F_Finance_Create;
this.CheckUserAuth(actionCodeNew, res => {
if (res.data.resultCode == 1 && res.data.data == 1) {
this.F_Finance_Create = true;
}
});
},
goUrlFinance(name, path, id, tcmun) {
this.$router.push({
name: path,
query: {
id: id,
tcmun: tcmun,
blank: 'y',
tab: name
}
});
},
goIisDetail: function (id) { // 跳转发票详情页面
this.$router.push({
name: 'invoicesManagerDetail',
query: {
id: id,
noDetail: 1,
InvoiceApplyType: 2,
blank: "y",
}
});
},
// 申请发票
goUrlAdd: function (path, OrderId, TCID, customerId, InvoiceApplyType) {
this.$router.push({
name: path,
query: {
OrderId: OrderId,
TCID: TCID,
customerId: customerId ? customerId : 0,
InvoiceApplyType: InvoiceApplyType,
blank: "y",
}
});
},
goUrl2(path, id, name) {
this.$router.push({
name: path,
query: {
id: id,
blank: 'y',
tab: name
}
});
},
getChinaAirportList() { // 获取国内机场
let msg = {
City_id: 0,
Country_id: 2,
TrafficType: 1,
}
this.apipost('airport_post_GetList', msg, res => {
if (res.data.resultCode == 1) {
this.ChinaAirportList = res.data.data
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
getJapanAirportList() { // 获取日本机场
let msg = {
City_id: 0,
Country_id: 651,
TrafficType: 1,
}
this.apipost('airport_post_GetList', msg, res => {
if (res.data.resultCode == 1) {
this.JapanAirportList = res.data.data
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
FilghtForAir(data, type) {
this.apipost('dmc_get_visa_GetFilghtForAir', data, res => {
if (res.data.resultCode == 1) {
if (type == 1) {
this.FilghtForAirIn = res.data.data
} else {
this.FilghtForAirOut = res.data.data
}
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
getFilghtForAir(type) { // 根据机场获取航班号
let msg = {
StartAirId: 0,
EndAirId: 0,
}
if (type == 1) {
if (this.addMsg.DepartAirport && this.addMsg.EnterCountryPort) {
msg.StartAirId = this.addMsg.DepartAirport
msg.EndAirId = this.addMsg.EnterCountryPort
this.FilghtForAir(msg, type)
}
} else {
if (this.addMsg.GetBackAirport && this.addMsg.LeaveCountryPort) {
msg.StartAirId = this.addMsg.LeaveCountryPort
msg.EndAirId = this.addMsg.GetBackAirport
this.FilghtForAir(msg, type)
}
}
},
goUrl(obj) {
let TCIDARR = [];
if (obj.tcid) {
TCIDARR.push(obj.tcid)
}
let orderObj = {
OrderID: obj.id,
OrderSource: 10,
Obj: {},
SourceID: obj.visaId,
TCIDList: TCIDARR
}
this.$router.push({
name: 'ChoiceAddFinancialDocuments',
query: {
'path': 'SaleOrderModule',
'companyID': obj.rB_Branch_Id,
'visaType': true,
'blank': 'y',
'orderObj': JSON.stringify(orderObj)
}
});
},
goUrlT(obj) {
this.$router.push({
name: 'VisaGuestList',
query: {
'id': obj.id,
}
});
},
cancelOrder(obj) {
this.$confirm('是否取消?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipost('dmc_post_visa_SetOrderCancel', {
OrderId: obj.id
}, res => {
if (res.data.resultCode == 1) {
this.$message.success('取消成功!');
this.getList()
} else {
this.$message.error(res.data.message);
}
}, err => {})
}).catch(() => {
this.$message.info('已取消!');
});
},
getList() { // 获取列表数据
this.loading = true;
this.apipost('dmc_get_visa_GetOrderVisaOrderList', this.msg, res => {
if (res.data.resultCode == 0) {
this.loading = false;
this.dataList = []
} else {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
this.loading = false;
}
}, err => {})
},
getDetail(obj, updateRStatus) {
this.SendStartDate = obj.sendStartDate
this.updateRemarksStatus = updateRStatus;
this.visaManagementId = obj.visaManagementId
this.addMsg.VisaId = obj.visaId
this.addMsg.Id = obj.id
this.addShow = true
this.apipost('dmc_get_visa_GetOrderByVisaId', {
visaId: obj.visaId,
visaOrderId: obj.id
}, res => {
if (res.data.resultCode == 1) {
let x = res.data.data
this.addMsg.Name = x[0].Name
this.addMsg.PeopleNum = x[0].PeopleNum
this.addMsg.Remark = x[0].Remark
this.addMsg.EnterCountryTime = x[0].EnterCountryTime
this.addMsg.LeaveCountryTime = x[0].LeaveCountryTime
this.addMsg.DepartAirport = x[0].DepartAirport
this.addMsg.GetBackAirport = x[0].GetBackAirport
this.addMsg.EnterCountryPort = x[0].EnterCountryPort
this.addMsg.LeaveCountryPort = x[0].LeaveCountryPort
this.getFilghtForAir(1)
this.getFilghtForAir(2)
this.addMsg.EnterCountryFlight = x[0].EnterCountryFlight
this.addMsg.LeaveCountryFlight = x[0].LeaveCountryFlight
this.addMsg.VisaPlanId = x[0].VisaPlanId
//this.addMsg.DepartDate=x[0].DepartDate
this.addMsg.ClientType = x[0].ClientType.toString()
}
}, err => {})
},
saveVisa() { // 保存
this.$refs['addMsg'].validate((valid) => {
if (valid) {
this.apipost('dmc_get_visa_SetVisaOrder', this.addMsg, res => {
if (res.data.resultCode == 1) {
this.addMsg = {
Remark: '',
VisaId: '',
Name: "",
PeopleNum: '',
EnterCountryTime: '',
LeaveCountryTime: '',
DepartAirport: '',
GetBackAirport: '',
EnterCountryPort: '',
LeaveCountryPort: '',
EnterCountryFlight: '',
LeaveCountryFlight: '',
VisaPlanId: 0,
DepartDate: ''
}
this.$message.success(res.data.message)
this.addShow = false
this.getList()
} else {
this.$message.error(res.data.message)
}
}, err => {})
} else {
return false;
}
});
},
cancelEdit() { // 取消新增
this.addShow = false
this.addMsg = {
Name: '',
Remark: '',
VisaId: '',
Name: "",
PeopleNum: '',
}
this.resetForm('addMsg')
},
resetForm(formName) { // 重置表单
this.$refs[formName].resetFields();
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
}, },
mounted() { mounted() {
// crm自动登陆传过来的参数
if(this.$route.query.crmOrderObj){
let crmOrderObj = JSON.parse(this.$route.query.crmOrderObj)
this.msg.OrderId = crmOrderObj.OrderId
}else if(this.$route.query.OrderId){
this.msg.OrderId = this.$route.query.OrderId
}
this.qjGroupId = this.QjGroupId();
this.userInfo = this.getLocalStorage();
this.getList()
this.getChinaAirportList()
this.getJapanAirportList()
this.GetSupperOrderEditAuth();
} }
} }
......
<style>
.page_MyCustomer ._mc_addbox {
height: 52px;
width: 100%;
margin-top: 20px;
}
.page_MyCustomer ._mc_addbox>li {
float: left;
width: 116px;
font-size: 14px;
height: 52px;
color: #666;
text-align: center;
line-height: 52px;
background: #E9E9E9;
cursor: pointer;
}
.page_MyCustomer ._mc_addbox>li.active {
background: #fff;
color: #333;
}
.page_MyCustomer ._mc_addbox .divActive {
margin: -3px auto;
width: 26px;
height: 3px;
background: #E95252;
}
.page_MyCustomer ._mc_edit {
overflow: auto;
display: none;
position: fixed;
z-index: 50;
bottom: 0;
left: 0;
border-top: 3px solid #38425d;
background-color: #f9f9f9;
padding: 10px;
width: 100%;
min-width: 1146px;
}
.page_MyCustomer .edHeight {
display: block;
height: 291px;
}
.page_MyCustomer ._mc_list {
overflow-x: auto;
background: #fff;
padding-top: 20px;
padding-left: 15px;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar {
width: 4px;
height: 8px;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar-thumb {
border-radius: 4px;
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #EDEDED;
}
.page_MyCustomer ._mc_edit ._tit {
padding-left: 10px;
border-left: 3px solid #E95252;
font-size: 16px;
font-family: 'PingFangSc-Fine';
color: #000000
}
.page_MyCustomer ._mc_edit ._info_box ul._form li {
float: left;
}
.page_MyCustomer ._check_list {
padding-left: 120px;
margin-bottom: 20px;
}
.page_MyCustomer ._check_box .el-form-item {
margin-bottom: 0
}
.page_MyCustomer ._info_box .el-form-item__label {
font-size: 12px;
color: #666;
}
._remark textarea {
resize: none;
width: 646px;
height: 100px
}
.page_MyCustomer .avatar {
width: 148px;
height: 148px;
display: block;
}
.page_MyCustomerSearch {
width: 100%;
min-height: auto;
overflow: hidden;
padding: 0 0 20px 0;
}
.page_MyCustomerSearch li {
float: left;
font-size: 12px;
color: #666;
margin: 20px 0 0px 0;
}
.page_MyCustomerSearch li>span {
display: inline-block;
}
.page_MyCustomerSearch li span>em {
display: inline-block;
min-width: 60px;
text-align: right;
font-style: normal;
margin: 0 12px 0 0;
}
.page_MyCustomerSearch li:last-child {
float: right;
}
.VisaProductTable {
width: 100%;
font-size: 14px;
color: #333;
border-collapse: collapse;
}
.VisaProductTable tr th {
background: #E6E6E6;
height: 30px;
font-size: 12px;
text-align: left;
text-indent: 25px;
}
.VisaProductTable tr {
background: #fff;
text-align: left;
}
.VisaProductTable tr td {
height: 60px;
padding-left: 25px;
border: 1px solid #cccccc;
font-size: 14px;
color: #333;
}
.VisaProductTable tr td>img {
width: 24px;
height: 24px;
border-radius: 50%;
float: left;
margin-right: 5px;
}
.VisaProductTable tr td .tuanqian {
vertical-align: middle;
font-weight: 400;
display: table-cell;
text-align: center;
width: 44px;
font-size: 12px;
height: 19px;
color: #FFFFFF;
background: #2AAEF2;
}
.VisaProductTable tr td .geqian {
vertical-align: middle;
font-weight: 400;
display: table-cell;
text-align: center;
width: 44px;
font-size: 12px;
height: 19px;
color: #FFFFFF;
background: #FF9000;
}
.VisaProductTable tr td .totalPrice {
color: #FF9000;
font-weight: 400;
font-size: 16px;
}
.VisaProductTable tr td .sendVisaDate {
font-weight: bold;
}
.page_MyCustomer ._edHeight {
height: 340px;
}
.dateClass {
width: 171px !important;
}
.surplusNum {
color: #E95252 !important;
}
.peopleNum {
height: 15px;
font-size: 16px;
font-weight: 400;
color: rgba(51, 51, 51, 1);
line-height: 24px;
}
.Visa_income {
width: 18px;
height: 16px;
font-size: 16px;
font-weight: 400;
line-height: 24px;
color: RGBA(71, 191, 140, 1);
}
.VisaProductTable tr td .createName {
vertical-align: middle;
display: table-cell;
text-align: center;
width: 50px;
height: 21px;
}
.groupTourOrderIcon button {
width: 28px;
height: 28px;
border-radius: 4px;
}
.groupTourOrderIcon .el-button--primary {
padding: 5px;
margin: 0;
font-size: 14px !important;
}
.groupTourOrder_tickets_red {
color: #ff0000;
text-decoration: underline;
}
.groupTourOrder_tickets_blue {
color: #0000ff;
text-decoration: underline;
}
.groupTourOrder_tickets_green {
color: #008000;
text-decoration: underline;
}
.groupTourOrder_tickets_black {
color: #000000;
text-decoration: underline;
}
.VD-remarkTitle {
display: inline-block;
float: left;
width: 36px;
white-space: nowrap;
font-size: 14px;
}
.VD-remarkCon {
float: left;
display: inline-block;
width: 94%;
font-size: 14px;
}
.VD-redType {
color: red;
}
</style>
<template> <template>
<div class="page_MyCustomer"> <VisaProductOrder :pagesTitle="pagesTitle"></VisaProductOrder>
<div class="query-box" style="border:none">
<ul>
<li>
<span>
<em>{{$t('fnc.danhao')}}</em>
<el-input class='w220' v-model='msg.VisaTCNUM' :placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<li>
<span>
<em>订单ID</em>
<el-input class='w220' v-model='msg.OrderId' placeholder="请输入订单ID"></el-input>
</span>
</li>
<li>
<span>
<em>{{$t('hotel.product_name')}}</em>
<el-input class='w220' v-model='msg.Name' :placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<!-- <li>
<span>
<em>送签日期</em><el-date-picker v-model='msg.SendStartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>-<el-date-picker v-model='msg.SendEndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li> -->
<li>
<span>
<em>订单状态</em>
<el-select v-model='msg.VisaOrderStatus'>
<el-option label="不限" value="0" key='0'></el-option>
<el-option label="正常" value="1" key='1'></el-option>
<el-option label="取消" value="2" key='2'></el-option>
<el-option label="待付款" value="3" key='3'></el-option>
</el-select>
</span></li>
<li>
<span>
<em>业务员</em>
<el-select filterable v-model='msg.CreateBy'>
<el-option :value="0" label="不限"></el-option>
<el-option v-for='item in EmployeeList'
:label='item.EmName'
:value='item.EmployeeId'
:key='item.EmployeeId'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>公司</em>
<el-select filterable class="w217" v-model="msg.RB_Branch_Id"
:placeholder="$t('pub.pleaseSel')">
<el-option :value="-1" label="不限"></el-option>
<el-option v-for="item in layerCompanyList" :label="item.BName" :value="item.Id" :key="item.Id">
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>{{$t('fnc.bmriqi')}}</em>
<el-date-picker v-model='msg.StartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
-<el-date-picker v-model='msg.EndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li>
<li>
<button class="hollowFixedBtn" @click="getList()">{{$t('pub.searchBtn')}}</button>
<!-- <button class="normalBtn" @click="addShow=true">添加</button> -->
</li>
</ul>
</div>
<div style="display: flex;justify-content: end;margin-bottom: 10px;">
<p><span class="groupTourOrderByTuan_ico"><i style="background-color:#3FC4FF"></i><span>{{$t('fnc.yidadan')}}</span></span>
<span class="groupTourOrderByTuan_ico"><i style="background-color:#F1416C"></i><span>{{$t('fnc.yhcnyshenhe')}}</span></span>
<span class="groupTourOrderByTuan_ico"><i style="background-color:#ff9800"></i><span>{{$t('fnc.ytongguo')}}</span></span></p>
</div>
<visaOrderList :pagesTitle="pagesTitle" :OrderList="dataList" v-loading="loading" @success="getList"> </visaOrderList>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="this.msg.pageSize" :total="total">
</el-pagination>
<div class="_mc_edit _scrollbar" :class="addShow==true?'edHeight':''">
<p class="_tit">{{$t('salesModule.UpOrder')}}
<span class="fr">
<button class="hollowFixedBtn" type="button" @click="cancelEdit()">{{$t('pub.cancelBtn')}}</button>
<button type="button" class="normalBtn" @click="saveVisa()">{{$t('pub.saveBtn')}}</button>
</span>
</p>
<el-form class="_info_box clearfix" :model="addMsg" :rules="rules" ref="addMsg" label-width="120px">
<el-row :gutter="20">
<el-col :span="4">
<el-form-item :label="$t('hotel.product_name')" prop="Name">
<el-input v-model="addMsg.Name" :placeholder="$t('pub.pleaseImport')" :disabled="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('Airticket.Air_Number')" prop="PeopleNum">
<el-input @keyup.native="checkInteger(addMsg,'PeopleNum')" min="1" v-model="addMsg.PeopleNum"
:placeholder="$t('pub.pleaseImport')" maxlength="20" :disabled="updateRemarksStatus"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('salesModule.CustomerType')">
<el-select v-model="addMsg.ClientType" :disabled="updateRemarksStatus" size=mini>
<el-option :label="$t('salesModule.Trade')" value="1"></el-option>
<el-option :label="$t('Operation.Op_direct')" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('pub.pubRemark')">
<el-input v-model="addMsg.Remark" type="textarea" maxlength="500" :placeholder="$t('pub.pleaseImport')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="4">
</el-col>
</el-row>
<el-row :gutter="20" v-if='visaManagementId>0'>
<el-col :span="4">
<el-form-item :label="$t('visaT.rujingtime')" prop="EnterCountryTime">
<el-date-picker value-format="yyyy-MM-dd" class='w170' v-model='addMsg.EnterCountryTime' type="date"
:disabled="updateRemarksStatus"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.chujingtime')" prop="LeaveCountryTime">
<el-date-picker value-format="yyyy-MM-dd" class='w170' v-model='addMsg.LeaveCountryTime' type="date"
:disabled="updateRemarksStatus"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.cfAirport')" prop="DepartAirport">
<el-select v-model="addMsg.DepartAirport" filterable size=mini @change="getFilghtForAir(1)"
:disabled="updateRemarksStatus">
<el-option v-for="item in ChinaAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Portofentry')" prop="EnterCountryPort">
<el-select v-model="addMsg.EnterCountryPort" filterable size=mini @change="getFilghtForAir(1)"
:disabled="updateRemarksStatus">
<el-option v-for="item in JapanAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Inboundflights')" prop="EnterCountryFlight">
<el-select v-model="addMsg.EnterCountryFlight" filterable size=mini :disabled="updateRemarksStatus">
<el-option v-for="item in FilghtForAirIn" :key="item.ID" :label="item.Flight_number" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
</el-col>
</el-row>
<el-row :gutter="20" v-if='visaManagementId>0'>
<el-col :span="4">
<el-form-item :label="$t('visaT.fhjichang')" prop="GetBackAirport">
<el-select v-model="addMsg.GetBackAirport" filterable size=mini @change="getFilghtForAir(2)"
:disabled="updateRemarksStatus">
<el-option v-for="item in ChinaAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Exitport')" prop="LeaveCountryPort">
<el-select v-model="addMsg.LeaveCountryPort" filterable size=mini @change="getFilghtForAir(2)"
:disabled="updateRemarksStatus">
<el-option v-for="item in JapanAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Outboundflight')" prop="LeaveCountryFlight">
<el-select v-model="addMsg.LeaveCountryFlight" filterable size=mini :disabled="updateRemarksStatus">
<el-option v-for="item in FilghtForAirOut" :key="item.ID" :label="item.Flight_number" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template> </template>
<script> <script>
import visaOrderList from './components/visaOrderList.vue'; import VisaProductOrder from './components/VisaProductOrder.vue';
export default { export default {
components: { visaOrderList }, components: { VisaProductOrder },
data() { data() {
return { return {
pagesTitle: 'OP', pagesTitle: 'OP',
userInfo: {},
qjGroupId: -1,
F_InvoiceManagement: false,
F_Finance_Create: false,
msg: {
pageIndex: 1,
pageSize: 12,
StartDate: '',
EndDate: '',
SendStartDate: '',
SendEndDate: '',
Name: '',
VisaTCNUM: '',
VisaOrderStatus: '0',
CreateBy: 0,
RB_Branch_Id: -1,
OrderId: 0
},
addMsg: {
Id: 0,
Remark: '',
VisaId: '',
Name: "",
PeopleNum: '',
EnterCountryTime: '',
LeaveCountryTime: '',
DepartAirport: '',
GetBackAirport: '',
EnterCountryPort: '',
LeaveCountryPort: '',
EnterCountryFlight: '',
LeaveCountryFlight: '',
VisaPlanId: 0,
DepartDate: '',
ClientType: ''
},
rules: {
PeopleNum: [{
required: true,
message: "请输入人数",
trigger: "blur"
}],
//DepartDate:[{required: true, message: "请输入出发日期", trigger: "blur"}],
EnterCountryTime: [{
required: true,
message: "请输入入境日期",
trigger: "blur"
}],
LeaveCountryTime: [{
required: true,
message: "请输入出境日期",
trigger: "blur"
}]
},
updateRemarksStatus: false,
SendStartDate: '',
visaManagementId: 0,
VisaApplyForTypeEnum: [],
JapanAirportList: [],
ChinaAirportList: [],
countryList: [],
MarriageType: [],
VisaDeparturesType: [],
VisaDutyTypeEnum: [],
VisaIdentityTypeEnum: [],
FilghtForAirIn: [],
FilghtForAirOut: [],
dataList: [],
EmployeeList: [],
loading: false,
total: 0,
addShow: false,
currentPage: 1,
EmployeeList:[],
employeeMsg:{ // 员工
GroupId:'',
BranchId:-1,
DepartmentId:0,
PostId:0,
IsLeave:0,
},
layerCompanyList:[]
} }
}, },
methods: { methods: {
getCompany() {
this.apipost(
"admin_get_BranchGetList",
this.getCompanyMsg,
res => {
if (res.data.resultCode == 1) {
this.layerCompanyList = res.data.data;
} else {}
},
err => {}
);
},
getEmployee() { //员工
let userInfo=this.getLocalStorage();
this.employeeMsg.GroupId = userInfo.RB_Group_id;
this.apipost('admin_get_EmployeeGetList', this.employeeMsg, res => {
if(res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
}
}, err => {})
},
GetSupperOrderEditAuth() {
var actionCode = this.$AuthCode.F_InvoiceManagement;
this.CheckUserAuth(actionCode, res => {
if (res.data.resultCode == 1 && res.data.data == 1) {
this.F_InvoiceManagement = true;
}
});
var actionCodeNew = this.$AuthCode.F_Finance_Create;
this.CheckUserAuth(actionCodeNew, res => {
if (res.data.resultCode == 1 && res.data.data == 1) {
this.F_Finance_Create = true;
}
});
},
goUrlFinance(name, path, id, tcmun) {
this.$router.push({
name: path,
query: {
id: id,
tcmun: tcmun,
blank: 'y',
tab: name
}
});
},
goIisDetail: function (id) { // 跳转发票详情页面
this.$router.push({
name: 'invoicesManagerDetail',
query: {
id: id,
noDetail: 1,
InvoiceApplyType: 2,
blank: "y",
}
});
},
// 申请发票
goUrlAdd: function (path, OrderId, TCID, customerId, InvoiceApplyType) {
this.$router.push({
name: path,
query: {
OrderId: OrderId,
TCID: TCID,
customerId: customerId ? customerId : 0,
InvoiceApplyType: InvoiceApplyType,
blank: "y",
}
});
},
goUrl2(path, id, name) {
this.$router.push({
name: path,
query: {
id: id,
blank: 'y',
tab: name
}
});
},
getChinaAirportList() { // 获取国内机场
let msg = {
City_id: 0,
Country_id: 2,
TrafficType: 1,
}
this.apipost('airport_post_GetList', msg, res => {
if (res.data.resultCode == 1) {
this.ChinaAirportList = res.data.data
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
getJapanAirportList() { // 获取日本机场
let msg = {
City_id: 0,
Country_id: 651,
TrafficType: 1,
}
this.apipost('airport_post_GetList', msg, res => {
if (res.data.resultCode == 1) {
this.JapanAirportList = res.data.data
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
FilghtForAir(data, type) {
this.apipost('dmc_get_visa_GetFilghtForAir', data, res => {
if (res.data.resultCode == 1) {
if (type == 1) {
this.FilghtForAirIn = res.data.data
} else {
this.FilghtForAirOut = res.data.data
}
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
getFilghtForAir(type) { // 根据机场获取航班号
let msg = {
StartAirId: 0,
EndAirId: 0,
}
if (type == 1) {
if (this.addMsg.DepartAirport && this.addMsg.EnterCountryPort) {
msg.StartAirId = this.addMsg.DepartAirport
msg.EndAirId = this.addMsg.EnterCountryPort
this.FilghtForAir(msg, type)
}
} else {
if (this.addMsg.GetBackAirport && this.addMsg.LeaveCountryPort) {
msg.StartAirId = this.addMsg.LeaveCountryPort
msg.EndAirId = this.addMsg.GetBackAirport
this.FilghtForAir(msg, type)
}
}
},
goUrl(obj) {
let TCIDARR = [];
if (obj.tcid) {
TCIDARR.push(obj.tcid)
}
let orderObj = {
OrderID: obj.id,
OrderSource: 10,
Obj: {},
SourceID: obj.visaId,
TCIDList: TCIDARR
}
this.$router.push({
name: 'ChoiceAddFinancialDocuments',
query: {
'path': 'SaleOrderModule',
'companyID': obj.rB_Branch_Id,
'visaType': true,
'blank': 'y',
'orderObj': JSON.stringify(orderObj)
}
});
},
goUrlT(obj) {
this.$router.push({
name: 'VisaGuestList',
query: {
'id': obj.id,
}
});
},
cancelOrder(obj) {
this.$confirm('是否取消?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipost('dmc_post_visa_SetOrderCancel', {
OrderId: obj.id
}, res => {
if (res.data.resultCode == 1) {
this.$message.success('取消成功!');
this.getList()
} else {
this.$message.error(res.data.message);
}
}, err => {})
}).catch(() => {
this.$message.info('已取消!');
});
},
getList() { // 获取列表数据
this.loading = true;
this.apipost('dmc_get_visa_GetAdminVisaOrderList', this.msg, res => {
if (res.data.resultCode == 0) {
this.loading = false;
this.dataList = []
} else {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
this.loading = false;
}
}, err => {})
},
getDetail(obj, updateRStatus) {
this.SendStartDate = obj.sendStartDate
this.updateRemarksStatus = updateRStatus;
this.visaManagementId = obj.visaManagementId
this.addMsg.VisaId = obj.visaId
this.addMsg.Id = obj.id
this.addShow = true
this.apipost('dmc_get_visa_GetOrderByVisaId', {
visaId: obj.visaId,
visaOrderId: obj.id
}, res => {
if (res.data.resultCode == 1) {
let x = res.data.data
this.addMsg.Name = x[0].Name
this.addMsg.PeopleNum = x[0].PeopleNum
this.addMsg.Remark = x[0].Remark
this.addMsg.EnterCountryTime = x[0].EnterCountryTime
this.addMsg.LeaveCountryTime = x[0].LeaveCountryTime
this.addMsg.DepartAirport = x[0].DepartAirport
this.addMsg.GetBackAirport = x[0].GetBackAirport
this.addMsg.EnterCountryPort = x[0].EnterCountryPort
this.addMsg.LeaveCountryPort = x[0].LeaveCountryPort
this.getFilghtForAir(1)
this.getFilghtForAir(2)
this.addMsg.EnterCountryFlight = x[0].EnterCountryFlight
this.addMsg.LeaveCountryFlight = x[0].LeaveCountryFlight
this.addMsg.VisaPlanId = x[0].VisaPlanId
//this.addMsg.DepartDate=x[0].DepartDate
this.addMsg.ClientType = x[0].ClientType.toString()
}
}, err => {})
},
saveVisa() { // 保存
this.$refs['addMsg'].validate((valid) => {
if (valid) {
this.apipost('dmc_get_visa_SetVisaOrder', this.addMsg, res => {
if (res.data.resultCode == 1) {
this.addMsg = {
Remark: '',
VisaId: '',
Name: "",
PeopleNum: '',
EnterCountryTime: '',
LeaveCountryTime: '',
DepartAirport: '',
GetBackAirport: '',
EnterCountryPort: '',
LeaveCountryPort: '',
EnterCountryFlight: '',
LeaveCountryFlight: '',
VisaPlanId: 0,
DepartDate: ''
}
this.$message.success(res.data.message)
this.addShow = false
this.getList()
} else {
this.$message.error(res.data.message)
}
}, err => {})
} else {
return false;
}
});
},
cancelEdit() { // 取消新增
this.addShow = false
this.addMsg = {
Name: '',
Remark: '',
VisaId: '',
Name: "",
PeopleNum: '',
}
this.resetForm('addMsg')
},
resetForm(formName) { // 重置表单
this.$refs[formName].resetFields();
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
}, },
mounted() { mounted() {
// crm自动登陆传过来的参数
if(this.$route.query.crmOrderObj){
let crmOrderObj = JSON.parse(this.$route.query.crmOrderObj)
this.msg.OrderId = crmOrderObj.OrderId
}else if(this.$route.query.OrderId){
this.msg.OrderId = this.$route.query.OrderId
}
this.qjGroupId = this.QjGroupId();
this.userInfo = this.getLocalStorage();
this.getEmployee()
this.getList()
this.getCompany()
this.getChinaAirportList()
this.getJapanAirportList()
this.GetSupperOrderEditAuth();
} }
} }
......
<style>
.page_MyCustomer ._mc_addbox {
height: 52px;
width: 100%;
margin-top: 20px;
}
.page_MyCustomer ._mc_addbox>li {
float: left;
width: 116px;
font-size: 14px;
height: 52px;
color: #666;
text-align: center;
line-height: 52px;
background: #E9E9E9;
cursor: pointer;
}
.page_MyCustomer ._mc_addbox>li.active {
background: #fff;
color: #333;
}
.page_MyCustomer ._mc_addbox .divActive {
margin: -3px auto;
width: 26px;
height: 3px;
background: #E95252;
}
.page_MyCustomer ._mc_edit {
overflow: auto;
display: none;
position: fixed;
z-index: 50;
bottom: 0;
left: 0;
border-top: 3px solid #38425d;
background-color: #f9f9f9;
padding: 10px;
width: 100%;
min-width: 1146px;
}
.page_MyCustomer .edHeight {
display: block;
height: 291px;
}
.page_MyCustomer ._mc_list {
overflow-x: auto;
background: #fff;
padding-top: 20px;
padding-left: 15px;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar {
width: 4px;
height: 8px;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar-thumb {
border-radius: 4px;
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #EDEDED;
}
.page_MyCustomer ._mc_edit ._tit {
padding-left: 10px;
border-left: 3px solid #E95252;
font-size: 16px;
font-family: 'PingFangSc-Fine';
color: #000000
}
.page_MyCustomer ._mc_edit ._info_box ul._form li {
float: left;
}
.page_MyCustomer ._check_list {
padding-left: 120px;
margin-bottom: 20px;
}
.page_MyCustomer ._check_box .el-form-item {
margin-bottom: 0
}
.page_MyCustomer ._info_box .el-form-item__label {
font-size: 12px;
color: #666;
}
._remark textarea {
resize: none;
width: 646px;
height: 100px
}
.page_MyCustomer .avatar {
width: 148px;
height: 148px;
display: block;
}
.page_MyCustomerSearch {
width: 100%;
min-height: auto;
overflow: hidden;
padding: 0 0 20px 0;
}
.page_MyCustomerSearch li {
float: left;
font-size: 12px;
color: #666;
margin: 20px 0 0px 0;
}
.page_MyCustomerSearch li>span {
display: inline-block;
}
.page_MyCustomerSearch li span>em {
display: inline-block;
min-width: 60px;
text-align: right;
font-style: normal;
margin: 0 12px 0 0;
}
.page_MyCustomerSearch li:last-child {
float: right;
}
.VisaProductTable {
width: 100%;
font-size: 14px;
color: #333;
border-collapse: collapse;
}
.VisaProductTable tr th {
background: #E6E6E6;
height: 30px;
font-size: 12px;
text-align: left;
text-indent: 25px;
}
.VisaProductTable tr {
background: #fff;
text-align: left;
}
.VisaProductTable tr td {
height: 60px;
padding-left: 25px;
border: 1px solid #cccccc;
font-size: 14px;
color: #333;
}
.VisaProductTable tr td>img {
width: 24px;
height: 24px;
border-radius: 50%;
float: left;
margin-right: 5px;
}
.VisaProductTable tr td .tuanqian {
vertical-align: middle;
font-weight: 400;
display: table-cell;
text-align: center;
width: 44px;
font-size: 12px;
height: 19px;
color: #FFFFFF;
background: #2AAEF2;
}
.VisaProductTable tr td .geqian {
vertical-align: middle;
font-weight: 400;
display: table-cell;
text-align: center;
width: 44px;
font-size: 12px;
height: 19px;
color: #FFFFFF;
background: #FF9000;
}
.VisaProductTable tr td .totalPrice {
color: #FF9000;
font-weight: 400;
font-size: 16px;
}
.VisaProductTable tr td .sendVisaDate {
font-weight: bold;
}
.page_MyCustomer ._edHeight {
height: 340px;
}
.dateClass {
width: 171px !important;
}
.surplusNum {
color: #E95252 !important;
}
.peopleNum {
height: 15px;
font-size: 16px;
font-weight: 400;
color: rgba(51, 51, 51, 1);
line-height: 24px;
}
.Visa_income {
width: 18px;
height: 16px;
font-size: 16px;
font-weight: 400;
line-height: 24px;
color: RGBA(71, 191, 140, 1);
}
.VisaProductTable tr td .createName {
vertical-align: middle;
display: table-cell;
text-align: center;
width: 50px;
height: 21px;
}
.groupTourOrderIcon button {
width: 28px;
height: 28px;
border-radius: 4px;
}
.groupTourOrderIcon .el-button--primary {
padding: 5px;
margin: 0;
font-size: 14px !important;
}
.groupTourOrder_tickets_red {
color: #ff0000;
text-decoration: underline;
}
.groupTourOrder_tickets_blue {
color: #0000ff;
text-decoration: underline;
}
.groupTourOrder_tickets_green {
color: #008000;
text-decoration: underline;
}
.groupTourOrder_tickets_black {
color: #000000;
text-decoration: underline;
}
.VD-remarkTitle {
display: inline-block;
float: left;
width: 36px;
white-space: nowrap;
font-size: 14px;
}
.VD-remarkCon {
float: left;
display: inline-block;
width: 94%;
font-size: 14px;
}
.VD-redType {
color: red;
}
</style>
<template> <template>
<VisaProductEditOrderOP></VisaProductEditOrderOP> <VisaProductOrder :pagesTitle="pagesTitle"></VisaProductOrder>
</template> </template>
<script> <script>
import VisaProductEditOrderOP from './VisaProductEditOrderOP.vue'; import VisaProductOrder from './components/VisaProductOrder.vue';
export default { export default {
components: { VisaProductEditOrderOP }, components: { VisaProductOrder },
data() { data() {
return { return {
pagesTitle: 'OP', pagesTitle: 'OP',
......
<style>
.page_MyCustomer ._mc_addbox {
height: 52px;
width: 100%;
margin-top: 20px;
}
.page_MyCustomer ._mc_addbox>li {
float: left;
width: 116px;
font-size: 14px;
height: 52px;
color: #666;
text-align: center;
line-height: 52px;
background: #E9E9E9;
cursor: pointer;
}
.page_MyCustomer ._mc_addbox>li.active {
background: #fff;
color: #333;
}
.page_MyCustomer ._mc_addbox .divActive {
margin: -3px auto;
width: 26px;
height: 3px;
background: #E95252;
}
.page_MyCustomer ._mc_edit {
overflow: auto;
display: none;
position: fixed;
z-index: 50;
bottom: 0;
left: 0;
border-top: 3px solid #38425d;
background-color: #f9f9f9;
padding: 10px;
width: 100%;
min-width: 1146px;
}
.page_MyCustomer .edHeight {
display: block;
height: 291px;
}
.page_MyCustomer ._mc_list {
overflow-x: auto;
background: #fff;
padding-top: 20px;
padding-left: 15px;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar {
width: 4px;
height: 8px;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar-thumb {
border-radius: 4px;
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
.page_MyCustomer ._scrollbar::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #EDEDED;
}
.page_MyCustomer ._mc_edit ._tit {
padding-left: 10px;
border-left: 3px solid #E95252;
font-size: 16px;
font-family: 'PingFangSc-Fine';
color: #000000
}
.page_MyCustomer ._mc_edit ._info_box ul._form li {
float: left;
}
.page_MyCustomer ._check_list {
padding-left: 120px;
margin-bottom: 20px;
}
.page_MyCustomer ._check_box .el-form-item {
margin-bottom: 0
}
.page_MyCustomer ._info_box .el-form-item__label {
font-size: 12px;
color: #666;
}
._remark textarea {
resize: none;
width: 646px;
height: 100px
}
.page_MyCustomer .avatar {
width: 148px;
height: 148px;
display: block;
}
.page_MyCustomerSearch {
width: 100%;
min-height: auto;
overflow: hidden;
padding: 0 0 20px 0;
}
.page_MyCustomerSearch li {
float: left;
font-size: 12px;
color: #666;
margin: 20px 0 0px 0;
}
.page_MyCustomerSearch li>span {
display: inline-block;
}
.page_MyCustomerSearch li span>em {
display: inline-block;
min-width: 60px;
text-align: right;
font-style: normal;
margin: 0 12px 0 0;
}
.page_MyCustomerSearch li:last-child {
float: right;
}
.VisaProductTable {
width: 100%;
font-size: 14px;
color: #333;
border-collapse: collapse;
}
.VisaProductTable tr th {
background: #E6E6E6;
height: 30px;
font-size: 12px;
text-align: left;
text-indent: 25px;
}
.VisaProductTable tr {
background: #fff;
text-align: left;
}
.VisaProductTable tr td {
height: 60px;
padding-left: 25px;
border: 1px solid #cccccc;
font-size: 14px;
color: #333;
}
.VisaProductTable tr td>img {
width: 24px;
height: 24px;
border-radius: 50%;
float: left;
margin-right: 5px;
}
.VisaProductTable tr td .tuanqian {
vertical-align: middle;
font-weight: 400;
display: table-cell;
text-align: center;
width: 44px;
font-size: 12px;
height: 19px;
color: #FFFFFF;
background: #2AAEF2;
}
.VisaProductTable tr td .geqian {
vertical-align: middle;
font-weight: 400;
display: table-cell;
text-align: center;
width: 44px;
font-size: 12px;
height: 19px;
color: #FFFFFF;
background: #FF9000;
}
.VisaProductTable tr td .totalPrice {
color: #FF9000;
font-weight: 400;
font-size: 16px;
}
.VisaProductTable tr td .sendVisaDate {
font-weight: bold;
}
.page_MyCustomer ._edHeight {
height: 340px;
}
.dateClass {
width: 171px !important;
}
.surplusNum {
color: #E95252 !important;
}
.peopleNum {
height: 15px;
font-size: 16px;
font-weight: 400;
color: rgba(51, 51, 51, 1);
line-height: 24px;
}
.Visa_income {
width: 18px;
height: 16px;
font-size: 16px;
font-weight: 400;
line-height: 24px;
color: RGBA(71, 191, 140, 1);
}
.VisaProductTable tr td .createName {
vertical-align: middle;
display: table-cell;
text-align: center;
width: 50px;
height: 21px;
}
.groupTourOrderIcon button {
width: 28px;
height: 28px;
border-radius: 4px;
}
.groupTourOrderIcon .el-button--primary {
padding: 5px;
margin: 0;
font-size: 14px !important;
}
.groupTourOrder_tickets_red {
color: #ff0000;
text-decoration: underline;
}
.groupTourOrder_tickets_blue {
color: #0000ff;
text-decoration: underline;
}
.groupTourOrder_tickets_green {
color: #008000;
text-decoration: underline;
}
.groupTourOrder_tickets_black {
color: #000000;
text-decoration: underline;
}
.VD-remarkTitle {
display: inline-block;
float: left;
width: 36px;
white-space: nowrap;
font-size: 14px;
}
.VD-remarkCon {
float: left;
display: inline-block;
width: 94%;
font-size: 14px;
}
.VD-redType {
color: red;
}
</style>
<template>
<div class="page_MyCustomer">
<div class="query-box" style="border:none">
<ul>
<li>
<span>
<em>{{$t('fnc.danhao')}}</em>
<el-input class='w220' v-model='msg.VisaTCNUM' :placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<li>
<span>
<em>订单ID</em>
<el-input class='w220' v-model='msg.OrderId' placeholder="请输入订单ID"></el-input>
</span>
</li>
<li>
<span>
<em>{{$t('hotel.product_name')}}</em>
<el-input class='w220' v-model='msg.Name' :placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<!-- <li>
<span>
<em>送签日期</em><el-date-picker v-model='msg.SendStartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>-<el-date-picker v-model='msg.SendEndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li> -->
<li>
<span>
<em>订单状态</em>
<el-select v-model='msg.VisaOrderStatus'>
<el-option label="不限" value="0" key='0'></el-option>
<el-option label="正常" value="1" key='1'></el-option>
<el-option label="取消" value="2" key='2'></el-option>
<el-option label="待付款" value="3" key='3'></el-option>
</el-select>
</span></li>
<li v-if="pagesTitle!='销售'">
<span>
<em>业务员</em>
<el-select filterable v-model='msg.CreateBy'>
<el-option :value="0" label="不限"></el-option>
<el-option v-for='item in EmployeeList'
:label='item.EmName'
:value='item.EmployeeId'
:key='item.EmployeeId'>
</el-option>
</el-select>
</span>
</li>
<li v-if="pagesTitle!='销售'">
<span>
<em>公司</em>
<el-select filterable class="w217" v-model="msg.RB_Branch_Id"
:placeholder="$t('pub.pleaseSel')">
<el-option :value="-1" label="不限"></el-option>
<el-option v-for="item in layerCompanyList" :label="item.BName" :value="item.Id" :key="item.Id">
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>{{$t('fnc.bmriqi')}}</em>
<el-date-picker v-model='msg.StartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
-<el-date-picker v-model='msg.EndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li>
<li>
<button class="hollowFixedBtn" @click="getList()">{{$t('pub.searchBtn')}}</button>
<!-- <button class="normalBtn" @click="addShow=true">添加</button> -->
</li>
</ul>
</div>
<div style="display: flex;justify-content: end;margin-bottom: 10px;">
<p><span class="groupTourOrderByTuan_ico"><i style="background-color:#3FC4FF"></i><span>{{$t('fnc.yidadan')}}</span></span>
<span class="groupTourOrderByTuan_ico"><i style="background-color:#F1416C"></i><span>{{$t('fnc.yhcnyshenhe')}}</span></span>
<span class="groupTourOrderByTuan_ico"><i style="background-color:#ff9800"></i><span>{{$t('fnc.ytongguo')}}</span></span></p>
</div>
<visaOrderList :pagesTitle="pagesTitle" :OrderList="dataList" v-loading="loading" @success="getList"> </visaOrderList>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="this.msg.pageSize" :total="total">
</el-pagination>
<div class="_mc_edit _scrollbar" :class="addShow==true?'edHeight':''">
<p class="_tit">{{$t('salesModule.UpOrder')}}
<span class="fr">
<button class="hollowFixedBtn" type="button" @click="cancelEdit()">{{$t('pub.cancelBtn')}}</button>
<button type="button" class="normalBtn" @click="saveVisa()">{{$t('pub.saveBtn')}}</button>
</span>
</p>
<el-form class="_info_box clearfix" :model="addMsg" :rules="rules" ref="addMsg" label-width="120px">
<el-row :gutter="20">
<el-col :span="4">
<el-form-item :label="$t('hotel.product_name')" prop="Name">
<el-input v-model="addMsg.Name" :placeholder="$t('pub.pleaseImport')" :disabled="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('Airticket.Air_Number')" prop="PeopleNum">
<el-input @keyup.native="checkInteger(addMsg,'PeopleNum')" min="1" v-model="addMsg.PeopleNum"
:placeholder="$t('pub.pleaseImport')" maxlength="20" :disabled="updateRemarksStatus"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('salesModule.CustomerType')">
<el-select v-model="addMsg.ClientType" :disabled="updateRemarksStatus" size=mini>
<el-option :label="$t('salesModule.Trade')" value="1"></el-option>
<el-option :label="$t('Operation.Op_direct')" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('pub.pubRemark')">
<el-input v-model="addMsg.Remark" type="textarea" maxlength="500" :placeholder="$t('pub.pleaseImport')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="4">
</el-col>
</el-row>
<el-row :gutter="20" v-if='visaManagementId>0'>
<el-col :span="4">
<el-form-item :label="$t('visaT.rujingtime')" prop="EnterCountryTime">
<el-date-picker value-format="yyyy-MM-dd" class='w170' v-model='addMsg.EnterCountryTime' type="date"
:disabled="updateRemarksStatus"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.chujingtime')" prop="LeaveCountryTime">
<el-date-picker value-format="yyyy-MM-dd" class='w170' v-model='addMsg.LeaveCountryTime' type="date"
:disabled="updateRemarksStatus"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.cfAirport')" prop="DepartAirport">
<el-select v-model="addMsg.DepartAirport" filterable size=mini @change="getFilghtForAir(1)"
:disabled="updateRemarksStatus">
<el-option v-for="item in ChinaAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Portofentry')" prop="EnterCountryPort">
<el-select v-model="addMsg.EnterCountryPort" filterable size=mini @change="getFilghtForAir(1)"
:disabled="updateRemarksStatus">
<el-option v-for="item in JapanAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Inboundflights')" prop="EnterCountryFlight">
<el-select v-model="addMsg.EnterCountryFlight" filterable size=mini :disabled="updateRemarksStatus">
<el-option v-for="item in FilghtForAirIn" :key="item.ID" :label="item.Flight_number" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
</el-col>
</el-row>
<el-row :gutter="20" v-if='visaManagementId>0'>
<el-col :span="4">
<el-form-item :label="$t('visaT.fhjichang')" prop="GetBackAirport">
<el-select v-model="addMsg.GetBackAirport" filterable size=mini @change="getFilghtForAir(2)"
:disabled="updateRemarksStatus">
<el-option v-for="item in ChinaAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Exitport')" prop="LeaveCountryPort">
<el-select v-model="addMsg.LeaveCountryPort" filterable size=mini @change="getFilghtForAir(2)"
:disabled="updateRemarksStatus">
<el-option v-for="item in JapanAirportList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('visaT.Outboundflight')" prop="LeaveCountryFlight">
<el-select v-model="addMsg.LeaveCountryFlight" filterable size=mini :disabled="updateRemarksStatus">
<el-option v-for="item in FilghtForAirOut" :key="item.ID" :label="item.Flight_number" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import visaOrderList from './visaOrderList.vue';
export default {
props:['pagesTitle'],
components: { visaOrderList },
data() {
return {
// pagesTitle: 'OP',
userInfo: {},
qjGroupId: -1,
F_InvoiceManagement: false,
F_Finance_Create: false,
msg: {
pageIndex: 1,
pageSize: 12,
StartDate: '',
EndDate: '',
SendStartDate: '',
SendEndDate: '',
Name: '',
VisaTCNUM: '',
VisaOrderStatus: '0',
CreateBy: 0,
RB_Branch_Id: -1,
OrderId: 0
},
addMsg: {
Id: 0,
Remark: '',
VisaId: '',
Name: "",
PeopleNum: '',
EnterCountryTime: '',
LeaveCountryTime: '',
DepartAirport: '',
GetBackAirport: '',
EnterCountryPort: '',
LeaveCountryPort: '',
EnterCountryFlight: '',
LeaveCountryFlight: '',
VisaPlanId: 0,
DepartDate: '',
ClientType: ''
},
rules: {
PeopleNum: [{
required: true,
message: "请输入人数",
trigger: "blur"
}],
//DepartDate:[{required: true, message: "请输入出发日期", trigger: "blur"}],
EnterCountryTime: [{
required: true,
message: "请输入入境日期",
trigger: "blur"
}],
LeaveCountryTime: [{
required: true,
message: "请输入出境日期",
trigger: "blur"
}]
},
updateRemarksStatus: false,
SendStartDate: '',
visaManagementId: 0,
VisaApplyForTypeEnum: [],
JapanAirportList: [],
ChinaAirportList: [],
countryList: [],
MarriageType: [],
VisaDeparturesType: [],
VisaDutyTypeEnum: [],
VisaIdentityTypeEnum: [],
FilghtForAirIn: [],
FilghtForAirOut: [],
dataList: [],
EmployeeList: [],
loading: false,
total: 0,
addShow: false,
currentPage: 1,
EmployeeList:[],
employeeMsg:{ // 员工
GroupId:'',
BranchId:-1,
DepartmentId:0,
PostId:0,
IsLeave:0,
},
layerCompanyList:[]
}
},
methods: {
getCompany() {
this.apipost(
"admin_get_BranchGetList",
this.getCompanyMsg,
res => {
if (res.data.resultCode == 1) {
this.layerCompanyList = res.data.data;
} else {}
},
err => {}
);
},
getEmployee() { //员工
let userInfo=this.getLocalStorage();
this.employeeMsg.GroupId = userInfo.RB_Group_id;
this.apipost('admin_get_EmployeeGetList', this.employeeMsg, res => {
if(res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
}
}, err => {})
},
GetSupperOrderEditAuth() {
var actionCode = this.$AuthCode.F_InvoiceManagement;
this.CheckUserAuth(actionCode, res => {
if (res.data.resultCode == 1 && res.data.data == 1) {
this.F_InvoiceManagement = true;
}
});
var actionCodeNew = this.$AuthCode.F_Finance_Create;
this.CheckUserAuth(actionCodeNew, res => {
if (res.data.resultCode == 1 && res.data.data == 1) {
this.F_Finance_Create = true;
}
});
},
goUrlFinance(name, path, id, tcmun) {
this.$router.push({
name: path,
query: {
id: id,
tcmun: tcmun,
blank: 'y',
tab: name
}
});
},
goIisDetail: function (id) { // 跳转发票详情页面
this.$router.push({
name: 'invoicesManagerDetail',
query: {
id: id,
noDetail: 1,
InvoiceApplyType: 2,
blank: "y",
}
});
},
// 申请发票
goUrlAdd: function (path, OrderId, TCID, customerId, InvoiceApplyType) {
this.$router.push({
name: path,
query: {
OrderId: OrderId,
TCID: TCID,
customerId: customerId ? customerId : 0,
InvoiceApplyType: InvoiceApplyType,
blank: "y",
}
});
},
goUrl2(path, id, name) {
this.$router.push({
name: path,
query: {
id: id,
blank: 'y',
tab: name
}
});
},
getChinaAirportList() { // 获取国内机场
let msg = {
City_id: 0,
Country_id: 2,
TrafficType: 1,
}
this.apipost('airport_post_GetList', msg, res => {
if (res.data.resultCode == 1) {
this.ChinaAirportList = res.data.data
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
getJapanAirportList() { // 获取日本机场
let msg = {
City_id: 0,
Country_id: 651,
TrafficType: 1,
}
this.apipost('airport_post_GetList', msg, res => {
if (res.data.resultCode == 1) {
this.JapanAirportList = res.data.data
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
FilghtForAir(data, type) {
this.apipost('dmc_get_visa_GetFilghtForAir', data, res => {
if (res.data.resultCode == 1) {
if (type == 1) {
this.FilghtForAirIn = res.data.data
} else {
this.FilghtForAirOut = res.data.data
}
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
getFilghtForAir(type) { // 根据机场获取航班号
let msg = {
StartAirId: 0,
EndAirId: 0,
}
if (type == 1) {
if (this.addMsg.DepartAirport && this.addMsg.EnterCountryPort) {
msg.StartAirId = this.addMsg.DepartAirport
msg.EndAirId = this.addMsg.EnterCountryPort
this.FilghtForAir(msg, type)
}
} else {
if (this.addMsg.GetBackAirport && this.addMsg.LeaveCountryPort) {
msg.StartAirId = this.addMsg.LeaveCountryPort
msg.EndAirId = this.addMsg.GetBackAirport
this.FilghtForAir(msg, type)
}
}
},
goUrl(obj) {
let TCIDARR = [];
if (obj.tcid) {
TCIDARR.push(obj.tcid)
}
let orderObj = {
OrderID: obj.id,
OrderSource: 10,
Obj: {},
SourceID: obj.visaId,
TCIDList: TCIDARR
}
this.$router.push({
name: 'ChoiceAddFinancialDocuments',
query: {
'path': 'SaleOrderModule',
'companyID': obj.rB_Branch_Id,
'visaType': true,
'blank': 'y',
'orderObj': JSON.stringify(orderObj)
}
});
},
goUrlT(obj) {
this.$router.push({
name: 'VisaGuestList',
query: {
'id': obj.id,
}
});
},
cancelOrder(obj) {
this.$confirm('是否取消?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipost('dmc_post_visa_SetOrderCancel', {
OrderId: obj.id
}, res => {
if (res.data.resultCode == 1) {
this.$message.success('取消成功!');
this.getList()
} else {
this.$message.error(res.data.message);
}
}, err => {})
}).catch(() => {
this.$message.info('已取消!');
});
},
getList() { // 获取列表数据
this.loading = true;
let url
if(this.pagesTitle=='销售'){
url = 'dmc_get_visa_GetOrderVisaOrderList'
}else{
url = 'dmc_get_visa_GetAdminVisaOrderList'
}
this.apipost(url, this.msg, res => {
if (res.data.resultCode == 0) {
this.loading = false;
this.dataList = []
} else {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
this.loading = false;
}
}, err => {})
},
getDetail(obj, updateRStatus) {
this.SendStartDate = obj.sendStartDate
this.updateRemarksStatus = updateRStatus;
this.visaManagementId = obj.visaManagementId
this.addMsg.VisaId = obj.visaId
this.addMsg.Id = obj.id
this.addShow = true
this.apipost('dmc_get_visa_GetOrderByVisaId', {
visaId: obj.visaId,
visaOrderId: obj.id
}, res => {
if (res.data.resultCode == 1) {
let x = res.data.data
this.addMsg.Name = x[0].Name
this.addMsg.PeopleNum = x[0].PeopleNum
this.addMsg.Remark = x[0].Remark
this.addMsg.EnterCountryTime = x[0].EnterCountryTime
this.addMsg.LeaveCountryTime = x[0].LeaveCountryTime
this.addMsg.DepartAirport = x[0].DepartAirport
this.addMsg.GetBackAirport = x[0].GetBackAirport
this.addMsg.EnterCountryPort = x[0].EnterCountryPort
this.addMsg.LeaveCountryPort = x[0].LeaveCountryPort
this.getFilghtForAir(1)
this.getFilghtForAir(2)
this.addMsg.EnterCountryFlight = x[0].EnterCountryFlight
this.addMsg.LeaveCountryFlight = x[0].LeaveCountryFlight
this.addMsg.VisaPlanId = x[0].VisaPlanId
//this.addMsg.DepartDate=x[0].DepartDate
this.addMsg.ClientType = x[0].ClientType.toString()
}
}, err => {})
},
saveVisa() { // 保存
this.$refs['addMsg'].validate((valid) => {
if (valid) {
this.apipost('dmc_get_visa_SetVisaOrder', this.addMsg, res => {
if (res.data.resultCode == 1) {
this.addMsg = {
Remark: '',
VisaId: '',
Name: "",
PeopleNum: '',
EnterCountryTime: '',
LeaveCountryTime: '',
DepartAirport: '',
GetBackAirport: '',
EnterCountryPort: '',
LeaveCountryPort: '',
EnterCountryFlight: '',
LeaveCountryFlight: '',
VisaPlanId: 0,
DepartDate: ''
}
this.$message.success(res.data.message)
this.addShow = false
this.getList()
} else {
this.$message.error(res.data.message)
}
}, err => {})
} else {
return false;
}
});
},
cancelEdit() { // 取消新增
this.addShow = false
this.addMsg = {
Name: '',
Remark: '',
VisaId: '',
Name: "",
PeopleNum: '',
}
this.resetForm('addMsg')
},
resetForm(formName) { // 重置表单
this.$refs[formName].resetFields();
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
},
mounted() {
// crm自动登陆传过来的参数
if(this.$route.query.crmOrderObj){
let crmOrderObj = JSON.parse(this.$route.query.crmOrderObj)
this.msg.OrderId = crmOrderObj.OrderId
}else if(this.$route.query.OrderId){
this.msg.OrderId = this.$route.query.OrderId
}
this.qjGroupId = this.QjGroupId();
this.userInfo = this.getLocalStorage();
this.getEmployee()
this.getList()
this.getCompany()
this.getChinaAirportList()
this.getJapanAirportList()
this.GetSupperOrderEditAuth();
}
}
</script>
\ No newline at end of file
...@@ -694,7 +694,7 @@ ...@@ -694,7 +694,7 @@
<div <div
class="row wrap px15 bgE8F5E9 radius5 ml fz12 orderop" style="min-width: 150px;"> class="row wrap px15 bgE8F5E9 radius5 ml fz12 orderop" style="min-width: 150px;">
<div class="row-c cursor-pointer radius5 change py5" @click="goUrlVisaList(item)" <div class="row-c cursor-pointer radius5 change py5" @click="goUrlVisaList(item)"
v-if="item.VisaPlanIdStr !=''&&pagesTitle!='销售'"> v-if="item.VisaPlanIdStr!=''&&pagesTitle!='销售'">
<span class="c059FF6">签证详情</span> <span class="c059FF6">签证详情</span>
</div> </div>
<div class="row-c cursor-pointer radius5 change py5" @click="getDetail(item,false)" <div class="row-c cursor-pointer radius5 change py5" @click="getDetail(item,false)"
......
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