赞
踩
代码:
- <template>
- <div class="">
- <h3>{{ id }}</h3>
- <div class="detail">
- <el-card>
- <el-tabs>
- <el-tab-pane label="登录账户设置">
- <el-form ref="form" label-width="80px" :model="form" :rules="rules">
- <el-form-item label="姓名" prop="username">
- <el-input v-model="form.username" />
- </el-form-item>
- <el-form-item label="密码" prop="password">
- <el-input v-model="form.password" type="password" />
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="submit">更新</el-button>
- <el-button @click="back">取消</el-button>
- </el-form-item>
- </el-form>
- </el-tab-pane>
- <el-tab-pane label="个人详情" lazy>
- <!-- 动态组件 -->
- <Info :user-info="userInfo" />
- </el-tab-pane>
- <el-tab-pane label="岗位详情" lazy>岗位详情</el-tab-pane>
- </el-tabs>
- </el-card>
- </div>
- </div>
- </template>
-
- <script>
- import Info from './components/info.vue'
- import { sysUser, sysUserPut } from '@/api/user.js'
- export default {
- name: '',
- components: {
- Info
- },
- data() {
- return {
- otherUserInfo: {},
- id: this.$route.params.id,
- form: {
- username: '',
- password: '1232'
- },
- rules: {
- username: { required: true, message: '必填', trigger: 'change' },
- password: { required: true, message: '必填', trigger: 'change' }
- },
- userInfo: ''
- }
- },
- created() {
- this.getData()
- },
- methods: {
- back() {
- this.$router.push('/employees')
- },
- async getData() {
- const res = await sysUser(this.id)
- this.form.username = res.data.username
- this.otherUserInfo = JSON.parse(JSON.stringify(res.data))
- this.userInfo = res.data
- console.log(res)
- },
- submit() {
- this.$refs.form.validate(async(result) => {
- if (result) {
- // 1.{...obja,...objb}
- await sysUserPut({ ...this.userInfo, ...this.form })
- this.otherUserInfo.username = this.form.username
- // 提示
- this.$message.success('修改成功')
- }
- })
- }
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .detail {
- padding: 15px;
- }
- </style>

解析:使用el-tabs进行包裹,使用el-tab-pan来显示上面的可选栏。
对应的效果图:
基本的用法 具体可参考官网。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。