wujingjing
2024-08-29 19b778d2d04bed31ce2e1f167c6ff2fda9906421
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { ElMessage, ElMessageBox } from 'element-plus';
import { UseStatusEnum } from '/@/views/types';
import request from '/@/utils/request';
/**
 * 改变当前行的使用状态
 * @param row
 * @param updateUseStatusApi
 */
export const changeStatus = (row: any, updateUseStatusApi, req: any = request, label?: string) => {
    const targetStatus = row.UseStatus;
    // 并不需要立马改变, row.UseStatus 为原始值
    row.UseStatus = row.UseStatus === UseStatusEnum.Disable ? UseStatusEnum.Enable : UseStatusEnum.Disable;
    const confirmKeyword = targetStatus === UseStatusEnum.Enable ? '启用' : '禁用';
    const tip = row.Name ? `确定${confirmKeyword}:【${row.Name}】?` : `确定${confirmKeyword}${label}?`;
    ElMessageBox.confirm(tip, '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
    }).then(async () => {
        const res = await updateUseStatusApi({ ID: row.ID, UseStatus: targetStatus }, req);
        if (res?.Code === 0) {
            if (!res.Data) {
                ElMessage.error('状态设置失败');
            } else {
                row.UseStatus = row.UseStatus === UseStatusEnum.Disable ? UseStatusEnum.Enable : UseStatusEnum.Disable;
                targetStatus === UseStatusEnum.Disable ? ElMessage.warning('已禁用') : ElMessage.success('已启用');
            }
        } else {
            ElMessage.error('状态设置失败' + (res?.Message ? `,${JSON.stringify(res.Message)}` : ''));
        }
    });
};