用户登录接口调试
This commit is contained in:
parent
57edf4fb4b
commit
b759f16558
@ -6,4 +6,5 @@ export const updateUser = data => request.post({ url: '/user/updateUser', data }
|
|||||||
export const setStatus = params => request.post({ url: '/user/setStatus', params }) //设置有效状态
|
export const setStatus = params => request.post({ url: '/user/setStatus', params }) //设置有效状态
|
||||||
export const deleteUserById = id => request.post({ url: '/user/deleteUserById?id=' + id }) //删除
|
export const deleteUserById = id => request.post({ url: '/user/deleteUserById?id=' + id }) //删除
|
||||||
export const deleteUserByIds = id => request.post({ url: '/user/deleteUserByIds?ids=' + id }) //删除
|
export const deleteUserByIds = id => request.post({ url: '/user/deleteUserByIds?ids=' + id }) //删除
|
||||||
export const resetPassword = id => request.post({ url: '/user/resetPassword?id=' + id }) //重置密码
|
export const resetPassword = id => request.post({ url: '/user/resetPassword?id=' + id }) //重置密码
|
||||||
|
export const userLogin = params => request.post({ url: '/user/login', params }) //登录
|
@ -40,6 +40,8 @@
|
|||||||
import 'element-plus/dist/index.css'
|
import 'element-plus/dist/index.css'
|
||||||
import { i18n } from '@/plugins/vue-i18n'
|
import { i18n } from '@/plugins/vue-i18n'
|
||||||
import { moduleUpdate,moduleById } from '@/api/application/module'
|
import { moduleUpdate,moduleById } from '@/api/application/module'
|
||||||
|
import { userLogin } from '@/api/permission/user'
|
||||||
|
import { useCache } from '@/hooks/web/useCache'
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const activeName: any = ref('代码')
|
const activeName: any = ref('代码')
|
||||||
@ -80,7 +82,9 @@
|
|||||||
vue: Vue,
|
vue: Vue,
|
||||||
'element-plus': ElementPlus,
|
'element-plus': ElementPlus,
|
||||||
'vue/dist/vue.esm-bundler.js': Vue,
|
'vue/dist/vue.esm-bundler.js': Vue,
|
||||||
'vue-router': VueRouter
|
'vue-router': VueRouter,
|
||||||
|
'@/api/permission/user': { userLogin },
|
||||||
|
'@/hooks/web/useCache': { useCache }
|
||||||
},
|
},
|
||||||
getFile: async (fileName) => {
|
getFile: async (fileName) => {
|
||||||
if (fileName.startsWith('@/')) {
|
if (fileName.startsWith('@/')) {
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, watch, onMounted, onBeforeUnmount, shallowRef } from 'vue'
|
import { ref, watch, onMounted, onBeforeUnmount, shallowRef } from 'vue'
|
||||||
import type { FormInstance, FormRules } from 'element-plus'
|
import type { FormInstance, FormRules } from 'element-plus'
|
||||||
import {useRoute, useRouter } from 'vue-router'
|
import { ElMessage } from 'element-plus'
|
||||||
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
|
import { userLogin } from '@/api/permission/user'
|
||||||
|
import { useCache } from '@/hooks/web/useCache'
|
||||||
|
const { wsCache } = useCache()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
id: String,
|
id: String,
|
||||||
name: String,
|
name: String,
|
||||||
isExecuteEvent: Boolean,
|
isExecuteEvent: Boolean,
|
||||||
})
|
})
|
||||||
const form = ref({
|
const form = ref({
|
||||||
username: '',
|
username: '',
|
||||||
@ -24,15 +28,35 @@ const loginRules = ref({
|
|||||||
const ruleFormRef = ref<FormInstance>()
|
const ruleFormRef = ref<FormInstance>()
|
||||||
const loginTitle: any = ref('')
|
const loginTitle: any = ref('')
|
||||||
const submitForm = async (formEl: FormInstance | undefined) => {
|
const submitForm = async (formEl: FormInstance | undefined) => {
|
||||||
if(props.isExecuteEvent){
|
if (props.isExecuteEvent) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!formEl) return
|
if (!formEl) return
|
||||||
await formEl.validate((valid, fields) => {
|
await formEl.validate((valid, fields) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
router.push({
|
const params = {
|
||||||
path: '/PreviewSystem',
|
username: form.value.username,
|
||||||
query: { id: props.id, name: props.name }
|
password: form.value.password
|
||||||
|
}
|
||||||
|
userLogin(params).then(res => {
|
||||||
|
if(res.data.code == '0'){
|
||||||
|
let userInfo = {
|
||||||
|
nickname: res.data.data.nickname,
|
||||||
|
username: res.data.data.username,
|
||||||
|
id: res.data.data.id,
|
||||||
|
phone: res.data.data.phone,
|
||||||
|
email: res.data.data.email,
|
||||||
|
}
|
||||||
|
wsCache.set('Permission-userinfo', userInfo)
|
||||||
|
ElMessage.success('登录成功')
|
||||||
|
router.push({
|
||||||
|
path: '/PreviewSystem',
|
||||||
|
query: { id: props.id, name: props.name }
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
ElMessage.error(res.data.msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@ -64,17 +88,19 @@ onBeforeUnmount(() => {
|
|||||||
<img src="@/assets/img/username.png" alt="">
|
<img src="@/assets/img/username.png" alt="">
|
||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
<img class="login-splitline" src="@/assets/img/splitline2.png" style="width:100%;height: 1px;" alt="">
|
<img class="login-splitline" src="@/assets/img/splitline2.png"
|
||||||
|
style="width:100%;height: 1px;" alt="">
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="" prop="password">
|
<el-form-item label="" prop="password">
|
||||||
<div class="logininput">
|
<div class="logininput">
|
||||||
<el-input v-model="form.password" placeholder="请输入密码" type="password">
|
<el-input v-model="form.password" show-password placeholder="请输入密码" type="password">
|
||||||
<template #prepend>
|
<template #prepend>
|
||||||
<img src="@/assets/img/password.png" alt="">
|
<img src="@/assets/img/password.png" alt="">
|
||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
<img class="login-splitline" src="@/assets/img/splitline1.png" style="width:100%;height: 1px;" alt="">
|
<img class="login-splitline" src="@/assets/img/splitline1.png"
|
||||||
|
style="width:100%;height: 1px;" alt="">
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div class="login-button" @click="submitForm(ruleFormRef)">登录</div>
|
<div class="login-button" @click="submitForm(ruleFormRef)">登录</div>
|
||||||
@ -93,6 +119,7 @@ onBeforeUnmount(() => {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding-top: 8%;
|
padding-top: 8%;
|
||||||
|
|
||||||
.login-container {
|
.login-container {
|
||||||
|
|
||||||
.login-title {
|
.login-title {
|
||||||
@ -146,48 +173,68 @@ onBeforeUnmount(() => {
|
|||||||
.logininput {
|
.logininput {
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
width:100%;
|
width: 100%;
|
||||||
.login-splitline{
|
|
||||||
|
.login-splitline {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0px;
|
bottom: 0px;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
.login-button{
|
|
||||||
|
.login-button {
|
||||||
height: 40px;
|
height: 40px;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background: url(/images/loginbtn.png) no-repeat;
|
background: url(/images/loginbtn.png) no-repeat;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
margin-top: 40px;
|
margin-top: 40px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<style>
|
<style>
|
||||||
.logininput .el-input__wrapper{
|
.logininput .el-input__wrapper {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
border: none;
|
border: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
.logininput .el-input-group__prepend{
|
|
||||||
|
.logininput .el-input-group__prepend {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
.logininput .el-input__inner{
|
|
||||||
|
.logininput .el-input__inner {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
.logininput .el-form-item.is-error .el-input-tag__wrapper, .el-form-item.is-error .el-input-tag__wrapper.is-focus, .el-form-item.is-error .el-input-tag__wrapper:focus, .el-form-item.is-error .el-input-tag__wrapper:hover, .el-form-item.is-error .el-input__wrapper, .el-form-item.is-error .el-input__wrapper.is-focus, .el-form-item.is-error .el-input__wrapper:focus, .el-form-item.is-error .el-input__wrapper:hover, .el-form-item.is-error .el-select__wrapper, .el-form-item.is-error .el-select__wrapper.is-focus, .el-form-item.is-error .el-select__wrapper:focus, .el-form-item.is-error .el-select__wrapper:hover, .el-form-item.is-error .el-textarea__inner, .el-form-item.is-error .el-textarea__inner.is-focus, .el-form-item.is-error .el-textarea__inner:focus, .el-form-item.is-error .el-textarea__inner:hover{
|
|
||||||
|
.logininput .el-form-item.is-error .el-input-tag__wrapper,
|
||||||
|
.el-form-item.is-error .el-input-tag__wrapper.is-focus,
|
||||||
|
.el-form-item.is-error .el-input-tag__wrapper:focus,
|
||||||
|
.el-form-item.is-error .el-input-tag__wrapper:hover,
|
||||||
|
.el-form-item.is-error .el-input__wrapper,
|
||||||
|
.el-form-item.is-error .el-input__wrapper.is-focus,
|
||||||
|
.el-form-item.is-error .el-input__wrapper:focus,
|
||||||
|
.el-form-item.is-error .el-input__wrapper:hover,
|
||||||
|
.el-form-item.is-error .el-select__wrapper,
|
||||||
|
.el-form-item.is-error .el-select__wrapper.is-focus,
|
||||||
|
.el-form-item.is-error .el-select__wrapper:focus,
|
||||||
|
.el-form-item.is-error .el-select__wrapper:hover,
|
||||||
|
.el-form-item.is-error .el-textarea__inner,
|
||||||
|
.el-form-item.is-error .el-textarea__inner.is-focus,
|
||||||
|
.el-form-item.is-error .el-textarea__inner:focus,
|
||||||
|
.el-form-item.is-error .el-textarea__inner:hover {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border: none;
|
border: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
.login-form .el-form-item__error{
|
|
||||||
padding-top: 4px ;
|
.login-form .el-form-item__error {
|
||||||
|
padding-top: 4px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -14,6 +14,8 @@ import { i18n } from '@/plugins/vue-i18n'
|
|||||||
import * as VueRouter from 'vue-router'
|
import * as VueRouter from 'vue-router'
|
||||||
import { useRoute, useRouter } from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
import { moduleUpdate,moduleById } from '@/api/application/module'
|
import { moduleUpdate,moduleById } from '@/api/application/module'
|
||||||
|
import { userLogin } from '@/api/permission/user'
|
||||||
|
import { useCache } from '@/hooks/web/useCache'
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@ -54,7 +56,9 @@ const runCode = async () => {
|
|||||||
vue: Vue,
|
vue: Vue,
|
||||||
'element-plus': ElementPlus,
|
'element-plus': ElementPlus,
|
||||||
'vue/dist/vue.esm-bundler.js': Vue,
|
'vue/dist/vue.esm-bundler.js': Vue,
|
||||||
'vue-router': VueRouter
|
'vue-router': VueRouter,
|
||||||
|
'@/api/permission/user': { userLogin },
|
||||||
|
'@/hooks/web/useCache': { useCache }
|
||||||
},
|
},
|
||||||
getFile: async (fileName) => {
|
getFile: async (fileName) => {
|
||||||
if (fileName.startsWith('@/')) {
|
if (fileName.startsWith('@/')) {
|
||||||
|
@ -5,6 +5,8 @@ import Assocmodule from '@/viewsnew/application/SfcEditor/NavbarEditor/assocPage
|
|||||||
import PermissionSet from '@/viewsnew/application/permissionset/index.vue'
|
import PermissionSet from '@/viewsnew/application/permissionset/index.vue'
|
||||||
import UserInfoSet from '@/viewsnew/application/permissionset/user/userinfo.vue'
|
import UserInfoSet from '@/viewsnew/application/permissionset/user/userinfo.vue'
|
||||||
import {useRoute, useRouter } from 'vue-router'
|
import {useRoute, useRouter } from 'vue-router'
|
||||||
|
import { useCache } from '@/hooks/web/useCache'
|
||||||
|
const { wsCache } = useCache()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@ -27,6 +29,7 @@ const currentMoudleId = ref('')
|
|||||||
const showermission = ref(false)
|
const showermission = ref(false)
|
||||||
const showUserInfo = ref(false)
|
const showUserInfo = ref(false)
|
||||||
const currentrow = ref({})
|
const currentrow = ref({})
|
||||||
|
const userList:any = ref({})
|
||||||
watch(
|
watch(
|
||||||
() => props.menuList,
|
() => props.menuList,
|
||||||
(newVal) => {
|
(newVal) => {
|
||||||
@ -109,6 +112,7 @@ const TimeDisplay = {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
navmenulist.value = props.menuList
|
navmenulist.value = props.menuList
|
||||||
navtitle.value = props.projectName
|
navtitle.value = props.projectName
|
||||||
|
userList.value = wsCache.get('Permission-userinfo')
|
||||||
})
|
})
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
|
|
||||||
@ -132,13 +136,13 @@ function logout(){
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
|
wsCache.delete('Permission-userinfo')
|
||||||
router.push({
|
router.push({
|
||||||
path: '/SystemLogin',
|
path: '/SystemLogin',
|
||||||
query: { id: props.applicationId, name: props.projectName }
|
query: { id: props.applicationId, name: props.projectName }
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
.catch(() => {})
|
||||||
|
|
||||||
}
|
}
|
||||||
function userdetails(){
|
function userdetails(){
|
||||||
showmodule.value = false
|
showmodule.value = false
|
||||||
@ -176,7 +180,7 @@ function userdetails(){
|
|||||||
<div style="margin-right: 10px;cursor: pointer;" @click="permissionClick"><img
|
<div style="margin-right: 10px;cursor: pointer;" @click="permissionClick"><img
|
||||||
src="@/assets/img/navpermission.png" alt=""></div>
|
src="@/assets/img/navpermission.png" alt=""></div>
|
||||||
<div style="margin-right: 10px;cursor: pointer;"><img src="@/assets/img/nav1.png" alt=""></div>
|
<div style="margin-right: 10px;cursor: pointer;"><img src="@/assets/img/nav1.png" alt=""></div>
|
||||||
<div style="margin-right: 15px;min-width: 45px;cursor: pointer;" @click="userdetails">admin</div>
|
<div style="margin-right: 15px;min-width: 45px;cursor: pointer;" @click="userdetails">{{ props.isExecuteEvent == false?userList.nickname:'admin' }}</div>
|
||||||
<div style="margin-right: 15px;cursor: pointer;" @click="userdetails"><img src="@/assets/img/nav3.png" alt=""></div>
|
<div style="margin-right: 15px;cursor: pointer;" @click="userdetails"><img src="@/assets/img/nav3.png" alt=""></div>
|
||||||
<div @click="logout" style="cursor: pointer;"><img src="@/assets/img/nav4.png" alt=""></div>
|
<div @click="logout" style="cursor: pointer;"><img src="@/assets/img/nav4.png" alt=""></div>
|
||||||
</div>
|
</div>
|
||||||
@ -187,7 +191,7 @@ function userdetails(){
|
|||||||
<Assocmodule v-if="showmodule" :applicationId="props.applicationId"
|
<Assocmodule v-if="showmodule" :applicationId="props.applicationId"
|
||||||
:moduleinfo="currentrow" />
|
:moduleinfo="currentrow" />
|
||||||
<PermissionSet v-if="showermission" />
|
<PermissionSet v-if="showermission" />
|
||||||
<UserInfoSet v-if="showUserInfo" :applicationId="props.applicationId" />
|
<UserInfoSet v-if="showUserInfo" :userList="userList" :applicationId="props.applicationId" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -96,7 +96,6 @@ function handleNodeClick(e) {
|
|||||||
isNavbar.value = true
|
isNavbar.value = true
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
|
@ -41,6 +41,7 @@ import defaultTemplate from '@/viewsnew/application/SfcEditor/NavbarEditor/Navba
|
|||||||
import { getMenuTree } from '@/api/permission/menu'
|
import { getMenuTree } from '@/api/permission/menu'
|
||||||
import { moduleUpdate, moduleById } from '@/api/application/module'
|
import { moduleUpdate, moduleById } from '@/api/application/module'
|
||||||
import { i18n } from '@/plugins/vue-i18n'
|
import { i18n } from '@/plugins/vue-i18n'
|
||||||
|
import { useCache } from '@/hooks/web/useCache'
|
||||||
import 'element-plus/dist/index.css'
|
import 'element-plus/dist/index.css'
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
@ -92,6 +93,7 @@ const runCode = async () => {
|
|||||||
'@/viewsnew/application/permissionset/user/userinfo.vue': Vue.defineAsyncComponent(() =>
|
'@/viewsnew/application/permissionset/user/userinfo.vue': Vue.defineAsyncComponent(() =>
|
||||||
import('@/viewsnew/application/permissionset/user/userinfo.vue')
|
import('@/viewsnew/application/permissionset/user/userinfo.vue')
|
||||||
),
|
),
|
||||||
|
'@/hooks/web/useCache':{useCache}
|
||||||
},
|
},
|
||||||
getFile: async (fileName) => {
|
getFile: async (fileName) => {
|
||||||
if (fileName.startsWith('@/')) {
|
if (fileName.startsWith('@/')) {
|
||||||
|
@ -15,6 +15,7 @@ import { useRoute, useRouter } from 'vue-router'
|
|||||||
import { i18n } from '@/plugins/vue-i18n'
|
import { i18n } from '@/plugins/vue-i18n'
|
||||||
import defaultTemplate from '@/viewsnew/application/SfcEditor/NavbarEditor/Navbar.vue?raw'
|
import defaultTemplate from '@/viewsnew/application/SfcEditor/NavbarEditor/Navbar.vue?raw'
|
||||||
import { moduleUpdate, moduleById } from '@/api/application/module'
|
import { moduleUpdate, moduleById } from '@/api/application/module'
|
||||||
|
import { useCache } from '@/hooks/web/useCache'
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@ -76,6 +77,7 @@ const runCode = async () => {
|
|||||||
'@/viewsnew/application/permissionset/user/userinfo.vue': Vue.defineAsyncComponent(() =>
|
'@/viewsnew/application/permissionset/user/userinfo.vue': Vue.defineAsyncComponent(() =>
|
||||||
import('@/viewsnew/application/permissionset/user/userinfo.vue')
|
import('@/viewsnew/application/permissionset/user/userinfo.vue')
|
||||||
),
|
),
|
||||||
|
'@/hooks/web/useCache': { useCache }
|
||||||
},
|
},
|
||||||
getFile: async (fileName) => {
|
getFile: async (fileName) => {
|
||||||
if (fileName === 'dynamic.vue') {
|
if (fileName === 'dynamic.vue') {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, watch, onMounted, onBeforeUnmount } from 'vue'
|
import { ref, watch, onMounted, onBeforeUnmount } from 'vue'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
||||||
import { useRoute, useRouter } from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
import * as VueRouter from 'vue-router'
|
import * as VueRouter from 'vue-router'
|
||||||
import { loadModule } from 'vue3-sfc-loader'
|
import { loadModule } from 'vue3-sfc-loader'
|
||||||
@ -10,6 +9,8 @@ import * as ElementPlus from 'element-plus'
|
|||||||
import less from 'less'
|
import less from 'less'
|
||||||
import defaultTemplate from '@/viewsnew/application/SfcEditor/LoginEditor/login.vue?raw'
|
import defaultTemplate from '@/viewsnew/application/SfcEditor/LoginEditor/login.vue?raw'
|
||||||
import { moduleList, moduleById } from '@/api/application/module'
|
import { moduleList, moduleById } from '@/api/application/module'
|
||||||
|
import { userLogin } from '@/api/permission/user'
|
||||||
|
import { useCache } from '@/hooks/web/useCache'
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const sfcCode = ref(defaultTemplate)
|
const sfcCode = ref(defaultTemplate)
|
||||||
@ -44,7 +45,9 @@ const runCode = async () => {
|
|||||||
vue: Vue,
|
vue: Vue,
|
||||||
'element-plus': ElementPlus,
|
'element-plus': ElementPlus,
|
||||||
'vue/dist/vue.esm-bundler.js': Vue,
|
'vue/dist/vue.esm-bundler.js': Vue,
|
||||||
'vue-router': VueRouter
|
'vue-router': VueRouter,
|
||||||
|
'@/api/permission/user': { userLogin },
|
||||||
|
'@/hooks/web/useCache': { useCache }
|
||||||
},
|
},
|
||||||
getFile: async (fileName) => {
|
getFile: async (fileName) => {
|
||||||
if (fileName.startsWith('@/')) {
|
if (fileName.startsWith('@/')) {
|
||||||
|
@ -1,22 +1,35 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, onMounted } from 'vue'
|
import { ref, onMounted } from 'vue'
|
||||||
|
import { updateUser } from '@/api/permission/user'
|
||||||
|
import { ElMessage } from 'element-plus'
|
||||||
|
import { useCache } from '@/hooks/web/useCache'
|
||||||
|
const { wsCache } = useCache()
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
applicationId: String,
|
applicationId: String,
|
||||||
|
userList:Object,
|
||||||
})
|
})
|
||||||
const userlist: any = ref({
|
const userlist: any = ref({
|
||||||
username: 'admin',
|
username: 'admin',
|
||||||
nickname: '管理员',
|
nickname: '管理员',
|
||||||
password: '',
|
|
||||||
newpassword: '',
|
|
||||||
submitpassword: '',
|
|
||||||
email: '',
|
email: '',
|
||||||
phone: '',
|
phone: '',
|
||||||
|
id:''
|
||||||
})
|
})
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
userlist.value = props.userList
|
||||||
})
|
})
|
||||||
function saveinfo() {
|
function saveinfo() {
|
||||||
//保存
|
//保存
|
||||||
|
updateUser(userlist.value).then(res => {
|
||||||
|
if(res.data.code == '0'){
|
||||||
|
ElMessage({
|
||||||
|
type: 'success',
|
||||||
|
message: '修改成功',
|
||||||
|
})
|
||||||
|
wsCache.set('Permission-userinfo', userlist.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
@ -46,7 +59,7 @@ function saveinfo() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="userinfo-content-top" style="margin-top: 50px;">
|
<!-- <div class="userinfo-content-top" style="margin-top: 50px;">
|
||||||
<div class="userinfo-title">
|
<div class="userinfo-title">
|
||||||
<div class="userinfo-title-icon"></div>
|
<div class="userinfo-title-icon"></div>
|
||||||
<div class="userinfo-title-text">修改密码</div>
|
<div class="userinfo-title-text">修改密码</div>
|
||||||
@ -65,7 +78,7 @@ function saveinfo() {
|
|||||||
<el-input v-model="userlist.submitpassword" placeholder="请输入确认新密码"></el-input>
|
<el-input v-model="userlist.submitpassword" placeholder="请输入确认新密码"></el-input>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="userinfo-content-btn">
|
<div class="userinfo-content-btn">
|
||||||
<el-button type="primary" style="min-width: 50px;" @click="saveinfo">保存</el-button>
|
<el-button type="primary" style="min-width: 50px;" @click="saveinfo">保存</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user