413 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Vue
		
	
	
	
		
		
			
		
	
	
			413 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Vue
		
	
	
	
|  | <template> | ||
|  |   <div class="page"> | ||
|  |     <topBar | ||
|  |       v-if="topList.length > 0" | ||
|  |       :topList="topList" | ||
|  |       :moren="moren" | ||
|  |     ></topBar> | ||
|  |     <div class="main"> | ||
|  |       <div class="form_all"> | ||
|  |         <el-form ref="select" :model="select" label-width="auto"> | ||
|  |           <el-row :gutter="10"> | ||
|  |             <el-col :span="4"> | ||
|  |               <el-form-item :label="$t('MN_T_1')" prop="memberCode"> | ||
|  |                 <el-input | ||
|  |                   clearable | ||
|  |                   v-model="select.memberCode" | ||
|  |                   :placeholder="$t('S_C_70')" | ||
|  |                 ></el-input> | ||
|  |               </el-form-item> | ||
|  |             </el-col> | ||
|  |             <el-col :span="4"> | ||
|  |               <el-form-item :label="$t('w_0296')" prop="sourceCode"> | ||
|  |                 <el-input | ||
|  |                   clearable | ||
|  |                   v-model="select.sourceCode" | ||
|  |                   :placeholder="$t('S_C_70')" | ||
|  |                 ></el-input> | ||
|  |               </el-form-item> | ||
|  |             </el-col> | ||
|  |             <el-col :span="4"> | ||
|  |               <el-form-item :label="$t('N_I_163')" prop="orderType"> | ||
|  |                 <el-select clearable v-model="select.tradeType"> | ||
|  |                   <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_535')" prop="pkAccount"> | ||
|  |                 <el-select clearable v-model="select.pkAccount"> | ||
|  |                   <el-option | ||
|  |                     v-for="item in accountTypeList" | ||
|  |                     :key="item.pkId" | ||
|  |                     :label="item.accountName" | ||
|  |                     :value="item.pkId" | ||
|  |                   ></el-option> | ||
|  |                 </el-select> | ||
|  |               </el-form-item> | ||
|  |             </el-col> | ||
|  |             <el-col :span="4"> | ||
|  |               <el-form-item label="伞下类型" prop="treeType"> | ||
|  |                 <el-select clearable v-model="select.treeType"> | ||
|  |                   <el-option | ||
|  |                     v-for="item in treeTypeList" | ||
|  |                     :key="item.value" | ||
|  |                     :label="item.label" | ||
|  |                     :value="item.value" | ||
|  |                   ></el-option> | ||
|  |                 </el-select> | ||
|  |               </el-form-item> | ||
|  |             </el-col> | ||
|  |             <el-col :span="6"> | ||
|  |               <el-form-item :label="$t('w_0441')"> | ||
|  |                 <el-date-picker | ||
|  |                   v-model="creationTime" | ||
|  |                   @change="changeTime" | ||
|  |                   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 type="primary" @click="getDataList"> | ||
|  |                 {{ $t("MN_T_2") }}</el-button | ||
|  |               > | ||
|  |               <el-button type="" @click="reset"> {{ $t("MN_T_3") }}</el-button> | ||
|  |             </el-col> | ||
|  |           </el-row> | ||
|  |         </el-form> | ||
|  |       </div> | ||
|  |       <div class="maintop"> | ||
|  |         <div class="mainbtn"> | ||
|  |           <el-button | ||
|  |             size="small" | ||
|  |             @click="handleExport" | ||
|  |             v-hasButtons="['umbrellaWalletDetailExport']" | ||
|  |             style="background-color: #ffad41" | ||
|  |             class="thebtn1" | ||
|  |           > | ||
|  |             {{ $t("MN_T_8") }}</el-button | ||
|  |           > | ||
|  |         </div> | ||
|  |       </div> | ||
|  |       <div class="maintable"> | ||
|  |         <el-table | ||
|  |           :data="tableData" | ||
|  |           v-loading="loading" | ||
|  |           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="memberCode" | ||
|  |             :label="$t('MN_T_1')" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  | 
 | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="memberName" | ||
