Browse Source

银行卡信息审核

zqwang 1 year ago
parent
commit
8f9f24012e

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

@@ -89,3 +89,13 @@ export function jiesuanManageFinanceCheckCheck(params: object) {
 export function jiesuanManageFinanceCheckRemit(params: object) {
   return http.post(`/jiesuanManage/financeCheck/remit`, params);
 }
+
+/**
+ * 审核银行卡列表
+ */
+export function jiesuanShenheList(params?: object) {
+  return http.get('jiesuanManage/verify/list', params);
+}
+export function jiusanBankCardVerify(params?: object) {
+  return http.post('jiesuanManage/verify/check', params);
+}

+ 28 - 0
src/views/settleManage/verifyBankInfo/index.vue

@@ -0,0 +1,28 @@
+<template>
+  <div>
+    <el-card shadow="always" :body-style="{ padding: '20px' }">
+      <el-tabs v-model="activeName" class="demo-tabs" @tab-change="handChange">
+        <el-tab-pane label="收款账户信息" name="recharge">
+          <rechargeSettle></rechargeSettle>
+        </el-tab-pane>
+      </el-tabs>
+    </el-card>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { useRouter, useRoute } from 'vue-router'
+import type { TabsPaneContext } from 'element-plus'
+import rechargeSettle from "./tabs/rechargeSettle/index.vue"
+const router = useRouter()
+const route = useRoute()
+const handChange = (tab: TabsPaneContext, event: Event) => {
+  activeName.value = tab
+}
+const activeName = ref('recharge')
+onMounted(() => {
+  activeName.value = route.query.tab || 'recharge'
+});
+</script>
+
+<style scoped lang="scss"></style>

+ 8 - 0
src/views/settleManage/verifyBankInfo/tabs/rechargeSettle/excelTitle.ts

@@ -0,0 +1,8 @@
+// 导出中文/字段
+export const titleObj = {
+  时间: 'jiesuan_date',
+  日充值总额: 'charge_money',
+  当日退款: 'tuikuan_money',
+  分成比例: 'share_rate',
+  日结算总额: 'jiesuan_money'
+};

+ 112 - 0
src/views/settleManage/verifyBankInfo/tabs/rechargeSettle/form/create.vue

@@ -0,0 +1,112 @@
+<template>
+  <div class="withdraw-popup-warn">
+    提现提示1:工作日14:30点前提现,审核通过之后下一工作日可到账;14:30之后提现将会在下一工作日审核<br />
+    提现提示2:充值收入提现后,请自行到当地税务部门纳税,本平台仅收取10%平台服务费,不承担代扣代缴义务。
+  </div>
+  <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="name">
+          <el-input v-model="props.primary.yue_money" disabled placeholder="请输入商户名称" />
+        </el-form-item>
+        <el-form-item label="提现金额" prop="tixian_money">
+          <div class="items-center w-full">
+            <el-input style="width:200px;margin:0 5px;" v-model="formData.tixian_money" placeholder="请输入金额">
+              <template #append>元</template>
+            </el-input>
+            <span v-if="Number(props.primary.yue_money) > 0" class="text-blue-400 cursor-pointer"
+              @click="formData.tixian_money = props.primary.yue_money">全部提现</span>
+          </div>
+        </el-form-item>
+        <el-form-item label="提现账户" prop="bank_card_id">
+          <el-select class="w-full" v-model="formData.bank_card_id" filterable clearable placeholder="选择提现账户">
+            <el-option v-for="item in applyBank" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
+        </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 { useCreate } from '@/hook/curd/useCreate';
+import { useShow } from '@/hook/curd/useShow';
+import type { FormInstance, FormRules } from 'element-plus'
+import { jiesuanManageBankAccountListAvailableBankCard, jiesuanManageJiesuanTixian } from '@/api/settlement/index'
+const ruleForm = ref<FormInstance>()
+import { onMounted, ref } from 'vue';
+const props = defineProps({
+  primary: Object,
+});
+const formData = ref({})
+const rules = reactive({
+  bank_card_id: [{ required: true, message: '请选择提现账户' }],
+  tixian_money: [
+    {
+      required: true,
+      message: '请输入金额',
+      trigger: 'blur'
+    },
+    { pattern: /^\d+(\.\d{1,2})?$/, message: '金额最多只能有两位小数', trigger: 'blur' },
+    { pattern: /^(?!0\d+)\d+(\.\d+)?$/, message: '请输入有效的金额', trigger: 'blur' },
+    {
+      pattern: /^500(\.\d{1,2})?$|^([5-9]\d{2}|[1-9]\d{3,})(\.\d{1,2})?$/,
+      message: '请输入不低于500的金额',
+      // trigger: 'blur'
+    }
+  ],
+});
+const loading = ref(false)
+const applyBank = ref([])
+
+const submitForm = (formEl: FormInstance | undefined) => {
+  console.log(formData.value, 'formData.valueformData.value');
+  if (!formEl) return;
+  formEl
+    .validate(valid => {
+      if (valid) {
+        jiesuanManageJiesuanTixian(formData.value).then(res => {
+          ElMessage.success(res.message)
+          emit('close')
+          loading.value = false;
+        })
+      } else {
+        loading.value = false;
+      }
+    })
+    .then(() => { });
+}
+
+if (props.primary) {
+  console.log(props.primary, 'props.primaryprops.primary');
+}
+
+const emit = defineEmits(['close']);
+onMounted(() => {
+  jiesuanManageBankAccountListAvailableBankCard().then(res => {
+    applyBank.value = res.data;
+    applyBank.value = res.data.map(v => {
+      return {
+        label: `${v.bank_name}(***********${v.card_no.slice(-4)})`,
+        value: v.id,
+      };
+    });;
+  })
+
+});
+</script>
+
+<style lang="scss" scoped>
+.withdraw-popup-warn {
+  padding: 10px;
+  color: red;
+  margin-bottom: 10px;
+  line-height: 1.8;
+  padding-left: 30px;
+  font-size: 12px;
+  background-color: #ffecf4;
+}
+</style>

+ 289 - 0
src/views/settleManage/verifyBankInfo/tabs/rechargeSettle/index.vue

@@ -0,0 +1,289 @@
+<template>
+  <div>
+    <el-radio-group v-model="query.status" @change="search">
+      <el-radio v-for="item in statusList" :label="item.value" :key="item.value">{{ item.name }}</el-radio>
+    </el-radio-group>
+    <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" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="申请时间" v-if="query.status == 1">
+          <el-date-picker unlink-panels clearable @change="createTimeChange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
+            v-model="query.createTime" type="daterange" :shortcuts="shortcuts" range-separator="To"
+            start-placeholder="开始时间" end-placeholder="结束时间" />
+        </el-form-item>
+		<el-form-item label="审核时间" v-if="query.status != 1">
+		  <el-date-picker unlink-panels clearable @change="VerifyTimeChange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
+		    v-model="query.verifyTime" type="daterange" :shortcuts="shortcuts" range-separator="To"
+		    start-placeholder="开始时间" end-placeholder="结束时间" />
+		</el-form-item>
+      </template>
+    </Search>
+    <div class="table-default">
+      <el-table :data="tableData" class="mt-3" v-loading="loading">
+        <el-table-column prop="owner_name" label="商户名称" min-width="200px">
+          <template #default="scope">
+            <div>{{ scope.row.owner_name }}</div>
+            <div>ID:{{ scope.row.company_uid }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="business_name" show-overflow-tooltip label="所属商务" min-width="200px">
+        </el-table-column>
+       <el-table-column prop="owner_name" label="收款信息" min-width="250px">
+         <template #default="scope">
+           <div>收款人:{{ scope.row.name_of_payee }}</div>
+           <div>银行卡号:{{ scope.row.card_no }}</div>
+           <div>开户支行:{{ scope.row.sub_bank_name}}</div>
+           <div>开户银行:{{ scope.row.bank_name  }}</div>
+           <div>收款人手机号:{{ scope.row.phone_of_payee}}</div> 
+         </template>
+       </el-table-column>
+		<el-table-column prop="created_at" label="申请时间" show-overflow-tooltip min-width="200px">
+		</el-table-column>
+		<el-table-column prop="checked_at"  v-if="query.status != 1" label="审核时间" show-overflow-tooltip min-width="200px">
+		</el-table-column>
+        <el-table-column prop="remark"  v-if="query.status != 1" label="备注" show-overflow-tooltip  min-width="200px">
+        </el-table-column>
+		<el-table-column prop="status_text"  v-if="query.status != 1" label="状态" show-overflow-tooltip min-width="200px">
+		  <template #default="scope">
+		    <el-text class="mx-1" :type="colorType(scope.row)">{{ scope.row.status_text }}</el-text>
+		  </template>
+		</el-table-column>
+		
+        <el-table-column label="操作"  v-if="query.status == 1">
+          <template #default="scope">
+            <el-button link type="primary" size="small" @click="openType('approvedVisible', scope.row)">审核通过</el-button>
+            <br />
+            <el-button link type="primary" size="small"
+              @click="openType('noapprovedVisible', scope.row)">审核不通过</el-button>
+            <br />
+          </template>
+        </el-table-column>
+      </el-table>
+      <Paginate />
+    </div>
+    <Dialog v-model="withdrawDetailVisible" width="80%" title="提现详情" destroy-on-close>
+      <withdrawDetail @close="closeType('withdrawDetailVisible')" :primary="withdrawDetailData"></withdrawDetail>
+    </Dialog>
+    <el-dialog width="500px" v-model="noapprovedVisible" title="审核不通过" destroy-on-close>
+      <el-form :model="form" label-width="120px">
+        <el-form-item label="备注">
+          <el-input v-model="form.remark" :rows="3" type="textarea" placeholder="请输入内容" autocomplete="off" />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="noapprovedVisible = false">取消</el-button>
+          <el-button type="primary" @click="noapproveChange">
+            确认
+          </el-button>
+        </span>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { shortcuts } from '@/utils/shortcuts'
+import { useRouter, useRoute } from 'vue-router'
+import { InfoFilled } from '@element-plus/icons-vue';
+import { useGetList } from '@/hook/curd/useGetList';
+import { useOpen } from '@/hook/curd/useOpen';
+import { jiesuanShenheList, jiesuanManageBankAccountListShangwu, jiusanBankCardVerify } from '@/api/settlement/index'
+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 { open, close, title, visible, id } = useOpen();
+const api = 'jiesuanManage/verify/list';
+const router = useRouter()
+const route = useRoute()
+import withdrawDetail from './withdrawDetail/index.vue'
+const statusList = ref([
+  { name: '待审核', value: 1 },
+  { name: '已审核', value: 2 },
+
+])
+const { data, query, search, reset, loading } = useGetList(api);
+const dialogFormVisible = ref(false)
+const userDetailData = ref({})
+const current = ref({})
+const form = ref({})
+const businessList = ref([])
+const rolesIdentify = inject('rolesIdentify')
+const withdrawDetailVisible = ref(false)
+const withdrawDetailData = ref({})
+const applyData = ref({})
+const approvedVisible = ref(false)
+const noapprovedVisible = ref(false)
+
+const colorType = (data: object) => {
+  const type = data.status
+  switch (type) {
+    case 2:
+      return 'success'
+    case 1:
+      return 'success'
+    case 3:
+      return 'danger'
+    case 0:
+      return 'danger'
+
+  }
+}
+
+const noapproveChange = () => {
+  jiusanBankCardVerify({ id: current.value.id, status: 3,remark:form.value.remark }).then(res => {
+    ElMessage.success(res.message)
+	if(res.code == 10000){
+		closeType('noapprovedVisible');
+	}
+    search()
+  })
+}
+
+const createTimeChange = (e: object) => {
+  console.log(e, 'timeChangetimeChangetimeChange');
+  if (query.value.createTime) {
+    const timeArr = toRaw(e);
+    query.value.created_at_start = timeArr[0]
+    query.value.created_at_end = timeArr[1]
+	delete query.value.checked_at_start
+	delete query.value.checked_at_end
+	delete query.value.verifyTime
+  } else {
+    delete query.value.created_at_start
+    delete query.value.created_at_end
+	delete query.value.checked_at_start
+	delete query.value.checked_at_end
+	delete query.value.verifyTime
+  }
+}
+
+const VerifyTimeChange = (e: object) => {
+  console.log(e, 'timeVerifyChangetimeChange');
+  if (query.value.verifyTime) {
+    const timeArr = toRaw(e);
+    query.value.checked_at_start = timeArr[0]
+    query.value.checked_at_end = timeArr[1]
+	delete query.value.created_at_start
+	delete query.value.created_at_end
+	delete query.value.createTime
+  } else {
+    delete query.value.checked_at_start
+    delete query.value.checked_at_end
+	delete query.value.created_at_start
+	delete query.value.created_at_end
+	delete query.value.createTime
+
+	
+  }
+}
+
+const resetQuery = () => {
+  query.value.status = 1
+  query.value.business_id = ''
+  query.value.createTime = ''
+  delete query.value.tixian_start_at
+  delete query.value.tixian_end_at
+  search()
+}
+const closeType = (type: string) => {
+  switch (type) {
+    case 'withdrawDetailVisible':
+      withdrawDetailVisible.value = false
+      break;
+    case 'approvedVisible':
+      approvedVisible.value = false
+      break;
+    case 'noapprovedVisible':
+      noapprovedVisible.value = false
+      break;
+  }
+  search()
+}
+
+const openType = (type: string, data?: object) => {
+  current.value = data || {}
+  switch (type) {
+    case 'withdrawDetailVisible':
+      withdrawDetailVisible.value = true
+      withdrawDetailData.value = data || {}
+      break;
+    case 'approvedVisible':
+      ElMessageBox.confirm(
+        '确认审核通过吗?',
+        '提示',
+        {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        }
+      )
+        .then(() => {
+          jiusanBankCardVerify({ id: current.value.id, status: 2 }).then(res => {
+            ElMessage.success(res.message)
+            search()
+          })
+        })
+        .catch(() => {
+
+        })
+      break;
+    case 'noapprovedVisible':
+      noapprovedVisible.value = true
+      break;
+  }
+}
+const tableData = computed(() => data.value?.data);
+
+onMounted(() => {
+  query.value.status = 1
+  jiesuanManageBankAccountListShangwu().then(res => {
+    businessList.value = res.data;
+  })
+  console.log(rolesIdentify, 'rolesIdentifyrolesIdentify');
+  search();
+});
+</script>
+
+<style scoped lang="scss">
+.col {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+  height: 100px;
+  width: 25%;
+}
+
+.col:last-child {
+  align-items: start;
+}
+
+.table-default {
+  .set-warpper {
+    height: 60px;
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+  }
+
+  .wrapper {
+    margin: 8px;
+
+    .label {
+      margin-right: 6px;
+    }
+
+    .content {
+      font-size: 15px;
+    }
+  }
+}
+</style>

+ 108 - 0
src/views/settleManage/verifyBankInfo/tabs/rechargeSettle/withdrawDetail/index.vue

@@ -0,0 +1,108 @@
+<template>
+  <el-card shadow="always" :body-style="{ padding: '20px' }">
+    <el-row :gutter="20">
+      <el-col :span="6" class="col">
+        <div class="text-lg text-red-500">
+          ¥{{ applyData.yue_money }}
+        </div>
+        <div class="text-base">
+          账户余额
+        </div>
+      </el-col>
+      <el-col :span="6" class="col">
+        <div class="text-lg text-green-500">
+          ¥{{ applyData.tixian_money }}
+        </div>
+        <div class="text-base">
+          审核中
+        </div>
+      </el-col>
+      <el-col :span="6" class="col">
+        <div class="text-lg text-red-300">
+          ¥{{ applyData.total_dakuan }}
+        </div>
+        <div class="text-base">
+          已打款
+        </div>
+      </el-col>
+    </el-row>
+  </el-card>
+  <div class="p-5">注:每日的结算数据需要在次日统计完成后才能展示</div>
+  <el-tabs v-model="activeName" @tab-change="handChange">
+    <el-tab-pane label="结算明细" name="readLog">
+      <settleInfo :primary="props.primary"></settleInfo>
+    </el-tab-pane>
+    <el-tab-pane label="提现记录" name="recharge">
+      <withdrawalRecord :primary="props.primary"></withdrawalRecord>
+    </el-tab-pane>
+  </el-tabs>
+</template>
+
+<script lang="ts" setup>
+import settleInfo from './tables/settleInfo/index.vue'
+import withdrawalRecord from './tables/withdrawalRecord/index.vue'
+import { jiesuanManageFinanceCheckGetShanghuAccountInfo } from '@/api/settlement/index'
+import { ref } from 'vue'
+import type { TabsPaneContext } from 'element-plus'
+const props = defineProps({
+  primary: Object,
+});
+const activeName = ref('readLog')
+
+const handChange = (tab: TabsPaneContext, event: Event) => {
+  activeName.value = tab
+}
+
+const applyData = ref({})
+
+if (props.primary) {
+  console.log(props.primary.company_uid, 'jiesuanManageFinanceCheckGetShanghuAccountInfojiesuanManageFinanceCheckGetShanghuAccountInfo');
+  jiesuanManageFinanceCheckGetShanghuAccountInfo({ company_uid: props.primary.company_uid }).then(res => {
+    console.log(res, 'applyDataapplyDataapplyData');
+    applyData.value = res.data
+  })
+}
+
+onMounted(() => {
+})
+
+</script>
+
+<style lang="scss" scoped>
+.col {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+  height: 100px;
+  margin: 0 auto;
+  width: 33.33%;
+}
+
+.wrapper {
+  display: flex;
+  flex-direction: column;
+  align-items: flex-start;
+  justify-content: center;
+  width: 100%;
+
+  .row {
+    width: 100%;
+    display: flex;
+
+    .item {
+      margin: 9px;
+
+      .label {
+        font-size: 16px;
+      }
+
+      .content {
+        font-size: 18px;
+        font-weight: 600;
+      }
+    }
+  }
+
+}
+</style>

+ 11 - 0
src/views/settleManage/verifyBankInfo/tabs/rechargeSettle/withdrawDetail/tables/settleInfo/excelTitle.ts

@@ -0,0 +1,11 @@
+// 导出中文/字段
+export const titleObj = {
+  提现时间: 'created_at',
+  提现金额: 'tixian_money',
+  提现账户: 'card_no',
+  收款人姓名: 'name_of_payee',
+  支付通道: 'pay_channel',
+  银行流水: 'pay_no',
+  审核状态: 'status_str',
+  备注: 'remark'
+};

+ 106 - 0
src/views/settleManage/verifyBankInfo/tabs/rechargeSettle/withdrawDetail/tables/settleInfo/index.vue

@@ -0,0 +1,106 @@
+<template>
+  <div>
+    <Search :search="search" :reset="resetQuery">
+      <template v-slot:body>
+        <el-form-item label="结算时间">
+          <el-date-picker unlink-panels clearable @change="createTimeChange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
+            v-model="query.createTime" 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" show-overflow-tooltip label="日充值总额" min-width="200px">
+        </el-table-column>
+        <el-table-column prop="tuikuan_money" label="当日退款" show-overflow-tooltip>
+        </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>
+      <Paginate />
+    </div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { shortcuts } from '@/utils/shortcuts'
+import { useGetList } from '@/hook/curd/useGetList';
+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 api = 'jiesuanManage/jiesuan/list';
+const props = defineProps({
+  primary: Object,
+});
+const { data, query, search, reset, loading } = useGetList(api);
+
+const createTimeChange = (e: object) => {
+  console.log(e, 'timeChangetimeChangetimeChange');
+  if (query.value.createTime) {
+    const timeArr = toRaw(e);
+    query.value.jiesuan_date_start_at = timeArr[0]
+    query.value.jiesuan_date_end_at = timeArr[1]
+  } else {
+    delete query.value.jiesuan_date_start_at
+    delete query.value.jiesuan_date_end_at
+  }
+}
+
+const resetQuery = () => {
+  reset()
+}
+const tableData = computed(() => data.value?.data);
+
+if (props.primary) {
+  console.log(props.primary, 'props.primaryprops.primary');
+  query.value.company_uid = props.primary.company_uid
+}
+onMounted(() => {
+  search();
+});
+</script>
+
+<style scoped lang="scss">
+.col {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+  height: 100px;
+  width: 25%;
+}
+
+.col:last-child {
+  align-items: start;
+}
+
+.table-default {
+  .set-warpper {
+    height: 60px;
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+  }
+
+  .wrapper {
+    margin: 8px;
+
+    .label {
+      margin-right: 6px;
+    }
+
+    .content {
+      font-size: 15px;
+    }
+  }
+}
+</style>

+ 11 - 0
src/views/settleManage/verifyBankInfo/tabs/rechargeSettle/withdrawDetail/tables/withdrawalRecord/excelTitle.ts

@@ -0,0 +1,11 @@
+// 导出中文/字段
+export const titleObj = {
+  提现时间: 'created_at',
+  提现金额: 'tixian_money',
+  提现账户: 'card_no',
+  收款人姓名: 'name_of_payee',
+  支付通道: 'pay_channel',
+  银行流水: 'pay_no',
+  审核状态: 'status_str',
+  备注: 'remark'
+};

+ 129 - 0
src/views/settleManage/verifyBankInfo/tabs/rechargeSettle/withdrawDetail/tables/withdrawalRecord/index.vue

@@ -0,0 +1,129 @@
+<template>
+  <div>
+    <div class="pl-5">
+      <el-radio-group v-model="query.status" @change="search">
+        <el-radio v-for="item in statusList" :label="item.value" :key="item.value">{{ item.name }}</el-radio>
+      </el-radio-group>
+    </div>
+    <div class="flex justify-between">
+      <Search :search="search" :reset="resetQuery">
+        <template v-slot:body>
+          <el-form-item label="申请时间">
+            <el-date-picker unlink-panels clearable @change="createTimeChange" format="YYYY/MM/DD"
+              value-format="YYYY-MM-DD" v-model="query.createTime" type="daterange" :shortcuts="shortcuts"
+              range-separator="To" start-placeholder="开始时间" end-placeholder="结束时间" />
+          </el-form-item>
+        </template>
+        <template v-slot:extra_button>
+          <exportExcel api="jiesuanManage/jiesuan/listTixian" sheet_name="提现记录" :title_obj="titleObj"
+            :extro_params="{ is_export: 1, ...query }">
+          </exportExcel>
+        </template>
+      </Search>
+    </div>
+    <div class="table-default">
+      <el-table :data="tableData" class="mt-3" v-loading="loading">
+        <el-table-column prop="created_at" label="提现时间" min-width="200px" />
+        <el-table-column prop="tixian_money" label="提现金额" show-overflow-tooltip min-width="200px">
+        </el-table-column>
+        <el-table-column prop="card_no" show-overflow-tooltip label="提现账户" min-width="200px">
+        </el-table-column>
+        <el-table-column prop="name_of_payee" label="收款人姓名" min-width="200px" show-overflow-tooltip>
+        </el-table-column>
+        <el-table-column prop="pay_channel" label="支付通道" show-overflow-tooltip min-width="200px">
+        </el-table-column>
+        <el-table-column prop="pay_no" label="银行流水" show-overflow-tooltip min-width="200px" />
+        <el-table-column prop="status_str" label="审核状态" show-overflow-tooltip min-width="150px">
+          <template #default="scope">
+            <div class="wrapper">
+              <span class="text-lg font-bold content">
+                <el-text class="mx-1" :type="colorType(scope.row)">{{ scope.row.status_str }}</el-text>
+              </span>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="remark" label="备注" show-overflow-tooltip min-width="150px">
+        </el-table-column>
+      </el-table>
+      <Paginate />
+    </div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { InfoFilled } from '@element-plus/icons-vue';
+import { useGetList } from '@/hook/curd/useGetList';
+const api = 'jiesuanManage/jiesuan/listTixian';
+import { titleObj } from "./excelTitle"
+const { data, query, search, reset, loading } = useGetList(api);
+const rolesIdentify = inject('rolesIdentify')
+const props = defineProps({
+  primary: Object,
+});
+const statusList = ref([
+  { name: '全部', value: '' },
+  { name: '待审核', value: 1 },
+  { name: '审核失败', value: 2 },
+  { name: '待打款', value: 3 },
+  { name: '已打款', value: 4 },
+  { name: '打款失败', value: 5 },
+])
+const colorType = (data: object) => {
+  const type = data.status
+  switch (type) {
+    case 4:
+      return 'success'
+    case 3:
+      return 'warning'
+    case 1:
+      return 'warning'
+    case 2:
+      return 'danger'
+    case 5:
+      return 'danger'
+  }
+}
+const createTimeChange = (e: object) => {
+  console.log(e, 'timeChangetimeChangetimeChange');
+  if (query.value.createTime) {
+    const timeArr = toRaw(e);
+    query.value.tixian_start_at = timeArr[0]
+    query.value.tixian_end_at = timeArr[1]
+  } else {
+    delete query.value.tixian_start_at
+    delete query.value.tixian_end_at
+  }
+}
+const resetQuery = () => {
+  reset()
+}
+
+const tableData = computed(() => data.value?.data);
+
+onMounted(() => {
+  search();
+});
+</script>
+
+<style scoped lang="scss">
+.table-default {
+  .set-warpper {
+    height: 60px;
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+  }
+
+  .wrapper {
+    margin: 8px;
+
+    .label {
+      margin-right: 6px;
+    }
+
+    .content {
+      font-size: 15px;
+    }
+  }
+}
+</style>