|
@@ -1,54 +1,66 @@
|
|
<template>
|
|
<template>
|
|
- <el-card shadow="always" :body-style="{ padding: '20px' }">
|
|
|
|
|
|
+ <el-card shadow="always" :body-style="{ padding: '10px' }">
|
|
<template #header>
|
|
<template #header>
|
|
<div class="card-header">
|
|
<div class="card-header">
|
|
- <span>{{ props.primary ? '编辑' : '添加' }}充值模板</span>
|
|
|
|
|
|
+ <span>{{ props.primary ? '编辑' : '添加' }}首充模板</span>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
- <el-form :model="dataForm" label-width="120px" ref="form" v-loading="loading" class="pr-6">
|
|
|
|
|
|
+ <el-form :model="dataForm" label-width="140px" ref="form" v-loading="loading" class="pr-6">
|
|
<el-form-item label="模板名称" prop="name"
|
|
<el-form-item label="模板名称" prop="name"
|
|
:rules="[{ required: true, message: '模板名称必须填写' }, { max: 20, message: '至多输入20个字符', trigger: 'blur' }]">
|
|
:rules="[{ required: true, message: '模板名称必须填写' }, { max: 20, message: '至多输入20个字符', trigger: 'blur' }]">
|
|
<el-input :disabled="Boolean(props.primary)" class="item" v-model="dataForm.name" clearable />
|
|
<el-input :disabled="Boolean(props.primary)" class="item" v-model="dataForm.name" clearable />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="充值档位" prop="options" :rules="[{ required: true, message: '请添加充值档位' }]">
|
|
<el-form-item label="充值档位" prop="options" :rules="[{ required: true, message: '请添加充值档位' }]">
|
|
- <el-card class="w-full" shadow="never">
|
|
|
|
- <div class="pt-5 pl-2">
|
|
|
|
- <Add @click="openGears(null, null)" />
|
|
|
|
|
|
+ <div class="flex flex-wrap justify-start w-full" shadow="never">
|
|
|
|
+ <div class="mr-6" style="width:600px;">
|
|
|
|
+ <div class="pt-5 pl-2">
|
|
|
|
+ <Add @click="openGears(null, null)" />
|
|
|
|
+ </div>
|
|
|
|
+ <el-table :data="tableData" class="w-full mt-3" v-loading="loading">
|
|
|
|
+ <el-table-column prop="price" label="价格">
|
|
|
|
+ <template #default="scope">
|
|
|
|
+ <span>{{ scope.row.price }}元</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="sequence_text" label="位置" />
|
|
|
|
+ <el-table-column prop="type_name" label="挡位类型" />
|
|
|
|
+ <el-table-column prop="default_text" label="默认项">
|
|
|
|
+ <template #default="scope">
|
|
|
|
+ <span>{{ scope.row.is_default ? '默认项' : '非默认项' }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="操作" width="200">
|
|
|
|
+ <template #default="scope">
|
|
|
|
+ <el-button link type="primary" size="small" @click="openGears(scope.$index, scope.row)">编辑</el-button>
|
|
|
|
+ <el-button link type="danger" size="small" @click.prevent="deleteRow(scope.$index)">删除</el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
</div>
|
|
</div>
|
|
- <el-table :data="tableData" class="w-full mt-3" v-loading="loading">
|
|
|
|
- <el-table-column prop="price" label="价格">
|
|
|
|
- <template #default="scope">
|
|
|
|
- <span>{{ scope.row.price }}元</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="sequence_text" label="位置" />
|
|
|
|
- <el-table-column prop="type_name" label="挡位类型" />
|
|
|
|
- <el-table-column prop="charge_coin" label="充看币">
|
|
|
|
- <template #default="scope">
|
|
|
|
- <span v-if="!isShowKb(scope.row)">{{ Math.round(Number(scope.row.price) * 100) }}k币</span>
|
|
|
|
- <span v-else>{{ scope.row.type_name }}</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="given" label="充看送币">
|
|
|
|
- <template #default="scope">
|
|
|
|
- <span>{{ scope.row.given }}k币</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="default_text" label="默认项">
|
|
|
|
- <template #default="scope">
|
|
|
|
- <span>{{ scope.row.is_default ? '默认项' : '非默认项' }}</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column label="操作" width="200">
|
|
|
|
- <template #default="scope">
|
|
|
|
- <el-button link type="primary" size="small" @click="openGears(scope.$index, scope.row)">编辑</el-button>
|
|
|
|
- <el-button link type="danger" size="small" @click.prevent="deleteRow(scope.$index)">删除</el-button>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
- </el-card>
|
|
|
|
|
|
+ <div class="device-wrap">
|
|
|
|
+ <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 tableData" :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>
|
|
|
|
+ </div>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="启用状态" prop="status" :rules="[{ required: true, message: '请设置启用状态' }]">
|
|
|
|
|
|
+ <el-form-item label="是否为默认模板" prop="status" :rules="[{ required: true, message: '请设置是否为默认模板' }]">
|
|
<el-switch v-model="dataForm.status" :active-value="1" :inactive-value="0" />
|
|
<el-switch v-model="dataForm.status" :active-value="1" :inactive-value="0" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<div class="flex justify-start ml-9">
|
|
<div class="flex justify-start ml-9">
|
|
@@ -73,6 +85,7 @@ import {
|
|
import { FormInstance } from 'element-plus';
|
|
import { FormInstance } from 'element-plus';
|
|
import createGears from './createGears.vue'
|
|
import createGears from './createGears.vue'
|
|
const visibleGears = ref(false)
|
|
const visibleGears = ref(false)
|
|
|
|
+const dialogVisible = ref(true)
|
|
const loading = ref(false)
|
|
const loading = ref(false)
|
|
const gearsData = ref()
|
|
const gearsData = ref()
|
|
const tableData = ref([])
|
|
const tableData = ref([])
|
|
@@ -85,6 +98,14 @@ const title = computed(() =>
|
|
'编辑充值档位' : '添加充值档位'
|
|
'编辑充值档位' : '添加充值档位'
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+const gearsName = ref({
|
|
|
|
+ FIRST_COIN: "首充",
|
|
|
|
+ COIN: "普通充值",
|
|
|
|
+ YEAR: "包年",
|
|
|
|
+ QUARTER: "包季",
|
|
|
|
+ MONTH: "包月",
|
|
|
|
+})
|
|
|
|
+
|
|
const optionTypeList = ref([]);
|
|
const optionTypeList = ref([]);
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
primary: String | Number | Object,
|
|
primary: String | Number | Object,
|
|
@@ -217,4 +238,94 @@ onMounted(() => {
|
|
margin: 0 6px;
|
|
margin: 0 6px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+.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>
|
|
</style>
|