|  |             :label="$t('CK_KS_14')" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="vertexName" | ||
|  |             :label="$t('MN_F_T_829')" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="teamName" | ||
|  |             :label="$t('MN_F_T_122')" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="pkAccountVal" | ||
|  |             :label="$t('MN_F_T_535')" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="tradeTypeVal" | ||
|  |             :label="$t('N_I_163')" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="tradeAmount" | ||
|  |             :label="`${$t('w_0297')}(${isLocalSymbol()})`" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="settleTradeAmount" | ||
|  |             :label="`${$t('w_0297')}($)`" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |            | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="tradeBalance" | ||
|  |             :label="`${$t('w_0298')}(${isLocalSymbol()})`" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="settleTradeBalance" | ||
|  |             :label="`${$t('w_0298')}($)`" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="remarks" | ||
|  |             :label="$t('MN_F_T_602')" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="sourceCode" | ||
|  |             :label="$t('w_0296')" | ||
|  |             min-width="140px" | ||
|  |           > | ||
|  |           </el-table-column> | ||
|  |           <el-table-column | ||
|  |             align="center" | ||
|  |             prop="creationTime" | ||
|  |             :label="$t('w_0441')" | ||
|  |             min-width="120px" | ||
|  |           > | ||
|  |           </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/statistics.js"; | ||
|  | import * as fin from "@/api/financialCase.js"; | ||
|  | import { isLocals, isLocalSymbol } from '@/utils/numberToCurrency' | ||
|  | export default { | ||
|  |   name: "UmbrellaWalletDetail", | ||
|  |   components: { | ||
|  |     topBar, | ||
|  |   }, | ||
|  |   data() { | ||
|  |      | ||
|  |     return { | ||
|  |       select: { | ||
|  |         treeType:2 | ||
|  |       }, | ||
|  |       // 查询参数
 | ||
|  |       queryParams: { | ||
|  |         pageNum: 1, | ||
|  |         pageSize: 50, | ||
|  |       }, | ||
|  |       total: 0, | ||
|  |       tableData: [], | ||
|  |       loading:false, | ||
|  |       moren: "umbrellaWalletDetail", | ||
|  |       topList: [ | ||
|  |         { | ||
|  |           name: "伞下钱包明细", | ||
|  |           path: "umbrellaWalletDetail", | ||
|  |         }, | ||
|  |       ], | ||
|  |       creationTime: [], | ||
|  |       accountTypeList: [], | ||
|  |       tradeTypeList: [], | ||
|  |       treeTypeList: [], | ||
|  |     }; | ||
|  |   }, | ||
|  |   mounted() { | ||
|  |     this.getOthers(); | ||
|  |     // 获取列表
 | ||
|  |     this.getDataList(); | ||
|  |   }, | ||
|  |   methods: { | ||
|  |     isLocalSymbol, | ||
|  |     getOthers() { | ||
|  |       fin.pkBdAccountList().then((res) => { | ||
|  |         this.accountTypeList = res.rows; | ||
|  |       }); | ||
|  |       fin.getTradeType().then((res) => { | ||
|  |         this.tradeTypeList = res.data; | ||
|  |       }); | ||
|  |       fin.getTreeType().then((res) => { | ||
|  |         this.treeTypeList = res.data; | ||
|  |       }); | ||
|  |     }, | ||
|  | 
 | ||
|  |     reset() { | ||
|  |       this.select = { | ||
|  |         treeType:2 | ||
|  |       }; | ||
|  |       this.creationTime = []; | ||
|  |       this.queryParams = { | ||
|  |         pageNum: 1, | ||
|  |         pageSize: 50, | ||
|  |       }; | ||
|  |     }, | ||
|  |     changeTime(val) { | ||
|  |       this.select.startDate = val ? val[0] : ""; | ||
|  |       this.select.endDate = val ? val[1] : ""; | ||
|  |     }, | ||
|  |     getDataList() { | ||
|  |       this.loading = true | ||
|  |       api | ||
|  |         .getUmbrellaWalletDetailList( | ||
|  |           Object.assign({}, this.queryParams, this.select) | ||
|  |         ) | ||
|  |         .then((res) => { | ||
|  |           this.tableData = res.rows; | ||
|  |           this.total = res.total; | ||
|  |           this.loading = false | ||
|  |         }); | ||
|  |     }, | ||
|  | 
 | ||
|  |     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( | ||
|  |           "/report/manager/wallet/detail-export", | ||
|  |           Object.assign({}, this.queryParams, this.select), | ||
|  |           `伞下钱包明细${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-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: #ffffff; | ||
|  |     border-radius: 8px; | ||
|  |     box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5); | ||
|  |     .form_all { | ||
|  |       padding: 0px 20px 0 20px; | ||
|  |       // margin-bottom: 20px;
 | ||
|  |       background: #fff; | ||
|  |       border-radius: 8px; | ||
|  |     } | ||
|  |     .maintop { | ||
|  |       display: flex; | ||
|  |       padding: 0px 0px; | ||
|  |       justify-content: space-between; | ||
|  |       align-items: center; | ||
|  | 
 | ||
|  |       background: #f8f8f8; | ||
|  |       .mainbtn { | ||
|  |         .thebtn1 { | ||
|  |           background: #3181e5; | ||
|  |           color: #ffffff; | ||
|  |         } | ||
|  |         .thebtn2 { | ||
|  |           background: #ffad41; | ||
|  |           color: #ffffff; | ||
|  |         } | ||
|  |       } | ||
|  |       .maintitle { | ||
|  |         font-size: 10px; | ||
|  |         font-family: MicrosoftYaHei; | ||
|  |         color: #999999; | ||
|  |       } | ||
|  |     } | ||
|  |   } | ||
|  |   .tem { | ||
|  |     display: flex; | ||
|  |     align-items: center; | ||
|  |     justify-content: center; | ||
|  |     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; | ||
|  | } | ||
|  | .dizhi { | ||
|  |   ::v-deep .el-cascader { | ||
|  |     width: 100%; | ||
|  |   } | ||
|  | } | ||
|  | ::v-deep .el-date-editor.el-input, | ||
|  | .el-date-editor.el-input__inner { | ||
|  |   width: auto; | ||
|  | } | ||
|  | .lan { | ||
|  |   text-decoration: underline; | ||
|  |   color: #48b2fd; | ||
|  |   cursor: pointer; | ||
|  | } | ||
|  | </style> | ||
|  |          |