From 7b9c91f9feb33f901aa09174fbbf119ee3ebcb24 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期一, 11 七月 2022 17:49:24 +0800 Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqtOut --- src/views/system/user/component/userDialog.vue | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 221 insertions(+), 0 deletions(-) diff --git a/src/views/system/user/component/userDialog.vue b/src/views/system/user/component/userDialog.vue new file mode 100644 index 0000000..5500677 --- /dev/null +++ b/src/views/system/user/component/userDialog.vue @@ -0,0 +1,221 @@ +<template> + <div class="system-add-user-container"> + <el-dialog :title="title" v-model="isShowUserDialog" width="769px"> + <el-form :model="userForm" size="default" label-width="90px"> + <el-row :gutter="35"> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="账户名称"> + <el-input v-model="userForm.username" placeholder="请输入账户名称" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="用户昵称"> + <el-input v-model="userForm.realName" placeholder="请输入用户昵称" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="关联角色"> + <el-select v-model="userForm.roleId" placeholder="请选择" clearable class="w100"> + <el-option + v-for="item in roleData" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="部门"> + <el-cascader + :options="departmentData" + :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'name' }" + placeholder="请选择部门" + clearable + class="w100" + v-model="userForm.depId" + > + </el-cascader> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="手机号"> + <el-input v-model="userForm.phone" placeholder="请输入手机号" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="邮箱"> + <el-input v-model="userForm.email" placeholder="请输入" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="性别"> + <el-select v-model="userForm.sex" placeholder="请选择" clearable class="w100"> + <el-option + v-for="item in sexList" + :key="item.id" + :value="item.id" + :label="item.name" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="账户密码"> + <el-input v-model="userForm.password" placeholder="请输入" type="password" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="账户过期"> + <el-date-picker v-model="userForm.expireTime" type="date" placeholder="请选择" class="w100"> </el-date-picker> + </el-form-item> + </el-col> +<!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> +<!-- <el-form-item label="用户状态">--> +<!-- <el-switch v-model="userForm.status" inline-prompt active-value = 1 inactive-value= 0 active-text="启" inactive-text="禁"></el-switch>--> +<!-- </el-form-item>--> +<!-- </el-col>--> + </el-row> + </el-form> + <template #footer> + <span class="dialog-footer"> + <el-button @click="isShowUserDialog = !isShowUserDialog" size="default">取 消</el-button> + <el-button type="primary" @click="onSubmit" size="default">新 增</el-button> + </span> + </template> + </el-dialog> + </div> +</template> + +<script lang="ts"> +import { reactive, toRefs, onMounted, defineComponent } from 'vue'; +import { ElMessageBox, ElMessage } from 'element-plus'; +import {userApi} from "/@/api/user"; + +// 定义接口来定义对象的类型 +interface DeptData { +} +interface roleData{ + +} +interface sexData{ + +} +interface UserState { + title:string, + isShowUserDialog: boolean; + userForm: { + username: string; + realName: string; + roleId: number | null; + depId: number | null; + phone: string; + email: string; + sex: number | null; + password: string; + expireTime: string; + status: number; + }; + departmentData: Array<DeptData>; + roleData: Array<roleData>; + sexList:Array<sexData>, +} + +export default defineComponent({ + name: 'user', + setup(props,context) { + const state = reactive<UserState>({ + title:'', + isShowUserDialog: false, + userForm: { + username: '', // 账户名称 + realName: '', // 用户昵称 + roleId: null, // 关联角色 + depId:null, // 部门 + phone: '', // 手机号 + email: '', // 邮箱 + sex: null, // 性别 + password: '', // 账户密码 + expireTime: '', // 账户过期 + status: 1, // 用户状态 + }, + departmentData: [], // 部门数据 + roleData:[],//角色数据 + sexList:[{id:1,name:'男'},{id:0,name:'女'}] + }); + // 打开弹窗 + const openDialog = (type: string,value: any,departmentList:[], roleList: []) => { + state.isShowUserDialog = true; + state.departmentData = departmentList; + state.roleData = roleList; + if(type === '新增'){ + state.title = '新增用户' + state.userForm = { + username: '', + realName: '', + roleId: null, + depId: null, + phone: '', + email: '', + sex: null, + password: '', + expireTime: '', + status: 1, + } + }else{ + state.title = '修改用户' + state.userForm = JSON.parse(JSON.stringify(value)) + } + }; + + + // 新增修改 + const onSubmit = async () => { + if(state.title === '新增用户'){ + let res = await userApi().addUser(state.userForm) + if(res.data.code === '200'){ + ElMessage({ + type:'success', + message:'用户新增成功', + duration:2000 + }) + state.isShowUserDialog = false; + context.emit('getUserList') + }else{ + ElMessage({ + type:'warning', + message:res.data.msg + }) + } + }else{ + let res = await userApi().modUser(state.userForm) + if(res.data.code === '200'){ + ElMessage({ + type:'success', + message:'用户修改成功', + duration:2000 + }) + state.isShowUserDialog = false; + context.emit('getUserList') + }else{ + ElMessage({ + type:'warning', + message:res.data.msg + }) + } + } + }; + + // 页面加载时 + onMounted(() => { + }); + return { + openDialog, + onSubmit, + ...toRefs(state), + }; + }, +}); +</script> -- Gitblit v1.9.2