|
@@ -1,50 +1,27 @@
|
|
|
<template>
|
|
<template>
|
|
|
<ele-page flex-table>
|
|
<ele-page flex-table>
|
|
|
- <common-table
|
|
|
|
|
- ref="tableRef"
|
|
|
|
|
- :pageConfig="pageConfig"
|
|
|
|
|
- :columns="columns"
|
|
|
|
|
- :tools="false"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <common-table ref="tableRef" :pageConfig="pageConfig" :columns="columns" :tools="false" :pagination="false"
|
|
|
|
|
+ :datasource="fetchData">
|
|
|
<template #index="{ $index }">
|
|
<template #index="{ $index }">
|
|
|
{{ $index + 1 }}
|
|
{{ $index + 1 }}
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<template #image="{ row }">
|
|
<template #image="{ row }">
|
|
|
- <el-image
|
|
|
|
|
- :src="row.cover"
|
|
|
|
|
- class="w-16 h-16 rounded"
|
|
|
|
|
- fit="cover"
|
|
|
|
|
- :preview-src-list="[row.cover]"
|
|
|
|
|
- preview-teleported
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <el-image :src="row.cover" class="w-16 h-16 rounded" fit="cover" :preview-src-list="[row.cover]"
|
|
|
|
|
+ preview-teleported />
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<template #info="{ row }">
|
|
<template #info="{ row }">
|
|
|
<div>
|
|
<div>
|
|
|
- <div
|
|
|
|
|
- class="font-bold text-blue-500 hover:underline cursor-pointer"
|
|
|
|
|
- >{{ row.bookName }}</div
|
|
|
|
|
- >
|
|
|
|
|
- <div class="text-xs text-gray-500 mt-1"
|
|
|
|
|
- >作者: {{ row.author }}</div
|
|
|
|
|
- >
|
|
|
|
|
- <div class="text-xs text-gray-500"
|
|
|
|
|
- >ISBN: {{ row.isbn }}</div
|
|
|
|
|
- >
|
|
|
|
|
- <div class="text-xs text-gray-500"
|
|
|
|
|
- >出版社: {{ row.publish }}</div
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <div class="font-bold text-blue-500 hover:underline cursor-pointer">{{ row.bookName }}</div>
|
|
|
|
|
+ <div class="text-xs text-gray-500 mt-1">作者: {{ row.author }}</div>
|
|
|
|
|
+ <div class="text-xs text-gray-500">ISBN: {{ row.isbn }}</div>
|
|
|
|
|
+ <div class="text-xs text-gray-500">出版社: {{ row.publish }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<template #isOnSale="{ row }">
|
|
<template #isOnSale="{ row }">
|
|
|
- <el-switch
|
|
|
|
|
- v-model="row.isOnSale"
|
|
|
|
|
- :active-value="1"
|
|
|
|
|
- :inactive-value="0"
|
|
|
|
|
- @change="handleStatusChange(row)"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <el-switch :model-value="row.isOnSale === 1" @change="(val) => handleStatusChange(row, val)" />
|
|
|
</template>
|
|
</template>
|
|
|
</common-table>
|
|
</common-table>
|
|
|
</ele-page>
|
|
</ele-page>
|
|
@@ -77,28 +54,41 @@ const columns = ref([
|
|
|
{ label: '更新时间', prop: 'updateTime', align: 'center', minWidth: 180 }
|
|
{ label: '更新时间', prop: 'updateTime', align: 'center', minWidth: 180 }
|
|
|
]);
|
|
]);
|
|
|
|
|
|
|
|
|
|
+const fetchData = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await proxy.$http.get(pageConfig.pageUrl, {
|
|
|
|
|
+ params: pageConfig.params
|
|
|
|
|
+ });
|
|
|
|
|
+ if (res.data.code === 200) {
|
|
|
|
|
+ return res.data.data || [];
|
|
|
|
|
+ }
|
|
|
|
|
+ return Promise.reject(new Error(res.data.msg || '获取数据失败'));
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ return Promise.reject(e);
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
const reload = () => {
|
|
const reload = () => {
|
|
|
tableRef.value?.reload();
|
|
tableRef.value?.reload();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-const handleStatusChange = (row) => {
|
|
|
|
|
|
|
+const handleStatusChange = (row, val) => {
|
|
|
|
|
+ const newStatus = val ? 1 : 0;
|
|
|
proxy.$http.post('/shop/shopbook/setShelfStatus', {
|
|
proxy.$http.post('/shop/shopbook/setShelfStatus', {
|
|
|
- id: row.id,
|
|
|
|
|
- isOnSale: row.isOnSale
|
|
|
|
|
|
|
+ isbn: row.isbn,
|
|
|
|
|
+ sellStatus: newStatus
|
|
|
})
|
|
})
|
|
|
.then((res) => {
|
|
.then((res) => {
|
|
|
if (res.data.code === 200) {
|
|
if (res.data.code === 200) {
|
|
|
EleMessage.success(
|
|
EleMessage.success(
|
|
|
- `${row.bookName} ${row.isOnSale === 1 ? '已启用' : '已禁用'}`
|
|
|
|
|
|
|
+ `${row.bookName} ${newStatus === 1 ? '已启用' : '已禁用'}`
|
|
|
);
|
|
);
|
|
|
} else {
|
|
} else {
|
|
|
- row.isOnSale = row.isOnSale === 1 ? 0 : 1;
|
|
|
|
|
- EleMessage.error(res.data.msg);
|
|
|
|
|
|
|
+ EleMessage.error(res.data.msg || '操作失败');
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
- .catch((e) => {
|
|
|
|
|
- row.isOnSale = row.isOnSale === 1 ? 0 : 1;
|
|
|
|
|
- EleMessage.error(e.message);
|
|
|
|
|
|
|
+ .catch(() => {
|
|
|
|
|
+ reload();
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|