456 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Vue
		
	
	
	
		
		
			
		
	
	
			456 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Vue
		
	
	
	
|  | <!-- | |||
|  |  * @Descripttion: 财务管理 - 在线支付明细 | |||
|  |  * @version: | |||
|  |  * @Author: kBank | |||
|  |  * @Date: 2022-10-24 15:45:01 | |||
|  | --> | |||
|  | <template> | |||
|  |   <div class="page"> | |||
|  |     <topBar v-if="topList.length > 0" | |||
|  |             :topList="topList" | |||
|  |             :moren="moren"></topBar> | |||
|  |     <div class="main"> | |||
|  |       <el-form ref="select" | |||
|  |                :model="select" | |||
|  |                style="background-color: #fff" | |||
|  |                label-width="100px"> | |||
|  |         <el-row> | |||
|  |           <!-- 一层 --> | |||
|  |           <el-col :span="4"> | |||
|  |             <el-form-item :label="$t('MN_T_1')"> | |||
|  |               <el-input clearable | |||
|  |                         v-model="select.memberCode"></el-input> | |||
|  |             </el-form-item> | |||
|  |           </el-col> | |||
|  |           <el-col :span="4"> | |||
|  |             <el-form-item :label="$t('CK_KS_14')"> | |||
|  |               <el-input clearable | |||
|  |                         v-model="select.memberName"></el-input> | |||
|  |             </el-form-item> | |||
|  |           </el-col> | |||
|  |           <el-col :span="4"> | |||
|  |             <el-form-item :label="$t('w_0297')"> | |||
|  |               <el-input clearable | |||
|  |                         v-model="select.businessMoney"></el-input> | |||
|  |             </el-form-item> | |||
|  |           </el-col> | |||
|  |           <el-col :span="4"> | |||
|  |             <el-form-item :label="$t('N_I_163')"> | |||
|  |               <el-select clearable | |||
|  |                          :placeholder="$t('CK_KS_38')" | |||
|  |                          v-model="select.businessType"> | |||
|  |                 <el-option v-for="item in tradeTypeList" | |||
|  |                            :key="item.value" | |||
|  |                            :label="item.label" | |||
|  |                            :value="item.value"></el-option> | |||
|  |               </el-select> | |||
|  |             </el-form-item> | |||
|  |           </el-col> | |||
|  |           <el-col :span="4"> | |||
|  |             <el-form-item :label="$t('MN_F_T_583')"> | |||
|  |               <el-select clearable | |||
|  |                          :placeholder="$t('CK_KS_38')" | |||
|  |                          v-model="select.payChannel"> | |||
|  |                 <el-option v-for="item in channelList" | |||
|  |                            :key="item.value" | |||
|  |                            :label="item.label" | |||
|  |                            :value="item.value"></el-option> | |||
|  |               </el-select> | |||
|  |             </el-form-item> | |||
|  |           </el-col> | |||
|  |           <el-col :span="4"> | |||
|  |             <el-form-item :label="$t('w_0215')"> | |||
|  |               <el-select clearable | |||
|  |                          :placeholder="$t('CK_KS_38')" | |||
|  |                          v-model="select.payType"> | |||
|  |                 <el-option v-for="item in peyTypeList" | |||
|  |                            :key="item.value" | |||
|  |                            :label="item.label" | |||
|  |                            :value="item.value"></el-option> | |||
|  |               </el-select> | |||
|  |             </el-form-item> | |||
|  |           </el-col> | |||
|  |           <el-col :span="4"> | |||
|  |             <el-form-item :label="$t('MN_F_T_584')"> | |||
|  |               <el-select clearable | |||
|  |                          :placeholder="$t('CK_KS_38')" | |||
|  |                          v-model="select.payStatus"> | |||
|  |                 <el-option v-for="item in statusList" | |||
|  |                            :key="item.value" | |||
|  |                            :label="item.label" | |||
|  |                            :value="item.value"></el-option> | |||
|  |               </el-select> | |||
|  |             </el-form-item> | |||
|  |           </el-col> | |||
|  |           <el-col :span="4"> | |||
|  |             <el-form-item :label="$t('w_0296')"> | |||
|  |               <el-input clearable | |||
|  |                         v-model="select.businessCode"></el-input> | |||
|  |             </el-form-item> | |||
|  |           </el-col> | |||
|  |           <el-col :span="8"> | |||
|  |             <el-form-item :label="$t('w_0470')"> | |||
|  |               <el-date-picker v-model="select.creationTime" | |||
|  |                               value-format="yyyy-MM-dd" | |||
|  |                               type="daterange" | |||
|  |                               :range-separator="$t('w_0139')" | |||
|  |                               :start-placeholder="$t('CK_KS_4')" | |||
|  |                               :end-placeholder="$t('CK_KS_5')"> | |||
|  |               </el-date-picker> | |||
|  |             </el-form-item> | |||
|  |           </el-col> | |||
|  |           <el-col :span="8"> | |||
|  |             <el-form-item :label="$t('MN_F_T_914')"> | |||
|  |               <el-date-picker v-model="select.payTime" | |||
|  |                               @change="changeTime1" | |||
|  |                               value-format="yyyy-MM-dd" | |||
|  |                               type="daterange" | |||
|  |                               :range-separator="$t('w_0139')" | |||
|  |                               :start-placeholder="$t('CK_KS_4')" | |||
|  |                               :end-placeholder="$t('CK_KS_5')"> | |||
|  |               </el-date-picker> | |||
|  |             </el-form-item> | |||
|  |           </el-col> | |||
|  |           <el-col :span="4"> | |||
|  |             <el-button class="my_search" | |||
|  |                        style="margin-left: 30px" | |||
|  |                        @click="getDataList"> {{ $t('MN_T_2') }}</el-button> | |||
|  |             <el-button class="my_reset" @click="reset"> {{ $t('MN_T_3') }}</el-button> | |||
|  |           </el-col> | |||
|  |         </el-row> | |||
|  |       </el-form> | |||
|  |       <div class="maintop"> | |||
|  |         <div class="mainbtn"> | |||
|  |           <el-button size="small" | |||
|  |                      @click="handleExport" | |||
|  |                      v-has-buttons="['OnlinePayDetailsExport']" | |||
|  |                      class="thebtn2"> {{ $t('MN_T_8') }}</el-button> | |||
|  |         </div> | |||
|  |       </div> | |||
|  |       <div class="maintable"> | |||
|  |         <el-table :data="tableData" | |||
|  |                   height="640px" | |||
|  |                   style="width: 100%" | |||
|  |                   :header-cell-style="{ background: '#EEEEEE' }" | |||
|  |                   :row-class-name="tableRowClassName" | |||
|  |                   @selection-change="handleSelectionChange"> | |||
|  |           <el-table-column type="selection" | |||
|  |                            width="55"> </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="title" | |||
|  |                            :label="$t('S_C_83')"> | |||
|  |             <template slot-scope="scope"> | |||
|  |               <div class="tem"> | |||
|  |                 <img :src="scope.row.pkCountryIcon" | |||
|  |                      alt="" /> | |||
|  |                 <!-- <div>{{ scope.row.pkCountryName }}</div> --> | |||
|  |               </div> | |||
|  |             </template>  | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="memberCode" | |||
|  |                            :label="$t('MN_T_1')" | |||
|  |                            width="150"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="memberName" | |||
|  |                            :label="$t('CK_KS_14')"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="businessTypeVal" | |||
|  |                            :label="$t('N_I_163')"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="businessMoney" | |||
|  |                            :formatter="stateFormat" | |||
|  |                             :label="$t('w_0297')+`(${isLocalSymbol()})`" | |||
|  |                            width="150"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="payMoney" | |||
|  |                            :formatter="stateFormat" | |||
|  |                            label="实际支付金额(¥)" | |||
|  |                            width="150"> | |||
|  |           </el-table-column> | |||
|  |           <!-- <el-table-column align="center" | |||
|  |                            prop="payMoney" | |||
|  |                            :formatter="stateFormat" | |||
|  |                             :label="$t('w_0297')+`(${isLocals()})`" width="150"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            :formatter="stateFormat" | |||
|  |                            prop="settleTradeBalance" | |||
|  |                            label="实际支付金额($)" width="150"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="exchangeRate" | |||
|  |                             :label="$t('MN_F_T_556')"> | |||
|  |           </el-table-column> --> | |||
|  | 
 | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="payChannelVal" | |||
