From 47bac0315f6b7f3631467049372bcbf961a1913a Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Sun, 2 Mar 2025 15:05:34 +0800
Subject: [PATCH] sc

---
 .../XjApplet/Vip/components/UserDiscount.vue  |  2 +-
 .../XjApplet/Vip/components/VipDiscount.vue   | 12 +++----
 src/views/XjApplet/Vip/components/VipType.vue | 25 +++++++-------
 src/views/XjApplet/Vip/components/VipUser.vue | 34 ++++++++++++-------
 .../VipData/conponents/SecretData.vue         | 32 ++++++++++-------
 5 files changed, 61 insertions(+), 44 deletions(-)

diff --git a/src/views/XjApplet/Vip/components/UserDiscount.vue b/src/views/XjApplet/Vip/components/UserDiscount.vue
index dc8e04f..5bd272b 100644
--- a/src/views/XjApplet/Vip/components/UserDiscount.vue
+++ b/src/views/XjApplet/Vip/components/UserDiscount.vue
@@ -27,7 +27,7 @@
       @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-item label="手机号" prop="phone">
           <el-input v-model="form.phone" maxlength="11" />
diff --git a/src/views/XjApplet/Vip/components/VipDiscount.vue b/src/views/XjApplet/Vip/components/VipDiscount.vue
index 264bee6..016a7d1 100644
--- a/src/views/XjApplet/Vip/components/VipDiscount.vue
+++ b/src/views/XjApplet/Vip/components/VipDiscount.vue
@@ -31,10 +31,10 @@
       @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-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
               v-for="item in discountTypeOptions"
               :key="item.value"
@@ -46,8 +46,8 @@
         <el-form-item label="折扣描述">
           {{ discountDesc }}
         </el-form-item>
-        <el-form-item v-if="form.discountType == 1" label="科目" prop="subject" :disabled="form.id">
-          <el-select v-model="form.subject" style="width: 100%">
+        <el-form-item v-if="form.discountType == 1" label="科目" prop="subject">
+          <el-select v-model="form.subject" style="width: 100%" :disabled="!!form.id">
             <el-option
               v-for="item in subjectOptions"
               :key="item.value"
@@ -57,7 +57,7 @@
           </el-select>
         </el-form-item>
         <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
               v-for="item in vipTypeOptions"
               :key="item.memberId"
@@ -67,7 +67,7 @@
           </el-select>
         </el-form-item>
         <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
               v-for="item in vipTypeOptions"
               :key="item.memberId"
diff --git a/src/views/XjApplet/Vip/components/VipType.vue b/src/views/XjApplet/Vip/components/VipType.vue
index 45731ea..b9a26b2 100644
--- a/src/views/XjApplet/Vip/components/VipType.vue
+++ b/src/views/XjApplet/Vip/components/VipType.vue
@@ -5,10 +5,10 @@
         <el-input v-model="searchForm.memberName" placeholder="会员名称" />
       </el-form-item>
       <el-form-item>
-        <el-select v-model="searchForm.carTypeId" placeholder="选择车型" clearable filterable>
-          <el-option label="小车" value="1001" />
-          <el-option label="摩托车" value="1002" />
-        </el-select>
+        <el-radio-group v-model="searchForm.carTypeId" @change="searchList">
+          <el-radio label="1001">小车</el-radio>
+          <el-radio label="1002">摩托车</el-radio>
+        </el-radio-group>
       </el-form-item>
       <el-form-item>
         <el-button @click="searchList">查询</el-button>
@@ -29,7 +29,7 @@
           <el-tag v-else type="danger">年</el-tag>
         </template>
       </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">
         <template #default="{ row }">
           <el-button type="primary" link @click="editVip(row)">修改</el-button>
@@ -45,7 +45,7 @@
       @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-item label="会员名称" prop="memberName">
           <el-input v-model="form.memberName" />
@@ -77,8 +77,8 @@
             <el-radio :label="3">年</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="使用方式" prop="type">
-          <el-checkbox-group v-model="form.type">
+        <el-form-item label="使用方式" prop="useTypes">
+          <el-checkbox-group v-model="form.useTypes">
             <el-checkbox :label="1"> 用户购买 </el-checkbox>
             <el-checkbox :label="2"> 客服赠送 </el-checkbox>
           </el-checkbox-group>
@@ -99,8 +99,8 @@
 import { getVipTypeList, addVipType, updateVipType, deleteVipType } from '@/api/xjapplet/vip'
 const message = useMessage()
 const searchForm = ref({
-  memberName: '',
-  carTypeId: undefined,
+  memberName: undefined,
+  carTypeId: '1001',
   pageNo: 1,
   pageSize: 50
 })
