Browse Source

个人中心

bzkf30 1 year ago
parent
commit
31cdad2482
5 changed files with 2160 additions and 2089 deletions
  1. 2025 2051
      pnpm-lock.yaml
  2. 1 1
      src/pages/home.vue
  3. 11 11
      src/pages/home/wode/index.vue
  4. 39 23
      src/pages/home/wode/wdsy.vue
  5. 84 3
      src/pages/home/wode/wdxx.vue

File diff suppressed because it is too large
+ 2025 - 2051
pnpm-lock.yaml


+ 1 - 1
src/pages/home.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div class="h-full">
     <router-view></router-view>
     <van-tabbar v-model="active" @change="onChange" active-color="#db664d" inactive-color="#b3b3b3">
       <van-tabbar-item v-for="(item, index) in tabData" :key="index" :name="item.name">

+ 11 - 11
src/pages/home/wode/index.vue

@@ -1,18 +1,18 @@
 <template>
-  <div>
+  <div class="h-full flex flex-col overflow-hidden pb-50px box-border">
     <van-nav-bar title="个人中心"></van-nav-bar>
-    <div class="relative my-30px">
-      <div class="text-center">
-        <div class="w-100px h-100px m-auto">
-          <img class="w-full h-full rounded-50px" :src="user?.user_avatar" alt="" />
+    <div class="p-20px flex-1 overflow-auto">
+      <div class="relative my-30px">
+        <div class="text-center">
+          <div class="w-100px h-100px m-auto">
+            <img class="w-full h-full rounded-50px" :src="user?.user_avatar" alt="" />
+          </div>
+          <div class="text-white mt-10px">{{user?.user_name}}</div>
         </div>
-        <div class="text-white mt-10px">{{user?.user_name}}</div>
+        <!-- <div class="absolute right-20px top-0">
+          <img class="w-22px" :src="editImg" alt="" />
+        </div> -->
       </div>
-      <!-- <div class="absolute right-20px top-0">
-        <img class="w-22px" :src="editImg" alt="" />
-      </div> -->
-    </div>
-    <div class="px-20px">
       <div class="flex items-center p-4px box-border bg-hex-1A1B22 rounded-12px text-14px">
         <div class="tab_item" :class="activeTab==index?'active':''" v-for="(item, index) in tabData" :key="index" @click="handleClick(index)">{{item}}</div>
       </div>

+ 39 - 23
src/pages/home/wode/wdsy.vue

@@ -1,25 +1,22 @@
 <template>
-  <div>
+  <div class="h-full flex flex-col overflow-hidden pb-50px box-border">
     <van-nav-bar title="我的声音" @click-left="back">
       <template #left>
         <van-icon name="arrow-left" color="#ffffff" size="18px" />
       </template>
     </van-nav-bar>
-    <div class="px-20px">
-      <div class="flex items-center p-4px box-border bg-hex-1A1B22 rounded-12px text-14px">
-        <div class="type_item" :class="activeType==index?'active':''" v-for="(item, index) in typeData" :key="index" @click="handleTab(index)">{{item}}</div>
-      </div>
-      <!-- <div class="mt-15px grid grid-cols-2 gap-12px">
-        <div class="" v-for="i in 6" :key="i">
-          <img class="w-full" :src="voiceImg" alt="" />
-          <div class="text-center text-white mb-10px">声音{{i}}</div>
-        </div>
-      </div> -->
+    <div class="px-20px flex items-center p-4px box-border bg-hex-1A1B22 rounded-12px text-14px">
+      <div class="type_item" :class="activeType==index?'active':''" v-for="(item, index) in typeData" :key="index" @click="handleTab(index)">{{item.name}}</div>
+    </div>
+    <div class="p-20px flex-1 overflow-auto">
       <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多数据了" @load="onLoad">
         <div class="grid grid-cols-2 gap-12px">
           <div v-for="(item, index) in listData" :key="index" @click="handleClick(item)">
-            <img class="w-full" :src="voiceImg" alt="" />
-            <div class="text-center text-white mb-10px">{{ item.axa_name }}</div>
+            <div v-if="item.axa_img" class="h-110px rounded-14px text-center">
+              <img class="max-w-full h-full rounded-14px" :src="item.axa_img" alt="图片" />
+            </div>
+            <img v-else class="w-full h-110px" :src="voiceImg" alt="" />
+            <div class="text-center text-white mt-6px mb-10px">{{ item.axa_name }}</div>
           </div>
         </div>
       </van-list>
@@ -29,22 +26,33 @@
 
 <script setup>
 import voiceImg from "~/assets/wode/voice.png";