|  |                            :label="$t('MN_F_T_583')"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="payTypeVal" | |||
|  |                            :label="$t('w_0215')"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="payStatusVal" | |||
|  |                            :label="$t('MN_F_T_584')"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="creationTime" | |||
|  |                            :label="$t('w_0470')" | |||
|  |                            width="200"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="payTime" | |||
|  |                            :label="$t('MN_F_T_914')" | |||
|  |                            width="200"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="businessCode" | |||
|  |                            min-width="180px" | |||
|  |                            :label="$t('w_0296')"> | |||
|  |           </el-table-column> | |||
|  |           <el-table-column align="center" | |||
|  |                            prop="time" | |||
|  |                            :label="$t('MY_ORD_14')" | |||
|  |                            fixed="right"> | |||
|  |             <template slot-scope="scope"> | |||
|  |               <el-button @click="toFixed(scope.row.pkId)" | |||
|  |                          style="color: #ffad41" | |||
|  |                          type="text" | |||
|  |                          size="small"> | |||
|  |                 {{ $t('MN_T_8') }} | |||
|  |               </el-button> | |||
|  |             </template> | |||
|  |           </el-table-column> | |||
|  |         </el-table> | |||
|  |       </div> | |||
|  |     </div> | |||
|  |     <pagination v-show="total>0" | |||
|  |                 :total="total" | |||
|  |                 :page.sync="queryParams.pageNum" | |||
|  |                 :limit.sync="queryParams.pageSize" | |||
|  |                 @pagination="getDataList" /> | |||
|  |   </div> | |||
|  | </template> | |||
|  | 
 | |||
