Commit b274db0c authored by youjie's avatar youjie

签证一键制单

parent 0767b2c9
......@@ -811,9 +811,20 @@
</style>
<template>
<div class="page_MyCustomer">
<div v-show="nameShow"
style="display:inline-block;padding:0 6px;color: #333; margin-top: 20px; text-align: center; line-height: 34px;font-size: 14px; font-weight: bold; height:34px;background:rgba(212,212,212,1);border:1px solid rgba(210,210,210,1);border-radius:4px;">
{{visaProduct}}</div>
<div style="display: flex;justify-content: space-between;align-items: center; margin-top: 20px;">
<div style="display:inline-block;padding:0 6px;color: #333; text-align: center; line-height: 34px;font-size: 14px; font-weight: bold; height:34px;background:rgba(212,212,212,1);border:1px solid rgba(210,210,210,1);border-radius:4px;">
<span v-show="nameShow">{{visaProduct}}</span>
</div>
<div v-if="visaProduct.indexOf('日本')!=-1">
<el-switch
v-model="SwitchStatus"
active-text="一键制单"
inactive-text="一键完结"
active-value="1"
inactive-value="0" @change="handleClear">
</el-switch>
</div>
</div>
<div class="query-box" style="border:none">
<ul>
<li v-if="isShow==0">
......@@ -862,8 +873,9 @@
<li>
<button class="hollowFixedBtn" @click="getList()">查询</button>
<button class="hollowFixedBtn" @click="goUrlCb">查看成本</button>
<el-button v-if="IsSupperOrderEdit" class="hollowFixedBtn" @click="setCompleted"
:loading="CompletedLoading">一键完结</el-button>
<el-button v-if="IsSupperOrderEdit" class="hollowFixedBtn"
@click="SwitchStatus==0?setCompleted():setPrepareDocument()"
:loading="CompletedLoading">{{SwitchStatus==0?'一键完结':'一键制单'}}</el-button>
</li>
</ul>
</div>
......@@ -1006,7 +1018,7 @@
<el-tooltip v-if="IsSupperOrderEdit&& scope.row.VisaType==1" class="item" effect="dark" content="修改金额"
placement="top-start">
<el-button type="primary" style='background:#E95252; border-color:#E95252;padding:5px' icon="el-icon-edit"
@click='Edit(scope.row)'></el-button>
@click='Edit(scope.row,1)'></el-button>
</el-tooltip>
<!-- 完结 -->
<el-tooltip v-if="IsSupperOrderEdit&&scope.row.IsFinish!=1
......@@ -1041,9 +1053,34 @@
<tr>
<td colspan="9" class="groupTourOrder_remarks" style="height: 40px;">
<div>
<div class="fz13">
<span v-if="scope.row.VisaFeeNum" class="mr cblack">签证人数:
<span :class="[scope.row.VisaFeeNum>scope.row.PeopleNum?'cF1416C':'c9e']">
{{scope.row.VisaFeeNum}}</span>
</span>
<span v-if="scope.row.PremiumNum" class="mr cblack">保险人数:
<span :class="[scope.row.PremiumNum>scope.row.PeopleNum?'cF1416C':'c9e']">
{{scope.row.PremiumNum}}</span>
</span>
<span v-if="scope.row.ExpressFeeNum" class="mr cblack">快递人数:
<span :class="[scope.row.ExpressFeeNum>scope.row.PeopleNum?'cF1416C':'c9e']">
{{scope.row.ExpressFeeNum}}</span>
</span>
<span v-if="scope.row.ServiceFeeNum" class="mr cblack">服务人数:
<span :class="[scope.row.ServiceFeeNum>scope.row.PeopleNum?'cF1416C':'c9e']">
{{scope.row.ServiceFeeNum}}</span>
</span>
</div>
<div>
<span class="VO-remarkTitle">备注:</span>
<span class="VO-redType VO-remarkCon">{{scope.row.Remark}}</span>
<span class="VO-redType VO-remarkCon">{{scope.row.Remark}}
<!--
<el-tooltip class="item" effect="dark" :content="$t('salesModule.UpRemarks')"
placement="top-start">
<i class="el-icon-edit cursor-pointer c059FF6 mx" @click='Edit(scope.row)'></i>
</el-tooltip> -->
</span>
</div>
</div>
</td>
......@@ -1051,8 +1088,8 @@
<div>
<div class="row justify-sb wrap mr">
<div class="row relative" style="margin-top: 5px;">
<span>收款单据:</span>
<span class="cursor-pointer radius5 mr mb px5"
<span style="white-space: nowrap;">收款单据:</span>
<span class="cursor-pointer radius5 mr mb px5" style="white-space: nowrap;"
:class="{'bgD9F3FF':x.Status==1,'bgFAEAED':x.Status==2,'bjFFF3E0':x.Status==3,
'c3FC4FF':x.Status==1,'cF1416C':x.Status==2,'cff9800':x.Status==3}" v-for="(x, i) in scope.row.FinanceList"
@click="goUrl2('FinancialDocumentsDetail',x.FrID,'财务单据')">{{ x.FrID }}</span>
......@@ -1063,13 +1100,13 @@
<el-tooltip v-if="scope.row.visaOrderStatus!=2" class="" effect="dark" content="制单"
placement="top">
<i class="el-icon-circle-plus cursor-pointer c059FF6"
@click="makeAdocument(scope.row, index, 1)"></i>
@click="makeAdocument(scope.row, scope.$index, 1)"></i>
</el-tooltip>
</div>
</div>
<div class="row relative" style="margin-top: 5px;">
<span>退款单据:</span>
<span class="cursor-pointer radius5 mr mb px5"
<span style="white-space: nowrap;">退款单据:</span>
<span class="cursor-pointer radius5 mr mb px5" style="white-space: nowrap;"
:class="{'bgD9F3FF':x.Status==1,'bgFAEAED':x.Status==2,'bjFFF3E0':x.Status==3,
'c3FC4FF':x.Status==1,'cF1416C':x.Status==2,'cff9800':x.Status==3}" v-for="(x, i) in scope.row.RefundFinanceList"
@click="goUrl2('FinancialDocumentsDetail',x.FrID,'财务单据')">{{ x.FrID }}</span>
......@@ -1080,16 +1117,16 @@
<el-tooltip v-if="scope.row.visaOrderStatus!=2" class="" effect="dark" content="制单"
placement="top">
<i class="el-icon-circle-plus cursor-pointer c059FF6"
@click="makeAdocument(scope.row, index, 2)"></i>
@click="makeAdocument(scope.row, scope.$index, 2)"></i>
</el-tooltip>
</div>
</div>
<div class="row relative" style="margin-top: 5px;">
<span>成本单据:</span>
<span class="cursor-pointer radius5 mr mb px5"
<span style="white-space: nowrap;">成本单据:</span>
<span class="cursor-pointer radius5 mr mb px5" style="white-space: nowrap;"
:class="{'bgD9F3FF':x.Status==1,'bgFAEAED':x.Status==2,'bjFFF3E0':x.Status==3,
'c3FC4FF':x.Status==1,'cF1416C':x.Status==2,'cff9800':x.Status==3}" v-for="(x, i) in scope.row.CostFinanceList"
@click="goUrl2('FinancialDocumentsDetail',x.FrID,'财务单据')">{{ x.FrID }}</span>
@click="goUrl2('FinancialDocumentsDetail',x.FrID,'财务单据')">{{ x.FrID }} {{ x.Name?x.Name:'' }}</span>
<span v-if="scope.row.CostFinanceList&&scope.row.CostFinanceList.length == 0" class="c9e fz12 mr">
暂无
</span>
......@@ -1097,11 +1134,11 @@
<el-tooltip class="" effect="dark" content="制单"
placement="top">
<i class="el-icon-circle-plus cursor-pointer c059FF6"
@click="makeAdocument(scope.row, index, 3)"></i>
@click="makeAdocument(scope.row, scope.$index, 3)"></i>
</el-tooltip>
<el-tooltip class="" effect="dark" content="冲抵" placement="top">
<i class="el-icon-circle-plus cursor-pointer c3FC4FF"
@click="isOffset(scope.row, index, 3)"></i>
@click="isOffset(scope.row, scope.$index, 3)"></i>
</el-tooltip>
</div>
</div>
......@@ -1120,9 +1157,9 @@
<span v-if="item.FinanceList.length===0" style="cursor: default;">暂无数据</span> -->
</div>
<div style="margin-top: 5px;">
<span>{{$t('salesModule.Invoice')}}:</span>
<span style="white-space: nowrap;">{{$t('salesModule.Invoice')}}:</span>
<span v-for="(item2,index2) in scope.row.invoiceApplyList" :key="index2"
style="margin-right:10px;cursor:pointer;">
style="margin-right:10px;cursor:pointer;white-space: nowrap;">
<span v-if="item2.invoiceApplyState === 6" class="groupTourOrder_tickets_blue"
@click="goIisDetail(item2.id)">{{item2.id}}</span>
<span
......@@ -1147,10 +1184,13 @@
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" layout="total"
:page-size="this.msg.pageSize" :total="total">
</el-pagination>
<el-dialog title="修改金额" :visible.sync="EditVisible" width="400px">
<div>
<el-dialog :title="title" :visible.sync="EditVisible" width="400px">
<div v-if="title=='修改金额'">
金额:<el-input style="width:300px" v-model="EditMsg.TotalPrice"></el-input>
</div>
<div v-if="title=='修改备注'">
<el-input type="textarea" style="width:100%" maxlength="500" v-model="EditMsg.Remark"></el-input>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="EditVisible = false">取 消</el-button>
<el-button size="mini" type="danger" @click="PerferPrice">确 定</el-button>
......@@ -1160,15 +1200,24 @@
<TransferOrder v-if="showTransferOrder" :isShow="showTransferOrder" :obj="queryObj"
@success="showTransferOrder=false,getList()"
@close="showTransferOrder=false"></TransferOrder>
<OneClickDocumentPreparation v-if="showDocumentPreparation" :visaProduct="visaProduct"
:multipleSelection="multipleSelection"
@close="showDocumentPreparation=false"
@success="showDocumentPreparation=false,getList()"></OneClickDocumentPreparation>
</div>
</template>
<script>
import offset from '../public/offset.vue';
import TransferOrder from './components/TransferOrder.vue';
import OneClickDocumentPreparation from './components/OneClickDocumentPreparation.vue';
export default {
components: { offset,TransferOrder },
components: { offset,TransferOrder,OneClickDocumentPreparation },
data() {
return {
ids: '',
showDocumentPreparation: false,
SwitchStatus:0,//0 完结 1制单
title: '',
showTransferOrder: false,
queryObj:null,
cdState: false,
......@@ -1208,26 +1257,55 @@
}
},
methods: {
handleClear(){
this.$refs.multipleTable.clearSelection()
},
selectable(row, index){
if(this.SwitchStatus==0){
if (this.dataList[index].IsFinish!=1&&this.dataList[index].Income>0&&this.dataList[index].DueInMoney==0) {
return true;
} else {
return false;
}
}else{
if(this.dataList[index].FinanceList&&this.dataList[index].FinanceList.length > 0&&this.dataList[index].VisaOrderStatus==1){
return true
}else{
return false
}
}
},
handleSelectionChange(val) {
this.multipleSelection = val.map(x=>{ return x.Id});
this.multipleSelection = JSON.parse(JSON.stringify(val))
},
// 一键制单
setPrepareDocument(id){
let ids = ''
if(id>0){
ids = id
}
if(this.multipleSelection&&this.multipleSelection.length>0){
ids = this.multipleSelection.map(x=>{ return x.Id})
}
if(ids == ''||(ids&&ids.length==0)) {
this.$message.error('请勾选需要制单的数据')
return
}
this.showDocumentPreparation = true
},
// 一键完结
setCompleted(id,row){
let ids = ''
let arrId
if(id>0){
ids = id
}else{
if(this.multipleSelection.length==0) return this.$message.error('请勾选需要完结的数据')
ids = this.multipleSelection.join(',')
}
if(ids == '') {
if(this.multipleSelection&&this.multipleSelection.length>0){
ids = this.multipleSelection.map(x=>{ return x.Id})
}
if(ids == ''||(ids&&ids.length==0)) {
this.$message.error('请勾选需要完结的数据')
return
}
this.$confirm('是否确认完结?', '提示', {
confirmButtonText: '确定',
......@@ -1240,7 +1318,7 @@
this.CompletedLoading = true
}
this.apipost('dmc_post_SetVisaOrderFinish', {
VisaOrderIds: ids
VisaOrderIds: ids&&ids.length>0?ids.join(','):ids
}, res => {
if (res.data.resultCode == 1) {
if(id>0){
......@@ -1333,21 +1411,55 @@
});
},
PerferPrice() {
if(this.title == '修改金额'){
this.apipost('dmc_get_visa_SetVisaOrderPrice', this.EditMsg, res => {
if (res.data.resultCode == 1) {
this.EditVisible = false;
this.Success(res.data.message)
this.getList();
} else {
this.Error(res.data.message)
}
}, err => {})
}else{
this.apipost('dmc_get_visa_SetVisaOrder', this.EditMsg, res => {
if (res.data.resultCode == 1) {
this.EditVisible = false;
this.Success(res.data.message)
this.getList();
} else {
this.Error(res.data.message)
}
}, err => {})
}
},
Edit(item) {
this.EditVisible = true;
Edit(item,type) {
if(type==1){
this.title = '修改金额'
this.EditMsg.OrderId = item.Id;
this.EditMsg.TotalPrice = item.TotalPrice;
}else{
this.title = '修改备注'
this.EditMsg = {
Id: item.Id,
Remark: item.Remark,
VisaId: item.VisaId,
Name: item.Name,
PeopleNum: item.PeopleNum,
EnterCountryTime: item.EnterCountryTime,
LeaveCountryTime: item.LeaveCountryTime,
DepartAirport: item.DepartAirport,
GetBackAirport: item.GetBackAirport,
EnterCountryPort: item.EnterCountryPort,
LeaveCountryPort: item.LeaveCountryPort,
EnterCountryFlight: item.EnterCountryFlight,
LeaveCountryFlight: item.LeaveCountryFlight,
VisaPlanId: item.VisaPlanId,
DepartDate: item.DepartDate
}
}
this.EditVisible = true;
},
goUrlCb(item) {
this.$router.push({
......
<template>
<el-dialog title="一键制单" width="1000px" :visible.sync="showState" center @close="close">
<div class="title_box">
<p style="font-size: 16px;font-weight: bold;">{{visaProduct}}</p>
<div class="title_right" v-if="multipleSelection&&multipleSelection.length>0">
<span>已选单号:</span>
<template v-for="(x,index) in multipleSelection">
<el-tag :key="index" size="mini" style="margin-left: 5px;margin-bottom: 3px;">
{{x.Id+' '+x.CreateName+' '+x.PeopleNum}}
</el-tag>
</template>
<span style="margin-left: 20px;">总人数:{{getPeopleNum()}}</span>
</div>
</div>
<div style="display: flex;flex-direction: row;align-items: center; padding: 5 0 0 0;margin-bottom: 10px;"
v-loading="loadingVisa">
<template v-if="visaDataList&&visaDataList.length>0">
<span><span style="color: red;">*</span> 签证类型:</span>
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll"
@change="handleCheckAllChange" style="margin-left: 10px;">
全选
</el-checkbox>
<el-checkbox-group v-model="checkedCities"
@change="handleCheckedCitiesChange" style="margin-left: 20px;">
<el-checkbox v-for="item in visaDataList"
:label="item.Id" :key="item.Id">
{{item.SetUpTypeStr}}
</el-checkbox>
</el-checkbox-group>
</template>
<template v-if="searchList&&searchList.length>0">
<span style="margin-left: 50px;"><span style="color: red;">*</span> 签证OP:</span>
<el-select
filterable
v-model="addMsg.AuditId"
placeholder="签证OP" style="margin-left: 10px;">
<el-option
v-for="item in searchList"
:key="item.empId"
:label="item.name"
:value="item.empId">
</el-option>
</el-select>
</template>
</div>
<div class="table-box">
<el-table
v-if="addMsg.detailList&&addMsg.detailList.length>0"
ref="multipleTable2"
:data="addMsg.detailList"
tooltip-effect="dark"
style="width: 100%"
>
<el-table-column label="类型" prop="SetUpTypeStr" width="80"></el-table-column>
<el-table-column>
<template slot="header" slot-scope="scope">
单价
<el-tooltip class="item" effect="dark" content="单价*订单人数=制单金额" placement="top-start">
<i class="el-icon-info" style="cursor: pointer;"></i>
</el-tooltip>
</template>
<template slot-scope="scope">
<el-input type="Number" v-model="scope.row.UnitPrice" />
</template>
</el-table-column>
<el-table-column label="币种" width="120">
<template slot-scope="scope">
<el-select
filterable
v-model="scope.row.CurrencyId"
placeholder="币种">
<el-option
v-for="item in coinGetList"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="付款类型" width="130">
<template slot-scope="scope">
<el-select
v-model="scope.row.IsPublic"
placeholder="付款类型">
<el-option
v-for="item in IsPublicList"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="客户类型">
<template slot-scope="scope">
<el-select
filterable
v-model="scope.row.ClientType"
placeholder="客户类型"
@change="financeinfo_post_GetClientAccountList(scope.row.ClientType,scope.$index)">
<el-option
v-for="item in ClientTypeList"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="客户">
<template slot-scope="scope">
<div v-loading="scope.row.loading">
<el-select
filterable
v-model="scope.row.ClientID"
placeholder="客户">
<el-option
v-for="item in scope.row.ClientAccountList"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column label="凭证" width="200">
<template slot-scope="scope">
<div class="img-box-form">
<template v-for="(file,fIndex) in scope.row.vorcherInos">
<div v-if="file.Type==3" class="img-box">
<div style="width:100%;height:100%;">
<el-image
style="width: 100%; height: 100%"
:src="file.Url?file.Url:file.Content"
:preview-src-list="[file.Url?file.Url:file.Content]">
</el-image>
</div>
<span class="iconfont icon-guanbi1 delete" @click="deleteUploadFile(scope.$index,fIndex)"></span>
</div>
<div v-if="file.Type==1" class="img-box">
<div class="iconfont _wenjian_P"
:class="file.Content.substring(file.Content.lastIndexOf('.')+1,file.Content.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'"
@click="showUpLoadFile(file.Content)">
</div>
<span class="iconfont icon-guanbi1 delete" @click="deleteUploadFile(scope.$index,fIndex)"></span>
</div>
</template>
<div class="_fujian_box" style="margin-left: 15px;">
<div class="_pic_upload">
<el-upload drag :http-request="(file)=>uploadFileBtn(file,scope.$index)" :multiple="true"
:show-file-list="false" action="">
<i class="el-icon-plus avatar-uploader-icon"></i>
<!-- <div class="el-upload__text">上传</div> -->
</el-upload>
</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="是否月结" width="80">
<template slot-scope="scope">
<el-tooltip v-if="scope.row.IsMonthly" content="否/是" placement="top">
<el-switch
v-model="scope.row.OtherType"
active-value="2"
inactive-value="1">
</el-switch>
</el-tooltip>
</template>
</el-table-column>
</el-table>
</div>
<div slot="footer" class="dialog-footer">
<div style="color: red;text-align: right;font-size: 13px;margin-bottom: 5px;">
一键制单 暂不支持 预付款冲抵, 需冲抵的单据请先手动制单
</div>
<el-button class="hollowFixedBtn" @click="close">{{$t('pub.cancelBtn')}}</el-button>
<el-button class="normalBtn" type="primary" @click="submit" :loading="submitLoading">{{$t('pub.sureBtn')}}</el-button>
</div>
</el-dialog>
</template>
<script>
export default {
props: ["visaProduct","multipleSelection","isShow","obj"],
components: {
},
data() {
return {
dataList: [],
showState: true,
loading: false,
submitLoading: false,
coinGetList: [],
visaDataList:[],
loadingVisa: false,
newAddMsg:{
OrderIdStr:'',
AuditId:'',
detailList:[]
},
addMsg:{
OrderIdStr:'',
AuditId:'',
detailList:[]
},
ClientTypeList: [],
ClientAccountListS: [],
ClientAccountList: [],
IsPublicList:[
{Name:'公账',ID:1},
{Name:'私账',ID:0},
],
searchList: [],
isIndeterminate: false,
cities:[],
checkAll: false,
checkedCities: [],
visaInfor:null,
}
},
watch: {
obj: {
handler(newValue,onldValue) {
},
deep:true,
},
},
mounted() {
this.visa_GetVisaProductInfo_V1()
this.getEmployee()
this.GetVisaSetUpList()
this.financeinfo_post_GetList()
this.financeinfo_post_GetClientTypeList()
setTimeout(()=>{
this.showState = true
},200)
},
methods: {
getPeopleNum(){
let PeopleNum = 0
this.multipleSelection.forEach(x=>{
PeopleNum+=Number(x.PeopleNum)
})
return PeopleNum
},
handleCheckAllChange(val) {
this.checkedCities = val ? this.cities : [];
this.isIndeterminate = false;
this.getVisaType()
},
handleCheckedCitiesChange(value) {
let checkedCount = value.length;
this.checkAll = checkedCount === this.cities.length;
this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length;
this.getVisaType()
},
selectable(row, index){
return true
if (this.dataList[index].isFinish!=1&&this.dataList[index].income>0&&this.dataList[index].dueInMoney==0) {
return true;
} else {
return false;
}
},
close(){
this.showState = false
this.$emit('close',false)
},
submit(){
let ids = this.multipleSelection.map(x=>{ return x.Id })
this.addMsg.OrderIdStr = ids.join(',')
if(!this.addMsg.detailList||this.addMsg.detailList.length==0){
this.Error("请选择签证类型!");
return;
}
if(!this.addMsg.AuditId){
this.Error("请选择签证OP!");
return;
}
for (let index = 0; index < this.addMsg.detailList.length; index++) {
if(this.addMsg.detailList[index].UnitPrice==''||this.addMsg.detailList[index].UnitPrice==null||
!this.addMsg.detailList[index].CurrencyId||!this.addMsg.detailList[index].IsPublic||
!this.addMsg.detailList[index].ClientID){
this.Error(`请完善第${index+1}行信息`);
return;
}
}
let msg = {
OrderIdStr: this.addMsg.OrderIdStr,
AuditId: this.addMsg.AuditId,
detailList: []
}
this.addMsg.detailList.forEach(x=>{
let obj = {
TemplateId: x.TemplateId,
OtherType: x.OtherType,
UnitPrice: x.UnitPrice,
CurrencyId: x.CurrencyId,
IsPublic: x.IsPublic,
ClientID: x.ClientID,
vorcherInos: x.vorcherInos
}
msg.detailList.push(obj)
})
this.submitLoading = true
this.apipost("Financial_post_SetVisaBathCreateFinance",msg, res => {
if (res.data.resultCode === 1) {
this.showState = false
this.$emit('success')
this.close()
}
this.submitLoading = false
}, null)
},
uploadFileBtn(file,index) { //上传
if (file.file.size > 1024 * 1024 * 10) {
this.$message.warning('文件大小不能超过10M!')
return
}
// 1 文档 2 数据 3 图片
let typeArr = [{
stringArr: 'GIF|JPG|JPEG|PNG|BMP',
type: 3
},
{
stringArr: 'DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF',
type: 1
},
]
let ft = file.file.name.substring(file.file.name.lastIndexOf('.') + 1, file.file.name.length).toUpperCase();
let fileTypeNumber = 2;
let typeOk = false;
typeArr.forEach(x => {
if (x.stringArr.indexOf(ft) != '-1') {
fileTypeNumber = x.type;
typeOk = true;
}
});
if (!typeOk) return this.$message.error('请上传图片、word、excel类型的文件!');
let newArr = [];
newArr.push(file.file)
let path = "/Upload/Temporary/"
this.$message.info('上传中...')
this.UploadSelfFileT(path, newArr, x => {
let fileSize = file.file.size < 1024 ? file.file.size : (file.file.size / 1024).toFixed(0);
this.addMsg.detailList[index].vorcherInos.push({
Type: fileTypeNumber,
Content: x.data.FilePath,
Url: this.domainManager().ViittoFileUrl + x.data.FilePath,
});
this.$message.success('上传成功');
});
},
deleteUploadFile(index,i) { // 删除上传文件
this.addMsg.detailList[index].vorcherInos.splice(i, 1);
},
showUpLoadFile(i) { // 预览上传文件
if (i.substring(i.lastIndexOf('.') + 1, i.length).toUpperCase() == 'PDF') {
this.previewPDF(i)
} else {
window.open("https://view.officeapps.live.com/op/view.aspx?src=" + i)
}
},
// 组装已选类型数据
getVisaType(){
this.newAddMsg = JSON.parse(JSON.stringify(this.addMsg))
this.addMsg.detailList = []
this.visaDataList.forEach(x=>{
this.checkedCities.forEach(y=>{
if(x.Id==y) {
let obj = {
Id: x.Id,
SetUpTypeStr: x.SetUpTypeStr,
TemplateId: x.SetUpType,
IsMonthly: x.IsMonthly,
UnitPrice: x.SetUpTypeStr=='签证费'?this.visaInfor.CostPrice:null,
CurrencyId: null,
IsPublic: '',
ClientType: '',
ClientID: '',
OtherType: 1,
ClientAccountList: [],
vorcherInos:[],
loading: false
}
this.addMsg.detailList.push(obj)
}
})
})
if(this.newAddMsg&&this.newAddMsg.detailList&&this.newAddMsg.detailList.length>0){
for(let i=0;i<this.addMsg.detailList.length;i++){
for(let j=0;j<this.newAddMsg.detailList.length;j++){
if(this.addMsg.detailList[i].Id==this.newAddMsg.detailList[j].Id){
this.addMsg.detailList[i]= this.newAddMsg.detailList[j]
}
}
}
}
this.$forceUpdate()
},
GetVisaSetUpList(){
// this.loadingVisa = true
this.apipost(
"Financial_post_GetVisaSetUpList",
{},
res => {
// this.loadingVisa = false;
if (res.data.resultCode == 1) {
this.visaDataList = res.data.data;
this.cities = this.visaDataList.map(x=> { return x.Id })
}
},
err => {}
);
},
getEmployee() {//所有人员下拉
let employeeMsg = {
RB_Group_id: "0",
RB_Branch_id: "-1",
departmentId: "0",
IsLeave: "-1"
}
this.loadingVisa = true
this.apipost(
"app_get_company_employee",
employeeMsg,
res => {
this.loadingVisa = false
if (res.data.resultCode == 1) {
this.searchList = res.data.data;
}
},
err => { }
);
},
financeinfo_post_GetClientAccountList(t, i) { //获取付款 对象类型 新增用
let msg = {
ID: 0,
Type: t,
ObjID: 0,
CardNum: ''
}
// if (i >= 0) {
// msg.ID = i;
// }
this.addMsg.detailList[i].loading = true
this.apipost('financeinfo_post_GetClientAccountList', msg, res => {
if (res.data.resultCode == 1) {
let data = res.data.data;
let ClientAccountList = [];
data.forEach(x => {
let obj = {
ID: x.ID,
Name: x.AccountHolder + `(${x.AccountAlias})/ ${x.CardNum}`,
Nom: x.CardNum,
OpenBankName: x.OpenBankName,
ObjID: x.ObjID,
}
ClientAccountList.push(obj)
})
// this.ClientAccountList = ClientAccountList;
this.addMsg.detailList[i].ClientAccountList = ClientAccountList
this.addMsg.detailList[i].ClientID = ''
this.addMsg.detailList[i].loading = false
}else{
this.addMsg.detailList[i].loading = false
}
}, err => {})
},
financeinfo_post_GetClientTypeList() { // 获取对象类型
this.apipost('financeinfo_post_GetClientTypeList', {}, res => {
if (res.data.resultCode == 1) {
this.ClientTypeList = res.data.data;
}
}, err => {})
},
financeinfo_post_GetList() { // 获取币种
this.apipost('financeinfo_post_GetList', {}, res => {
if (res.data.resultCode == 1) {
this.coinGetList = res.data.data;
}
})
},
visa_GetVisaProductInfo_V1(){
this.apipost('dmc_get_visa_GetVisaProductInfo_V1', {
Pid: this.$route.query.id
}, res => {
if (res.data.resultCode == 1) {
this.visaInfor = res.data.data;
}
})
}
}
}
</script>
<style scoped>
/deep/.el-table th.el-table__cell{
background: #F2F2F2 !important;
}
.title_box{
display: flex;
flex-direction: row;
flex-wrap: nowrap;
}
.title_box p {
flex-shrink: 0;
}
.title_right{
flex-grow: 1;
display: flex;
flex-wrap: wrap;
margin-left: 20px;
}
/deep/.table-box .el-upload-dragger{
width: 22px !important;
height: 21px !important;
line-height: 20px;
}
.img-box-form{
display: flex;
flex-wrap: wrap;
}
.img-box{
width: 20px;
height: 20px;
position: relative;
margin-left: 15px;
}
.delete{
font-size: 12px;
position: absolute;
right: -10px;
top: -6px;
}
._wenjian_P {
font-size: 21px;
text-align: center;
color: #41D2A1;
}
</style>
......@@ -671,6 +671,24 @@
</div>
</div>
<!-- v-if="(pagesTitle=='OP'&&!scope.row.remark)||scope.row.remark" -->
<div class="fz13">
<span v-if="scope.row.visaFeeNum" class="mr cblack">签证人数:
<span :class="[scope.row.visaFeeNum>scope.row.peopleNum?'cF1416C':'c9e']">
{{scope.row.visaFeeNum}}</span>
</span>
<span v-if="scope.row.premiumNum" class="mr cblack">保险人数:
<span :class="[scope.row.premiumNum>scope.row.peopleNum?'cF1416C':'c9e']">
{{scope.row.premiumNum}}</span>
</span>
<span v-if="scope.row.expressFeeNum" class="mr cblack">快递人数:
<span :class="[scope.row.expressFeeNum>scope.row.peopleNum?'cF1416C':'c9e']">
{{scope.row.expressFeeNum}}</span>
</span>
<span v-if="scope.row.serviceFeeNum" class="mr cblack">服务人数:
<span :class="[scope.row.serviceFeeNum>scope.row.peopleNum?'cF1416C':'c9e']">
{{scope.row.serviceFeeNum}}</span>
</span>
</div>
<div>
{{$t('pub.pubRemark')}}{{ scope.row.remark?scope.row.remark:'-' }}
<!-- v-if="pagesTitle=='OP'" -->
......@@ -725,7 +743,7 @@
<span class="cursor-pointer radius5 mr mb px5" style="margin: 3px;"
:class="{'bgD9F3FF':x.status==1,'bgFAEAED':x.status==2,'bjFFF3E0':x.status==3,
'c3FC4FF':x.status==1,'cF1416C':x.status==2,'cff9800':x.status==3}" v-for="(x, i) in scope.row.costFinanceList"
@click="openDetails(x)">{{ x.frID }}</span>
@click="openDetails(x)">{{ x.frID }} {{ x.name?x.name:'' }}</span>
<span v-if="scope.row.costFinanceList&&scope.row.costFinanceList.length == 0" class="c9e fz12 mr">
暂无
</span>
......
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