mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-09-06 16:07:17 +08:00
show mark as not suit for city reason in not suit record table
This commit is contained in:
@@ -549,7 +549,12 @@ async function toRecommendPage (hooks) {
|
|||||||
:
|
:
|
||||||
true
|
true
|
||||||
) || (
|
) || (
|
||||||
(Array.isArray(expectCityList) && expectCityList.length) ? !expectCityList.includes(it.cityName) : false
|
// enter job detail to mark as not suit
|
||||||
|
(
|
||||||
|
Array.isArray(expectCityList) &&
|
||||||
|
expectCityList.length &&
|
||||||
|
expectCityNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS
|
||||||
|
) ? !expectCityList.includes(it.cityName) : false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
@@ -694,9 +699,8 @@ async function toRecommendPage (hooks) {
|
|||||||
targetJobData,
|
targetJobData,
|
||||||
{
|
{
|
||||||
markFrom: ChatStartupFrom.AutoFromRecommendList,
|
markFrom: ChatStartupFrom.AutoFromRecommendList,
|
||||||
markReason: MarkAsNotSuitReason.JOB_NOT_SUIT,
|
markReason: MarkAsNotSuitReason.JOB_CITY_NOT_SUIT,
|
||||||
extInfo: {
|
extInfo: {
|
||||||
bossActiveTimeDesc: targetJobData.bossInfo.activeTimeDesc,
|
|
||||||
chosenReasonInUi
|
chosenReasonInUi
|
||||||
},
|
},
|
||||||
markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS
|
markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS
|
||||||
@@ -711,7 +715,7 @@ async function toRecommendPage (hooks) {
|
|||||||
targetJobData,
|
targetJobData,
|
||||||
{
|
{
|
||||||
markFrom: ChatStartupFrom.AutoFromRecommendList,
|
markFrom: ChatStartupFrom.AutoFromRecommendList,
|
||||||
markReason: MarkAsNotSuitReason.JOB_NOT_SUIT,
|
markReason: MarkAsNotSuitReason.JOB_CITY_NOT_SUIT,
|
||||||
extInfo: null,
|
extInfo: null,
|
||||||
markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL
|
markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL
|
||||||
}
|
}
|
||||||
@@ -911,6 +915,7 @@ export async function mainLoop (hooks) {
|
|||||||
await hooks.mainFlowWillLaunch?.callAsync({
|
await hooks.mainFlowWillLaunch?.callAsync({
|
||||||
jobNotMatchStrategy,
|
jobNotMatchStrategy,
|
||||||
jobNotActiveStrategy,
|
jobNotActiveStrategy,
|
||||||
|
expectCityNotMatchStrategy,
|
||||||
blockJobNotSuit,
|
blockJobNotSuit,
|
||||||
blockBossNotActive,
|
blockBossNotActive,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -108,12 +108,14 @@ export default class SqlitePlugin {
|
|||||||
async ({
|
async ({
|
||||||
jobNotMatchStrategy,
|
jobNotMatchStrategy,
|
||||||
jobNotActiveStrategy,
|
jobNotActiveStrategy,
|
||||||
|
expectCityNotMatchStrategy,
|
||||||
blockJobNotSuit,
|
blockJobNotSuit,
|
||||||
blockBossNotActive,
|
blockBossNotActive,
|
||||||
}) => {
|
}) => {
|
||||||
if (
|
if (
|
||||||
jobNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL ||
|
jobNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL ||
|
||||||
jobNotActiveStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL
|
jobNotActiveStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL ||
|
||||||
|
expectCityNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL
|
||||||
) {
|
) {
|
||||||
const ds = await this.initPromise;
|
const ds = await this.initPromise;
|
||||||
const last7DayMarkRecords = (await getNotSuitMarkRecordsInLastSomeDays(ds, 7) ?? []);
|
const last7DayMarkRecords = (await getNotSuitMarkRecordsInLastSomeDays(ds, 7) ?? []);
|
||||||
@@ -142,6 +144,16 @@ export default class SqlitePlugin {
|
|||||||
id => blockJobNotSuit.add(id)
|
id => blockJobNotSuit.add(id)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
if (expectCityNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL) {
|
||||||
|
last7DayMarkRecords
|
||||||
|
.filter(it => it.markReason === MarkAsNotSuitReason.JOB_CITY_NOT_SUIT)
|
||||||
|
.map(
|
||||||
|
it => it.encryptJobId
|
||||||
|
)
|
||||||
|
.forEach(
|
||||||
|
id => blockJobNotSuit.add(id)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -92,7 +92,11 @@ const attachRequestsListener = async (target: Target) => {
|
|||||||
},
|
},
|
||||||
markReason: MarkAsNotSuitReason.USER_MANUAL_OPERATION_WITH_UNKNOWN_REASON
|
markReason: MarkAsNotSuitReason.USER_MANUAL_OPERATION_WITH_UNKNOWN_REASON
|
||||||
}
|
}
|
||||||
gtag('job_marked_as_not_suit', { markFrom: markDetail.markFrom })
|
gtag('job_marked_as_not_suit', {
|
||||||
|
markFrom: markDetail.markFrom,
|
||||||
|
bossActiveTimeDesc: currentJobData?.bossInfo?.activeTimeDesc,
|
||||||
|
encryptJobId: currentJobData?.jobInfo?.encryptId
|
||||||
|
})
|
||||||
if (reasonCodeToTextMap[chosenCode]?.includes('活跃度低')) {
|
if (reasonCodeToTextMap[chosenCode]?.includes('活跃度低')) {
|
||||||
markDetail.markReason = MarkAsNotSuitReason.BOSS_INACTIVE
|
markDetail.markReason = MarkAsNotSuitReason.BOSS_INACTIVE
|
||||||
markDetail.extInfo.bossActiveTimeDesc = currentJobData?.bossInfo.activeTimeDesc
|
markDetail.extInfo.bossActiveTimeDesc = currentJobData?.bossInfo.activeTimeDesc
|
||||||
@@ -127,7 +131,10 @@ const attachRequestsListener = async (target: Target) => {
|
|||||||
const currentUserInfo = await page.evaluate(
|
const currentUserInfo = await page.evaluate(
|
||||||
'document.querySelector(".job-detail-box").__vue__.$store.state.userInfo'
|
'document.querySelector(".job-detail-box").__vue__.$store.state.userInfo'
|
||||||
)
|
)
|
||||||
gtag('new_chat_startup', { chatStartupFrom: ChatStartupFrom.ManuallyFromRecommendList })
|
gtag('new_chat_startup', {
|
||||||
|
chatStartupFrom: ChatStartupFrom.ManuallyFromRecommendList,
|
||||||
|
encryptJobId: currentJobData?.jobInfo?.encryptId
|
||||||
|
})
|
||||||
await saveChatStartupRecord(
|
await saveChatStartupRecord(
|
||||||
await dbInitPromise,
|
await dbInitPromise,
|
||||||
currentJobData,
|
currentJobData,
|
||||||
|
|||||||
@@ -2,11 +2,20 @@ import gtag from '.'
|
|||||||
|
|
||||||
export default class GtagPlugin {
|
export default class GtagPlugin {
|
||||||
apply(hooks) {
|
apply(hooks) {
|
||||||
hooks.newChatStartup.tap('GtagPlugin', (_, { chatStartupFrom }) => {
|
hooks.newChatStartup.tap('GtagPlugin', (jobData, { chatStartupFrom }) => {
|
||||||
gtag('new_chat_startup', { chatStartupFrom })
|
gtag('new_chat_startup', {
|
||||||
|
chatStartupFrom,
|
||||||
|
encryptJobId: jobData.jobInfo.encryptId
|
||||||
|
})
|
||||||
})
|
})
|
||||||
hooks.jobMarkedAsNotSuit.tap('GtagPlugin', (_, { markFrom }) => {
|
hooks.jobMarkedAsNotSuit.tap('GtagPlugin', (jobData, { markFrom, markOp, markReason }) => {
|
||||||
gtag('job_marked_as_not_suit', { markFrom })
|
gtag('job_marked_as_not_suit', {
|
||||||
|
markFrom,
|
||||||
|
markOp,
|
||||||
|
markReason,
|
||||||
|
bossActiveTimeDesc: jobData.bossInfo.activeTimeDesc,
|
||||||
|
encryptJobId: jobData.jobInfo.encryptId
|
||||||
|
})
|
||||||
})
|
})
|
||||||
hooks.noPositionFoundForCurrentJob.tap('GtagPlugin', () => {
|
hooks.noPositionFoundForCurrentJob.tap('GtagPlugin', () => {
|
||||||
gtag('no_position_found_for_current_job')
|
gtag('no_position_found_for_current_job')
|
||||||
|
|||||||
@@ -498,6 +498,11 @@ electron.ipcRenderer.invoke('fetch-config-file-content').then((res) => {
|
|||||||
: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS
|
: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS
|
||||||
|
|
||||||
formContent.value.expectCityList = res.config['boss.json']?.expectCityList ?? []
|
formContent.value.expectCityList = res.config['boss.json']?.expectCityList ?? []
|
||||||
|
formContent.value.expectCityNotMatchStrategy = strategyOptionWhenCurrentJobNotMatch
|
||||||
|
.map((it) => it.value)
|
||||||
|
.includes(res.config['boss.json'].expectCityNotMatchStrategy)
|
||||||
|
? res.config['boss.json'].expectCityNotMatchStrategy
|
||||||
|
: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS
|
||||||
})
|
})
|
||||||
|
|
||||||
const formRules = {
|
const formRules = {
|
||||||
|
|||||||
@@ -38,6 +38,10 @@
|
|||||||
<template v-else-if="row.markReason === MarkAsNotSuitReason.JOB_NOT_SUIT">
|
<template v-else-if="row.markReason === MarkAsNotSuitReason.JOB_NOT_SUIT">
|
||||||
<strong>{{ markReasonTopicMap[row.markReason] }}</strong>
|
<strong>{{ markReasonTopicMap[row.markReason] }}</strong>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-if="row.markReason === MarkAsNotSuitReason.JOB_CITY_NOT_SUIT">
|
||||||
|
<strong>{{ markReasonTopicMap[row.markReason] }}</strong>
|
||||||
|
<pre class="m-0 of-auto">{{ formatMarkReason(row) }}</pre>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</ElTableColumn>
|
</ElTableColumn>
|
||||||
<ElTableColumn prop="experienceName" label="工作经验" />
|
<ElTableColumn prop="experienceName" label="工作经验" />
|
||||||
@@ -139,7 +143,7 @@ async function getMarkAsNotSuitRecord() {
|
|||||||
try {
|
try {
|
||||||
gtagRenderer('mansr_request_sent', {
|
gtagRenderer('mansr_request_sent', {
|
||||||
page_no: pagination.value.pageNo,
|
page_no: pagination.value.pageNo,
|
||||||
page_size: pagination.value.pageSize,
|
page_size: pagination.value.pageSize
|
||||||
})
|
})
|
||||||
isTableLoading.value = true
|
isTableLoading.value = true
|
||||||
const { data: res } = (await electron.ipcRenderer.invoke('get-mark-as-not-suit-record', {
|
const { data: res } = (await electron.ipcRenderer.invoke('get-mark-as-not-suit-record', {
|
||||||
@@ -154,13 +158,13 @@ async function getMarkAsNotSuitRecord() {
|
|||||||
}
|
}
|
||||||
gtagRenderer('mansr_request_success', {
|
gtagRenderer('mansr_request_success', {
|
||||||
page_no: pagination.value.pageNo,
|
page_no: pagination.value.pageNo,
|
||||||
page_size: pagination.value.pageSize,
|
page_size: pagination.value.pageSize
|
||||||
})
|
})
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
gtagRenderer('mansr_request_error', {
|
gtagRenderer('mansr_request_error', {
|
||||||
err,
|
err,
|
||||||
page_no: pagination.value.pageNo,
|
page_no: pagination.value.pageNo,
|
||||||
page_size: pagination.value.pageSize,
|
page_size: pagination.value.pageSize
|
||||||
})
|
})
|
||||||
console.log(err)
|
console.log(err)
|
||||||
tableData.value = []
|
tableData.value = []
|
||||||
@@ -204,7 +208,8 @@ function handleViewJobSnapshotButtonClick(record: VMarkAsNotSuitLog) {
|
|||||||
const markReasonTopicMap = {
|
const markReasonTopicMap = {
|
||||||
[MarkAsNotSuitReason.BOSS_INACTIVE]: 'Boss不活跃',
|
[MarkAsNotSuitReason.BOSS_INACTIVE]: 'Boss不活跃',
|
||||||
[MarkAsNotSuitReason.USER_MANUAL_OPERATION_WITH_UNKNOWN_REASON]: '手动标记不合适',
|
[MarkAsNotSuitReason.USER_MANUAL_OPERATION_WITH_UNKNOWN_REASON]: '手动标记不合适',
|
||||||
[MarkAsNotSuitReason.JOB_NOT_SUIT]: '职位不合适'
|
[MarkAsNotSuitReason.JOB_NOT_SUIT]: '职位不合适',
|
||||||
|
[MarkAsNotSuitReason.JOB_CITY_NOT_SUIT]: '工作地不合适'
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatMarkReason(row: VMarkAsNotSuitLog) {
|
function formatMarkReason(row: VMarkAsNotSuitLog) {
|
||||||
@@ -236,6 +241,18 @@ function formatMarkReason(row: VMarkAsNotSuitLog) {
|
|||||||
.filter(Boolean)
|
.filter(Boolean)
|
||||||
.join('\n')
|
.join('\n')
|
||||||
}
|
}
|
||||||
|
case MarkAsNotSuitReason.JOB_CITY_NOT_SUIT: {
|
||||||
|
const extInfo = (() => {
|
||||||
|
try {
|
||||||
|
return JSON.parse(row.extInfo)
|
||||||
|
} catch {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
})()
|
||||||
|
return [extInfo?.chosenReasonInUi?.text && `Boss选项内容:${extInfo.chosenReasonInUi.text}`]
|
||||||
|
.filter(Boolean)
|
||||||
|
.join('\n')
|
||||||
|
}
|
||||||
default: {
|
default: {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user