guhongwei 4 lat temu
rodzic
commit
c339945dc2

+ 43 - 23
src/router/index.js

@@ -71,21 +71,27 @@ const web = [
   {
     path: '/finance/reward',
     name: 'finance_reward',
-    meta: { title: '研发补贴' },
+    meta: { title: '研发补贴', key: 'finance' },
     component: () => import('../views/finance/reward.vue'),
   },
   {
-    path: '/finance/declare',
-    name: 'finance_declare',
-    meta: { title: '高企认定' },
-    component: () => import('../views/finance/declare.vue'),
+    path: '/finance/cognizance',
+    name: 'finance_cognizance',
+    meta: { title: '高企认定', key: 'finance' },
+    component: () => import('../views/finance/cognizance.vue'),
   },
   {
     path: '/finance/account',
     name: 'finance_account',
-    meta: { title: '个人中心' },
+    meta: { title: '个人中心', key: 'finance' },
     component: () => import('../views/finance/account.vue'),
   },
+  {
+    path: '/login',
+    name: 'login',
+    meta: { title: '登录', key: 'login' },
+    component: () => import('../views/login.vue'),
+  },
 ];
 const routes = [...web];
 const router = new VueRouter({
@@ -93,22 +99,36 @@ const router = new VueRouter({
   base: process.env.VUE_APP_ROUTER,
   routes,
 });
-// router.beforeEach((to, from, next) => {
-//   document.title = `${to.meta.title} `;
-//   const token = localStorage.getItem('token');
-//   if (to.path == '/policy' || to.path == '/ticket' || to.path == '/userCenter') {
-//     if (!token) {
-//       next(`/login?path=${to.path}`);
-//     } 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 });
-//     next();
-//   }
-// });
+router.beforeEach((to, from, next) => {
+  document.title = `${to.meta.title} `;
+  const token = localStorage.getItem('token');
+  if (to.name == 'finance_account') {
+    if (!token) {
+      next('/login');
+    } 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 });
+    next();
+  }
+
+  // if (to.path == '/policy' || to.path == '/ticket' || to.path == '/userCenter') {
+  //   if (!token) {
+  //     next(`/login?path=${to.path}`);
+  //   } 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 });
+  //   next();
+  // }
+});
 
 export default router;

+ 4 - 1
src/store/index.js

@@ -7,6 +7,8 @@ import news from '@common/src/store/news';
 import column from '@common/src/store/column';
 import questionnaire from '@common/src/store/question/questionnaire';
 import answer from '@common/src/store/question/answer';
+import organization from '@common/src/store/organization';
+
 const _ = require('lodash');
 
 Vue.use(Vuex);
@@ -32,7 +34,7 @@ export default new Vuex.Store({
         key: 'finance',
         site: [
           { label: '研发补贴', router: '/finance/reward' },
-          { label: '高企认定', router: '/finance/declare' },
+          { label: '高企认定', router: '/finance/cognizance' },
           { label: '个人中心', router: '/finance/account' },
         ],
       },
@@ -51,6 +53,7 @@ export default new Vuex.Store({
     news,
     questionnaire,
     answer,
+    organization,
   },
   getters: {
     // 传参,就是menusetting中的key,这样就返回子菜单,如果不传,就返回主菜单

+ 2 - 2
src/views/finance/declare.vue

@@ -1,5 +1,5 @@
 <template>
-  <div id="index">
+  <div id="cognizance">
     <el-row>
       <el-col :span="24" class="main">
         <el-col :span="24" class="top">
@@ -16,7 +16,7 @@
 import top from '@/layout/common/top.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
-  name: 'index',
+  name: 'cognizance',
   props: {},
   components: {
     top,

+ 1 - 1
src/views/finance/reward.vue

@@ -6,7 +6,7 @@
           <top topType="2" :leftArrow="false"></top>
         </el-col>
         <el-col :span="24" class="info" :style="{ height: clientHeight + 'px' }"> 研发补贴 </el-col>
-        <el-col :span="24" class="foot"> <footers menu="finance" /> </el-col>
+        <el-col :span="24" class="foot"> <footers /> </el-col>
       </el-col>
     </el-row>
   </div>

+ 96 - 0
src/views/login.vue

@@ -0,0 +1,96 @@
+<template>
+  <div id="login">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="top">
+          <top topType="2" :leftArrow="false"></top>
+        </el-col>
+        <el-col :span="24" class="info" :style="{ height: clientHeight + 'px' }">
+          <el-col :span="24" class="one">
+            <van-form label-width="4.2em">
+              <van-field v-model="form.institution_code" name="账号" label="账号" :rules="[{ required: true, message: '请填写账号' }]" />
+              <van-field v-model="form.password" type="password" name="密码" label="密码" :rules="[{ required: true, message: '请填写密码' }]" />
+              <van-col span="24" class="btn">
+                <van-button type="danger" round @click="back">取消登录</van-button>
+                <van-button type="primary" round @click="onSubmit">提交登录</van-button>
+              </van-col>
+            </van-form>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import top from '@/layout/common/top.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: organization } = createNamespacedHelpers('organization');
+export default {
+  name: 'login',
+  props: {},
+  components: {
+    top,
+  },
+  data: function () {
+    return {
+      clientHeight: '',
+      form: {},
+    };
+  },
+  async created() {},
+  mounted() {
+    let clientHeight = (document.documentElement.clientHeight || document.body.clientHeight) - 90;
+    this.$set(this, `clientHeight`, clientHeight);
+  },
+  methods: {
+    ...organization(['orgLogin']),
+    async onSubmit() {
+      let res = await this.orgLogin({ user: this.form });
+      if (this.$checkRes(res)) {
+        this.$router.push({ path: '/finance/reward' });
+      }
+    },
+    back() {
+      window.history.go(-1);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .top {
+    height: 40px;
+    overflow: hidden;
+    border-bottom: 1px solid #f1f1f1;
+  }
+  .info {
+    overflow-x: hidden;
+    overflow-y: auto;
+    padding: 8px;
+    .one {
+      .btn {
+        text-align: center;
+        margin: 10px 0;
+        .van-button {
+          margin: 0 10px;
+        }
+      }
+    }
+  }
+}
+</style>