Prechádzať zdrojové kódy

Merge branch 'pansl' into psl_videoAndcharge

pansl 1 rok pred
rodič
commit
edc1747165

+ 10 - 1
src/api/settlement/index.ts

@@ -102,6 +102,15 @@ export function jiesuanManageFinanceCheckRemit(params: object) {
 export function jiesuanShenheList(params?: object) {
   return http.get('jiesuanManage/verify/list', params);
 }
+
 export function jiusanBankCardVerify(params?: object) {
   return http.post('jiesuanManage/verify/check', params);
-}
+}
+
+// 结算-提现列表-上传发票
+export function jiesuanManageJiesuanUpdateTicket(
+  id: string | number,
+  params?: object
+) {
+  return http.post(`/jiesuanManage/jiesuan/updateTicket/${id}`, params);
+}

+ 10 - 7
src/views/Permissions/permissions/index.vue

@@ -9,19 +9,22 @@
     </Search>
     <div class="table-default">
       <Operate :show="open" />
-      <el-table :data="tableData" class="mt-3" v-loading="loading" row-key="id" default-expand-all :tree-props="{ children: 'children' }">
+      <el-table :data="tableData" class="mt-3" v-loading="loading" row-key="id" default-expand-all
+        :tree-props="{ children: 'children' }">
         <el-table-column prop="permission_name" label="菜单名称" />
         <el-table-column prop="route" label="菜单路由" />
-        <el-table-column prop="permission_mark" label="权限标识" width="330">
+        <el-table-column prop="permission_mark" label="权限标识" width="360">
           <template #default="scope">
-            <div v-if="scope.row.actions.length" class="flex grid gap-1 grid-cols-4">
-              <el-tag v-for="action in scope.row.actions" class="cursor-pointer min-w-fit" @click="open(action.id)" closable @close="destroy(api, action.id)">{{ action.permission_name }}</el-tag>
+            <div v-if="scope.row.actions.length">
+              <el-tag v-for="action in scope.row.actions" class="mb-3 mr-3 cursor-pointer w-fit min-w-fit"
+                @click="open(action.id)" closable @close="destroy(api, action.id)">{{ action.permission_name }}</el-tag>
             </div>
             <div v-else>
-              <el-popconfirm confirm-button-text="确认" title="添加基础actions" @confirm="actionGenerate(scope.row.id)" placement="top">
+              <el-popconfirm confirm-button-text="确认" title="添加基础actions" @confirm="actionGenerate(scope.row.id)"
+                placement="top">
                 <template #reference>
-                  <el-tag class="cursor-pointer w-8" v-if="scope.row.type === MenuType.PAGE_TYPE">
-                    <Icon name="cog-6-tooth" class="animate-spin w-5 h-5" v-if="actionLoading" />
+                  <el-tag class="w-8 cursor-pointer" v-if="scope.row.type === MenuType.PAGE_TYPE">
+                    <Icon name="cog-6-tooth" class="w-5 h-5 animate-spin" v-if="actionLoading" />
                     <Icon name="plus" className="w-4 h-4" v-else />
                   </el-tag>
                 </template>

+ 8 - 8
src/views/ordersManage/tabs/refundList/excelTitle.ts

