|
@@ -118,6 +118,12 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column prop="total_episode_num" label="充值模板" min-width="130px">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-button v-if="scope.row.first_charge_template_str || scope.row.not_first_charge_template_str" link
|
|
|
+ type="primary" size="default" @click="openDetail(scope.row)">充值模板详情</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="callback_config_id" label="备注">
|
|
|
<template #default="scope">
|
|
|
<div class="wrapper">
|
|
@@ -146,7 +152,7 @@
|
|
|
<el-table-column label="推广名称" show-overflow-tooltip>
|
|
|
<template #default="scope">
|
|
|
<div class="wrapper">
|
|
|
- <span class="text-lg font-bold text-blue-400 content">
|
|
|
+ <span class="content">
|
|
|
{{ scope.row.name }}
|
|
|
</span>
|
|
|
</div>
|
|
@@ -159,7 +165,7 @@
|
|
|
<el-table-column prop="total_episode_num" label="入口章节">
|
|
|
<template #default="scope">
|
|
|
<div class="wrapper">
|
|
|
- <span class="text-lg font-bold text-blue-400 content">
|
|
|
+ <span class="content">
|
|
|
{{ scope.row.video_name }}
|
|
|
</span>
|
|
|
</div>
|
|
@@ -168,6 +174,12 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column prop="total_episode_num" label="充值模板" min-width="130px">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-button v-if="scope.row.first_charge_template_str || scope.row.not_first_charge_template_str" link
|
|
|
+ type="primary" size="default" @click="openDetail(scope.row)">充值模板详情</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="操作">
|
|
|
<template #default="scope">
|
|
|
<el-button @click="openType('promotionVisible', scope.row)" link type="primary"
|
|
@@ -192,6 +204,67 @@
|
|
|
<Dialog v-model="backConfigVisible" width="50%" :title="titleBack" destroy-on-close>
|
|
|
<backConfig @close="closeType('backConfigVisible')" :primary="backConfigData"></backConfig>
|
|
|
</Dialog>
|
|
|
+
|
|
|
+ <el-dialog v-model="dialogVisible" title="充值模板详情" width="85%">
|
|
|
+ <div class="flex items-center justify-center">
|
|
|
+ <el-card class="w-full mr-16 box-card" shadow="never">
|
|
|
+ <template #header>
|
|
|
+ <div class="card-header">
|
|
|
+ <span>首充模板</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div class="w-full device-wrap" style="margin:0 auto;">
|
|
|
+ <div class="md-iphone-5 md-white-device">
|
|
|
+ <div class="md-body">
|
|
|
+ <div class="md-buttons"></div>
|
|
|
+ <div class="md-front-camera"></div>
|
|
|
+ <div class="md-top-speaker"></div>
|
|
|
+ <div class="md-screen">
|
|
|
+ <img src="@/assets/pay-config-bg.jpg" alt="" />
|
|
|
+ <div class="preview-list">
|
|
|
+ <div class="pay-item" v-for="(row, i) in detailData?.firstTemplate" :key="i"
|
|
|
+ :class="[row.is_default == 1 ? 'defalut' : '']">
|
|
|
+ <p>{{ row.price }}元</p>
|
|
|
+ <p v-show="row.given">多送{{ row.given }}看币</p>
|
|
|
+ <div class="tipss">{{ gearsName[row.type] }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <button class="md-home-button"></button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+ <el-card class="w-full box-card" shadow="never">
|
|
|
+ <template #header>
|
|
|
+ <div class="card-header">
|
|
|
+ <span>非首充模板</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div class="w-full device-wrap" style="margin:0 auto;">
|
|
|
+ <div class="md-iphone-5 md-white-device">
|
|
|
+ <div class="md-body">
|
|
|
+ <div class="md-buttons"></div>
|
|
|
+ <div class="md-front-camera"></div>
|
|
|
+ <div class="md-top-speaker"></div>
|
|
|
+ <div class="md-screen">
|
|
|
+ <img src="@/assets/pay-config-bg.jpg" alt="" />
|
|
|
+ <div class="preview-list">
|
|
|
+ <div class="pay-item" v-for="(row, i) in detailData?.notFirstTemplate" :key="i"
|
|
|
+ :class="[row.is_default == 1 ? 'defalut' : '']">
|
|
|
+ <p>{{ row.price }}元</p>
|
|
|
+ <p v-show="row.given">多送{{ row.given }}看币</p>
|
|
|
+ <div class="tipss">{{ gearsName[row.type] }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <button class="md-home-button"></button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -206,6 +279,7 @@ import { useGetList } from '@/hook/curd/useGetList';
|
|
|
import Cache from '@/support/cache';
|
|
|
const activeName = ref(1)
|
|
|
import { tuiguangPromotionDel } from '@/api/promotion/index'
|
|
|
+import { channelPaytemplateShow } from '@/api/charge/index'
|
|
|
const api = 'tuiguang/promotion/list';
|
|
|
const router = useRouter()
|
|
|
const route = useRoute()
|
|
@@ -215,7 +289,17 @@ const promotionData = ref({})
|
|
|
const backConfigVisible = ref(false)
|
|
|
const backConfigData = ref({})
|
|
|
const current = ref({})
|
|
|
+const dialogVisible = ref(false)
|
|
|
+const detailData = ref({ firstTemplate: [], notFirstTemplate: [] })
|
|
|
const titleBack = computed(() => activeName.value ? '更新回传配置' : '回传配置')
|
|
|
+const gearsName = ref({
|
|
|
+ FIRST_COIN: "首充",
|
|
|
+ COIN: "普通充值",
|
|
|
+ YEAR: "包年",
|
|
|
+ QUARTER: "包季",
|
|
|
+ MONTH: "包月",
|
|
|
+})
|
|
|
+
|
|
|
const colorType = (data: object) => {
|
|
|
const type = data.status
|
|
|
switch (type) {
|
|
@@ -236,6 +320,19 @@ const timeChange = (e) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+const openDetail = (row: object) => {
|
|
|
+ current.value = row;
|
|
|
+ channelPaytemplateShow(row.first_charge_template_id).then(res => {
|
|
|
+ dialogVisible.value = true;
|
|
|
+ detailData.value.firstTemplate = res.data.template_item_list
|
|
|
+ })
|
|
|
+ channelPaytemplateShow(row.not_first_charge_template_id).then(res => {
|
|
|
+ dialogVisible.value = true;
|
|
|
+ detailData.value.notFirstTemplate = res.data.template_item_list
|
|
|
+ })
|
|
|
+ console.log(detailData.value, 'detailData.valuedetailData.value');
|
|
|
+}
|
|
|
+
|
|
|
const goToTtHuicHuan = (row: object) => {
|
|
|
router.push({ path: '/payback/juliangAccount', query: { id: row.callback_config_id } })
|
|
|
}
|
|
@@ -345,4 +442,94 @@ onMounted(() => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+.device-wrap {
|
|
|
+ width: 350px;
|
|
|
+ margin-left: 20px;
|
|
|
+ margin-top: 20px;
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ border-bottom-left-radius: 40px;
|
|
|
+ border-bottom-right-radius: 40px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .preview-list {
|
|
|
+ position: absolute;
|
|
|
+ top: 100px;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ padding: 15px;
|
|
|
+ padding-top: 30px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ flex-flow: row wrap;
|
|
|
+ }
|
|
|
+
|
|
|
+ .pay-item {
|
|
|
+ width: 46%;
|
|
|
+ margin-right: 4%;
|
|
|
+ height: 80px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ background: #e6e6e6;
|
|
|
+ border-radius: 10px;
|
|
|
+ position: relative;
|
|
|
+ box-sizing: border-box;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ &.defalut {
|
|
|
+ border: 1px solid #fd555d;
|
|
|
+ }
|
|
|
+
|
|
|
+ .tipss {
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ height: 20px;
|
|
|
+ line-height: 20px;
|
|
|
+ top: 0;
|
|
|
+ padding: 0 4px;
|
|
|
+ background-color: #fd555d;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:nth-child(2n) {
|
|
|
+ margin-right: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ p {
|
|
|
+ width: 100%;
|
|
|
+ line-height: 20px;
|
|
|
+ color: #000;
|
|
|
+ font-size: 12px;
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ &:first-child {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+
|
|
|
+ span {
|
|
|
+ display: inline-block;
|
|
|
+ padding: 0 2px;
|
|
|
+ background: #fd555d;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 10px;
|
|
|
+ margin-left: 5px;
|
|
|
+ vertical-align: top;
|
|
|
+ transform: scale(0.8);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ color: #666;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|