Browse Source

Merge branch 'dev_0814' of http://121.42.41.42:7070/r/esua-epdc-admin into dev_0814

master
王金鹏 6 years ago
parent
commit
b211b223d6
  1. 1
      .gitignore
  2. 2
      public/index.html
  3. 6
      src/i18n/zh-CN.js
  4. 71
      src/views/main-navbar.vue
  5. 8
      src/views/modules/home.vue
  6. 122
      src/views/modules/sys/user-add-or-update.vue
  7. 67
      src/views/pages/login.vue

1
.gitignore

@ -7,6 +7,7 @@
*.jar
*.war
*.ear
*.zip
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

2
public/index.html

@ -33,7 +33,7 @@
<% } %>
<!-- 集成测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod:sit') { %>
<script>window.SITE_CONFIG['apiURL'] = 'https://epdc.elinkchina.com.cn';</script>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080';</script>
<% } %>
<!-- 验收测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod:uat') { %>

6
src/i18n/zh-CN.js

@ -3,8 +3,8 @@ const t = {}
t.loading = '加载中...'
t.brand = {}
t.brand.lg = '人人微服务平台'
t.brand.mini = '人人'
t.brand.lg = '党群e家后台管理系统'
t.brand.mini = '党群'
t.add = '新增'
t.delete = '删除'
@ -72,7 +72,7 @@ t.login.username = '用户名'
t.login.password = '密码'
t.login.captcha = '验证码'
t.login.demo = '在线演示'
t.login.copyright = '人人开源'
t.login.copyright = '青岛亿联信息科技股份有限公司'
t.home = {}
t.home.desc = {}

71
src/views/main-navbar.vue

