2 changed files with 147 additions and 71 deletions
@ -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> |
Loading…
Reference in new issue