feat(order): 更新订单页面表单内容与提示信息
- 修改页面提示标题为"欢迎留言" - 简化表单字段,移除产品选择、参考链接及文件上传功能 - 调整表单布局和标签文案,统一使用"留言标题"和"留言内容" - 更新内容输入框的占位符文本 - 修改必填项验证提示信息,适配新的留言场景
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# 应用模块接口
|
# 应用模块接口
|
||||||
VITE_SERVER_URL=https://server.gxbsnx.com/api
|
VITE_SERVER_URL=https://server.gxbsnx.com/api
|
||||||
API_BASE=https://server.gxbsnx.com/api
|
#API_BASE=https://server.gxbsnx.com/api
|
||||||
|
|
||||||
#API_BASE=http://127.0.0.1:9001/api
|
API_BASE=http://127.0.0.1:9001/api
|
||||||
#VITE_SERVER_URL=http://127.0.0.1:8000/api
|
#VITE_SERVER_URL=http://127.0.0.1:8000/api
|
||||||
|
|||||||
@@ -19,6 +19,21 @@ export async function pageCmsOrder(params: CmsOrderParam) {
|
|||||||
return Promise.reject(new Error(res.message));
|
return Promise.reject(new Error(res.message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function displayCmsOrder(params: CmsOrderParam) {
|
||||||
|
const res = await request.get<ApiResult<PageResult<CmsOrder>>>(
|
||||||
|
'/cms/cms-order/display',
|
||||||
|
{
|
||||||
|
params
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (res.code === 0) {
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
return Promise.reject(new Error(res.message));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询订单列表
|
* 查询订单列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -73,5 +73,6 @@ export interface CmsOrderParam extends PageParam {
|
|||||||
orderId?: number;
|
orderId?: number;
|
||||||
websiteId?: number;
|
websiteId?: number;
|
||||||
isSettled?: boolean;
|
isSettled?: boolean;
|
||||||
|
sceneType?: string;
|
||||||
keywords?: string;
|
keywords?: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,17 +70,30 @@
|
|||||||
<div class="likes-list my2 w-full">
|
<div class="likes-list my2 w-full">
|
||||||
<div v-for="(item,index) in orders" :key="index" class="item flex justify-between bg-gray-50 p-4 mb-2">
|
<div v-for="(item,index) in orders" :key="index" class="item flex justify-between bg-gray-50 p-4 mb-2">
|
||||||
<div class="text-sm">
|
<div class="text-sm">
|
||||||
<div class="avatar flex items-center">
|
<div class="avatar flex">
|
||||||
<el-avatar src="/assets/default-avatar.png"/>
|
<el-avatar src="/assets/default-avatar.png"/>
|
||||||
<div class="nickname flex flex-col ml-2">
|
<div class="nickname flex flex-col ml-2">
|
||||||
<span>{{ item.realName }}</span>
|
<span class="font-bold">{{ item.realName }}</span>
|
||||||
<span class="text-sm text-gray-400">{{ item.createTime }}</span>
|
<span class="text-sm text-gray-400">{{ item.createTime }}</span>
|
||||||
|
<div class="content py-1">{{ item.content }}</div>
|
||||||
|
<div class="content py-1 text-red-500">{{ item.comments }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content py-2">{{ item.content }}</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mt-4 flex justify-end" v-if="total > 0">
|
||||||
|
<el-pagination
|
||||||
|
:current-page="currentPage"
|
||||||
|
:page-size="pageSize"
|
||||||
|
:page-sizes="[5, 10, 20]"
|
||||||
|
background
|
||||||
|
layout="total, sizes, prev, pager, next"
|
||||||
|
:total="total"
|
||||||
|
@current-change="handlePageChange"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -132,6 +145,9 @@ const captcha = ref('');
|
|||||||
const text = ref<string>('');
|
const text = ref<string>('');
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const orders = ref<CmsOrder[]>([])
|
const orders = ref<CmsOrder[]>([])
|
||||||
|
const currentPage = ref(1)
|
||||||
|
const pageSize = ref(5)
|
||||||
|
const total = ref(0)
|
||||||
|
|
||||||
|
|
||||||
const {form, resetFields} = useFormData<CmsOrder>({
|
const {form, resetFields} = useFormData<CmsOrder>({
|
||||||
@@ -217,6 +233,24 @@ const changeCaptcha = async () => {
|
|||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 加载留言列表(带分页)
|
||||||
|
const loadOrders = async () => {
|
||||||
|
try {
|
||||||
|
const response = await pageCmsOrder({
|
||||||
|
isSettled: true,
|
||||||
|
page: currentPage.value,
|
||||||
|
limit: pageSize.value,
|
||||||
|
sort: 'createTime',
|
||||||
|
order: 'desc',
|
||||||
|
sceneType: 'display'
|
||||||
|
})
|
||||||
|
orders.value = response?.list || []
|
||||||
|
total.value = response?.count || 0
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Failed to load orders:', error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 将 SEO 相关的逻辑修改为
|
// 将 SEO 相关的逻辑修改为
|
||||||
const updateSeo = (data: any) => {
|
const updateSeo = (data: any) => {
|
||||||
const title = data?.title || '';
|
const title = data?.title || '';
|
||||||
@@ -262,10 +296,9 @@ const reload = async () => {
|
|||||||
form.email = user.value.email
|
form.email = user.value.email
|
||||||
}
|
}
|
||||||
|
|
||||||
// 留言列表
|
// 重置分页并加载留言列表
|
||||||
pageCmsOrder({isSettled: true}).then(response => {
|
currentPage.value = 1
|
||||||
orders.value = response?.list || []
|
await loadOrders()
|
||||||
})
|
|
||||||
|
|
||||||
changeCaptcha()
|
changeCaptcha()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -340,6 +373,18 @@ const goBack = () => {
|
|||||||
router.back();
|
router.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 分页切换
|
||||||
|
const handlePageChange = (pageNum: number) => {
|
||||||
|
currentPage.value = pageNum
|
||||||
|
loadOrders()
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleSizeChange = (size: number) => {
|
||||||
|
pageSize.value = size
|
||||||
|
currentPage.value = 1
|
||||||
|
loadOrders()
|
||||||
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => route.params.id,
|
() => route.params.id,
|
||||||
(id) => {
|
(id) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user