@ -1,39 +1,67 @@
<template>
<nav class="aui-navbar" :class="`aui-navbar--${$store.state.navbarLayoutType}`">
<nav class="aui-navbar"
:class="`aui-navbar--${$store.state.navbarLayoutType}`">
<div class="aui-navbar__header">
<h1 class="aui-navbar__brand" @click="$router.push({ name: 'home' })">
<a class="aui-navbar__brand-lg" href="javascript:;">{{ $t('brand.lg') }}</a>
<a class="aui-navbar__brand-mini" href="javascript:;">{{ $t('brand.mini') }}</a>
<h1 class="aui-navbar__brand"
style="text-transform: none;"
@click="$router.push({ name: 'home' })">
<a class="aui-navbar__brand-lg"
href="javascript:;">{{ $t('brand.lg') }}</a>
<a class="aui-navbar__brand-mini"
href="javascript:;">{{ $t('brand.mini') }}</a>
</h1>
</div>
<div class="aui-navbar__body">
<el-menu class="aui-navbar__menu mr-auto" mode="horizontal">
<el-menu-item index="1" @click="$store.state.sidebarFold = !$store.state.sidebarFold">
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch" aria-hidden="true"><use xlink:href="#icon-outdent"></use></svg>
<el-menu class="aui-navbar__menu mr-auto"
mode="horizontal">
<el-menu-item index="1"
@click="$store.state.sidebarFold = !$store.state.sidebarFold">
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch"
aria-hidden="true">
<use xlink:href="#icon-outdent"></use>
</svg>
</el-menu-item>
<el-menu-item index="2" @click="refresh()">
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--refresh" aria-hidden="true"><use xlink:href="#icon-sync"></use></svg>
<el-menu-item index="2"
@click="refresh()">
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--refresh"
aria-hidden="true">
<use xlink:href="#icon-sync"></use>
</svg>
</el-menu-item>
</el-menu>
<el-menu class="aui-navbar__menu" mode="horizontal">
<el-menu-item index="1">
<el-dropdown placement="bottom" :show-timeout="0">
<el-menu class="aui-navbar__menu"
mode="horizontal">
<!-- <el-menu-item index="1">
<el-dropdown placement="bottom"
:show-timeout="0">
<el-button size="mini">{{ $t('_lang') }}</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(val, key) in i18nMessages" :key="key" @click.native="$i18n.locale = key">{{ val._lang }}</el-dropdown-item>
<el-dropdown-item v-for="(val, key) in i18nMessages"
:key="key"
@click.native="$i18n.locale = key">{{ val._lang }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-menu-item>
<el-menu-item index="2">
<a href="//www.renren.io/" target="_blank">
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"><use xlink:href="#icon-earth"></use></svg>
<a href="//www.renren.io/"
target="_blank">
<svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true">
<use xlink:href="#icon-earth"></use>
</svg>
</a>
</el-menu-item> -->
<el-menu-item index="3"
@click="fullscreenHandle()">
<svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true">
<use xlink:href="#icon-fullscreen"></use>
</svg>
</el-menu-item>
<el-menu-item index="3" @click="fullscreenHandle()">
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"><use xlink:href="#icon-fullscreen"></use></svg>
</el-menu-item>
<el-menu-item index="4" class="aui-navbar__avatar">
<el-dropdown placement="bottom" :show-timeout="0">
<el-menu-item index="4"
class="aui-navbar__avatar">
<el-dropdown placement="bottom"
:show-timeout="0">
<span class="el-dropdown-link">
<img src="~@/assets/img/avatar.png">
<span>{{ $store.state.user.realName }}</span>
@ -48,7 +76,8 @@
</el-menu>
</div>
<!-- 弹窗, 修改密码 -->
<update-password v-if="updatePassowrdVisible" ref="updatePassowrd"></update-password>
<update-password v-if="updatePassowrdVisible"
ref="updatePassowrd"></update-password>
</nav>
</template>

8
src/views/modules/home.vue

@ -1,10 +1,8 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<el-card shadow="never"
class="aui-card--fill">
<div class="mod-home">
<h3>{{ $t('home.desc.title') }}</h3>
<ul>
<li v-for="item in $t('home.desc.list')" :key="item" v-html="item"></li>
</ul>
<h1>欢迎使用党群e家后台管理系统</h1>
</div>
</el-card>
</template>

122
src/views/modules/sys/user-add-or-update.vue

@ -1,13 +1,26 @@
<template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="username" :label="$t('user.username')">
<el-input v-model="dataForm.username" :placeholder="$t('user.username')"></el-input>
<el-dialog :visible.sync="visible"
:title="!dataForm.id ? $t('add') : $t('update')"
:close-on-click-modal="false"
:close-on-press-escape="false">
<el-form :model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="username"
:label="$t('user.username')">
<el-input v-model="dataForm.username"
:placeholder="$t('user.username')"></el-input>
</el-form-item>
<el-form-item prop="deptName" :label="$t('user.deptName')" class="dept-list">
<el-popover v-model="deptListVisible" ref="deptListPopover" placement="bottom-start" trigger="click">
<el-tree
:data="deptList"
<el-form-item prop="deptName"
:label="$t('user.deptName')"
class="dept-list">
<el-popover v-model="deptListVisible"
ref="deptListPopover"
placement="bottom-start"
trigger="click">
<el-tree :data="deptList"
:props="{ label: 'name', children: 'children' }"
node-key="id"
ref="deptListTree"
@ -17,36 +30,75 @@
@current-change="deptListTreeCurrentChangeHandle">
</el-tree>
</el-popover>
<el-input v-model="dataForm.deptName" v-popover:deptListPopover :readonly="true" :placeholder="$t('user.deptName')"></el-input>
<el-input v-model="dataForm.deptName"
v-popover:deptListPopover
:readonly="true"
:placeholder="$t('user.deptName')"></el-input>
</el-form-item>
<el-form-item prop="password" :label="$t('user.password')" :class="{ 'is-required': !dataForm.id }">
<el-input v-model="dataForm.password" type="password" :placeholder="$t('user.password')"></el-input>
<el-form-item label="用户类型"
prop="userTagKey">
<el-select v-model="dataForm.userTagKey"
placeholder="用户类型">
<el-option v-for="item in userTagDictList"
:key="item.dictValue"
:label="item.dictName"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="password"
:label="$t('user.password')"
:class="{ 'is-required': !dataForm.id }">
<el-input v-model="dataForm.password"
type="password"
:placeholder="$t('user.password')"></el-input>
</el-form-item>
<el-form-item prop="comfirmPassword" :label="$t('user.comfirmPassword')" :class="{ 'is-required': !dataForm.id }">
<el-input v-model="dataForm.comfirmPassword" type="password" :placeholder="$t('user.comfirmPassword')"></el-input>
<el-form-item prop="comfirmPassword"
:label="$t('user.comfirmPassword')"
:class="{ 'is-required': !dataForm.id }">
<el-input v-model="dataForm.comfirmPassword"
type="password"
:placeholder="$t('user.comfirmPassword')"></el-input>
</el-form-item>
<el-form-item prop="realName" :label="$t('user.realName')">
<el-input v-model="dataForm.realName" :placeholder="$t('user.realName')"></el-input>
<el-form-item prop="realName"
:label="$t('user.realName')">
<el-input v-model="dataForm.realName"
:placeholder="$t('user.realName')"></el-input>
</el-form-item>
<el-form-item prop="gender" :label="$t('user.gender')" size="mini">
<el-form-item prop="gender"
:label="$t('user.gender')"
size="mini">
<el-radio-group v-model="dataForm.gender">
<el-radio :label="0">{{ $t('user.gender0') }}</el-radio>
<el-radio :label="1">{{ $t('user.gender1') }}</el-radio>
<el-radio :label="2">{{ $t('user.gender2') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="email" :label="$t('user.email')">
<el-input v-model="dataForm.email" :placeholder="$t('user.email')"></el-input>
<el-form-item prop="email"
:label="$t('user.email')">
<el-input v-model="dataForm.email"
:placeholder="$t('user.email')"></el-input>
</el-form-item>
<el-form-item prop="mobile" :label="$t('user.mobile')">
<el-input v-model="dataForm.mobile" :placeholder="$t('user.mobile')"></el-input>
<el-form-item prop="mobile"
:label="$t('user.mobile')">
<el-input v-model="dataForm.mobile"
:placeholder="$t('user.mobile')"></el-input>
</el-form-item>
<el-form-item prop="roleIdList" :label="$t('user.roleIdList')" class="role-list">
<el-select v-model="dataForm.roleIdList" multiple :placeholder="$t('user.roleIdList')">
<el-option v-for="role in roleList" :key="role.id" :label="role.name" :value="role.id"></el-option>
<el-form-item prop="roleIdList"
:label="$t('user.roleIdList')"
class="role-list">
<el-select v-model="dataForm.roleIdList"
multiple
:placeholder="$t('user.roleIdList')">
<el-option v-for="role in roleList"
:key="role.id"
:label="role.name"
:value="role.id"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="status" :label="$t('user.status')" size="mini">
<el-form-item prop="status"
:label="$t('user.status')"
size="mini">
<el-radio-group v-model="dataForm.status">
<el-radio :label="0">{{ $t('user.status0') }}</el-radio>
<el-radio :label="1">{{ $t('user.status1') }}</el-radio>
@ -55,7 +107,8 @@
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
<el-button type="primary"
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</template>
@ -83,8 +136,10 @@ export default {
email: '',
mobile: '',
roleIdList: [],
status: 1
}
status: 1,
userTagKey: ''
},
userTagDictList: []
}
},
computed: {
@ -139,6 +194,9 @@ export default {
mobile: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' },
{ validator: validateMobile, trigger: 'blur' }
],
userTagKey: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
}
@ -158,6 +216,7 @@ export default {
}
})
})
this.getUserTagDicList()
},
//
getDeptList () {
@ -177,6 +236,15 @@ export default {
this.roleList = res.data
}).catch(() => { })
},
//
getUserTagDicList () {
this.$http.get(`/sys/dict/listSimple/user_tag`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.userTagDictList = res.data
}).catch(() => { })
},
//
getInfo () {
this.$http.get(`/sys/user/${this.dataForm.id}`).then(({ data: res }) => {

67
src/views/pages/login.vue

@ -3,55 +3,78 @@
<div class="aui-content__wrapper">
<main class="aui-content">
<div class="login-header">
<h2 class="login-brand">{{ $t('brand.lg') }}</h2>
<h2 class="login-brand"
style="text-transform: none;">{{ $t('brand.lg') }}</h2>
</div>
<div class="login-body">
<h3 class="login-title">{{ $t('login.title') }}</h3>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" status-icon>
<el-form-item>
<el-form :model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
status-icon>
<!-- <el-form-item>
<el-select v-model="$i18n.locale" class="w-percent-100">
<el-option v-for="(val, key) in i18nMessages" :key="key" :label="val._lang" :value="key"></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item prop="username">
<el-input v-model="dataForm.username" :placeholder="$t('login.username')">
<span slot="prefix" class="el-input__icon">
<svg class="icon-svg" aria-hidden="true"><use xlink:href="#icon-user"></use></svg>
<el-input v-model="dataForm.username"
:placeholder="$t('login.username')">
<span slot="prefix"
class="el-input__icon">
<svg class="icon-svg"
aria-hidden="true">
<use xlink:href="#icon-user"></use>
</svg>
</span>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input v-model="dataForm.password" type="password" :placeholder="$t('login.password')">
<span slot="prefix" class="el-input__icon">
<svg class="icon-svg" aria-hidden="true"><use xlink:href="#icon-lock"></use></svg>
<el-input v-model="dataForm.password"
type="password"
:placeholder="$t('login.password')">
<span slot="prefix"
class="el-input__icon">
<svg class="icon-svg"
aria-hidden="true">
<use xlink:href="#icon-lock"></use>
</svg>
</span>
</el-input>
</el-form-item>
<el-form-item prop="captcha">
<el-row :gutter="20">
<el-col :span="14">
<el-input v-model="dataForm.captcha" :placeholder="$t('login.captcha')">
<span slot="prefix" class="el-input__icon">
<svg class="icon-svg" aria-hidden="true"><use xlink:href="#icon-safetycertificate"></use></svg>
<el-input v-model="dataForm.captcha"
:placeholder="$t('login.captcha')">
<span slot="prefix"
class="el-input__icon">
<svg class="icon-svg"
aria-hidden="true">
<use xlink:href="#icon-safetycertificate"></use>
</svg>
</span>
</el-input>
</el-col>
<el-col :span="10" class="login-captcha">
<img :src="captchaPath" @click="getCaptcha()">
<el-col :span="10"
class="login-captcha">
<img :src="captchaPath"
@click="getCaptcha()">
</el-col>
</el-row>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="dataFormSubmitHandle()" class="w-percent-100">{{ $t('login.title') }}</el-button>
<el-button type="primary"
@click="dataFormSubmitHandle()"
class="w-percent-100">{{ $t('login.title') }}</el-button>
</el-form-item>
</el-form>
</div>
<div class="login-footer">
<p>
<a href="https://demo.cloud.renren.io/renren-cloud" target="_blank">{{ $t('login.demo') }}</a>
</p>
<p><a href="https://www.renren.io/" target="_blank">{{ $t('login.copyright') }}</a>2018 © renren.io</p>
</div>
<!-- <div class="login-footer">
<p><a href="http://www.elinkit.com.cn/"
target="_blank">{{ $t('login.copyright') }}</a>2020 © www.elinkit.com.cn</p>
</div> -->
</main>
</div>
</div>

Loading…
Cancel
Save