guhongwei 3 tahun lalu
induk
melakukan
35a2cbc7d7

+ 55 - 26
src/router/index.js

@@ -7,6 +7,45 @@ VueRouter.prototype.push = function push(location) {
   return originalPush.call(this, location).catch((err) => err);
 };
 Vue.use(VueRouter);
+const market = [
+  {
+    path: '/market/patentInfo/index',
+    meta: { title: '专利超市-专利展示' },
+    component: () => import('../views/market/patentInfo/index.vue'),
+  },
+  {
+    path: '/market/transfer/index',
+    meta: { title: '专利超市-专利转让' },
+    component: () => import('../views/market/transfer/index.vue'),
+  },
+  {
+    path: '/market/demand/index',
+    meta: { title: '专利超市-专利需求' },
+    component: () => import('../views/market/demand/index.vue'),
+  },
+  {
+    path: '/market/navigation/index',
+    meta: { title: '专利超市-专利导航' },
+    component: () => import('../views/market/navigation/index.vue'),
+  },
+];
+const service = [
+  {
+    path: '/service/notice/index',
+    meta: { title: '咨询服务-政策资讯' },
+    component: () => import('../views/service/notice/index.vue'),
+  },
+  {
+    path: '/service/law/index',
+    meta: { title: '咨询服务-法律法规' },
+    component: () => import('../views/service/law/index.vue'),
+  },
+  {
+    path: '/service/interflow/index',
+    meta: { title: '咨询服务-交流互动' },
+    component: () => import('../views/service/interflow/index.vue'),
+  },
+];
 const web = [
   {
     path: '/',
@@ -14,18 +53,20 @@ const web = [
     meta: { title: '网站首页' },
     component: () => import('../views/index.vue'),
   },
-  // {
-  //   path: '/login',
-  //   name: 'login',
-  //   meta: { title: '登录', key: 'login' },
-  //   component: () => import('../views/login.vue'),
-  // },
-  // {
-  //   path: '/register',
-  //   name: 'register',
-  //   meta: { title: '账户注册', key: 'register' },
-  //   component: () => import('../views/register.vue'),
-  // },
+  ...market,
+  ...service,
+  {
+    path: '/login',
+    name: 'login',
+    meta: { title: '登录', key: 'login' },
+    component: () => import('../views/login.vue'),
+  },
+  {
+    path: '/register',
+    name: 'register',
+    meta: { title: '账户注册', key: 'register' },
+    component: () => import('../views/register.vue'),
+  },
 ];
 const routes = [...web];
 const router = new VueRouter({
@@ -34,30 +75,18 @@ const router = new VueRouter({
   routes,
 });
 router.beforeEach((to, from, next) => {
-  // let openid = 'oFqNO6VHEEwnMB_l1AD3pooBAkHk';
   let openid = to.query.openid;
   sessionStorage.setItem('openid', openid);
   document.title = `${to.meta.title} `;
   const token = localStorage.getItem('token');
-  // 不带参数
-  if (to.path == '/exchange/center/index') {
+  if (to.path == '/account/index') {
     if (!token) {
-      next(`/login?path=${to.path}&&type=1`);
+      next(`/login?path=${to.path}`);
     } else {
       let user = jwt.decode(token);
       store.commit('setUser', user, { root: true });
       next();
     }
-    // 带参数
-    // } else if (to.path == '/finance/apply') {
-    //   if (!token) {
-    //     next(`/login?path=${to.fullPath}`);
-    //   } else {
-    //     let user = jwt.decode(token);
-    //     store.commit('setUser', user, { root: true });
-    //     next();
-    //   }
-    //   // 已登录
   } else {
     let user = jwt.decode(token);
     store.commit('setUser', user, { root: true });

+ 36 - 0
src/views/account/index.vue

@@ -0,0 +1,36 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="main"> 个人中心 </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 53 - 7
src/views/index.vue

@@ -1,22 +1,68 @@
 <template>
   <div id="index">
-    <van-row>
-      <van-col span="24" class="main"> test </van-col>
-    </van-row>
+    <admin-frame :useTop="false" :usePage="false" :useNav="false">
+      <template v-slot:info>
+        <van-button v-for="(i, index) in menu" :key="`menu-${index}`" @click="$router.push(i.router)">{{ i.label }}</van-button>
+      </template>
+    </admin-frame>
   </div>
 </template>
 
 <script>
+import adminFrame from '@frame/src/components/mobile-frame/mobile-main.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: personal } = createNamespacedHelpers('personal');
 export default {
   name: 'index',
   props: {},
-  components: {},
+  components: {
+    adminFrame,
+  },
   data: function () {
-    return {};
+    return {
+      menu: [
+        {
+          label: '专利超市-专利展示',
+          router: '/market/patentInfo/index',
+        },
+        {
+          label: '专利超市-专利转让',
+          router: '/market/transfer/index',
+        },
+        {
+          label: '专利超市-专利需求',
+          router: '/market/demand/index',
+        },
+        {
+          label: '专利超市-专利导航',
+          router: '/market/navigation/index',
+        },
+        {
+          label: '咨询服务-政策资讯',
+          router: '/service/notice/index',
+        },
+        {
+          label: '咨询服务-法律法规',
+          router: '/service/law/index',
+        },
+        {
+          label: '咨询服务-交流互动',
+          router: '/service/interflow/index',
+        },
+        {
+          label: '账号管理个人中心',
+          router: '/account/index',
+        },
+      ],
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    ...personal({ personalCreate: 'create' }),
+    search({ skip = 0, limit = this.limit, ...info } = {}) {},
   },
-  created() {},
-  methods: {},
   computed: {
     ...mapState(['user']),
   },

+ 36 - 0
src/views/login.vue

@@ -0,0 +1,36 @@
+<template>
+  <div id="login">
+    <van-row>
+      <van-col span="24" class="main"> 登录 </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'login',
+  props: {},
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 46 - 0
src/views/market/demand/index.vue

@@ -0,0 +1,46 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+      <template v-slot:info> 专利需求 </template>
+    </admin-frame>
+  </div>
+</template>
+
+<script>
+import adminFrame from '@frame/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+  },
+  data: function () {
+    return {
+      limit: 5,
+      total: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = 10, ...info } = {}) {},
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 46 - 0
src/views/market/navigation/index.vue

@@ -0,0 +1,46 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+      <template v-slot:info> 专利导航 </template>
+    </admin-frame>
+  </div>
+</template>
+
+<script>
+import adminFrame from '@frame/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+  },
+  data: function () {
+    return {
+      limit: 5,
+      total: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = 10, ...info } = {}) {},
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 46 - 0
src/views/market/patentInfo/index.vue

@@ -0,0 +1,46 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+      <template v-slot:info> 专利展示 </template>
+    </admin-frame>
+  </div>
+</template>
+
+<script>
+import adminFrame from '@frame/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+  },
+  data: function () {
+    return {
+      limit: 5,
+      total: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = 10, ...info } = {}) {},
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 46 - 0
src/views/market/transfer/index.vue

@@ -0,0 +1,46 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+      <template v-slot:info> 专利转让 </template>
+    </admin-frame>
+  </div>
+</template>
+
+<script>
+import adminFrame from '@frame/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+  },
+  data: function () {
+    return {
+      limit: 5,
+      total: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = 10, ...info } = {}) {},
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 36 - 0
src/views/register.vue

@@ -0,0 +1,36 @@
+<template>
+  <div id="register">
+    <van-row>
+      <van-col span="24" class="main"> 注册 </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'register',
+  props: {},
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 46 - 0
src/views/service/interflow/index.vue

@@ -0,0 +1,46 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+      <template v-slot:info> 交流互动 </template>
+    </admin-frame>
+  </div>
+</template>
+
+<script>
+import adminFrame from '@frame/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+  },
+  data: function () {
+    return {
+      limit: 5,
+      total: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = 10, ...info } = {}) {},
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 46 - 0
src/views/service/law/index.vue

@@ -0,0 +1,46 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+      <template v-slot:info> 法律法规 </template>
+    </admin-frame>
+  </div>
+</template>
+
+<script>
+import adminFrame from '@frame/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+  },
+  data: function () {
+    return {
+      limit: 5,
+      total: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = 10, ...info } = {}) {},
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 46 - 0
src/views/service/notice/index.vue

@@ -0,0 +1,46 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+      <template v-slot:info> 政策资讯 </template>
+    </admin-frame>
+  </div>
+</template>
+
+<script>
+import adminFrame from '@frame/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+  },
+  data: function () {
+    return {
+      limit: 5,
+      total: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = 10, ...info } = {}) {},
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>