y595705120 3 years ago
parent
commit
d0897dc7ca

+ 2 - 0
build.go

@@ -18,8 +18,10 @@ func main() {
 	target += *dir + "/"
 	fmt.Println("target_dir", target)
 	os.RemoveAll(target + "static")
+	os.RemoveAll(target + "manage")
 	os.Remove(target + "index.html")
 	os.Remove(target + "favicon.ico")
+	os.Remove(target + "favicon.jpg")
 
 	copyDir("./dist", target)
 }

+ 8 - 0
src/api/article.js

@@ -180,3 +180,11 @@ export const publishArtical = (data) => {
         data
     })
 }
+
+export const deleteArtical = (data) => {
+    return service({
+        url: "/api/artical/deleteArtical",
+        method: 'post',
+        data
+    })
+}

+ 9 - 0
src/api/user.js

@@ -24,3 +24,12 @@ export function getDepartmentAccount( data ) {
     data: data
   })
 }
+
+export function resetPassword( data ) {
+  return request({
+    url: '/api/user/resetPassword',
+    method: 'post',
+    data: data
+  })
+}
+

+ 3 - 3
src/assets/css/base.css

@@ -56,10 +56,10 @@
   .fl{float:left;}
   .fr{float:right;}
   .ss{float:right;width:355px;}
-  .banner{margin:0 auto;width:1000px;height:176px;}
+  .banner{margin:0 auto;width:1024px;height:176px;}
   .logo{ margin-top:61px; float:left;}
   .jsj{ margin-top:63px; float:left; margin-left:50px;}
