Commit 4ef1e612 authored by zhengke's avatar zhengke

s

parent 8e443d2f
<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:absolute;
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: 191px;}
.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 {
.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: absolute;
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: 191px;
}
.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; }
.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;}
.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;}
.orderNum{cursor:pointer;text-decoration:underline;width:18px;height:16px;font-size:16px;font-weight:400;color:rgba(51,51,51,1);line-height:24px;}
.VisaProductTable tr td .createName{vertical-align: middle; display: table-cell;text-align: left;padding-left:3px; height:21px;}
.groupTourOrderIcon button{width: 28px; height:28px;border-radius:4px;}
.groupTourOrderIcon .el-button--primary {padding: 5px; margin: 0; font-size: 14px!important;}
}
.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;
}
.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;
}
.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;
}
.orderNum {
cursor: pointer;
text-decoration: underline;
width: 18px;
height: 16px;
font-size: 16px;
font-weight: 400;
color: rgba(51, 51, 51, 1);
line-height: 24px;
}
.VisaProductTable tr td .createName {
vertical-align: middle;
display: table-cell;
text-align: left;
padding-left: 3px;
height: 21px;
}
.groupTourOrderIcon button {
width: 28px;
height: 28px;
border-radius: 4px;
}
.groupTourOrderIcon .el-button--primary {
padding: 5px;
margin: 0;
font-size: 14px !important;
}
</style>
<template>
<div class="page_MyCustomer">
......@@ -48,39 +220,73 @@
<ul>
<li>
<span>
<em>出团公司</em><el-select class='w210' v-model="msg.BranchId" filterable :placeholder="$t('pub.pleaseSel')">
<el-option v-for="item in companyList" :label='item.BName' :value='item.Id' :key='item.Id'></el-option>
<em>出团公司</em>
<el-select
class="w210"
v-model="msg.BranchId"
filterable
:placeholder="$t('pub.pleaseSel')"
>
<el-option
v-for="item in companyList"
:label="item.BName"
:value="item.Id"
:key="item.Id"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>产品ID</em><el-input class='w210' v-model='msg.ProductID' placeholder="请输入" ></el-input>
<em>产品ID</em>
<el-input class="w210" v-model="msg.ProductID" placeholder="请输入"></el-input>
</span>
</li>
<li>
<span>
<em>产品名称</em><el-input class='w210' v-model='msg.ProductName' placeholder="请输入" ></el-input>
<em>产品名称</em>
<el-input class="w210" v-model="msg.ProductName" placeholder="请输入"></el-input>
</span>
</li>
<li> <span>
<em>创建人</em><el-select v-model='msg.EmId'>
<el-option label="不限" value="-1" key='-1'></el-option>
<el-option v-for="item in EmployeeList"
:label='item.EmName'
:value='item.EmployeeId'
:key='item.EmployeeId'>
</el-option>
<li>
<span>
<em>创建人</em>
<el-select v-model="msg.EmId">
<el-option label="不限" value="-1" key="-1"></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></span><el-select v-model='msg.VisaStatus'>
<el-option label='不限' value='-1' key='-1'></el-option>
<el-option label='上架' value='1' key='1'></el-option>
<el-option label='下架' value='2' key='2'></el-option>
</span>
</li>
<li>
<span>
<em>状态</em>
</span>
<el-select v-model="msg.VisaStatus">
<el-option label="不限" value="-1" key="-1"></el-option>
<el-option label="上架" value="1" key="1"></el-option>
<el-option label="下架" value="2" key="2"></el-option>
</el-select>
</li>
<li><span><em>价格有效日期</em><el-date-picker v-model='msg.StartTime' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker> -
<el-date-picker v-model='msg.EndTime' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
<li>
<span>
<em>价格有效日期</em>
<el-date-picker
v-model="msg.StartTime"
class="w135"
value-format="yyyy-MM-dd"
type="date"
></el-date-picker>-
<el-date-picker
v-model="msg.EndTime"
class="w135"
value-format="yyyy-MM-dd"
type="date"
></el-date-picker>
</span>
</li>
<li>
......@@ -90,7 +296,7 @@
</ul>
</div>
<table class="VisaProductTable" border="0" cellspacing="0" cellpadding="0" v-loading='loading'>
<table class="VisaProductTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th width="10%">产品名称</th>
<th width="8%">签证类型</th>
......@@ -105,7 +311,7 @@
<th width="10%">广告图</th>
<th width="14%">操作</th>
</tr>
<tr v-for='item in dataList'>
<tr v-for="item in dataList">
<td>{{item.Name}}</td>
<td>
<span v-if="item.VisaType==1" class="geqian">个签</span>
......@@ -129,43 +335,114 @@
{{item.VisaStatus==1?"上架":"下架"}}
</td>
<td>
<span class="orderNum" @click="goUrl(item)" >{{item.OrderNum}}</span>
<span class="orderNum" @click="goUrl(item)">{{item.OrderNum}}</span>
</td>
<!-- <td>
<span class="peopleNum">{{item.PeopleNum}}(<span class="surplusNum">{{item.SurplusNum}}</span>)</span>
</td> -->
</td>-->
<td>
<img v-if='!item.CreatePhoto' src="../../assets/img/litheader.png"/>
<img v-if='item.CreatePhoto' :onerror="defaultImg" :src='item.CreatePhoto'/>
<img v-if="!item.CreatePhoto" src="../../assets/img/litheader.png">
<img v-if="item.CreatePhoto" :onerror="defaultImg" :src="item.CreatePhoto">
<span class="createName">{{item.CreateName}}</span>
</td>
<td>
<p v-for="(item2, index2) in item.AdvertisingFileList" :key="index2">
<span style="cursor:pointer;text-decoration: underline;" @click="downloadFile(item2)">{{item2.Name}}</span><i class="iconfont icon-Close" style="font-size:12px;cursor:pointer;" @click="delUnpload(item.Id,item2)"></i>
<span
style="cursor:pointer;text-decoration: underline;"
@click="downloadFile(item2)"
>{{item2.Name}}</span>
<i
class="iconfont icon-Close"
style="font-size:12px;cursor:pointer;"
@click="delUnpload(item.Id,item2)"
></i>
</p>
<el-upload :http-request="uploadImg" :data='item' ref="upload" :multiple="false" :show-file-list='false' action="">
<span style="color:#00C6FF;cursor:pointer;" @click='saveitem(item.Id)'>上传广告图</span>
<el-upload
:http-request="uploadImg"
:data="item"
ref="upload"
:multiple="false"
:show-file-list="false"
action
>
<span style="color:#00C6FF;cursor:pointer;" @click="saveitem(item.Id)">上传广告图</span>
</el-upload>
</td>
<td class="groupTourOrderIcon">
<el-button-group>
<el-tooltip class="item" effect="dark" content="修改" placement="top-start" v-if="item.SendVisaStatus==1&&msg.isFinacial==1">
<el-button type="primary" style='background:#409EFF; border-color:#409EFF' icon="iconfont icon-img_bianji_small" @click='getDetail(item)'></el-button>
<el-tooltip
class="item"
effect="dark"
content="修改"
placement="top-start"
v-if="item.SendVisaStatus==1&&msg.isFinacial==1"
>
<el-button
type="primary"
style="background:#409EFF; border-color:#409EFF"
icon="iconfont icon-img_bianji_small"
@click="getDetail(item)"
></el-button>
</el-tooltip>
<el-tooltip effect="dark" content="查看" placement="top-start" v-if="msg.isFinacial==1">
<el-button type="primary" style='background:#25C1C3; border-color:#25C1C3' @click="goUrl(item)" icon="iconfont icon-img_cz"></el-button>
<el-button
type="primary"
style="background:#25C1C3; border-color:#25C1C3"
@click="goUrl(item)"
icon="iconfont icon-img_cz"
></el-button>
</el-tooltip>
<el-tooltip effect="dark" content="签证列表" placement="top-start" v-if="item.VisaManagementId>0">
<el-button type="primary" @click="goUrlVisaList(item)" style='background:#47BF8C; border-color:#47BF8C' icon="iconfont icon-biaoge"></el-button>
<el-tooltip
effect="dark"
content="签证列表"
placement="top-start"
v-if="item.VisaManagementId>0"
>
<el-button
type="primary"
@click="goUrlVisaList(item)"
style="background:#47BF8C; border-color:#47BF8C"
icon="iconfont icon-biaoge"
></el-button>
</el-tooltip>
<el-tooltip v-if="item.OrderNum>0&&msg.isFinacial==1" effect="dark" content="结算" placement="top-start">
<el-button type="primary" @click="goUrlJS(item)" style='background:#5EBB64; border-color:#5EBB64' icon="iconfont icon-qian"></el-button>
<el-tooltip
v-if="item.OrderNum>0&&msg.isFinacial==1"
effect="dark"
content="结算"
placement="top-start"
>
<el-button
type="primary"
@click="goUrlJS(item)"
style="background:#5EBB64; border-color:#5EBB64"
icon="iconfont icon-qian"
></el-button>
</el-tooltip>
<el-tooltip v-if="item.VisaStatus==1&&msg.isFinacial==1" effect="dark" content="下架" placement="top-start" >
<el-button type="primary" style='background:#F0A748; border-color:#F0A748' icon="iconfont icon-xiajia1" @click='updateVisaStatus(item)'></el-button>
<el-tooltip
v-if="item.VisaStatus==1&&msg.isFinacial==1"
effect="dark"
content="下架"
placement="top-start"
>
<el-button
type="primary"
style="background:#F0A748; border-color:#F0A748"
icon="iconfont icon-xiajia1"
@click="updateVisaStatus(item)"
></el-button>
</el-tooltip>
<el-tooltip v-if="item.VisaStatus==2&&item.SendVisaStatus==1&&msg.isFinacial==1" effect="dark" content="上架" placement="top-start" >
<el-button type="primary" style='background:#F0A748; border-color:#F0A748' icon="iconfont icon-shangjia1" @click='updateVisaStatus(item)'></el-button>
<el-tooltip
v-if="item.VisaStatus==2&&item.SendVisaStatus==1&&msg.isFinacial==1"
effect="dark"
content="上架"
placement="top-start"
>
<el-button
type="primary"
style="background:#F0A748; border-color:#F0A748"
icon="iconfont icon-shangjia1"
@click="updateVisaStatus(item)"
></el-button>
</el-tooltip>
</el-button-group>
</td>
......@@ -181,29 +458,36 @@
:current-page.sync="currentPage"
layout="total,prev, pager, next, jumper"
:page-size="this.msg.pageSize"
:total="total">
</el-pagination>
:total="total"
></el-pagination>
<div class="_mc_edit _scrollbar" :class="addShow==true?'edHeight':''">
<p class="_tit">签证产品
<p class="_tit">
签证产品
<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-form
class="_info_box clearfix"
:model="addMsg"
:rules="rules"
ref="addMsg"
label-width="120px"
>
<el-row :gutter="20">
<el-col :span="5">
<el-form-item label="产品名称" prop="Name" >
<el-form-item label="产品名称" prop="Name">
<el-input v-model="addMsg.Name" placeholder="请输入" class="dateClass"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="类型" prop="VisaType">
<el-select v-model='addMsg.VisaType' @change='getVisaManagementList'>
<el-select v-model="addMsg.VisaType" @change="getVisaManagementList">
<!-- <el-option label='不限' value='-1' key='-1'></el-option> -->
<el-option label='个签' value='1' key='1'></el-option>
<el-option label='团签' value='2' key='2'></el-option>
<el-option label="个签" value="1" key="1"></el-option>
<el-option label="团签" value="2" key="2"></el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -211,7 +495,7 @@
<el-form-item label="人数" prop="PeopleNum">
<el-input @keyup.native="checkInteger(addMsg,'PeopleNum')" v-model="addMsg.PeopleNum" placeholder="请输入" maxlength="20"></el-input>
</el-form-item>
</el-col> -->
</el-col>-->
<el-col :span="5">
<el-form-item label="成本价" prop="CostPrice">
<el-input v-model="addMsg.CostPrice" placeholder="请输入" maxlength="20"></el-input>
......@@ -219,13 +503,13 @@
</el-col>
<el-col :span="5">
<el-form-item label="签证国家" prop="VisaManagementId">
<el-select v-model='addMsg.VisaManagementId' class="dateClass">
<el-option v-for='item in VisaManagementList'
:label='item.Name'
:value='item.Id'
:key='item.Id'>
</el-option>
<el-select v-model="addMsg.VisaManagementId" class="dateClass">
<el-option
v-for="item in VisaManagementList"
:label="item.Name"
:value="item.Id"
:key="item.Id"
></el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -242,13 +526,19 @@
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="提成金额" prop="CommissionPrice" >
<el-form-item label="提成金额" prop="CommissionPrice">
<el-input v-model="addMsg.CommissionPrice" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="价格有效日期" prop="SendVisaDate">
<el-date-picker v-model='addMsg.SendVisaDate' class="dateClass" value-format="yyyy-MM-dd" type="date" placeholder="请选择" ></el-date-picker>
<el-date-picker
v-model="addMsg.SendVisaDate"
class="dateClass"
value-format="yyyy-MM-dd"
type="date"
placeholder="请选择"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
......@@ -258,76 +548,96 @@
</template>
<script>
export default {
data(){
return{
uploadTCID:0,
defaultImg: 'this.src="' + require("../../assets/img/litheader.png") + '"',
data() {
return {
uploadTCID: 0,
defaultImg:
'this.src="' + require("../../assets/img/litheader.png") + '"',
companyList: [],
msg:{
pageIndex:1,
pageSize:12,
ProductName:'',
StartTime:'',
EndTime:'',
EmId:'-1',
ProductID:0,
VisaStatus:'-1',
isFinacial:1,
BranchId:'-1'
msg: {
pageIndex: 1,
pageSize: 12,
ProductName: "",
StartTime: "",
EndTime: "",
EmId: "-1",
ProductID: 0,
VisaStatus: "-1",
isFinacial: 1,
BranchId: "-1"
},
addMsg:{
Id:0,
Name:'',
VisaType:'',
SendVisaDate:'',
VisaPrice:'',
PeopleNum:'0',
CostPrice:'',
CommissionPrice:'',
VisaManagementId:'',
VisaB2CPrice: ''
addMsg: {
Id: 0,
Name: "",
VisaType: "",
SendVisaDate: "",
VisaPrice: "",
PeopleNum: "0",
CostPrice: "",
CommissionPrice: "",
VisaManagementId: "",
VisaB2CPrice: ""
},
rules:{
Name:[{required: true, message: "请输入产品名称", trigger: "blur"}],
customerName:[{required: true, message: "请输入客户名", trigger: "blur"}],
VisaPrice:[
{required: true, message: "请输入同业价", trigger: "blur"},
{pattern: this.$commonUtils.Regex.el_Isdecimal, message: "请输入同业价" }
rules: {
Name: [{ required: true, message: "请输入产品名称", trigger: "blur" }],
customerName: [
{ required: true, message: "请输入客户名", trigger: "blur" }
],
VisaB2CPrice:[
{required: true, message: "请输入直客价", trigger: "blur"},
{pattern: this.$commonUtils.Regex.el_Isdecimal, message: "请输入直客价" }
VisaPrice: [
{ required: true, message: "请输入同业价", trigger: "blur" },
{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入同业价"
}
],
CostPrice:[
{required: true, message: "请输入成本价", trigger: "blur"},
{ pattern: this.$commonUtils.Regex.el_Isdecimal, message: "请输入成本价" }
VisaB2CPrice: [
{ required: true, message: "请输入直客价", trigger: "blur" },
{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入直客价"
}
],
VisaType:[{required: true, message: "请选择类型", trigger: "change"}],
PeopleNum:[{required: true, message: "请输入人数", trigger: "blur"}],
CommissionPrice:[
{required: true, message: "请输入提成金额", trigger: "blur"},
{pattern: this.$commonUtils.Regex.el_Isdecimal, message: "请输入提成金额" }
CostPrice: [
{ required: true, message: "请输入成本价", trigger: "blur" },
{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入成本价"
}
],
SendVisaDate:[{required: true, message: "请输入价格有效期", trigger: "blur"}],
VisaType: [
{ required: true, message: "请选择类型", trigger: "change" }
],
PeopleNum: [{ required: true, message: "请输入人数", trigger: "blur" }],
CommissionPrice: [
{ required: true, message: "请输入提成金额", trigger: "blur" },
{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入提成金额"
}
],
SendVisaDate: [
{ required: true, message: "请输入价格有效期", trigger: "blur" }
]
},
dataList:[],
EmployeeList:[],
loading:true,
dataList: [],
EmployeeList: [],
loading: true,
total: 0,
addShow:false,
addShow: false,
currentPage: 1,
VisaManagementList:[],
}
},methods:{
VisaManagementList: []
};
},
methods: {
saveitem(tcid) {
this.uploadTCID = tcid
this.uploadTCID = tcid;
},
//上传
uploadImg(file) {
let newArr = [];
newArr.push(file.file);
let path = "/Upload/Temporary/";
this.UploadSelfFileT(path, newArr, x => {
this.UploadSelfFile(path, newArr, x => {
this.apipost(
"dmc_get_visa_UploadVisaAdvertisingImage",
{
......@@ -344,33 +654,37 @@ export default {
this.$message.error("上传失败");
}
}
})
);
});
},
delUnpload: function (tcid, item) {
this.$confirm('是否删除该广告图?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(()=>{
this.apipost('dmc_get_visa_UploadVisaAdvertisingImage', {
delUnpload: function(tcid, item) {
this.$confirm("是否删除该广告图?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.apipost(
"dmc_get_visa_UploadVisaAdvertisingImage",
{
Path: item.FullUrl,
FileName: item.Name,
Status: 2,
VId: tcid
}, res => {
if (res.data.resultCode===1) {
this.$message.success('删除成功')
},
res => {
if (res.data.resultCode === 1) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error('删除失败')
this.$message.error("删除失败");
}
}
})
})
);
});
},
downloadFile: function (item) {
let reg = /^http(s)?:\/\/(.*?)\//
this.downloadFileRename(item.FullUrl.replace(reg,''),item.Name);
downloadFile: function(item) {
let reg = /^http(s)?:\/\/(.*?)\//;
this.downloadFileRename(item.FullUrl.replace(reg, ""), item.Name);
},
getCompanyList() {
let userInfo = this.getLocalStorage();
......@@ -379,164 +693,233 @@ export default {
Status: 0,
is_show: 0,
RB_Group_Id: RB_Group_id
};
this.apipost(
"admin_get_BranchGetList",
msg,
res => {
if (res.data.resultCode == 1) {
this.companyList = [
{
Id: "-1",
BName: "不限"
}
this.apipost('admin_get_BranchGetList', msg, res => {
if(res.data.resultCode == 1) {
this.companyList = [{
Id: '-1',
BName: '不限'
}];
];
res.data.data.forEach(x => {
var obj = {
Id: '',
BName: ''
}
Id: "",
BName: ""
};
obj.Id = x.Id.toString();
obj.BName = x.BName;
this.companyList.push(obj);
})
});
}
}, err => {})
},
getVisaManagementList(){ // 获取签证管理
this.VisaManagementList=[]
this.addMsg.VisaManagementId=''
this.apipost('dmc_get_visa_GetVisaManagementList',{Status:-1,BranchId:-1,SignStatus:this.addMsg.VisaType},res=>{
if(res.data.resultCode==1){
this.VisaManagementList = res.data.data
}else{
this.$message.error(res.data.message)
err => {}
);
},
getVisaManagementList() {
// 获取签证管理
this.VisaManagementList = [];
this.addMsg.VisaManagementId = "";
this.apipost(
"dmc_get_visa_GetVisaManagementList",
{ Status: -1, BranchId: -1, SignStatus: this.addMsg.VisaType },
res => {
if (res.data.resultCode == 1) {
this.VisaManagementList = res.data.data;
} else {
this.$message.error(res.data.message);
}
},err=>{})
},
err => {}
);
},
goUrl(obj){
this.$router.push({ name: 'VisaProductOrder',query:{"id":obj.Id,"name":obj.Name,"sendDate":obj.SendVisaDate,"isShow":0,"EmId":"-1",blank:'y',tab:'详情'} })
goUrl(obj) {
this.$router.push({
name: "VisaProductOrder",
query: {
id: obj.Id,
name: obj.Name,
sendDate: obj.SendVisaDate,
isShow: 0,
EmId: "-1",
blank: "y",
tab: "详情"
}
});
},
goUrlVisaList(obj){
this.$router.push({ name: 'visaList2',query:{"id":obj.Id,blank:'y',tab:'签证列表'} })
goUrlVisaList(obj) {
this.$router.push({
name: "visaList2",
query: { id: obj.Id, blank: "y", tab: "签证列表" }
});
},
goUrlJS(obj){
this.$router.push({ name: 'saleOrderSettlement',query:{"id":obj.Id,"branchId":obj.RB_Branch_Id,blank:'y',tab:'结算列表'} })
goUrlJS(obj) {
this.$router.push({
name: "saleOrderSettlement",
query: {
id: obj.Id,
branchId: obj.RB_Branch_Id,
blank: "y",
tab: "结算列表"
}
});
},
getList(){ // 获取列表数据
this.apipost('dmc_get_visa_GetVisaProductList',this.msg,res=>{
if(res.data.resultCode==0){
getList() {
// 获取列表数据
this.apipost(
"dmc_get_visa_GetVisaProductList",
this.msg,
res => {
if (res.data.resultCode == 0) {
this.loading = false;
this.dataList=[]
}else{
this.dataList = [];
} else {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
this.loading = false;
}
},err=>{})
},
getDetail(obj){
this.addMsg.Id=obj.Id
this.apipost('dmc_get_visa_GetVisaProductInfo',{Pid:obj.Id},res=>{
if(res.data.resultCode == 1) {
this.addMsg.VisaType=res.data.data.VisaType.toString()
this.getVisaManagementList()
this.addMsg.VisaManagementId = res.data.data.VisaManagementId
this.addMsg.Name=res.data.data.Name
err => {}
);
},
getDetail(obj) {
this.addMsg.Id = obj.Id;
this.apipost(
"dmc_get_visa_GetVisaProductInfo",
{ Pid: obj.Id },
res => {
if (res.data.resultCode == 1) {
this.addMsg.VisaType = res.data.data.VisaType.toString();
this.getVisaManagementList();
this.addMsg.VisaManagementId = res.data.data.VisaManagementId;
this.addMsg.Name = res.data.data.Name;
this.addMsg.SendVisaDate=res.data.data.SendVisaDate
if(res.data.data.CostPrice){
this.addMsg.CostPrice=res.data.data.CostPrice.toString()
}
else{
this.addMsg.CostPrice=''
this.addMsg.SendVisaDate = res.data.data.SendVisaDate;
if (res.data.data.CostPrice) {
this.addMsg.CostPrice = res.data.data.CostPrice.toString();
} else {
this.addMsg.CostPrice = "";
}
this.addMsg.VisaPrice=res.data.data.VisaPrice.toString()
this.addMsg.VisaB2CPrice=res.data.data.VisaB2CPrice.toString()
this.addMsg.VisaPrice = res.data.data.VisaPrice.toString();
this.addMsg.VisaB2CPrice = res.data.data.VisaB2CPrice.toString();
// this.addMsg.PeopleNum=res.data.data.PeopleNum.toString()
this.addMsg.CommissionPrice=res.data.data.CommissionPrice.toString()
this.addShow=true;
}else{
console.log(res.data.message)
this.addMsg.CommissionPrice = res.data.data.CommissionPrice.toString();
this.addShow = true;
} else {
console.log(res.data.message);
}
},err=>{})
},
updateVisaStatus(obj){
this.addMsg.Id=obj.Id
this.apipost('dmc_post_visa_SetVisaProductStatus',{Pid:obj.Id},res=>{
if(res.data.resultCode == 1) {
this.addShow=false
this.getList()
this.$message.success(res.data.message)
}else{
this.$message.error(res.data.message)
err => {}
);
},
updateVisaStatus(obj) {
this.addMsg.Id = obj.Id;
this.apipost(
"dmc_post_visa_SetVisaProductStatus",
{ Pid: obj.Id },
res => {
if (res.data.resultCode == 1) {
this.addShow = false;
this.getList();
this.$message.success(res.data.message);
} else {
this.$message.error(res.data.message);
}
},err=>{})
},
getEmployeeList(){ // 获取人
this.apipost('admin_get_GetEmployeeByUserDepartmentId',{},res=>{
err => {}
);
},
getEmployeeList() {
// 获取人
this.apipost(
"admin_get_GetEmployeeByUserDepartmentId",
{},
res => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
}else{
this.$message.error(res.data.message)
} else {
this.$message.error(res.data.message);
}
},err=>{})
},
saveVisa(){ // 保存
this.$refs['addMsg'].validate((valid) => {
err => {}
);
},
saveVisa() {
// 保存
this.$refs["addMsg"].validate(valid => {
if (valid) {
this.addMsg.VisaManagementId==''?'0':this.addMsg.VisaManagementId
this.apipost('dmc_post_visa_SetVisaProduct',this.addMsg,res=>{
if(res.data.resultCode==1){
this.addMsg={
Id:0,
Name:'',
VisaType:'',
SendVisaDate:'',
VisaPrice:'',
PeopleNum:'0',
CostPrice:'',
CommissionPrice:'',
}
this.$message.success(res.data.message)
this.addShow=false
this.getList()
}else{
this.$message.error(res.data.message)
this.addMsg.VisaManagementId == ""
? "0"
: this.addMsg.VisaManagementId;
this.apipost(
"dmc_post_visa_SetVisaProduct",
this.addMsg,
res => {
if (res.data.resultCode == 1) {
this.addMsg = {
Id: 0,
Name: "",
VisaType: "",
SendVisaDate: "",
VisaPrice: "",
PeopleNum: "0",
CostPrice: "",
CommissionPrice: ""
};
this.$message.success(res.data.message);
this.addShow = false;
this.getList();
} else {
this.$message.error(res.data.message);
}
},err=>{})
},
err => {}
);
} else {
return false;
}
});
},
cancelEdit(){ // 取消新增
this.addShow=false
this.addMsg={
Id:0,
Name:'',
VisaType:'',
SendVisaDate:'',
VisaPrice:'',
PeopleNum:'0',
CostPrice:'',
CommissionPrice:'',
VisaManagementId:''
}
this.resetForm('addMsg')
cancelEdit() {
// 取消新增
this.addShow = false;
this.addMsg = {
Id: 0,
Name: "",
VisaType: "",
SendVisaDate: "",
VisaPrice: "",
PeopleNum: "0",
CostPrice: "",
CommissionPrice: "",
VisaManagementId: ""
};
this.resetForm("addMsg");
},
resetForm(formName) { // 重置表单
resetForm(formName) {
// 重置表单
this.$refs[formName].resetFields();
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
}
},
},mounted(){
this.userId=this.getLocalStorage().EmployeeId
this.msg.BranchId = this.getLocalStorage().RB_Branch_id.toString()
this.msg.ProductID=this.$route.query.VisaID
this.msg.isFinacial=this.$route.query.isFinacial!=undefined?this.$route.query.isFinacial:1
this.getList()
this.getCompanyList()
mounted() {
this.userId = this.getLocalStorage().EmployeeId;
this.msg.BranchId = this.getLocalStorage().RB_Branch_id.toString();
this.msg.ProductID = this.$route.query.VisaID;
this.msg.isFinacial =
this.$route.query.isFinacial != undefined
? this.$route.query.isFinacial
: 1;
this.getList();
this.getCompanyList();
this.getEmployeeList();
}
}
};
</script>
......@@ -31,20 +31,8 @@
text-align: left;
padding: 0 10px;
}
.LeaderPrintDiv .printBtn{
color: #fff;
padding: 0 15px;
height: 30px;
background: #E95252;
border: 1px solid #E95252;
cursor: pointer;
border-radius: 15px;
position: fixed;
right:50px;
top:30px;
}
@media print{
.LeaderPrintDiv .printBtn{display:none}
.LeaderPrintDiv .btnListDiv{display:none}
}
.comTotal{
text-align:left;
......@@ -58,6 +46,22 @@
width:1000px;
margin:0 auto;
}
.wLeader2 .el-textarea__inner{
height:130px;
}
.LeaderPrintDiv .btnListDiv{
margin:20px auto;
text-align: center;
}
.LeaderPrintDiv .leader2Btn{
color: #fff;
padding: 0 15px;
height: 30px;
background: #E95252;
border: 1px solid #E95252;
cursor: pointer;
border-radius: 15px;
}
</style>
<template>
......@@ -65,10 +69,10 @@
<div class="childDiv">
<table border="0" cellspacing='1' class="leaderPayTable">
<tr>
<th width="8%">出发地</th>
<th width="30%">行程名称</th>
<th width="15%">团号</th>
<th width="15%">出发时间</th>
<th width="110">出发地</th>
<th width="290">行程名称</th>
<th width="13%">团号</th>
<th width="13%">出发时间</th>
<th width="8%">天数</th>
<th width="8%">出团人数</th>
<th width="8%">领队</th>
......@@ -115,15 +119,16 @@
</td>
</tr>
</template>
<tr v-if="dataList.ScenicList.length>0">
<!-- <tr v-if="dataList.ScenicList.length>0">
<td class="comTotal" colspan="4">合计:{{totalScenicPrice}}</td>
</tr>
</tr> -->
<tr v-for="(item,index) in dataList.BusList">
<td v-if="index==0" :rowspan="dataList.BusList.length">交通</td>
<td>
<span v-if='index==0'>接机</span>
{{item.ParkExplain}}
<!-- <span v-if='index==0'>接机</span>
<span v-if='index!=0&&index!=dataList.BusList.length-1'>{{item.AirportPickUpStr}}</span>
<span v-if='index==dataList.BusList.length-1'>送机</span>
<span v-if='index==dataList.BusList.length-1'>送机</span> -->
</td>
<td>
{{item.TotalPrice}} {{item.CurrencyStr}}
......@@ -132,9 +137,9 @@
{{item.Remarks}}
</td>
</tr>
<tr v-if="dataList.BusList.length>0">
<!-- <tr v-if="dataList.BusList.length>0">
<td class="comTotal" colspan="4">合计:{{totalTrafficPrice}}</td>
</tr>
</tr> -->
<template v-for='(item,index) in dataList.DiningList'>
<tr class="splitP ScenicTr">
<td v-if="index==0" :rowspan="dataList.DiningList.length">餐饮</td>
......@@ -155,9 +160,9 @@
</td>
</tr>
</template>
<tr v-if="dataList.DiningList.length>0">
<!-- <tr v-if="dataList.DiningList.length>0">
<td class="comTotal" colspan="4">合计:{{totalDinnerPrice}}</td>
</tr>
</tr> -->
<template v-for='(item,index) in dataList.HotelList'>
<tr>
<td v-if="index==0" :rowspan="dataList.HotelList.length">酒店</td>
......@@ -168,15 +173,62 @@
<td>{{item.Remarks}}</td>
</tr>
</template>
<tr v-if="dataList.HotelList.length>0">
<!-- <tr v-if="dataList.HotelList.length>0">
<td class="comTotal" colspan="4">合计:{{totalHotelPrice}}</td>
</tr>
<tr>
<td colspan="4">总计:{{allTotal}}</td>
</tr>
</tr> -->
</tbody>
</table>
<input type="button" class="printBtn" value="打印" @click="printTable()">
<table border="0" cellspacing='1' class="leaderPayTable">
<tr>
<th>类型</th>
<th>金额</th>
</tr>
<tr v-show="totalList.PlanTotalPrice>0">
<td>领取团款</td>
<td>{{totalList.PlanTotalPrice}}</td>
</tr>
<tr v-show="totalList.SelfPayingExpendTotalPrice>0">
<td>自费支出</td>
<td>{{totalList.SelfPayingExpendTotalPrice}}</td>
</tr>
<tr v-show="totalList.SelfPayingIncomeTotalPrice>0">
<td>自费收入</td>
<td>{{totalList.SelfPayingIncomeTotalPrice}}</td>
</tr>
<tr v-show="totalList.IncomeTotalPrice>0">
<td>消费收入</td>
<td>{{totalList.IncomeTotalPrice}}</td>
</tr>
<tr v-show="(totalList.ExpendTotalPrice-totalScenicPrice-totalTrafficPrice-totalDinnerPrice-totalHotelPrice)>0">
<td>其他费用</td>
<td>{{totalList.ExpendTotalPrice-totalScenicPrice-totalTrafficPrice-totalDinnerPrice-totalHotelPrice}}</td>
</tr>
<tr v-show="totalScenicPrice>0">
<td>景点门票</td>
<td>{{totalScenicPrice}}</td>
</tr>
<tr v-show="totalTrafficPrice>0">
<td>交通</td>
<td>{{totalTrafficPrice}}</td>
</tr>
<tr v-show="totalDinnerPrice>0">
<td>餐饮</td>
<td>{{totalDinnerPrice}}</td>
</tr>
<tr v-show="totalHotelPrice>0">
<td>酒店</td>
<td>{{totalHotelPrice}}</td>
</tr>
</table>
<el-input type="textarea" v-if="isShowRemark" placeholder="请输入备注信息" v-model="dataList.LeaderApply.AccountForReason" class="wLeader2"/>
<div class="btnListDiv">
<input type="button" class="leader2Btn" @click="AuditOrder(2)" value="审核通过"/>
<input type="button" class="leader2Btn" @click="AuditOrder(1)" value="审核不通过"/>
<input type="button" class="leader2Btn" value="打印" @click="printTable()">
</div>
</div>
</div>
</template>
......@@ -200,8 +252,10 @@ export default {
totalHotelPrice:0,
//合计交通
totalTrafficPrice:0,
allTotal:0,
totalList:[],
isShowRemark:false,
}
},
methods: {
......@@ -225,6 +279,7 @@ export default {
this.totalDinnerPrice+= parseFloat(x.DiningSummaryList[0].TotalPrice);
})
this.allTotal = (this.totalHotelPrice+this.totalTrafficPrice+this.totalScenicPrice+this.totalDinnerPrice).toFixed(2);
this.isShowRemark=true;
} else {
this.Error(res.data.message)
}
......@@ -253,6 +308,35 @@ export default {
//打印
printTable(){
window.print();
},
//获取总额
getTotalMoney(){
this.apipost('dmcstatistics_post_GetTotalPrice', {
TCIDs: this.$route.query.id
}, res => {
if (res.data.resultCode == 1) {
this.totalList = res.data.data;
} else {
this.Error(res.data.message)
}
}, err => {})
},
//审核
AuditOrder(type){
if(type==1&&(this.dataList.LeaderApply.AccountForReason==null||this.dataList.LeaderApply.AccountForReason=='')){
this.Error('请填写备注信息');
return;
}
this.dataList.LeaderApply.Status=type;
let msg = this.dataList.LeaderApply;
this.apipost('dmcstatistics_post_AuditLeaderapply',msg, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
} else {
this.Error(res.data.message);
}
}, err => {})
}
},
created() {
......@@ -263,6 +347,7 @@ export default {
this.msg.TCIDs = this.$route.query.id;
this.getNav();
this.getList();
this.getTotalMoney();
},
}
</script>
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