Browse Source

招聘企业:添加会员筛选条件

Xiao_123 3 months ago
parent
commit
68ccd56c80

+ 3 - 10
src/views/menduner/system/enterprise/message/SetVip.vue

@@ -19,7 +19,7 @@
     >
       <el-form-item label="会员套餐" prop="packageId">
         <el-select v-model="formData.packageId" placeholder="请选择会员套餐" @change="handleChange">
-					<el-option v-for="val in packList"	:key="val.id" :label="val.name + ': ' + val.text + `(会员时效增加:${val.day}天)`" :value="val.id" />
+					<el-option v-for="val in packageList"	:key="val.id" :label="val.text + `(会员时效增加:${val.day}天)`" :value="val.id" />
 				</el-select>
       </el-form-item>
       <el-form-item label="是否激活VIP" prop="entitlement.activateVip" :rules="[{ required: true, message: '请设置是否激活VIP', trigger: 'change' }]">
@@ -62,6 +62,7 @@
 defineOptions({ name: 'EnterpriseMessageSetVip' })
 import { EnterpriseApi } from '@/api/menduner/system/enterprise/message'
 
+const props = defineProps({ packageList: Array })
 const message = useMessage() // 消息弹窗
 const dialogVisible = ref(false) // 弹窗的是否展示
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
@@ -82,18 +83,11 @@ const formData = ref({
 })
 const formRef = ref()
 