|  | <script> | |||
|  | import topBar from '@/components/topBar' | |||
|  | import * as api from '@/api/financialCase.js' | |||
|  | import { userCountryList } from '@/api/user' | |||
|  | 
 | |||
|  | export default { | |||
|  |   name: 'Bzpz', | |||
|  |   components: { | |||
|  |     topBar, | |||
|  |   }, | |||
|  |   filters: { | |||
|  |      isAgree(val) { | |||
|  |       if (!val) { | |||
|  |         return this.$t('ENU_POPUP_TYPE_1'); | |||
|  |       } else { | |||
|  |         return this.$t('ENU_POPUP_TYPE_2'); | |||
|  |       } | |||
|  |     }, | |||
|  |   }, | |||
|  |   data() { | |||
|  |     return { | |||
|  |       creationTime: [], | |||
|  |       select: {}, | |||
|  |       // 查询参数
 | |||
|  |       queryParams: { | |||
|  |         pageNum: 1, | |||
|  |         pageSize: 50, | |||
|  |       }, | |||
|  |       total: 0, | |||
|  |       dialogVisible: false, | |||
|  |       tableData: [], | |||
|  |       statusList: [], | |||
|  |       channelList: [], | |||
|  |       payTime: [], | |||
|  |       peyTypeList: [ | |||
|  |         { | |||
|  |           value: '1', | |||
|  |           label: this.$t('ENU_PAY_TY_1'), | |||
|  |         }, | |||
|  |         { | |||
|  |           value: '2', | |||
|  |           label: this.$t('ENU_PAY_TY_2'), | |||
|  |         }, | |||
|  |         { | |||
|  |           value: '3', | |||
|  |           label: this.$t('ENU_PAY_TY_3'), | |||
|  |         }, | |||
|  |       ], | |||
|  |       tradeTypeList: [], | |||
|  |       moren: 'onlinePayDetails', | |||
|  |       topList: [ | |||
|  |         { | |||
|  |           name: this.$t('MN_F_T_97'), | |||
|  |           path: 'onlinePayDetails', | |||
|  |         }, | |||
|  |       ], | |||
|  |       countryList: [], | |||
|  |     } | |||
|  |   }, | |||
|  |   mounted() { | |||
|  |     this.getCountry() | |||
|  |     // 获取下拉
 | |||
|  |     this.getData() | |||
|  |     // 获取列表
 | |||
|  |     this.getDataList() | |||
|  |   }, | |||
|  |   methods: { | |||
|  |     getData() { | |||
|  |       api.payChannel().then((res) => { | |||
|  |         this.channelList = res.data | |||
|  |       }) | |||
|  |       api.payStatus().then((res) => { | |||
|  |         this.statusList = res.data | |||
|  |       }) | |||
|  |       api.businessType().then((res) => { | |||
|  |         this.tradeTypeList = res.data | |||
|  |       }) | |||
|  |     }, | |||
|  |     changeTime(val) { | |||
|  |       // this.select.startDate = val[0]
 | |||
|  |       // this.select.endDate = val[1]
 | |||
|  |     }, | |||
|  |     changeTime1(val) { | |||
|  |       // this.select.startDate = val[0]
 | |||
|  |       // this.select.endDate = val[1]
 | |||
|  |     }, | |||
|  |     reset(){ | |||
|  |       this.select = {} | |||
|  |       this.getDataList() | |||
|  |     }, | |||
|  |     // 点击修改
 | |||
|  |     toFixed(id) {}, | |||
|  |     getCountry() { | |||
|  |       userCountryList().then((res) => { | |||
|  |         this.countryList = res.data | |||
|  |       }) | |||
|  |     }, | |||
|  |     getDataList() { | |||
|  |       api | |||
|  |         .onlineList(Object.assign({}, this.queryParams, this.select)) | |||
|  |         .then((res) => { | |||
|  |           res.rows.forEach((item) => { | |||
|  |             this.countryList.forEach((child) => { | |||
|  |               if (item.pkCountry == child.pkCountry) { | |||
|  |                 item.pkCountryName = child.name | |||
|  |                 item.pkCountryIcon = child.nationalFlag2 | |||
|  |               } | |||
|  |             }) | |||
|  |           }) | |||
|  |           this.tableData = res.rows | |||
|  |           this.total = res.total | |||
|  |         }) | |||
|  |     }, | |||
|  |     handleSelectionChange(val) {}, | |||
|  |     /** 导出按钮操作 */ | |||
|  |     handleExport() { | |||
|  |       this.$confirm( this.$t('MN_F_T_407'), this.$t('MN_F_T_304'), { | |||
|  |         confirmButtonText: this.$t('w_0035'), | |||
|  |         cancelButtonText: this.$t('ENU_P_TYPE0'), | |||
|  |         type: 'warning', | |||
|  |       }).then((_) => { | |||
|  |         this.download( | |||
|  |           '/pay/manage/online-payment/export', | |||
|  |           Object.assign({}, this.queryParams, this.select), | |||
|  |           `${this.$t('MN_F_T_97')}${new Date().getTime()}.xlsx` | |||
|  |         ) | |||
|  |       }) | |||
|  |     }, | |||
|  |     tableRowClassName({ row, rowIndex }) { | |||
|  |       if (rowIndex % 2 == 1) { | |||
|  |         return 'warning-row' | |||
|  |       } else if (rowIndex % 2 == 0) { | |||
|  |         return 'success-row' | |||
|  |       } | |||
|  |       return '' | |||
|  |     }, | |||
|  |   }, | |||
|  | } | |||
|  | </script> | |||
|  | <style scoped lang="scss"> | |||
|  | ::v-deep .el-range-editor.el-input__inner { | |||
|  |   width: 100%; | |||
|  | } | |||
|  | ::v-deep .el-table .warning-row { | |||
|  |   background: #f9f9f9; | |||
|  | } | |||
|  | 
 | |||