+import { user } from '~/store/user';
 const router = useRouter()
 
 function back() {
   router.back();
 }
 
-
-const typeData = $ref(["通过", "不通过", "待审核"]);
-let activeType = $ref("");
-
-handleTab(0);
+const typeData = $ref([
+  {
+    name: "通过",
+    value: "1"
+  },
+  {
+    name: "不通过",
+    value: "2"
+  },
+  {
+    name: "待审核",
+    value: "3"
+  }
+])
+let activeType = $ref(0);
 function handleTab(index) {
   activeType = index;
+  reGetList()
 }
 
-
 let loading = $ref(false);
 let finished = $ref(false);
 let listData = $ref([]);
@@ -54,18 +62,26 @@ async function onLoad() {
   let obj = {
     page,
     limit,
-    axa_status: ""
+    axa_sycj_shzt_v2: typeData[activeType].value,
+    create_user_id: user.value.user_id
   }
   loading = true;
-  let {code, data} = await request({ url: '/aimooc/xnszr_audio/index', data: obj });
-  if(code == 1) {
+  let { code, data } = await request({ url: '/aimooc/xnszr_audio/index', data: obj });
+  if (code == 1) {
     listData = [...listData, ...data.page_data];
-    finished = data.total_page === page;
+    finished = Number(data.total_page) === Number(page);
     page++
     loading = false;
   }
 }
 
+function reGetList() {
+  page = 1;
+  listData = [];
+  finished = false;
+  onLoad();
+}
+
 
 function handleClick() {
 

+ 84 - 3
src/pages/home/wode/wdxx.vue

@@ -1,21 +1,102 @@
 <template>
-  <div>
+  <div class="h-full flex flex-col overflow-hidden pb-50px box-border">
     <van-nav-bar title="我的形象" @click-left="back">
       <template #left>
         <van-icon name="arrow-left" color="#ffffff" size="18px" />
       </template>
     </van-nav-bar>
+    <div class="px-20px flex items-center p-4px box-border bg-hex-1A1B22 rounded-12px text-14px">
+      <div class="type_item" :class="activeType==index?'active':''" v-for="(item, index) in typeData" :key="index" @click="handleTab(index)">{{item.name}}</div>
+    </div>
+    <div class="p-20px flex-1 overflow-auto">
+      <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多数据了" @load="onLoad">
+        <div class="grid grid-cols-2 gap-12px">
+          <div v-for="(item, index) in listData" :key="index" @click="handleClick(item)">
+            <div class="h-110px bg-hex-004816 rounded-14px text-center">
+              <img class="max-w-full h-full rounded-14px" :src="item.axi_img" alt="图片" />
+            </div>
+            <div class="text-center text-white mt-6px mb-10px">{{ item.axi_name }}</div>
+          </div>
+        </div>
+      </van-list>
+    </div>
   </div>
 </template>
 
 <script setup>
+import voiceImg from "~/assets/wode/voice.png";
+import { user } from '~/store/user';
 const router = useRouter()
 
 function back() {
   router.back();
 }
-</script>
 
-<style>
+const typeData = $ref([
+  {
+    name: "通过",
+    value: "1"
+  },
+  {
+    name: "不通过",
+    value: "2"
+  },
+  {
+    name: "待审核",
+    value: "3"
+  }
+])
+let activeType = $ref(0);
+function handleTab(index) {
+  activeType = index;
+  reGetList()
+}
+
+let loading = $ref(false);
+let finished = $ref(false);
+let listData = $ref([]);
+let page = $ref("1");
+let limit = $ref("10");
+async function onLoad() {
+  let obj = {
+    page,
+    limit,
+    axi_rxcj_shzt_v2: typeData[activeType].value,
+    create_user_id: user.value.user_id
+  }
+  loading = true;
+  let { code, data } = await request({ url: '/aimooc/xnszr_img/index', data: obj });
+  if (code == 1) {
+    listData = [...listData, ...data.page_data];
+    finished = Number(data.total_page) === Number(page);
+    page++
+    loading = false;
+  }
+}
+
+function reGetList() {
+  page = 1;
+  listData = [];
+  finished = false;
+  onLoad();
+}
+
+
+function handleClick() {
+
+}
+</script>
 
+<style lang="scss" scoped>
+.type_item {
+  flex: 1;
+  color: #808080;
+  text-align: center;
+  line-height: 40px;
+  &.active {
+    color: #fff;
+    background: #db664d;
+    border-radius: 8px;
+  }
+}
 </style>