-// 套餐列表
-const packList = ref([])
-const getPackList = async () => {
-	const data = await EnterpriseApi.getEnterprisePackageList()
-	packList.value = data
-}
-
 // 套餐选择
 const item = ref({})
 const handleChange = (val) => {
   if (!val) return
-  const obj = packList.value.find(e => e.id === val)
+  const obj = props.packageList.value.find(e => e.id === val)
   for (let key in formData.value.entitlement) {
     // 会员标识激活时才设置vip过期时间
     if (key === 'vipExpireDate' && obj.activateVip) {
@@ -117,7 +111,6 @@ const disabledDates = (date) => {
 /** 打开弹窗 */
 const info = ref({})
 const open = async (id: number, vipExpireDate) => {
-	await getPackList()
   dialogVisible.value = true
   resetForm()
 	formData.value.enterpriseId = id

+ 11 - 4
src/views/menduner/system/enterprise/message/details/components/info.vue

@@ -1,9 +1,6 @@
 <template>
   <div>
     <el-descriptions class="margin-top" :column="2" border>
-      <!-- <template #extra>
-        <el-button type="primary">Operation</el-button>
-      </template> -->
     <el-descriptions-item label="企业LOGO">
       <el-image v-if="info.logoUrl" style="width: 100px; height: 100px" :src="info.logoUrl" fit="contain" hide-on-click-modal :preview-src-list="[info.logoUrl]"/>
     </el-descriptions-item>
@@ -26,7 +23,9 @@
     <el-descriptions-item label="企业标签">
       <el-tag type="primary" v-for="k in info.tagList" :key="k" class="m-r-5px">{{ k }}</el-tag>
     </el-descriptions-item>
-    <el-descriptions-item label="会员">{{ info.vipFlag && Number(info.vipFlag) > 0 ? '会员' : '非会员' }}</el-descriptions-item>
+    <el-descriptions-item label="会员">
+      {{ info.vipExpireDate ? info.vipExpireDate > Date.now() ? packageList.find(e => e.id === Number(info.vipFlag))?.text : '会员已过期' : '非会员' }}
+    </el-descriptions-item>
     <el-descriptions-item label="会员到期时间">{{ formatDate(info.vipExpireDate, 'YYYY-MM-DD') }}</el-descriptions-item>
   </el-descriptions>
   </div>
@@ -49,4 +48,12 @@ const getInfo = async () => {
   info.value = data
 }
 getInfo()
+
+// 套餐列表
+const packageList = ref([])
+const getPackList = async () => {
+	const data = await EnterpriseApi.getEnterprisePackageList()
+	packageList.value = data
+}
+getPackList()
 </script>

+ 44 - 6
src/views/menduner/system/enterprise/message/index.vue

@@ -6,7 +6,7 @@
       :model="queryParams"
       ref="queryFormRef"
       :inline="true"
-      label-width="68px"
+      label-width="100px"
     >
       <el-form-item label="企业全称" prop="name" v-hasPermi="['menduner:system:enterprise:query']">
         <el-input
@@ -55,6 +55,32 @@
           class="!w-240px"
         />
       </el-form-item>
+      <el-form-item label="会员套餐" prop="vipFlag">
+        <el-select
+          v-model="queryParams.vipFlag"
+          placeholder="请选择会员套餐"
+          clearable
+          class="!w-240px"
+        >
+          <el-option
+            v-for="dict in packageList"
+            :key="dict.id"
+            :label="dict.text"
+            :value="dict.id"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="会员过期时间" prop="vipExpireDate">
+        <el-date-picker
+          v-model="queryParams.vipExpireDate"
+          value-format="YYYY-MM-DD HH:mm:ss"
+          type="daterange"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+          class="!w-240px"
+        />
+      </el-form-item>
       <el-form-item>
         <el-button v-hasPermi="['menduner:system:enterprise:query']" @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
         <el-button v-hasPermi="['menduner:system:enterprise:query']" @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
@@ -93,9 +119,11 @@
       <el-table-column label="地址" align="center" prop="address" />
       <el-table-column label="会员" align="center" prop="vipFlag">
         <template #default="{ row }">
-          <span :style="{'color': row.vipExpireDate ? row.vipExpireDate > Date.now() ? '#67C23A' : '#E6A23C' : ''}">
-            {{ row.vipExpireDate ? row.vipExpireDate > Date.now() ? '会员' : '过期' : '非会员' }}
-          </span>
+          <span v-if="row.vipExpireDate && row.vipExpireDate > Date.now()" style="color: #67C23A;">{{ packageList.find(e => e.id === Number(row.vipFlag))?.text }}</span>
+          <span v-else :style="{'color': !row.vipExpireDate ? '' : '#E6A23C'}">{{ !row.vipExpireDate ? '非会员' : '过期' }}</span>
+          <!-- <span :style="{'color': row.vipExpireDate ? row.vipExpireDate > Date.now() ? '#67C23A' : '#E6A23C' : ''}">
+            {{ row.vipExpireDate ? row.vipExpireDate > Date.now() ? packageList.find(e => e.id === Number(row.vipFlag))?.text : '过期' : '非会员' }}
+          </span> -->
         </template>
       </el-table-column>
       <el-table-column label="会员到期时间" align="center" prop="vipExpireFormatDate" />
@@ -132,7 +160,7 @@
   <PositionTypeForm ref="positionRef" @success="getList" />
 
   <!-- 会员套餐 -->
-  <SetVip ref="vipPackageRef" @success="getList" />
+  <SetVip ref="vipPackageRef" :packageList="packageList" @success="getList" />
 </template>
 
 <script setup lang="ts">
@@ -167,7 +195,9 @@ const queryParams = reactive({
   industryId: undefined,
   financingStatus: undefined,
   scale: undefined,
-  createTime: undefined
+  createTime: undefined,
+  vipFlag: undefined,
+  vipExpireDate: undefined
 })
 const positionRef = ref()
 const queryFormRef = ref() // 搜索的表单
@@ -181,6 +211,14 @@ const getTree = async () => {
 }
 getTree()
 
+// 套餐列表
+const packageList = ref([])
+const getPackList = async () => {
+	const data = await EnterpriseApi.getEnterprisePackageList()
+	packageList.value = data
+}
+getPackList()
+
 /** 查询列表 */
 const getList = async () => {
   loading.value = true