dai 4 years ago
parent
commit
a38b7bea70
  1. 15
      epmet-oper-web/src/router/index.js
  2. 148
      epmet-oper-web/src/views/main-navbar-update-password-work.vue
  3. 19
      epmet-oper-web/src/views/main-navbar.vue
  4. 1
      epmet-oper-web/src/views/main-sidebar.vue
  5. 53
      epmet-oper-web/src/views/modules/base/grid.vue
  6. 155
      epmet-oper-web/src/views/modules/workPc/setpwd.vue

15
epmet-oper-web/src/router/index.js

@ -70,13 +70,16 @@ export const moduleRoutes = {
title: '首页', title: '首页',
isTab: true isTab: true
} }
},
{
path: '/work-setpwd',
component: () => import('@/views/modules/workPc/setpwd'),
name: 'work-setpwd',
meta: {
title: '修改密码',
isTab: true
}
} }
// {
// path: '/homeWork',
// component: () => import('@/views/modules/HomeWork'),
// name: 'homeWork',
// meta: { title: '首页', isTab: true }
// }
] ]
} }

148
epmet-oper-web/src/views/main-navbar-update-password-work.vue

@ -0,0 +1,148 @@
<template>
<el-dialog
:visible.sync="visible"
:title="$t('updatePassword.title')"
:close-on-click-modal="false"
:close-on-press-escape="false"
:append-to-body="true"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="120px"
>
<el-form-item :label="$t('updatePassword.username')">
<span>{{ $store.state.user.realName }}</span>
</el-form-item>
<!-- <el-form-item prop="password" :label="$t('updatePassword.password')">
<el-input
v-model="dataForm.password"
type="password"
:placeholder="$t('updatePassword.password')"
></el-input>
</el-form-item> -->
<el-form-item
prop="newPassword"
:label="$t('updatePassword.newPassword')"
>
<el-input
v-model="dataForm.newPassword"
type="password"
:placeholder="$t('updatePassword.newPassword')"
></el-input>
</el-form-item>
<el-form-item
prop="confirmPassword"
:label="$t('updatePassword.confirmPassword')"
>
<el-input
v-model="dataForm.confirmPassword"
type="password"
:placeholder="$t('updatePassword.confirmPassword')"
></el-input>
</el-form-item>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{
$t('confirm')
}}</el-button>
</template>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
import { clearLoginInfo } from '@/utils'
export default {
data() {
return {
visible: false,
dataForm: {
password: '',
newPassword: '',
confirmPassword: ''
}
}
},
computed: {
dataRule() {
var validateConfirmPassword = (rule, value, callback) => {
if (this.dataForm.newPassword !== value) {
return callback(
new Error(this.$t('updatePassword.validate.confirmPassword'))
)
}
callback()
}
return {
// password: [
// {
// required: true,
// message: this.$t('validate.required'),
// trigger: 'blur'
// }
// ],
newPassword: [
{
required: true,
message: this.$t('validate.required'),
trigger: 'blur'
}
],
confirmPassword: [
{
required: true,
message: this.$t('validate.required'),
trigger: 'blur'
},
{ validator: validateConfirmPassword, trigger: 'blur' }
]
}
}
},
methods: {
init() {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
})
},
//
dataFormSubmitHandle: debounce(
function () {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.$http
.post('/gov/mine/mine/resetpassword', {
newPassword: this.dataForm.newPassword,
confirmNewPassword: this.dataForm.confirmPassword
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
clearLoginInfo()
this.$router.replace({ name: 'loginWork' })
}
})
})
.catch(() => {})
})
},
1000,
{ leading: true, trailing: false }
)
}
}
</script>

19
epmet-oper-web/src/views/main-navbar.vue

