Commit 2df0fc80 authored by liwei's avatar liwei

修改了物理模型的新建文件夹表单

parent 1fde39dc
<template>
<BasicModal width="40%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import {ref, computed, unref, reactive} from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import {createFileFormSchema, modelFormSchema} from './model.data';
import { getDeptList } from '@/api/system/dept/dept';
import {addUserApi,UserDetailApi,UserUpdataApi} from '@/api/system/user/user'
import { encryptTwo } from '../../../../src/utils/jsencrypt.js'
import { useMessage } from '@/hooks/web/useMessage';
import {TreeData} from "@/views/metaModel/physicsModel/modelData";
import {router} from "@/router";
defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const isUpdate = ref(true);
const rowId = ref('');
const title = ref('')
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
baseColProps: { lg: 12, md: 24 },
schemas: createFileFormSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
setModalProps({ confirmLoading: false });
title.value = data.title
isUpdate.value = data.isUpdate
if (unref(isUpdate)) {
// 获取行数据的id
rowId.value = data.record.businessId;
const formData = {
modelId: data.record.businessId,
modelName: data.record.modelName,
type: data.record.type
}
// 塞值
setFieldsValue({
...formData,
});
}else {
const formData = {
modelId: '100',
}
// 塞值
setFieldsValue({
...formData,
});
}
const treeList = handleTree(TreeData, 'businessId',undefined,undefined,undefined)
updateSchema([
{
field: 'modelId',
componentProps: {
treeData: treeList
},
},
]);
});
const getTitle = computed(() => (title.value));
function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'
parentId = parentId || 'parentId'
children = children || 'children'
rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0
// 对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data))
// 循环所有项
const treeData = cloneData.filter(father => {
const branchArr = cloneData.filter(child => {
// 返回每一项的子级数组
return father[id] === child[parentId]
})
branchArr.length > 0 ? father.children = branchArr : ''
// 返回第一层
return father[parentId] === rootId
})
return treeData !== '' ? treeData : data
}
/**确定按钮*/
async function handleSubmit() {
// const values = await validate();
if (title.value == '新建元模型'){
router.push({
path: '/metaModel/physicsModel/EditRowTable',
query: {
},
});
}else {
createMessage.success('新增成功')
}
closeModal()
}
</script>
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
</template> </template>
</BasicTable> </BasicTable>
<ModelModal @register="registerModal" @success="handleSuccess" /> <ModelModal @register="registerModal" @success="handleSuccess" />
<CreateFileModal @register="registerCreateFileModal" @success="handleSuccess" />
<MoveModelModal @register="registerMoveModel" @success="handleSuccess" /> <MoveModelModal @register="registerMoveModel" @success="handleSuccess" />
</PageWrapper> </PageWrapper>
</template> </template>
...@@ -46,6 +47,7 @@ ...@@ -46,6 +47,7 @@
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { useModal } from '@/components/Modal'; import { useModal } from '@/components/Modal';
import ModelModal from './modelModal.vue'; import ModelModal from './modelModal.vue';
import CreateFileModal from './createFileModal.vue';
import { columns, searchFormSchema } from './model.data'; import { columns, searchFormSchema } from './model.data';
import { useGo } from '@/hooks/web/usePage'; import { useGo } from '@/hooks/web/usePage';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
...@@ -60,6 +62,7 @@ ...@@ -60,6 +62,7 @@
const route = useRoute(); const route = useRoute();
const go = useGo(); const go = useGo();
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const [registerCreateFileModal, { openModal: openCreateFileModal }] = useModal();
const [registerMoveModel, { openModal: openMoveModelModal }] = useModal(); const [registerMoveModel, { openModal: openMoveModelModal }] = useModal();
const searchInfo = reactive<Recordable>({}); const searchInfo = reactive<Recordable>({});
const tableData = ref([]) const tableData = ref([])
...@@ -121,7 +124,7 @@ ...@@ -121,7 +124,7 @@
/** 新增文件夹*/ /** 新增文件夹*/
function handleCreateFile() { function handleCreateFile() {
openModal(true, { openCreateFileModal(true, {
isUpdate: false, isUpdate: false,
title:'新建文件夹' title:'新建文件夹'
}); });
......
...@@ -218,3 +218,32 @@ export const MoveFormSchema: any[] = [ ...@@ -218,3 +218,32 @@ export const MoveFormSchema: any[] = [
required: true, required: true,
}, },
] ]
export const createFileFormSchema: any[] = [
{
field: 'modelId',
label: '文件夹路径',
component: 'TreeSelect',
colProps: { lg: 24, md: 24 },
componentProps: {
fieldNames: {
label: 'modelName',
value: 'businessId',
},
getPopupContainer: () => document.body,
},
required: true,
},
{
field: 'modelName',
label: '文件夹名称',
component: 'Input',
colProps: { lg: 24, md: 24 },
rules: [
{
required: true,
message: '请输入登录名',
},
],
},
];
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment