瀏覽代碼

用户积分兑换

jiayubo 2 天之前
父節點
當前提交
1c7b60ddd2
共有 11 個文件被更改,包括 90 次插入45 次删除
  1. 15 1
      api/userPoints.js
  2. 37 28
      components/Client/new_file.vue
  3. 38 16
      pages_mine/pages/integral/index.vue
  4. 二進制
      static/img/swipr1.png
  5. 二進制
      static/img/upload.png
  6. 二進制
      static/img/专家服务.png
  7. 二進制
      static/img/临时助手.png
  8. 二進制
      static/img/孩子陪护.png
  9. 二進制
      static/img/家庭保洁.png
  10. 二進制
      static/img/家电维护.png
  11. 二進制
      static/img/老人生活.png

+ 15 - 1
api/userPoints.js

@@ -17,4 +17,18 @@ export function coreUserPointChangeData(params) {
     method: 'get',
     params: params,
   })
-}
+}
+
+// .查询用户字典表
+export function syStemDictList() {
+  return request({
+    url: '/system/dict/data/list',
+    method: 'get',
+    params: {
+      pageNum: 1,
+      pageSize: 10,
+      dictType: 'user_point_change_change_type',
+    },
+  })
+}
+

+ 37 - 28
components/Client/new_file.vue

@@ -1,31 +1,34 @@
 <template>
-	<view>
-		<template>
-			<view class="Wrapper-grid">
-				<view class="serve-title client-title" v-if="userType == 2"></view>
-				<up-grid :border="false" col="3">
-					<up-grid-item v-for="(item, index) in serveiceList" :key="index" @click="handleGridClick(item)">
-						<view class="grid-box">
-							<view class="grid-icon">
-								<image :src="item.businessIcon" class="service-img" mode="aspectFit" />
-							</view>
-							<text class="grid-text">{{ item.businessName }}</text>
-						</view>
-					</up-grid-item>
-				</up-grid>
-				<up-toast ref="uToastRef" />
-
-				<view @click="DataInit" class="paiban-sty" v-if="userType == 2">
-					<image src="/static/serverImg/home/icon/icon8.png" class="service-img" mode="aspectFit" />
-					排班管理
-				</view>
-			</view>
-		</template>
-
-		<Calendar ref="calendar" class="uni-calendar--hook" :clear-date="false" :date="info.date" :insert="info.insert"
-			:lunar="info.lunar" :range="info.range" @change="change" :clearDate="true" @confirm="confirm"
-			:selected="selected" @delete="onDelete" />
-	</view>
+  <view>
+    <template>
+      <view class="Wrapper-grid">
+        <view class="serve-title client-title" v-if="userType == 2"></view>
+        <up-grid :border="false" col="3">
+          <up-grid-item v-for="(item, index) in serveiceList" :key="index" @click="handleGridClick(item)">
+            <view class="grid-box">
+              <view class="grid-icon">
+                <image :src="item.businessIcon" class="service-img" mode="aspectFit" />
+              </view>
+              <view class="grid-content">
+                <text class="grid-text">{{ item.businessName }}</text>
+                <text>{{ item.businessDescribe }}</text>
+              </view>
+            </view>
+          </up-grid-item>
+        </up-grid>
+        <up-toast ref="uToastRef" />
+
+        <view @click="DataInit" class="paiban-sty" v-if="userType == 2">
+          <image src="/static/serverImg/home/icon/icon8.png" class="service-img" mode="aspectFit" />
+          排班管理
+        </view>
+      </view>
+    </template>
+
+    <Calendar ref="calendar" class="uni-calendar--hook" :clear-date="false" :date="info.date" :insert="info.insert"
+      :lunar="info.lunar" :range="info.range" @change="change" :clearDate="true" @confirm="confirm" :selected="selected"
+      @delete="onDelete" />
+  </view>
 
 </template>
 
@@ -233,7 +236,7 @@ onMounted(() => {
 	display: flex;
 	align-items: center;
 	justify-content: center;
-	flex-direction: column;
+	/* flex-direction: column; */
 	margin-bottom: 12rpx;
 }
 
@@ -248,6 +251,12 @@ onMounted(() => {
 	justify-content: center;
 }
 
+.grid-content{
+  display: flex;
+  justify-content: center;
+  flex-direction: column;
+}
+
 .service-img {
 	width: 78rpx;
 	height: 78rpx;

+ 38 - 16
pages_mine/pages/integral/index.vue

@@ -33,13 +33,15 @@
     </view>
 
     <!-- 积分明细 -->
-    <view class="integral-detail-section">
+    <view class="integral-detail-section" v-for="(item, index) in Data" :key="index">
       <view class="integral-detail-title">积分明细</view>
       <view class="integral-detail-list">
         <view class="integral-detail-item">
-          <view class="integral-detail-type">用户推广积分</view>
-          <!-- <view class="integral-detail-date">{{ Data.createTime }}</view> -->
-          <!-- <view class="integral-detail-value add">{{ Data.changePoint }}积分</view> -->
+          <view class="integral-detail-type">
+            {{ dictSortMap[item.changeType] || item.changeType }}
+          </view>
+          <view class="integral-detail-date">{{ item.createTime }}</view>
+          <view class="integral-detail-value add">{{ item.changePoint }}积分</view>
         </view>
         <!-- 可循环渲染多条明细 -->
       </view>
@@ -51,26 +53,45 @@
 </template>
 
 <script setup>
-import { onMounted, ref } from 'vue'
-import { getUserPointInfoData, coreUserPointChangeData } from '@/api/userPoints'
+import { onMounted, ref, computed } from 'vue'
+import { getUserPointInfoData, coreUserPointChangeData, syStemDictList } from '@/api/userPoints'
 
 const List = ref({})//可用积分
-const Data = ref({})//积分明细
-
+const Data = ref([])//积分明细
+const dataList = ref([])
 // 创建响应式数据  
-const show = ref(false);  
-  
+const show = ref(false);
+
 // 定义方法  
-function open() {  
+function open() {
   show.value = true;
   console.log('弹窗打开', show.value);
-}  
-  
-function close() {  
+}
+
+function close() {
   show.value = false;
   console.log('弹窗关闭', show.value);
-}  
+}
 
+const dictSortMap = computed(() => {
+  let mapObj = {}
+  dataList.value.forEach((item) => {
+    mapObj[item.dictValue] = item.dictLabel
+  })
+  return mapObj
+})
+
+async function getListSum() {
+  try {
+    const res = await syStemDictList().catch((err) => {
+      console.error('接口请求失败:', err)
+      throw err // 重新抛出以进入 catch 块
+    })
+    dataList.value = res.rows
+  } catch (e) {
+    console.error('获取数据异常:', e) // 确保这里打印错误
+  }
+}
 
 // 可用积分
 const getData = async () => {
@@ -90,13 +111,14 @@ const getList = async () => {
   //   availablePoint:0,//可兑换积分
   // }
   const res = await coreUserPointChangeData()
-  Data.value = res.data
+  Data.value = res.rows
   console.log(res)
 }
 
 onMounted(() => {
   getData()
   getList()
+  getListSum()
 })
 </script>
 <style lang="scss" scoped>

二進制
static/img/swipr1.png


二進制
static/img/upload.png


二進制
static/img/专家服务.png


二進制
static/img/临时助手.png


二進制
static/img/孩子陪护.png


二進制
static/img/家庭保洁.png


二進制
static/img/家电维护.png


二進制
static/img/老人生活.png