@ -22,7 +22,10 @@
@click="$store.state.sidebarFold = !$store.state.sidebarFold" @click="$store.state.sidebarFold = !$store.state.sidebarFold"
> >
<svg <svg
class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch" class="
icon-svg
aui-navbar__icon-menu aui-navbar__icon-menu--switch
"
aria-hidden="true" aria-hidden="true"
> >
<use xlink:href="#icon-outdent"></use> <use xlink:href="#icon-outdent"></use>
@ -96,7 +99,11 @@
<i class="el-icon-arrow-down"></i> <i class="el-icon-arrow-down"></i>
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<!-- <el-dropdown-item @click.native="updatePasswordHandle()">{{ $t('updatePassword.title') }}</el-dropdown-item> --> <el-dropdown-item
v-if="userType == 'work'"
@click.native="updatePasswordHandle()"
>{{ $t('updatePassword.title') }}</el-dropdown-item
>
<el-dropdown-item @click.native="logoutHandle()">{{ <el-dropdown-item @click.native="logoutHandle()">{{
$t('logout') $t('logout')
}}</el-dropdown-item> }}</el-dropdown-item>
@ -106,10 +113,10 @@
</el-menu> </el-menu>
</div> </div>
<!-- 弹窗, 修改密码 --> <!-- 弹窗, 修改密码 -->
<update-password <update-password-work
v-if="updatePassowrdVisible" v-if="updatePassowrdVisible"
ref="updatePassowrd" ref="updatePassowrd"
></update-password> ></update-password-work>
</nav> </nav>
<nav v-else class="aui-navbar main-line"></nav> <nav v-else class="aui-navbar main-line"></nav>
</div> </div>
@ -119,7 +126,7 @@
import { messages } from '@/i18n' import { messages } from '@/i18n'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import screenfull from 'screenfull' import screenfull from 'screenfull'
import UpdatePassword from './main-navbar-update-password' import UpdatePasswordWork from './main-navbar-update-password-work'
import { clearLoginInfo } from '@/utils' import { clearLoginInfo } from '@/utils'
export default { export default {
inject: ['refresh'], inject: ['refresh'],
@ -132,7 +139,7 @@ export default {
} }
}, },
components: { components: {
UpdatePassword UpdatePasswordWork
}, },
created() { created() {
let platformToken = localStorage.getItem('showHeader') || '' let platformToken = localStorage.getItem('showHeader') || ''

1
epmet-oper-web/src/views/main-sidebar.vue

@ -20,6 +20,7 @@
<el-menu <el-menu
:default-active="$store.state.sidebarMenuActiveName" :default-active="$store.state.sidebarMenuActiveName"
:collapse="$store.state.sidebarFold"
:unique-opened="true" :unique-opened="true"
:collapseTransition="false" :collapseTransition="false"
class="aui-sidebar__menu" class="aui-sidebar__menu"

53
epmet-oper-web/src/views/modules/base/grid.vue

@ -8,23 +8,6 @@
<div class="resi-cell"> <div class="resi-cell">
<div class="resi-cell-label">所属组织</div> <div class="resi-cell-label">所属组织</div>
<div class="resi-cell-value" :class="'resi-cell-value-radio'"> <div class="resi-cell-value" :class="'resi-cell-value-radio'">
<el-input
v-model="fmData.agencyId"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容"
>
</el-input>
<el-date-picker
v-model="fmData.agencyId"
class="resi-cell-input"
type="date"
size="small"
clearable
placeholder="选择日期"
>
</el-date-picker>
<el-select <el-select
v-model="fmData.agencyId" v-model="fmData.agencyId"
placeholder="请选择" placeholder="请选择"
@ -40,20 +23,22 @@
> >
</el-option> </el-option>
</el-select> </el-select>
<template> </div>
<el-radio v-model="fmData.agencyId" label="1" </div>
>备选项</el-radio </el-col>
>
<el-radio v-model="fmData.agencyId" label="2" <el-col span="6">
>备选项</el-radio <div class="resi-cell">
> <div class="resi-cell-label">所属组织</div>
</template> <div class="resi-cell-value" :class="'resi-cell-value-radio'">
<template> <el-input
<el-checkbox-group v-model="fmData.agencyId"> v-model="fmData.agencyId"
<el-checkbox label="复选框 A"></el-checkbox> class="resi-cell-input"
<el-checkbox label="复选框 B"></el-checkbox> size="small"
</el-checkbox-group> clearable
</template> placeholder="请输入内容"
>
</el-input>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -66,10 +51,6 @@
> >
</el-col> </el-col>
</el-row> </el-row>
<div class="resi-down" @click="handleOpenSearch">
<img v-if="openSearch" src="../../../assets/img/arrow-up.png" />
<img v-else src="../../../assets/img/arrow-down.png" />
</div>
</el-card> </el-card>
</div> </div>
@ -79,8 +60,6 @@
<el-button type="success" size="small" @click="handleAdd" <el-button type="success" size="small" @click="handleAdd"
>新增</el-button >新增</el-button
> >
<el-button type="primary" size="small">下载人口模板</el-button>
<el-button type="danger" size="small">导入人口数据</el-button>
</div> </div>
<el-table :data="tableData" border style="width: 100%"> <el-table :data="tableData" border style="width: 100%">
<el-table-column prop="date" label="日期" width="180"> <el-table-column prop="date" label="日期" width="180">

155
epmet-oper-web/src/views/modules/workPc/setpwd.vue

@ -0,0 +1,155 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__menu">
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">{{
$t('add')
}}</el-button>
</el-form-item>
</el-form>
<el-table
v-loading="dataListLoading"
:data="dataList"
row-key="id"
border
:height="tableHeight"
style="width: 100%"
>
<el-table-column
prop="name"
:label="$t('menu.name')"
header-align="center"
min-width="150"
></el-table-column>
<el-table-column
prop="icon"
:label="$t('menu.icon')"
header-align="center"
align="center"
>
<template slot-scope="scope">
<svg class="icon-svg" aria-hidden="true">
<use :xlink:href="`#${scope.row.icon}`"></use>
</svg>
</template>
</el-table-column>
<el-table-column
prop="type"
:label="$t('menu.type')"
header-align="center"
align="center"
>
<template slot-scope="scope">
<el-tag v-if="scope.row.type === 0" size="small">{{
$t('menu.type0')
}}</el-tag>
<el-tag v-else size="small" type="info">{{
$t('menu.type1')
}}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="sort"
:label="$t('menu.sort')"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="url"
:label="$t('menu.url')"
header-align="center"
align="center"
width="150"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
prop="permissions"
:label="$t('menu.permissions')"
header-align="center"
align="center"
width="150"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>{{ $t('update') }}</el-button
>
<el-button
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>{{ $t('delete') }}</el-button
>
<el-button
type="text"
size="small"
@click="showCustomerMenu(scope.row.id)"
>{{ '客户配置' }}</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
<!-- 客户菜单配置 -->
<customer-add-or-update
ref="customerForm"
@refreshDataList="getDataList"
></customer-add-or-update>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './menu-add-or-update'
import { mapGetters } from 'vuex'
import CustomerAddOrUpdate from './customer-add-or-update'
export default {
mixins: [mixinViewModule],
data() {
return {
mixinViewModuleOptions: {
getDataListURL: '/gov/access/menu/list',
deleteURL: '/gov/access/menu'
},
customerFormVisible: false
}
},
components: {
AddOrUpdate,
CustomerAddOrUpdate
},
computed: {
tableHeight() {
// return this.resolution === 'small' ? this.clientHeight - 210 : this.clientHeight - 220
return this.clientHeight - 210
},
...mapGetters(['clientHeight', 'resolution'])
},
methods: {
showCustomerMenu(tableId) {
this.$refs['customerForm'].init(tableId)
}
}
}
</script>
Loading…
Cancel
Save