From a4bcd1eb9305e2c1b77c7847c2f4a979c0e95e93 Mon Sep 17 00:00:00 2001
From: batman <978517621@qq.com>
Date: 星期一, 13 三月 2023 19:45:50 +0800
Subject: [PATCH] 新修改添加页面
---
src/views/system/department/component/deptDialog.vue | 290 ++++++++++++++++++++++++++++++---------------------------
1 files changed, 153 insertions(+), 137 deletions(-)
diff --git a/src/views/system/department/component/deptDialog.vue b/src/views/system/department/component/deptDialog.vue
index e3757f2..5ea28a3 100644
--- a/src/views/system/department/component/deptDialog.vue
+++ b/src/views/system/department/component/deptDialog.vue
@@ -1,154 +1,170 @@
<template>
- <div class="system-add-dept-container">
- <el-dialog :title="title" v-model="isShowDialog" width="600px">
- <el-form :model="departmentForm" size="default" label-width="90px">
- <el-row :gutter="35">
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="上级部门">
- <el-cascader
- :options="deptData"
- :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }"
- placeholder="请选择部门"
- clearable
- class="w100"
- v-model="departmentForm.parentDepId"
- >
- </el-cascader>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="部门名称">
- <el-input v-model="departmentForm.depName" placeholder="请输入部门名称" clearable></el-input>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="部门描述">
- <el-input v-model="departmentForm.depInfo" type="textarea" placeholder="请输入部门描述" maxlength="150"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="onCancel" size="default">取 消</el-button>
- <el-button type="primary" @click="onSubmit" size="default">确 定</el-button>
- </span>
- </template>
- </el-dialog>
- </div>
+ <div class="system-add-dept-container">
+ <el-dialog :title="title" v-model="isShowDialog" width="600px">
+ <el-form :model="departmentForm" size="default" label-width="90px">
+ <el-row :gutter="35">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="部门等级">
+ <el-select v-model="departmentForm.depLevel" placeholder="请输入部门等级" class="input-add" clearable>
+ <el-option
+ v-for="item in depLevelList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="上级部门">
+ <el-cascader :options="deptData" class="input-add" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable v-model="departmentForm.parentDepId"> </el-cascader>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="部门名称">
+ <el-input v-model="departmentForm.depName" class="input-add" placeholder="请输入部门名称" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="部门描述">
+ <el-input v-model="departmentForm.depInfo" class="input-add" type="textarea" placeholder="请输入部门描述" maxlength="150"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="onCancel" size="default">取 消</el-button>
+ <el-button type="primary" v-throttle @click="onSubmit" size="default">确 定</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
</template>
<script lang="ts">
import { ElMessage } from 'element-plus';
import { reactive, toRefs, onMounted, defineComponent } from 'vue';
-import { departmentApi } from "/@/api/department";
+import { departmentApi } from '/@/api/systemManage/department';
// 定义接口来定义对象的类型
interface TableDataRow {
- name:string,
- info:string,
- parentId:string,
- id:number,
+ name: string;
+ info: string;
+ parentId: string;
+ id: number;
}
interface DeptSate {
- title:string;
- isShowDialog: boolean;
- departmentForm: {
- depName:string,
- depInfo:string,
- parentDepId:string
- };
- deptData: Array<TableDataRow>;
+ title: string;
+ isShowDialog: boolean;
+ departmentForm: {
+ depName: string;
+ depInfo: string;
+ parentDepId: string;
+ depLevel:null | number
+ };
+ deptData: Array<TableDataRow>;
+ depLevelList: Array<Type>;
+}
+interface Type{
+ id:number;
+ name:string
}
export default defineComponent({
- name: 'systemAddDept',
- setup(prop,context) {
- const state = reactive<DeptSate>({
- title:'',
- isShowDialog: false,
- departmentForm: {
- depName:'',
- parentDepId:'',
- depInfo:'',
- },
- deptData: [], // 部门数据
- });
- // 打开弹窗
- const openDialog = (type:string, value: any,departmentList: []) => {
- state.isShowDialog = true;
- state.deptData = JSON.parse(JSON.stringify(departmentList))
- if(type === '新增'){
- state.title = '新增部门'
- state.departmentForm = {
- depName:'',
- parentDepId:'',
- depInfo:'',
- }
- }else{
- state.title = '修改部门'
- state.departmentForm = JSON.parse(JSON.stringify(value))
- }
- };
- // 关闭弹窗
- const closeDialog = () => {
- state.isShowDialog = false;
- };
- // 取消
- const onCancel = () => {
- closeDialog();
- };
- // 新增
- const onSubmit = async () => {
- if(state.title === '新增部门'){
- let res = await departmentApi().addDepartment(state.departmentForm)
- if(res.data.code === '200'){
- ElMessage({
- type:'success',
- message:'部门新增成功',
- duration:2000
- })
- closeDialog();
- context.emit('getDepartmentList')
- }else{
- ElMessage({
- type:'warning',
- message:res.data.msg
- })
- }
- }else{
- let res = await departmentApi().modDepartment(state.departmentForm)
- if(res.data.code === '200'){
- ElMessage({
- type:'success',
- message:'部门修改成功',
- duration:2000
- })
- closeDialog();
- context.emit('getDepartmentList')
- }else{
- ElMessage({
- type:'warning',
- message:res.data.msg
- })
- }
- }
- };
- // 初始化部门数据
- const initTableData = () => {
+ name: 'systemAddDept',
+ setup(prop, context) {
+ const state = reactive<DeptSate>({
+ title: '',
+ isShowDialog: false,
+ departmentForm: {
+ depName: '',
+ parentDepId: '',
+ depInfo: '',
+ depLevel:null,
+ },
+ deptData: [], // 部门数据
+ depLevelList: [
+ {id:1,name:'公司'},
+ {id:2,name:'事业部'},
+ {id:3,name:'车间'},
+ ] // 部门数据
+ });
- };
- // 页面加载时
- onMounted(() => {
- initTableData();
- });
- return {
- openDialog,
- closeDialog,
- onCancel,
- onSubmit,
- ...toRefs(state),
- };
- },
+ // 打开弹窗
+ const openDialog = (type: string, value: any, departmentList: []) => {
+ state.isShowDialog = true;
+ state.deptData = JSON.parse(JSON.stringify(departmentList));
+ if (type === '新增') {
+ state.title = '新增部门';
+ state.departmentForm = {
+ depName: '',
+ parentDepId: '',
+ depLevel:null,
+ depInfo: ''
+ };
+ } else {
+ state.title = '修改部门';
+ state.departmentForm = JSON.parse(JSON.stringify(value));
+ }
+ };
+ // 关闭弹窗
+ const closeDialog = () => {
+ state.isShowDialog = false;
+ };
+ // 取消
+ const onCancel = () => {
+ closeDialog();
+ };
+ // 新增
+ const onSubmit = async () => {
+ if (state.title === '新增部门') {
+ let res = await departmentApi().addDepartment(state.departmentForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '部门新增成功',
+ duration: 2000
+ });
+ closeDialog();
+ context.emit('getDepartmentList');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ } else {
+ let res = await departmentApi().modDepartment(state.departmentForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '部门修改成功',
+ duration: 2000
+ });
+ closeDialog();
+ context.emit('getDepartmentList');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ };
+ // 初始化部门数据
+ const initTableData = () => {};
+ // 页面加载时
+ onMounted(() => {
+ initTableData();
+ });
+ return {
+ openDialog,
+ closeDialog,
+ onCancel,
+ onSubmit,
+ ...toRefs(state)
+ };
+ }
});
</script>
--
Gitblit v1.9.2