add jobDetailRegExpMatchLogic option in UI

This commit is contained in:
geekgeekrun
2025-06-29 04:32:28 +08:00
parent 98b99c5d14
commit d5dcdb4bd1
4 changed files with 44 additions and 3 deletions

View File

@@ -13,6 +13,7 @@
"expectCityList": [],
"expectCityNotMatchStrategy": 3,
"strategyScopeOptionWhenMarkJobCityNotMatch": 2,
"jobDetailRegExpMatchLogic": 1,
"autoReminder": {
"throttleIntervalMinutes": 10,
"rechatLimitDay": 21,

View File

@@ -22,4 +22,9 @@ export enum StrategyScopeOptionWhenMarkJobNotMatch {
export enum SalaryCalculateWay {
MONTH_SALARY = 1,
ANNUAL_PACKAGE = 2,
}
}
export enum JobDetailRegExpMatchLogic {
EVERY = 1,
SOME = 2,
}

View File

@@ -149,6 +149,9 @@ export default function initIpc() {
bossConfig.strategyScopeOptionWhenMarkJobWorkExpNotMatch =
payload.strategyScopeOptionWhenMarkJobWorkExpNotMatch
}
if (hasOwn(payload, 'jobDetailRegExpMatchLogic')) {
bossConfig.jobDetailRegExpMatchLogic = payload.jobDetailRegExpMatchLogic
}
promiseArr.push(writeConfigFile('boss.json', bossConfig))

View File

@@ -584,6 +584,23 @@
</el-dropdown>
</div>
</div>
<div :style="{ width: '100%' }">
<el-form-item mb0 prop="expectJobNameRegExpStr">
<div font-size-12px>职位名称/类型/描述正则匹配筛选逻辑</div>
<el-select
v-model="formContent.jobDetailRegExpMatchLogic"
@change="(value) => gtagRenderer('job_detail_re_ml_change', { value })"
>
<el-option
v-for="op in jobDetailRegExpMatchLogicOptions"
:key="op.value"
:label="op.name"
:value="op.value"
>{{ op.name }}</el-option
>
</el-select>
</el-form-item>
</div>
<div
:style="{
display: 'grid',
@@ -784,7 +801,8 @@ import { ArrowDown } from '@element-plus/icons-vue'
import {
MarkAsNotSuitOp,
StrategyScopeOptionWhenMarkJobNotMatch,
SalaryCalculateWay
SalaryCalculateWay,
JobDetailRegExpMatchLogic
} from '@geekgeekrun/sqlite-plugin/src/enums'
import { debounce } from 'lodash-es'
import mittBus from '../../../utils/mitt'
@@ -819,7 +837,8 @@ const formContent = ref({
expectWorkExpList: [],
expectWorkExpNotMatchStrategy: MarkAsNotSuitOp.NO_OP,
strategyScopeOptionWhenMarkJobWorkExpNotMatch:
StrategyScopeOptionWhenMarkJobNotMatch.ONLY_COMPANY_MATCHED_JOB
StrategyScopeOptionWhenMarkJobNotMatch.ONLY_COMPANY_MATCHED_JOB,
jobDetailRegExpMatchLogic: JobDetailRegExpMatchLogic.EVERY
})
const currentAnyCombineRecommendJobFilterCombinationCount = computed(() => {
@@ -919,6 +938,8 @@ electron.ipcRenderer.invoke('fetch-config-file-content').then((res) => {
formContent.value.strategyScopeOptionWhenMarkJobWorkExpNotMatch =
res.config['boss.json'].strategyScopeOptionWhenMarkJobWorkExpNotMatch ??
StrategyScopeOptionWhenMarkJobNotMatch.ONLY_COMPANY_MATCHED_JOB
formContent.value.jobDetailRegExpMatchLogic =
res.config['boss.json'].jobDetailRegExpMatchLogic ?? JobDetailRegExpMatchLogic.EVERY
})
const formRules = {
@@ -1153,6 +1174,17 @@ const strategyScopeOptionWhenMarkJobNotMatch = [
}
]
const jobDetailRegExpMatchLogicOptions = [
{
name: '“且”模式 - 所有正则匹配时才认为职位匹配',
value: JobDetailRegExpMatchLogic.EVERY
},
{
name: '“或”模式 - 任一正则匹配时即认为职位匹配',
value: JobDetailRegExpMatchLogic.SOME
}
]
async function handleExpectSalaryCalculateWayChanged(value) {
gtagRenderer('expect_salary_calculate_way_changed', { value })