Commit 8dbd0b55 authored by youjie's avatar youjie

签证 一键制单调整

parent 14e9eeb4
<template>
<el-dialog title="一键制单" width="1000px" :visible.sync="showState" center @close="close"
<el-dialog title="一键制单" width="1028px" :visible.sync="showState" center @close="close"
:close-on-click-modal="false">
<div class="title_box">
<p style="font-size: 16px;font-weight: bold;">{{visaProduct}}</p>
......@@ -30,11 +30,11 @@
</el-checkbox-group>
</template>
<template v-if="searchList&&searchList.length>0">
<span style="margin-left: 50px;"><span style="color: red;">*</span> 签证OP:</span>
<span style="margin-left: 20px;"><span style="color: red;">*</span> 签证OP:</span>
<el-select
filterable
v-model="addMsg.AuditId"
placeholder="签证OP" style="margin-left: 10px;">
placeholder="签证OP" style="margin-left: 10px;width: 169px;">
<el-option
v-for="item in searchList"
:key="item.empId"
......@@ -43,6 +43,22 @@
</el-option>
</el-select>
</template>
<span style="margin-left: 20px;">
<el-tooltip class="item" effect="dark" content="只有签证、保险、服务共用凭证" placement="top">
<i class="el-icon-info" style="margin-left: 2px;cursor: pointer;"></i>
</el-tooltip>
开启凭证共用:
</span>
<el-switch
style="margin-left: 15px;"
v-model="SwitchStatus"
@change="getVisaType">
</el-switch>
</div>
<div style="margin-bottom: 10px;">
</div>
<div class="table-box">
<el-table
......@@ -126,6 +142,7 @@
</div>
</template>
</el-table-column>
<!--
<el-table-column label="凭证" width="200">
<template slot-scope="scope">
<div class="img-box-form">
......@@ -153,13 +170,12 @@
<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> -->
<el-table-column label="是否月结" width="80">
<template slot-scope="scope">
<el-tooltip v-if="scope.row.IsMonthly" content="否/是" placement="top">
......@@ -173,6 +189,46 @@
</el-table-column>
</el-table>
</div>
<div style="margin-top: 10px;display: flex;flex-wrap: wrap;"
v-if="addMsg.detailList&&addMsg.detailList.length>0">
<div v-for="(item,index) in proofList" class="table-box proofList-box">
<el-tag :key="index" size="mini">
{{item.Id}}
</el-tag>
<div class="d-flex">
<div class="img-box-form" v-for="(file,fIndex) in item.vorcherInos"
style="margin-left: 5px;">
<span>{{file.SetUpTypeStr.slice(0,2)}}凭证:</span>
<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(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(index,fIndex)"></span>
</div>
<div class="_fujian_box" style="margin-left: 15px;margin-right: 5px;">
<div class="_pic_upload">
<el-upload drag :http-request="(file)=>uploadFileBtn(file,index,fIndex)" :multiple="true"
:show-file-list="false" action="">
<i class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</div>
</div>
</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<div style="color: red;text-align: right;font-size: 13px;margin-bottom: 5px;">
......@@ -187,12 +243,15 @@
<script>
export default {
props: ["visaProduct","multipleSelection","isShow","obj"],
props: ["visaProduct","multipleSelection","isShow",],
components: {
},
data() {
return {
newProofList: [],
proofList:[],
SwitchStatus: false,
dataList: [],
showState: true,
loading: false,
......@@ -203,16 +262,17 @@ export default {
newAddMsg:{
OrderIdStr:'',
AuditId:'',
detailList:[]
detailList:[],
vorcherInos:[]
},
addMsg:{
OrderIdStr:'',
AuditId:'',
detailList:[]
detailList:[],
vorcherInos:[]
},
ClientTypeList: [],
ClientAccountListS: [],
ClientAccountList: [],
IsPublicList:[
{Name:'公账',ID:1},
{Name:'私账',ID:0},
......@@ -227,13 +287,19 @@ export default {
}
},
watch: {
obj: {
handler(newValue,onldValue) {
},
deep:true,
},
multipleSelection: {
handler(newValue,onldValue) {
this.proofList = JSON.parse(JSON.stringify(newValue))
let listArr = function(arr){
arr.forEach(x=>{
x.vorcherInos = []
})
}
listArr(this.proofList)
},
deep: true,
immediate: true
}
},
mounted() {
this.visa_GetVisaProductInfo_V1()
......@@ -246,6 +312,9 @@ export default {
},200)
},
methods: {
handleClear(){
},
getPeopleNum(){
let PeopleNum = 0
this.multipleSelection.forEach(x=>{
......@@ -298,7 +367,8 @@ export default {
let msg = {
OrderIdStr: this.addMsg.OrderIdStr,
AuditId: this.addMsg.AuditId,
detailList: []
detailList: [],
vorcherInos: []
}
this.addMsg.detailList.forEach(x=>{
let obj = {
......@@ -308,10 +378,22 @@ export default {
CurrencyId: x.CurrencyId,
IsPublic: x.IsPublic,
ClientID: x.ClientID,
vorcherInos: x.vorcherInos
// vorcherInos: x.vorcherInos
}
msg.detailList.push(obj)
})
this.proofList.forEach(x=>{
x.vorcherInos.forEach(y=>{
let obj = {
VisaOrder: x.Id,
VisaType: y.VisaType,
Type: y.Type,
Content: y.Content,
Url: y.Url,
}
msg.vorcherInos.push(obj)
})
})
this.submitLoading = true
this.apipost("Financial_post_SetVisaBathCreateFinance",msg, res => {
if (res.data.resultCode === 1) {
......@@ -322,7 +404,7 @@ export default {
this.submitLoading = false
}, null)
},
uploadFileBtn(file,index) { //上传
uploadFileBtn(file,index,fIndex) { //上传
if (file.file.size > 1024 * 1024 * 10) {
this.$message.warning('文件大小不能超过10M!')
return
......@@ -353,16 +435,24 @@ export default {
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.proofList.forEach((y,indexs)=>{
if(indexs==index){
y.vorcherInos.forEach((z,i)=>{
if(i==fIndex){
z.Type = fileTypeNumber,
z.Content = x.data.FilePath,
z.Url = this.domainManager().ViittoFileUrl + x.data.FilePath
}
})
}
})
this.$message.success('上传成功');
this.$forceUpdate()
});
},
deleteUploadFile(index,i) { // 删除上传文件
this.addMsg.detailList[index].vorcherInos.splice(i, 1);
this.proofList[index].vorcherInos.splice(i, 1);
},
showUpLoadFile(i) { // 预览上传文件
if (i.substring(i.lastIndexOf('.') + 1, i.length).toUpperCase() == 'PDF') {
......@@ -374,6 +464,7 @@ export default {
// 组装已选类型数据
getVisaType(){
this.newAddMsg = JSON.parse(JSON.stringify(this.addMsg))
this.newProofList = JSON.parse(JSON.stringify(this.proofList))
this.addMsg.detailList = []
this.visaDataList.forEach(x=>{
this.checkedCities.forEach(y=>{
......@@ -390,18 +481,54 @@ export default {
ClientID: '',
OtherType: 1,
ClientAccountList: [],
vorcherInos:[],
// vorcherInos:[],
loading: false
}
this.addMsg.detailList.push(obj)
}
})
})
this.proofList.forEach(y=>{
y.vorcherInos = []
this.addMsg.detailList.forEach(x=>{
let obj = {
VisaType: x.TemplateId,
SetUpTypeStr: x.SetUpTypeStr,
Type: null,
Content: null,
Url: null
}
if(this.SwitchStatus==true&&(x.SetUpTypeStr=='签证费'||x.SetUpTypeStr=='快递费')){
y.vorcherInos.push(obj)
}if(!this.SwitchStatus){
y.vorcherInos.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]
if(this.addMsg.detailList[i].Id == this.newAddMsg.detailList[j].Id){
this.addMsg.detailList[i] = this.newAddMsg.detailList[j]
}
}
}
}
if(this.newProofList&&this.newProofList.length>0){
for(let i=0;i<this.proofList.length;i++){
for(let j=0;j<this.newProofList.length;j++){
if(this.proofList[i].Id == this.newProofList[j].Id){
if(this.newProofList[j].vorcherInos&&this.newProofList[j].vorcherInos.length>0&&
this.proofList[j].vorcherInos&&this.proofList[j].vorcherInos.length>0){
for(let x=0;x<this.proofList[i].vorcherInos.length;x++){
for(let y=0;y<this.newProofList[j].vorcherInos.length;y++){
if(this.proofList[i].vorcherInos[x].VisaType==this.newProofList[j].vorcherInos[y].VisaType){
this.proofList[i].vorcherInos[x] = this.newProofList[j].vorcherInos[y]
}
}
}
}
}
}
}
......@@ -409,12 +536,10 @@ export default {
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 })
......@@ -450,9 +575,6 @@ export default {
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) {
......@@ -468,7 +590,6 @@ export default {
}
ClientAccountList.push(obj)
})
// this.ClientAccountList = ClientAccountList;
this.addMsg.detailList[i].ClientAccountList = ClientAccountList
this.addMsg.detailList[i].ClientID = ''
this.addMsg.detailList[i].loading = false
......@@ -550,4 +671,14 @@ export default {
text-align: center;
color: #41D2A1;
}
.proofList-box{
display: flex;
margin-left: 5px;
margin-bottom: 3px;
}
.d-flex{
max-width: 318px;
display: flex;
flex-wrap: wrap;
}
</style>
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