@@ -14,10 +14,10 @@ export const titleObj = {
     推广名称: 'promotion_name',
     档位类型: 'tip_text',
     支付方式: 'pay_name',
-    平台审核: 'pt_verify_status_text',
-    平台审核备注: 'pt_verify_remark',
-    商户审核: 'sh_verify_status_text',
-    商户审核备注: 'sh_verify_remark'
+    // 平台审核: 'pt_verify_status_text',
+    // 平台审核备注: 'pt_verify_remark',
+    // 商户审核: 'sh_verify_status_text',
+    // 商户审核备注: 'sh_verify_remark'
   },
   1: {
     商户名称: 'company_name',
@@ -57,10 +57,10 @@ export const titlePtObj = {
 	  支付名称:"pay_merchant_name",
 	  收款主体:"payee_name",
 	  支付商户号:"pay_appid",
-	  平台审核: 'pt_verify_status_text',
-	  平台审核备注: 'pt_verify_remark',
-	  商户审核: 'sh_verify_status_text',
-	  商户审核备注: 'sh_verify_remark'
+	  // 平台审核: 'pt_verify_status_text',
+	  // 平台审核备注: 'pt_verify_remark',
+	  // 商户审核: 'sh_verify_status_text',
+	  // 商户审核备注: 'sh_verify_remark'
 	},
 	1: {
 	  商户名称: 'company_name',

+ 18 - 14
src/views/ordersManage/tabs/refundList/index.vue

@@ -117,7 +117,7 @@
             </div>
           </template>
         </el-table-column>
-        <el-table-column v-if="query.refund_status == 0" prop="pt_verify_status_text" label="平台审核" show-overflow-tooltip
+      <!--  <el-table-column v-if="query.refund_status == 0" prop="pt_verify_status_text" label="平台审核" show-overflow-tooltip
           min-width="150px">
           <template #default="scope">
             <div class="wrapper">
@@ -126,11 +126,11 @@
               </span>
             </div>
           </template>
-        </el-table-column>
-        <el-table-column v-if="query.refund_status == 0" prop="pt_verify_remark" label="平台审核备注" show-overflow-tooltip
+        </el-table-column> -->
+    <!--    <el-table-column v-if="query.refund_status == 0" prop="pt_verify_remark" label="平台审核备注" show-overflow-tooltip
           min-width="150px">
-        </el-table-column>
-        <el-table-column v-if="query.refund_status == 0" prop="sh_verify_status_text" label="商户审核" show-overflow-tooltip
+        </el-table-column> -->
+       <!-- <el-table-column v-if="query.refund_status == 0" prop="sh_verify_status_text" label="商户审核" show-overflow-tooltip
           min-width="150px">
           <template #default="scope">
             <div class="wrapper">
@@ -139,22 +139,26 @@
               </span>
             </div>
           </template>
-        </el-table-column>
-        <el-table-column v-if="query.refund_status == 0" prop="sh_verify_remark" label="商户审核备注" show-overflow-tooltip
+        </el-table-column> -->
+       <!-- <el-table-column v-if="query.refund_status == 0" prop="sh_verify_remark" label="商户审核备注" show-overflow-tooltip
           min-width="150px">
-        </el-table-column>
+        </el-table-column> -->
         <el-table-column v-if="query.refund_status == 0" label="操作" fixed="right">
           <template #default="scope">
-            <el-button link type="primary" size="small" v-action="'orderRefund.RefundOrder.platformVerify'"
+          <!--  <el-button link type="primary" size="small" v-action="'orderRefund.RefundOrder.platformVerify'"
               @click="openType('noapprovedVisible', scope.row, '平台审核')">平台审核</el-button>
-            <br />
-            <el-button link type="primary" size="small" v-action="'orderRefund.RefundOrder.companyVerify'"
+            <br /> -->
+          <!--  <el-button link type="primary" size="small" v-action="'orderRefund.RefundOrder.companyVerify'"
               @click="openType('noapprovedVisible', scope.row, '商户审核')">商户审核</el-button>
-            <br />
-            <el-button :disabled="!scope.row.can_pay" link type="primary" size="small"
+            <br /> -->
+           <!-- <el-button :disabled="!scope.row.can_pay" link type="primary" size="small"
               v-action="'orderRefund.RefundOrder.payToUser'"
               @click="openType('approvedVisible', scope.row)">确认打款</el-button>
-            <br />
+            <br /> -->
+			<el-button link type="primary" size="small"
+			  v-action="'orderRefund.RefundOrder.payToUser'"
+			  @click="openType('approvedVisible', scope.row)">确认打款</el-button>
+			<br />
           </template>
         </el-table-column>
       </el-table>

+ 2 - 2
src/views/payBack/juliangAccount/tabs/advertiserList/form/create.vue

@@ -5,10 +5,10 @@
       <el-input v-model.number="formCallback.account_id" type="number" auto-complete="off"
         placeholder="请输入巨量账户ID"></el-input>
     </el-form-item>
-    <el-form-item label="巨量账户名称" prop="account_name" label-width="120px"
+    <!-- <el-form-item label="巨量账户名称" prop="account_name" label-width="120px"
       :rules="[{ required: true, message: '巨量账户名称必须填写' }, { max: 20, message: '至多输入20个字符', trigger: 'blur' }]">
       <el-input v-model="formCallback.account_name" auto-complete="off" placeholder="请输入巨量账户名称"></el-input>
-    </el-form-item>
+    </el-form-item> -->
     <el-form-item label="回传配置" prop="default_rate" :rules="[{ required: true, message: '回传配置必须填写' }]">
       <div class="flex flex-col">
         <el-form-item label="输入回传金额" prop="price">

+ 23 - 8
src/views/payBack/juliangAccount/tabs/advertiserList/index.vue

@@ -4,9 +4,15 @@
       <el-form-item label="巨量账户ID">
         <el-input placeholder="请输入巨量账户ID" class="input" icon="search" v-model="query.account_id" clearable></el-input>
       </el-form-item>
-      <el-form-item label="巨量账户">
+	  <el-form-item label="回传配置ID">
+	    <el-input placeholder="请输入回传配置ID" class="input" icon="search" v-model="query.id" clearable></el-input>
+	  </el-form-item>
+	  <el-form-item label="关联推广ID">
+	    <el-input placeholder="关联推广ID" class="input" icon="search" v-model="query.promotion_id" clearable></el-input>
+	  </el-form-item>
+    <!--  <el-form-item label="巨量账户">
         <el-input placeholder="请输入巨量账户" class="input" icon="search" v-model="query.account_name" clearable></el-input>
-      </el-form-item>
+      </el-form-item> -->
     </template>
   </Search>
   <div class="table-default">
@@ -15,11 +21,10 @@
       <el-button type="primary" size="default" @click="mulSet">批量设置</el-button>
     </div>
     <el-table :data="tableData" class="mt-3" v-loading="loading" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="80">
-      </el-table-column>
+      <el-table-column type="selection" width="80"></el-table-column>
+	   <el-table-column label="回传配置ID" width="260" prop="id"></el-table-column>
       <el-table-column label="巨量账户ID" width="260" prop="adv_account_id"></el-table-column>
-      <el-table-column label="巨量账户" width="260" prop="adv_account_name">
-      </el-table-column>
+      <!-- <el-table-column label="巨量账户" width="260" prop="adv_account_name"></el-table-column> -->
       <el-table-column label="回传开关" width="150" v-action="'callback.JuliangAccount.turnCallbackState'">
         <template #default="scope">
           <div>
@@ -31,6 +36,9 @@
       <el-table-column label="关联推广名称" width="260" prop="promotion_name">
       </el-table-column>
       <el-table-column label="关联推广ID" width="260" prop="promotion_id">
+		<template #default="scope">
+			   <el-button link type="primary" size="small" @click="goToPromotion( scope.row)" >{{scope.row.promotion_id}}</el-button>
+		 </template>
       </el-table-column>
       <el-table-column label="操作">
         <template #default="scope">
@@ -61,7 +69,8 @@ import create from './form/create.vue';
 import paybackConfig from './form/paybackConfig.vue';
 import { useGetList } from '@/hook/curd/useGetList';
 import { callbackJuliangAccountTurnCallbackState, callbackJuliangAccountUnbindPromotion } from '@/api/backConfig/index'
-
+const router = useRouter();
+const route = useRoute();
 const api = 'callback/juliangAccount/list';
 
 const { data, query, search, reset, loading } = useGetList(api, true);
@@ -91,6 +100,11 @@ const switchStatus = (data: object) => {
     search()
   })
 }
