zs il y a 1 an
Parent
commit
2e96e48a80
3 fichiers modifiés avec 188 ajouts et 1 suppressions
  1. 3 1
      src/layout/index.vue
  2. 5 0
      src/router/index.js
  3. 180 0
      src/views/sign/index.vue

+ 3 - 1
src/layout/index.vue

@@ -64,6 +64,7 @@
                   <el-dropdown-menu>
                     <el-dropdown-item @click="toOpen">管理中心</el-dropdown-item>
                     <el-dropdown-item @click="toCommon(0)">我的收藏</el-dropdown-item>
+                    <el-dropdown-item @click="toCommon(3)">我的报名</el-dropdown-item>
                     <el-dropdown-item @click="toCommon(2)">个人中心</el-dropdown-item>
                     <el-dropdown-item @click="toLogout">注销</el-dropdown-item>
                   </el-dropdown-menu>
@@ -189,7 +190,8 @@ const toOpen = async () => {
 const toCommon = (type) => {
   if (type == '0') router.push('/search')
   else if (type == '1') router.push('/chat')
-  else router.push('/center')
+  else if (type == '2') router.push('/center')
+  else if (type == '3') router.push('/sign')
 }
 // 发布
 const toRelease = (type) => {

+ 5 - 0
src/router/index.js

@@ -139,6 +139,11 @@ const router = createRouter({
           meta: { title: '吉林省信息技术孵化平台-个人中心' },
           component: () => import('@/views/center/index.vue')
         },
+        {
+          path: '/sign',
+          meta: { title: '吉林省信息技术孵化平台-我的报名' },
+          component: () => import('@/views/sign/index.vue')
+        },
         {
           path: '/help',
           meta: { title: '吉林省信息技术孵化平台-帮助中心' },

+ 180 - 0
src/views/sign/index.vue

@@ -0,0 +1,180 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight">
+        <div class="w_1200">
+          <el-col :span="24" class="one">
+            <el-col
+              :span="24"
+              class="list"
+              v-for="(item, index) in list"
+              :key="index"
+              @click="toView(item)"
+            >
+              <el-col :span="24" class="name">
+                <el-tooltip effect="dark" :content="item.name" placement="top">
+                  {{ item.name || '暂无姓名' }}
+                </el-tooltip>
+              </el-col>
+              <el-row class="other">
+                <el-col :span="8" class="other_1">
+                  <span>手机号:</span>
+                  {{ item.phone || '暂无' }}
+                </el-col>
+                <el-col :span="8" class="other_1">
+                  <span>证件类型:</span>
+                  {{ getDict(item.cardType, 'cardType') }}
+                </el-col>
+                <el-col :span="8" class="other_1">
+                  <span>证件号码:</span>
+                  {{ item.card || '暂无' }}
+                </el-col>
+              </el-row>
+              <el-col :span="24" class="brief textOver">
+                {{ item.remark || '没有更多备注' }}
+              </el-col>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="two">
+            <el-pagination
+              background
+              layout="total, prev, pager, next"
+              :page-sizes="[10, 20, 50, 100, 200]"
+              :total="total"
+              :page-size="limit"
+              v-model:current-page="currentPage"
+              @current-change="changePage"
+              @size-change="sizeChange"
+            >
+            </el-pagination>
+          </el-col>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup>
+import { get } from 'lodash-es'
+const $checkRes = inject('$checkRes')
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
+// 接口
+import { SignStore } from '@/store/api/platform/sign'
+import { DictDataStore } from '@/store/api/system/dictData'
+const store = SignStore()
+const dictDataStore = DictDataStore()
+// 路由
+const router = useRouter()
+// 加载中
+const loading = ref(false)
+// 列表
+const list = ref([])
+let skip = 0
+let limit = inject('limit')
+const total = ref(0)
+// 字典表
+const cardTypeList = ref([])
+// 查看
+const toView = (item) => {
+  router.push({ path: '/innovation/detail', query: { id: item.match } })
+}
+// 请求
+onMounted(async () => {
+  loading.value = true
+  await searchOther()
+  await search({ skip, limit })
+  loading.value = false
+})
+const searchOther = async () => {
+  let result
+  // 证件类型
+  result = await dictDataStore.query({ code: 'cardType', is_use: '0' })
+  if ($checkRes(result)) cardTypeList.value = result.data
+}
+const search = async (query = { skip: 0, limit }) => {
+  const info = {
+    skip: query.skip,
+    limit: query.limit,
+    user: user.value._id
+  }
+  const res = await store.query(info)
+  if (res.errcode == '0') {
+    list.value = res.data
+    total.value = res.total
+  }
+}
+// 字典数据转换
+const getDict = (data, model) => {
+  let res
+  if (model == 'cardType') res = cardTypeList.value.find((f) => f.value == data)
+  return get(res, 'label')
+}
+const currentPage = ref(1)
+// 分页
+const changePage = (page = currentPage.value) => {
+  search({ skip: (page - 1) * limit, limit: limit })
+}
+const sizeChange = (limits) => {
+  limit = limits
+  currentPage.value = 1
+  search({ skip: 0, limit: limit })
+}
+</script>
+<style lang="scss" scoped>
+.main {
+  background: rgb(248, 248, 248);
+  .one {
+    margin-top: 20px;
+    background: #ffffff;
+    border-radius: 10px;
+    padding: 15px;
+
+    .list {
+      margin-bottom: 10px;
+      border-bottom: 1px solid #ebebeb;
+      padding-bottom: 10px;
+
+      .name {
+        color: #337ab7;
+        font-size: 18px;
+        font-weight: bold;
+        display: inline-block;
+        margin: 10px 0;
+      }
+
+      .name:hover {
+        color: #2374ff;
+      }
+
+      .other {
+        padding: 5px 0;
+
+        .other_1 {
+          font-family: 'PingFangSC-Light', 'Microsoft YaHei', 'WenQuanYi Micro Hei', arial,
+            sans-serif;
+          font-size: 12px;
+          font-weight: normal;
+        }
+
+        .other_1:hover {
+          color: #2374ff;
+        }
+      }
+
+      .brief {
+        line-height: 30px;
+        color: #666;
+        font-size: 14px;
+      }
+    }
+  }
+
+  .two {
+    display: flex;
+    flex-direction: row-reverse;
+    padding: 20px;
+  }
+}
+</style>