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