y595705120 3 years ago
parent
commit
37b5d00b74

+ 13 - 5
src/api/article.js

@@ -2,7 +2,7 @@ import service from '@/utils/request'
 
 export const getArticalList = (data) => {
     return service({
-        url: "/artical/getArticalList",
+        url: "/api/artical/getArticalList",
         method: 'post',
         data
     })
@@ -10,7 +10,15 @@ export const getArticalList = (data) => {
 
 export const getHotArticalList = (data) => {
     return service({
-        url: "/artical/getHotArticalList",
+        url: "/api/artical/getHotArticalList",
+        method: 'post',
+        data
+    })
+}
+
+export const getApplyArticalList = (data) => {
+    return service({
+        url: "/api/artical/getApplyArticalList",
         method: 'post',
         data
     })
@@ -18,7 +26,7 @@ export const getHotArticalList = (data) => {
 
 export const addArtical = (data) => {
     return service({
-        url: "/artical/addArtical",
+        url: "/api/artical/addArtical",
         method: 'post',
         data
     })
@@ -26,8 +34,8 @@ export const addArtical = (data) => {
 
 export const getArticalInfo = (data) => {
     return service({
-        url: "/artical/getArticalInfo",
+        url: "/api/artical/getArticalInfo",
         method: 'post',
         data
     })
-}
+}

+ 2 - 3
src/api/auth.js

@@ -2,7 +2,7 @@ import request from '@/utils/request'
 
 export function register(params = {}) {
   return request({
-    url: 'auth.signup',
+    url: 'api/auth.signup',
     method: 'post',
     data: params
   })
@@ -10,7 +10,7 @@ export function register(params = {}) {
 
 export function login(params = {}) {
   return request({
-    url: 'auth.signin',
+    url: '/api/base/login',
     method: 'post',
     data: params,
   })
@@ -39,4 +39,3 @@ export function resetPassword(params = {}) {
     data: params,
   })
 }
-

BIN
src/assets/images/sm_zjt_topbanner.png


+ 10 - 6
src/pages/login/components/SignInForm.vue

@@ -4,19 +4,19 @@
       <el-form-item prop="email">
         <el-input
           ref="username"
-          placeholder="Email Address"
+          placeholder="手机号码"
           type="text"
           tabindex="1"
           v-model="loginForm.username"
         />
         <div class="rpm-sign__tip cprimary" @click="$emit('show-form', 'signUp')">
-          No Account? Create One for Free
+          还未注册? 点击创建账户
         </div>
       </el-form-item>
       <el-form-item prop="password">
         <el-input
           ref="password"
-          placeholder="RPM Password"
+          placeholder="输入密码"
           type="password"
           tabindex="2"
           :key="passwordType"
@@ -26,12 +26,12 @@
           @keyup.enter.native="handleLogin"
         />
         <div class="rpm-sign-in__tip cdanger" @click="$emit('show-form', 'forgotPwd')">
-          Forgot Password
+          忘记密码
         </div>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" @click.native.prevent="handleLogin">
-          Sign in
+          登入
         </el-button>
       </el-form-item>
       <!--
@@ -83,6 +83,10 @@ export default {
       this.$refs.password.focus()
     }
   },
+  created(){
+    console.log( this.$route.query  )
+     this.redirect = this.$route.query.redirect
+  },
   methods: {
     checkCapslock(e) {
       const { key } = e
@@ -104,6 +108,7 @@ export default {
           this.loading = true
           this.$store.dispatch('user/login', { username: this.loginForm.username, password: md5(this.loginForm.password) })
             .then(() => {
+              console.log("q", this.redirect )
               this.$router.push({ path: this.redirect || '/', query: this.otherQuery })
               this.loading = false
             })
@@ -141,4 +146,3 @@ export default {
   font-size: 14px;
 }
 </style>
-

+ 1 - 1
src/pages/login/components/SignUpForm.vue

@@ -19,7 +19,7 @@
       </el-form-item>
       <el-form-item>
         <el-button type="primary" @click.native.prevent="handleRegister">
-          Sign up
+          注册
         </el-button>
       </el-form-item>
       <el-form-item>

+ 3 - 3
src/pages/login/index.vue

@@ -6,10 +6,10 @@
 <!--      <div class="rpm-logo__title">Rental Property Manage System</div>-->
 <!--    </div>-->
     <div class="rpm-contact">
-      <div class="rpm-contact__title">Customer Service</div>
+      <div class="rpm-contact__title">三明市住建系统内业综合平台</div>
       <div class="rpm-contact__item">
         <el-avatar shape="square" size="small" icon="el-icon-message" />
-        support@rentingproperty.ca
+        595705120@qq.com
       </div>
     </div>
     <SignInForm v-if="visibleForm === 'signIn'" @show-form="showForm" />
@@ -96,7 +96,7 @@ export default {
     top: 250px;
     left: 100px;
     .rpm-contact__title {
-      margin-left: 30px;
+      margin-left: 0px;
       margin-bottom: 40px;
       font-size: 24px;
       font-weight: bold;

+ 155 - 0
src/pages/other/apply-list.vue

@@ -0,0 +1,155 @@
+<template>
+  <div class="other-container" style="margin-top: 178px;">
+    <IHeader />
+    <div style="padding-top: 10px;background: #FFF;margin-top:20px;">
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>{{ selectDepartName }} 法律法规类资料</span>
+          <el-button style="float: right; padding: 3px 0;color: #999;font-size: 12px;" type="text" @click="handleOpenMore(1)">更多></el-button>
+        </div>
+        <div v-for="(o,index) in restaurants" :key="o.id" class="text item">
+          <div style="display: inline-block;width: 100%;"  >
+            <el-link target="_blank" download="下载文件名"  :href="require('@/icons/img/logo-apple.png')" :underline="false">
+              <span class="oneline" >
+                  {{ (index+1)}} 、 {{o.title|filterTitle}}
+              </span>
+            </el-link>
+
+            <!-- <span class="fr" style="color: #b4b4b4;">{{o.createAt }}</span> -->
+            <el-button class="fr" type="text"  @click="applyDoc()"> 审核通过 </el-button>
+            <span style="clear: both;"></span>
+          </div>
+        </div>
+        <el-pagination
+          :current-page="1"
+          :page-size="10"
+          :page-sizes="[10, 30, 50, 100]"
+          :style="{float:'center',padding:'20px'}"
+          :total="total"
+          layout="total, sizes, prev, pager, next, jumper"
+        ></el-pagination>
+      </el-card>
+
+    </div>
+    <el-dialog title="申请材料" center :visible.sync="dialogFormVisible"  >
+      <h3> 本材料非公开,需要向对应科室申请</h3>
+      <div class="dialog-footer" slot="footer">
+        <el-button type="warning" size="medium" style="width: 100px; padding: 10px; margin: 20px;" @click="dialogFormVisible=false">取 消</el-button>
+        <el-button type="primary" size="medium" style="width: 100px; padding: 10px; margin: 20px;" @click="dialogFormVisible=false">确认申请</el-button>
+      </div>
+    </el-dialog>
+
+    <IFooter />
+
+
+
+  </div>
+</template>
+
+<script>
+import IHeader from "./components/IHeader";
+import IFooter from "./components/IFooter";
+import glIcon from '@/icons/img/2016smyjj_gl_icon.jpg'
+import data  from '../data/data.js'
+import {getHotArticalList,getArticalList,getApplyArticalList}  from '@/api/article'
+
+export default {
+  name: 'application',
+  components: {
+    IHeader,
+    IFooter
+  },
+  data() {
+    return {
+      dialogFormVisible: false,
+      glIcon: glIcon,
+      list: data.departs,
+      total: 0,
+      page:1,
+      size: 20,
+      searchDepartId: "",
+      restaurants: [],
+      state3: '',
+      selectDepartId:1,
+      selectDepartName: '',
+      category:'',
+      isShowMore: false
+    }
+  },
+  mounted() {
+    this.getApplyArticalList();
+  },
+  filters:{
+    filterTitle(val){
+      if( val.length > 35) {
+        return val.substr(0,32)+"..."
+      }else{
+        return val
+      }
+    }
+  },
+  methods: {
+    getApplyArticalList() {
+      getApplyArticalList( {} ).then( res=>{
+        this.restaurants = res.data.list
+        this.total = res.data.total
+        console.log("getHotArticalList", res)
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+  .el-breadcrumb{
+    display: inline-block;
+    padding-left: 10px;
+  }
+  .box-card{
+    margin-bottom: 20px;
+  }
+  .my-autocomplete {
+    li {
+      line-height: normal;
+      padding: 7px;
+
+      .name {
+        text-overflow: ellipsis;
+        overflow: hidden;
+      }
+      .addr {
+        font-size: 12px;
+        color: #b4b4b4;
+      }
+
+      .highlighted .addr {
+        color: #ddd;
+      }
+    }
+  }
+  .el-card__body .text{
+    margin: 5px 0;
+  }
+  .el-button--medium{
+    margin: 0;
+    padding: 0;
+    color: #303133
+  }
+  .el-card{
+    color: #1890ff;
+  }
+  .el-card__header{
+    padding: 15px 20px;
+  }
+  .el-menu-vertical-demo:not(.el-menu--collapse) {
+    width: 200px;
+    min-height: 400px;
+  }
+
+  .oneline {
+    line-height: 30px;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+  }
+</style>

+ 20 - 2
src/pages/other/components/IHeader.vue

@@ -3,11 +3,19 @@
     <div class="nav">
       <ul>
         <li ><a href="/">网站首页</a></li>
-        <li class="navfirst"><a href="/gkxx/">所有科室</a></li>
+
+        <li :class="{'navfirst': isActive('/file-manage')}">
+          <a href="#/file-manage"> 所有科室</a>
+        </li>
+
         <li><a href="/xxgk/">公开资料</a></li>
         <li><a href="/wsbs/">科室资料</a></li>
         <li><a href="/wsbs/">个人资料</a></li>
-        <li><a href="/wsbs/">申请记录</a></li>
+
+        <li :class="{'navfirst': isActive('/apply-list')}">
+          <a href="#/apply-list"> 申请记录</a>
+        </li>
+
         <li><a href="/wsbs/">收到资料</a></li>
       </ul>
     </div>
@@ -40,6 +48,12 @@ export default {
       timeout:  null
     }
   },
+  props:{
+     link:{
+      type : String,
+      default:  'file-manage'
+     }
+  },
   methods: {
     loadAll() {
       return [
@@ -56,6 +70,10 @@ export default {
         { "value": "测试数据11" }
       ];
     },
+    isActive( path ){
+      let rpath = this.$route.path;
+      return rpath.indexOf( path )> -1;
+    },
     querySearchAsync(queryString, cb) {
       var SearchList = this.SearchList;
       var results = queryString ? SearchList.filter(this.createStateFilter(queryString)) : SearchList;

+ 1 - 28
src/permission.js

@@ -30,34 +30,7 @@ router.beforeEach(async(to, from, next) => {
       next({ path: '/' })
       NProgress.done() // hack: https://github.com/PanJiaChen/vue-element-admin/pull/2939
     } else {
-      // determine whether the user has obtained his permission roles through getInfo
-      const hasRoles = store.getters.roles && store.getters.roles.length > 0
-      if (hasRoles) {
-        next()
-      } else {
-        try {
-          // get user info
-          // note: roles must be a object array! such as: ['admin'] or ,['developer','editor']
-          const { roles } = await store.dispatch('user/getInfo')
-          await store.dispatch('tpl/getTplList')
-
-          // generate accessible routes map based on roles
-          const accessRoutes = await store.dispatch('permission/generateRoutes', roles)
-
-          // dynamically add accessible routes
-          router.addRoutes(accessRoutes)
-
-          // hack method to ensure that addRoutes is complete
-          // set the replace: true, so the navigation will not leave a history record
-          next({ ...to, replace: true })
-        } catch (error) {
-          // remove token and go to login page to re-login
-          await store.dispatch('user/resetToken')
-          Message.error(error || 'Has Error')
-          next(`/login?redirect=${to.path}`)
-          NProgress.done()
-        }
-      }
+       next()
     }
   } else {
     /* has no token*/

+ 5 - 0
src/router/index.js

@@ -70,6 +70,11 @@ export const constantRoutes = [
     component: () => import('@/pages/other/file-manage'),
     hidden: true
   },
+  {
+    path: '/apply-list',
+    component: () => import('@/pages/other/apply-list'),
+    hidden: true
+  },
   {
     path: '/my-file-manage',
     component: () => import('@/pages/other/my-file-manage'),

+ 5 - 3
src/store/modules/user.js

@@ -14,6 +14,7 @@ const state = {
 
 const mutations = {
   SET_INFO: (state, info) => {
+    console.log( "set_info", info)
     const { uid, token } = info
     authDB.set('uid', uid)
     state.userInfo = info
@@ -21,6 +22,7 @@ const mutations = {
   SET_TOKEN: (state, token) => {
     setToken(token)
     authDB.set('token', token)
+    console.log( "token", token)
     state.token = token
   },
   SET_INTRODUCTION: (state, introduction) => {
@@ -42,11 +44,11 @@ const actions = {
   login({ commit }, userInfo) {
     const { username, password } = userInfo
     return new Promise((resolve, reject) => {
-      login({ email: username.trim(), password: password }).then(response => {
-        const { token, ...userInfo } = response;
+      login({ username: username.trim(), password: password }).then(response => {
+        const { token, ...user } = response.data;
         console.log('response', response);
         commit('SET_TOKEN', token)
-        commit('SET_INFO', userInfo)
+        commit('SET_INFO', user)
         resolve()
       }).catch(error => {
         reject(error)

+ 1 - 1
src/utils/auth.js

@@ -1,6 +1,6 @@
 import { authDB } from '@/db'
 
-const TokenKey = 'authToken'
+const TokenKey = 'token'
 
 export function getToken() {
   return authDB.get(TokenKey)

+ 5 - 0
vue.config.js

@@ -42,6 +42,11 @@ module.exports = {
         changeOrigin: true,
         // pathRewrite: { '^/rental': '' },
       },
+	   '/api': {
+	    target: 'http://localhost:8889',
+	    changeOrigin: true,
+	    // pathRewrite: { '^/rental': '' },
+	   },
       '/upload': {
         target: 'http://localhost:8889',
         changeOrigin: true,