Browse Source

优化内容

ai_dev
zhouhaibin 2 months ago
parent
commit
6d6a814d09
  1. 4
      src/views/contractReview/ContractualTasks/ContractualTasks.data.ts
  2. 2
      src/views/documentReview/DocumentTasks/DocsDrawer.vue
  3. 2
      src/views/workbench/components/WorkbenchHeader.vue
  4. 114
      src/views/workbench/components/data.ts
  5. 115
      src/views/workbench/index.vue

4
src/views/contractReview/ContractualTasks/ContractualTasks.data.ts

@ -71,7 +71,7 @@ export const columns: BasicColumn[] = [
customRender: ({ value }) => renderDict(value, 'model_industry'), customRender: ({ value }) => renderDict(value, 'model_industry'),
}, },
{ {
title: '合同角色', title: '审查立场',
dataIndex: 'contractPartyRole', dataIndex: 'contractPartyRole',
}, },
{ {
@ -128,7 +128,7 @@ export const modalSchemas: FormSchema[] = [
}, },
}, },
{ {
label: '合同角色', label: '审查立场',
field: 'contractPartyRole', field: 'contractPartyRole',
required: true, required: true,
component: 'Select', component: 'Select',

2
src/views/documentReview/DocumentTasks/DocsDrawer.vue

@ -27,7 +27,7 @@
const type = ref<string>('markdown'); const type = ref<string>('markdown');
const MarkdownViewerkeynum = ref<number>(0); const MarkdownViewerkeynum = ref<number>(0);
const iframeKey = ref<number>(10); const iframeKey = ref<number>(10);
const drawerWidth = useMaxWidthOrDefault(800); const drawerWidth = useMaxWidthOrDefault(1000);
const textvalue = ref<string>(text); const textvalue = ref<string>(text);
const [registerDrawer] = useDrawerInner(init); const [registerDrawer] = useDrawerInner(init);
// 'light' | 'dark' // 'light' | 'dark'

2
src/views/workbench/components/WorkbenchHeader.vue

@ -2,7 +2,7 @@
<div class="lg:flex"> <div class="lg:flex">
<Avatar :src="userinfo.avatar || headerImg" :size="72" class="!mx-auto !block" /> <Avatar :src="userinfo.avatar || headerImg" :size="72" class="!mx-auto !block" />
<div class="md:ml-6 flex flex-col justify-center md:mt-0 mt-2"> <div class="md:ml-6 flex flex-col justify-center md:mt-0 mt-2">
<h1 class="md:text-lg text-md">早安, {{ userinfo.nickName }}, 开始您一天的工作吧</h1> <h1 class="md:text-lg text-md">您好, {{ userinfo.nickName }}, 欢迎回来</h1>
<!-- <span class="text-secondary"> 今日晴20 - 32 </span> --> <!-- <span class="text-secondary"> 今日晴20 - 32 </span> -->
</div> </div>
<div class="flex flex-1 justify-end md:mt-0 mt-4"> <div class="flex flex-1 justify-end md:mt-0 mt-4">

114
src/views/workbench/components/data.ts

@ -1,4 +1,4 @@
import { TaskType, SchemeTask, ContractTask, SchemeEvaluation } from '@/enums/taskEnum'; import { TaskType, SchemeTask, ContractTask, SchemeEvaluation,TenderTask } from '@/enums/taskEnum';
interface GroupItem { interface GroupItem {
title: string; title: string;
@ -62,19 +62,66 @@ export const navItems: NavItem[] = [
key: SchemeTask.COMPANY_CHECK.value, key: SchemeTask.COMPANY_CHECK.value,
}, },
]; ];
export const documentNavItems: NavItem[] = [
{
title: SchemeTask.DOCUMENT_SIMILARITY.label,
icon: SchemeTask.DOCUMENT_SIMILARITY.icon,
color: SchemeTask.DOCUMENT_SIMILARITY.color,
key: SchemeTask.DOCUMENT_SIMILARITY.value,
},
{
title: SchemeTask.DOCUMENT_ERROR.label,
icon: SchemeTask.DOCUMENT_ERROR.icon,
color: SchemeTask.DOCUMENT_ERROR.color,
key: SchemeTask.DOCUMENT_ERROR.value,
},
{
title: SchemeTask.PLACE_CHECK.label,
icon: SchemeTask.PLACE_CHECK.icon,
color: SchemeTask.PLACE_CHECK.color,
key: SchemeTask.PLACE_CHECK.value,
},
{
title: SchemeTask.TITLE_CHECK.label,
icon: SchemeTask.TITLE_CHECK.icon,
color: SchemeTask.TITLE_CHECK.color,
key: SchemeTask.TITLE_CHECK.value,
},
{
title: SchemeTask.COMPANY_CHECK.label,
icon: SchemeTask.COMPANY_CHECK.icon,
color: SchemeTask.COMPANY_CHECK.color,
key: SchemeTask.COMPANY_CHECK.value,
},
{
title: SchemeEvaluation.SCHEME_EVALUATION.label,
icon: SchemeEvaluation.SCHEME_EVALUATION.icon,
color: SchemeEvaluation.SCHEME_EVALUATION.color,
key: SchemeEvaluation.SCHEME_EVALUATION.value,
},
];
// 导航项配置
export const contractNavItems: NavItem[] = [
{
title: ContractTask.CONTRACT_REVIEW.label,
icon: ContractTask.CONTRACT_REVIEW.icon,
color: ContractTask.CONTRACT_REVIEW.color,
key: ContractTask.CONTRACT_REVIEW.value,
},
];
// 导航项配置
export const tenderNavItems: NavItem[] = [
{
title: TenderTask.TENDER_SUMMARY.label,
icon: TenderTask.TENDER_SUMMARY.icon,
color: TenderTask.TENDER_SUMMARY.color,
key: TenderTask.TENDER_SUMMARY.value,
},
];
export const dynamicInfoItems: DynamicInfoItem[] = []; export const dynamicInfoItems: DynamicInfoItem[] = [];
// 分组项配置 // 分组项配置
export const groupItems: GroupItem[] = [ export const groupItems: GroupItem[] = [
// {
// title: '方案生成',
// icon: 'solar:document-add-bold-duotone',
// key: 'solutionGenerate',
// color: '#52C41A',
// style:"!md:w-1/3 !w-full"
// },
{ {
title: TaskType.SCHEME_REVIEW.label, title: TaskType.SCHEME_REVIEW.label,
icon: TaskType.SCHEME_REVIEW.icon, icon: TaskType.SCHEME_REVIEW.icon,
@ -119,22 +166,45 @@ export const groupItems: GroupItem[] = [
// }, // },
];
export const documentGroupItems: GroupItem[] = [
{
title: TaskType.SCHEME_REVIEW.label,
icon: TaskType.SCHEME_REVIEW.icon,
key: TaskType.SCHEME_REVIEW.value,
color: TaskType.SCHEME_REVIEW.color,
style:"",
path:TaskType.SCHEME_REVIEW.path,
},
{
title: TaskType.SCHEME_EVALUATION.label,
icon: TaskType.SCHEME_EVALUATION.icon,
key: TaskType.SCHEME_EVALUATION.value,
color: TaskType.SCHEME_EVALUATION.color,
style:"",
path:TaskType.SCHEME_EVALUATION.path,
},
];
export const contractGroupItems: GroupItem[] = [
{ {
title: '公文审核', title: TaskType.CONTRACT_REVIEW.label,
icon: 'mdi:file-document-check', icon: TaskType.CONTRACT_REVIEW.icon,
key: 'documentTranslate', key: TaskType.CONTRACT_REVIEW.value,
color: '#722ED1', color: TaskType.CONTRACT_REVIEW.color,
style:"background-color: #CECECE;", style:"",
path:"", path:TaskType.CONTRACT_REVIEW.path,
}, },
];
export const tenderGroupItems: GroupItem[] = [
{ {
title: TaskType.PROJECT_DOCUMENT_REVIEW.label, title: TaskType.TENDER_REVIEW.label,
icon: TaskType.PROJECT_DOCUMENT_REVIEW.icon, icon: TaskType.TENDER_REVIEW.icon,
key: TaskType.PROJECT_DOCUMENT_REVIEW.value, key: TaskType.TENDER_REVIEW.value,
color: TaskType.PROJECT_DOCUMENT_REVIEW.color, color: TaskType.TENDER_REVIEW.color,
style:"background-color: #CECECE;", style:"",
path:TaskType.PROJECT_DOCUMENT_REVIEW.path, path:TaskType.TENDER_REVIEW.path,
}, },
]; ];

115
src/views/workbench/index.vue

@ -1,51 +1,24 @@
<template> <template>
<PageWrapper> <PageWrapper dense>
<template #headerContent> <WorkbenchHeader /> </template> <div class="parent-test">
<div class="workbench"> <CanvasEditor
<div class="h-1/4"> ref="canvasEditor"
<div class="grid grid-cols-5 gap-4"> :parentContent="parentContent"
<div class="col-span-3 h-full"> :view="view"
<ProjectCard :loading="loading" class="enter-y" /> @save-content="handleSaveCanvasEditorContent"
</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>
<DocumentTasksTable <button
:show-table-setting="false" style="width: 80px; height: 40px; border: 2px solid #2b4b6b; margin-right: 20px; float: right"
:show-toolbar="false" @click="handleSaveContent"
:use-search-form="false" >
:pagination="false"
/> </button>
</Card> </div>
</div> </PageWrapper>
</div>
</div>
</PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted } from 'vue'; import { ref, onMounted,reactive } 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';
@ -55,6 +28,60 @@
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