Commit c6def1d2 authored by 罗林杰's avatar 罗林杰

修改血缘

parent 8e044c3d
...@@ -69,7 +69,7 @@ export const storageManagementColumns: BasicColumn[] = [ ...@@ -69,7 +69,7 @@ export const storageManagementColumns: BasicColumn[] = [
width: 120, width: 120,
}, },
{ {
title: '清理血缘关系', title: '清理血缘关系',
dataIndex: 'num', dataIndex: 'num',
width: 120, width: 120,
}, },
......
import {FormSchema} from "@/components/Form";
import {BasicColumn} from "@/components/Table";
export const formSchema: FormSchema[] = [
{
field: 'file',
component: 'Upload',
label: '血缘编辑文件',
colProps: { lg: 24, md: 24 },
rules: [{ required: true, message: '请选择上传文件' }],
},
];
export const columns: BasicColumn[] = [
{
title: '工作表名',
dataIndex: 'name',
width: 120,
},
{
title: '编号',
dataIndex: 'code',
width: 120,
},
{
title: '错误类型',
dataIndex: 'type',
width: 120,
},
];
export const historyColumns: BasicColumn[] = [
{
title: '用户',
dataIndex: 'name',
width: 120,
},
{
title: '编辑时间',
dataIndex: 'date',
width: 120,
},
{
title: '上传文件',
dataIndex: 'fileName',
width: 120,
},
{
title: '编辑结果',
dataIndex: 'type',
width: 120,
},
];
export const SearchFormSchema: FormSchema[] = [
{
field: 'name',
label: '名称',
component: 'Input',
colProps: { span: 8 },
},
{
field: 'isKinship',
component: 'Checkbox',
label: '仅显示我上传的',
colProps: { span: 8 },
labelWidth: 120,
},
];
<template> <template>
<PageWrapper dense contentFullHeight fixedHeight contentClass="flex"> <PageWrapper title="血缘编辑" class="content-padding" contentBackground>
<GroupTree class="w-1/5 xl:w-1/8" @select="handleSelect" /> <template #footer>
<BasicTable @register="registerTable" class="w-4/5 xl:w-7/8" :searchInfo="searchInfo"> <a-tabs default-active-key="1" v-model:activeKey="currentKey">
<template #toolbar> <a-tab-pane key="1" tab="编辑" />
<a-button type="primary" @click="handleDeleteIds">删除</a-button> <a-tab-pane key="2" tab="编辑历史" />
<a-button type="primary" @click="download">下载</a-button> </a-tabs>
<a-button type="primary" @click="handleImport">导入</a-button>
<a-button type="primary" @click="handleAdd">新建文件夹</a-button>
<a-button type="primary" @click="handleCreate">新建文件</a-button>
</template> </template>
<div class="pt-4 m-4 desc-wrap">
<template v-if="currentKey == '1'">
<BasicForm @register="registerForm" />
<div style="padding-left: 100px">
<a-button type="primary" @click="handleSubmit">提交</a-button>
</div>
<BasicTable @register="registerTable" />
</template>
<template v-if="currentKey == '2'">
<BasicTable @register="registerHistoryTable">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'type'">
<Tag color="error" v-if="record.type === '0'">导入失败</Tag>
</template>
<template v-if="column.key === 'type'">
<Tag color="success" v-if="record.type === '1'">导入成功</Tag>
</template>
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<TableAction <TableAction
:actions="[ :actions="[
{
icon: 'clarity:contract-line',
label: '',
onClick: handleView.bind(null, record),
},
{ {
icon: 'clarity:download-line', icon: 'clarity:download-line',
label: '', label: '',
onClick: download.bind(null, record), onClick: handleDownload.bind(null),
}, },
{ {
icon: 'ant-design:delete-outlined', icon: 'ant-design:delete-outlined',
...@@ -30,7 +38,7 @@ ...@@ -30,7 +38,7 @@
popConfirm: { popConfirm: {
title: '是否确认删除', title: '是否确认删除',
placement: 'left', placement: 'left',
confirm: handleDelete.bind(null, record), confirm: handleDelete.bind(null),
}, },
}, },
]" ]"
...@@ -38,40 +46,39 @@ ...@@ -38,40 +46,39 @@
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<knowledgeModal @register="registerModal" @success="handleSuccess" /> </template>
<importModal @register="registerImport" @success="handleSuccess" /> </div>
<addModal @register="registerAdd" />
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table';
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import { Tabs, Tag } from 'ant-design-vue';
import { BasicTable, TableAction, useTable } from '@/components/Table';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { useModal } from '@/components/Modal'; import { BasicForm, useForm } from '@/components/Form';
import knowledgeModal from '@/views/knowledgeBase/knowledgeModal.vue'; import {
import { useRoute, onBeforeRouteLeave } from 'vue-router'; formSchema,
import { useFilterStore } from '@/store/modules/filterData'; columns,
import { columns, searchFormSchema } from '@/views/knowledgeBase/data'; historyColumns,
import GroupTree from '@/views/knowledgeBase/GroupTree.vue'; SearchFormSchema,
import { knowledgeData } from '@/views/knowledgeBase/knowledgeBaseData'; } from '@/views/kinship/kinshipEdit/data';
import importModal from '@/views/knowledgeBase/improtModal.vue'; import { editData, historyData } from '@/views/kinship/kinshipEdit/kinshipEditData';
import addModal from '@/views/knowledgeBase/addModal.vue';
defineOptions({ name: 'AccountDetail' });
defineOptions({ name: 'KnowledgeBase' });
const { createMessage, createConfirm } = useMessage();
const filterStore = useFilterStore();
const route = useRoute();
const [registerModal, { openModal }] = useModal();
const [registerImport, { openModal: openImportModal }] = useModal();
const [registerAdd, { openModal: openAddModal }] = useModal();
const searchInfo = reactive<Recordable>({});
const tableData = ref([]); const tableData = ref([]);
const [registerTable, { reload, updateTableDataRecord, getSearchInfo, getForm }] = useTable({ const { createMessage, createConfirm } = useMessage();
title: '知识库', const ATabs = Tabs;
api: async (params) => { const ATabPane = Tabs.TabPane;
const currentKey = ref('1');
const [registerTable, { reload }] = useTable({
title: '错误列表',
api: async () => {
const response = { const response = {
pageNu: '1', pageNum: '1',
pageSize: '10', pageSize: '10',
pages: '1', pages: '1',
total: tableData.value.length, total: tableData.value.length,
...@@ -80,141 +87,55 @@ ...@@ -80,141 +87,55 @@
data: [], data: [],
}; };
//过滤data中的数据,取出等于params.deptId的数据 //过滤data中的数据,取出等于params.deptId的数据
let data = []; var data = [];
if (params.fileTypeId == 100) { data = tableData.value;
data = tableData.value.filter((item) => item.parentId !== 0);
} else if (params.fileTypeId == 101 || params.fileTypeId == 111) {
data = tableData.value.filter((item) => item.fileTypeId == 101);
} else if (params.fileTypeId == 107 || params.fileTypeId == 112) {
data = tableData.value.filter((item) => item.fileTypeId == 107);
} else if (params.fileTypeId == 203 || params.fileTypeId == 113) {
data = tableData.value.filter((item) => item.fileTypeId == '');
} else {
data = tableData.value.filter((item) => item.parentId !== 0);
}
return { ...response, data: data }; return { ...response, data: data };
}, },
rowKey: 'businessId', pagination: false,
rowSelection: true,
striped: false,
columns, columns,
useSearchForm: false,
showTableSetting: false,
bordered: true,
showIndexColumn: false,
});
const [registerForm, { resetFields }] = useForm({
labelWidth: 100,
baseColProps: { lg: 12, md: 24 },
schemas: formSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
const [registerHistoryTable] = useTable({
dataSource: historyData,
columns: historyColumns,
pagination: true,
showIndexColumn: false,
useSearchForm: true,
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
schemas: searchFormSchema, schemas: SearchFormSchema,
autoSubmitOnEnter: true, autoSubmitOnEnter: true,
resetFunc: () => {
searchInfo.fileTypeId = '';
},
},
useSearchForm: true,
showIndexColumn: false,
showTableSetting: false,
bordered: true,
handleSearchInfoFn(info) {
console.log('handleSearchInfoFn', info);
return info;
}, },
actionColumn: { actionColumn: {
width: 140, width: 150,
title: '操作', title: '操作',
dataIndex: 'action', dataIndex: 'action',
}, },
scroll: { y: 400 },
}); });
/** 新增按钮*/ function handleSubmit() {
function handleCreate() { createMessage.success('提交成功');
openModal(true, {
isUpdate: false,
});
}
function handleAdd() {
openAddModal(true, {
isUpdate: false,
});
}
function handleImport() {
openImportModal(true, {
isUpdate: false,
});
}
/** 下载按钮*/
function download() {
createConfirm({
iconType: 'warning',
title: '确认下载',
content: '确认下载?',
onOk() {
createMessage.success('下载成功!');
},
});
}
/** 批量删除按钮*/
function handleDeleteIds() {
createConfirm({
iconType: 'warning',
title: '确认删除',
content: '确认批量删除选中数据吗?',
onOk() {
createMessage.success('批量删除成功!');
},
});
}
/** 重置密码弹窗确定按钮*/
/** 删除按钮*/
function handleDelete(record: Recordable) {
createMessage.success('删除成功!');
reload();
} }
/** 新增/编辑成功*/ function handleDownload() {
function handleSuccess({ isUpdate, values }) { createMessage.success('下载成功');
if (isUpdate) {
// 演示不刷新表格直接更新内部数据。
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
const result = updateTableDataRecord(values.id, values);
console.log(result);
reload();
} else {
reload();
}
}
function handleView(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
disable: true,
});
} }
/** 部门树的select*/ function handleDelete() {
function handleSelect(workSpaceName = '') { createMessage.success('删除成功');
searchInfo.fileTypeId = workSpaceName;
reload();
} }
onMounted(() => { onMounted(() => {
tableData.value = knowledgeData; resetFields();
const path = route.path; tableData.value = editData;
if (filterStore.getSearchParams[path]) {
if (JSON.parse(filterStore.getSearchParams[path] !== {})) {
const params = JSON.parse(filterStore.getSearchParams[path]);
console.log('11111111111111111111111111111', params);
getForm().setFieldsValue({
page: params.page,
pageSize: params.pageSize,
username: params.username,
flag: params.flag,
});
searchInfo.deptId = params.deptId;
}
}
});
onBeforeRouteLeave((to, from, next) => {
const params = Object.assign({}, getSearchInfo(), getForm().getFieldsValue());
console.log('path', from.path);
console.log('params', params);
filterStore.setSearchParams({
path: from.path,
param: {
...params,
},
});
next(); // 允许导航
}); });
</script> </script>
export const editData: any[] = [
{
name: 'Sheet0',
code: 'C2',
type: '数据源不存在',
},
{
name: 'Sheet1',
code: 'C3',
type: '数据源不存在',
},
{
name: 'Sheet2',
code: 'C4',
type: '数据源不存在',
},
{
name: 'Sheet3',
code: 'C5',
type: '数据源不存在',
},
{
name: 'Sheet4',
code: 'C6',
type: '数据源不存在',
},
{
name: 'Sheet5',
code: 'C7',
type: '数据源不存在',
},
{
name: 'Sheet6',
code: 'C8',
type: '数据源不存在',
},
];
export const historyData: any[] = [
{
name: 'admin',
date: '2022-01-01 12:00:00',
fileName: 'test.xlsx',
type: '1',
},
{
name: 'admin',
date: '2022-01-01 12:00:00',
fileName: 'test.xlsx',
type: '0',
},
{
name: 'admin',
date: '2022-01-01 12:00:00',
fileName: 'test.xlsx',
type: '1',
},
{
name: 'admin',
date: '2022-01-01 12:00:00',
fileName: 'test.xlsx',
type: '0',
},
];
<template> <template>
<PageWrapper dense contentFullHeight fixedHeight contentClass="flex"> <PageWrapper title="血缘解析" class="content-padding" contentBackground>
<GroupTree class="w-1/5 xl:w-1/8" @select="handleSelect" /> <template #footer>
<BasicTable @register="registerTable" class="w-4/5 xl:w-7/8" :searchInfo="searchInfo"> <a-tabs default-active-key="1" v-model:activeKey="currentKey">
<template #toolbar> <a-tab-pane key="1" tab="编辑" />
<a-button type="primary" @click="handleDeleteIds">删除</a-button> <a-tab-pane key="2" tab="编辑历史" />
<a-button type="primary" @click="download">下载</a-button> </a-tabs>
<a-button type="primary" @click="handleImport">导入</a-button>
<a-button type="primary" @click="handleAdd">新建文件夹</a-button>
<a-button type="primary" @click="handleCreate">新建文件</a-button>
</template> </template>
<div class="pt-4 m-4 desc-wrap">
<template v-if="currentKey == '1'">
<BasicForm @register="registerForm" />
<div style="padding-left: 100px">
<a-button type="primary" @click="handleSubmit">提交</a-button>
</div>
<BasicTable @register="registerTable" />
</template>
<template v-if="currentKey == '2'">
<BasicTable @register="registerHistoryTable">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'type'">
<Tag color="error" v-if="record.type === '0'">导入失败</Tag>
</template>
<template v-if="column.key === 'type'">
<Tag color="success" v-if="record.type === '1'">导入成功</Tag>
</template>
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<TableAction <TableAction
:actions="[ :actions="[
{
icon: 'clarity:contract-line',
label: '',
onClick: handleView.bind(null, record),
},
{ {
icon: 'clarity:download-line', icon: 'clarity:download-line',
label: '', label: '',
onClick: download.bind(null, record), onClick: handleDownload.bind(null),
}, },
{ {
icon: 'ant-design:delete-outlined', icon: 'ant-design:delete-outlined',
...@@ -30,7 +38,7 @@ ...@@ -30,7 +38,7 @@
popConfirm: { popConfirm: {
title: '是否确认删除', title: '是否确认删除',
placement: 'left', placement: 'left',
confirm: handleDelete.bind(null, record), confirm: handleDelete.bind(null),
}, },
}, },
]" ]"
...@@ -38,40 +46,39 @@ ...@@ -38,40 +46,39 @@
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<knowledgeModal @register="registerModal" @success="handleSuccess" /> </template>
<importModal @register="registerImport" @success="handleSuccess" /> </div>
<addModal @register="registerAdd" />
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table';
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import { Tabs, Tag } from 'ant-design-vue';
import { BasicTable, TableAction, useTable } from '@/components/Table';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { useModal } from '@/components/Modal'; import { BasicForm, useForm } from '@/components/Form';
import knowledgeModal from '@/views/knowledgeBase/knowledgeModal.vue'; import {
import { useRoute, onBeforeRouteLeave } from 'vue-router'; formSchema,
import { useFilterStore } from '@/store/modules/filterData'; columns,
import { columns, searchFormSchema } from '@/views/knowledgeBase/data'; historyColumns,
import GroupTree from '@/views/knowledgeBase/GroupTree.vue'; SearchFormSchema,
import { knowledgeData } from '@/views/knowledgeBase/knowledgeBaseData'; } from '@/views/kinship/kinshipEdit/data';
import importModal from '@/views/knowledgeBase/improtModal.vue'; import { editData, historyData } from '@/views/kinship/kinshipEdit/kinshipEditData';
import addModal from '@/views/knowledgeBase/addModal.vue';
defineOptions({ name: 'AccountDetail' });
defineOptions({ name: 'KnowledgeBase' });
const { createMessage, createConfirm } = useMessage();
const filterStore = useFilterStore();
const route = useRoute();
const [registerModal, { openModal }] = useModal();
const [registerImport, { openModal: openImportModal }] = useModal();
const [registerAdd, { openModal: openAddModal }] = useModal();
const searchInfo = reactive<Recordable>({});
const tableData = ref([]); const tableData = ref([]);
const [registerTable, { reload, updateTableDataRecord, getSearchInfo, getForm }] = useTable({ const { createMessage, createConfirm } = useMessage();
title: '知识库', const ATabs = Tabs;
api: async (params) => { const ATabPane = Tabs.TabPane;
const currentKey = ref('1');
const [registerTable, { reload }] = useTable({
title: '错误列表',
api: async () => {
const response = { const response = {
pageNu: '1', pageNum: '1',
pageSize: '10', pageSize: '10',
pages: '1', pages: '1',
total: tableData.value.length, total: tableData.value.length,
...@@ -80,141 +87,55 @@ ...@@ -80,141 +87,55 @@
data: [], data: [],
}; };
//过滤data中的数据,取出等于params.deptId的数据 //过滤data中的数据,取出等于params.deptId的数据
let data = []; var data = [];
if (params.fileTypeId == 100) { data = tableData.value;
data = tableData.value.filter((item) => item.parentId !== 0);
} else if (params.fileTypeId == 101 || params.fileTypeId == 111) {
data = tableData.value.filter((item) => item.fileTypeId == 101);
} else if (params.fileTypeId == 107 || params.fileTypeId == 112) {
data = tableData.value.filter((item) => item.fileTypeId == 107);
} else if (params.fileTypeId == 203 || params.fileTypeId == 113) {
data = tableData.value.filter((item) => item.fileTypeId == '');
} else {
data = tableData.value.filter((item) => item.parentId !== 0);
}
return { ...response, data: data }; return { ...response, data: data };
}, },
rowKey: 'businessId', pagination: false,
rowSelection: true,
striped: false,
columns, columns,
useSearchForm: false,
showTableSetting: false,
bordered: true,
showIndexColumn: false,
});
const [registerForm, { resetFields }] = useForm({
labelWidth: 100,
baseColProps: { lg: 12, md: 24 },
schemas: formSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
const [registerHistoryTable] = useTable({
dataSource: historyData,
columns: historyColumns,
pagination: true,
showIndexColumn: false,
useSearchForm: true,
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
schemas: searchFormSchema, schemas: SearchFormSchema,
autoSubmitOnEnter: true, autoSubmitOnEnter: true,
resetFunc: () => {
searchInfo.fileTypeId = '';
},
},
useSearchForm: true,
showIndexColumn: false,
showTableSetting: false,
bordered: true,
handleSearchInfoFn(info) {
console.log('handleSearchInfoFn', info);
return info;
}, },
actionColumn: { actionColumn: {
width: 140, width: 150,
title: '操作', title: '操作',
dataIndex: 'action', dataIndex: 'action',
}, },
scroll: { y: 400 },
}); });
/** 新增按钮*/ function handleSubmit() {
function handleCreate() { createMessage.success('提交成功');
openModal(true, {
isUpdate: false,
});
}
function handleAdd() {
openAddModal(true, {
isUpdate: false,
});
}
function handleImport() {
openImportModal(true, {
isUpdate: false,
});
}
/** 下载按钮*/
function download() {
createConfirm({
iconType: 'warning',
title: '确认下载',
content: '确认下载?',
onOk() {
createMessage.success('下载成功!');
},
});
}
/** 批量删除按钮*/
function handleDeleteIds() {
createConfirm({
iconType: 'warning',
title: '确认删除',
content: '确认批量删除选中数据吗?',
onOk() {
createMessage.success('批量删除成功!');
},
});
}
/** 重置密码弹窗确定按钮*/
/** 删除按钮*/
function handleDelete(record: Recordable) {
createMessage.success('删除成功!');
reload();
} }
/** 新增/编辑成功*/ function handleDownload() {
function handleSuccess({ isUpdate, values }) { createMessage.success('下载成功');
if (isUpdate) {
// 演示不刷新表格直接更新内部数据。
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
const result = updateTableDataRecord(values.id, values);
console.log(result);
reload();
} else {
reload();
}
}
function handleView(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
disable: true,
});
} }
/** 部门树的select*/ function handleDelete() {
function handleSelect(workSpaceName = '') { createMessage.success('删除成功');
searchInfo.fileTypeId = workSpaceName;
reload();
} }
onMounted(() => { onMounted(() => {
tableData.value = knowledgeData; resetFields();
const path = route.path; tableData.value = editData;
if (filterStore.getSearchParams[path]) {
if (JSON.parse(filterStore.getSearchParams[path] !== {})) {
const params = JSON.parse(filterStore.getSearchParams[path]);
console.log('11111111111111111111111111111', params);
getForm().setFieldsValue({
page: params.page,
pageSize: params.pageSize,
username: params.username,
flag: params.flag,
});
searchInfo.deptId = params.deptId;
}
}
});
onBeforeRouteLeave((to, from, next) => {
const params = Object.assign({}, getSearchInfo(), getForm().getFieldsValue());
console.log('path', from.path);
console.log('params', params);
filterStore.setSearchParams({
path: from.path,
param: {
...params,
},
});
next(); // 允许导航
}); });
</script> </script>
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