import * as resourceServices from '@12333/services/api/Resource';
|
import Taro from '@tarojs/taro';
|
import { Message } from '@12333/utils';
|
import { ResourceStatus, ResourceOperateBtnStatus } from '@12333/constants';
|
|
type UseResourceActionsOptions = {
|
onStopSuccess?: () => any;
|
onDeleteSuccess?: () => any;
|
};
|
|
export function useResourceActions(options: UseResourceActionsOptions = {}) {
|
const { onStopSuccess, onDeleteSuccess } = options;
|
|
function handleEdit(item: API.GetFrontResourceList) {
|
Taro.navigateTo({
|
url: `${RouterPath.publishResource}?id=${item.id}&resourceOperateBtnStatus=${ResourceOperateBtnStatus.Edit}`,
|
});
|
}
|
|
function handleGoDetail(item: API.GetFrontResourceList) {
|
Taro.navigateTo({
|
url: `${RouterPath.resourceDetail}?id=${item.id}`,
|
});
|
}
|
|
async function handleStop(item: API.GetFrontResourceList) {
|
try {
|
await Message.confirm({
|
message: '确认停止发布该资源吗?',
|
});
|
const res = await resourceServices.setResourceStatus({
|
id: item.id,
|
status: ResourceStatus.OffShelf,
|
});
|
if (res) {
|
Message.success('已停止发布');
|
onStopSuccess?.();
|
}
|
} catch (error) {}
|
}
|
|
function handleRePublish(item: API.GetFrontResourceList) {
|
handleEdit(item);
|
}
|
|
async function handleCopy(item: API.GetFrontResourceList) {
|
Taro.navigateTo({
|
url: `${RouterPath.publishResource}?id=${item.id}&resourceOperateBtnStatus=${ResourceOperateBtnStatus.Copy}`,
|
});
|
}
|
|
async function handleDelete(row: API.GetFrontResourceList) {
|
try {
|
await Message.confirm();
|
const res = await resourceServices.deleteResource({
|
id: row.id,
|
});
|
if (res) {
|
onDeleteSuccess?.();
|
Message.success('操作成功');
|
}
|
} catch (error) {}
|
}
|
|
return {
|
handleEdit,
|
handleGoDetail,
|
handleStop,
|
handleRePublish,
|
handleCopy,
|
handleDelete,
|
};
|
}
|