fixbug: 🐛 缺少更新定时任务接口
This commit is contained in:
parent
3bab8ae601
commit
0c5411b3aa
|
@ -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', {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -63,6 +63,7 @@ export function onUpdate(row: any) {
|
|||
description: row.description,
|
||||
jobClassName: row.jobClassName,
|
||||
cronExpression: row.cronExpression,
|
||||
isUpdate: true,
|
||||
},
|
||||
},
|
||||
draggable: true,
|
||||
|
|
|
@ -10,6 +10,8 @@ export interface FormItemProps {
|
|||
jobClassName: string;
|
||||
// corn表达式
|
||||
cronExpression: string;
|
||||
// 是否是更新
|
||||
isUpdate: boolean;
|
||||
}
|
||||
|
||||
// 添加或修改表单Props
|
||||
|
|
Loading…
Reference in New Issue