<style scoped> .row { display: flex; } .row-c { display: flex; align-items: center; } .column { display: flex; flex-direction: column; } .column-jac { display: flex; flex-direction: column; align-items: center; justify-content: center; } .column-ac { display: flex; flex-direction: column; align-items: center; } .wrap { flex-wrap: wrap; } .justify-sb { justify-content: space-between; } .justify-c { justify-content: center; } .justify-e { justify-content: flex-end; align-items: flex-end; } .flex-g { flex-grow: 1; } .flex-s { flex-shrink: 0; } .align-c { align-items: center; } .cblack { color: black; } .cf { color: #ffffff; } .c9e { color: #9e9e9e; } .c20C997 { color: #20c997; } .c02C854 { color: #02c854; } .cff9800 { color: #ff9800; } .cF1416C { color: #f1416c; } .cF57A98 { color: #f57a98; } .c04C8C8 { color: #04c8c8; } .c059FF6 { color: #059ff6; } .c3FC4FF { color: #3fc4ff; } .fz10 { font-size: 10px; } .fz11 { font-size: 11px; } .fz12 { font-size: 12px; } .fz13 { font-size: 13px; } .fz14 { font-size: 14px; } .fz15 { font-size: 15px; } .fz16 { font-size: 16px; } .fz17 { font-size: 17px; } .fz18 { font-size: 18px; } .fbold { font-weight: bold; } .ml { margin-left: 10px; } .mr { margin-right: 10px; } .mt { margin-top: 10px; } .mt20 { margin-top: 20px; } .mb { margin-bottom: 10px; } .mb20 { margin-bottom: 20px; } .mx { margin-left: 10px; margin-right: 10px; } .mx5 { margin-left: 5px; margin-right: 5px; } .mb5 { margin-bottom: 5px; } .py { padding: 15px 0; } .py5 { padding: 5px 0; } .px5 { padding: 0 5px; } .px15 { padding: 0 15px; } .pa15 { padding: 15px; } .py20 { padding: 20px 0; } .pb5 { padding: 0 0 5px 0; } .pa { padding: 10px 20px; } .pa20 { padding: 20px; } .pt20 { padding: 20px 0; } .borderD { border-bottom: 1px dashed #dddddd; } .bgf { background: #ffffff; } .bgf5 { background: #f5f5f5; } .bgE8F5E9 { background: #e8f5e9; } .bgD9F3FF { background: #d9f3ff; } .bgFAEAED { background: #faeaed; } .bj { background: #ffffff; } .bjFFF3E0 { background: #FFF3E0; } .radius5 { border-radius: 5px; } .cursor-pointer { cursor: pointer; } .relative { position: relative; } .absolute { position: absolute; } .left0 { left: 0; } .right0 { right: 0; } .top0 { top: 0; } .bottom0 { bottom: 0; } .left20 { left: 020px; } .right20 { right: 20px; } .top20 { top: 20px; } .bottom20 { bottom: 20px; } .text-center { text-align: center; } .orderType { padding: 3px 15px; border-radius: 3px; background: #f57a98; margin-right: 15px; } .orderType.active { background: #4dd0e1; } .orderType.activeNo { background: #E95252; } .copy { display: inline-block; padding: 3px 15px; border-radius: 3px; margin-left: 20px; } .copy:hover { background: #f5f5f5; } .see-rec div { padding: 1px 5px; border-radius: 3px; } .see { border: 1px solid #04c8c8; } .seeLK { border: 1px solid #059ff6; } .see:hover { background-color: rgba(4, 200, 200, 0.1); } .rec { border: 1px solid #04c8c8; background-color: rgba(4, 200, 200, 1); } .rec:hover { border: 1px solid rgba(4, 200, 200, 0.9); background-color: rgba(4, 200, 200, 0.9); } .cancel:hover { background-color: #f3dce2; } .confirm:hover { background-color: #dcedc8; } .change:hover { background-color: #d7e9f3; } .change1:hover { background-color: #dcedc8; } .orderop { text-align: center; } .orderop div { width: auto; height: 30px; display: flex; padding: 0 5px; justify-content: center; } .RoomList div { border-bottom: 1px solid #e7e7e7; } .RoomList div:last-child { border: 0; } .el-table { font-size: 13px; } .shezhifrom { position: relative; } .shebox { position: absolute; top: 0; left: -100px; display: none; } .shezhifrom:hover .shebox { display: block; } .flexOne-form-bj h3 { font-size: 18px; color: black; padding: 0 0 20px 0; font-weight: 400; } .flexOne-type { display: flex; align-items: center; padding: 0 0 20px 0; } .flexOne-type b { font-size: 13px; width: 100px; flex-shrink: 0; } .flexOne-type div { display: flex; } .flexOne-description { padding: 15px 15px; border-radius: 5px; background: #E1F5FE; margin-bottom: 20px; } .flexOne-description b { font-size: 14px; } .flexOne-description p { font-size: 12px; color: #4C5759; padding: 10px 0 0 0; } .flexOne-infor-box b { font-size: 13px; } .infor-list { display: flex; flex-direction: column; } .list-title { padding: 20px 0; border-bottom: 1px dashed #eeeeee; color: #7E8299; font-size: 13px; } .list-title, .list-centent { display: flex; flex-wrap: wrap; margin-top: 20px; } .infor-list li { width: 25%; } .list-centent li { width: 33.33%; } .list-centent.active li { width: 25%; } /deep/.el-table tr td:first-child { border-bottom: 0; } /deep/.el-table tr:last-child td { border-bottom: 1px solid #EBEEF5; } /deep/.el-table tr td { border-bottom: 1px solid #EBEEF5; } </style> <template> <div> <div style="text-align: right;position: fixed;top: 62px; right: 89px;"> <el-button class="hollowFixedBtn" v-if="pagesTitle=='OP'" @click="setCompleted" :loading="CompletedLoading">{{$t('objFill.oneclickfinish')}} </el-button> </div> <el-table ref="multipleTable" :data="OrderList" tooltip-effect="dark" style="width: 100%" row-key="OrderId" @selection-change="handleSelectionChange" :empty-text="$t('system.content_noData')"> <el-table-column type="selection" :selectable="selectable" :reserve-selection="true" v-if="pagesTitle=='OP'"> </el-table-column> <el-table-column :label="pagesTitle=='OP'?$t('system.table_chekAll'):''"> <template slot-scope="scope"> <div class="row-c justify-sb align-c py"> <div class="row-c"> <div> <div class="orderType cf fz12" :class="{ active: scope.row.MailingState == 1,activeNo: scope.row.MailingState == 4 }"> <template v-if="scope.row.MailingState == 1">{{$t('objFill.zixingqujian')}}</template> <template v-if="scope.row.MailingState > 1&&scope.row.MailingState < 4">{{$t('objFill.youjipiaoquan')}}</template> <template v-if="scope.row.MailingState == 4">{{$t('objFill.dianziquan')}}</template> </div> </div> <div class="cblack fz14 mr" :class="{ cF1416C: scope.row.IsFinish == 0,c20C997: scope.row.IsFinish == 1 }"> <template v-if="scope.row.IsFinish == 1"> {{$t('objFill.finished')}} <template v-if="scope.row.FinishTime">/ {{scope.row.FinishTime}}</template> </template> <template v-else> {{$t('objFill.uncompleted')}} </template> </div> <div class="c9e fz12"> <span>{{$t('OrderList.search.orderNum')}}:</span> <span>{{ scope.row.OrderNo }}({{ scope.row.OrderId}})</span> <span class="copy cblack cursor-pointer" v-if="copyId != scope.row.OrderId" @click="CopyHandler(scope.row)">{{$t('objFill.copy')}}</span> <span class="copy c059FF6 bgD9F3FF cursor-pointer" v-else><i class="el-icon-check mr"></i>{{$t('objFill.copied')}}</span> </div> </div> <div class="c9e fz12"> <span v-if="scope.row.Name||scope.row.EName">{{$t('objFill.guestinfor')}}:{{ scope.row.Name }}({{ scope.row.EName }})<template v-if="scope.row.Mobile"> /{{ scope.row.Mobile }}</template></span> <span v-if="pagesTitle!='销售'"> <template v-if="scope.row.Name||scope.row.EName"> /</template>{{$t('salesModule.Laiyuan')}}<template v-if="!scope.row.OrderSource&&!scope.row.CustomerId">{{$t('visaT.sale')}}</template> <template v-if="!scope.row.OrderSource&&scope.row.CustomerId>0">B2B</template> <template v-if="scope.row.OrderSource==1">B2C</template> </span> </div> <div class="row c9e fz12"> <span class="mr" v-if="scope.row.LureEmpName">{{$t('objFill.yinliuren')}}:{{ scope.row.LureEmpName }}</span> <span class="mr">{{$t('visaT.sale')}}:{{ scope.row.SaleName }}</span> <span class="mr" v-if="scope.row.OpName&&pagesTitle=='OP'">{{$t('objFill.guanlian')}}OP:{{ scope.row.OpName }}</span> <span class="mr" v-if="scope.row.CustomerName">{{$t('active.cl_addPp')}}:{{ scope.row.CustomerName }} ({{ scope.row.CustomerContact }}<template v-if="scope.row.CustomerTel">/{{ scope.row.CustomerTel }}</template>)</span> <span class="mr">{{$t('OrderList.search.daterange')}}:{{ scope.row.CreateTime }}</span> <div class=""> <i class="mx5" :class="{ 'el-icon-alarm-clock c20C997': scope.row.OrderStatus == 1, 'el-icon-check cblack': scope.row.OrderStatus == 2, 'el-icon-warning cff9800': scope.row.OrderStatus == 3, 'el-icon-refresh cF1416C': scope.row.OrderStatus == 4 }"></i> <span class="fz12 cblack" :class="{ c20C997: scope.row.OrderStatus == 1, cblack: scope.row.OrderStatus == 2, cff9800: scope.row.OrderStatus == 3, cF1416C: scope.row.OrderStatus == 4 }"> {{ scope.row.OrderStatusName }} </span> </div> </div> </div> <div class="mb"> <el-table :data="scope.row.DetailList" style="width:100%" border> <el-table-column :label="$t('scen.sc_resName')+'('+$t('sm.Date')+')'" min-width="100" style="background:#EAEAEA"> <template slot-scope="scopes"> <template> <div>{{scope.row.CouponsName }}</div> <span style="color: #999999;">{{ scope.row.UseDate }}</span> </template> </template> </el-table-column> <el-table-column :label="$t('objFill.piaoquanname')" style="background:#EAEAEA"> <template slot-scope="scope"> {{ scope.row.TicketName }} </template> </el-table-column> <el-table-column :label="$t('restaurant.res_Number')" style="background:#EAEAEA"> <template slot-scope="scope"> {{ scope.row.Num }} </template> </el-table-column> <el-table-column :label="$t('ground.xiaoji')" min-width="70" style="background:#EAEAEA"> <template slot-scope="scope"> <span class="fz15 fbold">{{ scope.row.Money.toFixed(2) }}</span> </template> </el-table-column> <template slot="append" v-if="(scope.row.Remark||scope.row.OPRemark||scope.row.isMore)||(scope.row.OrderStatus>1&&scope.row.OrderStatus!=3)"> <div v-if="(scope.row.OrderStatus>1&&scope.row.OrderStatus!=3)||scope.row.Remark" style="padding:10px;color:#f1416c">{{$t('pub.Customer')+$t('fnc.beizhu')}}{{scope.row.Remark}} <i v-if="pagesTitle=='销售'&&scope.row.OrderStatus>1&&scope.row.OrderStatus!=3" class="el-icon-edit cursor-pointer c059FF6 mx" @click="editRemark(scope.row)"></i></div> <div v-if="(scope.row.OrderStatus>1&&scope.row.OrderStatus!=3)||scope.row.OPRemark" style="padding:10px;color:#f1416c" :style="{'padding':!scope.row.Remark&&scope.row.isMore?'0 10px 30px 10px':'0 10px 10px 10px'}"> OP{{$t('fnc.beizhu')}}{{scope.row.OPRemark}} <i v-if="pagesTitle=='OP'&&scope.row.OrderStatus>1&&scope.row.OrderStatus!=3" class="el-icon-edit cursor-pointer c059FF6 mx" @click="editRemark(scope.row)"></i> </div> </template> </el-table> </div> <el-table :data="scope.row.list" style="width:100%" border v-if="scope.row.OrderStatus!=3"> <el-table-column :label="$t('fnc.shishou')" min-width="100"> <template slot-scope="scope"> <span class="fz15 fbold">{{ scope.row.Income ? scope.row.Income : "-" }}</span> </template> </el-table-column> <el-table-column :label="$t('hotel.hotel_cost')" min-width="100"> <template slot-scope="scope"> <span class="fz15 fbold">{{ scope.row.CostMoney ? scope.row.CostMoney : "-" }}</span> </template> </el-table-column> <el-table-column :label="$t('fnc.ptshuijin')" min-width="100"> <template slot-scope="scope"> <span class="fz15 fbold">{{ scope.row.PlatformTax ? scope.row.PlatformTax : "-" }}</span> </template> </el-table-column> <el-table-column :label="$t('fnc.tuikuan')" min-width="100"> <template slot-scope="scope"> <span class="fz15 fbold">{{ scope.row.Refund ? scope.row.Refund : "-" }}</span> </template> </el-table-column> <el-table-column :label="$t('Operation.Op_platZaitu')" min-width="100"> <template slot-scope="scope"> <span class="fz15 fbold">{{ scope.row.PlatformMoney ? scope.row.PlatformMoney : "-" }}</span> </template> </el-table-column> <el-table-column :label="$t('op.Tocollected')" min-width="100"> <template slot-scope="scope"> {{scope.row.DueInMoney}} <span class="fz15 fbold" :class="{'cF1416C':scope.row.DueInMoney>0}"> </span> </template> </el-table-column> <el-table-column :label="$t('restaurant.res_profit')" min-width="100"> <template slot-scope="scope"> <span class="fz15 fbold">{{ scope.row.Income-scope.row.CostMoney-scope.row.Refund>0?(scope.row.Income-scope.row.CostMoney-scope.row.Refund).toFixed(2):'-' }}</span> </template> </el-table-column> <el-table-column v-if="(scope.row.SellCommission&&scope.row.SellCommission>0)||(scope.row.OPCommission&&scope.row.OPCommission>0)" :label="$t('salesModule.Commission')" style="background:#EAEAEA"> <template slot-scope="scope"> <div class="width100-float-l" v-if="scope.row.SellCommission&&scope.row.SellCommission>0"><span class="float-l">{{$t('visaT.sale')}}:</span> <commissionDialog :objNew="scope.row" :OP="0"></commissionDialog> </div> <div class="width100-float-l" v-if="scope.row.OPCommission&&scope.row.OPCommission>0"><span class="float-l">OP:</span> <commissionDialog :objNew="scope.row" :OP="1"></commissionDialog> </div> </template> </el-table-column> </el-table> <div class="row justify-sb mt mb20"> <div class="column px15 bjFFF3E0 radius5 flex-g pa relative" style="max-width: 300px;min-width: 150px;"> <div class="fz12 row justify-sb" v-if="scope.row.MailingState != 4"> <span>{{ scope.row.MailingState > 1 ? $t('system.shohudizhi')+':':$t('system.ziqudizhi')+':' }}</span> <div :class="{ 'cF1416C': scope.row.MailingState == 2, 'c02C854': scope.row.MailingState == 3 }"> <template v-if="scope.row.MailingState == 2"> {{$t('objFill.dengdaipeisong')}} </template> <template v-if="scope.row.MailingState == 3"> {{$t('objFill.yipeisong')}} </template> </div> </div> <div class="row wrap orderNo fz12 c9e"> <template v-if="scope.row.MailingState == 2 || scope.row.MailingState == 3"> {{ scope.row.MailingAddress }} </template> <template v-else> <template v-if="scope.row.MailingState == 1"> {{ scope.row.SelffetchAddress ? scope.row.SelffetchAddress : $t('objFill.dengdaiquerenziqudz') }} </template> <div class="row" style="margin-right: 10px;" v-if="scope.row.MailingState==4"> <div class="column"> <template v-if="scope.row.TicketCodeFile"> <div class="wrap fz12 c9e"> {{$t('objFill.dianziquan')}} </div> <div class="row fz12 see-rec mt"> <div class="text-accent q-mr-md c"> {{ scope.row.TicketCodeFile.split("/").at(-1) }} </div> <div class="cursor-pointer ml mr rec cf"> <a class="cf" style="text-decoration:none" :href="scope.row.TicketCodeFile">{{$t('objFill.xz')}}</a> </div> </div> </template> <template v-if="scope.row.MailingState==4&&pagesTitle!='销售'&&!scope.row.TicketCodeFile"> <div class="fz12 mt c9e"> {{$t('objFill.dianziquanxu')}} <span class="cff9800">{{scope.row.UseDate}}</span> {{$t('objFill.qian')}} </div> <div class="row fz12 see-rec mt"> <el-upload ref="my-upload" :http-request="uploadFileBtn" v-loading="loadingDZP" :multiple="true" :show-file-list="false" action=""> <div :class="{'cursor-pointer seeLK c059FF6':!loadingDZP, 'cursor-pointer see c04C8C8':loadingDZP}" @click="uploadOrderId=scope.row.OrderId">{{$t('objFill.updianziquan')}} </div> </el-upload> </div> </template> <template v-if="scope.row.MailingState==4&&pagesTitle=='销售'&&!scope.row.TicketCodeFile"> {{$t('objFill.dengdaiquerendzqdz')}} </template> </div> </div> </template> </div> </div> <div class="column px15 bgf5 radius5 ml flex-g pa relative" style="min-width: 150px;max-width:400px"> <div class="fz12">{{$t('fnc.skdanju')}}</div> <div class="row wrap orderNo fz12 py"> <span class="cursor-pointer radius5 mr mb px5" :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.IncomeList" @click="openDetails(x)">{{ x.FrID }}</span> <span v-if="scope.row.IncomeList.length == 0" class="c9e fz12"> {{$t('objFill.nocollectiondocument')}} </span> </div> <el-tooltip v-if="scope.row.OrderStatus == 2" class="item" effect="dark" :content="$t('objFill.preparedocument')" placement="top"> <i class="absolute right20 bottom20 el-icon-circle-plus cursor-pointer c059FF6" @click="makeAdocument(scope.row, scope.$index, 1)"></i> </el-tooltip> </div> <div class="column px15 bgf5 radius5 ml flex-g pa relative" style="min-width: 150px;max-width:400px"> <div class="fz12">{{$t('objFill.refundreceipt')}}</div> <div class="row wrap orderNo fz12 py"> <span class="cursor-pointer radius5 mr mb px5" :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.RefundList" @click="openDetails(x)">{{ x.FrID }}</span> <span v-if="scope.row.RefundList.length == 0" class="c9e fz12"> {{$t('objFill.norefundreceipt')}} </span> </div> <el-tooltip v-if="scope.row.OrderStatus == 2" class="item" effect="dark" :content="$t('objFill.preparedocument')" placement="top"> <i class="absolute right20 bottom20 el-icon-circle-plus cursor-pointer c059FF6" @click="makeAdocument(scope.row, scope.$index, 2)"></i> </el-tooltip> </div> <div class="column px15 bgf5 radius5 ml flex-g pa relative" style="min-width: 150px;max-width:400px"> <div class="fz12">{{$t('objFill.costdocument')}}</div> <div class="row wrap orderNo fz12 py"> <span class="cursor-pointer radius5 mr mb px5" :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.CostList" @click="openDetails(x)">{{ x.FrID }}</span> <span v-if="scope.row.CostList.length == 0" class="c9e fz12"> {{$t('objFill.nocostdocument')}} </span> </div> <div class="item absolute right20 bottom20" v-if="scope.row.OrderStatus == 2 && pagesTitle != '销售'"> <el-tooltip class="" effect="dark" :content="$t('objFill.preparedocument')" placement="top"> <i class="el-icon-circle-plus cursor-pointer c059FF6" @click="makeAdocument(scope.row, scope.$index, 3)"></i> </el-tooltip> <el-tooltip v-if="scope.row.OrderStatus == 2" class="" effect="dark" :content="$t('objFill.balanceout')" placement="top"> <i class="el-icon-circle-plus cursor-pointer c3FC4FF" @click="isOffset(scope.row, scope.$index, 3)"></i> </el-tooltip> </div> </div> <div class="column px15 bgf5 radius5 ml flex-g pa relative" style="min-width: 150px;max-width:400px" v-if="userInfo&&userInfo.RB_Group_id==2"> <div class="fz12">{{$t('objFill.invoicedocument')}}</div> <div class="row wrap orderNo fz12 py"> <span class="cursor-pointer radius5 mr px5" :class="{'bgD9F3FF':x.InvoiceApplyState===6,'bgFAEAED':x.InvoiceApplyState===1||x.InvoiceApplyState===3, 'bjFFF3E0':x.InvoiceApplyState===2||x.InvoiceApplyState===4||x.InvoiceApplyState===5, 'c3FC4FF':x.InvoiceApplyState===6,'cF1416C':x.InvoiceApplyState===1||x.InvoiceApplyState===3, 'cff9800':x.InvoiceApplyState===2||x.InvoiceApplyState===4||x.InvoiceApplyState===5}" v-for="(x, i) in scope.row.InvoiceApplyList" @click="openDetails(x,scope.row)">{{ x.ID }}</span> <span v-if="scope.row.InvoiceApplyList&&scope.row.InvoiceApplyList.length == 0" class="c9e fz12"> {{$t('objFill.noinvoicedocument')}} </span> </div> </div> <div class="column justify-c px15 bgf5 radius5 ml flex-g pa20" style="min-width: 230px;"> <div class="row-c justify-sb pb5" :class="{'borderD':scope.row.MailingMoney>0||scope.row.DiscountsMoney>0}"> <span class="fz12 c9e">{{$t('objFill.dindanzongjiae')}}</span> <div class="ml"> <span class="fz15 fbold">{{ scope.row.Money.toFixed(2) }}</span> <span class="fz12">{{ scope.row.CurrencyName }}</span> </div> </div> <div class="row-c justify-sb py5" v-if="scope.row.MailingMoney>0" :class="{'borderD':scope.row.DiscountsMoney>0}"> <span class="fz12 c9e">{{$t('objFill.youjifei')}}</span> <div class="ml"> <span class="fz14">{{ scope.row.MailingMoney.toFixed(2) }}</span> <span class="fz12 ml">{{ scope.row.CurrencyName }}</span> </div> </div> <div class="row-c justify-sb py5" v-if="scope.row.DiscountsMoney>0"> <span class="fz12 c9e">{{$t('sm.youhuijine')}}</span> <div class="ml"> <span class="fz14">{{ scope.row.DiscountsMoney.toFixed(2) }}</span> <span class="fz12">{{ scope.row.CurrencyName }}</span> </div> </div> </div> <!-- v-if="item.OrderStatus > 0 && item.OrderStatus < 4 && item.OrderStatus != 3" --> <div class="row-c wrap justify-c px15 bgE8F5E9 radius5 ml fz12 orderop flex-s"> <div v-if=" scope.row.OrderStatus == 1 && scope.row.IncomeList.length == 0 && scope.row.RefundList.length == 0 && scope.row.CostList.length == 0 && scope.row.OrderSource!=1 " class="row-c cursor-pointer radius5 cancel py5" @click="clickRightButtom(scope.row, 0)"> <i v-loading="msg.OrderId == scope.row.OrderId && loading0"></i> <span class="cF1416C">{{$t('sm.exitOrder')}}</span> </div> <div v-if="scope.row.OrderStatus == 1 && pagesTitle != '销售' && scope.row.OrderSource!=1" class="row-c cursor-pointer radius5 confirm py5" @click="clickRightButtom(scope.row, 1)"> <i v-loading="msg.OrderId == scope.row.OrderId && loading1"></i> <span class="c20C997">{{$t('ground.qrendindan')}}</span> </div> <div v-if="scope.row.OrderStatus == 2 && scope.row.MailingState == 2 && pagesTitle != '销售'" class="row-c cursor-pointer radius5 cancel py5" @click="clickRightButtom(scope.row, 2)"> <i v-loading="msg.OrderId == scope.row.OrderId && loading1"></i> <span class="cF1416C">{{$t('objFill.youji')}}</span> </div> <!-- <div v-if="item.OrderStatus == 2 && item.MailingState == 1 && pagesTitle != '销售'" class="row-c cursor-pointer radius5 cancel py5" @click="clickRightButtom(item, 3)"> <i v-loading="loading1"></i> <span class="cF1416C">设置自提地址</span> </div> --> <!-- <div v-if="item.OrderStatus == 2 || item.OrderStatus == 4" class="row-c cursor-pointer radius5 change py5" @click="goRoomDetails(item, '订房详情')" > <span class="c059FF6">{{$t('objFill.v101.hote.mingxibj')}}</span> </div> --> <div v-if="(scope.row.OrderStatus == 1 && pagesTitle == '销售')||(scope.row.OrderStatus >1 && scope.row.OrderStatus != 3 &&pagesTitle=='OP'&&is_correlationOP)" class="row-c cursor-pointer radius5 change py5" @click="goRoomDetails(scope.row, pagesTitle=='销售'?'门票预定变更':'编辑取票方式')"> <span class="c059FF6">{{pagesTitle=='销售'?$t('objFill.menpiaoyudinbg'):$t('objFill.bianjiqupiaofs')}}</span> </div> <div v-if="scope.row.OrderStatus > 1" class="row-c cursor-pointer radius5 change1 py5" @click="clickRightButtom(scope.row, 4)"> <i v-loading="msg.OrderId == scope.row.OrderId && loading2"></i> <span class="c20C997">{{$t('fnc.shousun')}}</span> </div> <div v-if="scope.row.OrderStatus >1 && scope.row.OrderStatus != 3 && scope.row.OrderStatus != 4 &&pagesTitle=='OP'&&is_correlationOP" class="row-c cursor-pointer radius5 change py5" @click="clickCorrelation(scope.row,1)"> <span class="c059FF6">{{$t('pub.edit')}}{{$t('objFill.relevance')}}OP</span> </div> <div v-if="scope.row.OrderStatus != 3 &&pagesTitle=='OP'" class="row-c cursor-pointer radius5 change py5" @click="clickCorrelation(scope.row,2)"> <span class="c059FF6">{{$t('pub.edit')}}{{$t('fnc.a_zongjine')}}</span> </div> <!-- 申请发票 --> <ApplyFoInvoice v-if="userInfo&&userInfo.RB_Group_id==2&&userInfo.EmployeeId==scope.row.EnterID" :obj="scope.row" :type="7"></ApplyFoInvoice> <!-- <template v-if="item.OrderStatus==2"> <div class="column-jac fz12 flex-s c20C997"> <div class="mb5">{{$t('objFill.v101.Rest.yizhifu')}}</div> <div> <span class="fbold fz14">{{item.Money.toFixed(2)}}</span> <span>日元</span> </div> </div> </template> --> </div> </div> <div class="mt mb20 bgf5 pa15 row-c" v-if="scope.row.CancelRemark"> <div style="font-size:16px;font-weight:bold;font-family: pingfangR;">{{$t('objFill.groundsforcancellation')}}:</div> <div style="margin-left:12px;font-size:12px;color: grey; font-family: microsoft yahei;"> {{ scope.row.CancelRemark }} </div> <div style="margin-left:12px;font-size:12px;font-family: microsoft yahei;"> {{ scope.row.CancelEmpName }} {{ scope.row.CancelTime }} </div> </div> </template> </el-table-column> </el-table> <el-dialog custom-class="w400" :title="typeState == 3 ? $t('objFill.shezhizitidz') : $t('objFill.shezhishoushunje')" :visible.sync="outerVisible"> <div> <el-form label-width="80px" :model="msg" :rules="rules" ref="msg"> <el-row :gutter="20"> <!-- <el-col :span="20"> <el-form-item :label="$t('hotel.hotel_OrderStates')" prop="State"> <el-select v-model="msg.State" class="w110 HworkInput"> <el-option v-for="item in OrderStatusType" :key="item.ID" :label="item.Name" :value="item.ID"></el-option> </el-select> </el-form-item> </el-col> --> <el-col :span="20" v-if="typeState == 3"> <el-form-item :label="$t('objFill.zitidizhi')" prop="SelffetchAddress"> <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" v-model="msg.SelffetchAddress"> </el-input> </el-form-item> </el-col> <el-col :span="20" v-if="typeState == 4"> <el-form-item :label="$t('salesModule.SSJE')" prop="LossMoney"> <el-input-number class="w200" v-model="msg.LossMoney" :min="0" :max="10000000"></el-input-number> </el-form-item> </el-col> </el-row> <el-row :gutter="20" style="margin-top: 20px;margin-bottom: 20px;"> <el-col :span="24" style="text-align: right;"> <input type="button" class="normalBtn" :value="$t('pub.saveBtn')" @click="submitForm('msg')" /> <input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="(outerVisible = false), $refs['msg'].resetFields()" /> </el-col> </el-row> </el-form> </div> </el-dialog> <el-dialog custom-class="w600" :title="$t('sm.exitOrder')" :visible.sync="cancelOrderDialog"> <div style="padding-bottom:20px"> <el-input type="textarea" autofocus rows="5" :placeholder="$t('objFill.quxiaodindanyy')" clear="w300" v-model="cancelRemark"> </el-input> <el-row :gutter="20" style="margin-top: 20px;"> <el-col :span="24" style="text-align: right;"> <input type="button" class="normalBtn" :value="$t('sm.exitOrder')" @click="cancelOrderHandler" /> <input type="button" class="hollowFixedBtn" :value="$t('pub.closeSel')" @click="cancelOrderDialog = false" /> </el-col> </el-row> </div> </el-dialog> <!-- 变更订单 --> <el-dialog custom-class="w800" :title="pagesTitle=='销售'?$t('objFill.biangendindan'):$t('objFill.bianjiqupiaofs')" :visible.sync="ChangeOrderDialog"> <div style="padding-bottom:20px"> <div class="flexOne-form-bj"> <h3>{{$t('objFill.qupiaofanshi')}}</h3> <div class="flexOne-type"> <b>{{$t('objFill.qupiaofanshi')}}:</b> <div> <el-radio v-model="msgParameter.MailingState" label="1">{{$t('objFill.zixingqupiao')}}</el-radio> <el-radio v-model="msgParameter.MailingState" label="2">{{$t('objFill.youjipiaoquan')}}</el-radio> <el-radio v-model="msgParameter.MailingState" label="4">{{$t('objFill.dianziquan')}}</el-radio> </div> </div> <div class="flexOne-description" v-if="msgParameter.MailingState==1"> <b>{{$t('objFill.zixingqupiaosm')}}</b> <p>{{$t('objFill.ziqudizhi')}}:{{msgParameter.SelffetchAddress?msgParameter.SelffetchAddress:'-'}}</p> </div> <div class="flexOne-infor-box"> <b>{{msgParameter.MailingState==1?$t('objFill.kerenxunxi'):msgParameter.MailingState==2?$t('objFill.youjixunxi'):''}}</b> <el-form v-if="msgParameter.MailingState!=4" label-width="80px" :model="msgParameter" :rules="rules2" ref="msgParameter"> <div class="infor-list"> </span> <div class="list-centent" :class="{ 'active': msgParameter.MailingState == 1 }"> <li> <el-form-item :label="$t('admin.admin_Surname')" prop="Name"> <el-input v-model="msgParameter.Name" :placeholder="$t('system.ph_name')" /> </el-form-item> </li> <li> <el-form-item :label="$t('system.table_ENname')" prop="EName"> <el-input v-model="msgParameter.EName" :placeholder="$t('rule.qsrywm')" /> </el-form-item> </li> <li> <el-form-item :label="$t('hotel.table_tel')" prop="Mobile"> <el-input type="Number" v-model="msgParameter.Mobile" :placeholder="$t('visaT.qsrphone')" /> </el-form-item> </li> <li v-if="msgParameter.MailingState == 2"> <el-form-item :label="$t('admin.admin_address')" prop="MailingAddress"> <el-input style="border-radius: 3px;" v-model="msgParameter.MailingAddress" :placeholder="$t('objFill.qinshuruyoujidz')" /> </el-form-item> </li> <li v-if="msgParameter.MailingState == 2"> <el-form-item :label="$t('objFill.youjifei')" prop="MailingMoney"> <el-input type="Number" style="border-radius: 3px;" v-model="msgParameter.MailingMoney" :placeholder="$t('objFill.qinshuruyoujif')" /> </el-form-item> </li> <li class="bottom"> <el-form-item :label="$t('system.table_sex')" prop="Sex"> <el-radio v-model="msgParameter.Sex" label="1">{{$t('visaT.boy')}}</el-radio> <el-radio v-model="msgParameter.Sex" label="2">{{$t('visaT.girl')}}</el-radio> </el-form-item> </li> </div> </div> </el-form> <div v-if="pagesTitle=='销售'" style="margin-top: 20px;"> <el-input style="width: 100%;" type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" v-model="msgParameter.Remark" :placeholder="$t('visaT.Orderremark')" /> </div> </div> </div> <el-row :gutter="20" style="margin-top: 20px;"> <el-col :span="24" style="text-align: right;"> <input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="ChangeOrderDialog = false" /> <input type="button" class="normalBtn" :value="$t('pub.sureBtn')" @click="submit2" /> </el-col> </el-row> </div> </el-dialog> <!-- op备注 --> <el-dialog custom-class='addCompany' :title="pagesTitle=='销售'?$t('objFill.bianjikehubz'):$t('objFill.bianjiopbz')" :visible.sync="isShowRemark" center width="400px"> <el-row class="flex" style="margin-top: 10px;"> <el-col> <span style="display: block;margin-bottom: 10px;">{{$t('fnc.beizhu')}}</span> <span> <el-input type="textarea" :rows="4" v-model="postMsg.Remark"> </el-input> </span> </el-col> </el-row> <div slot="footer" class="dialog-footer"> <button class="hollowFixedBtn" @click="isShowRemark = false">{{$t('pub.cancelBtn')}}</button> <button class="normalBtn" type="primary" @click="submitEditRemark">{{$t('pub.sureBtn')}}</button> </div> </el-dialog> <offset :isShow="cdState" :obj="queryObj" @close="cdState=false"></offset> <correlationOP :isShowCorrelation="isShowCorrelation" :CorrelationObj="CorrelationObj" @close="close" @success="success"></correlationOP> </div> </template> <script> import offset from '../../public/offset.vue'; import correlationOP from '../../Hotel/reservation/correlationOP.vue'; import commissionDialog from "../../FinancialModule/TradeCommission/commissionDialog" import ApplyFoInvoice from '../../public/ApplyFoInvoice'; export default { components: { offset, correlationOP, commissionDialog, ApplyFoInvoice }, props: ["OrderList", "pagesTitle"], data() { return { postMsg: { OrderId: 0, Type: 1, Remark: '' }, isShowRemark: false, queryObj: null, cdState: false, copyId: 0, CompletedLoading: false, multipleSelection: [], loading0: false, loading1: false, loading2: false, loading3: false, BillMakingMsg: { // PeroidsId: null, // Type: null, // EmpIds:'', OtherType: 61, ReFinanceId: "", ReFinanceId2: "" }, userInfo: {}, msg: { OrderId: "", LossMoney: 0, State: '', //状态 1确认 2已邮寄 3设置自提 4收损 SelffetchAddress: '' }, msgParameter: { IsUpdateMailing: 1, OrderId: 0, Money: 0.0, Remark: '', MailingState: '1', //邮寄状态 1自取 2邮寄 MailingAddress: '', //MailingState =2 填写邮寄 UseDate: '', //门票日期 Name: '', EName: '', Sex: '1', //1男2女 Birthday: '', Mobile: '', CouponsId: '', //景点id DetailList: [], }, rules2: { Name: [{ required: true, message: this.$t('rule.qsrzwm'), trigger: 'blur' }], EName: [{ required: true, message: this.$t('rule.qsrywm'), trigger: 'blur' }], Mobile: [{ required: true, message: this.$t('rule.EnterPNum'), trigger: "blur" }, { pattern: this.$commonUtils.Regex.el_ISphone, message: this.$t('rule.EnterRightNum') } ], MailingAddress: [{ required: true, message: this.$t('objFill.qinshuruyoujidz'), trigger: 'blur' }], MailingMoney: [{ required: true, message: this.$t('objFill.qinshuruyoujify'), trigger: "blur" }, ], }, outerVisible: false, rules: { State: [{ required: true, message: this.$t('objFill.qinxuanzhedindanzt'), trigger: "change" }], SelffetchAddress: [{ required: true, message: this.$t('objFill.qinshuruzitidz'), trigger: "blur" }], LossMoney: [{ required: true, message: this.$t('objFill.qinshurushoushunje'), trigger: "blur" }] }, cancelOrderDialog: false, cancelRemark: "", cancelOrderId: 0, uploadOrderId: 0, loading: false, fileList: [], GuestFile: '', ChangeOrderDialog: false, OrderStatusType: [{ Name: this.$t('OrderList.orderStatus.apply'), ID: '1' }, { Name: this.$t('OrderList.orderStatus.check'), ID: '2' }, { Name: this.$t('OrderList.orderStatus.cancel'), ID: '3' }, { Name: this.$t('OrderList.orderStatus.sun'), ID: '4' }, ], items: null, typeState: '', loadingDZP: false, uploadOrderId: 0, GuestFile: '', isShowCorrelation: false, CorrelationObj: {}, is_correlationOP: false }; }, watch: { pagesTitle(val, oldval) { this.pagesTitle = val }, OrderList: { handler(val, oldVal) { } } }, methods: { close() { this.isShowCorrelation = false this.CorrelationObj.TypeNum = null this.CorrelationObj.Money = null }, success() { this.close() this.$emit('success') }, clickCorrelation(item, type) { this.CorrelationObj = JSON.parse(JSON.stringify(item)) if (type == 2) { this.CorrelationObj.TypeNum = 4 //编辑总价 } else { this.CorrelationObj.TypeNum = 2 } this.isShowCorrelation = true }, isOffset(row, index, num) { this.makeAdocument(row, index, num, 'Offset') }, editRemark(item) { this.postMsg.OrderId = item.OrderId this.postMsg.Remark = this.pagesTitle == '销售' ? item.Remark : item.OPRemark this.isShowRemark = true }, selectable(row, index) { if (((this.OrderList[index].IsFinish != 1 && this.OrderList[index].Income > 0 && this.OrderList[index] .DueInMoney == 0) || (this.OrderList[index].Money == 0 && this.OrderList[index].Income == 0 && this.OrderList[index].CostMoney == 0 && this.OrderList[index].Refund == 0 && this.OrderList[index].PlatformTax == 0 && this.OrderList[index].IncomeList && this.OrderList[index].IncomeList.length > 0))) { return true; } else { return false; } }, handleSelectionChange(val) { this.multipleSelection = val.map(x => { return x.OrderId }); }, setCompleted(id, row) { let ids = '' if (id > 0) { ids = id } else { if (this.multipleSelection.length == 0) return this.$message.error(this.$t('objFill.qingouxuanwanjieshuju')) ids = this.multipleSelection.join(',') } if (ids == '') { this.$message.error(this.$t('objFill.qingouxuanwanjieshuju')) } this.$confirm(this.$t('objFill.shifouquedinwanjie'), this.$t('tips.tips'), { confirmButtonText: this.$t('pub.sureBtn'), cancelButtonText: this.$t('pub.cancelBtn'), type: 'warning' }).then(() => { if (id > 0) { row.loading = true } else { this.CompletedLoading = true } this.apipost('ticket_post_SetTicketOrderFinish', { TticketOrderIds: ids }, res => { if (res.data.resultCode == 1) { if (id > 0) { row.loading = false } else { this.CompletedLoading = false } for (let i = 0; i < this.OrderList.length; i++) { this.$refs.multipleTable.toggleRowSelection( this.OrderList[i], false ); } this.multipleSelection = [] this.$message.success(this.$t('tips.czchenggong')); this.$emit('success') } else { if (id > 0) { row.loading = false } else { this.CompletedLoading = false } this.$message.error(res.data.message); } }, err => {}) }).catch(() => { this.$message.info(`${this.$t('OrderList.orderStatus.cancel')}!`); }); }, submitEditRemark() { if (!this.postMsg.Remark) { this.$message.error(this.$t('objFill.opbeizhunonull')); return } this.apipost('ticket_post_SetTicketOrderRemark', { OrderId: this.postMsg.OrderId, Type: this.pagesTitle == '销售' ? 1 : 2, Remark: this.postMsg.Remark }, res => { if (res.data.resultCode == 1) { this.isShowRemark = false this.$emit('success') this.$forceUpdate(); } else { this.Error(res.data.message); } }) }, submit2() { if (this.loading3) return this.$refs['msgParameter'].validate((valid) => { if (valid) { this.setFormMsg2() } else { return false; } }); }, setFormMsg2() { if (this.msgParameter.MailingState == '1') { this.msgParameter.MailingAddress = '' } let m let url if (this.pagesTitle == 'OP') { m = { OrderId: this.msgParameter.OrderId, MailingMoney: this.msgParameter.MailingMoney, MailingState: this.msgParameter.MailingState, //邮寄状态 1自取 2邮寄 MailingAddress: this.msgParameter.MailingAddress, //MailingState =2 填写邮寄 SelffetchAddress: this.msgParameter.SelffetchAddress, //自取地址 Name: this.msgParameter.Name, EName: this.msgParameter.EName, Sex: this.msgParameter.Sex, //1男2女 Mobile: this.msgParameter.Mobile, } url = 'dict_post_SetTicketOrderMailingState' } if (this.pagesTitle == '销售') { m = { IsUpdateMailing: 1, OrderId: this.msgParameter.OrderId, CouponsId: this.msgParameter.CouponsId, Money: this.msgParameter.Money, UseDate: this.msgParameter.UseDate, Birthday: this.msgParameter.Birthday, DetailList: this.msgParameter.DetailList, MailingState: this.msgParameter.MailingState, //邮寄状态 1自取 2邮寄 MailingAddress: this.msgParameter.MailingAddress, //MailingState =2 填写邮寄 Name: this.msgParameter.Name, EName: this.msgParameter.EName, Sex: this.msgParameter.Sex, //1男2女 Mobile: this.msgParameter.Mobile, Remark: this.msgParameter.Remark, } url = 'ticket_post_SetSaleTicketOrder' } this.loading3 = true this.apipost(url, m, res => { this.loading3 = false if (res.data.resultCode == 1) { this.Success(`${this.pagesTitle=='销售'?this.$t('objFill.biangendindan'):this.$t('objFill.bianjiqupiaofs')}${this.$t('objFill.chenggong')}`); this.$emit('success') this.ChangeOrderDialog = false } else { this.Error(`${this.pagesTitle=='销售'?this.$t('objFill.biangendindan'):this.$t('objFill.bianjiqupiaofs')}${this.$t('objFill.shibai')}`) } }, err => { this.loading3 = false this.Error(err.message) }); }, uploadFileBtn(file) { let ft = file.file.name.substring(file.file.name.lastIndexOf('.') + 1, file.file.name.length).toUpperCase(); let typeOk = false; let FileName = file.file.name.substring(0, file.file.name.lastIndexOf(".")) let newArr = []; newArr.push(file.file) let path = "/Upload/Temporary/" this.$message.info(this.$t('tips.shangchuanzhong')) this.UploadSelfFileT(path, newArr, x => { this.GuestFile = this.domainManager().ViittoFileUrl + x.data.FilePath this.uploadHandleChange() }, 1); }, // 上传电子券 uploadHandleChange() { if (this.loading) return let msg = { OrderId: this.uploadOrderId, TicketCodeFile: this.GuestFile } this.loading = true this.apipost( "ticket_post_SetTicketCodeFile", msg, res => { this.loading = false; if (res.data.resultCode == 1) { this.Success(res.data.message); this.uploadOrderId = 0 this.GuestFile = '' this.$emit("success"); } else { this.Error(res.data.message); } }, err => { this.loading = false; } ); }, // 单据详情 openDetails(item,x) { let query = { id: item.FrID ? item.FrID : item.ID, blank: "y", }; // 跳转发票详情页面 if(x){ this.$router.push({ name: "invoicesManagerDetail", query: { id: item.FrID ? item.FrID : item.ID, InvoiceApplyType: 7, blank: "y", }, }); }else{ this.$router.push({ path: "/FinancialDocumentsDetail", query }); } }, // 制作单据 makeAdocument(row, index, num, Offset) { if ((num == 2 || num == 3) && (row.Income+row.PlatformMoney) <= 0) { this.Info(this.$t('objFill.qinxianzhidanzaizhicbtkdj')) return } if (Offset) { this.cdState = true } let type = 0 if (num == 3) { type = 2 } else { type = num } this.BillMakingMsg.ReFinanceId = row.OrderId; this.BillMakingMsg.ReFinanceId2 = num; this.BillMakingMsg.OtherType = 66; let text = ""; let query = {}; if (num == 1) { text = this.$t('fnc.shoukuan'); } else if (num == 2) { text = this.$t('fnc.fukuan'); } else if (num == 3) { text = this.$t('hotel.hotel_cost'); } query = { blank: "y", tab: `${this.$t('pub.addBtn')}${text}${this.$t('salesModule.Docments')}`, Type: type, tradeObj: JSON.stringify(this.BillMakingMsg), companyID:row.OutBranchId }; if (num == 2) { query.searchTitle = '溢收团费退款'; } else if (num == 3 && this.cdState == false) { query.portTypeId = 6; } this.queryObj = query if (!Offset) { this.$store.commit("ChoiceAddFinancialDocuments"); this.$router.push({ path: "/ChoiceAddFinancialDocuments", query }); } }, // 订单明细 goRoomDetails(obj, title) { var path if (title === '订房详情') { path = "roomReservationsDetails"; if (this.userInfo.RB_Group_id == 91) { path = "roomReservationsDetails_swt"; } this.$router.push({ name: path, query: { id: obj.OrderId, OrderType: 1, blank: "y", tab: title } }); } else { //变更门票预定 this.msgParameter = JSON.parse(JSON.stringify(obj)) this.msgParameter.MailingState = JSON.stringify(this.msgParameter.MailingState) this.msgParameter.Sex = JSON.stringify(this.msgParameter.Sex) this.ChangeOrderDialog = true // 获取自取地址 this.GetTicketCouponsInfo() } }, GetTicketCouponsInfo() { this.apipost('ticket_post_GetTicketCouponsInfo', { CouponsId: this.msgParameter.CouponsId, OpenTime: this.msgParameter.UseDate, }, res => { this.loading3 = false if (res.data.resultCode == 1) { this.msgParameter.SelffetchAddress = res.data.data.SelffetchAddress let arr = res.data.data.TicketPriceList.sort((a, b) => { return a.MailingMoney - b.MailingMoney }) this.msgParameter.MailingMoney = this.msgParameter.MailingMoney ? this.msgParameter.MailingMoney : arr[ 0].MailingMoney } }, err => { this.Error(err.message) }) }, clickRightButtom(item, type) { // 0取消订单 1确认订单 2已邮寄 3设置自提地址 4收损 this.msg.OrderId = item.OrderId; this.msg.SelffetchAddress = item.SelffetchAddress this.items = item this.typeState = type if (type == 0) { if (!this.loading0) { this.cancelOrderId = item.OrderId // 销售 OP if (this.pagesTitle != '销售') { this.cancelOrderDialog = true; } else { this.cancelOrderHandler() } } } else if (type == 1) { if (!this.loading1) { this.confirmFun(item, type); } } else if (type == 2) { if (!this.loading1) { this.confirmFun(item, type); } } else if (type == 3) { if (!this.loading1) { this.outerVisible = true; } } else if (type == 4) { if (!this.loading2) { this.outerVisible = true; this.msg.LossMoney = item.LossMoney ? item.LossMoney : 0; } } }, // 销售取消订单 cancelOrder() { let that = this if (this.loading0) return; that.$confirm(this.$t('objFill.shifouquxiaodd'), this.$t('tips.tips'), { confirmButtonText: this.$t('pub.sureBtn'), cancelButtonText: this.$t('pub.cancelBtn'), type: 'warning' }).then(() => { this.loading0 = true this.apipost("ticket_post_CancelSaleTicketOrder", { OrderId: this.cancelOrderId, IsOPCancel: this.pagesTitle != '销售' ? 1 : 0, Remark: this.cancelRemark }, res => { this.loading0 = false if (res.data.resultCode == 1) { this.Success(res.data.message); this.$emit("success"); } else { this.Error(res.data.message); } }).catch(err => { this.Error(err.message) this.loading0 = false }) }).catch(() => { this.loading0 = false }) }, //提交 submitForm(msg) { //提交创建、修改表单 this.$refs[msg].validate(valid => { if (valid) { if (!this.loading2) { this.saveUpdate(); } } else { // this.Error("请完成必填项"); return false; } }); }, cancelOrderHandler() { if (this.cancelRemark == "" && this.pagesTitle != '销售') { this.Error(this.$t('objFill.quxiaodindanyy')); return; } if (this.loading0) return; this.loading0 = true this.apipost( "ticket_post_CancelSaleTicketOrder", { OrderId: this.cancelOrderId, IsOPCancel: this.pagesTitle != '销售' ? 1 : 0, Remark: this.pagesTitle != '销售' ? this.cancelRemark : '' }, res => { if (res.data.resultCode == 1) { this.Success(res.data.message); this.cancelOrderDialog = false this.cancelOrderId = 0 this.cancelRemark = '' this.$emit("success"); } else { this.Error(res.data.message); } this.loading0 = false; }, err => { this.loading0 = false; } ); }, saveUpdate() { let text if (this.typeState == 3) { text = this.$t('objFill.shifoushezhiziqudz') } if (this.typeState == 4) { text = this.$t('objFill.shifouquedinss') } this.$confirm(text, this.$t('tips.tips'), { confirmButtonText: this.$t('pub.sureBtn'), cancelButtonText: this.$t('pub.cancelBtn'), type: "warning" }) .then(() => { this.loading2 = true; this.apipost( "ticket_post_SetSaleTicketOrderState", { OrderId: this.msg.OrderId, State: this.typeState, SelffetchAddress: this.typeState == 3 ? this.msg.SelffetchAddress : '', LossMoney: this.typeState == 4 ? this.msg.LossMoney : '', }, res => { if (res.data.resultCode == 1) { this.Success(res.data.message); this.$emit("success"); } else { this.Error(res.data.message); } this.loading2 = false; this.outerVisible = false; }, err => { (this.loading2 = false), (this.outerVisible = false); } ); }) .catch(() => {}); }, confirmFun(item, type) { let text if (type == 1) { text = this.$t('objFill.shifuquediandd') } if (type == 2) { text = this.$t('objFill.shifouquerenyouji') } this.$confirm(text, this.$t('tips.tips'), { confirmButtonText: this.$t('pub.sureBtn'), cancelButtonText: this.$t('pub.cancelBtn'), type: "warning" }) .then(() => { this.loading1 = true; this.apipost( "ticket_post_SetSaleTicketOrderState", { OrderId: item.OrderId, State: type, SelffetchAddress: type == 3 ? this.msg.SelffetchAddress : '', LossMoney: type == 4 ? this.msg.LossMoney : '', }, res => { if (res.data.resultCode == 1) { this.Success(res.data.message); this.$emit("success"); } else { this.Error(res.data.message); } this.loading1 = false; }, err => { this.loading1 = false; } ); }) .catch(() => { this.$message.info(`${this.$t('OrderList.orderStatus.cancel')}!`); }); }, //复制信息 CopyHandler(item) { this.copyId = item.OrderId; let copyText = item.OrderId; const save = function (e) { e.clipboardData.setData('text/plain', copyText) e.preventDefault() // 阻止默认行为 } document.addEventListener('copy', save) // 添加一个copy事件 let x = document.execCommand('copy') // 执行copy方法 setTimeout(() => { this.copyId = 0; }, 2000); }, setEdate() { return this.addMoth(new Date().Format("yyyy-MM-dd"), 1); }, addMoth(d, m) { let ds = d.split("-"), _d = ds[2] - 0; let nextM = new Date(ds[0], ds[1] - 1 + m + 1, 0); let max = nextM.getDate(); d = new Date(ds[0], ds[1] - 1 + m, _d > max ? max : _d); return d .toLocaleDateString() .match(/\d+/g) .join("-"); }, com_onresize() { //clientHeight的值由DIV内容的实际高度和CSS中的padding值决定, var contentsHeight = document.body.clientHeight; var h = contentsHeight - 50 - 180 - 40; if (h < 110) { return; } //设置table的行高 // this.tableHeight = h; } }, mounted() { this.userInfo = this.getLocalStorage(); let ActionMenuCode = this.userInfo.ActionMenuCode; if (ActionMenuCode.indexOf('is_correlationOP') != -1) { this.is_correlationOP = true } //自适应高度调节 this.com_onresize(); window.onresize = () => { this.com_onresize(); }; } }; </script> <style> </style>