正在显示
6 个修改的文件
包含
20 行增加
和
9 行删除
| @@ -25,7 +25,7 @@ class AsideTicketController extends BaseController | @@ -25,7 +25,7 @@ class AsideTicketController extends BaseController | ||
| 25 | public function index(AsideTicketListRequest $request) | 25 | public function index(AsideTicketListRequest $request) |
| 26 | { | 26 | { |
| 27 | $validated = $request->validated(); | 27 | $validated = $request->validated(); |
| 28 | - $lists = Tickets::with([ | 28 | + $query = Tickets::with([ |
| 29 | 'logs.engineer', | 29 | 'logs.engineer', |
| 30 | 'project.pm', | 30 | 'project.pm', |
| 31 | 'project.projectV6', | 31 | 'project.projectV6', |
| @@ -66,9 +66,15 @@ class AsideTicketController extends BaseController | @@ -66,9 +66,15 @@ class AsideTicketController extends BaseController | ||
| 66 | ->orWhere('company_name', 'like', '%' . $search . '%'); | 66 | ->orWhere('company_name', 'like', '%' . $search . '%'); |
| 67 | }); | 67 | }); |
| 68 | }); | 68 | }); |
| 69 | - }) | ||
| 70 | - ->orderBy('id', 'desc') | ||
| 71 | - ->paginate($this->row, ['*'], 'page', $this->page); | 69 | + }); |
| 70 | + | ||
| 71 | + // 添加排序功能 | ||
| 72 | + $sortField = $request->input('sort_field', 'plan_end_at'); | ||
| 73 | + $sortOrder = strtolower($request->input('sort_order', 'asc')); | ||
| 74 | + $query->orderBy($sortField, $sortOrder); | ||
| 75 | + // 添加次要排序:按状态升序排列 | ||
| 76 | + $query->orderBy('status', 'asc'); | ||
| 77 | + $lists = $query->paginate($this->row, ['*'], 'page', $this->page); | ||
| 72 | $this->response('success', Code::SUCCESS, $lists); | 78 | $this->response('success', Code::SUCCESS, $lists); |
| 73 | } | 79 | } |
| 74 | 80 |
| @@ -95,6 +95,8 @@ class AsideTicketLogController extends BaseController | @@ -95,6 +95,8 @@ class AsideTicketLogController extends BaseController | ||
| 95 | if ($project->wechat_switch && !$ticket->close_wechat) | 95 | if ($project->wechat_switch && !$ticket->close_wechat) |
| 96 | $project->pushWechatGroupMsg("工单(ID:{$ticket->id})已全部完成,请访问查看详情!"); | 96 | $project->pushWechatGroupMsg("工单(ID:{$ticket->id})已全部完成,请访问查看详情!"); |
| 97 | $ticket->pushDing('finish'); | 97 | $ticket->pushDing('finish'); |
| 98 | + }else{ | ||
| 99 | + $ticket->status = Tickets::STATUS_YANSHOU; | ||
| 98 | } | 100 | } |
| 99 | } | 101 | } |
| 100 | $ticket->save(); | 102 | $ticket->save(); |
| @@ -24,7 +24,7 @@ class TicketListRequest extends FormRequest | @@ -24,7 +24,7 @@ class TicketListRequest extends FormRequest | ||
| 24 | public function rules() | 24 | public function rules() |
| 25 | { | 25 | { |
| 26 | return [ | 26 | return [ |
| 27 | - 'status' => 'nullable|in:0,1,2,3|integer', | 27 | + 'status' => 'nullable|in:0,1,2,3,9|integer', |
| 28 | 'search' => 'nullable|string', // 搜索关键词 | 28 | 'search' => 'nullable|string', // 搜索关键词 |
| 29 | 'page' => 'nullable|integer', | 29 | 'page' => 'nullable|integer', |
| 30 | 'size' => 'nullable|integer', | 30 | 'size' => 'nullable|integer', |
| @@ -25,12 +25,14 @@ class AsideTicketListRequest extends FormRequest | @@ -25,12 +25,14 @@ class AsideTicketListRequest extends FormRequest | ||
| 25 | { | 25 | { |
| 26 | return [ | 26 | return [ |
| 27 | 'project_id' => 'nullable|string', | 27 | 'project_id' => 'nullable|string', |
| 28 | - 'status' => 'nullable|in:0,1,2,3|integer', | 28 | + 'status' => 'nullable|in:0,1,2,3,9|integer', |
| 29 | 'star' => 'nullable|in:1,2,3|integer', | 29 | 'star' => 'nullable|in:1,2,3|integer', |
| 30 | 'search' => 'nullable|string', // 搜索关键词 | 30 | 'search' => 'nullable|string', // 搜索关键词 |
| 31 | 'engineer_id' => 'nullable|integer', // 工程师ID | 31 | 'engineer_id' => 'nullable|integer', // 工程师ID |
| 32 | 'page' => 'nullable|integer', | 32 | 'page' => 'nullable|integer', |
| 33 | 'size' => 'nullable|integer', | 33 | 'size' => 'nullable|integer', |
| 34 | + 'sort_field' => 'nullable|in:id,plan_end_at', | ||
| 35 | + 'sort_order' => 'nullable|in:asc,desc', | ||
| 34 | ]; | 36 | ]; |
| 35 | } | 37 | } |
| 36 | } | 38 | } |
| @@ -27,7 +27,7 @@ class AsideTicketUpdateRequest extends FormRequest | @@ -27,7 +27,7 @@ class AsideTicketUpdateRequest extends FormRequest | ||
| 27 | 'title' => 'nullable|string', | 27 | 'title' => 'nullable|string', |
| 28 | 'content' => 'nullable|string', | 28 | 'content' => 'nullable|string', |
| 29 | 'files' => 'nullable|array', | 29 | 'files' => 'nullable|array', |
| 30 | - 'status' => 'nullable|in:0,1,2,3|integer', | 30 | + 'status' => 'nullable|in:0,1,2,3,9|integer', |
| 31 | 'engineer_ids' => 'nullable|array', | 31 | 'engineer_ids' => 'nullable|array', |
| 32 | 'star' => 'nullable|in:1,2,3|integer', | 32 | 'star' => 'nullable|in:1,2,3|integer', |
| 33 | 'plan_end_at' => 'nullable|date', | 33 | 'plan_end_at' => 'nullable|date', |
| @@ -15,8 +15,9 @@ class Tickets extends Base | @@ -15,8 +15,9 @@ class Tickets extends Base | ||
| 15 | 15 | ||
| 16 | const STATUS_PEDDING = 0; // 待处理 | 16 | const STATUS_PEDDING = 0; // 待处理 |
| 17 | const STATUS_PROCESSING = 1; // 处理中 | 17 | const STATUS_PROCESSING = 1; // 处理中 |
| 18 | - const STATUS_COMPLETED = 2; // 已完成 | ||
| 19 | - const STATUS_CLOSED = 3; // 已关闭,已失效 | 18 | + const STATUS_YANSHOU = 2; // 验收中 |
| 19 | + const STATUS_COMPLETED = 3; // 已完成 | ||
| 20 | + const STATUS_CLOSED = 9; // 已关闭,已失效,审核不通过,结束工单设置大一点,方便中途又要加状态 | ||
| 20 | 21 | ||
| 21 | /** | 22 | /** |
| 22 | * @return void | 23 | * @return void |
-
请 注册 或 登录 后发表评论