+const goToPromotion = (row: object) =>{
+	 router.push({ path: '/promotion/promotionList', query: { tab: 1,id:row.promotion_id } })
+}
+	
+
 const handleCancel = (row: object) => {
   ElMessageBox.confirm(
     `解绑后此回传账户所有数据重新计算(包括比例/保护数),确定要取消 ${row.adv_account_name} 推广回传关联吗?`,
@@ -102,7 +116,7 @@ const handleCancel = (row: object) => {
     }
   )
     .then(() => {
-      callbackJuliangAccountUnbindPromotion({ id: row.id }).then(res => {
+      callbackJuliangAccountUnbindPromotion({ id: row.promotion_id }).then(res => {
         ElMessage.success(res.message)
         search()
       })
@@ -177,6 +191,7 @@ const openForm = (data: any) => {
   addAccountVisible.value = true
 };
 onMounted(() => {
+query.value.id = route.query.id 
   search();
 });
 </script>

+ 1 - 1
src/views/payBack/juliangAccount/tabs/logList/excelTitle.ts

@@ -1,7 +1,7 @@
 // 导出中文/字段
 export const titleObj = {
   所属账户ID: 'advertiser_id',
-  所属账户: 'advertiser_name',
+  // 所属账户: 'advertiser_name',
   订单号: 'order_no',
   用户ID: 'uid',
   注册IP: 'user_ranse_ip',

+ 4 - 4
src/views/payBack/juliangAccount/tabs/logList/index.vue

@@ -5,13 +5,13 @@
         <el-form-item label="所属账户ID" prop="advertiser_id">
           <el-input v-model="query.advertiser_id" placeholder="请输入所属账户ID" clearable />
         </el-form-item>
-        <el-form-item label="所属账户" prop="advertiser_id">
+      <!--  <el-form-item label="所属账户" prop="advertiser_id">
           <el-select v-model="query.advertiser_id" filterable remote clearable :remote-method="remoteMethod"
             placeholder="选择所属账户">
             <el-option v-for="item in adNameOtion" :key="item.id" :label="item.adv_account_name"
               :value="item.adv_account_id" />
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="用户ID" prop="uid">
           <el-input v-model="query.uid" placeholder="请输入用户ID" clearable />
         </el-form-item>
@@ -38,8 +38,8 @@
     <div class="table-default">
       <el-table :data="tableData" class="mt-3" v-loading="loading">
         <el-table-column prop="advertiser_id" label="所属账户ID" fixed="left" min-width="200px" />
-        <el-table-column label="所属账户" prop="advertiser_name" show-overflow-tooltip fixed="left" min-width="200px">
-        </el-table-column>
+<!--        <el-table-column label="所属账户" prop="advertiser_name" show-overflow-tooltip fixed="left" min-width="200px">
+        </el-table-column> -->
         <el-table-column prop="order_no" show-overflow-tooltip label="订单号" min-width="200px">
         </el-table-column>
         <el-table-column prop="uid" label="用户ID" show-overflow-tooltip>

+ 10 - 2
src/views/promotion/promotionList/index.vue

@@ -100,7 +100,11 @@
                 </template>
               </el-table-column>
               <el-table-column prop="callback_type_str" label="回传类型" />
-              <el-table-column prop="callback_config_id" label="回传配置ID" />
+              <el-table-column prop="callback_config_id" label="回传配置ID" >
+				  <template #default="scope">
+				  	   <el-button link type="primary" size="small" @click="goToTtHuicHuan( scope.row)" >{{scope.row.callback_config_id}}</el-button>
+				   </template>
+			  </el-table-column>
               <el-table-column prop="status_str" label="状态">
                 <template #default="scope">
                   <div class="wrapper">
@@ -228,6 +232,9 @@ const timeChange = (e) => {
   }
 }
 
+const goToTtHuicHuan = (row: object) =>{
+	 router.push({ path: '/payback/juliangAccount', query: { id:row.callback_config_id } })
+}
 const handChange = (tab: TabsPaneContext, event: Event) => {
   console.log(tab, event)
   router.push({ path: '/promotion/promotionList', query: { tab } })
@@ -259,7 +266,7 @@ const deletePromotion = (row: object) => {
 }
 
 const resetQuery = () => {
-  query.value = Object.assign({ page: query.value.page, limit: query.value.limit, miniprogram_id: query.value.miniprogram_id, is_config: query.value.is_config });
+  query.value = Object.assign({ page: query.value.page, limit: query.value.limit, miniprogram_id: query.value.miniprogram_id, is_config: query.value.is_config,id:value.id });
   search()
 }
 const openType = (type: string, data: object) => {
@@ -305,6 +312,7 @@ const closeType = (type: string) => {
 onMounted(() => {
   activeName.value = Number(route.query.tab || 1)
   query.value.is_config = activeName.value
+  query.value.id = route.query.id 
   if (JSON.parse(Cache.get('nav_data'))?.app.id) {
     query.value.miniprogram_id = JSON.parse(Cache.get('nav_data'))?.app.id
   }

+ 8 - 1
src/views/settleManage/financialControl/tabs/rechargeSettle/index.vue

@@ -60,7 +60,7 @@
         </el-table-column>
         <el-table-column prop="remark" label="备注" show-overflow-tooltip>
         </el-table-column>
-        <el-table-column label="操作" v-if="isShowOperate" fixed="right">
+        <el-table-column label="操作" fixed="right">
           <template #default="scope">
             <el-button link type="primary" size="small" v-if="query.status == 1"
               @click="openType('withdrawDetailVisible', scope.row)">提现详情</el-button>
@@ -80,6 +80,8 @@
                 @click="openType('applyVisible', scope.row, '打款失败')">打款失败</el-button>
               <br />
             </div>
+            <el-button link type="primary" size="small" @click="lookInvoice(scope.row)"
+              v-if="scope.row.ticket_link">查看电子发票</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -133,6 +135,11 @@ const statusList = ref([
   { name: '打款成功', value: 4 },
   { name: '打款失败', value: 5 },
 ])
+// 查看电子发票
+const lookInvoice = (row: object) => {
+  window.open(row.ticket_link)
+  console.log(row, 'uploadInvoiceuploadInvoice');
+}
 const { data, query, search, reset, loading } = useGetList(api);
 const dialogFormVisible = ref(false)
 const userDetailData = ref({})

+ 21 - 12
src/views/settleManage/paymentAccountInfo/tabs/paymentInfo/index.vue

@@ -2,6 +2,9 @@
   <div>
     <Search :search="search" :reset="resetQuery">
       <template v-slot:body>
+		  <el-form-item label="商户名称" prop="name">
+		    <el-input v-model="query.owner_name" name="owner_name" clearable placeholder="请输入商户名称" />
+		  </el-form-item>
         <el-form-item label="所属商务" prop="business_id">
           <el-select v-model="query.business_id" filterable clearable placeholder="选择所属商务">
             <el-option v-for="item in businessList" :key="item.id" :label="item.username" :value="item.id" />
@@ -17,7 +20,8 @@
     <div class="table-default">
       <Operate :show="open" v-action="'jiesuan.BankAccount.addCompanyCard'" />
       <el-table :data="tableData" class="mt-3" v-loading="loading">
-        <el-table-column prop="owner_name" label="所属商务" min-width="200px" />
+        <el-table-column prop="owner_name" label="商户名称" min-width="200px" />
+        <el-table-column prop="business_str" label="所属商务" min-width="200px" />
         <el-table-column label="收款信息" show-overflow-tooltip min-width="250px">
           <template #default="scope">
             <div>收款人:{{ scope.row.name_of_payee }}</div>
@@ -27,23 +31,28 @@
             <div>收款人手机号:{{ scope.row.phone_of_payee }}</div>
           </template>
         </el-table-column>
-        <el-table-column prop="created_at" show-overflow-tooltip label="申请时间" min-width="200px">
+        <el-table-column prop="created_at" show-overflow-tooltip label="添加时间" min-width="200px">
         </el-table-column>
-        <el-table-column prop="checked_at" label="审核时间" show-overflow-tooltip min-width="200px">
-        </el-table-column>
-        <el-table-column prop="status_str" label="状态" show-overflow-tooltip>
+     <!--   <el-table-column prop="checked_at" label="审核时间" show-overflow-tooltip min-width="200px">
+        </el-table-column> -->
+       <!-- <el-table-column prop="status_str" label="状态" show-overflow-tooltip>
           <template #default="scope">
             <el-text class="mx-1" :type="colorType(scope.row)">{{ scope.row.status_str }}</el-text>
           </template>
-        </el-table-column>
-        <el-table-column prop="remark" label="备注" show-overflow-tooltip min-width="200px">
-        </el-table-column>
+        </el-table-column> -->
+      <!--  <el-table-column prop="remark" label="备注" show-overflow-tooltip min-width="200px">
+        </el-table-column> -->
         <el-table-column label="操作" width="200">
           <template #default="scope">
-            <el-button link type="primary" v-if="scope.row.status == 1" size="small" @click="open(scope.row)"
-              v-action="'jiesuan.BankAccount.addCompanyCard'">编辑</el-button>
-            <el-button link type="primary" size="small" @click="deletePromotion(scope.row)"
-              v-action="'jiesuan.BankAccount.delCompanyCard'" v-if="scope.row.status != 2">删除</el-button>
+          <!--  <el-button link type="primary" v-if="scope.row.status == 1" size="small" @click="open(scope.row)"
+              v-action="'jiesuan.BankAccount.addCompanyCard'">编辑</el-button> -->
+			  
+          <!--  <el-button link type="primary" size="small" @click="deletePromotion(scope.row)"
+              v-action="'jiesuan.BankAccount.delCompanyCard'" v-if="scope.row.status != 2">删除</el-button> -->
+			  <el-button link type="primary"  size="small" @click="open(scope.row)"
+			    v-action="'jiesuan.BankAccount.addCompanyCard'">编辑</el-button>
+			  <el-button link type="primary" size="small" @click="deletePromotion(scope.row)"
+			    v-action="'jiesuan.BankAccount.delCompanyCard'" >删除</el-button>
             <br />
           </template>
         </el-table-column>

+ 46 - 48
src/views/settleManage/settlementCenter/tabs/rechargeSettle/index.vue

@@ -33,58 +33,59 @@
             <div v-if="applyBank.length <= 0" class="ml-3">未配置收款账户,<span
                 @click="router.push('/jiesuanManage/bankAccount')" class="text-blue-400 cursor-pointer">去配置</span></div>
           </div>
-          <div class="text-base">
-            <el-button v-action="'jiesuan.Jiesuan.listTixian'" size="default"
-              @click="openType('applyListVisible')">提现记录</el-button>
-          </div>
         </el-col>
       </el-row>
     </el-card>
     <div class="p-5">注:每日的结算数据需要在次日统计完成后才能展示</div>
-    <Search :search="search" :reset="resetQuery">
-      <template v-slot:body>
-        <el-form-item label="结算时间">
-          <el-date-picker unlink-panels clearable @change="applyTimeChange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
-            v-model="query.applyTime" type="daterange" :shortcuts="shortcuts" range-separator="To"
-            start-placeholder="开始时间" end-placeholder="结束时间" />
-        </el-form-item>
-      </template>
-      <template v-slot:extra_button>
-        <exportExcel api="jiesuanManage/jiesuan/list" sheet_name="结算中心" :title_obj="titleObj"
-          :extro_params="{ is_export: 1, ...query }">
-        </exportExcel>
-      </template>
-    </Search>
-    <div class="table-default">
-      <el-table :data="tableData" class="mt-3" v-loading="loading">
-        <el-table-column prop="jiesuan_date" label="时间" min-width="200px" />
-        <el-table-column prop="charge_money" label="日充值总额" show-overflow-tooltip min-width="200px">
-        </el-table-column>
-        <el-table-column prop="tuikuan_money" show-overflow-tooltip label="当日退款" min-width="200px">
-        </el-table-column>
-        <el-table-column prop="share_rate" label="分成比例" show-overflow-tooltip>
-        </el-table-column>
-        <el-table-column prop="jiesuan_money" label="日结算总额" show-overflow-tooltip min-width="200px">
-        </el-table-column>
-        <el-table-column label="操作" min-width="200px">
-          <template #default="scope">
-            <el-button link type="primary" size="small"
-              @click="openType('orderDetailVisible', scope.row)">查看订单详情</el-button>
-            <br />
+
+    <el-tabs v-model="activeName" class="demo-tabs" @tab-change="handChange">
+      <el-tab-pane label="提现记录" name="withdrawalRecord" v-action="'jiesuan.Jiesuan.listTixian'">
+        <withdrawalRecord></withdrawalRecord>
+      </el-tab-pane>
+      <el-tab-pane label="每日结算数据" name="recharge">
+        <Search :search="search" :reset="resetQuery">
+          <template v-slot:body>
+            <el-form-item label="结算时间">
+              <el-date-picker unlink-panels clearable @change="applyTimeChange" format="YYYY/MM/DD"
+                value-format="YYYY-MM-DD" v-model="query.applyTime" type="daterange" :shortcuts="shortcuts"
+                range-separator="To" start-placeholder="开始时间" end-placeholder="结束时间" />
+            </el-form-item>
+          </template>
+          <template v-slot:extra_button>
+            <exportExcel api="jiesuanManage/jiesuan/list" sheet_name="结算中心" :title_obj="titleObj"
+              :extro_params="{ is_export: 1, ...query }">
+            </exportExcel>
           </template>
-        </el-table-column>
-      </el-table>
-      <Paginate />
-    </div>
+        </Search>
+        <div class="table-default">
+          <el-table :data="tableData" class="mt-3" v-loading="loading">
+            <el-table-column prop="jiesuan_date" label="时间" min-width="200px" />
+            <el-table-column prop="charge_money" label="日充值总额" show-overflow-tooltip min-width="200px">
+            </el-table-column>
+            <el-table-column prop="tuikuan_money" show-overflow-tooltip label="当日退款" min-width="200px">
+            </el-table-column>
+            <el-table-column prop="share_rate" label="分成比例" show-overflow-tooltip>
+            </el-table-column>
+            <el-table-column prop="jiesuan_money" label="日结算总额" show-overflow-tooltip min-width="200px">
+            </el-table-column>
+            <el-table-column label="操作" min-width="200px">
+              <template #default="scope">
+                <el-button link type="primary" size="small"
+                  @click="openType('orderDetailVisible', scope.row)">查看订单详情</el-button>
+                <br />
+              </template>
+            </el-table-column>
+          </el-table>
+          <Paginate />
+        </div>
+      </el-tab-pane>
+    </el-tabs>
     <Dialog v-model="orderDetailVisible" width="80%" title="订单详情" destroy-on-close>
       <orderDetail @close="closeType('orderDetailVisible')" :primary="orderDetailData"></orderDetail>
     </Dialog>
     <Dialog v-model="applyVisible" width="50%" title="申请提现" destroy-on-close>
       <create @close="closeType('applyVisible')" :primary="applyData"></create>
     </Dialog>
-    <Dialog v-model="applyListVisible" width="80%" title="提现记录" destroy-on-close>
-      <withdrawalRecord @close="closeType('applyListVisible')"></withdrawalRecord>
-    </Dialog>
   </div>
 </template>
 
@@ -101,6 +102,7 @@ import withdrawalRecord from './withdrawalRecord/index.vue'
 import moment from 'moment';
 const start_date = moment().startOf('month').format('YYYY-MM-DD')
 const end_date = moment().endOf('month').format('YYYY-MM-DD')
+const activeName = ref('withdrawalRecord')
 
 const api = 'jiesuanManage/jiesuan/list';
 const router = useRouter()
@@ -110,7 +112,6 @@ const orderDetailVisible = ref(false)
 const orderDetailData = ref({})
 const applyData = ref({})
 const applyVisible = ref(false)
-const applyListVisible = ref(false)
 const rolesIdentify = inject('rolesIdentify')
 const applyBank = ref([])
 const closeType = (type: string) => {
@@ -122,12 +123,12 @@ const closeType = (type: string) => {
       applyVisible.value = false
       init()
       break;
-    case 'applyListVisible':
-      applyListVisible.value = false
-      break;
   }
   search()
 }
+const handChange = (tab: any, event: Event) => {
+  activeName.value = tab
+}
 
 const openType = (type: string, data?: object) => {
   switch (type) {
@@ -138,9 +139,6 @@ const openType = (type: string, data?: object) => {
     case 'applyVisible':
       applyVisible.value = true
       break;
-    case 'applyListVisible':
-      applyListVisible.value = true
-      break;
   }
 }
 const applyTimeChange = (e: object) => {

+ 73 - 0
src/views/settleManage/settlementCenter/tabs/rechargeSettle/withdrawalRecord/form/create.vue

@@ -0,0 +1,73 @@
+<template>
+  <el-form :model="formData" label-width="120px" ref="ruleForm" :rules="rules" v-loading="loading" class="pr-4">
+    <div class="flex flex-row justify-between">
+      <div class="w-full">
+        <el-form-item label="电子发票" prop="ticket">
+          <my-upload acceptType=".png,.jpg,.jpeg" :isMultiple="true" :maxFileSize="2" @fileRemove="fileRemove"
+            @fileSuccess="fileSuccess" :fileList="fileList" action="/qiniu/upload/image"></my-upload>
+        </el-form-item>
+      </div>
+    </div>
+    <div class="flex justify-end">
+      <el-button type="primary" @click="submitForm(ruleForm)">{{ $t('system.confirm') }}</el-button>
+    </div>
+  </el-form>
+</template>
+
+<script lang="ts" setup>
+import { InfoFilled } from '@element-plus/icons-vue';
+import type { FormInstance, FormRules } from 'element-plus'
+import { jiesuanManageJiesuanUpdateTicket } from '@/api/settlement/index'
+const ruleForm = ref<FormInstance>()
+import { onMounted, ref } from 'vue';
+const props = defineProps({
+  primary: Object,
+});
+const formData = ref({})
+const fileList = ref([])
+const rules = reactive({
+  ticket: [
+    {
+      required: true,
+      message: '请上传电子发票',
+    }
+  ],
+});
+const loading = ref(false)
+const fileSuccess = (e) => {
+  console.log(e);
+  formData.value.ticket = e;
+}
+const fileRemove = (e) => {
+  console.log(e);
+  formData.value.ticket = '';
+}
+
+const submitForm = (formEl: FormInstance | undefined) => {
+  console.log(formData.value, 'formData.valueformData.value');
+  if (!formEl) return;
+  formEl
+    .validate(valid => {
+      if (valid) {
+        jiesuanManageJiesuanUpdateTicket(formData.value.id, formData.value).then(res => {
+          console.log(res);
+          ElMessage.success(res.message)
+          emit('close')
+        })
+      } else {
+        loading.value = false;
+      }
+    })
+    .then(() => { });
+}
+
+if (props.primary) {
+  formData.value.id = props.primary.id
+  if (props.primary.ticket_link) {
+    fileList.value = [{ uid: props.primary.id, url: props.primary.ticket_link }]
+  }
+}
+const emit = defineEmits(['close']);
+onMounted(() => {
+});
+</script>

+ 34 - 0
src/views/settleManage/settlementCenter/tabs/rechargeSettle/withdrawalRecord/index.vue

@@ -44,9 +44,24 @@
         </el-table-column>
         <el-table-column prop="remark" label="备注" show-overflow-tooltip min-width="150px">
         </el-table-column>
+        <el-table-column label="操作" min-width="200px">
+          <template #default="scope">
+            <div v-action="'jiesuan.Jiesuan.updateTicket'">
+              <el-button link type="primary" size="small" @click="lookInvoice(scope.row)"
+                v-if="scope.row.ticket_link">查看电子发票</el-button>
+              <el-button link type="primary" size="small" @click="uploadInvoice(scope.row)">{{ scope.row.ticket_link ?
+                '重新上传' : '上传电子发票' }} </el-button>
+              <div class="text-xs font-bold">注:如果是纸质发票请邮寄</div>
+            </div>
+            <br />
+          </template>
+        </el-table-column>
       </el-table>
       <Paginate />
     </div>
+    <Dialog v-model="uploadVisible" width="500px" title="上传电子发票" destroy-on-close>
+      <create @close="closeUpload" :primary="uploadData"></create>
+    </Dialog>
   </div>
 </template>
 
@@ -54,10 +69,13 @@
 import { shortcuts } from '@/utils/shortcuts'
 import { InfoFilled } from '@element-plus/icons-vue';
 import { useGetList } from '@/hook/curd/useGetList';
+import create from './form/create.vue'
 const api = 'jiesuanManage/jiesuan/listTixian';
 import { titleObj } from "./excelTitle"
 const { data, query, search, reset, loading } = useGetList(api);
 const rolesIdentify = inject('rolesIdentify')
+const uploadVisible = ref(false)
+const uploadData = ref({})
 const statusList = ref([
   { name: '全部', value: '' },
   { name: '待审核', value: 1 },
@@ -96,6 +114,22 @@ const resetQuery = () => {
   reset()
 }
 
+const closeUpload = () => {
+  uploadVisible.value = false
+  search()
+}
+// 上传发票
+const uploadInvoice = (row: object) => {
+  uploadVisible.value = true
+  uploadData.value = row
+  console.log(row, 'uploadInvoiceuploadInvoice');
+}
+// 查看电子发票
+const lookInvoice = (row: object) => {
+  window.open(row.ticket_link)
+  console.log(row, 'uploadInvoiceuploadInvoice');
+}
+
 const tableData = computed(() => data.value?.data);
 
 onMounted(() => {