@@ -129,13 +129,13 @@ function getList() {
 const showDialog = ref(false)
 const form = ref({
   memberName: '',
-  carTypeId: '',
+  carTypeId: undefined,
   subjects: [],
   price: '',
   discount: '',
   duration: '',
   unit: 1,
-  type: [1]
+  useTypes: [1]
 })
 const rules = ref({
   memberName: [{ required: true, message: '请输入会员名称', trigger: 'blur' }],
@@ -148,6 +148,7 @@ const rules = ref({
 
 function addVip() {
   showDialog.value = true
+  form.value.carTypeId = searchForm.value.carTypeId
 }
 
 function editVip(row) {
diff --git a/src/views/XjApplet/Vip/components/VipUser.vue b/src/views/XjApplet/Vip/components/VipUser.vue
index 82f6716..fa4c330 100644
--- a/src/views/XjApplet/Vip/components/VipUser.vue
+++ b/src/views/XjApplet/Vip/components/VipUser.vue
@@ -5,10 +5,10 @@
         <el-input v-model="searchForm.phone" placeholder="学员手机号" />
       </el-form-item>
       <el-form-item>
-        <el-select v-model="searchForm.carTypeId" placeholder="选择车型" clearable filterable>
-          <el-option label="小车" value="1001" />
-          <el-option label="摩托车" value="1002" />
-        </el-select>
+        <el-radio-group v-model="searchForm.carTypeId" @change="changeCarType">
+          <el-radio label="1001">小车</el-radio>
+          <el-radio label="1002">摩托车</el-radio>
+        </el-radio-group>
       </el-form-item>
       <!-- <el-form-item>
         <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 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="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="startDate" min-width="120" />
       <el-table-column label="结束时间" align="center" prop="endDate" min-width="120" />
@@ -44,7 +48,7 @@
       @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-item label="手机号" prop="phone">
           <el-input v-model="form.phone" maxlength="11" />
@@ -56,7 +60,10 @@
               :key="item.memberId"
               :label="item.memberName"
               :value="item.memberId"
-            />
+            >
+              <span style="float: left">{{ item.memberName }}</span>
+              <span style="float: right; color: #aaa">{{ item.carName }}</span>
+            </el-option>
           </el-select>
         </el-form-item>
       </el-form>
@@ -75,9 +82,9 @@
 import { getUserMemberList, giveUserMember, getVipTypeOptions } from '@/api/xjapplet/vip'
 const message = useMessage()
 const searchForm = ref({
-  carTypeId: undefined,
+  carTypeId: '1001',
   memberId: undefined,
-  phone: '',
+  phone: undefined,
   pageNo: 1,
   pageSize: 50
 })
@@ -89,12 +96,15 @@ const total = ref(0)
 const vipOptions = ref([])
 
 onMounted(() => {
-  getList()
+  changeCarType()
+})
 
-  getVipTypeOptions().then((response) => {
+function changeCarType() {
+  getVipTypeOptions({ carTypeId: searchForm.value.carTypeId }).then((response) => {
     vipOptions.value = response
   })
-})
+  searchList()
+}
 
 function searchList() {
   searchForm.value.pageNo = 1
diff --git a/src/views/XjApplet/VipData/conponents/SecretData.vue b/src/views/XjApplet/VipData/conponents/SecretData.vue
index 64822f8..e7875a8 100644
--- a/src/views/XjApplet/VipData/conponents/SecretData.vue
+++ b/src/views/XjApplet/VipData/conponents/SecretData.vue
@@ -17,7 +17,7 @@
       </el-row>
     </el-form>
     <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="font-size: 18px; font-weight: bold">密卷</div>
           <el-button type="primary" link @click="addMjItem">新增</el-button>
@@ -47,7 +47,12 @@
           <div style="margin-left: 10px; margin-right: 10px"> 题目数:{{ tableList.length }} </div>
           <el-button type="primary" @click="addMjDetail">新增密卷试题</el-button>
         </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 label="题目" align="left" prop="question" min-width="140" />
           <el-table-column label="选项" align="left" min-width="140">
@@ -165,17 +170,18 @@ function addMjItem() {
   })
 }
 function getMjTitle(idx) {
-  const cjObj = {
-    1001: '小车',
-    1002: '摩托车'
-  }
-  const kmObj = {
-    1: '科一',
-    4: '科四'
-  }
-  return `${cjObj[queryParams.value.carTypeId]}${kmObj[queryParams.value.subject]}考前密卷 第${
-    idx + 1
-  }套`
+  // const cjObj = {
+  //   1001: '小车',
+  //   1002: '摩托车'
+  // }
+  // const kmObj = {
+  //   1: '科一',
+  //   4: '科四'
+  // }
+  // return `${cjObj[queryParams.value.carTypeId]}${kmObj[queryParams.value.subject]}考前密卷 第${
+  //   idx + 1
+  // }套`
+  return `考前密卷 第${idx + 1}套`
 }
 function removeMj(item) {
   message