<style scoped> @media print{ ._none_print{display:none} } ._none_print{ position: relative; z-index: 2; } ._none_print_tips{ position: absolute; top: 80px; z-index: 1; } .page_bdm{padding: 20px 0;} ._tit{padding-left: 10px;border-left: 3px solid #E95252;font-size: 14px} ._conten{position: relative} ._conten,._process{margin-top: 20px;width: 830px;} ._explain{padding: 20px 15px;border-top: 1px dashed #BFBFBF;border-bottom: 1px dashed #BFBFBF;background-color: white;} ._explain>p{color: #1273BC;font-size: 12px;} ._explain>div{display: flex;justify-content: space-between;font-size: 12px;color: #333333;margin-top: 10px;align-items: center;} ._tit2{ border:none; background-color: white; border: 1px solid #DDDDDD; } ._tit._tit2>p{ padding-left: 10px; font-size: 14px; color: #000; padding: 8px 15px; display: flex; justify-content: space-between; } ._tit._tit2 ._rotate{ transform:rotate(180deg); } ._tit._tit2 ._btn{ font-size: 12px; color: #333333; cursor: pointer; } ._tit._tit2 ._btn:hover{ color: #E95252; } ._tit._tit2 ._btn .iconfont{ font-size: 12px; display: inline-block; margin-left: 10px; } ._tit._tit2 ._text{ border-left: 3px solid #e95252; padding-left: 10px; } ._process{background-color: white;padding: 20px 15px;position: relative;} ._process_box{border-top: 1px dashed #BFBFBF;padding-top: 30px;padding-bottom: 40px;} ._flow_chart{position:absolute;display: inline-block;right: 15px;top: 7px;padding:5px 25px;font-size: 12px;color: #FFFFFF;background-color: #E95252;border-radius: 14px;cursor: pointer;} ._pb_son{position: relative;padding-left: 75px;min-height: 100px;padding-bottom: 30px} ._left_radius{width: 40px;height: 40px;border-radius: 50%;text-align: center;line-height: 40px;background-color: #2BBB7E;color: white;font-size: 12px;position: absolute;left: 15px;z-index: 2;} ._left_radius_err{background-color: #E95252 !important;} ._left_radius_sus{background-color: #1273BC !important;} ._pb_son::after{content: '';width: 4px;height: 100%;background-color: #2BBB7E;display: inline-block;position: absolute;clear: both;left: 33px;top: 0;z-index: 1} ._pb_son._none_after::after{content: '';display: none} ._pb_son._bohui_after::after{background-color: #E95252 !important;display: inline-block} ._status_color_f{background-color: #8B8B8B !important} ._right_content ._name ._n{font-size: 14px;color: #333333;font-weight: bold;} ._right_content ._name ._m{color: #FFFFFF;font-size: 12px;display: inline-block;padding: 2px 5px;background-color: #E95252;margin-left: 5px;border-radius: 4px;} ._right_content ._name ._sm{color: #FFFFFF;font-size: 12px;display: inline-block;padding: 2px 5px;background-color: #FF9600;margin-left: 5px;border-radius: 4px;font-weight: 100;} ._right_content ._name ._sn{color: #FFFFFF;font-size: 12px;display: inline-block;padding: 2px 5px;background-color: #2BBB7E;margin-left: 5px;border-radius: 4px;} ._right_content ._time,._time{font-size: 12px;color: #666666;padding-top: 5px;} ._right_content ._pp_info,._textarea{border-radius: 4px; border: 1px solid #E5E5E5;background:rgba(245,245,245,1);font-size: 12px;color: #333333;padding: 12px 14px;margin-top: 13px;position: relative;} ._right_content ._pp_info:before{display:block;content:'';border-width:8px 8px 8px 8px;border-style:solid;border-color: transparent transparent #dedede transparent;position:absolute;left:10px;top:-16px;} ._mgt_15{margin-top: 15px;} /* ._more ._right_content{padding: 0 10px;padding-right: 0;} */ ._more ._right_content .iconfont{color: #AAAAAA} ._more ._right_content ._name ._n{font-size: 14px;color: #333333;font-weight: bold;padding-left: 3px;} ._info_img ul{padding: 10px 0} ._info_img ul li{float: left;position: relative;cursor: pointer} ._info_img ul li:hover ._see_img{opacity: 1;} ._info_img ul li img{width:88px;height:59px;} ._see_img{position: absolute;top: 0;width: 100%;height: 59px;padding-top: 16px;line-height: 34px;text-align: center;background-color: rgba(2, 2, 2, 0.3);display: inherit;opacity: 0;transition: all linear .5s} ._see_img i.iconfont{display: inline-block;width: 32px;height: 32px;border-radius: 50%;color: #FFFFFF !important;background-color: rgba(255, 255, 255, 0.5);} ._show_img_box{position: fixed; background: rgba(0,0,0,.6); left: 0; top:0; width: 100%; height: 100%; z-index: 999; text-align: center;overflow: auto;} ._textarea{width: 690px;height: 50px;background-color: white} ._upload_box ul li{float: left;height:82px;width:143px;padding:20px 20px 20px 0;text-align: center;position: relative;cursor: pointer;margin-right: 10px;} ._upload_box ul li img{height:82px;width:143px;} ._upload_box ul li:hover ._delete_img{opacity: 1;} ._delete_img{position: absolute;top: 20px;height:82px;width:143px;line-height: 34px;text-align: center;background-color: rgba(2, 2, 2, 0.6);display: inherit;opacity: 0;transition: all linear .5s} ._delete_img i.iconfont{display: inline-block;width: 32px;height: 32px;border-radius: 50%;color: #E95252 !important;background-color:rgba(251, 251, 251, 0.9); margin-top: 26px;} ._radio_lsit{padding-top: 15px} ._upload_tips{font-size: 12px;position: absolute;top: 66%;width: 100%;left: 0;text-align: center;color: #949494;} ._log_t{padding: 10px;} ._time_n{float: right;} .w830px{width: 830px;padding: 0;margin: 0;} .w600px{ width: 600px; padding: 15px; margin: 0 auto; } ._explain ._addUpload_box{ display: block; padding-bottom: 14px; } ._explain2>div{ margin-top: 0; } ._explain2{ border: none; padding: 20px 0 0 14px; background-color: aliceblue; } ._addUpload_box>div:hover{ background-color: #f5f5f5; } ._addFile_name{ overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 12px; } ._fujian_box{ position: fixed; left: 914px; top: 141px; width: 440px; } ._wenjian{ padding: 15px; width: 91px; height: 80px; border:1px solid rgba(221,221,221,1); float: left; cursor: pointer; margin-right: 10px; margin-top: 10px; } ._wenjian_P{ font-size: 30px; text-align: center; color: #41D2A1; } .shangchuanfujian{ text-align: right; margin-top: 20px; } .el-carousel__item{ align-items: center; justify-content: center; display: flex; } ._splic{ width: 830px; overflow: hidden; font-size: 12px; color: #929292; margin-top: 15px; line-height: 10px; } ._fujian_box_tit{ display: flex; justify-content:space-between; font-size: 14px; color: #333333; } ._fujian_box_tit .iconfont{ font-size: 14px; display: inline-block; margin-right: 8px; } ._fujian_box_tit .iconfont.icon-bangdingzhagnhuxinxi{ color: #E95252; } ._fujian_box_tit .iconfont.icon-gengduo{ transform:rotate(90deg); font-size: 12px; } ._fujian_zhankai{ color: white; width: 64px; height: 0; font-size: 12px; border-top: 26px solid #E95252; border-right: 15px solid transparent; border-left: 15px solid transparent; -webkit-transform: rotate(-90deg); transform: rotate(-90deg); position: relative; left: -32px; bottom: -27px; } ._fujian_zhankai>span{ display: inline-block; height: 100%; width: 50%; position: absolute; left: 25px; bottom: 15px; -webkit-transform: rotate(90deg); transform: rotate(90deg); } ._fujian_zhankai>span:nth-child(2){ left: 18px; bottom: 3px; } ._border_bottom_none{ border-bottom: none !important; } ._jump_page{ cursor: pointer; text-decoration: underline; } ._jump_page:hover{ color: #c94052; } ._TCIDAndTCNUMList{ display: flex; } ._TCIDAndTCNUMList ._TCIDAndTCNUMList_item span{ display: inline-block; padding-bottom: 5px; } ._font_bold{ font-weight: bold; } ._TCIDAndTCNUMList_item{ max-width: 160px; } ._fujiashuoming_tr td{ font-size: 12px; color: #696969; padding: 5px 10px; } ._zhuan_msg{ font-size: 12px; margin-top:10px; padding-bottom: 10px; } ._zhuan_msg span{ display: inline-block; margin-right: 5px; color: #696969; } ._zhuan_msg span:last-child{ margin-left: 5px; } ._zhuan_msg p:nth-child(2){ color: #696969; } ._zhuan_msg ._color_green{ color: #2BBB7E } ._Printing{ position: relative; left: 766px; top: 25px; z-index: 30; font-size: 12px; cursor: pointer; color: #3980C8; } ._Printing:hover{ text-decoration: underline; color: rgb(255, 0, 0); } ._addUpload_box_btm{ padding-top: 20px; } ._addUpload_box_btm img{ width: 100%; } ._addUpload_box_btm>div{ float: left; width:138px; height:92px; border:1px dashed rgba(210,210,210,1); border-radius:2px; cursor: pointer; margin-bottom: 10px; padding: 5px; margin-right: 10px; position: relative; } ._addUpload_box_btm>div:hover{ background-color: #f5f5f5; } ._addFile_name{ padding-left: 15px; max-width: 450px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } ._addUpload_box_btm .icon-guanbi1 { font-size: 12px; color: white; display: inline-block; margin-left: 15px; position: absolute; right: -6px; top: -9px; background-color: #f56c6c; border-radius: 50%; height: 20px; width: 20px; text-align: center; line-height: 20px; } ._addUpload_box_btm .icon-guanbi1:hover { font-size: 12px; color: #c94052; } ._addUpload_box_btm .icon-excel{ text-align: center; font-size: 38px; color: green; line-height: 75px; } ._show_img_box{position: fixed; background: rgba(0,0,0,.6); left: 0; top:0; width: 100%; height: 100%; z-index: 999; text-align: center;} ._addUpload_tips{ font-size: 12px; color: #999999; } .InfoChangeLog{height: auto;max-height: 220px;background-color: #FFFFFF;} .changLogList{padding-left: 20px;max-height: 180px;overflow: auto;} .changLogList_l{border-left: 1px solid #E9E9E9;position: relative;padding-bottom: 10px;padding-left: 20px;padding-top: 10px;} ._radius_green{background-color: #47BF8C;width: 7px;height: 7px;border-radius: 50%;display: inline-block;position: absolute;left: -4px;top: 19px;} .changLog_time{color: #666666;font-size: 12px;display: inline-block;padding-right: 10px} .color_shz{color: #1273BC} .color_tg{color: #4BCA81} .color_bh{color: #c94052} </style> <template> <div class="page_fdd" v-if="GetDetail"> <div class="_none_print"> <span class="_Printing" @click="goPrintPage(GetDetail.Type,GetDetail.FrID,GetDetail.Is_Merge,OrderSource)">打印单据</span> <p class="_tit">{{GetDetail.FinanceName}} <span :class="{color_shz:(GetDetail.StatusStr!=='通过' && GetDetail.StatusStr!=='驳回' && GetDetail.StatusStr!=='作废'),color_tg:GetDetail.StatusStr==='通过',color_bh:GetDetail.StatusStr==='驳回'}">{{GetDetail.StatusStr}}</span></p> <div class="_conten"> <my-Bill v-if="GetDetail.Type!==1 && GetDetail.Type!==5" :isPrintPage="false" :ID="GetDetail.FrID" :width="widthSon" :color="colorSon"></my-Bill> <my-RVB-Bill v-else :ID="GetDetail.FrID" :isPrintPage="false" :width="widthSon" :color="colorSon"></my-RVB-Bill> <div class="_explain"> <p>附加说明:</p> <table border="1" bordercolor="#D2D2D2" style="border-collapse:collapse;margin-top:15px;" width="100%" v-if="GetDetail.TCIDAndTCNUMList.length>0"> <tr v-for="(o,ox) in GetDetail.TCIDAndTCNUMList" class="_fujiashuoming_tr"> <td :colspan="4" v-if="GetDetail.Is_Merge===1">单据号:{{o.FinanceId}}</td> <td :colspan="4">{{o.TCNUM}}({{o.TCID}})</td> <td @click="jumpPage('TravelControlList',o.TCNUM,1)"> <span class="_jump_page _font_bold">查看团队</span> </td> <td @click="jumpPage('RegistrationList',o.TCID,7)"> <span class="_jump_page _font_bold">查看报名</span> </td> <td @click="GetDetail.TCIDAndTCNUMList.length==1?jumpPage('TeamBalancePayment',o.TCID,5):jumpPage('TeamBalancePayment',o.TCID,6)"> <span class="_jump_page _font_bold">团队收支</span> </td> <td v-if="OrderSource==9&&GetDetail.SourceID>0" @click="jumpPage('FinancialOrder',GetDetail,2)"> <span class="_jump_page _font_bold">国内票务</span> </td> <td v-else-if="OrderSource==10&&GetDetail.SourceID>0" @click="jumpPage('FinancialOrder',GetDetail,3)"> <span class="_jump_page _font_bold">签证收支</span> </td> <td v-else-if="OrderSource==4&&GetDetail.SourceID>0"@click="jumpPage('FinancialOrder',GetDetail,4)"> <span class="_jump_page _font_bold">机票收支</span> </td> </tr> </table> <table border="1" bordercolor="#D2D2D2" style="border-collapse:collapse;margin-top:15px;" width="100%" v-else-if="OrderSource==10"> <tr class="_fujiashuoming_tr"> <td>签证产品编号:<span @click="jumpPage('VisaProductOrder',GetDetail,8)" class="_jump_page _font_bold">{{GetDetail.SourceID}}</span></td> <td @click="jumpPage('FinancialOrder',GetDetail,3)"> <span class="_jump_page _font_bold">签证收支</span></td> </tr> </table> <table border="1" borderCashierDetailcolor="#D2D2D2" style="border-collapse:collapse;margin-top:15px;" width="100%" v-else-if="OrderSource==9"> <tr class="_fujiashuoming_tr"> <td>期数:{{GetDetail.Term}}</td> <td @click="jumpPage('FinancialOrder',GetDetail,2)"> <span class="_jump_page _font_bold">国内票务</span></td> </tr> </table> <table border="1" bordercolor="#D2D2D2" style="border-collapse:collapse;margin-top:15px;" width="100%" v-else-if="OrderSource==4"> <tr class="_fujiashuoming_tr"> <td>机票编号:{{GetDetail.SourceID}}</td> <td v-if="(GetDetail.TCIDAndTCNUMList && GetDetail.TCIDAndTCNUMList.length===0) || !GetDetail.TCIDAndTCNUMList">线路:{{GetDetail.LineName?GetDetail.LineName:'机票尚未选择线路'}}</td> <td @click="jumpPage('FinancialOrder',GetDetail,4)"> <span class="_jump_page _font_bold">机票收支</span></td> </tr> </table> <div> <p>费用归属部门:<span class="_font_bold">{{GetDetail.DepartName}}</span></p> <div> <el-popover popper-class="detailsIT_Journal" width="250" trigger="click"> <div class="InfoChangeLog" > <div class="changLog"> <p class="_log_t">流程日志</p> <ul class="changLogList" v-if="GetFinancLogList" v-loading='LogLoading'> <li class="changLogList_l" v-for="(log,li) in GetFinancLogList"> <span style="background-color: #47BF8C" class="_radius_green"></span> <p> <span class="_color_blue">{{log.EmName}}</span> <span class="fr changLog_time">{{log.UpdateDate}}</span> </p> <p class="_dtel">{{log.StartValue}}</p> </li> </ul> <ul v-else> <li>暂无修改日志</li> </ul> </div> </div> <span slot="reference" style="text-decoration: underline;cursor: pointer;" @click="Financial_post_GetFinancLogList()">单据操作日志</span> </el-popover> </div> <!-- <p class="_TCIDAndTCNUMList"> <span> 团队编号: </span> <template v-if="GetDetail.TCIDAndTCNUMList.length>0"> <p class="_TCIDAndTCNUMList_item"> <span v-for="(i,ix) in GetDetail.TCIDAndTCNUMList" class="_jump_page _font_bold" @click="jumpPage('productQuery',i.TCID,1)"> {{i.TCNUM}}({{i.TCID}}) <span v-if="ix!=GetDetail.TCIDAndTCNUMList.length-1"></br></span> </span> </p> </template> <template v-else> <span>无</span> </template> </p> <p v-if="GetDetail.TCIDAndTCNUMList.length==1" @click="jumpPage('TeamBalancePayment',GetDetail.TCIDAndTCNUMList,5)" class="_jump_page _font_bold">团队收支</p> <p v-if="GetDetail.TCIDAndTCNUMList.length>1" @click="jumpPage('TeamBalancePayment',GetDetail.TCIDAndTCNUMList,6)" class="_jump_page _font_bold">团队收支</p> <p v-if="OrderSource==9&&GetDetail.SourceID>0">国内票务:<span class="_jump_page _font_bold" @click="jumpPage('SettlementOrder',GetDetail,2)">{{GetDetail.SourceID}}</span></p> <p v-if="OrderSource==10&&GetDetail.SourceID>0">签证:<span class="_jump_page _font_bold" @click="jumpPage('VisaProductCopy',GetDetail,3)">{{GetDetail.SourceID}}</span></p> <p v-if="OrderSource==4&&GetDetail.SourceID>0" class="_TCIDAndTCNUMList"> <span>机票收支:</span> <span class="_TCIDAndTCNUMList_item"> <template v-for="(i,ix) in GetDetail.TCIDAndTCNUMList"> <span class="_jump_page _font_bold" @click="jumpPage('FinancialOrder',GetDetail,4)">{{i.TCNUM}}({{GetDetail.SourceID}})</span> <span v-if="ix!=GetDetail.TCIDAndTCNUMList.length-1"></br></span> </template> </span> </p> <p class="_jump_page _font_bold" @click="jumpPage('RegistrationList',GetDetail,7)">报名清单</p> --> </div> </div> <my-HB-Bill v-if="GetDetail.Is_Merge===1 && ZhiDanRen!==bossID" :ID="GetDetail.FrID" :isPrintPage="false" :width="widthSon" :color="colorSon"></my-HB-Bill> <!--<my-C-Bill v-if="GetDetail.CashierDetail&&GetDetail.CashierDetail.length&&GetDetail.Type!=1" :ID="GetDetail.FrID" :width="widthSon" :color="colorSon"></my-C-Bill>--> <div class="_fujian_box" v-if="(GetDetail.VorcherInos&&GetDetail.VorcherInos.length>0) || saveMsg.length>0"> <div class="_fujian_zhankai cursorpointer" v-if="!fujianShow" @click="fujianShow = true"> <span>附件</span> <span>></span> </div> <p class="_fujian_box_tit" v-if="fujianShow"> <span> <i class="iconfont icon-bangdingzhagnhuxinxi"></i> <span>附件</span> </span> <span class="cursorpointer" @click="fujianShow = false">收起 <i class="iconfont icon-gengduo"></i></span> </p> <div class="_addUpload_box" v-if="fujianShow"> <div style="width:100%;" v-if="FuImgList.length>0"> <el-carousel trigger="click" height="293px" width="440px" :interval="5000"> <el-carousel-item style="height: 293px;" v-for="item in FuImgList" :key="item"> <img @click="showImg(item)" :src="item" alt="" style="width: 100%;"> </el-carousel-item> </el-carousel> </div> <div class="clearfix"> <template v-for="(file,fIndex) in GetDetail.VorcherInos" v-if="file.Type===1"> <div class="_wenjian" @click="showUpLoadFile(file)"> <p v-if="file.Type==1" class="_wenjian_P iconfont" :class="file.Content.substring(file.Content.lastIndexOf('.')+1,file.Content.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'"></p> <!-- <p class="_addFile_name">{{file.Content}}</p> --> </div> </template> </div> </div> <div > <div class="_addUpload_box _addUpload_box_btm clearfix" > <template v-for="(file,fIndex) in saveMsg"> <div v-if="file.Type==3"> <div style="width:100%;height:100%;overflow: hidden;"> <img :src="file.Url?file.Url:file.Content" @click="showImg(file.Url?file.Url:file.Content)"> </div> <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span> </div> <div v-if="file.Type==1"> <div class="iconfont _wenjian_P" :class="file.Content.substring(file.Content.lastIndexOf('.')+1,file.Content.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'" @click="showUpLoadFileT(file)"> </div> <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span> </div> </template> </div> </div> <div style="margin-top: 80px;"> <div class="_pic_upload" v-if="GetDetail.IsUploadPic===1"> <!--<div class="_pic_upload" v-if="saveMsg.length!==5 && ((saveMsg.length + GetDetail.VorcherInos.length) < 5)">--> <el-upload drag :http-request="uploadFileBtn" :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 class="shangchuanfujian"><button class="hollowFixedBtn" @click="upLoadFuJian">上传附件</button></div> </div> </div> <div class="_fujian_box" v-if="GetDetail.VorcherInos&&GetDetail.VorcherInos.length===0&&GetDetail.IsUploadPic===1&&saveMsg.length===0"> <div style="margin-top: 80px;"> <div class="_pic_upload" v-if="GetDetail.IsUploadPic===1"> <!--<div class="_pic_upload" v-if="saveMsg.length!==5 && ((saveMsg.length + GetDetail.VorcherInos.length) < 5)">--> <el-upload drag :http-request="uploadFileBtn" :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 class="shangchuanfujian"><button class="hollowFixedBtn" @click="upLoadFuJian">上传附件</button></div> </div> </div> </div> <p class="_splic">///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p> <template v-if="sonTCIDList"> <div class="w830px"> <div class="_tit _tit2 w830px _border_bottom_none"> <p> <span class="_text">团队</span> <span class="_btn" v-if="tableShowTeam" @click="tableShowTeam=false">收起 <i class="iconfont icon-gengduo _rotate"></i> </span> <span class="_btn" v-else @click="tableShowTeam=true">展开 <i class="iconfont icon-gengduo"></i> </span> </p> <div v-show="tableShowTeam" > <div> <teamProductModule :ID="sonTCIDList"></teamProductModule> </div> </div> </div> </div> </template> <div class="w830px"> <SaleOrderModule v-if="OrderSource==10&&SourceID&&OrderID" :SourceID='SourceID' :OrderID='OrderID'/> <TicketFinace v-if="OrderSource==4&&SourceID&&Callback&&ID" :SourceID='SourceID' :Callback='Callback' :id='ID'/> <TicketingModule v-if="OrderSource==9&&FrID&&ID" :FrID='FrID' :id='ID'/> </div> <div class="_tit _tit2 w830px"> <p> <span class="_text">审核流程</span> <span class="_btn" v-if="tableShow" @click="tableShow=false">收起 <i class="iconfont icon-gengduo _rotate"></i> </span> <span class="_btn" v-else @click="tableShow=true">展开 <i class="iconfont icon-gengduo"></i> </span> </p> <div v-show="tableShow"> <div class="w600px"> <my-FlowChartModule :data="AuditListData"></my-FlowChartModule> </div> </div> </div> <div class="_process clearfix"> <!-- <el-popover popper-class="detailsIT_Journal" width="600" placement="right" trigger="click"> <div class="InfoChangeLog" > <div class="changLog"> <p class="_log_t">收款流程</p> <my-FlowChartModule :data="AuditListData"></my-FlowChartModule> </div> </div> <span slot="reference" class="_flow_chart">流程图</span> </el-popover> --> <div class="_process_box"> <template v-for="(item,index) in GetDetail.AuditSteps"> <div class="_pb_son" :class="{_none_after:(item.NextStep==1||item.Status==4),_bohui_after:(GetDetail.Status==3 && !IsBoHui && index===GetDetail.AuditSteps.length-1)}" v-if="item.Sort==0 || (item.Status==1 && item.NextStep==1) || (item.Status==2 && item.Sort!=0) || (item.Status==4)"> <div class="_left_radius" v-if="item.Sort==0">发起</div> <div class="_left_radius _left_radius_sus" v-if="item.NextStep==1">待审</div> <div class="_left_radius" v-if="item.Sort!=0 && item.Status==2">通过</div> <div class="_left_radius _left_radius_err" v-else-if="item.Status==4">驳回</div> <div class="_right_content" v-if="item.AuditWay==2 || item.AuditWay==3"> <p class="_name"> <span class="_n">{{item.AuditDescription}}<span class="_sm">({{item.AuditWay==2?'会签':'或签'}})</span></span> </p> <div class="_more _mgt_15" v-for="(son,sindex) in item.AuditRecordList" v-if="son.AuditStatus==2"> <div class="_right_content"> <p class="_name"> <span class="_n PingFangSC">{{son.AuditName}}</span> <span class="_sn" v-if="son.AuditStatus==2">通过</span> <span class="_time _time_n">{{son.AduitDate}}</span> </p> <template v-if="son.CareOfRemarks"> <div class="_zhuan_msg" v-for="(z,zIndex) in JSON.parse(son.CareOfRemarks)"> <p><span>由</span>{{z.BeFrom}}<span><i class="_color_green">转交</i>给</span>{{z.Target}}</p> <p class="_pp_info">转交备注:{{z.Remarks?z.Remarks:'无'}}</p> </div> </template> <div class="_pp_info" v-if="son.AuditStatus!=1"> <p>{{son.Remark!=''?son.Remark:'无'}}</p> <div class="_info_img" v-if="son.Image!=null&&son.AuditStatus==2" > <ul class="clearfix" v-if="son.Image.length&&son.Image.length>=1"> <li v-for="(img,imgI) in son.Image"> <img v-if="!img" src="../../assets/img/Travelslider.png" alt=""> <img v-else :src="img" alt=""> <div class="_see_img" @click="showImg(img,2)"> <i class="iconfont icon-sousuo"></i> </div> </li> </ul> </div> </div> </div> </div> <div class="_more _mgt_15" v-for="(son,sindex) in item.AuditRecordList" v-if="son.AuditStatus!=2"> <div class="_right_content" v-if="item.AuditWay==2&&son.AuditStatus!=2"> <p class="_name"> <span class="_n PingFangSC">{{son.AuditName}}</span> <span class="_sn" v-if="son.AuditStatus==2">通过</span> <span class="_m" v-else-if="son.AuditStatus==4">驳回</span> <span class="_sm" v-else-if="son.AuditStatus==1">待审</span> <span class="_time _time_n" v-if="item.Status!=1">{{son.AduitDate}}</span> </p> <template v-if="son.CareOfRemarks"> <div class="_zhuan_msg" v-for="(z,zIndex) in JSON.parse(son.CareOfRemarks)"> <p><span>由</span>{{z.BeFrom}}<span><i class="_color_green">转交</i>给</span>{{z.Target}}</p> <p class="_pp_info">转交备注:{{z.Remarks?z.Remarks:'无'}}</p> </div> </template> <div class="_pp_info" v-if="item.Status!=1"> <p>{{son.Remark!=''?son.Remark:'无'}}</p> <div class="_info_img" v-if="son.Image!=null&&item.Status!=1" > <ul class="clearfix" v-if="son.Image.length&&son.Image.length>=1"> <li v-for="(img,imgI) in son.Image"> <img v-if="!img" src="../../assets/img/Travelslider.png" alt=""> <img v-else :src="img" alt=""> <div class="_see_img" @click="showImg(img,2)"> <i class="iconfont icon-sousuo"></i> </div> </li> </ul> </div> </div> </div> <div class="_right_content" v-else-if="item.AuditWay==3 && son.AuditStatus==1"> <p class="_name"> <span class="_n PingFangSC">{{son.AuditName}}</span> <span class="_sm" v-if="item.Status==2 && item.Sort!=0">通过</span> <span class="_m" v-else-if="item.Status==4">驳回</span> <span class="_sm _left_radius_sus" v-else-if="son.AuditStatus==1">待审</span> <span class="_time _time_n" v-if="item.Status!=1">{{son.AduitDate}}</span> </p> <template v-if="son.CareOfRemarks"> <div class="_zhuan_msg" v-for="(z,zIndex) in JSON.parse(son.CareOfRemarks)"> <p><span>由</span>{{z.BeFrom}}<span><i class="_color_green">转交</i>给</span>{{z.Target}}</p> <p class="_pp_info">转交备注:{{z.Remarks?z.Remarks:'无'}}</p> </div> </template> <div class="_pp_info" v-if="item.Status!=1"> <p>{{son.Remark!=''?son.Remark:'无'}}</p> <div class="_info_img" v-if="son.Image!=null&&item.Status!=1" > <ul class="clearfix" v-if="son.Image.length&&son.Image.length>=1"> <li v-for="(img,imgI) in son.Image"> <img v-if="!img" src="../../assets/img/Travelslider.png" alt=""> <img v-else :src="img" alt=""> <div class="_see_img" @click="showImg(img)"> <i class="iconfont icon-sousuo"></i> </div> </li> </ul> </div> </div> </div> <div class="_right_content" v-else-if="item.AuditWay==3 && son.AuditStatus==4"> <p class="_name"> <span class="_n PingFangSC">{{son.AuditName}}</span> <span class="_sm" v-if="item.Status==2 && item.Sort!=0">通过</span> <span class="_m" v-else-if="item.Status==4">驳回</span> <span class="_sm _left_radius_sus" v-else-if="son.AuditStatus==1">待审</span> <span class="_time _time_n" v-if="item.Status!=1">{{son.AduitDate}}</span> </p> <template v-if="son.CareOfRemarks"> <div class="_zhuan_msg" v-for="(z,zIndex) in JSON.parse(son.CareOfRemarks)"> <p><span>由</span>{{z.BeFrom}}<span><i class="_color_green">转交</i>给</span>{{z.Target}}</p> <p class="_pp_info">转交备注:{{z.Remarks?z.Remarks:'无'}}</p> </div> </template> <div class="_pp_info" v-if="item.Status!=1"> <p>{{son.Remark!=''?son.Remark:'无'}}</p> <div class="_info_img" v-if="son.Image!=null&&item.Status!=1" > <ul class="clearfix" v-if="son.Image.length&&son.Image.length>=1"> <li v-for="(img,imgI) in son.Image"> <img v-if="!img" src="../../assets/img/Travelslider.png" alt=""> <img v-else :src="img" alt=""> <div class="_see_img" @click="showImg(img)"> <i class="iconfont icon-sousuo"></i> </div> </li> </ul> </div> </div> </div> </div> </div> <div class="_right_content" v-else> <div class="_more" v-for="(son,sindex) in item.AuditRecordList"> <p class="_name"> <span class="_n">{{son.AuditName}}<span class="_sm">{{item.AuditDescription}}</span></span> <span class="_time _time_n" v-if="item.NextStep!=1">{{son.AduitDate}}</span> </p> <div class="_right_content"> <div class="_pp_info" v-if="item.NextStep!=1"> <p>{{son.Remark==''?'无':son.Remark}}</p> <div class="_info_img" v-if="son.Image!=null" > <ul class="clearfix" v-if="son.Image.length&&son.Image.length>=1"> <li v-for="(img,imgI) in son.Image"> <img v-if="!img" src="../../assets/img/Travelslider.png" alt=""> <img v-else :src="img" alt=""> <div class="_see_img" @click="showImg(img)"> <i class="iconfont icon-sousuo"></i> </div> </li> </ul> </div> </div> </div> </div> </div> </div> </template> <div class="_pb_son _none_after" v-if="GetDetail.Status==3 && !IsBoHui"> <div class="_left_radius _left_radius_err">驳回</div> </div> <div class="_pb_son" :class="GetDetail.Status==2?'_none_after':''" v-if="GetDetail.Status==2"> <div class="_left_radius" >结束</div> <div class="_right_content"> <p class="_time">累计耗时:{{endDate}}</p> </div> </div> <div style="padding-left: 75px;"> <button class="hollowFixedBtn" v-if="(bossID===1 || bossID===5||bossID===1903) && (GetDetail.Status===2 || GetDetail.Status===5 || GetDetail.Status===1)" @click="bohui()">驳回</button> <button class="hollowFixedBtn" @click="AuditOrRefund()">返回</button> </div> </div> </div> <div v-if='picIsShow' class="_show_img_box" @click="picIsShow=false,picObj=''"> <img :src="picObj" style="margin-top: 80px;"/> </div> </div> <div class="_none_print_tips"> <p style="font-size:24px;">为了更好地打印效果,请点击页面上的“打印单据”再来进行打印,谢谢。</p> </div> <viewer :images="images" :options='imageOptions' @inited="inited" class="viewer" ref="viewer"> <img v-for="src in images" :src="src" :key="src"> </viewer> </div> </template> <script> import myFlowChartModule from "./FinancialSubmodule/FlowChartModule.vue"; import myBill from "./FinancialSubmodule/BillModule.vue"; import myCBill from "./FinancialSubmodule/CashierBillModule.vue"; import myrbvBill from "./FinancialSubmodule/ReceivablesModule.vue"; import myhrBill from "./FinancialSubmodule/MergeBillModule.vue"; import teamProductModule from "../commonPage/teamProductModule.vue"; import TicketFinace from "../commonPage/TicketFinace.vue"; import SaleOrderModule from "../commonPage/SaleOrderModule.vue"; import TicketingModule from "../commonPage/TicketingModule.vue"; export default { data(){ return{ ZhiDanRen: -1, imageOptions:{ navbar:false, title:false }, images: [], ID:0, GetDetail:{ AuditSteps:[{ AuditRecordList:[{ AuditName:'' }] }], TCIDList:[], TCIDAndTCNUMList:[] }, AuditOrRefundMsg:{ WorkFlowId:'', }, AuditListData:{ AuditList:[] }, importFileUrl:this.domainManager().UploadFileUrl+'?cmd=User_post_FileUpload&fileType=1&fileLimit=10', imageUrl:'', uploadImgList:[], FuImgList:[], picIsShow:false, picObj:'', initialIndex:0, widthSon:"100%", colorSon:"#ffffff", endDate:'', returnCode:'', pageIndex:1, OrderSource:null, OrderID:null, TCID:null, FrID:null, Callback:null, SourceID:null, tableShow:false, tableShowTeam:false, fujianShow:true, sonTCIDList:null, bossID:null, saveMsg:[], GetFinancLogList:[], LogLoading:false, IsBoHui: false, } },components:{ 'my-FlowChartModule': myFlowChartModule, 'my-Bill': myBill, 'my-C-Bill': myCBill, 'my-RVB-Bill':myrbvBill, 'my-HB-Bill':myhrBill, 'teamProductModule':teamProductModule, 'TicketingModule':TicketingModule, 'SaleOrderModule':SaleOrderModule, 'TicketFinace':TicketFinace }, created(){ this.ID = this.$route.query.id; this.pageIndex = this.$route.query.pageIndex; let userinfo = this.getLocalStorage(); this.bossID = userinfo.EmployeeId; },methods:{ inited (viewer){ this.$viewer = viewer }, Financial_post_GetFinancLogList(){ // 获取单据日志 if(this.checkboxShow) return this.LogLoading = true; this.apipost('Financial_post_GetFinancLogList',{ID:this.ID,Type:2}, res => { if(res.data.resultCode == 1) { let data = res.data.data; data.forEach(x=>{ x.UpdateDate = this.$commonUtils.formatMsgTime(x.UpdateDate) }) this.LogLoading = false; this.GetFinancLogList = data; } }, err => {}) }, upLoadFuJian: function() { if (this.saveMsg.length===0) return this.$message.error('请上传图片!'); let msg = { FrID: this.ID, vorcherInos: this.saveMsg }; this.apipost('Financial_post_SetVoucher', msg, res=>{ if (res.data.resultCode===1) { this.Financial_post_GetDetail(this.ID) } else { this.$message.error(res.data.message); } }, null) }, bohui(){ this.AuditOrRefundMsg.WorkFlowId = this.ID; this.$confirm('是否驳回单号'+'“'+this.ID+'”'+'的单据?驳回后,单据将重新开始审批流程。', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { this.apipost('Financial_post_PersonRefund',this.AuditOrRefundMsg,res=>{ if(res.data.resultCode==1){ this.$message.success(res.data.message); let _this = this; setTimeout(function () { _this.MsgBus.$emit('msg','close'); },500) }else{ this.resultCode = res.data.resultCode; this.$message.error(res.data.message); } },err=>{}) }).catch(() => { this.$message({ type: 'info', message: '已取消' }); }); }, goPrintPage(type,id,Merge,OrderSource){ if(type===1){ // this.$confirm('是否打印客户联?', '提示', { // confirmButtonText: '确定', // cancelButtonText: '取消', // type: 'warning' // }).then(() => { // let routeData = this.$router.resolve({ // name: 'PrintPage', // query: { type: type,id:id,isKehu:1} // }); // window.open(routeData.href, "_blank"); // }).catch(() => { // let routeData = this.$router.resolve({ // name: 'PrintPage', // query: { type: type,id:id,isKehu:0} // }); // window.open(routeData.href, "_blank"); // }); let routeData = this.$router.resolve({ name: 'PrintPage', query: { type: type,id:id,isKehu:0,Merge:Merge,OrderSource:OrderSource?OrderSource:-1} }); window.open(routeData.href, "_blank"); }else{ let routeData = this.$router.resolve({ name: 'PrintPage', query: { type: type,id:id,Merge:Merge,OrderSource:OrderSource?OrderSource:-1} }); window.open(routeData.href, "_blank"); } }, jumpPage(path,id,type){ if(type==1){ // let routeData = this.$router.resolve({ // name: path, // query: { TCIDList: id} // }); // window.open(routeData.href, "_blank"); this.$router.push({ name: path, query: { tcmun: id,blank:'y'} }) }else if(type==2){ // let routeData = this.$router.resolve({ // name: path, // query: { OrderSource: id.OrderSource,SourceID: id.SourceID} // }); // window.open(routeData.href, "_blank"); this.$router.push({ name: path, query: { OrderSource: id.OrderSource,SourceID: id.SourceID,blank:'y'} }) }else if(type==3){ // let routeData = this.$router.resolve({ // name: path, // query: { OrderSource: id.OrderSource,SourceID: id.SourceID} // }); // window.open(routeData.href, "_blank"); this.$router.push({ name: path, query: { OrderSource: id.OrderSource,SourceID: id.SourceID,blank:'y'} }) }else if(type==4){ // let routeData = this.$router.resolve({ // name: path, // query: { OrderSource: id.OrderSource,SourceID: id.SourceID} // }); // window.open(routeData.href, "_blank"); this.$router.push({ name: path, query: { OrderSource: id.OrderSource,SourceID: id.SourceID,blank:'y'} }) }else if(type==5){ // let routeData = this.$router.resolve({ // name: path, // query: { id:id,OutBranchId:id.RB_Branch_Id} // }); // window.open(routeData.href, "_blank"); this.$router.push({ name: path, query: { id:id,OutBranchId:id.RB_Branch_Id,blank:'y'} }) }else if(type==6){ // let routeData = this.$router.resolve({ // name: path, // query: { id:id,OutBranchId:id.RB_Branch_Id,'CloseIncomeBtn':true} // }); // window.open(routeData.href, "_blank"); this.$router.push({ name: path, query: { id:id,OutBranchId:id.RB_Branch_Id,'CloseIncomeBtn':true,blank:'y'} }) }else if(type==7){ // let routeData = this.$router.resolve({ // name: path, // query: { id:id,isShow:false} // }); // window.open(routeData.href, "_blank"); this.$router.push({ name: path, query: { id:id,isShow:false,blank:'y'} }) }else if(type==8){ // let routeData = this.$router.resolve({ // name: path, // query: {VisaID:id.SourceID,isFinacial:0} // }); // window.open(routeData.href, "_blank"); this.$router.push({ name: path, query: { id:id.SourceID,isFinacial:0,blank:'y'} }) } }, uploadFileBtn(file) { //上传 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.saveMsg.push({ Type:fileTypeNumber, Content: x.data.FilePath, Url: this.domainManager().ViittoFileUrl + x.data.FilePath, }); this.$message.success('上传成功'); }); }, deleteUploadFile(i){ // 删除上传文件 this.saveMsg.splice(i,1); }, showUpLoadFileT(i){ // 预览上传文件 if(i.Type==3){ this.picObj.push(i.Url); this.imgList.push(i.Url); this.picIsShow= true; // this.hideFlashMan = true; }else{ if(i.Content.substring(i.Content.lastIndexOf('.')+1,i.Content.length).toUpperCase()=='PDF'){ this.previewPDF(i.Url) }else{ window.open("https://view.officeapps.live.com/op/view.aspx?src="+i.Url) } } }, showUpLoadFile(i){ // 预览上传文件 if(i.Content.substring(i.Content.lastIndexOf('.')+1,i.Content.length).toUpperCase()=='PDF'){ this.previewPDF(i.Content) }else{ window.open("https://view.officeapps.live.com/op/view.aspx?src="+i.Content) } }, FinancialFlowTemplate_post_GetProcessList(id,tid){ this.apipost('FinancialFlowTemplate_post_GetProcessList',{ID:0,WorkFlowID:id,TemplateType:tid},res=>{ if(res.data.resultCode==1){ res.data.data.forEach(y=>{ y.contentTips = y.AuditDescription+(y.AuditWay=='2'?'(会签)':'(或签)') }) this.AuditListData.AuditList = res.data.data; }else{} },err=>{}) }, AuditOrRefund(){ this.MsgBus.$emit('msg'); // this.$router.push({name:'FinancialDocuments',query:{"returnCode":this.returnCode,"pageIndex":this.pageIndex,blank:'y'}}); }, deleteImg(i){ // 删除 this.uploadImgList.splice(i,1) }, handleAvatarSuccess(res, file) { //上传 if(res.resultCode==1){ var img_path = res.data.FullFilePath console.log(res.data) this.imageUrl = img_path let obj = { src:img_path } this.uploadImgList.push(obj) } }, showImg(obj, type){ let isExsit=false this.images.forEach(x=>{ if(x==obj) isExsit=true }) if(!isExsit) { this.images.push(obj) } else { this.$viewer.view(this.images.indexOf(obj)) } this.$viewer.show() // this.picObj= obj; // this.picIsShow= true; }, Financial_post_GetDetail(id,t){ //获取单据详情 this.FuImgList = []; this.saveMsg = []; this.apipost('Financial_post_GetDetail',{ID:id,Type:1}, res => { if(res.data.resultCode == 1) { let data= res.data.data; data.DetailList.forEach(x=>{ x.UnitPrice = this.$commonUtils.addCommas(x.UnitPrice.toFixed(2)) x.Money = x.Money.toFixed(2) x.OriginalMoney = x.OriginalMoney.toFixed(2) }) data.ChineseMoney = this.$commonUtils.changeMoneyToChinese(data.Money) data.Money = this.$commonUtils.addCommas(data.Money.toFixed(2)) if(data.Status==2){ let len = data.AuditSteps.length - 1; let sLen = data.AuditSteps[len].AuditRecordList[data.AuditSteps[len].AuditRecordList.length-1]; let begTime = data.AuditSteps[0].AuditRecordList[0].AduitDate; let enTime = sLen && sLen.AduitDate ? sLen.AduitDate : begTime; let newTime = this.$commonUtils.formatMsgTime2(begTime,enTime); this.endDate = newTime.replace("前",""); } this.FinancialFlowTemplate_post_GetProcessList(data.FrID,data.TemplateType) if(data.VorcherInos.length>0){ data.VorcherInos.forEach(x=>{ if(x.Type==3){ let Content = x.Content.replace('http:','http:'); this.FuImgList.push(Content); this.images.push(Content) } }) } this.GetDetail = data; // 截取掉驳回后面的审核步骤 this.ZhiDanRen = this.GetDetail.CreatBy; let list = []; for ( let i = 0; i < this.GetDetail.AuditSteps.length ; i++ ){ list.push(this.GetDetail.AuditSteps[i]); if(this.GetDetail.AuditSteps[i].Status==4){ this.IsBoHui = true; break; } } this.GetDetail.AuditSteps = list; this.OrderID = this.GetDetail.OrderID; this.OrderSource = this.GetDetail.OrderSource; this.TCID = this.GetDetail.TCID; this.FrID = this.GetDetail.FrID; this.SourceID = this.GetDetail.SourceID; this.Callback = this.GetDetail.Callback; // 拼接团号显示团信息 let str = ''; if(data.TCIDList.length>0){ data.TCIDList.forEach(x=>{ str = str + x + ','; }) } str = str.slice(0,str.length-1); this.sonTCIDList = str==''?null:str; if(data.URL){ // if(this.OrderSource==9){ // 国内票务订单 // if(this.GetDetail.Type==2){ // this.$router.push({name:data.URL,query:{'FrID':this.FrID,id:this.ID}}); // } // }else if(this.OrderSource==10){ //销售订单 // this.$router.push({name:data.URL,query:{'orderID':this.OrderID,'SourceID':this.SourceID}}); // }else if(this.OrderSource==4){ //机票订单 // this.$router.push({name:data.URL,query:{'SourceID':this.SourceID,'Callback':this.Callback,id:this.ID}}); // } } // if(data.URL){ // this.$router.push({name:}) // } } }, err => {}) }, pushPage(){ Vue.component(this.name+this.z,this.componentTemp) this.c=this.name+this.z }, },mounted(){ // document.onkeydown = this.KeyDown // document.onkeyup = this.KeyUp // document.oncontextmenu = function(){return false;} this.Financial_post_GetDetail(this.ID) if(this.$route.query.Conditon){ this.returnCode = this.$route.query.Conditon; } } } </script>