Browse Source

换源工作台

ai_dev
zhouhaibin 1 month ago
parent
commit
195b367d39
  1. 103
      src/views/workbench/abak.vue
  2. 115
      src/views/workbench/index.vue

103
src/views/workbench/abak.vue

@ -0,0 +1,103 @@
<template>
<PageWrapper dense>
<div class="parent-test">
<CanvasEditor
ref="canvasEditor"
:parentContent="parentContent"
:view="view"
@save-content="handleSaveCanvasEditorContent"
/>
<button
style="width: 80px; height: 40px; border: 2px solid #2b4b6b; margin-right: 20px; float: right"
@click="handleSaveContent"
>
</button>
</div>
</PageWrapper>
</template>
<script lang="ts" setup>
import { ref, onMounted,reactive } from 'vue';
import { PageWrapper } from '@/components/Page';
import WorkbenchHeader from './components/WorkbenchHeader.vue';
import { Card, Dropdown, Menu, MenuItem } from 'ant-design-vue';
import ProjectCard from './components/ProjectCard.vue';
import QuickNav from './components/QuickNav.vue';
import DocumentTasksTable from '@/views/documentReview/DocumentTasks/DocumentTasksTable.vue';
import { useRouter } from 'vue-router';
import { DownOutlined, UserOutlined } from '@ant-design/icons-vue';
import { groupItems } from './components/data';
import CanvasEditor from '@/views/CanvasEditor/index.vue';
//
let parentContent = reactive<any>(undefined);
//
const content = ref<any>(undefined);
//
const view = ref<string | undefined>(undefined);
//
onMounted(() => {
console.log("模拟父组件向后端请求数据, 传递给子组件");
getEditorContent();
view.value = "parent";
});
//
const getEditorContent = () => {
parentContent={
header: [
{
value: "父类传递的数据",
size: 12,
bold: false,
color: "rgb(33, 53, 71)",
italic: false,
},
],
main: [
{
value: "父类传递的数据 通过后端获取!\n甲方:企查查科技股份有限公司\n法定代表人:陈德强\n住所:苏州工业园区科创东区东石泾港路2号润港产业园6号楼10层1001室11",
size: 40,
bold: true,
},
],
};
};
//
const canvasEditor = ref<InstanceType<typeof CanvasEditor> | null>(null);
//
const handleSaveContent = () => {
// 访
(canvasEditor.value as any).saveContent();
};
//
const handleSaveCanvasEditorContent = (data: any) => {
console.log("从子组件接收到的数据:", data);
// data json , 便
content.value = JSON.stringify(data);
console.log("转换后的数据 content 为: ", content.value);
};
const router = useRouter();
//
const loading = ref(false);
const handleMenuClick = ({ key }) => {
console.log(key);
router.push({ path: key });
};
//
const fetchTaskList = async () => {};
//
onMounted(() => {
fetchTaskList();
});
setTimeout(() => {
loading.value = false;
}, 1500);
</script>

115
src/views/workbench/index.vue

@ -1,24 +1,51 @@
<template> <template>
<PageWrapper dense> <PageWrapper>
<div class="parent-test"> <template #headerContent> <WorkbenchHeader /> </template>
<CanvasEditor <div class="workbench">
ref="canvasEditor" <div class="h-1/4">
:parentContent="parentContent" <div class="grid grid-cols-5 gap-4">
:view="view" <div class="col-span-3 h-full">
@save-content="handleSaveCanvasEditorContent" <ProjectCard :loading="loading" class="enter-y" />
/> </div>
<div class="col-span-2 h-full">
<QuickNav :loading="loading" class="enter-y" />
</div>
</div>
<div class="h-1/2 mt-4">
<Card title="任务看板" :bordered="false" style="width: 100%; height: 100%">
<template #extra>
<!-- 将按钮改为下拉菜单 -->
<Dropdown>
<a-button>
更多
<DownOutlined />
</a-button>
<template #overlay>
<Menu @click="handleMenuClick" mode="vertical">
<MenuItem v-for="item in groupItems"
:key="item.path"
>
{{ item.title }}
</MenuItem>
</Menu>
</template>
</Dropdown>
</template>
<button <DocumentTasksTable
style="width: 80px; height: 40px; border: 2px solid #2b4b6b; margin-right: 20px; float: right" :show-table-setting="false"
@click="handleSaveContent" :show-toolbar="false"
> :use-search-form="false"
:pagination="false"
</button> />
</div> </Card>
</PageWrapper> </div>
</div>
</div>
</PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted,reactive } from 'vue'; import { ref, onMounted } from 'vue';
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import WorkbenchHeader from './components/WorkbenchHeader.vue'; import WorkbenchHeader from './components/WorkbenchHeader.vue';
import { Card, Dropdown, Menu, MenuItem } from 'ant-design-vue'; import { Card, Dropdown, Menu, MenuItem } from 'ant-design-vue';
@ -28,60 +55,6 @@
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { DownOutlined, UserOutlined } from '@ant-design/icons-vue'; import { DownOutlined, UserOutlined } from '@ant-design/icons-vue';
import { groupItems } from './components/data'; import { groupItems } from './components/data';
import CanvasEditor from '@/views/CanvasEditor/index.vue';
//
let parentContent = reactive<any>(undefined);
//
const content = ref<any>(undefined);
//
const view = ref<string | undefined>(undefined);
//
onMounted(() => {
console.log("模拟父组件向后端请求数据, 传递给子组件");
getEditorContent();
view.value = "parent";
});
//
const getEditorContent = () => {
parentContent={
header: [
{
value: "父类传递的数据",
size: 12,
bold: false,
color: "rgb(33, 53, 71)",
italic: false,
},
],
main: [
{
value: "父类传递的数据 通过后端获取!\n甲方:企查查科技股份有限公司\n法定代表人:陈德强\n住所:苏州工业园区科创东区东石泾港路2号润港产业园6号楼10层1001室11",
size: 40,
bold: true,
},
],
};
};
//
const canvasEditor = ref<InstanceType<typeof CanvasEditor> | null>(null);
//
const handleSaveContent = () => {
// 访
(canvasEditor.value as any).saveContent();
};
//
const handleSaveCanvasEditorContent = (data: any) => {
console.log("从子组件接收到的数据:", data);
// data json , 便
content.value = JSON.stringify(data);
console.log("转换后的数据 content 为: ", content.value);
};
const router = useRouter(); const router = useRouter();
// //

Loading…
Cancel
Save