添加部分服务的权限管理

This commit is contained in:
葛林强 2026-02-08 20:41:57 +08:00
parent 813c12e130
commit 56340467d6
39 changed files with 236 additions and 72 deletions

View File

@ -12,6 +12,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.wcs.business.saToken.StpInterfaceImpl;
@Configuration @Configuration
public class SaTokenConfigure implements WebMvcConfigurer { public class SaTokenConfigure implements WebMvcConfigurer {
@ -19,9 +20,10 @@ public class SaTokenConfigure implements WebMvcConfigurer {
@Override @Override
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
// 注册 Sa-Token 拦截器校验规则为 StpUtil.checkLogin() 登录校验 // 注册 Sa-Token 拦截器校验规则为 StpUtil.checkLogin() 登录校验
registry.addInterceptor(new SaInterceptor(handle -> StpUtil.checkLogin())) registry.addInterceptor(new SaInterceptor(handle -> {
.addPathPatterns("/**") StpUtil.checkLogin();
.excludePathPatterns("/**/user/login", "/**/app/system/**", "/api/pub/**"); })).addPathPatterns("/**").excludePathPatterns("/**/user/login", "/**/app/system/**", "/api/pub/**");
registry.addInterceptor(new SaInterceptor()).addPathPatterns("/**").excludePathPatterns("/**/user/login", "/**/app/system/**", "/api/pub/**");
} }
/** /**

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 ConveyStandController {
* @param pageIndex 页码 * @param pageIndex 页码
* @return 站台列表 * @return 站台列表
*/ */
@SaCheckPermission("conveyPickStand:query")
@PostMapping("queryPickStand") @PostMapping("queryPickStand")
public AppServeDataResponse<PageDataResponse<ConveyPickStandVo>> queryPickStand(@RequestBody QueryPickStandReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<ConveyPickStandVo>> queryPickStand(@RequestBody QueryPickStandReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) {
return conveyStandService.queryPickStand(request, pageSize, pageIndex); return conveyStandService.queryPickStand(request, pageSize, pageIndex);
@ -41,6 +43,7 @@ public class ConveyStandController {
* @param request 添加参数 * @param request 添加参数
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("conveyPickStand:add")
@PostMapping("addConveyPickStand") @PostMapping("addConveyPickStand")
public AppServeResponse addConveyPickStand(@RequestBody @Validated AddConveyPickStandReq request) { public AppServeResponse addConveyPickStand(@RequestBody @Validated AddConveyPickStandReq request) {
return conveyStandService.addConveyPickStand(request); return conveyStandService.addConveyPickStand(request);
@ -51,6 +54,7 @@ public class ConveyStandController {
* @param standId 站台ID * @param standId 站台ID
* @return 删除结果 * @return 删除结果
*/ */
@SaCheckPermission("conveyPickStand:delete")
@DeleteMapping("deleteConveyPickStand") @DeleteMapping("deleteConveyPickStand")
public AppServeResponse deleteConveyPickStand(@RequestParam("standId") @NotBlank(message = "站台ID不能为空") String standId) { public AppServeResponse deleteConveyPickStand(@RequestParam("standId") @NotBlank(message = "站台ID不能为空") String standId) {
return conveyStandService.deleteConveyPickStand(standId); return conveyStandService.deleteConveyPickStand(standId);
@ -61,6 +65,7 @@ public class ConveyStandController {
* @param request 修改参数 * @param request 修改参数
* @return 修改结果 * @return 修改结果
*/ */
@SaCheckPermission("conveyPickStand:edit")
@PostMapping("updateConveyPickStand") @PostMapping("updateConveyPickStand")
public AppServeResponse updateConveyPickStand(@RequestBody @Validated UpdateConveyPickStandReq request) { public AppServeResponse updateConveyPickStand(@RequestBody @Validated UpdateConveyPickStandReq request) {
return conveyStandService.updateConveyPickStand(request); return conveyStandService.updateConveyPickStand(request);
@ -73,6 +78,7 @@ public class ConveyStandController {
* @param pageIndex 页码 * @param pageIndex 页码
* @return 站台列表 * @return 站台列表
*/ */
@SaCheckPermission("conveyCheckStand:query")
@PostMapping("queryCheckStand") @PostMapping("queryCheckStand")
public AppServeDataResponse<PageDataResponse<ConveyCheckStandVo>> queryCheckStand(@RequestBody QueryCheckStandReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<ConveyCheckStandVo>> queryCheckStand(@RequestBody QueryCheckStandReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) {
return conveyStandService.queryCheckStand(request, pageSize, pageIndex); return conveyStandService.queryCheckStand(request, pageSize, pageIndex);
@ -84,6 +90,7 @@ public class ConveyStandController {
* @param request 添加参数 * @param request 添加参数
* @return 添加结果 * @return 添加结果
*/ */
@SaCheckPermission("conveyCheckStand:add")
@PostMapping("addConveyCheckStand") @PostMapping("addConveyCheckStand")
public AppServeResponse addConveyCheckStand(@RequestBody @Validated AddConveyCheckStandReq request) { public AppServeResponse addConveyCheckStand(@RequestBody @Validated AddConveyCheckStandReq request) {
return conveyStandService.addConveyCheckStand(request); return conveyStandService.addConveyCheckStand(request);
@ -94,6 +101,7 @@ public class ConveyStandController {
* @param standId 站台ID * @param standId 站台ID
* @return 删除结果 * @return 删除结果
*/ */
@SaCheckPermission("conveyCheckStand:delete")
@DeleteMapping("deleteConveyCheckStand") @DeleteMapping("deleteConveyCheckStand")
public AppServeResponse deleteConveyCheckStand(@RequestParam("standId") @NotBlank(message = "站台ID不能为空") String standId) { public AppServeResponse deleteConveyCheckStand(@RequestParam("standId") @NotBlank(message = "站台ID不能为空") String standId) {
return conveyStandService.deleteConveyCheckStand(standId); return conveyStandService.deleteConveyCheckStand(standId);
@ -104,6 +112,7 @@ public class ConveyStandController {
* @param request 修改参数 * @param request 修改参数
* @return 修改结果 * @return 修改结果
*/ */
@SaCheckPermission("conveyCheckStand:edit")
@PostMapping("updateConveyCheckStand") @PostMapping("updateConveyCheckStand")
public AppServeResponse updateConveyCheckStand(@RequestBody @Validated UpdateConveyCheckStandReq request) { public AppServeResponse updateConveyCheckStand(@RequestBody @Validated UpdateConveyCheckStandReq request) {
return conveyStandService.updateConveyCheckStand(request); return conveyStandService.updateConveyCheckStand(request);
@ -114,6 +123,7 @@ public class ConveyStandController {
* @param request 添加参数 * @param request 添加参数
* @return 添加结果 * @return 添加结果
*/ */
@SaCheckPermission("conveyDeliverStand:query")
@PostMapping("queryDeliverStand") @PostMapping("queryDeliverStand")
public AppServeDataResponse<PageDataResponse<ConveyDeliverStandVo>> queryDeliverStand(@RequestBody QueryDeliverStandReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<ConveyDeliverStandVo>> queryDeliverStand(@RequestBody QueryDeliverStandReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) {
return conveyStandService.queryDeliverStand(request, pageSize, pageIndex); return conveyStandService.queryDeliverStand(request, pageSize, pageIndex);
@ -124,6 +134,7 @@ public class ConveyStandController {
* @param request 添加参数 * @param request 添加参数
* @return 添加结果 * @return 添加结果
*/ */
@SaCheckPermission("conveyDeliverStand:add")
@PostMapping("addConveyDeliverStand") @PostMapping("addConveyDeliverStand")
public AppServeResponse addConveyDeliverStand(@RequestBody @Validated AddConveyDeliverStandReq request) { public AppServeResponse addConveyDeliverStand(@RequestBody @Validated AddConveyDeliverStandReq request) {
return conveyStandService.addConveyDeliverStand(request); return conveyStandService.addConveyDeliverStand(request);
@ -134,6 +145,7 @@ public class ConveyStandController {
* @param standId 站台ID * @param standId 站台ID
* @return 删除结果 * @return 删除结果
*/ */
@SaCheckPermission("conveyDeliverStand:delete")
@DeleteMapping("deleteConveyDeliverStand") @DeleteMapping("deleteConveyDeliverStand")
public AppServeResponse deleteConveyDeliverStand(@RequestParam("standId") @NotBlank(message = "站台ID不能为空") String standId) { public AppServeResponse deleteConveyDeliverStand(@RequestParam("standId") @NotBlank(message = "站台ID不能为空") String standId) {
return conveyStandService.deleteConveyDeliverStand(standId); return conveyStandService.deleteConveyDeliverStand(standId);
@ -144,6 +156,7 @@ public class ConveyStandController {
* @param request 添加参数 * @param request 添加参数
* @return 添加结果 * @return 添加结果
*/ */
@SaCheckPermission("conveyDeliverStand:edit")
@PostMapping("updateConveyDeliverStand") @PostMapping("updateConveyDeliverStand")
public AppServeResponse updateConveyDeliverStand(@RequestBody @Validated UpdateConveyDeliverStandReq request) { public AppServeResponse updateConveyDeliverStand(@RequestBody @Validated UpdateConveyDeliverStandReq request) {
return conveyStandService.updateConveyDeliverStand(request); return conveyStandService.updateConveyDeliverStand(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.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@ -33,6 +34,7 @@ public class ConveyTaskController {
* @param pageIndex 页码 * @param pageIndex 页码
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("conveyTask:query")
@PostMapping("queryConveyTask") @PostMapping("queryConveyTask")
public AppServeDataResponse<PageDataResponse<QueryConveyTaskVo>> queryConveyTask(@RequestBody QueryConveyTaskReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<QueryConveyTaskVo>> queryConveyTask(@RequestBody QueryConveyTaskReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) {
return conveyTaskService.queryConveyTask(request, pageSize, pageIndex); return conveyTaskService.queryConveyTask(request, pageSize, pageIndex);
@ -45,6 +47,7 @@ public class ConveyTaskController {
* @param pageIndex 页码 * @param pageIndex 页码
* @return 箱式线任务列表 * @return 箱式线任务列表
*/ */
@SaCheckPermission("conveyTaskBak:query")
@PostMapping("queryConveyTaskBak") @PostMapping("queryConveyTaskBak")
public AppServeDataResponse<PageDataResponse<QueryConveyTaskVo>> queryConveyTaskBak(@RequestBody QueryConveyTaskReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) { public AppServeDataResponse<PageDataResponse<QueryConveyTaskVo>> queryConveyTaskBak(@RequestBody QueryConveyTaskReq request, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageIndex") Integer pageIndex) {
return conveyTaskService.queryConveyTaskBak(request, pageSize, pageIndex); return conveyTaskService.queryConveyTaskBak(request, pageSize, pageIndex);
@ -55,6 +58,7 @@ public class ConveyTaskController {
* @param request 新增参数 * @param request 新增参数
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("conveyTask:add")
@PostMapping("addConveyTask") @PostMapping("addConveyTask")
public AppServeResponse addConveyTask(@RequestBody @Validated AddConveyTaskReq request) { public AppServeResponse addConveyTask(@RequestBody @Validated AddConveyTaskReq request) {
return conveyTaskService.addConveyTask(request); return conveyTaskService.addConveyTask(request);
@ -66,6 +70,7 @@ public class ConveyTaskController {
* @param status 状态 * @param status 状态
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("conveyTask:edit")
@PutMapping("updateConveyTaskStatus") @PutMapping("updateConveyTaskStatus")
public AppServeResponse updateConveyTaskStatus(@RequestParam("taskId") @NotBlank(message = "任务ID不能为空") String taskId, @RequestParam("taskStatus") @NotNull(message = "状态不能为空") Integer status) { public AppServeResponse updateConveyTaskStatus(@RequestParam("taskId") @NotBlank(message = "任务ID不能为空") String taskId, @RequestParam("taskStatus") @NotNull(message = "状态不能为空") Integer status) {
return conveyTaskService.updateConveyTaskStatus(taskId, status); return conveyTaskService.updateConveyTaskStatus(taskId, status);
@ -77,6 +82,7 @@ public class ConveyTaskController {
* @param arriveLocation 到达位置 * @param arriveLocation 到达位置
* @return 结果 * @return 结果
*/ */
@SaCheckPermission("conveyTask:edit")
@PutMapping("completeConveyTask") @PutMapping("completeConveyTask")
public AppServeResponse completeConveyTask(@RequestParam("taskId") @NotBlank(message = "任务ID不能为空") String taskId, @RequestParam("arriveLocation") @NotNull(message = "到达位置不能为空") String arriveLocation) { public AppServeResponse completeConveyTask(@RequestParam("taskId") @NotBlank(message = "任务ID不能为空") String taskId, @RequestParam("arriveLocation") @NotNull(message = "到达位置不能为空") String arriveLocation) {
return conveyTaskService.completeConveyTask(taskId, arriveLocation); return conveyTaskService.completeConveyTask(taskId, arriveLocation);
@ -87,6 +93,7 @@ public class ConveyTaskController {
* @param taskId 箱式线任务ID * @param taskId 箱式线任务ID
* @return 取消结果 * @return 取消结果
*/ */
@SaCheckPermission("conveyTask:edit")
@DeleteMapping("cancelConveyTask") @DeleteMapping("cancelConveyTask")
public AppServeResponse cancelConveyTask(@RequestParam("taskId") @NotBlank(message = "箱式线任务ID不能为空") String taskId) { public AppServeResponse cancelConveyTask(@RequestParam("taskId") @NotBlank(message = "箱式线任务ID不能为空") String taskId) {
return conveyTaskService.cancelConveyTask(taskId); return conveyTaskService.cancelConveyTask(taskId);
@ -97,6 +104,7 @@ public class ConveyTaskController {
* @param request 汇报参数 * @param request 汇报参数
* @return 汇报结果 * @return 汇报结果
*/ */
@SaCheckPermission("conveyTask:edit")
@PostMapping("reporterConveyTaskComplete") @PostMapping("reporterConveyTaskComplete")
public AppServeResponse reporterConveyTaskComplete(@RequestBody @Validated ReporterConveyTaskStatusReq request) { public AppServeResponse reporterConveyTaskComplete(@RequestBody @Validated ReporterConveyTaskStatusReq request) {
return conveyTaskService.reporterConveyTaskComplete(request); return conveyTaskService.reporterConveyTaskComplete(request);
@ -107,6 +115,7 @@ public class ConveyTaskController {
* @param request 汇报参数 * @param request 汇报参数
* @return 汇报结果 * @return 汇报结果
*/ */
@SaCheckPermission("conveyTask:edit")
@PostMapping("reporterConveyTaskCancel") @PostMapping("reporterConveyTaskCancel")
public AppServeResponse reporterConveyTaskCancel(@RequestBody @Validated ReporterConveyTaskStatusReq request) { public AppServeResponse reporterConveyTaskCancel(@RequestBody @Validated ReporterConveyTaskStatusReq request) {
return conveyTaskService.reporterConveyTaskCancel(request); return conveyTaskService.reporterConveyTaskCancel(request);
@ -117,6 +126,7 @@ public class ConveyTaskController {
* @param request 汇报参数 * @param request 汇报参数
* @return 汇报结果 * @return 汇报结果
*/ */
@SaCheckPermission("conveyTaskBak:edit")
@PostMapping("reporterConveyTaskBakComplete") @PostMapping("reporterConveyTaskBakComplete")
public AppServeResponse reporterConveyTaskBakComplete(@RequestBody @Validated ReporterConveyTaskStatusReq request) { public AppServeResponse reporterConveyTaskBakComplete(@RequestBody @Validated ReporterConveyTaskStatusReq request) {
return conveyTaskService.reporterConveyTaskBakComplete(request); return conveyTaskService.reporterConveyTaskBakComplete(request);
@ -127,6 +137,7 @@ public class ConveyTaskController {
* @param request 汇报参数 * @param request 汇报参数
* @return 汇报结果 * @return 汇报结果
*/ */
@SaCheckPermission("conveyTaskBak:edit")
@PostMapping("reporterConveyTaskBakCancel") @PostMapping("reporterConveyTaskBakCancel")
public AppServeResponse reporterConveyTaskBakCancel(@RequestBody @Validated ReporterConveyTaskStatusReq request) { public AppServeResponse reporterConveyTaskBakCancel(@RequestBody @Validated ReporterConveyTaskStatusReq request) {
return conveyTaskService.reporterConveyTaskBakCancel(request); return conveyTaskService.reporterConveyTaskBakCancel(request);
@ -137,6 +148,7 @@ public class ConveyTaskController {
* @param response 响应 * @param response 响应
* @param request 查询参数 * @param request 查询参数
*/ */
@SaCheckPermission("conveyTaskBak:export")
@PostMapping("exportConveyTaskBak") @PostMapping("exportConveyTaskBak")
public void exportConveyTaskBak(HttpServletResponse response, @RequestBody @Validated QueryConveyTaskReq request) { public void exportConveyTaskBak(HttpServletResponse response, @RequestBody @Validated QueryConveyTaskReq request) {
conveyTaskService.exportConveyTaskBak(response, request); conveyTaskService.exportConveyTaskBak(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.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -34,6 +35,7 @@ public class EtagBaseController {
* @param pageSize 页大小 * @param pageSize 页大小
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagController:query")
@PostMapping("queryEtagController") @PostMapping("queryEtagController")
public AppServeDataResponse<PageDataResponse<EtagControllerVo>> queryEtagController(@RequestBody EtagControllerQueryReq request, @RequestParam("pageIndex") @NotNull(message = "页码不能为空") Integer pageIndex, @RequestParam("pageSize") @NotNull(message = "页大小不能为空") Integer pageSize) { public AppServeDataResponse<PageDataResponse<EtagControllerVo>> queryEtagController(@RequestBody EtagControllerQueryReq request, @RequestParam("pageIndex") @NotNull(message = "页码不能为空") Integer pageIndex, @RequestParam("pageSize") @NotNull(message = "页大小不能为空") Integer pageSize) {
return etagBaseService.queryEtagController(request, pageIndex, pageSize); return etagBaseService.queryEtagController(request, pageIndex, pageSize);
@ -44,6 +46,7 @@ public class EtagBaseController {
* @param request 新增参数 * @param request 新增参数
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagController:add")
@PostMapping("addEtagController") @PostMapping("addEtagController")
public AppServeResponse addEtagController(@RequestBody @Validated AddEtagControllerReq request) { public AppServeResponse addEtagController(@RequestBody @Validated AddEtagControllerReq request) {
return etagBaseService.addEtagController(request); return etagBaseService.addEtagController(request);
@ -54,6 +57,7 @@ public class EtagBaseController {
* @param request 修改参数 * @param request 修改参数
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagController:edit")
@PutMapping("updateEtagController") @PutMapping("updateEtagController")
public AppServeResponse updateEtagController(@RequestBody @Validated UpdateEtagControllerReq request) { public AppServeResponse updateEtagController(@RequestBody @Validated UpdateEtagControllerReq request) {
return etagBaseService.updateEtagController(request); return etagBaseService.updateEtagController(request);
@ -64,6 +68,7 @@ public class EtagBaseController {
* @param controllerId 控制器ID * @param controllerId 控制器ID
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagController:delete")
@DeleteMapping("deleteEtagController") @DeleteMapping("deleteEtagController")
public AppServeResponse deleteEtagController(@RequestParam @NotNull(message = "控制器ID不能为空") Integer controllerId) { public AppServeResponse deleteEtagController(@RequestParam @NotNull(message = "控制器ID不能为空") Integer controllerId) {
return etagBaseService.deleteEtagController(controllerId); return etagBaseService.deleteEtagController(controllerId);
@ -78,6 +83,7 @@ public class EtagBaseController {
* @param pageSize 页大小 * @param pageSize 页大小
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagTag:query")
@PostMapping("queryEtagTagInfo") @PostMapping("queryEtagTagInfo")
public AppServeDataResponse<PageDataResponse<EtagTagInfoVo>> queryEtagTagInfo(@RequestBody EtagTagInfoQueryReq request, @RequestParam("pageIndex") @NotNull(message = "页码不能为空") Integer pageIndex, @RequestParam("pageSize") @NotNull(message = "页大小不能为空") Integer pageSize) { public AppServeDataResponse<PageDataResponse<EtagTagInfoVo>> queryEtagTagInfo(@RequestBody EtagTagInfoQueryReq request, @RequestParam("pageIndex") @NotNull(message = "页码不能为空") Integer pageIndex, @RequestParam("pageSize") @NotNull(message = "页大小不能为空") Integer pageSize) {
return etagBaseService.queryEtagTagInfo(request, pageIndex, pageSize); return etagBaseService.queryEtagTagInfo(request, pageIndex, pageSize);
@ -88,6 +94,7 @@ public class EtagBaseController {
* @param request 新增参数 * @param request 新增参数
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagTag:add")
@PostMapping("addEtagTagInfo") @PostMapping("addEtagTagInfo")
public AppServeResponse addEtagTagInfo(@RequestBody @Validated AddEtagTagInfoReq request) { public AppServeResponse addEtagTagInfo(@RequestBody @Validated AddEtagTagInfoReq request) {
return etagBaseService.addEtagTagInfo(request); return etagBaseService.addEtagTagInfo(request);
@ -98,6 +105,7 @@ public class EtagBaseController {
* @param request 修改参数 * @param request 修改参数
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagTag:edit")
@PutMapping("updateEtagTagInfo") @PutMapping("updateEtagTagInfo")
public AppServeResponse updateEtagTagInfo(@RequestBody @Validated UpdateEtagTagInfoReq request) { public AppServeResponse updateEtagTagInfo(@RequestBody @Validated UpdateEtagTagInfoReq request) {
return etagBaseService.updateEtagTagInfo(request); return etagBaseService.updateEtagTagInfo(request);
@ -108,6 +116,7 @@ public class EtagBaseController {
* @param tagName 标签名称 * @param tagName 标签名称
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagTag:delete")
@DeleteMapping("deleteEtagTagInfo") @DeleteMapping("deleteEtagTagInfo")
public AppServeResponse deleteEtagTagInfo(@RequestParam @NotNull(message = "标签名称不能为空") String tagName) { public AppServeResponse deleteEtagTagInfo(@RequestParam @NotNull(message = "标签名称不能为空") String tagName) {
return etagBaseService.deleteEtagTagInfo(tagName); return etagBaseService.deleteEtagTagInfo(tagName);
@ -122,6 +131,7 @@ public class EtagBaseController {
* @param pageSize 页大小 * @param pageSize 页大小
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagLocation:query")
@PostMapping("queryEtagLocation") @PostMapping("queryEtagLocation")
public AppServeDataResponse<PageDataResponse<EtagLocationVo>> queryEtagLocation(@RequestBody EtagLocationQueryReq request, @RequestParam("pageIndex") @NotNull(message = "页码不能为空") Integer pageIndex, @RequestParam("pageSize") @NotNull(message = "页大小不能为空") Integer pageSize) { public AppServeDataResponse<PageDataResponse<EtagLocationVo>> queryEtagLocation(@RequestBody EtagLocationQueryReq request, @RequestParam("pageIndex") @NotNull(message = "页码不能为空") Integer pageIndex, @RequestParam("pageSize") @NotNull(message = "页大小不能为空") Integer pageSize) {
return etagBaseService.queryEtagLocation(request, pageIndex, pageSize); return etagBaseService.queryEtagLocation(request, pageIndex, pageSize);
@ -132,6 +142,7 @@ public class EtagBaseController {
* @param request 新增参数 * @param request 新增参数
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagLocation:add")
@PostMapping("addEtagLocation") @PostMapping("addEtagLocation")
public AppServeResponse addEtagLocation(@RequestBody @Validated AddEtagLocationReq request) { public AppServeResponse addEtagLocation(@RequestBody @Validated AddEtagLocationReq request) {
return etagBaseService.addEtagLocation(request); return etagBaseService.addEtagLocation(request);
@ -142,6 +153,7 @@ public class EtagBaseController {
* @param request 修改参数 * @param request 修改参数
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagLocation:edit")
@PutMapping("updateEtagLocation") @PutMapping("updateEtagLocation")
public AppServeResponse updateEtagLocation(@RequestBody @Validated UpdateEtagLocationReq request) { public AppServeResponse updateEtagLocation(@RequestBody @Validated UpdateEtagLocationReq request) {
return etagBaseService.updateEtagLocation(request); return etagBaseService.updateEtagLocation(request);
@ -152,6 +164,7 @@ public class EtagBaseController {
* @param recordId 记录号 * @param recordId 记录号
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagLocation:delete")
@DeleteMapping("deleteEtagLocation/{recordId}") @DeleteMapping("deleteEtagLocation/{recordId}")
public AppServeResponse deleteEtagLocation(@PathVariable @NotNull(message = "记录号不能为空") String recordId) { public AppServeResponse deleteEtagLocation(@PathVariable @NotNull(message = "记录号不能为空") String recordId) {
return etagBaseService.deleteEtagLocation(recordId); return etagBaseService.deleteEtagLocation(recordId);

View File

@ -1,5 +1,7 @@
package org.wcs.serve.controller.app; package org.wcs.serve.controller.app;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import jakarta.validation.constraints.Min; import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -35,6 +37,7 @@ public class EtagTaskController {
* @param pageSize 页大小 * @param pageSize 页大小
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagTask:query")
@PostMapping("/queryEtagTask") @PostMapping("/queryEtagTask")
public AppServeDataResponse<PageDataResponse<EtagTaskVo>> queryEtagTask(@RequestBody EtagTaskQueryReq request, @RequestParam("pageIndex") @NotNull(message = "页码不能为空") Integer pageIndex, @RequestParam("pageSize") @NotNull(message = "页大小不能为空") Integer pageSize) { public AppServeDataResponse<PageDataResponse<EtagTaskVo>> queryEtagTask(@RequestBody EtagTaskQueryReq request, @RequestParam("pageIndex") @NotNull(message = "页码不能为空") Integer pageIndex, @RequestParam("pageSize") @NotNull(message = "页大小不能为空") Integer pageSize) {
return etagTaskService.queryEtagTask(request, pageIndex, pageSize); return etagTaskService.queryEtagTask(request, pageIndex, pageSize);
@ -46,6 +49,7 @@ public class EtagTaskController {
* @param request 新增参数 * @param request 新增参数
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagTask:add")
@PostMapping("/addEtagTask") @PostMapping("/addEtagTask")
public AppServeResponse addEtagTask(@RequestBody @Validated AddEtagTaskReq request) { public AppServeResponse addEtagTask(@RequestBody @Validated AddEtagTaskReq request) {
return etagTaskService.addEtagTask(request); return etagTaskService.addEtagTask(request);
@ -56,6 +60,7 @@ public class EtagTaskController {
* @param request 修改参数 * @param request 修改参数
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagTask:edit")
@PostMapping("/updateEtagTask") @PostMapping("/updateEtagTask")
public AppServeResponse updateEtagTask(@RequestBody @Validated UpdateEtagTaskReq request) { public AppServeResponse updateEtagTask(@RequestBody @Validated UpdateEtagTaskReq request) {
return etagTaskService.updateEtagTask(request); return etagTaskService.updateEtagTask(request);
@ -68,6 +73,7 @@ public class EtagTaskController {
* @param pageSize 页大小 * @param pageSize 页大小
* @return 响应 * @return 响应
*/ */
@SaCheckPermission("etagTaskBak:query")
@PostMapping("/queryEtagTaskBak") @PostMapping("/queryEtagTaskBak")
public AppServeDataResponse<PageDataResponse<EtagTaskBakVo>> queryEtagTaskBak(@RequestBody EtagTaskQueryReq request, @RequestParam("pageIndex") @NotNull(message = "页码不能为空") Integer pageIndex, @RequestParam("pageSize") @NotNull(message = "页大小不能为空") Integer pageSize) { public AppServeDataResponse<PageDataResponse<EtagTaskBakVo>> queryEtagTaskBak(@RequestBody EtagTaskQueryReq request, @RequestParam("pageIndex") @NotNull(message = "页码不能为空") Integer pageIndex, @RequestParam("pageSize") @NotNull(message = "页大小不能为空") Integer pageSize) {
return etagTaskService.queryEtagTaskBak(request, pageIndex, pageSize); return etagTaskService.queryEtagTaskBak(request, pageIndex, pageSize);
@ -80,6 +86,7 @@ public class EtagTaskController {
* @param confirmNum 确认数量 * @param confirmNum 确认数量
* @return 响应 * @return 响应
*/ */
@SaCheckPermission(value = {"etagTask:upload", "etagTaskBak:upload"}, mode = SaMode.OR)
@PutMapping("/uploadTaskConfirmNum") @PutMapping("/uploadTaskConfirmNum")
public AppServeResponse uploadTaskConfirmNum(@RequestParam("taskId") @NotBlank(message = "任务ID不允许未为空") String taskId, @RequestParam("confirmNum") @NotNull(message = "确认数不能为空") @Min(value = 0, message = "确认数不能小于0") Integer confirmNum) { public AppServeResponse uploadTaskConfirmNum(@RequestParam("taskId") @NotBlank(message = "任务ID不允许未为空") String taskId, @RequestParam("confirmNum") @NotNull(message = "确认数不能为空") @Min(value = 0, message = "确认数不能小于0") Integer confirmNum) {
return etagTaskService.uploadTaskConfirmNum(taskId, confirmNum); return etagTaskService.uploadTaskConfirmNum(taskId, confirmNum);

View File

@ -1,10 +1,10 @@
spring: spring:
# 开发环境数据库 # 开发环境数据库
datasource: datasource:
url: jdbc:mysql://127.0.0.1:3306/wcs?characterEncoding=utf8&useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true url: jdbc:mysql://127.0.0.1:3306/wcs_java_demo?characterEncoding=utf8&useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
# jdbc.url=jdbc:mysql://localhost:3306/imoocdemo?useUnicode=true&characterEncoding=utf8&useSSL=false&&serverTimezone=CST # jdbc.url=jdbc:mysql://localhost:3306/imoocdemo?useUnicode=true&characterEncoding=utf8&useSSL=false&&serverTimezone=CST
username: root username: developer
password: Root123456 password: developer
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
# 开发环境Redis配置 # 开发环境Redis配置
data: data:

View File

@ -15,7 +15,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
// } // }
const axiosInstance = axios.create({ const axiosInstance = axios.create({
baseURL: 'http://localhost:9970/api/wcsdev', baseURL: 'http://112.4.208.194:3002/wcsDemoServe/api/wcsdev',
timeout: 30000, timeout: 30000,
headers: { headers: {
"Content-Type": "application/json" "Content-Type": "application/json"

View File

@ -1,11 +1,25 @@
<!--权限组件-->
<script setup lang="ts"> <script setup lang="ts">
import {menuStore} from "@/stores/menu.ts";
import {computed} from "vue";
const props = defineProps<{ const props = defineProps<{
permission: string; permission: string;
}>(); }>();
const menuStoreInstance = menuStore(); //
//
const isHavePermission = computed(() => {
return menuStoreInstance.checkOperationPermission(props.permission);
});
</script> </script>
<template> <template>
<slot> </slot> <slot v-if="isHavePermission"> </slot>
</template> </template>
<style scoped> <style scoped>

View File

@ -6,6 +6,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import ConveyStandApi from "@/api/conveyStand.ts"; import ConveyStandApi from "@/api/conveyStand.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']);
@ -84,7 +85,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="conveyCheckStand: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

@ -6,6 +6,7 @@ import ConveyStandApi from "@/api/conveyStand.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 {IAppConveyDeliverStand} from "@/model/table/IAppConveyDeliverStand.ts"; import type {IAppConveyDeliverStand} from "@/model/table/IAppConveyDeliverStand.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']);
@ -84,7 +85,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="conveyDeliverStand: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

@ -7,6 +7,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import ConveyStandApi from "@/api/conveyStand.ts"; import ConveyStandApi from "@/api/conveyStand.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']);
@ -94,7 +95,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="conveyPickStand: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

@ -6,6 +6,7 @@ import ConveyStandApi from "@/api/conveyStand.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 {IAppConveyCheckStand} from "@/model/table/IAppConveyCheckStand.ts"; import type {IAppConveyCheckStand} from "@/model/table/IAppConveyCheckStand.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<{ const props = defineProps<{
@ -100,8 +101,8 @@ const deleteStand = () => {
</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="conveyCheckStand:edit"><el-button type="primary" @click="save">保存数据</el-button></app-permission>
<el-button type="warning" @click="deleteStand">删除站台</el-button> <app-permission permission="conveyCheckStand:delete"><el-button type="warning" @click="deleteStand">删除站台</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 ConveyStandApi from "@/api/conveyStand.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 {IAppConveyDeliverStand} from "@/model/table/IAppConveyDeliverStand.ts"; import type {IAppConveyDeliverStand} from "@/model/table/IAppConveyDeliverStand.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<{ const props = defineProps<{
@ -100,8 +101,8 @@ const deleteStand = () => {
</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="conveyDeliverStand:edit"><el-button type="primary" @click="save">保存数据</el-button></app-permission>
<el-button type="warning" @click="deleteStand">删除站台</el-button> <app-permission permission="conveyDeliverStand:delete"><el-button type="warning" @click="deleteStand">删除站台</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 ConveyApi from "@/api/convey.ts";
import ConveyStandApi from "@/api/conveyStand.ts"; import ConveyStandApi from "@/api/conveyStand.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 props = defineProps<{ const props = defineProps<{
@ -111,8 +112,8 @@ const deleteStand = () => {
</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="conveyPickStand:edit"><el-button type="primary" @click="save">保存数据</el-button></app-permission>
<el-button type="warning" @click="deleteStand">删除站台</el-button> <app-permission permission="conveyPickStand:delete"><el-button type="warning" @click="deleteStand">删除站台</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 MessageUtils from "@/utils/MessageUtils.ts";
import ConveyTaskApi from "@/api/conveyTask.ts"; import ConveyTaskApi from "@/api/conveyTask.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']);
@ -113,7 +114,7 @@ const validate = (): string => {
</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="conveyTask: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

@ -8,6 +8,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import ConveyTaskApi from "@/api/conveyTask.ts"; import ConveyTaskApi from "@/api/conveyTask.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']);
@ -182,7 +183,7 @@ const reportTaskCancel = () => {
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-button type="primary" @click="updateStatus">保存状态</el-button> <app-permission permission="conveyTask:edit"><el-button type="primary" @click="updateStatus">保存状态</el-button></app-permission>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
@ -229,12 +230,12 @@ const reportTaskCancel = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group style="margin-right: 20px"> <el-button-group style="margin-right: 20px">
<el-button type="success" @click="reportComplete">上报任务完成</el-button> <app-permission permission="conveyTask:edit"><el-button type="success" @click="reportComplete">上报任务完成</el-button></app-permission>
<el-button type="warning" @click="reportTaskCancel">上报任务取消</el-button> <app-permission permission="conveyTask:edit"><el-button type="warning" @click="reportTaskCancel">上报任务取消</el-button></app-permission>
</el-button-group> </el-button-group>
<el-button-group> <el-button-group>
<el-button type="success" @click="complete">完成任务</el-button> <app-permission permission="conveyTask:edit"><el-button type="success" @click="complete">完成任务</el-button></app-permission>
<el-button type="warning" @click="cancel">取消任务</el-button> <app-permission permission="conveyTask:edit"><el-button type="warning" @click="cancel">取消任务</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 ConveyTaskApi from "@/api/conveyTask.ts"; import ConveyTaskApi from "@/api/conveyTask.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']);
@ -152,8 +153,8 @@ const reportTaskCancel = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group style="margin-right: 20px"> <el-button-group style="margin-right: 20px">
<el-button type="success" @click="reportComplete">上报任务完成</el-button> <app-permission permission="conveyTaskBak:edit"><el-button type="success" @click="reportComplete">上报任务完成</el-button></app-permission>
<el-button type="warning" @click="reportTaskCancel">上报任务取消</el-button> <app-permission permission="conveyTaskBak:edit"><el-button type="warning" @click="reportTaskCancel">上报任务取消</el-button></app-permission>
</el-button-group> </el-button-group>
<el-button-group> <el-button-group>
<el-button type="danger" @click="close">关闭窗口</el-button> <el-button type="danger" @click="close">关闭窗口</el-button>

View File

@ -6,6 +6,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import EtagBaseApi from "@/api/etagBase.ts"; import EtagBaseApi from "@/api/etagBase.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']);
@ -67,7 +68,7 @@ const add = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="add">{{t('baseButton.add')}}</el-button> <app-permission permission="etagController:add"><el-button type="primary" @click="add">{{t('baseButton.add')}}</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

@ -6,6 +6,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import EtagBaseApi from "@/api/etagBase.ts"; import EtagBaseApi from "@/api/etagBase.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']);
@ -92,8 +93,8 @@ const deleteData = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="save">{{t('baseButton.save')}}</el-button> <app-permission permission="etagController:edit"><el-button type="primary" @click="save">{{t('baseButton.save')}}</el-button></app-permission>
<el-button type="warning" @click="deleteData">{{t('baseButton.delete')}}</el-button> <app-permission permission="etagController:delete"><el-button type="warning" @click="deleteData">{{t('baseButton.delete')}}</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

@ -8,6 +8,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import EtagBaseApi from "@/api/etagBase.ts"; import EtagBaseApi from "@/api/etagBase.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']);
@ -76,7 +77,7 @@ const add = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="add">{{t('baseButton.add')}}</el-button> <app-permission permission="etagLocation"><el-button type="primary" @click="add">{{t('baseButton.add')}}</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

@ -8,6 +8,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import EtagBaseApi from "@/api/etagBase.ts"; import EtagBaseApi from "@/api/etagBase.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 props = defineProps<{ const props = defineProps<{
@ -100,8 +101,8 @@ const deleteData = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="save">{{t('baseButton.save')}}</el-button> <app-permission permission="etagLocation:edit"><el-button type="primary" @click="save">{{t('baseButton.save')}}</el-button></app-permission>
<el-button type="warning" @click="deleteData">{{t('baseButton.delete')}}</el-button> <app-permission permission="etagLocation:delete"><el-button type="warning" @click="deleteData">{{t('baseButton.delete')}}</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

@ -8,6 +8,7 @@ import EtagBaseApi from "@/api/etagBase.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 EtagTagBusinessTypeFormatter from "@/plugin/formatter/EtagTagBusinessTypeFormatter.ts"; import EtagTagBusinessTypeFormatter from "@/plugin/formatter/EtagTagBusinessTypeFormatter.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']);
@ -82,7 +83,7 @@ const add = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="add">{{t('baseButton.add')}}</el-button> <app-permission permission="etagTag:add"><el-button type="primary" @click="add">{{t('baseButton.add')}}</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

@ -8,6 +8,7 @@ import EtagBaseApi from "@/api/etagBase.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 EtagTagBusinessTypeFormatter from "@/plugin/formatter/EtagTagBusinessTypeFormatter.ts"; import EtagTagBusinessTypeFormatter from "@/plugin/formatter/EtagTagBusinessTypeFormatter.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']);
@ -104,8 +105,8 @@ const deleteTag = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="save">{{t('baseButton.save')}}</el-button> <app-permission permission="etagTag:edit"><el-button type="primary" @click="save">{{t('baseButton.save')}}</el-button></app-permission>
<el-button type="warning" @click="deleteTag">{{t('baseButton.delete')}}</el-button> <app-permission permission="etagTag:delete"><el-button type="warning" @click="deleteTag">{{t('baseButton.delete')}}</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

@ -8,6 +8,7 @@ import MessageUtils from "@/utils/MessageUtils.ts";
import EtagTaskApi from "@/api/etagTask.ts"; import EtagTaskApi from "@/api/etagTask.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']);
@ -94,7 +95,7 @@ const add = () => {
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="add">{{t('baseButton.add')}}</el-button> <app-permission permission="etagTask:add"><el-button type="primary" @click="add">{{t('baseButton.add')}}</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 type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import EtagTaskStatusFormatter from "@/plugin/formatter/EtagTaskStatusFormatter.ts"; import EtagTaskStatusFormatter from "@/plugin/formatter/EtagTaskStatusFormatter.ts";
import {StarFilled} from "@element-plus/icons-vue"; import {StarFilled} from "@element-plus/icons-vue";
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: IAppEtagTask}>(); const props = defineProps<{formData: IAppEtagTask}>();
@ -134,21 +135,19 @@ const confirm = () => {
<el-input-number :min="1" :max="32000" v-model="confirmNum" placeholder=""></el-input-number> <el-input-number :min="1" :max="32000" v-model="confirmNum" placeholder=""></el-input-number>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="confirm">{{t('tabPage.etagTask.report')}}</el-button> <app-permission permission="etagTask:upload"><el-button type="primary" @click="confirm">{{t('tabPage.etagTask.report')}}</el-button></app-permission>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </el-row>
<el-divider> <el-divider>
<el-icon><star-filled /></el-icon> <el-icon><star-filled /></el-icon>
</el-divider> </el-divider>
</el-col> </el-col>
</el-row> </el-row>
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<el-button-group> <el-button-group>
<el-button type="primary" @click="save">{{t('baseButton.save')}}</el-button> <app-permission permission="etagTask:edit"><el-button type="primary" @click="save">{{t('baseButton.save')}}</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 type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import EtagTaskStatusFormatter from "@/plugin/formatter/EtagTaskStatusFormatter.ts"; import EtagTaskStatusFormatter from "@/plugin/formatter/EtagTaskStatusFormatter.ts";
import {StarFilled} from "@element-plus/icons-vue"; import {StarFilled} from "@element-plus/icons-vue";
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: IAppEtagTask}>(); const props = defineProps<{formData: IAppEtagTask}>();
@ -107,7 +108,7 @@ const confirm = () => {
<el-input-number :min="1" :max="32000" v-model="confirmNum" placeholder=""></el-input-number> <el-input-number :min="1" :max="32000" v-model="confirmNum" placeholder=""></el-input-number>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="confirm">{{t('tabPage.etagTask.report')}}</el-button> <app-permission permission="etagTaskBak:upload"><el-button type="primary" @click="confirm">{{t('tabPage.etagTask.report')}}</el-button></app-permission>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </el-row>

View File

@ -1,4 +1,4 @@
import { createRouter, createWebHistory } from 'vue-router' import {createRouter, createWebHashHistory, createWebHistory} from 'vue-router'
import {CookieUtils} from "@/utils/CookieUtils.ts"; import {CookieUtils} from "@/utils/CookieUtils.ts";
import {userStore} from "@/stores/user.ts"; import {userStore} from "@/stores/user.ts";
//import {menuStore} from "@/stores/menu.ts"; //import {menuStore} from "@/stores/menu.ts";
@ -6,7 +6,7 @@ import {userStore} from "@/stores/user.ts";
//const noPermissionRouterName = ['main','home','error']; //const noPermissionRouterName = ['main','home','error'];
const router = createRouter({ const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL), history: createWebHashHistory(import.meta.env.BASE_URL),
routes: [ routes: [
{ path: '/', redirect: 'login' }, { path: '/', redirect: 'login' },
{ path: '/login', name: 'login', component: () => import('@/views/layout/LoginView.vue') }, { path: '/login', name: 'login', component: () => import('@/views/layout/LoginView.vue') },

View File

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import {ref} from "vue"; import {onMounted, ref} from "vue";
import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts"; import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts";
import MessageUtils from "@/utils/MessageUtils.ts"; import MessageUtils from "@/utils/MessageUtils.ts";
import ConveyStandApi from "@/api/conveyStand.ts"; import ConveyStandApi from "@/api/conveyStand.ts";
@ -11,7 +11,10 @@ import type {IConveyCheckStandSearch} from "@/interface/page/convey/IConveyCheck
import type {IAppConveyCheckStand} from "@/model/table/IAppConveyCheckStand.ts"; import type {IAppConveyCheckStand} from "@/model/table/IAppConveyCheckStand.ts";
import AddCheckStand from "@/components/page/conveyStand/AddCheckStand.vue"; import AddCheckStand from "@/components/page/conveyStand/AddCheckStand.vue";
import CheckStandDetail from "@/components/page/conveyStand/CheckStandDetail.vue"; import CheckStandDetail from "@/components/page/conveyStand/CheckStandDetail.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const searchParams = ref<IConveyCheckStandSearch>({}); const searchParams = ref<IConveyCheckStandSearch>({});
const trueFalseTagStyleFormatter = new TrueFalseTagStyleFormatter(); const trueFalseTagStyleFormatter = new TrueFalseTagStyleFormatter();
const tableData = ref<IAppConveyCheckStand[] | undefined>([]); const tableData = ref<IAppConveyCheckStand[] | undefined>([]);
@ -22,8 +25,15 @@ const showAdd = ref<boolean>(false); // 是否展示添加窗口
const showDetail = ref<boolean>(false); // const showDetail = ref<boolean>(false); //
const detailData = ref<IAppConveyCheckStand>({}); const detailData = ref<IAppConveyCheckStand>({});
onMounted(() => {
query(); //
});
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission("conveyCheckStand:query")) {
return;
}
const loadingInstance = MessageUtils.loading('查询中...'); const loadingInstance = MessageUtils.loading('查询中...');
ConveyStandApi.queryCheckStand(searchParams.value, pageSize.value, pageIndex.value).then((res) => { ConveyStandApi.queryCheckStand(searchParams.value, pageSize.value, pageIndex.value).then((res) => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -92,9 +102,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="conveyCheckStand: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="addStand">添加站台</el-button> <app-permission permission="conveyCheckStand:add"><el-button type="success" @click="addStand">添加站台</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import {ref} from "vue"; import {onMounted, ref} from "vue";
import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts"; import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts";
import MessageUtils from "@/utils/MessageUtils.ts"; import MessageUtils from "@/utils/MessageUtils.ts";
import ConveyStandApi from "@/api/conveyStand.ts"; import ConveyStandApi from "@/api/conveyStand.ts";
@ -11,7 +11,10 @@ import AddDeliverStand from "@/components/page/conveyStand/AddDeliverStand.vue";
import DeliverStandDetail from "@/components/page/conveyStand/DeliverStandDetail.vue"; import DeliverStandDetail from "@/components/page/conveyStand/DeliverStandDetail.vue";
import type {IConveyDeliverStandSearch} from "@/interface/page/convey/IConveyDeliverStandSearch.ts"; import type {IConveyDeliverStandSearch} from "@/interface/page/convey/IConveyDeliverStandSearch.ts";
import type {IAppConveyDeliverStand} from "@/model/table/IAppConveyDeliverStand.ts"; import type {IAppConveyDeliverStand} from "@/model/table/IAppConveyDeliverStand.ts";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const searchParams = ref<IConveyDeliverStandSearch>({}); const searchParams = ref<IConveyDeliverStandSearch>({});
const trueFalseTagStyleFormatter = new TrueFalseTagStyleFormatter(); const trueFalseTagStyleFormatter = new TrueFalseTagStyleFormatter();
const tableData = ref<IAppConveyDeliverStand[] | undefined>([]); const tableData = ref<IAppConveyDeliverStand[] | undefined>([]);
@ -22,8 +25,15 @@ const showAdd = ref<boolean>(false); // 是否展示添加窗口
const showDetail = ref<boolean>(false); // const showDetail = ref<boolean>(false); //
const detailData = ref<IAppConveyDeliverStand>({}); const detailData = ref<IAppConveyDeliverStand>({});
onMounted(() => {
query(); //
});
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('conveyDeliverStand:query')) {
return;
}
const loadingInstance = MessageUtils.loading('查询中...'); const loadingInstance = MessageUtils.loading('查询中...');
ConveyStandApi.queryDeliverStand(searchParams.value, pageSize.value, pageIndex.value).then((res) => { ConveyStandApi.queryDeliverStand(searchParams.value, pageSize.value, pageIndex.value).then((res) => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -92,9 +102,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="conveyDeliverStand: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="addStand">添加站台</el-button> <app-permission permission="conveyDeliverStand:add"><el-button type="success" @click="addStand">添加站台</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -1,8 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import {FormatterUtils} from "@/utils/FormatterUtils.ts";
import type {IConveyPickStandSearch} from "@/interface/page/convey/IConveyPickStandSearch.ts"; import type {IConveyPickStandSearch} from "@/interface/page/convey/IConveyPickStandSearch.ts";
import {ref} from "vue"; import {onMounted, ref} from "vue";
import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts"; import TrueFalseTagStyleFormatter from "@/plugin/formatter/TrueFalseTagStyleFormatter.ts";
import {ConveyPickStandTypeFormatter} from "@/plugin/formatter/ConveyPickStandTypeFormatter.ts"; import {ConveyPickStandTypeFormatter} from "@/plugin/formatter/ConveyPickStandTypeFormatter.ts";
import type {IAppConveyPickStand} from "@/model/table/IAppConveyPickStand.ts"; import type {IAppConveyPickStand} from "@/model/table/IAppConveyPickStand.ts";
@ -13,7 +12,10 @@ import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AddPickStand from "@/components/page/conveyStand/AddPickStand.vue"; import AddPickStand from "@/components/page/conveyStand/AddPickStand.vue";
import PickStandDetail from "@/components/page/conveyStand/PickStandDetail.vue"; import PickStandDetail from "@/components/page/conveyStand/PickStandDetail.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const searchParams = ref<IConveyPickStandSearch>({}); const searchParams = ref<IConveyPickStandSearch>({});
const trueFalseTagStyleFormatter = new TrueFalseTagStyleFormatter(); const trueFalseTagStyleFormatter = new TrueFalseTagStyleFormatter();
const conveyPickStandTypeFormatter = new ConveyPickStandTypeFormatter(); const conveyPickStandTypeFormatter = new ConveyPickStandTypeFormatter();
@ -25,8 +27,15 @@ const showAdd = ref<boolean>(false); // 是否展示添加窗口
const showDetail = ref<boolean>(false); // const showDetail = ref<boolean>(false); //
const detailData = ref<IAppConveyPickStand>({}); const detailData = ref<IAppConveyPickStand>({});
onMounted(() => {
query(); //
});
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('conveyPickStand:query')) {
return;
}
const loadingInstance = MessageUtils.loading('查询中...'); const loadingInstance = MessageUtils.loading('查询中...');
ConveyStandApi.queryPickStand(searchParams.value, pageSize.value, pageIndex.value).then((res) => { ConveyStandApi.queryPickStand(searchParams.value, pageSize.value, pageIndex.value).then((res) => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -102,9 +111,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="conveyPickStand: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="addStand">添加站台</el-button> <app-permission permission="conveyPickStand:add"><el-button type="success" @click="addStand">添加站台</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -2,7 +2,7 @@
import {FormatterUtils} from "@/utils/FormatterUtils.ts"; import {FormatterUtils} from "@/utils/FormatterUtils.ts";
import type {IConveyTaskQuery} from "@/interface/page/convey/IConveyTaskQuery.ts"; import type {IConveyTaskQuery} from "@/interface/page/convey/IConveyTaskQuery.ts";
import {ref} from "vue"; import {onMounted, ref} from "vue";
import type {IAppConveyTask} from "@/model/table/IAppConveyTask.ts"; import type {IAppConveyTask} from "@/model/table/IAppConveyTask.ts";
import ConveyTaskStatusFormatter from "@/plugin/formatter/ConveyTaskStatusFormatter.ts"; import ConveyTaskStatusFormatter from "@/plugin/formatter/ConveyTaskStatusFormatter.ts";
import ConveyTaskTypeFormatter from "@/plugin/formatter/ConveyTaskTypeFormatter.ts"; import ConveyTaskTypeFormatter from "@/plugin/formatter/ConveyTaskTypeFormatter.ts";
@ -13,7 +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 AddConveyTask from "@/components/page/conveyTask/AddConveyTask.vue"; import AddConveyTask from "@/components/page/conveyTask/AddConveyTask.vue";
import ConveyTaskDetail from "@/components/page/conveyTask/ConveyTaskDetail.vue"; import ConveyTaskDetail from "@/components/page/conveyTask/ConveyTaskDetail.vue";
import AppPermission from "@/components/manage/AppPermission.vue";
import {menuStore} from "@/stores/menu.ts";
const menuStoreInstance = menuStore();
const querySearch = ref<IConveyTaskQuery>({}); // const querySearch = ref<IConveyTaskQuery>({}); //
const tableData = ref<IAppConveyTask[] | undefined>([]); // const tableData = ref<IAppConveyTask[] | undefined>([]); //
const pageSize = ref<number>(100); // const pageSize = ref<number>(100); //
@ -25,8 +28,15 @@ const showAddTask = ref<boolean>(false); // 显示新增任务弹窗
const detailData = ref<IAppConveyTask>({}); const detailData = ref<IAppConveyTask>({});
const showDetail = ref<boolean>(false); const showDetail = ref<boolean>(false);
onMounted(() => {
query(); //
});
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission("conveyTask:query")) {
return;
}
const loadingInstance = MessageUtils.loading("查询中..."); const loadingInstance = MessageUtils.loading("查询中...");
ConveyTaskApi.query(querySearch.value, pageSize.value, pageIndex.value).then((res) => { ConveyTaskApi.query(querySearch.value, pageSize.value, pageIndex.value).then((res) => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -130,9 +140,9 @@ const handleEdit = (index: number, row: IAppConveyTask) => {
</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="conveyTask: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="conveyTask: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

@ -13,6 +13,7 @@ import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import ConveyTaskDetailBak from "@/components/page/conveyTask/ConveyTaskDetailBak.vue"; import ConveyTaskDetailBak from "@/components/page/conveyTask/ConveyTaskDetailBak.vue";
import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts"; import type {AppServeResponse} from "@/interface/api/AppServeResponse.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const querySearch = ref<IConveyTaskQuery>({}); // const querySearch = ref<IConveyTaskQuery>({}); //
const tableData = ref<IAppConveyTask[] | undefined>([]); // const tableData = ref<IAppConveyTask[] | undefined>([]); //
@ -143,9 +144,9 @@ const handleEdit = (index: number, row: IAppConveyTask) => {
</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="conveyTaskBak: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="exportData">导出数据</el-button> <app-permission permission="conveyTaskBak:export"><el-button type="info" @click="exportData">导出数据</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -2,7 +2,7 @@
import {FormatterUtils} from "@/utils/FormatterUtils.ts"; import {FormatterUtils} from "@/utils/FormatterUtils.ts";
import type {IEtagControllerQuery} from "@/interface/page/etagController/IEtagControllerQuery.ts"; import type {IEtagControllerQuery} from "@/interface/page/etagController/IEtagControllerQuery.ts";
import {ref} from "vue"; import {onMounted, ref} from "vue";
import type {IAppEtagController} from "@/model/table/IAppEtagController.ts"; import type {IAppEtagController} from "@/model/table/IAppEtagController.ts";
import {useI18n} from "vue-i18n"; import {useI18n} from "vue-i18n";
import MessageUtils from "@/utils/MessageUtils.ts"; import MessageUtils from "@/utils/MessageUtils.ts";
@ -13,7 +13,10 @@ import type {AppServeDataResponse} from "@/interface/api/AppServeDataResponse.ts
import AddEtagController from "@/components/page/etagController/AddEtagController.vue"; import AddEtagController from "@/components/page/etagController/AddEtagController.vue";
import EditEtagController from "@/components/page/etagController/EditEtagController.vue"; import EditEtagController from "@/components/page/etagController/EditEtagController.vue";
import DebugEtagController from "@/components/page/etagController/DebugEtagController.vue"; import DebugEtagController from "@/components/page/etagController/DebugEtagController.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const { t } = useI18n(); const { t } = useI18n();
const querySearch = ref<IEtagControllerQuery>({}); // const querySearch = ref<IEtagControllerQuery>({}); //
const tableData = ref<IAppEtagController[]>([]); // const tableData = ref<IAppEtagController[]>([]); //
@ -26,8 +29,15 @@ const editDialogData = ref<IAppEtagController>({}); // 修改对话框数据
const showDebugDialog = ref<boolean>(false); // const showDebugDialog = ref<boolean>(false); //
const debugDialogData = ref<IAppEtagController>({}); const debugDialogData = ref<IAppEtagController>({});
onMounted(() => {
query();
})
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('etagController:query')) {
return;
}
const loadingInstance = MessageUtils.loading('请稍后'); const loadingInstance = MessageUtils.loading('请稍后');
EtagBaseApi.getEtagControllerInfo(pageIndex.value, pageSize.value, querySearch.value).then(res => { EtagBaseApi.getEtagControllerInfo(pageIndex.value, pageSize.value, querySearch.value).then(res => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -105,8 +115,8 @@ const debug = (row: IAppEtagController) => {
</el-form> </el-form>
<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="etagController:query"><el-button type="primary" @click="query">{{t('baseButton.queryOrReflush')}}</el-button></app-permission>
<el-button type="success" @click="add">{{t('baseButton.addRecord')}}</el-button> <app-permission permission="etagController:add"><el-button type="success" @click="add">{{t('baseButton.addRecord')}}</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-group> </el-button-group>
</el-row> </el-row>

View File

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import {useI18n} from "vue-i18n"; import {useI18n} from "vue-i18n";
import {ref} from "vue"; import {onMounted, ref} from "vue";
import EtagLocationTypeFormatter from "@/plugin/formatter/EtagLocationTypeFormatter.ts"; import EtagLocationTypeFormatter from "@/plugin/formatter/EtagLocationTypeFormatter.ts";
import type {IEtagLocationQuery} from "@/interface/page/etagLocation/IEtagLocationQuery.ts"; import type {IEtagLocationQuery} from "@/interface/page/etagLocation/IEtagLocationQuery.ts";
import type {IAppEtagLocation} from "@/model/table/IAppEtagLocation.ts"; import type {IAppEtagLocation} from "@/model/table/IAppEtagLocation.ts";
@ -11,7 +11,10 @@ import type {PageDataResponse} from "@/interface/api/PageDataResponse.ts";
import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts"; import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnum.ts";
import AddEtagLocation from "@/components/page/etagLocation/AddEtagLocation.vue"; import AddEtagLocation from "@/components/page/etagLocation/AddEtagLocation.vue";
import EditEtagLocation from "@/components/page/etagLocation/EditEtagLocation.vue"; import EditEtagLocation from "@/components/page/etagLocation/EditEtagLocation.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const { t } = useI18n(); const { t } = useI18n();
const pageSize = ref<number>(100); // const pageSize = ref<number>(100); //
const pageIndex = ref<number>(1); // const pageIndex = ref<number>(1); //
@ -23,8 +26,15 @@ const showAddDialog = ref<boolean>(false); // 添加对话框显示
const showEditDialog = ref<boolean>(false); // const showEditDialog = ref<boolean>(false); //
const editData = ref<IAppEtagLocation>({}); // const editData = ref<IAppEtagLocation>({}); //
onMounted(() => {
query(); //
});
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('etagLocation:query')) {
return;
}
const loadingInstance = MessageUtils.loading(); const loadingInstance = MessageUtils.loading();
EtagBaseApi.getEtagLocationInfo(pageIndex.value, pageSize.value, querySearch.value).then(res => { EtagBaseApi.getEtagLocationInfo(pageIndex.value, pageSize.value, querySearch.value).then(res => {
const responseData = res.data; const responseData = res.data;
@ -90,8 +100,8 @@ const edit = (row: any) => {
</el-form> </el-form>
<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="etagLocation:query"><el-button type="primary" @click="query">{{t('baseButton.queryOrReflush')}}</el-button></app-permission>
<el-button type="success" @click="add">{{t('baseButton.addRecord')}}</el-button> <app-permission permission="etagLocation:add"><el-button type="success" @click="add">{{t('baseButton.addRecord')}}</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-group> </el-button-group>
</el-row> </el-row>

View File

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import {ref} from "vue"; import {onMounted, ref} from "vue";
import {useI18n} from "vue-i18n"; import {useI18n} from "vue-i18n";
import type {IEtagTagQuery} from "@/interface/page/etagTag/IEtagTagQuery.ts"; import type {IEtagTagQuery} from "@/interface/page/etagTag/IEtagTagQuery.ts";
import type {IAppEtagTag} from "@/model/table/IAppEtagTag.ts"; import type {IAppEtagTag} from "@/model/table/IAppEtagTag.ts";
@ -13,7 +13,10 @@ import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnu
import AddEtagTag from "@/components/page/etagTag/AddEtagTag.vue"; import AddEtagTag from "@/components/page/etagTag/AddEtagTag.vue";
import EditEtagTag from "@/components/page/etagTag/EditEtagTag.vue"; import EditEtagTag from "@/components/page/etagTag/EditEtagTag.vue";
import EtagTagBusinessTypeFormatter from "@/plugin/formatter/EtagTagBusinessTypeFormatter.ts"; import EtagTagBusinessTypeFormatter from "@/plugin/formatter/EtagTagBusinessTypeFormatter.ts";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const { t } = useI18n(); const { t } = useI18n();
const pageSize = ref<number>(100); // const pageSize = ref<number>(100); //
const pageIndex = ref<number>(1); // const pageIndex = ref<number>(1); //
@ -26,8 +29,15 @@ const showAddDialog = ref<boolean>(false); // 添加标签对话框显示状态
const showEditDialog = ref<boolean>(false); // const showEditDialog = ref<boolean>(false); //
const editDialogData = ref<IAppEtagTag>({}); // const editDialogData = ref<IAppEtagTag>({}); //
onMounted(() => {
query(); //
});
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('etagTag:query')) {
return;
}
const loadingInstance = MessageUtils.loading("正在查询"); const loadingInstance = MessageUtils.loading("正在查询");
EtagBaseApi.getEtagTagInfo(pageIndex.value, pageSize.value, querySearch.value).then((res) => { EtagBaseApi.getEtagTagInfo(pageIndex.value, pageSize.value, querySearch.value).then((res) => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -36,7 +46,7 @@ const query = () => {
tableData.value = response.data.data ?? []; tableData.value = response.data.data ?? [];
totalPages.value = response.data.totalCount; totalPages.value = response.data.totalCount;
MessageUtils.successMessage("查询成功"); MessageUtils.successMessage("查询成功");
return return;
} }
MessageUtils.warningMessageBox(response.msg, '警告'); MessageUtils.warningMessageBox(response.msg, '警告');
}).catch(() => {}).finally(() => { }).catch(() => {}).finally(() => {
@ -102,8 +112,8 @@ const add = () => {
</el-form> </el-form>
<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="etagTag:query"><el-button type="primary" @click="query">{{t('baseButton.queryOrReflush')}}</el-button></app-permission>
<el-button type="success" @click="add">{{t('baseButton.addRecord')}}</el-button> <app-permission permission="etagTag:add"><el-button type="success" @click="add">{{t('baseButton.addRecord')}}</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-group> </el-button-group>
</el-row> </el-row>

View File

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import {useI18n} from "vue-i18n"; import {useI18n} from "vue-i18n";
import {ref} from "vue"; import {onMounted, ref} from "vue";
import type {IEtagTaskQuery} from "@/interface/page/etagTask/IEtagTaskQuery.ts"; import type {IEtagTaskQuery} from "@/interface/page/etagTask/IEtagTaskQuery.ts";
import type {IAppEtagTask} from "@/model/table/IAppEtagTask.ts"; import type {IAppEtagTask} from "@/model/table/IAppEtagTask.ts";
import {EtagTaskTypeFormatter} from "@/plugin/formatter/EtagTaskTypeFormatter.ts"; import {EtagTaskTypeFormatter} from "@/plugin/formatter/EtagTaskTypeFormatter.ts";
@ -14,7 +14,10 @@ import {AppServeResponseCodeEnum} from "@/constant/enums/AppServeResponseCodeEnu
import {FormatterUtils} from "@/utils/FormatterUtils.ts"; import {FormatterUtils} from "@/utils/FormatterUtils.ts";
import AddEtagTask from "@/components/page/etagTask/AddEtagTask.vue"; import AddEtagTask from "@/components/page/etagTask/AddEtagTask.vue";
import EditEtagTask from "@/components/page/etagTask/EditEtagTask.vue"; import EditEtagTask from "@/components/page/etagTask/EditEtagTask.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const { t } = useI18n(); const { t } = useI18n();
const pageSize = ref<number>(100); // const pageSize = ref<number>(100); //
const pageIndex = ref<number>(1); // const pageIndex = ref<number>(1); //
@ -28,8 +31,15 @@ const showAddDialog = ref<boolean>(false); // 添加对话框显示状态
const editFormData = ref<IAppEtagTask>({}); // const editFormData = ref<IAppEtagTask>({}); //
const showEditDialog = ref<boolean>(false); // const showEditDialog = ref<boolean>(false); //
onMounted(() => {
query(); //
})
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('etagTask:query')) {
return;
}
const loadingInstance = MessageUtils.loading(); const loadingInstance = MessageUtils.loading();
EtagTaskApi.queryEtagTask(querySearch.value, pageIndex.value, pageSize.value).then(res => { EtagTaskApi.queryEtagTask(querySearch.value, pageIndex.value, pageSize.value).then(res => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -124,9 +134,9 @@ const edit = (row: IAppEtagTask) => {
</el-form> </el-form>
<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="etagTask:query"><el-button type="primary" @click="query">{{t('baseButton.queryOrReflush')}}</el-button></app-permission>
<el-button type="success" @click="add">{{t('baseButton.addRecord')}}</el-button>
<el-button type="warning" @click="resetInput">{{t('baseButton.resetInput')}}</el-button> <el-button type="warning" @click="resetInput">{{t('baseButton.resetInput')}}</el-button>
<app-permission permission="etagTask:add"><el-button type="success" @click="add">{{t('baseButton.addRecord')}}</el-button></app-permission>
</el-button-group> </el-button-group>
</el-row> </el-row>
</el-row> </el-row>

View File

@ -13,7 +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 {FormatterUtils} from "@/utils/FormatterUtils.ts"; import {FormatterUtils} from "@/utils/FormatterUtils.ts";
import EditEtagTaskBak from "@/components/page/etagTask/EditEtagTaskBak.vue"; import EditEtagTaskBak from "@/components/page/etagTask/EditEtagTaskBak.vue";
import {menuStore} from "@/stores/menu.ts";
import AppPermission from "@/components/manage/AppPermission.vue";
const menuStoreInstance = menuStore();
const { t } = useI18n(); const { t } = useI18n();
const pageSize = ref<number>(100); // const pageSize = ref<number>(100); //
const pageIndex = ref<number>(1); // const pageIndex = ref<number>(1); //
@ -28,6 +31,9 @@ const showEditDialog = ref<boolean>(false); // 修改窗口显示状态
// //
const query = () => { const query = () => {
if(!menuStoreInstance.checkOperationPermission('etagTaskBak:query')) {
return;
}
const loadingInstance = MessageUtils.loading(); const loadingInstance = MessageUtils.loading();
EtagTaskApi.queryEtagTaskBak(querySearch.value, pageIndex.value, pageSize.value).then(res => { EtagTaskApi.queryEtagTaskBak(querySearch.value, pageIndex.value, pageSize.value).then(res => {
const responseString = JSON.stringify(res.data); const responseString = JSON.stringify(res.data);
@ -118,7 +124,7 @@ const edit = (row: IAppEtagTask) => {
</el-form> </el-form>
<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="etagTaskBak:query"><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-group> </el-button-group>
</el-row> </el-row>

View File

@ -323,7 +323,7 @@ const getOperationPermission = () => {
> >
<template #default="{ node, data }"> <template #default="{ node, data }">
<el-text v-if="node.level <= 2" type="primary">{{ data.menuId }} --> {{ data.menuName }}</el-text> <el-text v-if="node.level <= 2" type="primary">{{ data.menuId }} --> {{ data.menuName }}</el-text>
<el-text v-if="node.level == 3" type="primary">{{ data.menuName }}</el-text> <el-text v-if="node.level == 3" type="primary">{{ data.menuName }}&nbsp;&nbsp;&nbsp;&nbsp;>>> {{ data.menuId }}</el-text>
</template> </template>
</el-tree> </el-tree>
</el-scrollbar> </el-scrollbar>

View File

@ -7,6 +7,7 @@ import vueDevTools from 'vite-plugin-vue-devtools'
// https://vite.dev/config/ // https://vite.dev/config/
export default defineConfig({ export default defineConfig({
base: '/',
plugins: [ plugins: [
vue(), vue(),
vueJsx(), vueJsx(),