211 lines
6.6 KiB
Vue
211 lines
6.6 KiB
Vue
<template>
|
|
<div class="w-full">
|
|
<div class="layout-padding-auto layout-padding-view">
|
|
<el-row>
|
|
<div class="mb8" style="width: 100%">
|
|
<el-button type="primary" @click="merchantInfoSync">商户信息同步</el-button>
|
|
<el-button type="primary" @click="unitOfAccountSync">记账单位同步</el-button>
|
|
<el-button type="primary" @click="accountInfoSync">账户信息同步</el-button>
|
|
<el-button type="primary" @click="identityInfoSync">身份信息同步</el-button>
|
|
<el-button type="primary" @click="transactionDataSync">交易数据同步</el-button>
|
|
<right-toolbar :search="false" :export="false" class="ml10 mr20" style="float: right" @queryTable="getDataList" />
|
|
</div>
|
|
</el-row>
|
|
|
|
<el-table
|
|
:data="state.dataList"
|
|
v-loading="state.loading"
|
|
border
|
|
:cell-style="tableStyle.cellStyle"
|
|
:header-cell-style="tableStyle.headerCellStyle"
|
|
@sort-change="sortChangeHandle"
|
|
max-height="calc(100vh - 260px)"
|
|
>
|
|
<el-table-column type="index" label="#" width="50" />
|
|
<el-table-column prop="apiUrl" label="apiUrl" show-overflow-tooltip min-width="160" />
|
|
<el-table-column prop="bizType" label="同步类型" min-width="160">
|
|
<template #default="{ row }">
|
|
<dict-tag :value="row.bizType" :options="thrid_zy_biz_type" />
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="orgRes" label="原始res" show-overflow-tooltip>
|
|
<template #default="{ row }">
|
|
<el-button v-if="row.orgRes" text type="primary" @click="row.orgRes && handleClickJsonView(row.orgRes)">查看</el-button>
|
|
<div class="color-danger" v-else>null</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="encipherRes" label="加密res" show-overflow-tooltip>
|
|
<template #default="{ row }">
|
|
<el-button v-if="row.encipherRes" text type="primary" @click="row.encipherRes && handleClickJsonView(row.encipherRes)">
|
|
查看
|
|
</el-button>
|
|
<div class="color-danger" v-else>null</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="orgReq" label="原始req" show-overflow-tooltip>
|
|
<template #default="{ row }">
|
|
<el-button v-if="row.orgReq" text type="primary" @click="row.orgReq && handleClickJsonView(row.orgReq)">查看</el-button>
|
|
<div class="color-danger" v-else>null</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="encipherReq" label="加密req" show-overflow-tooltip>
|
|
<template #default="{ row }">
|
|
<el-button v-if="row.encipherReq" text type="primary" @click="row.encipherReq && handleClickJsonView(row.encipherReq)">
|
|
查看
|
|
</el-button>
|
|
<div class="color-danger" v-else>null</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="error" label="调用错误" show-overflow-tooltip>
|
|
<template #default="{ row }">
|
|
<el-button
|
|
v-if="row.error"
|
|
icon="view"
|
|
@click="row.error && LogDetailRef.openDialog(row.error)"
|
|
size="small"
|
|
text
|
|
type="primary"
|
|
>
|
|
详情
|
|
</el-button>
|
|
<div v-else class="color-danger">null</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="createTime" label="创建时间" show-overflow-tooltip />
|
|
</el-table>
|
|
<pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle" v-bind="state.pagination" />
|
|
</div>
|
|
|
|
<el-dialog v-model="jsonViewVisible">
|
|
<vue-json-pretty :data="jsonData" showLength showLineNumber showIcon :collapsedOnClickBrackets="false" />
|
|
<template #footer>
|
|
<el-button @click="jsonViewVisible = false">关闭</el-button>
|
|
</template>
|
|
</el-dialog>
|
|
|
|
<log-detail ref="LogDetailRef" />
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts" name="systemThirdZyLog">
|
|
import { BasicTableProps, useTable } from "/@/hooks/table"
|
|
import { fetchList } from "/@/api/wallet/third-zy-log"
|
|
import { useDict } from "/@/hooks/dict"
|
|
import VueJsonPretty from "vue-json-pretty"
|
|
import "vue-json-pretty/lib/styles.css"
|
|
import { syncAllDept, syncAllMch, syncAllRole, syncAllUser } from "/@/api/wallet/mch-thrid-zy"
|
|
import { syncNativeCardTradeInfo } from "/@/api/hard/hard-thrid-zy"
|
|
import { useMessage } from "/@/hooks/message"
|
|
import { ElLoading } from "element-plus"
|
|
|
|
const LogDetail = defineAsyncComponent(() => import("./detail.vue"))
|
|
|
|
const LogDetailRef = ref()
|
|
const { thrid_zy_biz_type } = useDict("thrid_zy_biz_type")
|
|
const jsonViewVisible = ref<boolean>()
|
|
const jsonData = ref()
|
|
const state: BasicTableProps = reactive<BasicTableProps>({
|
|
queryForm: {},
|
|
pageList: fetchList,
|
|
})
|
|
const loading = ref()
|
|
|
|
const { getDataList, currentChangeHandle, sizeChangeHandle, sortChangeHandle, tableStyle } = useTable(state)
|
|
|
|
// 点击查看json
|
|
const handleClickJsonView = (json: any) => {
|
|
jsonViewVisible.value = true
|
|
jsonData.value = JSON.parse(json)
|
|
}
|
|
|
|
// 开启全屏loading
|
|
const loadingStart = () => {
|
|
loading.value = ElLoading.service({
|
|
lock: true,
|
|
text: "同步中...",
|
|
background: "rgba(0, 0, 0, 0.7)",
|
|
})
|
|
}
|
|
|
|
// 商户信息同步
|
|
const merchantInfoSync = async () => {
|
|
loadingStart()
|
|
try {
|
|
const res = await syncAllMch()
|
|
if (res.code === 0) {
|
|
return useMessage().success("同步成功")
|
|
}
|
|
useMessage().error("同步失败")
|
|
} catch (error: any) {
|
|
useMessage().error(error)
|
|
} finally {
|
|
loading.value.close()
|
|
loading.value = null
|
|
}
|
|
}
|
|
// 记账单位同步
|
|
const unitOfAccountSync = async () => {
|
|
loadingStart()
|
|
try {
|
|
const res = await syncAllDept()
|
|
if (res.code === 0) {
|
|
return useMessage().success("同步成功")
|
|
}
|
|
useMessage().error("同步失败")
|
|
} catch (error: any) {
|
|
useMessage().error(error)
|
|
} finally {
|
|
loading.value.close()
|
|
loading.value = null
|
|
}
|
|
}
|
|
// 账户信息同步
|
|
const accountInfoSync = async () => {
|
|
loadingStart()
|
|
try {
|
|
const res = await syncAllUser()
|
|
if (res.code === 0) {
|
|
return useMessage().success("同步成功")
|
|
}
|
|
useMessage().error("同步失败")
|
|
} catch (error: any) {
|
|
useMessage().error(error)
|
|
} finally {
|
|
loading.value.close()
|
|
loading.value = null
|
|
}
|
|
}
|
|
// 身份信息同步
|
|
const identityInfoSync = async () => {
|
|
loadingStart()
|
|
try {
|
|
const res = await syncAllRole()
|
|
if (res.code === 0) {
|
|
return useMessage().success("同步成功")
|
|
}
|
|
useMessage().error("同步失败")
|
|
} catch (error: any) {
|
|
useMessage().error(error)
|
|
} finally {
|
|
loading.value.close()
|
|
loading.value = null
|
|
}
|
|
}
|
|
// 交易数据同步
|
|
const transactionDataSync = async () => {
|
|
loadingStart()
|
|
try {
|
|
const res = await syncNativeCardTradeInfo()
|
|
if (res.code === 0) {
|
|
return useMessage().success("同步成功")
|
|
}
|
|
useMessage().error("同步失败")
|
|
} catch (error: any) {
|
|
useMessage().error(error)
|
|
} finally {
|
|
loading.value.close()
|
|
loading.value = null
|
|
}
|
|
}
|
|
</script>
|