refactor: 部门新增与编辑
This commit is contained in:
1
web/.gitignore
vendored
1
web/.gitignore
vendored
@@ -1,7 +1,6 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
node_modules
|
node_modules
|
||||||
/dist
|
/dist
|
||||||
package-lock.json
|
|
||||||
yarn.lock
|
yarn.lock
|
||||||
|
|
||||||
# local env files
|
# local env files
|
||||||
|
|||||||
@@ -26,17 +26,20 @@
|
|||||||
<el-input-number v-model="deptFormData.sort" controls-position="right" />
|
<el-input-number v-model="deptFormData.sort" controls-position="right" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button @click="handleUpdateMenu('update')" type="primary" :disabled="deptBtnLoading">保存</el-button>
|
<el-button @click="handleUpdateMenu" type="primary" :disabled="deptBtnLoading">
|
||||||
|
{{ deptFormData.id ? '保存' : '新增' }}
|
||||||
|
</el-button>
|
||||||
<el-button @click="handleClose">取消
|
<el-button @click="handleClose">取消
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { reactive, ref, onMounted } from 'vue';
|
import { reactive, ref, onMounted } from 'vue';
|
||||||
import { ElForm, FormRules } from 'element-plus';
|
import { ElForm, FormRules } from 'element-plus';
|
||||||
|
import { AddObj, UpdateObj } from '../api';
|
||||||
|
import { successMessage } from '../../../../utils/message';
|
||||||
import { DeptFormDataType, TreeItemType } from '../types';
|
import { DeptFormDataType, TreeItemType } from '../types';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
@@ -67,15 +70,47 @@ let deptFormData = reactive<DeptFormDataType>({
|
|||||||
})
|
})
|
||||||
let deptBtnLoading = ref(false)
|
let deptBtnLoading = ref(false)
|
||||||
|
|
||||||
const handleUpdateMenu = (type: string) => { };
|
const setDeptFormData = () => {
|
||||||
|
if (props.initFormData?.id) {
|
||||||
|
deptFormData.id = props.initFormData?.id;
|
||||||
|
deptFormData.key = props.initFormData.key || '';
|
||||||
|
deptFormData.parent = props.initFormData.parent || '';
|
||||||
|
deptFormData.name = props.initFormData.name || '';
|
||||||
|
deptFormData.owner = props.initFormData.owner || '';
|
||||||
|
deptFormData.phone = props.initFormData.phone || '';
|
||||||
|
deptFormData.email = props.initFormData.email || '';
|
||||||
|
deptFormData.sort = props.initFormData.sort || 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const handleClose = () => {
|
const handleUpdateMenu = () => {
|
||||||
emit('drawerClose')
|
formRef.value?.validate(async (valid) => {
|
||||||
|
if (!valid) return
|
||||||
|
try {
|
||||||
|
let res;
|
||||||
|
deptBtnLoading.value = true
|
||||||
|
if (deptFormData.id) {
|
||||||
|
res = await UpdateObj(deptFormData);
|
||||||
|
} else {
|
||||||
|
res = await AddObj(deptFormData)
|
||||||
|
}
|
||||||
|
if (res?.code === 2000) {
|
||||||
|
successMessage(res.msg as string);
|
||||||
|
handleClose('submit');
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
deptBtnLoading.value = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleClose = (type: string = '') => {
|
||||||
|
emit('drawerClose', type)
|
||||||
formRef.value?.resetFields();
|
formRef.value?.resetFields();
|
||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
console.log(props.initFormData?.id, '----');
|
setDeptFormData()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
|
|
||||||
<el-drawer v-model="drawerVisible" title="部门配置" direction="rtl" size="500px" :close-on-click-modal="false"
|
<el-drawer v-model="drawerVisible" title="部门配置" direction="rtl" size="500px" :close-on-click-modal="false"
|
||||||
:before-close="handleDrawerClose">
|
:before-close="handleDrawerClose">
|
||||||
<FormCom v-if="drawerVisible" :initFormData="drawerFormData" @drawerClose="handleDrawerClose" />
|
<DeptFormCom v-if="drawerVisible" :initFormData="drawerFormData" @drawerClose="handleDrawerClose" />
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
</fs-page>
|
</fs-page>
|
||||||
</template>
|
</template>
|
||||||
@@ -84,7 +84,7 @@ import { ref, onMounted, reactive } from 'vue';
|
|||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
import { ElForm, ElMessageBox, FormRules } from 'element-plus';
|
import { ElForm, ElMessageBox, FormRules } from 'element-plus';
|
||||||
import TreeCom from './components/TreeCom.vue'
|
import TreeCom from './components/TreeCom.vue'
|
||||||
import FormCom from './components/FormCom.vue'
|
import DeptFormCom from './components/DeptFormCom.vue'
|
||||||
import { GetList, AddObj, UpdateObj, DelObj } from './api';
|
import { GetList, AddObj, UpdateObj, DelObj } from './api';
|
||||||
import { successMessage } from '../../../utils/message';
|
import { successMessage } from '../../../utils/message';
|
||||||
import { APIResponseData, DeptFormDataType, TreeItemType } from './types';
|
import { APIResponseData, DeptFormDataType, TreeItemType } from './types';
|
||||||
@@ -182,7 +182,10 @@ const handleUpdateMenu = (type: string, record?: TreeItemType) => {
|
|||||||
}); */
|
}); */
|
||||||
|
|
||||||
};
|
};
|
||||||
const handleDrawerClose = () => {
|
const handleDrawerClose = (type?: string) => {
|
||||||
|
if (type === 'submit') {
|
||||||
|
getData()
|
||||||
|
}
|
||||||
drawerVisible.value = false
|
drawerVisible.value = false
|
||||||
drawerFormData.value = {}
|
drawerFormData.value = {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,9 +40,9 @@ export interface TreeItemType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface DeptFormDataType {
|
export interface DeptFormDataType {
|
||||||
id: string;
|
id: string | number;
|
||||||
key: string;
|
key: string;
|
||||||
parent: string;
|
parent: string | number;
|
||||||
name: string;
|
name: string;
|
||||||
owner: string;
|
owner: string;
|
||||||
phone: string;
|
phone: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user