|  | ::v-deep .el-table .success-row { | |||
|  |   background: #ffffff; | |||
|  | } | |||
|  | ::v-deep .el-table thead { | |||
|  |   color: #000000; | |||
|  | } | |||
|  | ::v-deep .el-select { | |||
|  |   width: 100%; | |||
|  | } | |||
|  | .uploadIcon ::v-deep .el-upload--picture-card { | |||
|  |   display: none !important; /* 上传按钮隐藏 */ | |||
|  | } | |||
|  | .page { | |||
|  |   padding: 20px; | |||
|  |   background: #f9f9f9; | |||
|  |   font-size: 14px; | |||
|  |   .main { | |||
|  |     background: #f9f9f9; | |||
|  |     //border-radius: 8px;
 | |||
|  |     //box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
 | |||
|  |     .maintop { | |||
|  |       display: flex; | |||
|  |       padding: 0px 0; | |||
|  |       justify-content: space-between; | |||
|  |       align-items: center; | |||
|  |       .mainbtn { | |||
|  |         .thebtn1 { | |||
|  |           background: #3181e5; | |||
|  |           color: #ffffff; | |||
|  |         } | |||
|  |         .thebtn2 { | |||
|  |           background: #ffad41; | |||
|  |           color: #ffffff; | |||
|  |           width: 68px; | |||
|  |           height: 32px; | |||
|  |         } | |||
|  |       } | |||
|  |       .maintitle { | |||
|  |         font-size: 10px; | |||
|  |         font-family: MicrosoftYaHei; | |||
|  |         color: #999999; | |||
|  |       } | |||
|  |     } | |||
|  |   } | |||
|  |   .tem { | |||
|  |     img { | |||
|  |       width: 28px; | |||
|  |       height: 20px; | |||
|  |       margin-right: 3px; | |||
|  |     } | |||
|  |   } | |||
|  |   .isRed { | |||
|  |     color: #ed1d25; | |||
|  |   } | |||
|  |   .isGreen { | |||
|  |     color: #1ab62b; | |||
|  |   } | |||
|  |   .bgImg { | |||
|  |     width: 48px; | |||
|  |     height: 48px; | |||
|  |   } | |||
|  | } | |||
|  | .openClose { | |||
|  |   text-align: right; | |||
|  |   margin-right: 10px; | |||
|  |   color: #3181e5; | |||
|  | } | |||
|  | </style> |