Browse Source

修改个人中心

zs 8 months ago
parent
commit
66056f20bd

BIN
public/images/center_1.png


+ 0 - 95
src/assets/icon/iconfont.css

@@ -1,95 +0,0 @@
-@font-face {
-  font-family: 'iconfont'; /* Project id 4079354 */
-  src:
-    url('iconfont.woff2?t=1685509924120') format('woff2'),
-    url('iconfont.woff?t=1685509924120') format('woff'),
-    url('iconfont.ttf?t=1685509924120') format('truetype');
-}
-
-.iconfont {
-  font-family: 'iconfont' !important;
-  font-size: 16px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-.icon-dengji:before {
-  content: '\e610';
-}
-
-.icon-shenhezhong:before {
-  content: '\e682';
-}
-
-.icon-dkw_shenheweitongguo:before {
-  content: '\e604';
-}
-
-.icon-shenhetongguo:before {
-  content: '\e668';
-}
-
-.icon-hearts-fill:before {
-  content: '\e702';
-}
-
-.icon-xiaoyouhui:before {
-  content: '\e601';
-}
-
-.icon-youjiantou-copy:before {
-  content: '\e654';
-}
-
-.icon-6ruxueshijian:before {
-  content: '\e88a';
-}
-
-.icon-zhuanyezhuanyeke:before {
-  content: '\e6a1';
-}
-
-.icon-commpany:before {
-  content: '\e612';
-}
-
-.icon-zhiwuguanli:before {
-  content: '\e60f';
-}
-
-.icon-guanzhu:before {
-  content: '\e611';
-}
-
-.icon-guanzhu1:before {
-  content: '\e600';
-}
-
-.icon-edu-line:before {
-  content: '\e63a';
-}
-
-.icon-gender:before {
-  content: '\e63e';
-}
-
-.icon-xingming:before {
-  content: '\e640';
-}
-
-.icon-jibenxinxi:before {
-  content: '\e67c';
-}
-
-.icon-iocn_be_concern:before {
-  content: '\e607';
-}
-
-.icon-tupianshangchuan:before {
-  content: '\e639';
-}
-
-.icon-wodeguanzhu:before {
-  content: '\e8bc';
-}

File diff suppressed because it is too large
+ 0 - 1
src/assets/icon/iconfont.js


+ 0 - 149
src/assets/icon/iconfont.json

@@ -1,149 +0,0 @@
-{
-  "id": "4079354",
-  "name": "校友信息登记",
-  "font_family": "iconfont",
-  "css_prefix_text": "icon-",
-  "description": "",
-  "glyphs": [
-    {
-      "icon_id": "1327399",
-      "name": "登记",
-      "font_class": "dengji",
-      "unicode": "e610",
-      "unicode_decimal": 58896
-    },
-    {
-      "icon_id": "1480896",
-      "name": "审核中",
-      "font_class": "shenhezhong",
-      "unicode": "e682",
-      "unicode_decimal": 59010
-    },
-    {
-      "icon_id": "2078809",
-      "name": "dkw_审核未通过",
-      "font_class": "dkw_shenheweitongguo",
-      "unicode": "e604",
-      "unicode_decimal": 58884
-    },
-    {
-      "icon_id": "10087856",
-      "name": "审核通过",
-      "font_class": "shenhetongguo",
-      "unicode": "e668",
-      "unicode_decimal": 58984
-    },
-    {
-      "icon_id": "35094512",
-      "name": "关心",
-      "font_class": "hearts-fill",
-      "unicode": "e702",
-      "unicode_decimal": 59138
-    },
-    {
-      "icon_id": "2726796",
-      "name": "校友会",
-      "font_class": "xiaoyouhui",
-      "unicode": "e601",
-      "unicode_decimal": 58881
-    },
-    {
-      "icon_id": "10515596",
-      "name": "右箭头",
-      "font_class": "youjiantou-copy",
-      "unicode": "e654",
-      "unicode_decimal": 58964
-    },
-    {
-      "icon_id": "518145",
-      "name": "6 入学时间",
-      "font_class": "6ruxueshijian",
-      "unicode": "e88a",
-      "unicode_decimal": 59530
-    },
-    {
-      "icon_id": "16365912",
-      "name": "专业 专业课",
-      "font_class": "zhuanyezhuanyeke",
-      "unicode": "e6a1",
-      "unicode_decimal": 59041
-    },
-    {
-      "icon_id": "376346",
-      "name": "工作单位",
-      "font_class": "commpany",
-      "unicode": "e612",
-      "unicode_decimal": 58898
-    },
-    {
-      "icon_id": "11672365",
-      "name": "职务管理",
-      "font_class": "zhiwuguanli",
-      "unicode": "e60f",
-      "unicode_decimal": 58895
-    },
-    {
-      "icon_id": "8712978",
-      "name": "关注",
-      "font_class": "guanzhu",
-      "unicode": "e611",
-      "unicode_decimal": 58897
-    },
-    {
-      "icon_id": "9714399",
-      "name": "关注",
-      "font_class": "guanzhu1",
-      "unicode": "e600",
-      "unicode_decimal": 58880
-    },
-    {
-      "icon_id": "6119296",
-      "name": "学历",
-      "font_class": "edu-line",
-      "unicode": "e63a",
-      "unicode_decimal": 58938
-    },
-    {
-      "icon_id": "6183156",
-      "name": "性别",
-      "font_class": "gender",
-      "unicode": "e63e",
-      "unicode_decimal": 58942
-    },
-    {
-      "icon_id": "20764666",
-      "name": "姓名",
-      "font_class": "xingming",
-      "unicode": "e640",
-      "unicode_decimal": 58944
-    },
-    {
-      "icon_id": "6856906",
-      "name": "基本信息",
-      "font_class": "jibenxinxi",
-      "unicode": "e67c",
-      "unicode_decimal": 59004
-    },
-    {
-      "icon_id": "1048854",
-      "name": "被关注",
-      "font_class": "iocn_be_concern",
-      "unicode": "e607",
-      "unicode_decimal": 58887
-    },
-    {
-      "icon_id": "2506206",
-      "name": "图片上传",
-      "font_class": "tupianshangchuan",
-      "unicode": "e639",
-      "unicode_decimal": 58937
-    },
-    {
-      "icon_id": "11372718",
-      "name": "我的关注",
-      "font_class": "wodeguanzhu",
-      "unicode": "e8bc",
-      "unicode_decimal": 59580
-    }
-  ]
-}

BIN
src/assets/icon/iconfont.ttf


BIN
src/assets/icon/iconfont.woff


BIN
src/assets/icon/iconfont.woff2


+ 172 - 0
src/layout/index.vue

@@ -0,0 +1,172 @@
+<template>
+  <div class="index">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
+        <div class="left">
+          <div class="left_1">
+            <el-image class="image" v-if="configInfo && configInfo.logoUrl && configInfo.logoUrl.length > 0" :src="getUrl(configInfo.logoUrl)" fit="fill" />
+            <el-image class="image" v-else :src="siteInfo.logoUrl" fit="fill" />
+            <div class="left_title">{{ configInfo.zhTitle || siteInfo.zhTitle }}</div>
+          </div>
+          <div class="left_2">
+            <div class="menus" :class="[item.route_name == acitveKey ? 'menuTrue' : '']" v-for="item in menuList3" :key="item.id" @click="toActive(item)">
+              <component class="icon" :is="item.icon"></component>
+              <span class="name">{{ item.name }}</span>
+            </div>
+          </div>
+        </div>
+        <div class="right">
+          <div class="right_1">
+            <div class="name">{{ user.nick_name || '暂无昵称' }}</div>
+            <div class="layout" @click="toOut">
+              <LoginOutlined />
+              <span>退出</span>
+            </div>
+          </div>
+          <div class="right_2">
+            <router-view></router-view>
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup>
+import { LoginOutlined } from '@ant-design/icons-vue'
+import { siteInfo, menuList3 } from '@/layout/site'
+// 接口
+import { DesignStore } from '@/store/api/platform/design'
+const designStore = DesignStore()
+
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
+// 加载中
+const loading = ref(false)
+// 路由
+const router = useRouter()
+const route = useRoute()
+
+const acitveKey = ref(route.name)
+
+const $checkRes = inject('$checkRes')
+const configInfo = ref({})
+
+// 请求
+onMounted(async () => {
+  await searchOther()
+})
+const searchOther = async () => {
+  // 基础设置
+  const result = await designStore.query({})
+  if ($checkRes(result)) {
+    configInfo.value = result.data[0] || {}
+  }
+}
+const toActive = async (item) => {
+  acitveKey.value = item.route_name
+  router.push({ path: item.path })
+}
+// 退出登录
+const toOut = () => {
+  userStore.logOut()
+  router.push({ path: '/login', query: { status: '1' } })
+}
+const getUrl = (item) => {
+  if (item && item.length > 0) return `${import.meta.env.VITE_APP_HOST}${item[0].uri}`
+}
+</script>
+<style scoped lang="scss">
+.main {
+  display: flex;
+  background: #f1f6f9;
+  min-height: 100vh;
+  .left {
+    width: 20%;
+    background: linear-gradient(180deg, #165aa0, #4942dd);
+    height: 100%;
+    border-top-right-radius: 40px;
+    border-bottom-right-radius: 40px;
+    .left_1 {
+      padding-top: 20px;
+      padding-left: 10px;
+      padding-right: 10px;
+      color: #ffffff;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      .image {
+        height: 60px;
+        width: 220px;
+      }
+      .left_title {
+        padding: 10px 0 0 0;
+        font-size: $global-font-size-24;
+        font-family: 'Comic Sans MS', cursive;
+      }
+    }
+    .left_2 {
+      padding-left: 15px;
+      padding-top: 25px;
+      .menus {
+        font-size: $global-font-size-20;
+        font-weight: 500;
+        color: #fff;
+        height: 67px;
+        line-height: 67px;
+        padding-left: 80px;
+        border-bottom-left-radius: 33px;
+        border-top-left-radius: 33px;
+        position: relative;
+        cursor: pointer;
+        .icon {
+          display: inline-block;
+          width: 1em;
+          height: 1em;
+          overflow: hidden;
+          vertical-align: -0.15em;
+          outline: none;
+          margin-right: 5px;
+        }
+      }
+      .menuTrue {
+        background: #f1f6f9;
+        color: #3961aa;
+      }
+      .menuTrue:after {
+        content: url(/images/center_1.png);
+        position: absolute;
+        right: 0;
+        top: -43px;
+      }
+    }
+  }
+  .right {
+    width: 80%;
+    padding: 0 20px;
+    .right_1 {
+      display: flex;
+      justify-content: flex-end;
+      height: 80px;
+      line-height: 80px;
+      font-size: $global-font-size-20;
+      .layout {
+        padding: 0 10px 0 20px;
+        color: #8a8b8c;
+        cursor: pointer;
+        span {
+          margin: 0 0 0 5px;
+        }
+      }
+    }
+    .right_2 {
+      width: 100%;
+      min-height: 90vh;
+      background: #fff;
+      border-radius: 10px;
+      padding: 20px;
+    }
+  }
+}
+</style>

+ 10 - 0
src/layout/site.js

@@ -138,3 +138,13 @@ export const menuList2 = [
   { key: '12', title: '产业孵化大脑', route: 'brain', English: 'Achievement Display', label: '产业孵化大脑' },
   { key: '13', title: '行研产研', route: 'thirteen', English: 'Research Development', label: '行研产研' }
 ]
+// 目录设置
+export const menuList3 = [
+  { id: 1, name: '基本信息', route_name: 'center', path: '/center', icon: 'House' },
+  { id: 2, name: '认证入驻', route_name: 'attestation', path: '/attestation', icon: 'House' },
+  { id: 3, name: '通知管理', route_name: 'notice', path: '/notice', icon: 'House' },
+  { id: 4, name: '成果管理', route_name: 'achievement', path: '/achievement', icon: 'House' },
+  { id: 5, name: '需求管理', route_name: 'demand', path: '/demand', icon: 'House' },
+  { id: 6, name: '我的收藏', route_name: 'collect', path: '/collect', icon: 'House' },
+  { id: 7, name: '活动管理', route_name: 'match', path: '/match', icon: 'House' }
+]

+ 48 - 4
src/router/index.js

@@ -1,5 +1,6 @@
 import { createRouter, createWebHistory } from 'vue-router'
 import { UserStore } from '@/store/user'
+export const Layout = () => import('@/layout/index.vue')
 import axios from 'axios'
 const router = createRouter({
   history: createWebHistory(import.meta.env.BASE_URL),
@@ -248,10 +249,53 @@ const router = createRouter({
       component: () => import('@/views/search/index.vue')
     },
     {
-      path: '/center',
-      name: 'center',
-      meta: { title: '产学研用协同创新数字化平台-个人中心' },
-      component: () => import('@/views/center/index.vue')
+      path: '/layout',
+      name: 'Layout',
+      component: Layout,
+      children: [
+        {
+          path: '/center',
+          name: 'center',
+          meta: { title: '产学研用协同创新数字化平台-基本信息' },
+          component: () => import('@/views/center/basic.vue')
+        },
+        {
+          path: '/attestation',
+          name: 'attestation',
+          meta: { title: '产学研用协同创新数字化平台-认证入驻' },
+          component: () => import('@/views/center/attestation.vue')
+        },
+        {
+          path: '/notice',
+          name: 'notice',
+          meta: { title: '产学研用协同创新数字化平台-通知管理' },
+          component: () => import('@/views/center/notice.vue')
+        },
+        {
+          path: '/achievement',
+          name: 'achievement',
+          meta: { title: '产学研用协同创新数字化平台-成果管理' },
+          component: () => import('@/views/center/achievement.vue')
+        },
+        {
+          path: '/demand',
+          name: 'demand',
+          meta: { title: '产学研用协同创新数字化平台-需求管理' },
+          component: () => import('@/views/center/demand.vue')
+        },
+        {
+          path: '/collect',
+          name: 'collect',
+          meta: { title: '产学研用协同创新数字化平台-我的收藏' },
+          component: () => import('@/views/center/collect.vue')
+        },
+        {
+          path: '/match',
+          name: 'match',
+          meta: { title: '产学研用协同创新数字化平台-活动管理' },
+          component: () => import('@/views/center/match.vue')
+        }
+      ]
     },
     {
       path: '/loading',

+ 23 - 0
src/views/center/achievement.vue

@@ -0,0 +1,23 @@
+<template>
+  <div class="index">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
+        <el-col :span="24" class="one">成果管理 </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup>
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
+// 加载中
+const loading = ref(false)
+// 路由
+const router = useRouter()
+</script>
+<style scoped lang="scss">
+.main {
+}
+</style>

+ 23 - 0
src/views/center/attestation.vue

@@ -0,0 +1,23 @@
+<template>
+  <div class="index">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
+        <el-col :span="24" class="one">认证入驻 </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup>
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
+// 加载中
+const loading = ref(false)
+// 路由
+const router = useRouter()
+</script>
+<style scoped lang="scss">
+.main {
+}
+</style>

+ 23 - 0
src/views/center/basic.vue

@@ -0,0 +1,23 @@
+<template>
+  <div class="index">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
+        <el-col :span="24" class="one">基本信息 </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup>
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
+// 加载中
+const loading = ref(false)
+// 路由
+const router = useRouter()
+</script>
+<style scoped lang="scss">
+.main {
+}
+</style>

+ 23 - 0
src/views/center/collect.vue

@@ -0,0 +1,23 @@
+<template>
+  <div class="index">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
+        <el-col :span="24" class="one">我的收藏 </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup>
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
+// 加载中
+const loading = ref(false)
+// 路由
+const router = useRouter()
+</script>
+<style scoped lang="scss">
+.main {
+}
+</style>

+ 23 - 0
src/views/center/demand.vue

@@ -0,0 +1,23 @@
+<template>
+  <div class="index">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
+        <el-col :span="24" class="one">需求管理 </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup>
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
+// 加载中
+const loading = ref(false)
+// 路由
+const router = useRouter()
+</script>
+<style scoped lang="scss">
+.main {
+}
+</style>

+ 0 - 320
src/views/center/index.vue

@@ -1,320 +0,0 @@
-<template>
-  <custom-layout class="main">
-    <div class="w_1300 one">
-      <el-tabs v-model="activeName" type="card" class="tabs">
-        <el-tab-pane label="个人中心" name="first">
-          <el-col :span="24" class="one_1"> 基本信息</el-col>
-          <el-col :span="24" class="one_2">
-            <el-form label-position="top" ref="FormRef" :model="form" :rules="rules" label-width="80px" class="form">
-              <el-form-item label="账号" prop="account">
-                <el-input size="large" clearable disabled v-model="form.account" placeholder="请输入账号">
-                  <template #prefix>
-                    <el-icon>
-                      <User />
-                    </el-icon>
-                  </template>
-                </el-input>
-              </el-form-item>
-              <el-form-item label="板块选择" prop="plate">
-                <el-checkbox-group v-model="form.plate">
-                  <el-checkbox v-for="(item, index) in plateList" :key="index" :value="item.title" name="type">{{ item.title }}</el-checkbox>
-                </el-checkbox-group>
-              </el-form-item>
-              <el-form-item label="昵称" prop="nick_name">
-                <el-input size="large" clearable v-model="form.nick_name" placeholder="请输入昵称">
-                  <template #prefix>
-                    <el-icon>
-                      <Avatar />
-                    </el-icon>
-                  </template>
-                </el-input>
-              </el-form-item>
-              <el-form-item label="性别" prop="gender">
-                <el-select size="large" v-model="form.gender" width="100%" placeholder="请选择性别">
-                  <el-option v-for="(item, index) in genderList" :key="index" :label="item.label" :value="item.value" />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="手机号" prop="phone">
-                <el-input size="large" clearable v-model="form.phone" placeholder="请输入手机号">
-                  <template #prefix>
-                    <el-icon>
-                      <Iphone />
-                    </el-icon>
-                  </template>
-                </el-input>
-              </el-form-item>
-              <el-form-item label="电子邮箱" prop="email">
-                <el-input size="large" clearable v-model="form.email" placeholder="请填入正确的电子邮箱">
-                  <template #prefix>
-                    <el-icon>
-                      <Message />
-                    </el-icon>
-                  </template>
-                </el-input>
-              </el-form-item>
-              <el-col :span="24" class="button">
-                <el-button type="primary" @click="submitForm(FormRef)">保存</el-button>
-              </el-col>
-            </el-form>
-          </el-col>
-          <el-row v-if="form.role_type != 'User'">
-            <el-col :span="24" class="one_1">
-              基本资料
-              <span>(注意:如需修改信息需要重新审核才可显示!)</span>
-            </el-col>
-            <el-col :span="24" class="one_2">
-              <expert v-if="form.role_type == 'Expert'"></expert>
-              <company v-if="form.role_type == 'Company'"></company>
-              <incubator v-if="form.role_type == 'Incubator'"></incubator>
-              <competition v-if="form.role_type == 'Competition'"></competition>
-              <investment v-if="form.role_type == 'Investment'"></investment>
-              <association v-if="form.role_type == 'Association'"></association>
-              <state v-if="form.role_type == 'State'"></state>
-              <unit v-if="form.role_type == 'Unit'"></unit>
-            </el-col>
-          </el-row>
-        </el-tab-pane>
-        <el-tab-pane label="修改密码" name="second">
-          <el-col :span="24" class="one_2">
-            <el-form label-position="top" ref="secondRule" :model="secondForm" :rules="secondRules" label-width="80px" class="form">
-              <el-form-item label="新密码" prop="password">
-                <el-input size="large" v-model="secondForm.password" type="password" show-password placeholder="请输入新密码">
-                  <template #prefix>
-                    <el-icon>
-                      <Unlock />
-                    </el-icon>
-                  </template>
-                </el-input>
-              </el-form-item>
-              <el-form-item label="确认密码" prop="refpassword">
-                <el-input size="large" v-model="secondForm.refpassword" type="password" show-password placeholder="请再次确认输入密码">
-                  <template #prefix>
-                    <el-icon>
-                      <Unlock />
-                    </el-icon>
-                  </template>
-                </el-input>
-              </el-form-item>
-              <el-col :span="24" class="button">
-                <el-button type="primary" @click="submit(secondRule)">修改密码</el-button>
-              </el-col>
-            </el-form>
-          </el-col>
-        </el-tab-pane>
-      </el-tabs>
-    </div>
-  </custom-layout>
-</template>
-
-<script setup>
-import { cloneDeep } from 'lodash-es'
-// 组件
-import association from './parts/association.vue'
-import company from './parts/company.vue'
-import competition from './parts/competition.vue'
-import expert from './parts/expert.vue'
-import incubator from './parts/incubator.vue'
-import state from './parts/state.vue'
-import unit from './parts/unit.vue'
-import investment from './parts/investment.vue'
-// 接口
-import { UserStore } from '@/store/user'
-const userStore = UserStore()
-const user = computed(() => userStore.user)
-const router = useRouter()
-import { UsersStore } from '@/store/api/user/user'
-const store = UsersStore()
-import { DictDataStore } from '@/store/api/system/dictData'
-import { RegionStore } from '@/store/api/system/region'
-import { SectorStore } from '@/store/api/platform/sector'
-import { LoginStore } from '@/store/api/login'
-const loginStore = LoginStore()
-const dictDataStore = DictDataStore()
-const regionStore = RegionStore()
-const sectorStore = SectorStore()
-const $checkRes = inject('$checkRes')
-// 加载中
-const loading = ref(false)
-const activeName = ref('first')
-const form = ref({})
-// 表单验证
-const ruleFormRef = ref()
-const FormRef = ref()
-const validatePhoneNumber = (rule, value, callback) => {
-  const reg = /^1[3-9]\d{9}$/
-  if (!value) {
-    return callback(new Error('手机号不能为空'))
-  }
-  if (!reg.test(value)) {
-    return callback(new Error('请输入正确的手机号'))
-  }
-  callback()
-}
-const validatePassword = (rule, value, callback) => {
-  if (!value) {
-    return callback(new Error('请输入确认密码'))
-  }
-  if (secondForm.value.password !== value) {
-    callback(new Error('两次输入的密码不一致'))
-  } else {
-    callback()
-  }
-}
-const rules = reactive({
-  nick_name: [{ required: true, message: '请输入昵称', trigger: 'blur' }],
-  gender: [{ required: true, message: '请选择性别', trigger: 'blur' }],
-  phone: [{ required: true, validator: validatePhoneNumber, trigger: 'blur' }],
-  email: [{ required: true, message: '请输入电子邮箱', trigger: 'blur' }],
-  account: [{ required: true, message: '请输入账号', trigger: 'blur' }],
-  plate: [{ required: true, message: '请选择板块', trigger: 'blur' }]
-})
-const secondRule = ref()
-const secondForm = ref({})
-const secondRules = reactive({
-  password: [{ required: true, message: '请输入新密码', trigger: 'blur' }],
-  refpassword: [{ required: true, validator: validatePassword, trigger: 'blur' }]
-})
-// 字典
-const typeList = ref([])
-const genderList = ref([])
-const fieldList = ref([])
-const educationList = ref([])
-const cityList = ref([])
-const isUseList = ref([])
-const patternList = ref([])
-const scaleList = ref([])
-const IndustryList = ref([])
-const cardTypeList = ref([])
-const contributionList = ref([])
-const plateList = ref([])
-// 请求
-onMounted(async () => {
-  loading.value = true
-  await searchOther()
-  await search()
-  loading.value = false
-})
-const search = async () => {
-  if (user.value.id) {
-    let res = await store.detail(user.value.id)
-    if (res.errcode == '0') form.value = res.data
-  }
-}
-const searchOther = async () => {
-  let result
-  // 性别
-  result = await dictDataStore.query({ code: 'gender', is_use: '0' })
-  if ($checkRes(result)) genderList.value = result.data
-  // 用户类型
-  result = await dictDataStore.query({ code: 'userType', is_use: '0' })
-  if ($checkRes(result)) typeList.value = result.data
-  // 专家领域
-  result = await dictDataStore.query({ code: 'field', is_use: '0' })
-  if ($checkRes(result)) fieldList.value = result.data
-  // 企业类型
-  result = await dictDataStore.query({ code: 'companyType', is_use: '0' })
-  if ($checkRes(result)) patternList.value = result.data
-  // 企业规模
-  result = await dictDataStore.query({ code: 'companyScale', is_use: '0' })
-  if ($checkRes(result)) scaleList.value = result.data
-  // 企业所属行业
-  result = await dictDataStore.query({ code: 'companyIndustry', is_use: '0' })
-  if ($checkRes(result)) IndustryList.value = result.data
-  // 学历
-  result = await dictDataStore.query({ code: 'education', is_use: '0' })
-  if ($checkRes(result)) educationList.value = result.data
-  // 证件类型
-  result = await dictDataStore.query({ code: 'cardType', is_use: '0' })
-  if ($checkRes(result)) cardTypeList.value = result.data
-  // 出资方式
-  result = await dictDataStore.query({ code: 'contribution', is_use: '0' })
-  if ($checkRes(result)) contributionList.value = result.data
-  // 是否使用
-  result = await dictDataStore.query({ code: 'isUse', is_use: '0' })
-  if ($checkRes(result)) isUseList.value = result.data
-  // 城市
-  result = await regionStore.area({ level: 'province', code: 22 })
-  if ($checkRes(result)) cityList.value = result.data
-  // 板块
-  result = await sectorStore.query({ is_use: '0' })
-  if ($checkRes(result)) plateList.value = result.data
-}
-// 保存
-const submitForm = async (formEl) => {
-  if (!formEl) return
-  await formEl.validate(async (valid, fields) => {
-    if (valid) {
-      const data = cloneDeep(form.value)
-      if (data.role_type) delete data.role_type
-      if (data.plate && data.plate.length > 0) data.industry = data.plate[0]
-      delete data.plate
-      const res = await store.update(data)
-      if ($checkRes(res, true)) search()
-    } else {
-      console.log('error submit!', fields)
-    }
-  })
-}
-// 修改密码
-const submit = async (formEl) => {
-  if (!formEl) return
-  await formEl.validate(async (valid, fields) => {
-    if (valid) {
-      const data = cloneDeep(secondForm.value)
-      const res = await loginStore.rp({
-        type: 'User',
-        _id: user.value.id,
-        password: data.password
-      })
-      if ($checkRes(res, true)) {
-        userStore.logOut()
-        router.push('/login')
-      }
-    } else {
-      console.log('error submit!', fields)
-    }
-  })
-}
-// provide
-provide('cloneDeep', cloneDeep)
-provide('ruleFormRef ', ruleFormRef)
-// 字典
-provide('genderList', genderList)
-provide('fieldList', fieldList)
-provide('educationList', educationList)
-provide('cityList', cityList)
-provide('isUseList', isUseList)
-provide('patternList', patternList)
-provide('scaleList', scaleList)
-provide('IndustryList', IndustryList)
-provide('cardTypeList', cardTypeList)
-provide('contributionList', contributionList)
-</script>
-<style scoped lang="scss">
-.main {
-  background-color: #f1f2f5;
-  .one {
-    margin: 10px auto;
-    background-color: #fff;
-    padding: 20px;
-    border-radius: 10px;
-    .one_1 {
-      line-height: $global-font-size-18;
-      font-size: $global-font-size-18;
-      font-weight: 500;
-      border-bottom: 1px solid #f9f9f9;
-      padding: 10px 0;
-      span {
-        color: red;
-        font-size: $global-font-size-14;
-      }
-    }
-    .one_2 {
-      padding: 10px;
-    }
-    .button {
-      text-align: center;
-    }
-  }
-}
-</style>

+ 23 - 0
src/views/center/match.vue

@@ -0,0 +1,23 @@
+<template>
+  <div class="index">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
+        <el-col :span="24" class="one">活动管理 </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup>
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
+// 加载中
+const loading = ref(false)
+// 路由
+const router = useRouter()
+</script>
+<style scoped lang="scss">
+.main {
+}
+</style>

+ 23 - 0
src/views/center/notice.vue

@@ -0,0 +1,23 @@
+<template>
+  <div class="index">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
+        <el-col :span="24" class="one">通知管理 </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup>
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
+// 加载中
+const loading = ref(false)
+// 路由
+const router = useRouter()
+</script>
+<style scoped lang="scss">
+.main {
+}
+</style>