添加所有按钮权限管理逻辑(未测试)

This commit is contained in:
葛林强 2026-02-22 11:04:07 +08:00
parent a83e32eafd
commit 837129e912
40 changed files with 286 additions and 115 deletions

View File

@ -1,5 +1,6 @@
package org.wcs.serve.controller.app; package org.wcs.serve.controller.app;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -33,6 +34,7 @@ public class StackerController {
* @param stackerName 堆垛机名称 * @param stackerName 堆垛机名称
* @return 查询结果 * @return 查询结果
*/ */
@SaCheckPermission("stackerManage:queryStacker")
@GetMapping("/queryStackerInfo") @GetMapping("/queryStackerInfo")
public AppServeDataResponse<List<QueryStackerInfoVo>> queryStackerInfo(@RequestParam("stackerName") String stackerName) { public AppServeDataResponse<List<QueryStackerInfoVo>> queryStackerInfo(@RequestParam("stackerName") String stackerName) {
return stackerService.queryStackerInfo(stackerName); return stackerService.queryStackerInfo(stackerName);
@ -43,6 +45,7 @@ public class StackerController {
* @param addStackerReq 添加堆垛机请求参数 * @param addStackerReq 添加堆垛机请求参数
* @return 添加结果 * @return 添加结果
*/ */
@SaCheckPermission("stackerManage:addStacker")
@PostMapping("/addStackerInfo") @PostMapping("/addStackerInfo")
public AppServeResponse addStackerInfo(@RequestBody @Validated AddStackerReq addStackerReq) { public AppServeResponse addStackerInfo(@RequestBody @Validated AddStackerReq addStackerReq) {
return stackerService.addStacker(addStackerReq); return stackerService.addStacker(addStackerReq);
@ -53,6 +56,7 @@ public class StackerController {
* @param updateStackerInfoReq 更新堆垛机请求参数 * @param updateStackerInfoReq 更新堆垛机请求参数
* @return 更新结果 * @return 更新结果
*/ */
@SaCheckPermission("stackerManage:editStacker")
@PostMapping("/updateStackerInfo") @PostMapping("/updateStackerInfo")
public AppServeResponse updateStackerInfo(@RequestBody @Validated UpdateStackerInfoReq updateStackerInfoReq) { public AppServeResponse updateStackerInfo(@RequestBody @Validated UpdateStackerInfoReq updateStackerInfoReq) {
return stackerService.updateStackerInfo(updateStackerInfoReq); return stackerService.updateStackerInfo(updateStackerInfoReq);
@ -63,6 +67,7 @@ public class StackerController {
* @param stackerId 堆垛机ID * @param stackerId 堆垛机ID
* @return 查询结果 * @return 查询结果
*/ */
@SaCheckPermission("stackerManage:queryStand")
@GetMapping("/queryStackerStand") @GetMapping("/queryStackerStand")
public AppServeDataResponse<List<QueryStackerStandVo>> queryStackerStand(@RequestParam("stackerId") @NotNull(message = "堆垛机ID不能为空") Integer stackerId) { public AppServeDataResponse<List<QueryStackerStandVo>> queryStackerStand(@RequestParam("stackerId") @NotNull(message = "堆垛机ID不能为空") Integer stackerId) {
return stackerService.queryStackerStand(stackerId); return stackerService.queryStackerStand(stackerId);
@ -73,6 +78,7 @@ public class StackerController {
* @param addOrUpdateStackerStandReq 堆垛机站台 * @param addOrUpdateStackerStandReq 堆垛机站台
* @return 操作结果 * @return 操作结果
*/ */
@SaCheckPermission("stackerManage:editStand")
@PostMapping("/addOrUpdateStackerStand") @PostMapping("/addOrUpdateStackerStand")
public AppServeResponse addOrUpdateStackerStand(@RequestBody @Validated AddOrUpdateStackerStandReq addOrUpdateStackerStandReq) { public AppServeResponse addOrUpdateStackerStand(@RequestBody @Validated AddOrUpdateStackerStandReq addOrUpdateStackerStandReq) {
return stackerService.addOrUpdateStackerStand(addOrUpdateStackerStandReq); return stackerService.addOrUpdateStackerStand(addOrUpdateStackerStandReq);
@ -83,6 +89,7 @@ public class StackerController {
* @param standId 堆垛机站台ID * @param standId 堆垛机站台ID
* @return 操作结果 * @return 操作结果
*/ */
@SaCheckPermission("stackerManage:deleteStand")
@DeleteMapping("/deleteWithStandId/{standId}") @DeleteMapping("/deleteWithStandId/{standId}")
public AppServeResponse deleteWithStandId(@PathVariable @NotBlank(message = "堆垛机站台ID不能为空") String standId) { public AppServeResponse deleteWithStandId(@PathVariable @NotBlank(message = "堆垛机站台ID不能为空") String standId) {
return stackerService.deleteWithStandId(standId); return stackerService.deleteWithStandId(standId);
@ -92,6 +99,7 @@ public class StackerController {
* 获取堆垛机运行信息 * 获取堆垛机运行信息
* @return 堆垛机运行信息 * @return 堆垛机运行信息
*/ */
@SaCheckPermission("stackerManage:queryStackerStatus")
@GetMapping("/getStackerRunningInfo") @GetMapping("/getStackerRunningInfo")
public AppServeDataResponse<List<StackerStatusVo>> getStackerRunningInfo() { public AppServeDataResponse<List<StackerStatusVo>> getStackerRunningInfo() {
return stackerService.getStackerRunningInfo(); return stackerService.getStackerRunningInfo();

View File

@ -1,5 +1,6 @@
package org.wcs.serve.controller.app; package org.wcs.serve.controller.app;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -35,6 +36,7 @@ public class StackerLocationController {
* @param pageIndex 页面序号 * @param pageIndex 页面序号
* @return 查询结果 * @return 查询结果
*/ */
@SaCheckPermission("stackerLocationManage:queryTable")
@PostMapping("queryStackerLocation") @PostMapping("queryStackerLocation")
public AppServeDataResponse<PageDataResponse<QueryStackerLocationVo>> queryStackerLocation(@RequestBody QueryStackerLocationReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<QueryStackerLocationVo>> queryStackerLocation(@RequestBody QueryStackerLocationReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) {
return stackerLocationService.queryStackerLocation(request, pageSize, pageIndex); return stackerLocationService.queryStackerLocation(request, pageSize, pageIndex);
@ -45,6 +47,7 @@ public class StackerLocationController {
* @param request 请求参数 * @param request 请求参数
* @param response 响应 * @param response 响应
*/ */
@SaCheckPermission("stackerLocationManage:export")
@PostMapping("downloadStackerLocation") @PostMapping("downloadStackerLocation")
public void downloadStackerLocation(HttpServletResponse response, @RequestBody QueryStackerLocationReq request) { public void downloadStackerLocation(HttpServletResponse response, @RequestBody QueryStackerLocationReq request) {
stackerLocationService.downloadStackerLocation(response, request); stackerLocationService.downloadStackerLocation(response, request);
@ -55,6 +58,7 @@ public class StackerLocationController {
* @param request 新增参数 * @param request 新增参数
* @return 新增结果 * @return 新增结果
*/ */
@SaCheckPermission("stackerLocationManage:add")
@PostMapping("addStackerLocation") @PostMapping("addStackerLocation")
public AppServeResponse addStackerLocation(@RequestBody @Validated AddStackerLocationReq request) { public AppServeResponse addStackerLocation(@RequestBody @Validated AddStackerLocationReq request) {
return stackerLocationService.addStackerLocation(request); return stackerLocationService.addStackerLocation(request);
@ -65,6 +69,7 @@ public class StackerLocationController {
* @param request 新增参数 * @param request 新增参数
* @return 新增结果 * @return 新增结果
*/ */
@SaCheckPermission("stackerLocationManage:add")
@PostMapping("addStackerLocations") @PostMapping("addStackerLocations")
public AppServeResponse addStackerLocations(@RequestBody @Validated AddManyStackerLocationsReq request) { public AppServeResponse addStackerLocations(@RequestBody @Validated AddManyStackerLocationsReq request) {
return stackerLocationService.addStackerLocations(request); return stackerLocationService.addStackerLocations(request);
@ -75,6 +80,7 @@ public class StackerLocationController {
* @param request 修改参数 * @param request 修改参数
* @return 修改结果 * @return 修改结果
*/ */
@SaCheckPermission("stackerLocationManage:edit")
@PostMapping("updateStackerLocation") @PostMapping("updateStackerLocation")
public AppServeResponse updateStackerLocation(@RequestBody @Validated UpdateStackerLocationReq request) { public AppServeResponse updateStackerLocation(@RequestBody @Validated UpdateStackerLocationReq request) {
return stackerLocationService.updateStackerLocation(request); return stackerLocationService.updateStackerLocation(request);
@ -85,6 +91,7 @@ public class StackerLocationController {
* @param laneId 巷道号 * @param laneId 巷道号
* @return 查询结果 * @return 查询结果
*/ */
@SaCheckPermission("stackerLocationManage:queryMap")
@GetMapping("queryStackerLocationListByStackerIdAndLaneId") @GetMapping("queryStackerLocationListByStackerIdAndLaneId")
public AppServeDataResponse<List<QueryStackerLocationVo>> queryStackerLocationListByStackerIdAndLaneId(@RequestParam @NotNull(message = "设备号不能为空") Integer stackerId, @RequestParam @NotNull(message = "巷道号不能为空") Integer laneId) { public AppServeDataResponse<List<QueryStackerLocationVo>> queryStackerLocationListByStackerIdAndLaneId(@RequestParam @NotNull(message = "设备号不能为空") Integer stackerId, @RequestParam @NotNull(message = "巷道号不能为空") Integer laneId) {
return stackerLocationService.queryStackerLocationListByStackerIdAndLaneId(stackerId, laneId); return stackerLocationService.queryStackerLocationListByStackerIdAndLaneId(stackerId, laneId);
@ -95,11 +102,17 @@ public class StackerLocationController {
* @param stackerId 设备号 * @param stackerId 设备号
* @return 巷道列表 * @return 巷道列表
*/ */
@SaCheckPermission("stackerLocationManage:queryMap")
@GetMapping("queryStackerLocationLaneList") @GetMapping("queryStackerLocationLaneList")
public AppServeDataResponse<List<Integer>> queryStackerLocationLaneList(@RequestParam @NotNull(message = "设备号不能为空") Integer stackerId) { public AppServeDataResponse<List<Integer>> queryStackerLocationLaneList(@RequestParam @NotNull(message = "设备号不能为空") Integer stackerId) {
return stackerLocationService.queryStackerLocationLaneList(stackerId); return stackerLocationService.queryStackerLocationLaneList(stackerId);
} }
/**
* 查询堆垛机库位设备列表
* @return 设备列表
*/
@SaCheckPermission("stackerLocationManage:queryMap")
@GetMapping("queryStackerLocationStackerIdList") @GetMapping("queryStackerLocationStackerIdList")
public AppServeDataResponse<List<Integer>> queryStackerLocationStackerIdList() { public AppServeDataResponse<List<Integer>> queryStackerLocationStackerIdList() {
return stackerLocationService.queryStackerLocationStackerIdList(); return stackerLocationService.queryStackerLocationStackerIdList();

View File

@ -1,6 +1,7 @@
package org.wcs.serve.controller.app; package org.wcs.serve.controller.app;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -37,6 +38,7 @@ public class StockComposeTaskController {
* @param pageIndex 页码 * @param pageIndex 页码
* @return 查询结果 * @return 查询结果
*/ */
@SaCheckPermission("stockComposeTask:query")
@PostMapping("/query") @PostMapping("/query")
public AppServeDataResponse<PageDataResponse<AppStockComposeTaskVo>> query(@RequestBody QueryStockComposeTaskReq queryTaskReq, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<AppStockComposeTaskVo>> query(@RequestBody QueryStockComposeTaskReq queryTaskReq, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) {
return stockComposeTaskService.query(queryTaskReq, pageSize, pageIndex); return stockComposeTaskService.query(queryTaskReq, pageSize, pageIndex);
@ -49,6 +51,7 @@ public class StockComposeTaskController {
* @param pageIndex 页码 * @param pageIndex 页码
* @return 查询结果 * @return 查询结果
*/ */
@SaCheckPermission("stockComposeTaskBak:query")
@PostMapping("/queryBak") @PostMapping("/queryBak")
public AppServeDataResponse<PageDataResponse<AppStockComposeTaskVo>> queryBak(@RequestBody QueryStockComposeTaskReq queryTaskReq, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<AppStockComposeTaskVo>> queryBak(@RequestBody QueryStockComposeTaskReq queryTaskReq, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) {
return stockComposeTaskService.queryBak(queryTaskReq, pageSize, pageIndex); return stockComposeTaskService.queryBak(queryTaskReq, pageSize, pageIndex);
@ -60,6 +63,7 @@ public class StockComposeTaskController {
* @param response 响应 * @param response 响应
* @param queryTaskReq 查询任务请求 * @param queryTaskReq 查询任务请求
*/ */
@SaCheckPermission("stockComposeTask:export")
@PostMapping("/downLoadTask") @PostMapping("/downLoadTask")
public void downLoadTask(HttpServletResponse response, @RequestBody QueryStockComposeTaskReq queryTaskReq) { public void downLoadTask(HttpServletResponse response, @RequestBody QueryStockComposeTaskReq queryTaskReq) {
stockComposeTaskService.downLoadTask(response, queryTaskReq); stockComposeTaskService.downLoadTask(response, queryTaskReq);
@ -71,6 +75,7 @@ public class StockComposeTaskController {
* @param response 响应 * @param response 响应
* @param queryTaskReq 查询任务请求 * @param queryTaskReq 查询任务请求
*/ */
@SaCheckPermission("stockComposeTaskBak:export")
@PostMapping("/downLoadTaskBak") @PostMapping("/downLoadTaskBak")
public void downLoadTaskBak(HttpServletResponse response, @RequestBody QueryStockComposeTaskReq queryTaskReq) { public void downLoadTaskBak(HttpServletResponse response, @RequestBody QueryStockComposeTaskReq queryTaskReq) {
stockComposeTaskService.downLoadTaskBak(response, queryTaskReq); stockComposeTaskService.downLoadTaskBak(response, queryTaskReq);
@ -82,6 +87,7 @@ public class StockComposeTaskController {
* @param addTaskReq 添加任务参数 * @param addTaskReq 添加任务参数
* @return 添加结果 * @return 添加结果
*/ */
@SaCheckPermission("stockComposeTask:add")
@PostMapping("/addTask") @PostMapping("/addTask")
public AppServeResponse addTask(@RequestBody @Validated AddStockComposeTaskReq addTaskReq) { public AppServeResponse addTask(@RequestBody @Validated AddStockComposeTaskReq addTaskReq) {
return stockComposeTaskService.addTask(addTaskReq); return stockComposeTaskService.addTask(addTaskReq);
@ -92,6 +98,7 @@ public class StockComposeTaskController {
* @param taskId 任务ID * @param taskId 任务ID
* @return 取消结果 * @return 取消结果
*/ */
@SaCheckPermission("stockComposeTask:edit")
@PutMapping("/cancelTask") @PutMapping("/cancelTask")
public AppServeResponse cancelTask(@RequestParam String taskId) { public AppServeResponse cancelTask(@RequestParam String taskId) {
return stockComposeTaskService.cancelTask(taskId); return stockComposeTaskService.cancelTask(taskId);
@ -102,6 +109,7 @@ public class StockComposeTaskController {
* @param taskId 任务ID * @param taskId 任务ID
* @return 完成结果 * @return 完成结果
*/ */
@SaCheckPermission("stockComposeTask:edit")
@PutMapping("/completeTask") @PutMapping("/completeTask")
public AppServeResponse completeTask(@RequestParam String taskId) { public AppServeResponse completeTask(@RequestParam String taskId) {
return stockComposeTaskService.completeTask(taskId); return stockComposeTaskService.completeTask(taskId);
@ -112,6 +120,7 @@ public class StockComposeTaskController {
* @param taskId 任务ID * @param taskId 任务ID
* @return 重置结果 * @return 重置结果
*/ */
@SaCheckPermission("stockComposeTask:edit")
@PutMapping("/resetTask") @PutMapping("/resetTask")
public AppServeResponse resetTask(@RequestParam String taskId) { public AppServeResponse resetTask(@RequestParam String taskId) {
return stockComposeTaskService.resetTask(taskId); return stockComposeTaskService.resetTask(taskId);
@ -122,6 +131,7 @@ public class StockComposeTaskController {
* @param reporterTaskStatusReq 状态报告参数 * @param reporterTaskStatusReq 状态报告参数
* @return 状态报告结果 * @return 状态报告结果
*/ */
@SaCheckPermission("stockComposeTask:upload")
@PostMapping("/reporterTaskCompleted") @PostMapping("/reporterTaskCompleted")
public AppServeResponse reporterTaskCompleted(@RequestBody @Validated ReporterTaskStatusReq reporterTaskStatusReq) { public AppServeResponse reporterTaskCompleted(@RequestBody @Validated ReporterTaskStatusReq reporterTaskStatusReq) {
return stockComposeTaskService.reporterTaskCompleted(reporterTaskStatusReq); return stockComposeTaskService.reporterTaskCompleted(reporterTaskStatusReq);
@ -132,6 +142,7 @@ public class StockComposeTaskController {
* @param reporterTaskStatusReq 状态报告参数 * @param reporterTaskStatusReq 状态报告参数
* @return 状态报告结果 * @return 状态报告结果
*/ */
@SaCheckPermission("stockComposeTask:upload")
@PostMapping("/reporterTaskCancel") @PostMapping("/reporterTaskCancel")
public AppServeResponse reporterTaskCancel(@RequestBody @Validated ReporterTaskStatusReq reporterTaskStatusReq) { public AppServeResponse reporterTaskCancel(@RequestBody @Validated ReporterTaskStatusReq reporterTaskStatusReq) {
return stockComposeTaskService.reporterTaskCancel(reporterTaskStatusReq); return stockComposeTaskService.reporterTaskCancel(reporterTaskStatusReq);
@ -142,6 +153,7 @@ public class StockComposeTaskController {
* @param reporterTaskStatusReq 状态报告参数 * @param reporterTaskStatusReq 状态报告参数
* @return 状态报告结果 * @return 状态报告结果
*/ */
@SaCheckPermission("stockComposeTaskBak:upload")
@PostMapping("/reporterTaskBakCompleted") @PostMapping("/reporterTaskBakCompleted")
public AppServeResponse reporterTaskBakCompleted(@RequestBody @Validated ReporterTaskStatusReq reporterTaskStatusReq) { public AppServeResponse reporterTaskBakCompleted(@RequestBody @Validated ReporterTaskStatusReq reporterTaskStatusReq) {
return stockComposeTaskService.reporterTaskBakCompleted(reporterTaskStatusReq); return stockComposeTaskService.reporterTaskBakCompleted(reporterTaskStatusReq);
@ -152,6 +164,7 @@ public class StockComposeTaskController {
* @param reporterTaskStatusReq 状态报告参数 * @param reporterTaskStatusReq 状态报告参数
* @return 状态报告结果 * @return 状态报告结果
*/ */
@SaCheckPermission("stockComposeTaskBak:upload")
@PostMapping("/reporterTaskBakCancel") @PostMapping("/reporterTaskBakCancel")
public AppServeResponse reporterTaskBakCancel(@RequestBody @Validated ReporterTaskStatusReq reporterTaskStatusReq) { public AppServeResponse reporterTaskBakCancel(@RequestBody @Validated ReporterTaskStatusReq reporterTaskStatusReq) {
return stockComposeTaskService.reporterTaskBakCancel(reporterTaskStatusReq); return stockComposeTaskService.reporterTaskBakCancel(reporterTaskStatusReq);

View File

@ -1,6 +1,7 @@
package org.wcs.serve.controller.app; package org.wcs.serve.controller.app;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -35,11 +36,16 @@ public class StockScanController {
* @param pageIndex 当前页码 * @param pageIndex 当前页码
* @return 查询结果 * @return 查询结果
*/ */
@SaCheckPermission("stockScanManage:query")
@PostMapping("/queryWithPage") @PostMapping("/queryWithPage")
public AppServeDataResponse<PageDataResponse<AppStockScanVo>> queryStockScan(@RequestBody QueryStockScanReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<AppStockScanVo>> queryStockScan(@RequestBody QueryStockScanReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) {
return stockScanService.queryStockScan(request, pageSize, pageIndex); return stockScanService.queryStockScan(request, pageSize, pageIndex);
} }
/**
* 查询所有扫码配置信息
* @return 查询结果
*/
@GetMapping("/queryAll") @GetMapping("/queryAll")
public AppServeDataResponse<List<AppStockScanVo>> queryStockScanAll() { public AppServeDataResponse<List<AppStockScanVo>> queryStockScanAll() {
return stockScanService.queryStockScan(); return stockScanService.queryStockScan();
@ -59,6 +65,7 @@ public class StockScanController {
* @param request 新增参数 * @param request 新增参数
* @return 新增结果 * @return 新增结果
*/ */
@SaCheckPermission("stockScanManage:add")
@PostMapping("/addStockScan") @PostMapping("/addStockScan")
public AppServeResponse addStockScan(@RequestBody @Validated AddStockScanReq request) { public AppServeResponse addStockScan(@RequestBody @Validated AddStockScanReq request) {
return stockScanService.addStockScan(request); return stockScanService.addStockScan(request);
@ -69,6 +76,7 @@ public class StockScanController {
* @param request 修改参数 * @param request 修改参数
* @return 修改结果 * @return 修改结果
*/ */
@SaCheckPermission("stockScanManage:edit")
@PostMapping("/updateStockScan") @PostMapping("/updateStockScan")
public AppServeResponse updateStockScan(@RequestBody @Validated UpdateStockScanReq request) { public AppServeResponse updateStockScan(@RequestBody @Validated UpdateStockScanReq request) {
return stockScanService.updateStockScan(request); return stockScanService.updateStockScan(request);
@ -79,6 +87,7 @@ public class StockScanController {
* @param stockScanId 仓库扫码ID * @param stockScanId 仓库扫码ID
* @return 删除结果 * @return 删除结果
*/ */
@SaCheckPermission("stockScanManage:delete")
@DeleteMapping("/deleteStockScan") @DeleteMapping("/deleteStockScan")
public AppServeResponse deleteStockScan(@RequestParam("stockScanId") @NotBlank(message = "仓库扫码ID不能为空") String stockScanId) { public AppServeResponse deleteStockScan(@RequestParam("stockScanId") @NotBlank(message = "仓库扫码ID不能为空") String stockScanId) {
return stockScanService.deleteStockScan(stockScanId); return stockScanService.deleteStockScan(stockScanId);

View File

@ -1,6 +1,7 @@
package org.wcs.serve.controller.app; package org.wcs.serve.controller.app;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -29,6 +30,7 @@ public class StockSingleTaskController {
* @param pageIndex 页码 * @param pageIndex 页码
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("stockSingleTask:query")
@PostMapping("/query") @PostMapping("/query")
public AppServeDataResponse<PageDataResponse<AppStockSingleTaskVo>> query(@RequestBody QueryStockSingleTaskReq request, @RequestParam("pageSize") @NotNull(message = "分页单页大小不能为空") Integer pageSize , @RequestParam("pageIndex") @NotNull(message = "分页页码不能为空") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<AppStockSingleTaskVo>> query(@RequestBody QueryStockSingleTaskReq request, @RequestParam("pageSize") @NotNull(message = "分页单页大小不能为空") Integer pageSize , @RequestParam("pageIndex") @NotNull(message = "分页页码不能为空") Integer pageIndex) {
return stockSingleTaskService.query(request, pageSize, pageIndex); return stockSingleTaskService.query(request, pageSize, pageIndex);
@ -41,6 +43,7 @@ public class StockSingleTaskController {
* @param pageIndex 页码 * @param pageIndex 页码
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("stockSingleTaskBak:query")
@PostMapping("/queryBak") @PostMapping("/queryBak")
public AppServeDataResponse<PageDataResponse<AppStockSingleTaskVo>> queryBak(@RequestBody QueryStockSingleTaskReq request, @RequestParam("pageSize") @NotNull(message = "分页单页大小不能为空") Integer pageSize , @RequestParam("pageIndex") @NotNull(message = "分页页码不能为空") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<AppStockSingleTaskVo>> queryBak(@RequestBody QueryStockSingleTaskReq request, @RequestParam("pageSize") @NotNull(message = "分页单页大小不能为空") Integer pageSize , @RequestParam("pageIndex") @NotNull(message = "分页页码不能为空") Integer pageIndex) {
return stockSingleTaskService.queryBak(request, pageSize, pageIndex); return stockSingleTaskService.queryBak(request, pageSize, pageIndex);
@ -50,6 +53,7 @@ public class StockSingleTaskController {
* 下载任务 * 下载任务
* @param request 添加单任务数据 * @param request 添加单任务数据
*/ */
@SaCheckPermission("stockSingleTaskBak:export")
@PostMapping("/downLoadBak") @PostMapping("/downLoadBak")
public void downLoadBak(HttpServletResponse response, @RequestBody QueryStockSingleTaskReq request) { public void downLoadBak(HttpServletResponse response, @RequestBody QueryStockSingleTaskReq request) {
stockSingleTaskService.downLoadBak(response, request); stockSingleTaskService.downLoadBak(response, request);
@ -60,6 +64,7 @@ public class StockSingleTaskController {
* @param request 添加单任务数据 * @param request 添加单任务数据
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("stockSingleTask:add")
@PostMapping("/addSingleTask") @PostMapping("/addSingleTask")
public AppServeResponse addSingleTask(@RequestBody @Validated AddSingleTaskReq request) { public AppServeResponse addSingleTask(@RequestBody @Validated AddSingleTaskReq request) {
return stockSingleTaskService.addSingleTask(request); return stockSingleTaskService.addSingleTask(request);
@ -81,6 +86,7 @@ public class StockSingleTaskController {
* @param taskStatus 任务状态 * @param taskStatus 任务状态
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("stockSingleTask:edit")
@PutMapping("/updateTaskStatus") @PutMapping("/updateTaskStatus")
public AppServeResponse updateTaskStatus(@RequestParam("taskId") String taskId, @RequestParam("taskStatus") Integer taskStatus) { public AppServeResponse updateTaskStatus(@RequestParam("taskId") String taskId, @RequestParam("taskStatus") Integer taskStatus) {
return stockSingleTaskService.updateTaskStatus(taskId, taskStatus); return stockSingleTaskService.updateTaskStatus(taskId, taskStatus);
@ -91,6 +97,7 @@ public class StockSingleTaskController {
* @param taskId 要完成的任务号 * @param taskId 要完成的任务号
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("stockSingleTask:edit")
@PutMapping("/completeTask/{taskId}") @PutMapping("/completeTask/{taskId}")
public AppServeResponse completeTask(@PathVariable String taskId) { public AppServeResponse completeTask(@PathVariable String taskId) {
return stockSingleTaskService.completeTask(taskId); return stockSingleTaskService.completeTask(taskId);
@ -101,6 +108,7 @@ public class StockSingleTaskController {
* @param taskId 要取消的任务号 * @param taskId 要取消的任务号
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("stockSingleTask:edit")
@PutMapping("/cancelTask/{taskId}") @PutMapping("/cancelTask/{taskId}")
public AppServeResponse cancelTask(@PathVariable String taskId) { public AppServeResponse cancelTask(@PathVariable String taskId) {
return stockSingleTaskService.cancelTask(taskId); return stockSingleTaskService.cancelTask(taskId);

View File

@ -1,5 +1,6 @@
package org.wcs.serve.controller.app; package org.wcs.serve.controller.app;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -30,6 +31,7 @@ public class TrayConveyLocationController {
* @param pageIndex 分页页码 * @param pageIndex 分页页码
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("trayConveyManage:query")
@PostMapping("queryTrayConveyLocation") @PostMapping("queryTrayConveyLocation")
public AppServeDataResponse<PageDataResponse<QueryTrayConveyLocationVo>> queryTrayConveyLocation(@RequestBody QueryTrayConveyLocationReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<QueryTrayConveyLocationVo>> queryTrayConveyLocation(@RequestBody QueryTrayConveyLocationReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) {
return trayConveyLocationService.queryTrayConveyLocation(request, pageSize, pageIndex); return trayConveyLocationService.queryTrayConveyLocation(request, pageSize, pageIndex);
@ -40,6 +42,7 @@ public class TrayConveyLocationController {
* @param request 新增参数 * @param request 新增参数
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("trayConveyManage:add")
@PostMapping("addTrayConveyLocation") @PostMapping("addTrayConveyLocation")
public AppServeResponse addTrayConveyLocation(@RequestBody @Validated AddTrayConveyLocationReq request) { public AppServeResponse addTrayConveyLocation(@RequestBody @Validated AddTrayConveyLocationReq request) {
return trayConveyLocationService.addTrayConveyLocation(request); return trayConveyLocationService.addTrayConveyLocation(request);
@ -50,6 +53,7 @@ public class TrayConveyLocationController {
* @param request 修改参数 * @param request 修改参数
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("trayConveyManage:edit")
@PostMapping("updateTrayConveyLocation") @PostMapping("updateTrayConveyLocation")
public AppServeResponse updateTrayConveyLocation(@RequestBody @Validated UpdateTrayConveyLocationReq request) { public AppServeResponse updateTrayConveyLocation(@RequestBody @Validated UpdateTrayConveyLocationReq request) {
return trayConveyLocationService.updateTrayConveyLocation(request); return trayConveyLocationService.updateTrayConveyLocation(request);
@ -60,6 +64,7 @@ public class TrayConveyLocationController {
* @param conveyId 输送点位ID * @param conveyId 输送点位ID
* @return 状态数据 * @return 状态数据
*/ */
@SaCheckPermission("trayConveyManage:queryStatus")
@GetMapping("queryTrayConveyStatus") @GetMapping("queryTrayConveyStatus")
public AppServeDataResponse<TrayConveyStatusVo> queryTrayConveyStatus(@RequestParam("conveyId") @NotBlank(message = "输送点位ID不能为空") String conveyId) { public AppServeDataResponse<TrayConveyStatusVo> queryTrayConveyStatus(@RequestParam("conveyId") @NotBlank(message = "输送点位ID不能为空") String conveyId) {
return trayConveyLocationService.queryTrayConveyStatus(conveyId); return trayConveyLocationService.queryTrayConveyStatus(conveyId);
@ -70,6 +75,7 @@ public class TrayConveyLocationController {
* @param request 查询参数 * @param request 查询参数
* @param response 响应对象 * @param response 响应对象
*/ */
@SaCheckPermission("trayConveyManage:export")
@PostMapping("downloadTrayConveyLocation") @PostMapping("downloadTrayConveyLocation")
public void downLoadTrayConveyLocation(HttpServletResponse response, @RequestBody QueryTrayConveyLocationReq request) { public void downLoadTrayConveyLocation(HttpServletResponse response, @RequestBody QueryTrayConveyLocationReq request) {
trayConveyLocationService.downLoadTrayConveyLocation(response, request); trayConveyLocationService.downLoadTrayConveyLocation(response, request);

View File

@ -1,5 +1,6 @@
package org.wcs.serve.controller.app; package org.wcs.serve.controller.app;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -47,6 +48,7 @@ public class UserController {
* @param queryUserReq 查询用户请求 * @param queryUserReq 查询用户请求
* @return 返回结果 * @return 返回结果
*/ */
@SaCheckPermission("userManage:query")
@PostMapping("/queryUser") @PostMapping("/queryUser")
public AppServeDataResponse<List<QueryUserResp>> queryUser(@RequestBody QueryUserReq queryUserReq) { public AppServeDataResponse<List<QueryUserResp>> queryUser(@RequestBody QueryUserReq queryUserReq) {
return userService.queryUser(queryUserReq); return userService.queryUser(queryUserReq);
@ -57,16 +59,27 @@ public class UserController {
* @param userId 用户ID * @param userId 用户ID
* @return 登出结果 * @return 登出结果
*/ */
@SaCheckPermission("userManage:edit")
@PutMapping("/logoutUser/{userId}") @PutMapping("/logoutUser/{userId}")
public AppServeResponse logoutUser(@PathVariable @NotBlank(message = "用户ID不能为空") String userId) { public AppServeResponse logoutUser(@PathVariable @NotBlank(message = "用户ID不能为空") String userId) {
return userService.logoutUser(userId); return userService.logoutUser(userId);
} }
/**
* 登出自己
* @return 登出结果
*/
@PostMapping("/logout")
public AppServeResponse logout() {
return userService.logout();
}
/** /**
* 修改用户信息 * 修改用户信息
* @param updateUserReq 修改用户信息请求 * @param updateUserReq 修改用户信息请求
* @return 修改结果 * @return 修改结果
*/ */
@SaCheckPermission("userManage:edit")
@PostMapping("/updateUser") @PostMapping("/updateUser")
public AppServeResponse updateUser(@RequestBody @Validated UpdateUserReq updateUserReq) { public AppServeResponse updateUser(@RequestBody @Validated UpdateUserReq updateUserReq) {
return userService.updateUser(updateUserReq); return userService.updateUser(updateUserReq);
@ -77,6 +90,7 @@ public class UserController {
* @param userId 用户ID * @param userId 用户ID
* @return 删除结果 * @return 删除结果
*/ */
@SaCheckPermission("userManage:delete")
@DeleteMapping("/deleteUser/{userId}") @DeleteMapping("/deleteUser/{userId}")
public AppServeResponse deleteUser(@PathVariable @NotBlank(message = "用户ID不能为空") String userId) { public AppServeResponse deleteUser(@PathVariable @NotBlank(message = "用户ID不能为空") String userId) {
return userService.deleteUser(userId); return userService.deleteUser(userId);
@ -87,6 +101,7 @@ public class UserController {
* @param createUserReq 创建用户的请求 * @param createUserReq 创建用户的请求
* @return 创建结果 * @return 创建结果
*/ */
@SaCheckPermission("userManage:add")
@PostMapping("/createUser") @PostMapping("/createUser")
public AppServeResponse createUser(@RequestBody @Validated CreateUserReq createUserReq) { public AppServeResponse createUser(@RequestBody @Validated CreateUserReq createUserReq) {
return userService.createUser(createUserReq); return userService.createUser(createUserReq);

View File

@ -1,5 +1,6 @@
package org.wcs.serve.controller.app; package org.wcs.serve.controller.app;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -31,6 +32,7 @@ public class UserGroupController {
* 查找用户组级别比自己低的用户的用户组信息 * 查找用户组级别比自己低的用户的用户组信息
* @return 查询到的信息 * @return 查询到的信息
*/ */
@SaCheckPermission("userGroupManage:queryUserGroup")
@GetMapping("/queryMinLevelUserGroup") @GetMapping("/queryMinLevelUserGroup")
public AppServeDataResponse<List<QueryUserGroupResp>> queryMinLevelUserGroup() { public AppServeDataResponse<List<QueryUserGroupResp>> queryMinLevelUserGroup() {
return userGroupService.queryMinLevelUserGroup(); return userGroupService.queryMinLevelUserGroup();
@ -51,6 +53,7 @@ public class UserGroupController {
* @param addUserGroupReq 新用户组信息 * @param addUserGroupReq 新用户组信息
* @return 添加结果 * @return 添加结果
*/ */
@SaCheckPermission("userGroupManage:addUserGroup")
@PostMapping("/addUserGroup") @PostMapping("/addUserGroup")
public AppServeResponse addUserGroup(@RequestBody @Validated AddUserGroupReq addUserGroupReq) { public AppServeResponse addUserGroup(@RequestBody @Validated AddUserGroupReq addUserGroupReq) {
return userGroupService.addUserGroup(addUserGroupReq); return userGroupService.addUserGroup(addUserGroupReq);
@ -61,8 +64,9 @@ public class UserGroupController {
* @param userGroup 用户组 * @param userGroup 用户组
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("userGroupManage:deleteUserGroup")
@DeleteMapping("/deleteUserGroup/{userGroup}") @DeleteMapping("/deleteUserGroup/{userGroup}")
public AppServeResponse deleteUserGroup(@PathVariable("userGroup") @NotBlank(message = "用户组不能为空") String userGroup) { public AppServeResponse deleteUserGroup(@PathVariable @NotBlank(message = "用户组不能为空") String userGroup) {
return userGroupService.deleteUserGroup(userGroup); return userGroupService.deleteUserGroup(userGroup);
} }
@ -71,6 +75,7 @@ public class UserGroupController {
* @param updateUserGroupReq 更新信息 * @param updateUserGroupReq 更新信息
* @return 更新结果 * @return 更新结果
*/ */
@SaCheckPermission("userGroupManage:editUserGroup")
@PostMapping("/updateUserGroup") @PostMapping("/updateUserGroup")
public AppServeResponse updateUserGroup(@RequestBody @Validated UpdateUserGroupReq updateUserGroupReq) { public AppServeResponse updateUserGroup(@RequestBody @Validated UpdateUserGroupReq updateUserGroupReq) {
return userGroupService.updateUserGroup(updateUserGroupReq); return userGroupService.updateUserGroup(updateUserGroupReq);
@ -81,6 +86,7 @@ public class UserGroupController {
* @param updateGroupPermissionReq 更新权限信息 * @param updateGroupPermissionReq 更新权限信息
* @return 更新结果 * @return 更新结果
*/ */
@SaCheckPermission("userGroupManage:editUserGroup")
@PostMapping("/updateGroupPermission") @PostMapping("/updateGroupPermission")
public AppServeResponse updateGroupPermission(@RequestBody @Validated UpdateGroupPermissionReq updateGroupPermissionReq) { public AppServeResponse updateGroupPermission(@RequestBody @Validated UpdateGroupPermissionReq updateGroupPermissionReq) {
return userGroupService.updateGroupPermission(updateGroupPermissionReq); return userGroupService.updateGroupPermission(updateGroupPermissionReq);
@ -91,6 +97,7 @@ public class UserGroupController {
* @param updateGroupPermissionReq 添加权限信息 * @param updateGroupPermissionReq 添加权限信息
* @return 添加结果 * @return 添加结果
*/ */
@SaCheckPermission("userGroupManage:editPermission")
@PostMapping("/updateGroupOperationPermission") @PostMapping("/updateGroupOperationPermission")
public AppServeResponse updateGroupOperationPermission(@RequestBody @Validated UpdateGroupPermissionReq updateGroupPermissionReq) { public AppServeResponse updateGroupOperationPermission(@RequestBody @Validated UpdateGroupPermissionReq updateGroupPermissionReq) {
return userGroupService.updateGroupOperationPermission(updateGroupPermissionReq); return userGroupService.updateGroupOperationPermission(updateGroupPermissionReq);
@ -101,6 +108,7 @@ public class UserGroupController {
* @param groupId 用户组id * @param groupId 用户组id
* @return 查询结果 * @return 查询结果
*/ */
@SaCheckPermission("userGroupManage:queryPermission")
@GetMapping("/queryOperationPermission/{groupId}") @GetMapping("/queryOperationPermission/{groupId}")
public AppServeDataResponse<List<QueryOperationPermissionResp>> queryOperationPermission(@PathVariable @NotBlank(message = "用户组id不能为空") String groupId) { public AppServeDataResponse<List<QueryOperationPermissionResp>> queryOperationPermission(@PathVariable @NotBlank(message = "用户组id不能为空") String groupId) {
return userGroupService.queryOperationPermission(groupId); return userGroupService.queryOperationPermission(groupId);

View File

@ -180,6 +180,22 @@ public class UserService implements IUserService {
return AppServeResponseFactory.success("用户退出成功"); return AppServeResponseFactory.success("用户退出成功");
} }
/**
* 登出自己
* @return 登出结果
*/
@Override
public AppServeResponse logout() {
Object userIdObj = StpUtil.getLoginId();
if(userIdObj == null) {
return AppServeResponseFactory.success("用户未登录");
}
String operationUserId = userIdObj.toString();
StpUtil.logout();
log.info("用户:{} 登出", operationUserId);
return AppServeResponseFactory.success("用户退出成功");
}
/** /**
* 更新用户 * 更新用户
* @param updateUserReq 更新用户请求 * @param updateUserReq 更新用户请求

View File

@ -12,6 +12,7 @@ public interface IUserService {
AppServeDataResponse<UserPermissionResp> permission(); // 获取权限 AppServeDataResponse<UserPermissionResp> permission(); // 获取权限
AppServeDataResponse<List<QueryUserResp>> queryUser(QueryUserReq queryUserReq); // 查询用户 AppServeDataResponse<List<QueryUserResp>> queryUser(QueryUserReq queryUserReq); // 查询用户
AppServeResponse logoutUser(String userId); // 登出用户 AppServeResponse logoutUser(String userId); // 登出用户
AppServeResponse logout(); // 登出自己
AppServeResponse updateUser(UpdateUserReq updateUserReq); // 修改用户信息 AppServeResponse updateUser(UpdateUserReq updateUserReq); // 修改用户信息
AppServeResponse deleteUser(String userId); // 删除用户 AppServeResponse deleteUser(String userId); // 删除用户
AppServeResponse createUser(CreateUserReq createUserReq); // 创建用户 AppServeResponse createUser(CreateUserReq createUserReq); // 创建用户

View File

@ -23,6 +23,10 @@ export default class UserApi {
static queryUserList(userSearch: IUserSearch) { static queryUserList(userSearch: IUserSearch) {
return axiosInstance.post("/app/user/queryUser", userSearch); return axiosInstance.post("/app/user/queryUser", userSearch);
} }
// 登出自己
static logout() {
return axiosInstance.put("/app/user/logout");
}
// 登出用户 // 登出用户
static loginOut(userId: string) { static loginOut(userId: string) {
return axiosInstance.put("/app/user/logoutUser/" + userId); return axiosInstance.put("/app/user/logoutUser/" + userId);

View File

@ -16,7 +16,7 @@
// //
const loginOut = () => { const loginOut = () => {
MessageUtils.confirmMessageBox(`确定退出账号:${userStoreInstance.getUserInfo().userId}?`, "登出确认").then(() => { MessageUtils.confirmMessageBox(`确定退出账号:${userStoreInstance.getUserInfo().userId}?`, "登出确认").then(() => {
UserApi.loginOut(userStoreInstance.getUserInfo().userId ?? '').then((res) => { UserApi.logout().then((res) => {
const response = JSON.parse(JSON.stringify(res.data)) as AppServeResponse; const response = JSON.parse(JSON.stringify(res.data)) as AppServeResponse;
if (response && response.code == AppServeResponseCodeEnum.SUCCESS) { if (response && response.code == AppServeResponseCodeEnum.SUCCESS) {
MessageUtils.successMessage("登出成功"); MessageUtils.successMessage("登出成功");

View File

@ -7,6 +7,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import StackerApi from "@/api/stacker.ts"; import StackerApi from "@/api/stacker.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const emit = defineEmits(['reLoadingTableData']); const emit = defineEmits(['reLoadingTableData']);
@ -103,7 +104,7 @@ const add = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="add">确定添加</el-button> <app-permission permission="stackerManage:addStacker"><el-button type="primary" @click="add">确定添加</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -5,6 +5,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import StackerApi from "@/api/stacker.ts"; import StackerApi from "@/api/stacker.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const props = defineProps(['formData']); const props = defineProps(['formData']);
@ -98,7 +99,7 @@ const save = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="save">保存更改</el-button> <app-permission permission=" stackerManage:editStacker"><el-button type="primary" @click="save">保存更改</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -6,6 +6,7 @@ import StackerApi from "@/api/stacker.ts";
import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts"; import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import MessageUtils from "@/utils/MessageUtils.ts"; import MessageUtils from "@/utils/MessageUtils.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const close = () => { modelValue.value = false; }; const close = () => { modelValue.value = false; };
@ -47,7 +48,7 @@ const query = () => {
</el-row> </el-row>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="query">{{t('baseButton.refresh')}}</el-button> <app-permission permission="stackerManage:queryStackerStatus"><el-button type="primary" @click="query">{{t('baseButton.refresh')}}</el-button></app-permission>
<el-button type="danger" @click="close">{{t('baseButton.close')}}</el-button> <el-button type="danger" @click="close">{{t('baseButton.close')}}</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -10,6 +10,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import StackerInTypeFormatter from "@/plugin/formatter/StackerInTypeFormatter.ts"; import StackerInTypeFormatter from "@/plugin/formatter/StackerInTypeFormatter.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import StringUtils from "@/utils/StringUtils.ts"; import StringUtils from "@/utils/StringUtils.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const trueFalseTagStyleFormatter = new TrueFalseTagStyleFormatter(); // const trueFalseTagStyleFormatter = new TrueFalseTagStyleFormatter(); //
const stackerInTypeFormatter = new StackerInTypeFormatter(); // const stackerInTypeFormatter = new StackerInTypeFormatter(); //
@ -206,14 +207,14 @@ const queryStandStatus = () => {
<el-row> <el-row>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="warning" @click="resetInput">重置输入框</el-button> <el-button type="warning" @click="resetInput">重置输入框</el-button>
<el-button type="success" @click="addAndSave">添加/保存</el-button> <app-permission permission="stackerManage:editStand"><el-button type="success" @click="addAndSave">添加/保存</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>
<el-row> <el-row>
<el-button-group> <el-button-group>
<el-button type="primary" @click="query">查看/刷新站台</el-button> <app-permission permission="stackerManage:queryStand"><el-button type="primary" @click="query">查看/刷新站台</el-button></app-permission>
<el-button type="info" @click="queryStandStatus" v-if="tableData.length > 0">查看站台状态</el-button> <app-permission permission="stackerManage:queryStandStatus"><el-button type="info" @click="queryStandStatus" v-if="tableData.length > 0">查看站台状态</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
<el-row class="dataTable"> <el-row class="dataTable">
@ -257,8 +258,8 @@ const queryStandStatus = () => {
<el-table-column label="操作" width="120" align="center" fixed="right"> <el-table-column label="操作" width="120" align="center" fixed="right">
<template #default="scope"> <template #default="scope">
<el-button-group> <el-button-group>
<el-button size="small" type="primary" @click="edit(scope.$index, scope.row)">编辑</el-button> <app-permission permission="stackerManage:editStand"><el-button size="small" type="primary" @click="edit(scope.$index, scope.row)">编辑</el-button></app-permission>
<el-button size="small" type="danger" @click="deleteRow(scope.$index, scope.row)">删除</el-button> <app-permission permission="stackerManage:deleteStand"><el-button size="small" type="danger" @click="deleteRow(scope.$index, scope.row)">删除</el-button></app-permission>
</el-button-group> </el-button-group>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -8,6 +8,7 @@ import StackerLocationApi from "@/api/stackerLocation.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import type IStackerLocationCreateParams from "@/interface/page/stackerLocation/IStackerLocationCreateParams.ts"; import type IStackerLocationCreateParams from "@/interface/page/stackerLocation/IStackerLocationCreateParams.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const emit = defineEmits(['reLoadingTableData']); const emit = defineEmits(['reLoadingTableData']);
@ -124,7 +125,7 @@ const addMany = () => {
</el-form> </el-form>
</el-row> </el-row>
<el-row> <el-row>
<el-button type="success" @click="addOne">添加一个</el-button> <app-permission permission="stackerLocationManage:add"><el-button type="success" @click="addOne">添加一个</el-button></app-permission>
</el-row> </el-row>
</el-scrollbar> </el-scrollbar>
</el-col> </el-col>
@ -186,7 +187,7 @@ const addMany = () => {
</el-form> </el-form>
</el-row> </el-row>
<el-row> <el-row>
<el-button type="success" @click="addMany">批量添加</el-button> <app-permission permission="stackerLocationManage:add"><el-button type="success" @click="addMany">批量添加</el-button></app-permission>
</el-row> </el-row>
</el-scrollbar> </el-scrollbar>
</el-col> </el-col>

View File

@ -5,6 +5,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import StackerLocationApi from "@/api/stackerLocation.ts"; import StackerLocationApi from "@/api/stackerLocation.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const emit = defineEmits(['reLoadingTableData']); const emit = defineEmits(['reLoadingTableData']);
@ -95,8 +96,8 @@ const save = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="warning">删除数据</el-button> <app-permission permission="stackerLocationManage:delete"><el-button type="warning">删除数据</el-button></app-permission>
<el-button type="primary" @click="save">保存/修改</el-button> <app-permission permission="stackerLocationManage:edit"><el-button type="primary" @click="save">保存/修改</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -8,6 +8,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import StockComposeTaskApi from "@/api/stockComposeTask.ts"; import StockComposeTaskApi from "@/api/stockComposeTask.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const stockComposeTaskTypeFormatter = new StockComposeTaskTypeFormatter(); const stockComposeTaskTypeFormatter = new StockComposeTaskTypeFormatter();
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
@ -80,7 +81,7 @@ const add = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="add">添加任务</el-button> <app-permission permission="stockComposeTask:add"><el-button type="primary" @click="add">添加任务</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -10,6 +10,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import type {ReporterTaskStatusReq} from "@/interface/page/stockTask/IReporterTaskStatusReq.ts"; import type {ReporterTaskStatusReq} from "@/interface/page/stockTask/IReporterTaskStatusReq.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const props = defineProps(['formData']); const props = defineProps(['formData']);
@ -153,6 +154,7 @@ const reportTaskCancel = () => {
</el-form> </el-form>
</el-col> </el-col>
<el-col :span="11" :offset="1"> <el-col :span="11" :offset="1">
<app-permission permission="stockComposeTaskBak:upload">
<el-row v-if="!StringUtils.isNullOrEmpty(formData.upperTaskId)"> <el-row v-if="!StringUtils.isNullOrEmpty(formData.upperTaskId)">
<el-row> <el-row>
<div>上报附加信息</div> <div>上报附加信息</div>
@ -172,6 +174,7 @@ const reportTaskCancel = () => {
<el-text type="warning">此处仅上报不会更新任务状态点击下方完成任务或者取消任务按钮时将会自动上报并更新任务状态</el-text> <el-text type="warning">此处仅上报不会更新任务状态点击下方完成任务或者取消任务按钮时将会自动上报并更新任务状态</el-text>
</el-row> </el-row>
</el-row> </el-row>
</app-permission>
</el-col> </el-col>
</el-row> </el-row>
</el-scrollbar> </el-scrollbar>

View File

@ -12,6 +12,7 @@ import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import type {ReporterTaskStatusReq} from "@/interface/page/stockTask/IReporterTaskStatusReq.ts"; import type {ReporterTaskStatusReq} from "@/interface/page/stockTask/IReporterTaskStatusReq.ts";
import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts"; import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts";
import type {ICourseCalculateResult} from "@/interface/page/stockTask/ICourseCalculateResult.ts"; import type {ICourseCalculateResult} from "@/interface/page/stockTask/ICourseCalculateResult.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const props = defineProps(['formData']); const props = defineProps(['formData']);
@ -235,7 +236,9 @@ const open = () => {
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-col> </el-col>
<el-col :span="11" :offset="1"> <el-col :span="11" :offset="1">
<app-permission permission="stockComposeTask:upload">
<el-row v-if="!StringUtils.isNullOrEmpty(formData.upperTaskId)"> <el-row v-if="!StringUtils.isNullOrEmpty(formData.upperTaskId)">
<el-row> <el-row>
<div>上报附加信息</div> <div>上报附加信息</div>
@ -255,6 +258,7 @@ const open = () => {
<el-text type="warning">此处仅上报不会更新任务状态点击下方完成任务或者取消任务按钮时将会自动上报并更新任务状态</el-text> <el-text type="warning">此处仅上报不会更新任务状态点击下方完成任务或者取消任务按钮时将会自动上报并更新任务状态</el-text>
</el-row> </el-row>
</el-row> </el-row>
</app-permission>
<el-row v-if="course.length > 0"> <el-row v-if="course.length > 0">
<el-row> <el-row>
<el-text type="primary" style="font-size: 1.2rem">模拟路径计算</el-text> <el-text type="primary" style="font-size: 1.2rem">模拟路径计算</el-text>
@ -269,9 +273,9 @@ const open = () => {
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="info" @click="calculateCourse">模拟路径计算</el-button> <el-button type="info" @click="calculateCourse">模拟路径计算</el-button>
<el-button type="success" @click="completeTask">完成任务</el-button> <app-permission permission="stockComposeTask:edit"><el-button type="success" @click="completeTask">完成任务</el-button></app-permission>
<el-button type="primary" @click="resetTask">重做任务</el-button> <app-permission permission="stockComposeTask:edit"><el-button type="primary" @click="resetTask">重做任务</el-button></app-permission>
<el-button type="warning" @click="cancelTask">取消任务</el-button> <app-permission permission="stockComposeTask:edit"><el-button type="warning" @click="cancelTask">取消任务</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -9,6 +9,7 @@ import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import MessageUtils from "@/utils/MessageUtils.ts"; import MessageUtils from "@/utils/MessageUtils.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const emit = defineEmits(['reLoadingTableData']); const emit = defineEmits(['reLoadingTableData']);
@ -177,7 +178,7 @@ onMounted(() => {
</el-row> </el-row>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="add">确定添加</el-button> <app-permission permission="stockScanManage:add"><el-button type="primary" @click="add">确定添加</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -10,6 +10,7 @@ import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnu
import MessageUtils from "@/utils/MessageUtils.ts"; import MessageUtils from "@/utils/MessageUtils.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {FormatterUtils} from "@/utils/FormatterUtils.ts"; import {FormatterUtils} from "@/utils/FormatterUtils.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel<boolean>('modelValue', {required: true, default: false}); const modelValue = defineModel<boolean>('modelValue', {required: true, default: false});
const formData = defineModel<IAppStockScan>('formData', {required: true, default: () => {}}) const formData = defineModel<IAppStockScan>('formData', {required: true, default: () => {}})
@ -185,8 +186,8 @@ const deleteData = () => {
</el-row> </el-row>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="save">保存修改</el-button> <app-permission permission="stockScanManage:edit"><el-button type="primary" @click="save">保存修改</el-button></app-permission>
<el-button type="warning" @click="deleteData">删除!</el-button> <app-permission permission="stockScanManage:delete"><el-button type="warning" @click="deleteData">删除!</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -9,6 +9,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import StockSingleTaskApi from "@/api/stockSingleTask.ts"; import StockSingleTaskApi from "@/api/stockSingleTask.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const stockSingleTaskExecuteMachineFormatter = new StockSingleTaskExecuteMachineFormatter(); const stockSingleTaskExecuteMachineFormatter = new StockSingleTaskExecuteMachineFormatter();
const stockSingleTaskTypeFormatter = new StockSingleTaskTypeFormatter(); const stockSingleTaskTypeFormatter = new StockSingleTaskTypeFormatter();
@ -88,7 +89,7 @@ const add = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="add">添加任务</el-button> <app-permission permission="stockSingleTask:add"><el-button type="primary" @click="add">添加任务</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -9,6 +9,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import StockSingleTaskApi from "@/api/stockSingleTask.ts"; import StockSingleTaskApi from "@/api/stockSingleTask.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const props = defineProps(['formData']); const props = defineProps(['formData']);
@ -147,9 +148,11 @@ const updateTaskStatus = () => {
<el-option v-for="item in stockSingleTaskStatusFormatter.taskStatusTagStyle" :key="item.value" :label="item.label" :value="item.value"/> <el-option v-for="item in stockSingleTaskStatusFormatter.taskStatusTagStyle" :key="item.value" :label="item.label" :value="item.value"/>
</el-select> </el-select>
</el-col> </el-col>
<app-permission permission="stockSingleTask:edit">
<el-col :span="4"> <el-col :span="4">
<el-button type="success" @click="updateTaskStatus">修改状态</el-button> <el-button type="success" @click="updateTaskStatus">修改状态</el-button>
</el-col> </el-col>
</app-permission>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="任务起点:" required> <el-form-item label="任务起点:" required>
@ -203,8 +206,8 @@ const updateTaskStatus = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="success" @click="completeTask">完成任务</el-button> <app-permission permission="stockSingleTask:edit"><el-button type="success" @click="completeTask">完成任务</el-button></app-permission>
<el-button type="warning" @click="cancelTask">取消任务</el-button> <app-permission permission="stockSingleTask:edit"><el-button type="warning" @click="cancelTask">取消任务</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -8,6 +8,7 @@ import TrayConveyLocationApi from "@/api/trayConveyLocation.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import StringUtils from "@/utils/StringUtils.ts"; import StringUtils from "@/utils/StringUtils.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const emit = defineEmits(['reLoadingTableData']); const emit = defineEmits(['reLoadingTableData']);
@ -122,7 +123,7 @@ onMounted(() => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="add">确定添加</el-button> <app-permission permission="trayConveyManage:add"><el-button type="primary" @click="add">确定添加</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -10,6 +10,7 @@ import TrayConveyLocationApi from "@/api/trayConveyLocation.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts"; import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const formData = defineModel<ITrayConveyTableData>('rowData', {required: true, default: false}); const formData = defineModel<ITrayConveyTableData>('rowData', {required: true, default: false});
@ -153,7 +154,7 @@ const getConveyPlcStatus = () => {
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<el-button type="primary" @click="getConveyPlcStatus">查询/刷新</el-button> <app-permission permission="trayConveyManage:queryStatus"><el-button type="primary" @click="getConveyPlcStatus">查询/刷新</el-button></app-permission>
</template> </template>
</el-card> </el-card>
</el-row> </el-row>
@ -164,8 +165,8 @@ const getConveyPlcStatus = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="warning">删除站台</el-button> <app-permission permission="trayConveyManage:delete"><el-button type="warning">删除站台</el-button></app-permission>
<el-button type="primary" @click="save">保存/更新</el-button> <app-permission permission="trayConveyManage:edit"><el-button type="primary" @click="save">保存/更新</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -13,6 +13,7 @@ import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import StringUtils from "@/utils/StringUtils.ts"; import StringUtils from "@/utils/StringUtils.ts";
import type {IAppTableUserGroupVo} from "@/model/table/IAppTableUserGroupVo.ts"; import type {IAppTableUserGroupVo} from "@/model/table/IAppTableUserGroupVo.ts";
import UserGroupApi from "@/api/userGroup.ts"; import UserGroupApi from "@/api/userGroup.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const userTagStyleFormatter = new UserTagStyleFormatter(); // const userTagStyleFormatter = new UserTagStyleFormatter(); //
const newUserInfo = ref<IUpdateUserData>({}); // const newUserInfo = ref<IUpdateUserData>({}); //
@ -127,9 +128,11 @@ const loadUserGroup = () => {
<el-tag size="small" :type="userTagStyleFormatter.userOnlineTagStyleFormatter(formData.online).type"> <el-tag size="small" :type="userTagStyleFormatter.userOnlineTagStyleFormatter(formData.online).type">
{{userTagStyleFormatter.userOnlineTagStyleFormatter(formData.online).label}}</el-tag> {{userTagStyleFormatter.userOnlineTagStyleFormatter(formData.online).label}}</el-tag>
</el-col> </el-col>
<app-permission permission="userManage:edit">
<el-col :span="4" :offset="2"> <el-col :span="4" :offset="2">
<el-button type="warning" @click="loginOut">强制下线</el-button> <el-button type="warning" @click="loginOut">强制下线</el-button>
</el-col> </el-col>
</app-permission>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="用户级别:" required> <el-form-item label="用户级别:" required>
@ -192,9 +195,8 @@ const loadUserGroup = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="warning" @click="deleteUser">删除用户(!)</el-button> <app-permission permission="userManage:delete"><el-button type="warning" @click="deleteUser">删除用户(!)</el-button></app-permission>
<app-permission permission="userManage:edit"><el-button type="primary" @click="save">保存修改</el-button></app-permission>
<el-button type="primary" @click="save">保存修改</el-button>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -9,6 +9,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import UserGroupApi from "@/api/userGroup.ts"; import UserGroupApi from "@/api/userGroup.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const emit = defineEmits(['reLoadingTableData']); const emit = defineEmits(['reLoadingTableData']);
@ -73,7 +74,7 @@ const addUserGroup = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="addUserGroup">添加用户组</el-button> <app-permission permission="userGroupManage:addUserGroup"><el-button type="primary" @click="addUserGroup">添加用户组</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -7,6 +7,7 @@ import UserGroupApi from "@/api/userGroup.ts";
import MessageUtils from "@/utils/MessageUtils.ts"; import MessageUtils from "@/utils/MessageUtils.ts";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const modelValue = defineModel('modelValue', {required: true, default: false}); const modelValue = defineModel('modelValue', {required: true, default: false});
const emit = defineEmits(['reLoadingTableData']); const emit = defineEmits(['reLoadingTableData']);
@ -65,7 +66,7 @@ const save = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="save">保存信息</el-button> <app-permission permission="userGroupManage:editUserGroup"><el-button type="primary" @click="save">保存信息</el-button></app-permission>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>
</el-button-group> </el-button-group>
</template> </template>

View File

@ -15,7 +15,10 @@ import StackerLocationStatusFormatter from "@/plugin/formatter/StackerLocationSt
import AddStackerLocationComponent from "@/components/page/stackerLocation/AddStackerLocationComponent.vue"; import AddStackerLocationComponent from "@/components/page/stackerLocation/AddStackerLocationComponent.vue";
import StackerLocationDetailComponent from "@/components/page/stackerLocation/StackerLocationDetailComponent.vue"; import StackerLocationDetailComponent from "@/components/page/stackerLocation/StackerLocationDetailComponent.vue";
import StackerLocationMap from "@/components/page/stackerLocation/StackerLocationMap.vue"; import StackerLocationMap from "@/components/page/stackerLocation/StackerLocationMap.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const locationSearch = ref<IStackerLocationSearch>({}); // const locationSearch = ref<IStackerLocationSearch>({}); //
const userStoreInstance = userStore(); // const userStoreInstance = userStore(); //
const tableData = ref<IStackerLocationTableData[] | undefined>([]); // const tableData = ref<IStackerLocationTableData[] | undefined>([]); //
@ -34,6 +37,9 @@ onMounted(() => {
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('stackerLocationManage:queryTable')) {
return;
}
const loadingInstance = MessageUtils.loading(); const loadingInstance = MessageUtils.loading();
StackerLocationApi.queryStackerLocation(locationSearch.value, pageSize.value, pageIndex.value).then(res => { StackerLocationApi.queryStackerLocation(locationSearch.value, pageSize.value, pageIndex.value).then(res => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -128,11 +134,11 @@ const handleMap = () => {
</el-row> </el-row>
<el-row> <el-row>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="query">查询/刷新</el-button> <app-permission permission="stackerLocationManage:queryTable"><el-button type="primary" @click="query">查询/刷新</el-button></app-permission>
<el-button type="warning" @click="resetInput">重置查询参数</el-button> <el-button type="warning" @click="resetInput">重置查询参数</el-button>
<el-button type="success" @click="addLocations">添加库位</el-button> <app-permission permission="stackerLocationManage:add"><el-button type="success" @click="addLocations">添加库位</el-button></app-permission>
<el-button type="info" @click="downLoadData">导出数据</el-button> <app-permission permission="stackerLocationManage:export"><el-button type="info" @click="downLoadData">导出数据</el-button></app-permission>
<el-button type="primary" @click="handleMap">点位图</el-button> <app-permission permission="stackerLocationManage:queryMap"><el-button type="primary" @click="handleMap">点位图</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -13,8 +13,11 @@ import StackerDetailComponent from "@/components/page/stacker/StackerDetailCompo
import StackerStandComponent from "@/components/page/stacker/StackerStandComponent.vue"; import StackerStandComponent from "@/components/page/stacker/StackerStandComponent.vue";
import {useI18n} from "vue-i18n"; import {useI18n} from "vue-i18n";
import StackerRunningInfo from "@/components/page/stacker/StackerRunningInfo.vue"; import StackerRunningInfo from "@/components/page/stacker/StackerRunningInfo.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const { t } = useI18n(); const { t } = useI18n();
const menuStoreInstance = menuStore();
const trueFalseTagStyleFormatter = new TrueFalseTagStyleFormatter(); // const trueFalseTagStyleFormatter = new TrueFalseTagStyleFormatter(); //
const stakerNameSearch = ref<string>(""); // const stakerNameSearch = ref<string>(""); //
const tableData = ref<IStackerInfoTableData[]>([]); // const tableData = ref<IStackerInfoTableData[]>([]); //
@ -31,6 +34,9 @@ onMounted(() => {
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('stackerManage:queryStacker')) {
return;
}
const loadingInstance = MessageUtils.loading(); const loadingInstance = MessageUtils.loading();
StackerApi.queryStackerInfo(stakerNameSearch.value).then((res) => { StackerApi.queryStackerInfo(stakerNameSearch.value).then((res) => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -115,10 +121,10 @@ const standEdit = (index: number, row: any) => {
</el-row> </el-row>
<el-row> <el-row>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="query">{{ t('baseButton.queryOrReflush') }}</el-button> <app-permission permission="stackerManage:queryStacker"><el-button type="primary" @click="query">{{ t('baseButton.queryOrReflush') }}</el-button></app-permission>
<el-button type="warning" @click="resetInput">{{ t('baseButton.resetInput') }}</el-button> <el-button type="warning" @click="resetInput">{{ t('baseButton.resetInput') }}</el-button>
<el-button type="success" @click="addStacker"><el-icon><Lightning /></el-icon>{{ t('tabPage.stackerManage.addStacker') }}</el-button> <app-permission permission="stackerManage:addStacker"><el-button type="success" @click="addStacker"><el-icon><Lightning /></el-icon>{{ t('tabPage.stackerManage.addStacker') }}</el-button></app-permission>
<el-button type="info" @click="showStackerRunningInfo">{{t('tabPage.stackerManage.stackerRunningInfo')}}</el-button> <app-permission permission="stackerManage:queryStackerStatus"><el-button type="info" @click="showStackerRunningInfo">{{t('tabPage.stackerManage.stackerRunningInfo')}}</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>
@ -162,7 +168,7 @@ const standEdit = (index: number, row: any) => {
<template #default="scope"> <template #default="scope">
<el-button-group> <el-button-group>
<el-button size="small" type="primary" @click="handleEdit(scope.$index, scope.row)">{{ t('baseButton.detail') }}</el-button> <el-button size="small" type="primary" @click="handleEdit(scope.$index, scope.row)">{{ t('baseButton.detail') }}</el-button>
<el-button size="small" type="success" @click="standEdit(scope.$index, scope.row)">{{ t('tabPage.stackerManage.standConfig') }}</el-button> <app-permission permission="stackerManage:queryStand"><el-button size="small" type="success" @click="standEdit(scope.$index, scope.row)">{{ t('tabPage.stackerManage.standConfig') }}</el-button></app-permission>
</el-button-group> </el-button-group>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -15,7 +15,10 @@ import StockComposeStepStatusFormatter from "@/plugin/formatter/StockComposeStep
import AddStockComposeTaskComponent from "@/components/page/stockComposeTask/AddStockComposeTaskComponent.vue"; import AddStockComposeTaskComponent from "@/components/page/stockComposeTask/AddStockComposeTaskComponent.vue";
import StockComposeTaskDetailComponent from "@/components/page/stockComposeTask/StockComposeTaskDetailComponent.vue"; import StockComposeTaskDetailComponent from "@/components/page/stockComposeTask/StockComposeTaskDetailComponent.vue";
import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts"; import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const querySearch = ref<IComposeTaskSearch>({}); // const querySearch = ref<IComposeTaskSearch>({}); //
const stockComposeTaskStatusFormatter = new StockComposeTaskStatusFormatter(); const stockComposeTaskStatusFormatter = new StockComposeTaskStatusFormatter();
const stockComposeTaskTypeFormatter = new StockComposeTaskTypeFormatter(); const stockComposeTaskTypeFormatter = new StockComposeTaskTypeFormatter();
@ -35,6 +38,9 @@ onMounted(() => {
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('stockComposeTask:query')) {
return;
}
const loadingInstance = MessageUtils.loading(); const loadingInstance = MessageUtils.loading();
StockComposeTaskApi.query(querySearch.value, pageSize.value, pageIndex.value).then((res) => { StockComposeTaskApi.query(querySearch.value, pageSize.value, pageIndex.value).then((res) => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -166,10 +172,10 @@ const downLoad = () => {
</el-row> </el-row>
<el-row> <el-row>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="query">查询/刷新</el-button> <app-permission permission="stockComposeTask:query"><el-button type="primary" @click="query">查询/刷新</el-button></app-permission>
<el-button type="warning" @click="resetInput">重置查询参数</el-button> <el-button type="warning" @click="resetInput">重置查询参数</el-button>
<el-button type="success" @click="add">新建任务</el-button> <app-permission permission="stockComposeTask:add"><el-button type="success" @click="add">新建任务</el-button></app-permission>
<el-button type="info" @click="downLoad">导出数据</el-button> <app-permission permission="stockComposeTask:export"><el-button type="info" @click="downLoad">导出数据</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -14,6 +14,7 @@ import type {PageDataResponse} from "@/interface/api/PageDataResponse.ts";
import StockComposeStepStatusFormatter from "@/plugin/formatter/StockComposeStepStatusFormatter.ts"; import StockComposeStepStatusFormatter from "@/plugin/formatter/StockComposeStepStatusFormatter.ts";
import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts"; import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts";
import StockComposeTaskBakDetailComponent from "@/components/page/stockComposeTask/StockComposeTaskBakDetailComponent.vue"; import StockComposeTaskBakDetailComponent from "@/components/page/stockComposeTask/StockComposeTaskBakDetailComponent.vue";
import AppPermission from "@/components/manage/AppPermission.vue";
const querySearch = ref<IComposeTaskSearch>({}); // const querySearch = ref<IComposeTaskSearch>({}); //
const stockComposeTaskStatusFormatter = new StockComposeTaskStatusFormatter(); const stockComposeTaskStatusFormatter = new StockComposeTaskStatusFormatter();
@ -157,9 +158,9 @@ const downLoad = () => {
</el-row> </el-row>
<el-row> <el-row>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="query">查询/刷新</el-button> <app-permission permission="stockComposeTaskBak:query"><el-button type="primary" @click="query">查询/刷新</el-button></app-permission>
<el-button type="warning" @click="resetInput">重置查询参数</el-button> <el-button type="warning" @click="resetInput">重置查询参数</el-button>
<el-button type="info" @click="downLoad">导出数据</el-button> <app-permission permission="stockComposeTaskBak:export"><el-button type="info" @click="downLoad">导出数据</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -1,8 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import SystemConfig from "@/constant/SystemConfig.ts";
import {FormatterUtils} from "@/utils/FormatterUtils.ts"; import {FormatterUtils} from "@/utils/FormatterUtils.ts";
import {userStore} from "@/stores/user.ts";
import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts"; import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts";
import {onMounted, ref} from "vue"; import {onMounted, ref} from "vue";
import type {IStockScanSearch} from "@/interface/page/scan/IStockScanSearch.ts"; import type {IStockScanSearch} from "@/interface/page/scan/IStockScanSearch.ts";
@ -15,8 +13,10 @@ import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AddStockScan from "@/components/page/stockScan/AddStockScan.vue"; import AddStockScan from "@/components/page/stockScan/AddStockScan.vue";
import StockScanDetail from "@/components/page/stockScan/StockScanDetail.vue"; import StockScanDetail from "@/components/page/stockScan/StockScanDetail.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const userStoreInstance = userStore(); const menuStoreInstance = menuStore();
const trueFalseForMatter = new TrueFalseTagStyleFormatter(); // const trueFalseForMatter = new TrueFalseTagStyleFormatter(); //
const stockScanTypeFormatter = new StockScanTypeFormatter(); const stockScanTypeFormatter = new StockScanTypeFormatter();
const pageSize = ref<number>(50); // const pageSize = ref<number>(50); //
@ -34,6 +34,9 @@ onMounted(() => {
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission("stockScanManage:query")) {
return;
}
const loadingInstance = MessageUtils.loading("查询中..."); const loadingInstance = MessageUtils.loading("查询中...");
StockScanApi.query(scanSearch.value, pageSize.value, pageIndex.value).then(res => { StockScanApi.query(scanSearch.value, pageSize.value, pageIndex.value).then(res => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -117,9 +120,9 @@ const paginationChange = () => {
</el-row> </el-row>
<el-row> <el-row>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="query">查询/刷新</el-button> <app-permission permission="stockScanManage:query"><el-button type="primary" @click="query">查询/刷新</el-button></app-permission>
<el-button type="warning" @click="resetInput">重置查询参数</el-button> <el-button type="warning" @click="resetInput">重置查询参数</el-button>
<el-button type="success" @click="addScan">添加扫码</el-button> <app-permission permission="stockScanManage:add"><el-button type="success" @click="addScan">添加扫码</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -15,7 +15,10 @@ import type {PageDataResponse} from "@/interface/api/PageDataResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AddStockSingleTaskComponent from "@/components/page/stockSingleTask/AddStockSingleTaskComponent.vue"; import AddStockSingleTaskComponent from "@/components/page/stockSingleTask/AddStockSingleTaskComponent.vue";
import StockSingleTaskDetailComponent from "@/components/page/stockSingleTask/StockSingleTaskDetailComponent.vue"; import StockSingleTaskDetailComponent from "@/components/page/stockSingleTask/StockSingleTaskDetailComponent.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const stockSingleTaskExecuteMachineFormatter = new StockSingleTaskExecuteMachineFormatter(); const stockSingleTaskExecuteMachineFormatter = new StockSingleTaskExecuteMachineFormatter();
const stockSingleTaskStatusFormatter = new StockSingleTaskStatusFormatter(); const stockSingleTaskStatusFormatter = new StockSingleTaskStatusFormatter();
const stockSingleTaskTypeFormatter = new StockSingleTaskTypeFormatter(); const stockSingleTaskTypeFormatter = new StockSingleTaskTypeFormatter();
@ -35,6 +38,9 @@ onMounted(() => {
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('stockSingleTask:query')) {
return;
}
const loadingInstance = MessageUtils.loading(); const loadingInstance = MessageUtils.loading();
StockSingleTaskApi.query(querySearch.value, pageSize.value, pageIndex.value).then((res) => { StockSingleTaskApi.query(querySearch.value, pageSize.value, pageIndex.value).then((res) => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -159,9 +165,9 @@ const handleEdit = (index: number, row: any) => {
</el-row> </el-row>
<el-row> <el-row>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="query">查询/刷新</el-button> <app-permission permission="stockSingleTask:query"><el-button type="primary" @click="query">查询/刷新</el-button></app-permission>
<el-button type="warning" @click="resetInput">重置查询参数</el-button> <el-button type="warning" @click="resetInput">重置查询参数</el-button>
<el-button type="success" @click="add">新建任务</el-button> <app-permission permission="stockSingleTask:add"><el-button type="success" @click="add">新建任务</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -15,6 +15,7 @@ import type {PageDataResponse} from "@/interface/api/PageDataResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AddStockSingleTaskComponent from "@/components/page/stockSingleTask/AddStockSingleTaskComponent.vue"; import AddStockSingleTaskComponent from "@/components/page/stockSingleTask/AddStockSingleTaskComponent.vue";
import StockSingleTaskDetailComponent from "@/components/page/stockSingleTask/StockSingleTaskDetailComponent.vue"; import StockSingleTaskDetailComponent from "@/components/page/stockSingleTask/StockSingleTaskDetailComponent.vue";
import AppPermission from "@/components/manage/AppPermission.vue";
const stockSingleTaskExecuteMachineFormatter = new StockSingleTaskExecuteMachineFormatter(); const stockSingleTaskExecuteMachineFormatter = new StockSingleTaskExecuteMachineFormatter();
const stockSingleTaskStatusFormatter = new StockSingleTaskStatusFormatter(); const stockSingleTaskStatusFormatter = new StockSingleTaskStatusFormatter();
@ -133,9 +134,9 @@ const paginationChange = () => {
</el-row> </el-row>
<el-row> <el-row>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="query">查询/刷新</el-button> <app-permission permission="stockSingleTaskBak:query"><el-button type="primary" @click="query">查询/刷新</el-button></app-permission>
<el-button type="warning" @click="resetInput">重置查询参数</el-button> <el-button type="warning" @click="resetInput">重置查询参数</el-button>
<el-button type="info" @click="downLoad">导出数据</el-button> <app-permission permission="stockSingleTaskBak:export"><el-button type="info" @click="downLoad">导出数据</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -1,12 +1,10 @@
<script setup lang="ts"> <script setup lang="ts">
import SystemConfig from "@/constant/SystemConfig.ts";
import {FormatterUtils} from "@/utils/FormatterUtils.ts"; import {FormatterUtils} from "@/utils/FormatterUtils.ts";
import {onMounted, ref} from "vue"; import {onMounted, ref} from "vue";
import type {ITrayConveyLocationSearch} from "@/interface/page/trayConvey/ITrayConveyLocationSearch.ts"; import type {ITrayConveyLocationSearch} from "@/interface/page/trayConvey/ITrayConveyLocationSearch.ts";
import TrayConveyLocationTypeFormatter from "@/plugin/formatter/TrayConveyLocationTypeFormatter.ts"; import TrayConveyLocationTypeFormatter from "@/plugin/formatter/TrayConveyLocationTypeFormatter.ts";
import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts"; import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts";
import {userStore} from "@/stores/user.ts";
import type {ITrayConveyTableData} from "@/model/table/ITrayConveyTableData.ts"; import type {ITrayConveyTableData} from "@/model/table/ITrayConveyTableData.ts";
import TrayConveyLocationApi from "@/api/trayConveyLocation.ts"; import TrayConveyLocationApi from "@/api/trayConveyLocation.ts";
import MessageUtils from "@/utils/MessageUtils.ts"; import MessageUtils from "@/utils/MessageUtils.ts";
@ -16,8 +14,10 @@ import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnu
import AddTrayConveyLocation from "@/components/page/trayConveyLocation/AddTrayConveyLocation.vue"; import AddTrayConveyLocation from "@/components/page/trayConveyLocation/AddTrayConveyLocation.vue";
import TrayConveyLocationDetail from "@/components/page/trayConveyLocation/TrayConveyLocationDetail.vue"; import TrayConveyLocationDetail from "@/components/page/trayConveyLocation/TrayConveyLocationDetail.vue";
import AppDeveloper from "@/components/manage/AppDeveloper.vue"; import AppDeveloper from "@/components/manage/AppDeveloper.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const userStoreInstance = userStore(); const menuStoreInstance = menuStore();
const locationSearch = ref<ITrayConveyLocationSearch>({}); // const locationSearch = ref<ITrayConveyLocationSearch>({}); //
const trayConveyLocationTypeFormatter = new TrayConveyLocationTypeFormatter(); // 线 const trayConveyLocationTypeFormatter = new TrayConveyLocationTypeFormatter(); // 线
const trueFalseForMatter = new TrueFalseTagStyleFormatter(); // const trueFalseForMatter = new TrueFalseTagStyleFormatter(); //
@ -35,6 +35,9 @@ onMounted(() => {
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('trayConveyManage:query')) {
return;
}
const loadingInstance = MessageUtils.loading('查询中...'); const loadingInstance = MessageUtils.loading('查询中...');
TrayConveyLocationApi.query(locationSearch.value, pageSize.value, pageIndex.value).then(res => { TrayConveyLocationApi.query(locationSearch.value, pageSize.value, pageIndex.value).then(res => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -134,12 +137,10 @@ const handleEdit = (index: number, row: any) => {
</el-row> </el-row>
<el-row> <el-row>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="query">查询/刷新</el-button> <app-permission permission="trayConveyManage:query"><el-button type="primary" @click="query">查询/刷新</el-button></app-permission>
<el-button type="warning" @click="resetInput">重置查询参数</el-button> <el-button type="warning" @click="resetInput">重置查询参数</el-button>
<el-button type="success" @click="addLocations">添加点位</el-button> <app-permission permission="trayConveyManage:add"><el-button type="success" @click="addLocations">添加点位</el-button></app-permission>
<app-developer> <app-permission permission="trayConveyManage:export"><el-button type="info" @click="downLoadData">导出数据</el-button></app-permission>
<el-button type="info" @click="downLoadData">导出数据</el-button>
</app-developer>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -21,6 +21,7 @@ import type {IUpdatePermissionReq} from "@/interface/page/userGroup/IUpdatePermi
import {menuStore} from "@/stores/menu.ts"; import {menuStore} from "@/stores/menu.ts";
import type {IBaseMenuPermissionVo} from "@/model/table/IBaseMenuPermissionVo.ts"; import type {IBaseMenuPermissionVo} from "@/model/table/IBaseMenuPermissionVo.ts";
import type {IGroupOperationPermission} from "@/interface/page/userGroup/IGroupOperationPermission.ts"; import type {IGroupOperationPermission} from "@/interface/page/userGroup/IGroupOperationPermission.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const userGroupList = ref<IAppTableUserGroupVo[]>([]); // const userGroupList = ref<IAppTableUserGroupVo[]>([]); //
const selectUserGroup = ref<string | undefined>(''); // const selectUserGroup = ref<string | undefined>(''); //
@ -49,6 +50,9 @@ onMounted(() => {
// //
const queryUserGroup = () => { const queryUserGroup = () => {
if(!menuStoreInstance.checkOperationPermission('userGroupManage:queryUserGroup')) {
return;
}
userGroupList.value = []; userGroupList.value = [];
const loading = MessageUtils.loading(); const loading = MessageUtils.loading();
UserGroupApi.queryMinLevelUserGroup().then(res => { UserGroupApi.queryMinLevelUserGroup().then(res => {
@ -120,6 +124,9 @@ const selectedChange = (item: IAppTableUserGroupVo | undefined) => {
// //
const queryUserGroupPermission = () => { const queryUserGroupPermission = () => {
if(!menuStoreInstance.checkOperationPermission('userGroupManage:queryPermission')) {
return;
}
if(selectUserGroup.value == undefined || StringUtils.isNullOrEmpty(selectUserGroup.value)) { if(selectUserGroup.value == undefined || StringUtils.isNullOrEmpty(selectUserGroup.value)) {
return; return;
} }
@ -281,10 +288,10 @@ const getOperationPermission = () => {
<h4 style="margin-left: 10px; margin-bottom: 5px; margin-top: 10px; font-weight: bold">当前用户组</h4> <h4 style="margin-left: 10px; margin-bottom: 5px; margin-top: 10px; font-weight: bold">当前用户组</h4>
<el-text type="success" style="margin-left: 10px;">当前选择的用户组{{selectUserGroupMsg}}</el-text> <el-text type="success" style="margin-left: 10px;">当前选择的用户组{{selectUserGroupMsg}}</el-text>
<el-button-group style="width: 100%; margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%; margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="queryUserGroup">查询/刷新</el-button> <app-permission permission="userGroupManage:queryUserGroup"><el-button type="primary" @click="queryUserGroup">查询/刷新</el-button></app-permission>
<el-button type="success" @click="addUserGroup"><el-icon><Lightning /></el-icon></el-button> <app-permission permission="userGroupManage:addUserGroup"><el-button type="success" @click="addUserGroup"><el-icon><Lightning /></el-icon></el-button></app-permission>
<el-button type="warning" @click="editUserGroup">编辑用户组</el-button> <app-permission permission="userGroupManage:editUserGroup"><el-button type="warning" @click="editUserGroup">编辑用户组</el-button></app-permission>
<el-button type="danger" @click="deleteUserGroup">删除用户组</el-button> <app-permission permission="userGroupManage:deleteUserGroup"><el-button type="danger" @click="deleteUserGroup">删除用户组</el-button></app-permission>
</el-button-group> </el-button-group>
<el-table :data="userGroupList" stripe border style="width: 100%" max-height="calc(100vh - 270px)" @current-change="selectedChange" <el-table :data="userGroupList" stripe border style="width: 100%" max-height="calc(100vh - 270px)" @current-change="selectedChange"
ref="userGroupTableRef" highlight-current-row> ref="userGroupTableRef" highlight-current-row>
@ -310,16 +317,17 @@ const getOperationPermission = () => {
<div><el-text type="warning" style="margin-left: 10px;">您没有的权限不会显示在此处您不能编辑其他用户的您没有的权限</el-text></div> <div><el-text type="warning" style="margin-left: 10px;">您没有的权限不会显示在此处您不能编辑其他用户的您没有的权限</el-text></div>
<div><el-text type="success" style="margin-left: 10px;">当前正在编辑权限的用户组{{selectUserGroupMsg}}</el-text></div> <div><el-text type="success" style="margin-left: 10px;">当前正在编辑权限的用户组{{selectUserGroupMsg}}</el-text></div>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="queryUserGroupPermission">查询/刷新</el-button> <app-permission permission="userGroupManage:queryPermission"><el-button type="primary" @click="queryUserGroupPermission">查询/刷新</el-button></app-permission>
<el-button type="warning" @click="saveUserGroupPermission">保存设定的权限</el-button> <app-permission permission="userGroupManage:editPermission"><el-button type="warning" @click="saveUserGroupPermission">保存设定的权限</el-button></app-permission>
</el-button-group> </el-button-group>
<el-scrollbar style="height: calc(100vh - 265px)"> <el-scrollbar style="height: calc(100vh - 265px)">
<el-tree ref="userPermissionTreeRef" <el-tree ref="userPermissionTreeRef"
:data="permissionList" :data="permissionList"
show-checkbox show-checkbox
node-key="menuId" node-key="menuId"
default-expand-all :default-expand-all="false"
:props="{children: 'children'}" :props="{children: 'children'}"
> >
<template #default="{ node, data }"> <template #default="{ node, data }">
<el-text v-if="node.level <= 2" type="warning">{{ data.menuId }} --> {{ data.menuName }}</el-text> <el-text v-if="node.level <= 2" type="warning">{{ data.menuId }} --> {{ data.menuName }}</el-text>

View File

@ -13,7 +13,10 @@ import type {IAppBaseMenu} from "@/model/table/IAppBaseMenu.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import UserDetailComponent from "@/components/page/user/UserDetailComponent.vue"; import UserDetailComponent from "@/components/page/user/UserDetailComponent.vue";
import AddUserComponent from "@/components/page/user/AddUserComponent.vue"; import AddUserComponent from "@/components/page/user/AddUserComponent.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const userSearch = ref<IUserSearch>({}); const userSearch = ref<IUserSearch>({});
const queryUserResult = ref<IAppTableUserVo[]>([]); const queryUserResult = ref<IAppTableUserVo[]>([]);
const userTagStyleFormatter = new UserTagStyleFormatter(); // const userTagStyleFormatter = new UserTagStyleFormatter(); //
@ -27,6 +30,9 @@ onMounted(() => {
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('userManage:query')) {
return;
}
const loading = MessageUtils.loading(); const loading = MessageUtils.loading();
UserApi.queryUserList(userSearch.value).then((res) => { UserApi.queryUserList(userSearch.value).then((res) => {
const response = JSON.parse(JSON.stringify(res.data)) as AppServeDataResponse<IAppTableUserVo[]>; const response = JSON.parse(JSON.stringify(res.data)) as AppServeDataResponse<IAppTableUserVo[]>;
@ -88,9 +94,9 @@ const handleEdit = (index: number, row: any) => {
</el-row> </el-row>
<el-row> <el-row>
<el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px"> <el-button-group style="width: 100%;margin-left: 10px; margin-bottom: 10px">
<el-button type="primary" @click="query">查询/刷新</el-button> <app-permission permission="userManage:query"><el-button type="primary" @click="query">查询/刷新</el-button></app-permission>
<el-button type="warning" @click="resetInput">重置查询参数</el-button> <el-button type="warning" @click="resetInput">重置查询参数</el-button>
<el-button type="success" @click="addUser"><el-icon><Lightning /></el-icon></el-button> <app-permission permission="userManage:add"><el-button type="success" @click="addUser"><el-icon><Lightning /></el-icon></el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>