From 8cb379f6eb77b482f314f16ef495b0582f5326a3 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Thu, 10 Oct 2024 09:34:33 +0800 Subject: [PATCH] add diff.js to compare update log; enhance the style of the row which has diff; comment the mock data --- packages/ui/package.json | 1 + .../src/renderer/src/components/TextDiff.vue | 55 +++++++++ .../src/features/JobInfoHistoryList/index.vue | 72 +++++++++--- packages/ui/src/renderer/src/main.ts | 5 +- .../src/page/Configuration/JobLibrary.vue | 109 ++++++++++-------- pnpm-lock.yaml | 61 +++++++++- 6 files changed, 230 insertions(+), 73 deletions(-) create mode 100644 packages/ui/src/renderer/src/components/TextDiff.vue diff --git a/packages/ui/package.json b/packages/ui/package.json index 744ce19..c8d076d 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -37,6 +37,7 @@ "@geekgeekrun/sqlite-plugin": "workspace:*", "@geekgeekrun/utils": "workspace:*", "JSONStream": "^1.3.5", + "diff": "^7.0.0", "electron-updater": "^6.1.7" }, "devDependencies": { diff --git a/packages/ui/src/renderer/src/components/TextDiff.vue b/packages/ui/src/renderer/src/components/TextDiff.vue new file mode 100644 index 0000000..047749c --- /dev/null +++ b/packages/ui/src/renderer/src/components/TextDiff.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/packages/ui/src/renderer/src/features/JobInfoHistoryList/index.vue b/packages/ui/src/renderer/src/features/JobInfoHistoryList/index.vue index 1707336..89ffae7 100644 --- a/packages/ui/src/renderer/src/features/JobInfoHistoryList/index.vue +++ b/packages/ui/src/renderer/src/features/JobInfoHistoryList/index.vue @@ -1,7 +1,20 @@ @@ -28,8 +41,9 @@ import { PropType, computed, ref, watch } from 'vue' import { type VChatStartupLog } from '@geekgeekrun/sqlite-plugin/src/entity/VChatStartupLog' import { JobInfoChangeLog } from '@geekgeekrun/sqlite-plugin/src/entity/JobInfoChangeLog' -import { ElTable, ElTableColumn } from 'element-plus' +import { ElTable, ElTableColumn, ElForm, ElFormItem, ElRow, ElCol, ElDivider } from 'element-plus' import dayjs from 'dayjs' +import TextDiff from '../../components/TextDiff.vue' const props = defineProps({ jobInfo: { @@ -54,8 +68,8 @@ const tableProps = computed(() => * 定义映射字段表(最好取全量字段) * */ const mapObj = { - jobName: '职位名称', - positionName: '职位分类', + // jobName: '职位名称', + // positionName: '职位分类', experienceName: '工作经验', degreeName: '学历', salaryDesc: '薪资', @@ -79,17 +93,35 @@ const dataForRender = computed(() => { return newArr }) -const diffPivot = ref(0) +const diffPivot = ref('') watch( - () => props.jobInfoHistoryList, + [() => props.jobInfoHistoryList, () => tableProps.value], () => { - if (!props.jobInfoHistoryList.length) { - diffPivot.value = 0 + if (!props.jobInfoHistoryList.length || !tableProps.value.length) { + diffPivot.value = '' return } - diffPivot.value = props.jobInfoHistoryList.length - 1 + diffPivot.value = tableProps.value[tableProps.value.length - 1].value + }, + { + immediate: true } ) + +function getRowStyle ({ row }) { + const propsToCompare = tableProps.value.map(it => it.value) + for (let i = 0; i < propsToCompare.length - 1; i++) { + if ( + row[propsToCompare[i]]?.trim() !== + row[propsToCompare[i + 1]]?.trim() + ) { + return { + backgroundColor: '#fffeef' + } + } + } + return {} +} diff --git a/packages/ui/src/renderer/src/main.ts b/packages/ui/src/renderer/src/main.ts index dfde866..0a42f36 100644 --- a/packages/ui/src/renderer/src/main.ts +++ b/packages/ui/src/renderer/src/main.ts @@ -8,4 +8,7 @@ import 'element-plus/dist/index.css' import 'virtual:uno.css' import 'animate.css' -createApp(App).use(router).use(ElementPlus).mount('#app') +createApp(App) + .use(router) + .use(ElementPlus) + .mount('#app') diff --git a/packages/ui/src/renderer/src/page/Configuration/JobLibrary.vue b/packages/ui/src/renderer/src/page/Configuration/JobLibrary.vue index ecad286..11622d5 100644 --- a/packages/ui/src/renderer/src/page/Configuration/JobLibrary.vue +++ b/packages/ui/src/renderer/src/page/Configuration/JobLibrary.vue @@ -103,7 +103,7 @@