qsh 2 months ago
parent ce0da69b5f
commit 47bac0315f
  1. 2
      src/views/XjApplet/Vip/components/UserDiscount.vue
  2. 12
      src/views/XjApplet/Vip/components/VipDiscount.vue
  3. 25
      src/views/XjApplet/Vip/components/VipType.vue
  4. 34
      src/views/XjApplet/Vip/components/VipUser.vue
  5. 32
      src/views/XjApplet/VipData/conponents/SecretData.vue

@ -27,7 +27,7 @@
@pagination="getList" @pagination="getList"
/> />
<el-dialog title="赠送折扣" v-model="showDialog" width="500px"> <el-dialog title="赠送折扣" v-model="showDialog" width="500px" :close-on-click-modal="false">
<el-form :model="form" ref="formRef" :rules="rules" label-width="80px"> <el-form :model="form" ref="formRef" :rules="rules" label-width="80px">
<el-form-item label="手机号" prop="phone"> <el-form-item label="手机号" prop="phone">
<el-input v-model="form.phone" maxlength="11" /> <el-input v-model="form.phone" maxlength="11" />

@ -31,10 +31,10 @@
@pagination="getList" @pagination="getList"
/> />
<el-dialog title="折扣详情" v-model="showDialog" width="500px"> <el-dialog title="折扣详情" v-model="showDialog" width="500px" :close-on-click-modal="false">
<el-form :model="form" ref="formRef" :rules="rules" label-width="80px"> <el-form :model="form" ref="formRef" :rules="rules" label-width="80px">
<el-form-item label="折扣类型" prop="discountType"> <el-form-item label="折扣类型" prop="discountType">
<el-select v-model="form.discountType" style="width: 100%" :disabled="form.id"> <el-select v-model="form.discountType" style="width: 100%" :disabled="!!form.id">
<el-option <el-option
v-for="item in discountTypeOptions" v-for="item in discountTypeOptions"
:key="item.value" :key="item.value"
@ -46,8 +46,8 @@
<el-form-item label="折扣描述"> <el-form-item label="折扣描述">
{{ discountDesc }} {{ discountDesc }}
</el-form-item> </el-form-item>
<el-form-item v-if="form.discountType == 1" label="科目" prop="subject" :disabled="form.id"> <el-form-item v-if="form.discountType == 1" label="科目" prop="subject">
<el-select v-model="form.subject" style="width: 100%"> <el-select v-model="form.subject" style="width: 100%" :disabled="!!form.id">
<el-option <el-option
v-for="item in subjectOptions" v-for="item in subjectOptions"
:key="item.value" :key="item.value"
@ -57,7 +57,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="变量1" prop="param1"> <el-form-item label="变量1" prop="param1">
<el-select v-model="form.param1" style="width: 100%" clearable :disabled="form.id"> <el-select v-model="form.param1" style="width: 100%" clearable :disabled="!!form.id">
<el-option <el-option
v-for="item in vipTypeOptions" v-for="item in vipTypeOptions"
:key="item.memberId" :key="item.memberId"
@ -67,7 +67,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="变量2" prop="param2"> <el-form-item label="变量2" prop="param2">
<el-select v-model="form.param2" style="width: 100%" :disabled="form.id"> <el-select v-model="form.param2" style="width: 100%" :disabled="!!form.id">
<el-option <el-option
v-for="item in vipTypeOptions" v-for="item in vipTypeOptions"
:key="item.memberId" :key="item.memberId"

