fixbug: 🐛 缺少更新定时任务接口

This commit is contained in:
Bunny 2024-12-19 20:43:10 +08:00
parent 3bab8ae601
commit 0c5411b3aa
7 changed files with 94 additions and 16 deletions

View File

@ -23,6 +23,11 @@ export const fetchGetExpendOrIncome = (data: any) => {
});
};
/** 账单信息---发送账单提醒 */
export const fetchSendBillReport = (data: any) => {
return http.request<BaseResult<object>>('get', 'bill/noManage/sendBillReport', { params: data });
};
/** 账单信息---导出用户账单信息 */
export const fetchImportBill = (data: any) => {
return http.request<BaseResult<object>>('post', 'bill/noManage/importBill', {

View File

@ -5,6 +5,7 @@ import {
fetchExportBill,
fetchGetUserBillList,
fetchImportBill,
fetchSendBillReport,
fetchUpdateUserBill,
} from '@/api/v1/financial/user/billUser';
import { pageSizes } from '@/enums/baseConstant';
@ -73,6 +74,13 @@ export const useBillUserStore = defineStore('billUserStore', {
return pagination(result);
},
/** 发送账单提醒*/
async sendBillReport(data: any) {
data = { type: data };
const result = await fetchSendBillReport(data);
return storeMessage(result);
},
/** 导入账单*/
async importBill(data: any) {
const result = await fetchImportBill(data);

View File

@ -9,9 +9,11 @@ import { removeToken } from '@/utils/auth';
import { useRouter } from 'vue-router';
import { usePublicHooks } from '@/views/hooks';
import { switchLoadMap, updateUserReportStatusByMouth, updateUserReportStatusByWeek, userInfos } from '@/views/account-settings/utils/hooks';
import { useBillUserStore } from '@/store/financialUser/billUser';
const router = useRouter();
const adminUserStore = useAdminUserStore();
const billUserStore = useBillUserStore();
const { switchStyle } = usePublicHooks();
const ruleFormByRestPasswordRef = ref();
const restPasswordForm = reactive({
@ -79,7 +81,7 @@ const onResetPassword = () => {
@click="updateUserReportStatusByWeek(0)"
/>
<el-divider direction="vertical" />
<el-link :underline="false" type="primary" @click="onResetPassword">接受测试</el-link>
<el-link :underline="false" type="primary" @click="billUserStore.sendBillReport('week')">接受测试</el-link>
</li>
<el-divider />
@ -101,7 +103,7 @@ const onResetPassword = () => {
@click="updateUserReportStatusByMouth(1)"
/>
<el-divider direction="vertical" />
<el-link :underline="false" type="primary" @click="onResetPassword">接受测试</el-link>
<el-link :underline="false" type="primary" @click="billUserStore.sendBillReport('mouth')">接受测试</el-link>
</li>
<el-divider />
</ul>

View File

@ -55,19 +55,41 @@ onMounted(() => {
<el-input v-model="schedulersStore.form.jobGroup" :placeholder="`${$t('input')}${$t('schedulers_jobGroup')}`" class="!w-[180px]" clearable />
</el-form-item>
<el-form-item :label="$t('schedulers_description')" prop="description">
<el-input v-model="schedulersStore.form.description" :placeholder="`${$t('input')}${$t('schedulers_description')}`" class="!w-[180px]" clearable />
<el-input
v-model="schedulersStore.form.description"
:placeholder="`${$t('input')}${$t('schedulers_description')}`"
class="!w-[180px]"
clearable
/>
</el-form-item>
<el-form-item :label="$t('schedulers_jobClassName')" prop="jobClassName">
<el-input v-model="schedulersStore.form.jobClassName" :placeholder="`${$t('input')}${$t('schedulers_jobClassName')}`" class="!w-[180px]" clearable />
<el-input
v-model="schedulersStore.form.jobClassName"
:placeholder="`${$t('input')}${$t('schedulers_jobClassName')}`"
class="!w-[180px]"
clearable
/>
</el-form-item>
<el-form-item :label="$t('schedulers_triggerName')" prop="triggerName">
<el-input v-model="schedulersStore.form.triggerName" :placeholder="`${$t('input')}${$t('schedulers_triggerName')}`" class="!w-[180px]" clearable />
<el-input
v-model="schedulersStore.form.triggerName"
:placeholder="`${$t('input')}${$t('schedulers_triggerName')}`"
class="!w-[180px]"
clearable
/>
</el-form-item>
<el-form-item :label="$t('schedulers_triggerState')" prop="triggerState">
<el-input v-model="schedulersStore.form.triggerState" :placeholder="`${$t('input')}${$t('schedulers_triggerState')}`" class="!w-[180px]" clearable />
<el-input
v-model="schedulersStore.form.triggerState"
:placeholder="`${$t('input')}${$t('schedulers_triggerState')}`"
class="!w-[180px]"
clearable
/>
</el-form-item>
<el-form-item>
<el-button :icon="useRenderIcon('ri:search-line')" :loading="schedulersStore.loading" type="primary" @click="onSearch"> {{ $t('search') }} </el-button>
<el-button :icon="useRenderIcon('ri:search-line')" :loading="schedulersStore.loading" type="primary" @click="onSearch">
{{ $t('search') }}
</el-button>
<el-button :icon="useRenderIcon(Refresh)" @click="resetForm(formRef)"> {{ $t('buttons.reset') }}</el-button>
</el-form-item>
</el-form>
@ -113,18 +135,36 @@ onMounted(() => {
</template>
<template #operation="{ row }">
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)">
{{ $t('modify') }}
</el-button>
<!-- 暂停-->
<Auth :value="auth.pause">
<el-button v-if="row.triggerState === 'ACQUIRED'" :icon="useRenderIcon('line-md:pause')" :size="size" class="reset-margin" link type="primary" @click="onPause(row)">
<el-button
v-if="row.triggerState !== 'PAUSED'"
:icon="useRenderIcon('line-md:pause')"
:size="size"
class="reset-margin"
link
type="primary"
@click="onPause(row)"
>
{{ $t('pause') }}
</el-button>
</Auth>
<!-- 恢复 -->
<Auth :value="auth.resume">
<el-button v-if="row.triggerState === 'PAUSED'" :icon="useRenderIcon('material-symbols:resume')" :size="size" class="reset-margin" link type="primary" @click="onResume(row)">
<el-button
v-if="row.triggerState === 'PAUSED'"
:icon="useRenderIcon('material-symbols:resume')"
:size="size"
class="reset-margin"
link
type="primary"
@click="onResume(row)"
>
{{ $t('resume') }}
</el-button>
</Auth>

View File

@ -21,6 +21,8 @@ const props = withDefaults(defineProps<FormProps>(), {
cronExpression: undefined,
//
jobMethodName: undefined,
//
isUpdate: false,
}),
});
@ -44,20 +46,32 @@ defineExpose({ formRef });
<el-form ref="formRef" :model="form" :rules="rules" label-width="auto">
<!-- 任务名称 -->
<el-form-item :label="$t('schedulers_jobName')" prop="jobName">
<el-input v-model="form.jobName" :placeholder="$t('input') + $t('schedulers_jobName')" autocomplete="off" type="text" />
<el-input v-model="form.jobName" :disabled="form.isUpdate" :placeholder="$t('input') + $t('schedulers_jobName')" autocomplete="off" type="text" />
</el-form-item>
<!-- 任务分组 -->
<el-form-item :label="$t('schedulers_jobGroup')" prop="jobGroup">
<el-select v-model="form.jobGroup" :placeholder="$t('select') + $t('schedulers_jobGroup')" clearable filterable>
<el-option v-for="(item, index) in schedulersGroupStore.allSchedulersGroup" :key="index" :label="item.groupName" :navigationBar="false" :value="item.groupName" />
<el-select v-model="form.jobGroup" :disabled="form.isUpdate" :placeholder="$t('select') + $t('schedulers_jobGroup')" clearable filterable>
<el-option
v-for="(item, index) in schedulersGroupStore.allSchedulersGroup"
:key="index"
:label="item.groupName"
:navigationBar="false"
:value="item.groupName"
/>
</el-select>
</el-form-item>
<!-- 需要执行的任务类名 -->
<el-form-item :label="$t('schedulers_jobClassName')" prop="jobClassName">
<el-select v-model="form.jobClassName" :placeholder="$t('select') + $t('schedulers_jobClassName')" clearable filterable>
<el-option v-for="(item, index) in schedulersStore.allScheduleJobList" :key="index" :label="item.label" :navigationBar="false" :value="item.value" />
<el-select v-model="form.jobClassName" :disabled="form.isUpdate" :placeholder="$t('select') + $t('schedulers_jobClassName')" clearable filterable>
<el-option
v-for="(item, index) in schedulersStore.allScheduleJobList"
:key="index"
:label="item.label"
:navigationBar="false"
:value="item.value"
/>
</el-select>
</el-form-item>
@ -68,7 +82,13 @@ defineExpose({ formRef });
<!-- 任务详情 -->
<el-form-item :label="$t('schedulers_description')" prop="description">
<el-input v-model="form.description" :placeholder="$t('input') + $t('schedulers_description')" autocomplete="off" type="text" />
<el-input
v-model="form.description"
:disabled="form.isUpdate"
:placeholder="$t('input') + $t('schedulers_description')"
autocomplete="off"
type="text"
/>
</el-form-item>
</el-form>
</template>

View File

@ -63,6 +63,7 @@ export function onUpdate(row: any) {
description: row.description,
jobClassName: row.jobClassName,
cronExpression: row.cronExpression,
isUpdate: true,
},
},
draggable: true,

View File

@ -10,6 +10,8 @@ export interface FormItemProps {
jobClassName: string;
// corn表达式
cronExpression: string;
// 是否是更新
isUpdate: boolean;
}
// 添加或修改表单Props