提交 c848fdf4 authored 作者: haodaking's avatar haodaking

updates

上级 4a8ba5c3
VITE_LOGIN_URL=https://login2.ezijing.com/auth/login/index VITE_LOGIN_URL=https://login.ezijing.com/auth/login/index
...@@ -49,3 +49,9 @@ export function getUserPermissions(params) { ...@@ -49,3 +49,9 @@ export function getUserPermissions(params) {
export function getUserList(params) { export function getUserList(params) {
return httpRequest.get(`/api/permissions/admin/v1/${params.app_id}/application/users`, { params }) return httpRequest.get(`/api/permissions/admin/v1/${params.app_id}/application/users`, { params })
} }
/**
* 获取应用详情
*/
export function getApp(id, params) {
return httpRequest.get(`/api/permissions/admin/v1/${id}/application`, { params })
}
<template> <template>
<header class="app-header"> <header class="app-header">
<div class="logo"> <div class="app-header-left">
<router-link to="/"><img src="https://zws-imgs-pub.ezijing.com/pc/base/ezijing-logo-white.svg" /></router-link> <div class="logo">
<router-link to="/"><img src="https://zws-imgs-pub.ezijing.com/pc/base/ezijing-logo-white.svg" /></router-link>
</div>
<div class="app-name" v-if="app && sidebar">{{ app.name }}</div>
</div> </div>
<div class="app-header-right"> <div class="app-header-right">
<el-dropdown> <el-dropdown>
...@@ -22,9 +25,13 @@ ...@@ -22,9 +25,13 @@
<script> <script>
export default { export default {
name: 'AppHeader', name: 'AppHeader',
props: { sidebar: { type: Boolean, default: true } },
computed: { computed: {
user() { user() {
return this.$store.state.user return this.$store.state.user
},
app() {
return this.$store.state.app
} }
}, },
methods: { methods: {
...@@ -51,6 +58,16 @@ export default { ...@@ -51,6 +58,16 @@ export default {
width: 120px; width: 120px;
} }
} }
.app-header-left {
display: flex;
align-items: center;
.app-name {
margin-left: 20px;
padding: 0 15px;
line-height: 1;
border-left: 2px solid #fff;
}
}
.app-header-right { .app-header-right {
display: flex; display: flex;
......
<template> <template>
<div class="app-layout"> <div class="app-layout">
<app-header></app-header> <app-header :sidebar="sidebar"></app-header>
<div class="app-layout-container"> <div class="app-layout-container">
<app-aside v-if="sidebar"></app-aside> <app-aside v-if="sidebar"></app-aside>
<app-main></app-main> <app-main></app-main>
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
<template #header-aside> <template #header-aside>
<el-button type="primary" icon="el-icon-plus" @click="handleCreate">添加成员</el-button> <el-button type="primary" icon="el-icon-plus" @click="handleCreate">添加成员</el-button>
</template> </template>
<template v-slot:filter-user="{ params }">
<user-autocomplete v-model="params.sso_id" @change="handleSuccess"></user-autocomplete>
</template>
<template v-slot:table-roles="{ row }"> <template v-slot:table-roles="{ row }">
<el-tag v-for="(item, index) in row.roles" :key="index" style="margin: 5px 5px 5px 0">{{ item.name }}</el-tag> <el-tag v-for="(item, index) in row.roles" :key="index" style="margin: 5px 5px 5px 0">{{ item.name }}</el-tag>
</template> </template>
...@@ -12,15 +15,7 @@ ...@@ -12,15 +15,7 @@
<el-tag type="info" v-else></el-tag> <el-tag type="info" v-else></el-tag>
</template> </template>
<template v-slot:table-status="{ row }"> <template v-slot:table-status="{ row }">
<el-switch <el-switch v-model="row.status" active-text="启用" inactive-text="停用" :active-value="0" :inactive-value="1" @change="changeStatus(row)"> </el-switch>
v-model="row.status"
active-text="启用"
inactive-text="停用"
:active-value="0"
:inactive-value="1"
@change="changeStatus(row)"
>
</el-switch>
</template> </template>
<template v-slot:table-x="{ row }"> <template v-slot:table-x="{ row }">
<el-button type="text" @click="handleUpdate(row)">修改</el-button> <el-button type="text" @click="handleUpdate(row)">修改</el-button>
...@@ -30,22 +25,17 @@ ...@@ -30,22 +25,17 @@
<el-button type="primary" @click="setAdmin" :disabled="!multipleSelection.length">设置应用管理员</el-button> <el-button type="primary" @click="setAdmin" :disabled="!multipleSelection.length">设置应用管理员</el-button>
</template> </template>
</app-list> </app-list>
<editform <editform :visible.sync="visible" :isEdit="isEdit" :data="editRaw" @success="handleSuccess" v-if="visible"></editform>
:visible.sync="visible"
:isEdit="isEdit"
:data="editRaw"
@success="handleSuccess"
v-if="visible"
></editform>
</app-card> </app-card>
</template> </template>
<script> <script>
// 接口 // 接口
import { getUserList, deleteUsers, getRoleList, updateUserStatus, createAppAdminUsers } from '../api' import { getUserList, deleteUsers, getRoleList, updateUserStatus, createAppAdminUsers } from '../api'
import UserAutocomplete from '@/components/base/UserAutocomplete.vue'
export default { export default {
components: { Editform: () => import('../components/Editform.vue') }, components: { UserAutocomplete, Editform: () => import('../components/Editform.vue') },
data() { data() {
return { return {
roles: [], roles: [],
...@@ -64,14 +54,14 @@ export default { ...@@ -64,14 +54,14 @@ export default {
return { return {
remote: { remote: {
httpRequest: getUserList, httpRequest: getUserList,
params: { app_id: this.$store.state.appid, search_role_id: '' } params: { app_id: this.$store.state.appid, search_role_id: '', sso_id: '' }
}, },
filters: [ filters: [
// { {
// type: 'input', type: 'input',
// prop: 'name', prop: 'sso_id',
// placeholder: '输入邮箱/手机号码搜索' slots: 'filter-user'
// }, },
{ {
type: 'select', type: 'select',
prop: 'search_role_id', prop: 'search_role_id',
......
import Vue from 'vue' import Vue from 'vue'
import Vuex from 'vuex' import Vuex from 'vuex'
import { getUser, logout } from '@/api/base' import { getUser, logout, getApp } from '@/api/base'
Vue.use(Vuex) Vue.use(Vuex)
export default new Vuex.Store({ const store = new Vuex.Store({
state: { state: {
user: {}, user: {},
appid: localStorage.getItem('appid') || '' appid: localStorage.getItem('appid') || '',
app: {}
}, },
mutations: { mutations: {
setUser(state, user) { setUser(state, user) {
...@@ -15,6 +16,9 @@ export default new Vuex.Store({ ...@@ -15,6 +16,9 @@ export default new Vuex.Store({
}, },
setAppid(state, appid) { setAppid(state, appid) {
state.appid = appid state.appid = appid
},
setApp(state, app) {
state.app = app
} }
}, },
actions: { actions: {
...@@ -47,6 +51,13 @@ export default new Vuex.Store({ ...@@ -47,6 +51,13 @@ export default new Vuex.Store({
return false return false
}) })
return isLogin return isLogin
},
getApp({ commit, state }, appid) {
getApp(appid || state.appid).then(res => {
commit('setApp', res.data)
})
} }
} }
}) })
store.dispatch('getApp')
export default store
...@@ -18,6 +18,7 @@ export default async function (to, from, next) { ...@@ -18,6 +18,7 @@ export default async function (to, from, next) {
const appid = to.query.appid || '' const appid = to.query.appid || ''
if (appid) { if (appid) {
store.commit('setAppid', appid) store.commit('setAppid', appid)
store.dispatch('getApp', appid)
localStorage.setItem('appid', appid) localStorage.setItem('appid', appid)
} }
// 浏览器不支持 // 浏览器不支持
......
...@@ -14,7 +14,7 @@ export default defineConfig({ ...@@ -14,7 +14,7 @@ export default defineConfig({
cert: fs.readFileSync(path.join(__dirname, './https/dev.ezijing.com.pem')) cert: fs.readFileSync(path.join(__dirname, './https/dev.ezijing.com.pem'))
}, },
proxy: { proxy: {
'/api': 'https://app2.ezijing.com' '/api': 'https://app.ezijing.com'
} }
}, },
resolve: { resolve: {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论