|
@@ -1,5 +1,5 @@
|
|
|
<template>
|
|
|
- <ElDrawer ref="elDrawerRef" v-model="drawerVisible" :title="drawerProps.title" v-bind="$attrs">
|
|
|
+ <ElDrawer ref="elDrawerRef" v-model="drawerVisible" :title="drawerProps.title" v-bind="$attrs" destroy-on-close>
|
|
|
<template #header="scope">
|
|
|
<slot name="header" v-bind="scope">
|
|
|
<div style="display: flex">
|
|
@@ -10,7 +10,7 @@
|
|
|
</slot>
|
|
|
</template>
|
|
|
|
|
|
- <el-form ref="ruleFormRef" label-width="140px" label-suffix=" :" :rules="rules" :model="drawerProps.row" @submit.enter.prevent="handleConfirm">
|
|
|
+ <el-form ref="ruleFormRef" label-width="120px" label-suffix=" :" :rules="rules" :model="drawerProps.row" @submit.enter.prevent="handleConfirm">
|
|
|
<el-form-item label="上级部门" prop="parentId">
|
|
|
<el-tree-select
|
|
|
v-model="drawerProps.row.parentId"
|
|
@@ -25,9 +25,18 @@
|
|
|
<el-form-item label="组织名称" prop="name">
|
|
|
<el-input v-model="drawerProps.row.name" placeholder="请填写部门名称" clearable />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="排序" prop="sort">
|
|
|
+ <el-form-item label="排序" prop="orderNum">
|
|
|
<el-input-number v-model="drawerProps.row.orderNum" :precision="0" :min="1" :max="999999" />
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="状态" prop="status">
|
|
|
+ <el-radio-group v-model="drawerProps.row.status">
|
|
|
+ <el-radio-button label="启用" value="1" />
|
|
|
+ <el-radio-button label="停用" value="0" />
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="负责人" prop="leader">
|
|
|
+ <el-input v-model="drawerProps.row.leader" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
<el-input v-model="drawerProps.row.remark" placeholder="请填写备注" clearable />
|
|
|
</el-form-item>
|
|
@@ -35,7 +44,7 @@
|
|
|
|
|
|
<template #footer>
|
|
|
<slot name="footer">
|
|
|
- <ElButton @Click="drawerVisible = false">取 消</ElButton>
|
|
|
+ <ElButton @click="drawerVisible = false">取 消</ElButton>
|
|
|
<ElButton type="primary" @click="handleConfirm()">确 定</ElButton>
|
|
|
</slot>
|
|
|
</template>
|
|
@@ -45,11 +54,14 @@
|
|
|
<script setup lang="ts" name="OrgForm">
|
|
|
import { OrgTreeVO, OrgFormBo } from '@/api/interface/system/org'
|
|
|
import OrgApi from '@/api/module/system/org'
|
|
|
+import { ResultEnum } from '@/enums/HttpEnum'
|
|
|
|
|
|
import { FormInstance } from 'element-plus'
|
|
|
const rules = reactive({
|
|
|
name: [{ required: true, message: '请填写组织名称' }],
|
|
|
- parentId: [{ required: true, message: '请选择上级' }]
|
|
|
+ parentId: [{ required: true, message: '请选择上级' }],
|
|
|
+ orderNum: [{ required: true, message: '排序不能为空' }],
|
|
|
+ status: [{ required: true, message: '状态不能为空' }]
|
|
|
})
|
|
|
|
|
|
interface EcoDrawerProps {
|
|
@@ -73,12 +85,14 @@ const drawerProps = ref<EcoDrawerProps>({
|
|
|
row: {}
|
|
|
})
|
|
|
|
|
|
+// emit
|
|
|
+const emit = defineEmits(['submit'])
|
|
|
+
|
|
|
// 接收父组件传过来的参数
|
|
|
const acceptParams = (params: EcoDrawerProps) => {
|
|
|
drawerProps.value = params
|
|
|
drawerVisible.value = true
|
|
|
loadTree()
|
|
|
- console.log('params', params)
|
|
|
}
|
|
|
|
|
|
const loadTree = () => {
|
|
@@ -93,10 +107,13 @@ const handleConfirm = () => {
|
|
|
ruleFormRef.value!.validate(async valid => {
|
|
|
if (!valid) return
|
|
|
try {
|
|
|
- await drawerProps.value.api!(drawerProps.value.row)
|
|
|
- ElMessage.success({ message: `${drawerProps.value.title}用户成功!` })
|
|
|
- drawerProps.value.getTableList!()
|
|
|
- drawerVisible.value = false
|
|
|
+ const { code } = await drawerProps.value.api!(drawerProps.value.row)
|
|
|
+ if (code == ResultEnum.SUCCESS) {
|
|
|
+ ElMessage.success({ message: `${drawerProps.value.title}成功!` })
|
|
|
+ drawerProps.value.getTableList!()
|
|
|
+ emit('submit')
|
|
|
+ drawerVisible.value = false
|
|
|
+ }
|
|
|
} catch (error) {
|
|
|
console.log(error)
|
|
|
}
|