-  .nav{ height:50px; background:#0078c7; margin:0 auto; width:1000px;}
+  .nav{ height:50px; background:#0078c7; margin:0 auto; width:1024px;}
 
 
   .nav ul li{ float:left; line-height:50px;}
@@ -70,5 +70,5 @@
 
   .navfirst a{ background:#ffa200; display:block;}
 
-  .sousuo{ height:37px; line-height:37px; background:#efefef; border-bottom:1px solid #e7e7e7; width:1000px; margin:0 auto;}
+  .sousuo{ height:37px; line-height:37px; background:#efefef; border-bottom:1px solid #e7e7e7; width:1024px; margin:0 auto;}
   .sousuo h4{ margin-left:20px;}

+ 6 - 1
src/assets/css/main.css

@@ -1,5 +1,5 @@
 .main{
-  width: 1000px;
+  width: 1024px;
   display: inline-block;
   background: #FFF;
 }
@@ -48,6 +48,11 @@
 .mt15{ margin-top: 15px;}
 .mt10{ margin-top: 10px;}
 
+.tc{ text-align: center;}
+
+.text-blue{
+  color: #1890FF;
+}
 
 @media screen and (max-width: 900px){
   .main{

BIN
src/assets/link.png


BIN
src/assets/login_bg.jpg


BIN
src/assets/login_bg1.png


BIN
src/assets/qrcode.jpg


+ 80 - 0
src/icons/svg/xcx.svg

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="44px" height="44px" viewBox="0 0 44 44" enable-background="new 0 0 44 44" xml:space="preserve">  <image id="image0" width="44" height="44" x="0" y="0"
+    href="data:image/png;base64,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
+VxFEFdUEWbFMZxItLGYiwME+5y89lVedexlvWfiS4342eE6PMrdN/Ei/+ejdfGPzBp50fcKQpS5A
+CocrHVUKqCasmd4FRLDWY6NAN8DhinIi8OKVZ3HZKRfw0hXnc/rTKddvBPhn7avhQX3kyB7ueHgj
+2/btZLKaok/CDrVQAS+CpkwTA6mOtCg5cWwxF6xewzlLX8hZoytZ+zxekJ438DPbhvi4Vimw9/BB
+Nu3cxmTVRXPDYNlmwZz5LFuwhEUjY4y6IdYc58PLbxT4t93Mry7it9v+D6eJaaQOP4erAAAAJXRF
+WHRkYXRlOmNyZWF0ZQAyMDIxLTA2LTE5VDE5OjQxOjMxKzA4OjAwdHgbJgAAACV0RVh0ZGF0ZTpt
+b2RpZnkAMjAyMS0wNi0xOVQxOTo0MTozMSswODowMAUlo5oAAAAgdEVYdHNvZnR3YXJlAGh0dHBz
+Oi8vaW1hZ2VtYWdpY2sub3JnvM8dnQAAABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7
+LwAAABd0RVh0VGh1bWI6OkltYWdlOjpIZWlnaHQANDSO1ssGAAAAFnRFWHRUaHVtYjo6SW1hZ2U6
+OldpZHRoADQ0dnkLiwAAABl0RVh0VGh1bWI6Ok1pbWV0eXBlAGltYWdlL3BuZz+yVk4AAAAXdEVY
+dFRodW1iOjpNVGltZQAxNjI0MTAyODkxfeadRAAAABJ0RVh0VGh1bWI6OlNpemUANDgxM0JCC23K
+AwAAAEd0RVh0VGh1bWI6OlVSSQBmaWxlOi8vL2FwcC90bXAvaW1hZ2VsYy9pbWd2aWV3Ml85XzE2
+MjM5MTE5OTU5MTQ3MDc3XzMwNF9bMF23aDVSAAAAAElFTkSuQmCC" ></image>
+</svg>

+ 24 - 19
src/pages/login/components/SignInForm.vue

@@ -1,16 +1,19 @@
 <template>
   <el-card class="rpm-sign-in">
+    <div slot="header" align="center">
+      <span>登入内业管理系统</span>
+    </div>
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-width="0">
       <el-form-item prop="email">
         <el-input
           ref="username"
-          placeholder="手机号码"
+          placeholder="输入账号"
           type="text"
           tabindex="1"
           v-model="loginForm.username"
         />
-        <div class="rpm-sign__tip cprimary" @click="$emit('show-form', 'signUp')">
-          还未注册? 点击创建账户
+        <div class="rpm-sign__tip cprimary" >
+          仅内部账号使用
         </div>
       </el-form-item>
       <el-form-item prop="password">
@@ -25,7 +28,7 @@
           @blur="capsTooltip = false"
           @keyup.enter.native="handleLogin"
         />
-        <div class="rpm-sign-in__tip cdanger" @click="$emit('show-form', 'forgotPwd')">
+        <div class="rpm-sign-in__tip cdanger" @click="qrcode=true" >
           忘记密码
         </div>
       </el-form-item>
@@ -34,20 +37,21 @@
           登入
         </el-button>
       </el-form-item>
-      <!--
-      <el-divider>or</el-divider>
-      <el-form-item>
-        <el-button icon="el-icon-eleme">
-          <span>Sign in with Google</span>
-        </el-button>
-      </el-form-item>
-      <el-form-item>
-        <el-button icon="el-icon-eleme">
-          <span>Sign in with Facebook</span>
-        </el-button>
-      </el-form-item>
-      -->
     </el-form>
+
+    <el-dialog
+      title="微信小程序扫码登入"
+      class="fc tc"
+      :visible.sync="qrcode"
+      width="500px"
+      :append-to-body="true"
+      @close="closeDialog"
+    >
+      <div class="qrcode">
+        <img src="../../../assets/qrcode.jpg" />
+      </div>
+    </el-dialog>
+
   </el-card>
 </template>
 
@@ -71,6 +75,7 @@ export default {
         username: [{ required: true, trigger: 'blur', validator: validateLoginname }],
         password: [{ required: true, trigger: 'blur', validator: validatePassword }]
       },
+      qrcode: false,
       passwordType: 'password',
       capsTooltip: false,
       loading: false,
@@ -133,8 +138,8 @@ export default {
 }
 .rpm-sign-in {
   position: absolute;
-  top: 200px;
-  right: 100px;
+  top: 20px;
+  right: 30px;
   width: 350px;
 }
 .rpm-sign-in__tip {

+ 41 - 14
src/pages/login/index.vue

@@ -1,17 +1,29 @@
 <template>
-  <div class="rpm-login other-container" style="margin-top: 178px;">
-    <IHeader/>
-    <div class="rpm-contact" >
-      <div class="rpm-contact__title">{{settings.title}}</div>
-      <div class="rpm-contact__item">
-        <el-avatar shape="square" size="small" icon="el-icon-message" />
-        595705120@qq.com
+  <div class="rpm-login other-container" style="margin-top: 200px;  padding: 12px;">
+
+      <div class="rpm-login-info" >
+        <div data-options="novalidate:true">
+          <div style="width:410px; height: 400px; background-color: #fff; position: absolute; right: 0px; top:0px;">
+              <SignInForm v-if="visibleForm === 'signIn'" @show-form="showForm" />
+          </div>
+        </div>
+      </div>
+
+<!--
+    <div >
+
+
+       <div class="rpm-contact" >
+        <div class="rpm-contact__title">{{settings.title}}</div>
+        <div class="rpm-contact__item">
+          <img src="../../assets/qrcode.jpg" fit="scale-down" lazy style="margin: 20px auto;"/>
+        </div>
       </div>
-    </div>
-    <SignInForm v-if="visibleForm === 'signIn'" @show-form="showForm" />
-    <SignUpForm v-if="visibleForm === 'signUp'" @show-form="showForm" />
-    <ForgotPwdForm v-if="visibleForm === 'forgotPwd'" @show-form="showForm" />
-    <ResetPwdForm v-if="visibleForm === 'resetPwd'" @show-form="showForm" />
+      <SignInForm v-if="visibleForm === 'signIn'" @show-form="showForm" />
+      <SignUpForm v-if="visibleForm === 'signUp'" @show-form="showForm" />
+      <ForgotPwdForm v-if="visibleForm === 'forgotPwd'" @show-form="showForm" />
+      <ResetPwdForm v-if="visibleForm === 'resetPwd'" @show-form="showForm" />
+    </div> -->
   </div>
 </template>
 
@@ -71,10 +83,25 @@ export default {
 @import "@/styles/variables.scss";
 
 .rpm-login {
+
+  width: 100%;
+  height: 530px;
+  background-image:url('../../assets/login_bg.jpg');
+
   position: relative;
   margin-left: auto;
   margin-right: auto;
-  width: 900px;
+
+  .rpm-login-info{
+    width: 100%;
+    height: 400px;
+    margin: auto;
+    background-image: url("../../assets/login_bg1.png");
+    position: relative;
+    top:50px;
+    box-shadow: 0px 1px 15px 0px rgba(20, 108, 197, 0.8);
+  }
+
   .rpm-logo {
     padding-top: 30px;
     height: 40px;
@@ -94,7 +121,7 @@ export default {
   }
   .rpm-contact {
     position: absolute;
-    top: 250px;
+    top: 200px;
     left: 100px;
     .rpm-contact__title {
       margin-left: 0px;

+ 31 - 4
src/pages/other/components/IHeader.vue

@@ -41,8 +41,27 @@
       </ul>
     </div>
     <div class="sousuo">
-      <h4 class="fl">今天是:<span>{{curDate.getFullYear()}}年{{curDate.getMonth()+1}}月{{curDate.getDate()}}日</span>
-      &nbsp;&nbsp;&nbsp;<span>星期{{['日','一','二','三','四','五','六'][curDate.getDay()]}}</span></h4>
+      <h4 class="fl">
+        <span>您好! </span>
+        <span class="ml10" v-if="userInfo.userId">
+          {{userInfo.nickname || '还未登入'}}
+          <span type="text" size="mini" class="ml20"
+            @mouseover="showqrcode=true" @mouseleave="showqrcode=false">
+            <svg-icon icon-class="xcx" class-name="card-panel-icon" /> 小程序
+          </span>
+          <span class="ml10" >
+            <el-button type="text"  size="mini" v-if="!isActive('/reset')"  @click="$router.push({name: 'reset'})">
+              修改密码
+            </el-button>
+           </span>
+
+          <div class="showqrcode" v-show="showqrcode" >
+            <img src="../../../assets/qrcode.jpg"  />
+          </div>
+
+        </span>
+        <span v-else> 您还未登入 </span>
+      </h4>
       <div class="fl"><span style="margin-left: 10px;">&nbsp;&nbsp;</span></div>
       <div class="ss">
         <el-autocomplete
@@ -64,11 +83,14 @@
 
 <script>
   import { mapGetters,mapActions } from "vuex";
+  import {title} from '@/settings.js'
 export default {
   data() {
     return {
       SearchList: [],
       keyword: '',
+      title:title,
+      showqrcode: false,
       timeout:  null,
       curDate: new Date()
     }
@@ -84,7 +106,7 @@ export default {
      }
   },
   computed: {
-  	...mapGetters("user", ["getArticals", "userDepartments"])
+  	...mapGetters("user", ["getArticals", "userDepartments", "userInfo"])
   },
   methods: {
     ...mapActions("user", ["logout"]),
@@ -98,7 +120,7 @@ export default {
     },
     doLogout(){
       this.logout().then( res=>{
-        console.log("logout")
+       this.$router.push( {path:'/login'})
       })
     },
     isActive( path ){
@@ -142,4 +164,9 @@ export default {
   .el-button + .el-button{
     margin-left: 5px;
   }
+  .showqrcode{
+    position: absolute;
+    border-radius: 50%;
+    z-index: 99999;
+  }
 </style>

+ 44 - 2
src/pages/other/file-search.vue

@@ -69,9 +69,26 @@
               <template slot-scope="{row}">
                 <el-button
                   size="small"
-                  type="primary"
+                  type="text"
                   @click="applyDoc(row)"
                 >详情</el-button>
+
+                <el-button
+                  size="small"
+                  v-if="isLeader(row.departmentId)"
+                  style="color:darkorange"
+                  type="text"
+                  @click="row.visible=true"
+                >删除</el-button>
+
+                <el-popover placement="top" width="160" v-model="row.visible">
+                  <p>删除动作不可逆,你是否确认删除?</p>
+                  <div style="text-align: right; margin: 0">
+                    <el-button size="mini" type="text" @click="row.visible = false">取消</el-button>
+                    <el-button type="primary" size="mini" @click="deleteArtical(row)">确定</el-button>
+                  </div>
+                </el-popover>
+
               </template>
             </el-table-column>
           </el-table>
@@ -96,7 +113,7 @@
 import IHeader from "./components/IHeader";
 import IFooter from "./components/IFooter";
 import data  from '../data/data.js'
-import {getArticalList} from '@/api/article.js'
+import {getArticalList,deleteArtical} from '@/api/article.js'
 import { mapGetters } from "vuex";
 
 export default {
@@ -134,7 +151,11 @@ export default {
       })
     },
     "searchInfo.category"(val){
+<<<<<<< HEAD
       this.page = 1
+=======
+      this.page =1
+>>>>>>> b1b67f0ce84197f25dfa106fef82b1cbbd7887ce
       this.getArticalList()
     }
   },
@@ -150,7 +171,15 @@ export default {
     this.getArticalList()
   },
   methods: {
+    isLeader( departmentId ){
+      return data.getLeader(departmentId, this.userDepartments)>1;
+    },
+    handleSearch(){
+      this.page = 1
+      this.getArticalList()
+    },
     handleSizeChange(size){
+      this.page =1
       this.pageSize = size
       this.getArticalList()
     },
@@ -163,11 +192,24 @@ export default {
       this.getArticalList()
     },
     selectDepartment(item){
+<<<<<<< HEAD
       this.departmentId = +item.departmentId||0
       this.page =1
+=======
+      this.page =1
+      this.departmentId = +item.departmentId
+>>>>>>> b1b67f0ce84197f25dfa106fef82b1cbbd7887ce
       localStorage.setItem("@departmentId", this.departmentId)
       this.getArticalList()
     },
+    deleteArtical( row ){
+      deleteArtical( {articalId: row.articalId}).then(res=>{
+        if( res.code == 200){
+          row.status = 4
+          row.isOpen = 2
+        }
+      })
+    },
     applyDoc(item){
         let query= {articalId: item.articalId }
         this.$router.push( {path: '/file-info', query})

+ 114 - 0
src/pages/other/reset.vue

@@ -0,0 +1,114 @@
+<template>
+  <div class="other-container">
+    <div style="width: 400px;margin: 6.25rem auto;" >
+      <el-form :model="regForm" status-icon :rules="rules" label-width="80px" ref="resetForm" class="reset">
+
+
+        <el-form-item label="旧的密码" prop="password" class="pr">
+          <el-input prop="pass" type="password" v-model="regForm.password" placeholder="旧的密码" auto-complete="off"></el-input>
+        </el-form-item>
+
+        <el-form-item label="新的密码" prop="newpassword" class="pr">
+          <el-input prop="pass" type="password" v-model="regForm.newpassword" placeholder="登入密码" auto-complete="off"></el-input>
+        </el-form-item>
+
+        <el-form-item label="确认密码" prop="repassword" class="pr">
+          <el-input prop="rePass" type="password" v-model="regForm.repassword" placeholder="确认密码" auto-complete="off"></el-input>
+        </el-form-item>
+
+
+        <div class="submit">
+          <el-button type="primary" class="submit-btn" @click="onSubmit()">重置密码</el-button>
+        </div>
+      </el-form>
+    </div>
+  </div>
+
+</template>
+
+<script>
+
+  import {mapGetters } from 'vuex'
+  import {resetPassword} from '@/api/user.js'
+  import md5 from '@/utils/md5'
+
+  export default {
+    name: 'application',
+    data() {
+      return {
+        loading:false,
+        regForm: {
+          repassowrd: "",
+          password: "",
+          newpassowrd: ""
+        },
+        rules: {
+          password:[
+            { required: true, message: "请输入密码", trigger: "blur" }
+          ],
+          repassword:[
+            { required: true, message: "请输入密码", trigger: "blur" },
+            { required: true, validator: this.validatePass, trigger: "blur" }
+
+          ],
+          newpassword:[
+            { required: true, message: "请输入密码", trigger: "blur" }
+          ]
+        }
+      }
+    },
+
+
+    methods:{
+      validatePass(rule, value, callback) {
+        if (value == this.regForm.newpassword) {
+          callback();
+        } else {
+          callback(new Error("两次密码不服"));
+        }
+      },
+      showFinish(){
+        let that = this
+        this.$msgbox({
+          title: "修改密码成功",
+          message: "恭喜你-密码修改成功",
+          showCancelButton: true,
+          cancelButtonText:  "回到主页",
+          confirmButtonText: "重新登入",
+          beforeClose: (action, instance, done) => {
+            if (action === 'confirm') {
+              that.$router.push({path:'/login'});
+              done();
+            }else if (action === 'cancel') {
+              that.$router.push({path:'/file-manage'});
+              done();
+            }else{
+              done();
+            }
+          }
+        }).catch((res) => {
+          console.log(res)
+         });
+      },
+      onSubmit(){
+        let that = this
+        this.$refs["resetForm"].validate((valid) => {
+          if (!valid) return;
+          let {password, newpassowrd } = this.regForm;
+          let param = {password: md5(password),newPassword:md5(newpassowrd) }
+          resetPassword( param).then(res=>{
+            if( res.code == 200){
+              that.showFinish( )
+            }
+          })
+        })
+      }
+    }
+  }
+</script>
+
+<style>
+  .ipt-select{
+    width: 500px;
+  }
+</style>

+ 6 - 0
src/router/index.js

@@ -101,6 +101,12 @@ export const constantRoutes = [
           component: () => import('@/pages/other/my-file'),
           hidden: true
         },
+        {
+          path: '/reset',
+          name:'reset',
+          component: () => import('@/pages/other/reset'),
+          hidden: true
+        },
         {
           path: '/file-add',
           component: () => import('@/pages/other/file-add'),

+ 2 - 1
src/store/modules/user.js

@@ -46,7 +46,7 @@ const mutations = {
     state.token = ""
     removeToken()
     router.push({ path: '/login', replace: true })
-    window.location.reload()
+    // window.location.reload()
   },
   APPEND_ARTICAL: (state, articals) => {
     for( let i in articals){
@@ -97,6 +97,7 @@ const actions = {
   logout({ commit, state, dispatch }) {
     commit('SET_TOKEN', '')
     commit('SET_ROLES', [])
+	commit('SET_INFO', {})
     removeToken()
     commit("Logout")
   },

+ 1 - 1
src/styles/index.scss

@@ -22,7 +22,7 @@ html {
   height: 100%;
 }
 .other-container{
-  max-width: 1000px;margin: auto;
+  max-width: 1024px;margin: auto;
 }
 .other-container .c-form{
   width: auto;