@ -5,10 +5,10 @@
<el-input v-model="searchForm.memberName" placeholder="会员名称" /> <el-input v-model="searchForm.memberName" placeholder="会员名称" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select v-model="searchForm.carTypeId" placeholder="选择车型" clearable filterable> <el-radio-group v-model="searchForm.carTypeId" @change="searchList">
<el-option label="小车" value="1001" /> <el-radio label="1001">小车</el-radio>
<el-option label="摩托车" value="1002" /> <el-radio label="1002">摩托车</el-radio>
</el-select> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="searchList">查询</el-button> <el-button @click="searchList">查询</el-button>
@ -29,7 +29,7 @@
<el-tag v-else type="danger"></el-tag> <el-tag v-else type="danger"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="使用方式" align="center" prop="typeName" /> <el-table-column label="使用方式" align="center" prop="useTypeName" />
<el-table-column label="操作" width="160"> <el-table-column label="操作" width="160">
<template #default="{ row }"> <template #default="{ row }">
<el-button type="primary" link @click="editVip(row)">修改</el-button> <el-button type="primary" link @click="editVip(row)">修改</el-button>
@ -45,7 +45,7 @@
@pagination="getList" @pagination="getList"
/> />
<el-dialog title="会员详情" v-model="showDialog" width="500px"> <el-dialog title="会员详情" v-model="showDialog" width="500px" :close-on-click-modal="false">
<el-form :model="form" ref="formRef" :rules="rules" label-width="80px"> <el-form :model="form" ref="formRef" :rules="rules" label-width="80px">
<el-form-item label="会员名称" prop="memberName"> <el-form-item label="会员名称" prop="memberName">
<el-input v-model="form.memberName" /> <el-input v-model="form.memberName" />
@ -77,8 +77,8 @@
<el-radio :label="3"></el-radio> <el-radio :label="3"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="使用方式" prop="type"> <el-form-item label="使用方式" prop="useTypes">
<el-checkbox-group v-model="form.type"> <el-checkbox-group v-model="form.useTypes">
<el-checkbox :label="1"> 用户购买 </el-checkbox> <el-checkbox :label="1"> 用户购买 </el-checkbox>
<el-checkbox :label="2"> 客服赠送 </el-checkbox> <el-checkbox :label="2"> 客服赠送 </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
@ -99,8 +99,8 @@
import { getVipTypeList, addVipType, updateVipType, deleteVipType } from '@/api/xjapplet/vip' import { getVipTypeList, addVipType, updateVipType, deleteVipType } from '@/api/xjapplet/vip'
const message = useMessage() const message = useMessage()
const searchForm = ref({ const searchForm = ref({
memberName: '', memberName: undefined,
carTypeId: undefined, carTypeId: '1001',
pageNo: 1, pageNo: 1,
pageSize: 50 pageSize: 50
}) })
@ -129,13 +129,13 @@ function getList() {
const showDialog = ref(false) const showDialog = ref(false)
const form = ref({ const form = ref({
memberName: '', memberName: '',
carTypeId: '', carTypeId: undefined,
subjects: [], subjects: [],
price: '', price: '',
discount: '', discount: '',
duration: '', duration: '',
unit: 1, unit: 1,
type: [1] useTypes: [1]
}) })
const rules = ref({ const rules = ref({
memberName: [{ required: true, message: '请输入会员名称', trigger: 'blur' }], memberName: [{ required: true, message: '请输入会员名称', trigger: 'blur' }],
@ -148,6 +148,7 @@ const rules = ref({
function addVip() { function addVip() {
showDialog.value = true showDialog.value = true
form.value.carTypeId = searchForm.value.carTypeId
} }
function editVip(row) { function editVip(row) {

@ -5,10 +5,10 @@
<el-input v-model="searchForm.phone" placeholder="学员手机号" /> <el-input v-model="searchForm.phone" placeholder="学员手机号" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select v-model="searchForm.carTypeId" placeholder="选择车型" clearable filterable> <el-radio-group v-model="searchForm.carTypeId" @change="changeCarType">
<el-option label="小车" value="1001" /> <el-radio label="1001">小车</el-radio>
<el-option label="摩托车" value="1002" /> <el-radio label="1002">摩托车</el-radio>
</el-select> </el-radio-group>
</el-form-item> </el-form-item>
<!-- <el-form-item> <!-- <el-form-item>
<el-select v-model="searchForm.memberId" placeholder="选择会员类型" clearable filterable> <el-select v-model="searchForm.memberId" placeholder="选择会员类型" clearable filterable>
@ -29,7 +29,11 @@
<el-table-column type="index" width="55" align="center" /> <el-table-column type="index" width="55" align="center" />
<el-table-column label="手机号" align="center" prop="phone" min-width="140" /> <el-table-column label="手机号" align="center" prop="phone" min-width="140" />
<el-table-column label="会员名" align="center" prop="memberName" min-width="140" /> <el-table-column label="会员名" align="center" prop="memberName" min-width="140" />
<el-table-column label="车型" align="center" prop="carTypeId" min-width="100" /> <el-table-column label="车型" align="center" min-width="100">
<template #default="{ row }">
{{ row.carTypeId == 1001 ? '小车' : '摩托车' }}
</template>
</el-table-column>
<el-table-column label="科目" align="center" prop="subjects" min-width="100" /> <el-table-column label="科目" align="center" prop="subjects" min-width="100" />
<el-table-column label="开始时间" align="center" prop="startDate" min-width="120" /> <el-table-column label="开始时间" align="center" prop="startDate" min-width="120" />
<el-table-column label="结束时间" align="center" prop="endDate" min-width="120" /> <el-table-column label="结束时间" align="center" prop="endDate" min-width="120" />
@ -44,7 +48,7 @@
@pagination="getList" @pagination="getList"
/> />
<el-dialog title="赠送会员" v-model="showDialog" width="500px"> <el-dialog title="赠送会员" v-model="showDialog" width="500px" :close-on-click-modal="false">
<el-form :model="form" ref="formRef" :rules="rules" label-width="80px"> <el-form :model="form" ref="formRef" :rules="rules" label-width="80px">
<el-form-item label="手机号" prop="phone"> <el-form-item label="手机号" prop="phone">
<el-input v-model="form.phone" maxlength="11" /> <el-input v-model="form.phone" maxlength="11" />
@ -56,7 +60,10 @@
:key="item.memberId" :key="item.memberId"
:label="item.memberName" :label="item.memberName"
:value="item.memberId" :value="item.memberId"
/> >
<span style="float: left">{{ item.memberName }}</span>
<span style="float: right; color: #aaa">{{ item.carName }}</span>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -75,9 +82,9 @@
import { getUserMemberList, giveUserMember, getVipTypeOptions } from '@/api/xjapplet/vip' import { getUserMemberList, giveUserMember, getVipTypeOptions } from '@/api/xjapplet/vip'
const message = useMessage() const message = useMessage()
const searchForm = ref({ const searchForm = ref({
carTypeId: undefined, carTypeId: '1001',
memberId: undefined, memberId: undefined,
phone: '', phone: undefined,
pageNo: 1, pageNo: 1,
pageSize: 50 pageSize: 50
}) })
@ -89,12 +96,15 @@ const total = ref(0)
const vipOptions = ref([]) const vipOptions = ref([])
onMounted(() => { onMounted(() => {
getList() changeCarType()
})
getVipTypeOptions().then((response) => { function changeCarType() {
getVipTypeOptions({ carTypeId: searchForm.value.carTypeId }).then((response) => {
vipOptions.value = response vipOptions.value = response
}) })
}) searchList()
}
function searchList() { function searchList() {
searchForm.value.pageNo = 1 searchForm.value.pageNo = 1

@ -17,7 +17,7 @@
</el-row> </el-row>
</el-form> </el-form>
<div style="display: flex; padding: 10px; border: 1px solid #eee; height: calc(100vh - 80px)"> <div style="display: flex; padding: 10px; border: 1px solid #eee; height: calc(100vh - 80px)">
<div style="width: 350px; border-right: 1px solid #eee"> <div style="width: 300px; border-right: 1px solid #eee">
<div style="display: flex; justify-content: space-between; padding-right: 20px"> <div style="display: flex; justify-content: space-between; padding-right: 20px">
<div style="font-size: 18px; font-weight: bold">密卷</div> <div style="font-size: 18px; font-weight: bold">密卷</div>
<el-button type="primary" link @click="addMjItem">新增</el-button> <el-button type="primary" link @click="addMjItem">新增</el-button>
@ -47,7 +47,12 @@
<div style="margin-left: 10px; margin-right: 10px"> 题目数{{ tableList.length }} </div> <div style="margin-left: 10px; margin-right: 10px"> 题目数{{ tableList.length }} </div>
<el-button type="primary" @click="addMjDetail">新增密卷试题</el-button> <el-button type="primary" @click="addMjDetail">新增密卷试题</el-button>
</div> </div>
<el-table v-loading="loading" :data="tableList" style="margin-top: 20px"> <el-table
v-loading="loading"
:data="tableList"
style="margin-top: 10px"
max-height="calc(100vh - 280px)"
>
<el-table-column type="index" width="55" align="center" /> <el-table-column type="index" width="55" align="center" />
<el-table-column label="题目" align="left" prop="question" min-width="140" /> <el-table-column label="题目" align="left" prop="question" min-width="140" />
<el-table-column label="选项" align="left" min-width="140"> <el-table-column label="选项" align="left" min-width="140">
@ -165,17 +170,18 @@ function addMjItem() {
}) })
} }
function getMjTitle(idx) { function getMjTitle(idx) {
const cjObj = { // const cjObj = {
1001: '小车', // 1001: '',
1002: '摩托车' // 1002: ''
} // }
const kmObj = { // const kmObj = {
1: '科一', // 1: '',
4: '科四' // 4: ''
} // }
return `${cjObj[queryParams.value.carTypeId]}${kmObj[queryParams.value.subject]}考前密卷 第${ // return `${cjObj[queryParams.value.carTypeId]}${kmObj[queryParams.value.subject]} ${
idx + 1 // idx + 1
}` // }`
return `考前密卷 第${idx + 1}`
} }
function removeMj(item) { function removeMj(item) {
message message

Loading…
Cancel
Save