diff --git a/src/api/ticket.js b/src/api/ticket.js
index 5f2c459..87d4701 100644
--- a/src/api/ticket.js
+++ b/src/api/ticket.js
@@ -5,12 +5,13 @@ import request from "@/utils/request.js";
* @returns {Promise}
*/
-export function getTickerList(count, page, status, orderBy, order, userId) {
+export function getTickerList(count, page, status, orderBy, order, userId, keyword) {
const params = { count, page }
if (status !== undefined && status !== '') params.status = status
if (orderBy) params.orderBy = orderBy
if (order) params.order = order
if (userId) params.user_id = userId
+ if (keyword) params.keyword = keyword
console.log('工单列表请求参数:', params) // 调试日志
return request.get('/api/v1/admin/work_order/list', params)
}
diff --git a/src/views/ticket/TicketList.vue b/src/views/ticket/TicketList.vue
index bcb3956..d918b57 100644
--- a/src/views/ticket/TicketList.vue
+++ b/src/views/ticket/TicketList.vue
@@ -46,6 +46,19 @@
+
+
+
+
+
+
刷新
@@ -187,6 +200,10 @@ const isLoading = ref(false)
const ticketList = ref([])
const activeStatus = ref('pending') // 默认选中"待处理"
+// 关键词搜索
+const searchKeyword = ref('')
+const keywordSearchTimer = ref(null)
+
// 用户搜索
const userSearchKeyword = ref('')
const userList = ref([])
@@ -248,7 +265,8 @@ const fetchTicketList = async () => {
statusParam,
sortBy.value,
sortOrder.value,
- selectedUser.value?.user_id
+ selectedUser.value?.user_id,
+ searchKeyword.value.trim()
)
if (res.code === 200) {
@@ -348,6 +366,17 @@ const clearUserFilter = () => {
fetchTicketList()
}
+// 关键词搜索
+const handleKeywordSearch = () => {
+ if (keywordSearchTimer.value) {
+ clearTimeout(keywordSearchTimer.value)
+ }
+ keywordSearchTimer.value = setTimeout(() => {
+ currentPage.value = 1
+ fetchTicketList()
+ }, 300)
+}
+
// 按状态过滤
const filterByStatus = (status) => {
if (activeStatus.value === status) return
@@ -479,6 +508,9 @@ onBeforeUnmount(() => {
if (userSearchTimer.value) {
clearTimeout(userSearchTimer.value)
}
+ if (keywordSearchTimer.value) {
+ clearTimeout(keywordSearchTimer.value)
+ }
})