From deb890911f16f28d0caf0edd7b96e8082bdd306d Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期二, 09 九月 2025 11:35:46 +0800
Subject: [PATCH] 新增前后端

---
 service/src/main/java/com/ruoyi/cwgl/controller/SmartLockerApplicationController.java    |  108 ++++++
 service/src/main/java/com/ruoyi/cwgl/service/impl/SmartLockerApplicationServiceImpl.java |  182 ++++++++++
 service/src/main/java/com/ruoyi/cwgl/mapper/SmartLockerApplicationMapper.java            |   87 ++++
 service/src/main/java/com/ruoyi/cwgl/domain/SmartLockerApplication.java                  |  131 +++++++
 ui/admin-ui3/src/views/cwgl/smartLockerApplication/index.vue                             |  184 ++++++++++
 service/src/main/java/com/ruoyi/cwgl/service/ISmartLockerApplicationService.java         |  102 +++++
 service/src/main/resources/mapper/cwgl/SmartLockerApplicationMapper.xml                  |  182 ++++++++++
 ui/admin-ui3/src/api/cwgl/smartLockerApplication.ts                                      |   67 +++
 8 files changed, 1,043 insertions(+), 0 deletions(-)

diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/SmartLockerApplicationController.java b/service/src/main/java/com/ruoyi/cwgl/controller/SmartLockerApplicationController.java
new file mode 100644
index 0000000..967d141
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/SmartLockerApplicationController.java
@@ -0,0 +1,108 @@
+package com.ruoyi.cwgl.controller;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.utils.file.DownloadExportUtil;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.cwgl.domain.SmartLockerApplication;
+import com.ruoyi.cwgl.service.ISmartLockerApplicationService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞咰ontroller
+ *
+ * @author ruoyi
+ * @date 2025-09-09
+ */
+@RestController
+@RequestMapping("/cwgl/smartLockerApplication")
+public class SmartLockerApplicationController extends BaseController
+{
+    @Autowired
+    private ISmartLockerApplicationService smartLockerApplicationService;
+
+
+
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:smartLockerApplication:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SmartLockerApplication smartLockerApplication)
+    {
+        startPage();
+        List<SmartLockerApplication> list = smartLockerApplicationService.selectSmartLockerApplicationList(smartLockerApplication);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗垪琛�
+     * @param smartLockerApplication 鏌ヨ鏉′欢瀵硅薄
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:smartLockerApplication:export')")
+    @Log(title = "鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(SmartLockerApplication smartLockerApplication,String exportKey)
+    {
+        smartLockerApplicationService.export(smartLockerApplication,exportKey);
+        return AjaxResult.success("瀵煎嚭璇锋眰鎴愬姛锛岃绋嶅悗鐐瑰嚮涓嬭浇...!");
+    }
+
+
+
+    /**
+     * 鑾峰彇鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗚缁嗕俊鎭�
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:smartLockerApplication:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return AjaxResult.success(smartLockerApplicationService.selectSmartLockerApplicationById(id));
+    }
+
+    /**
+     * 鏂板鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:smartLockerApplication:add')")
+    @Log(title = "鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SmartLockerApplication smartLockerApplication)
+    {
+        return toAjax(smartLockerApplicationService.insertSmartLockerApplication(smartLockerApplication));
+    }
+
+    /**
+     * 淇敼鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:smartLockerApplication:edit')")
+    @Log(title = "鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SmartLockerApplication smartLockerApplication)
+    {
+        return toAjax(smartLockerApplicationService.updateSmartLockerApplication(smartLockerApplication));
+    }
+
+    /**
+     * 鍒犻櫎鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:smartLockerApplication:remove')")
+    @Log(title = "鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(smartLockerApplicationService.deleteSmartLockerApplicationByIds(ids));
+    }
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/SmartLockerApplication.java b/service/src/main/java/com/ruoyi/cwgl/domain/SmartLockerApplication.java
new file mode 100644
index 0000000..27aeac8
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/SmartLockerApplication.java
@@ -0,0 +1,131 @@
+package com.ruoyi.cwgl.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.util.Date;
+import lombok.Data;
+/**
+ * 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗璞� smart_locker_application
+ *
+ * @author ruoyi
+ * @date 2025-09-09
+ */
+@Data
+public class SmartLockerApplication{
+
+
+    /** ID */
+        @TableField("id")
+    private Integer id;
+
+
+    /** 鎸囦护绫诲瀷(0:寮�闂ㄦ寚浠�;1:娴佽浆鎸囦护) */
+    @Excel(name = "鎸囦护绫诲瀷(0:寮�闂ㄦ寚浠�;1:娴佽浆鎸囦护)")
+
+        @TableField("command_type")
+    private Integer commandType;
+
+
+    /** 鐢抽浜虹紪鐮� */
+    @Excel(name = "鐢抽浜虹紪鐮�")
+
+        @TableField("applicant_code")
+    private String applicantCode;
+
+
+    /** 鐢抽浜哄鍚� */
+    @Excel(name = "鐢抽浜哄鍚�")
+
+        @TableField("applicant_name")
+    private String applicantName;
+
+
+    /** 棰嗗彇鐗╁搧绫诲瀷(0:杞﹂挜鍖�;1:鏂囦欢;2:鍗扮珷;3:鍏朵粬) */
+    @Excel(name = "棰嗗彇鐗╁搧绫诲瀷(0:杞﹂挜鍖�;1:鏂囦欢;2:鍗扮珷;3:鍏朵粬)")
+
+        @TableField("item_type")
+    private Integer itemType;
+
+
+    /** 鐗╁搧鍚嶇О锛堝綋棰嗗彇鐗╁搧绫诲瀷鏄溅閽ュ寵鐨勬椂鍊欙紝濉啓杞︾墝锛� */
+    @Excel(name = "鐗╁搧鍚嶇О", readConverterExp = "褰�=棰嗗彇鐗╁搧绫诲瀷鏄溅閽ュ寵鐨勬椂鍊欙紝濉啓杞︾墝")
+
+        @TableField("item_name")
+    private String itemName;
+
+
+    /** 鏅鸿兘鏌滅紪鍙烽粯璁ゆ帴椹崇珯鏅鸿兘閽ュ寵鏌� */
+    @Excel(name = "鏅鸿兘鏌滅紪鍙烽粯璁ゆ帴椹崇珯鏅鸿兘閽ュ寵鏌�")
+
+        @TableField("locker_no")
+    private String lockerNo;
+
+
+    /** 鏅鸿兘鏌滄牸鍙e彿 */
+    @Excel(name = "鏅鸿兘鏌滄牸鍙e彿")
+
+        @TableField("locker_port")
+    private Integer lockerPort;
+
+
+    /** 鐘舵��(0:姝e父;1:浣滃簾;2:棰嗗彇) */
+    @Excel(name = "鐘舵��(0:姝e父;1:浣滃簾;2:棰嗗彇)")
+
+        @TableField("status")
+    private Integer status;
+
+
+    /** 浣滃簾鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "浣滃簾鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+     @TableField("cancel_time")
+    private Date cancelTime;
+
+
+    /** 棰嗗彇鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "棰嗗彇鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+
+    @TableField("receive_time")
+    private Date receiveTime;
+
+
+    /** 鍒涘缓鏃堕棿 */
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @TableField("create_time")
+    private Date createTime;
+
+
+    /** 鏇存柊鏃堕棿 */
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @TableField("update_time")
+    private Date updateTime;
+
+
+    /** 澶囨敞 */
+    @Excel(name = "澶囨敞")
+
+        @TableField("remark")
+    private String remark;
+
+
+    /** 鍒涘缓浜� */
+        @TableField("create_by")
+    private String createBy;
+
+
+    /** 鏇存柊浜� */
+        @TableField("update_by")
+    private String updateBy;
+
+
+    /** 鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎) */
+    @Excel(name = "鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)")
+
+        @TableField("deleted")
+    private Integer deleted;
+
+
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/SmartLockerApplicationMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/SmartLockerApplicationMapper.java
new file mode 100644
index 0000000..4f697be
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/mapper/SmartLockerApplicationMapper.java
@@ -0,0 +1,87 @@
+package com.ruoyi.cwgl.mapper;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.SmartLockerApplication;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ * 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞哅apper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-09-09
+ */
+public interface SmartLockerApplicationMapper  extends BaseMapper<SmartLockerApplication>
+{
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * 
+     * @param id 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞咺D
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     */
+    public SmartLockerApplication selectSmartLockerApplicationById(Integer id);
+
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞� 璁板綍鏁�
+     *
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗛泦鍚�
+     */
+    public int selectSmartLockerApplicationCount(SmartLockerApplication smartLockerApplication);
+
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗垪琛�
+     * 
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗛泦鍚�
+     */
+    public List<SmartLockerApplication> selectSmartLockerApplicationList(SmartLockerApplication smartLockerApplication);
+
+    /**
+     * 鏂板鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * 
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    public int insertSmartLockerApplication(SmartLockerApplication smartLockerApplication);
+
+    /**
+     * 鏂板鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞哰鎵归噺]
+     *
+     * @param smartLockerApplications 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    public int insertSmartLockerApplicationBatch(List<SmartLockerApplication> smartLockerApplications);
+
+    /**
+     * 淇敼鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * 
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    public int updateSmartLockerApplication(SmartLockerApplication smartLockerApplication);
+
+    /**
+     * 淇敼鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞哰鎵归噺]
+     *
+     * @param smartLockerApplications 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    public int updateSmartLockerApplicationBatch(List<SmartLockerApplication> smartLockerApplications);
+
+    /**
+     * 鍒犻櫎鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * 
+     * @param id 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞咺D
+     * @return 缁撴灉
+     */
+    public int deleteSmartLockerApplicationById(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteSmartLockerApplicationByIds(Integer[] ids);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/ISmartLockerApplicationService.java b/service/src/main/java/com/ruoyi/cwgl/service/ISmartLockerApplicationService.java
new file mode 100644
index 0000000..52338b7
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/ISmartLockerApplicationService.java
@@ -0,0 +1,102 @@
+package com.ruoyi.cwgl.service;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.SmartLockerApplication;
+import com.baomidou.mybatisplus.extension.service.IService;
+/**
+ * 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞哠ervice鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-09-09
+ */
+public interface ISmartLockerApplicationService extends IService<SmartLockerApplication>
+{
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * 
+     * @param id 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞咺D
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     */
+    public SmartLockerApplication selectSmartLockerApplicationById(Integer id);
+
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞� 璁板綍鏁�
+     *
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗛泦鍚�
+     */
+    public int selectSmartLockerApplicationCount(SmartLockerApplication smartLockerApplication);
+
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗垪琛�
+     * 
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗛泦鍚�
+     */
+    public List<SmartLockerApplication> selectSmartLockerApplicationList(SmartLockerApplication smartLockerApplication);
+
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗垪琛� 寮傛 瀵煎嚭
+     *
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗛泦鍚�
+     */
+    public void export(SmartLockerApplication smartLockerApplication, String exportKey) ;
+
+
+    /**
+     * 鏂板鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * 
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    public int insertSmartLockerApplication(SmartLockerApplication smartLockerApplication);
+
+    /**
+     * 鏂板鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞哰鎵归噺]
+     *
+     * @param smartLockerApplications 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    public int insertSmartLockerApplicationBatch(List<SmartLockerApplication> smartLockerApplications);
+
+    /**
+     * 淇敼鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * 
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    public int updateSmartLockerApplication(SmartLockerApplication smartLockerApplication);
+
+    /**
+     * 淇敼鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞哰鎵归噺]
+     *
+     * @param smartLockerApplications 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    public int updateSmartLockerApplicationBatch(List<SmartLockerApplication> smartLockerApplications);
+    /**
+     * 鎵归噺鍒犻櫎鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteSmartLockerApplicationByIds(String ids);
+
+    /**
+     * 鎵归噺鍒犻櫎鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteSmartLockerApplicationByIds(Integer[] ids);
+
+    /**
+     * 鍒犻櫎鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗕俊鎭�
+     * 
+     * @param id 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞咺D
+     * @return 缁撴灉
+     */
+    public int deleteSmartLockerApplicationById(Integer id);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/SmartLockerApplicationServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/SmartLockerApplicationServiceImpl.java
new file mode 100644
index 0000000..9c42694
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/SmartLockerApplicationServiceImpl.java
@@ -0,0 +1,182 @@
+package com.ruoyi.cwgl.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.DateUtils;
+import javax.annotation.Resource;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.stereotype.Service;
+import org.springframework.scheduling.annotation.Async;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.common.core.service.BaseService;
+
+import com.ruoyi.cwgl.mapper.SmartLockerApplicationMapper;
+import com.ruoyi.cwgl.domain.SmartLockerApplication;
+import com.ruoyi.cwgl.service.ISmartLockerApplicationService;
+import com.ruoyi.common.core.text.Convert;
+
+/**
+ * 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞哠ervice涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2025-09-09
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class SmartLockerApplicationServiceImpl  extends BaseService<SmartLockerApplicationMapper, SmartLockerApplication> implements ISmartLockerApplicationService
+{
+    protected final Logger logger = LoggerFactory.getLogger(getClass());
+    @Resource
+    private SmartLockerApplicationMapper smartLockerApplicationMapper;
+
+
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     *
+     * @param id 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞咺D
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public SmartLockerApplication selectSmartLockerApplicationById(Integer id)
+    {
+        return smartLockerApplicationMapper.selectSmartLockerApplicationById(id);
+    }
+
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞� 璁板綍鏁�
+     *
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗛泦鍚�
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public int selectSmartLockerApplicationCount(SmartLockerApplication smartLockerApplication)
+    {
+        return smartLockerApplicationMapper.selectSmartLockerApplicationCount(smartLockerApplication);
+    }
+
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗垪琛�
+     *
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public List<SmartLockerApplication> selectSmartLockerApplicationList(SmartLockerApplication smartLockerApplication)
+    {
+        return smartLockerApplicationMapper.selectSmartLockerApplicationList(smartLockerApplication);
+    }
+
+    /**
+     * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗垪琛� 寮傛 瀵煎嚭
+     *
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+     * @return 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗛泦鍚�
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Async
+    @Override
+    public void export(SmartLockerApplication smartLockerApplication,String exportKey) {
+
+        super.export(SmartLockerApplication.class,exportKey,"smartLockerApplicationData",(pageNum)->{
+            PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
+            return selectSmartLockerApplicationList(smartLockerApplication);
+        });
+    }
+
+
+    /**
+     * 鏂板鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     *
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSmartLockerApplication(SmartLockerApplication smartLockerApplication)
+    {
+        smartLockerApplication.setCreateTime(DateUtils.getNowDate());
+        return smartLockerApplicationMapper.insertSmartLockerApplication(smartLockerApplication);
+    }
+
+    /**
+     * 鏂板鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞哰鎵归噺]
+     *
+     * @param smartLockerApplications 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSmartLockerApplicationBatch(List<SmartLockerApplication> smartLockerApplications)
+    {
+        int rows = smartLockerApplicationMapper.insertSmartLockerApplicationBatch(smartLockerApplications);
+        return rows;
+    }
+
+    /**
+     * 淇敼鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     *
+     * @param smartLockerApplication 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSmartLockerApplication(SmartLockerApplication smartLockerApplication)
+    {
+        smartLockerApplication.setUpdateTime(DateUtils.getNowDate());
+        return smartLockerApplicationMapper.updateSmartLockerApplication(smartLockerApplication);
+    }
+
+    /**
+     * 淇敼鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞哰鎵归噺]
+     *
+     * @param smartLockerApplications 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSmartLockerApplicationBatch(List<SmartLockerApplication> smartLockerApplications){
+        return smartLockerApplicationMapper.updateSmartLockerApplicationBatch(smartLockerApplications);
+    }
+
+    /**
+     * 鍒犻櫎鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗璞�
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmartLockerApplicationByIds(String ids)
+    {
+        return deleteSmartLockerApplicationByIds(Convert.toIntArray(ids));
+    }
+
+    /**
+     * 鍒犻櫎鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗璞�
+     *
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmartLockerApplicationByIds(Integer[] ids)
+    {
+        return smartLockerApplicationMapper.deleteSmartLockerApplicationByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗕俊鎭�
+     *
+     * @param id 鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞咺D
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmartLockerApplicationById(Integer id)
+    {
+        return smartLockerApplicationMapper.deleteSmartLockerApplicationById(id);
+    }
+}
diff --git a/service/src/main/resources/mapper/cwgl/SmartLockerApplicationMapper.xml b/service/src/main/resources/mapper/cwgl/SmartLockerApplicationMapper.xml
new file mode 100644
index 0000000..f1e237e
--- /dev/null
+++ b/service/src/main/resources/mapper/cwgl/SmartLockerApplicationMapper.xml
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.cwgl.mapper.SmartLockerApplicationMapper">
+
+    <resultMap type="com.ruoyi.cwgl.domain.SmartLockerApplication" id="SmartLockerApplicationResult">
+        <result property="id"    column="id"    />
+        <result property="commandType"    column="command_type"    />
+        <result property="applicantCode"    column="applicant_code"    />
+        <result property="applicantName"    column="applicant_name"    />
+        <result property="itemType"    column="item_type"    />
+        <result property="itemName"    column="item_name"    />
+        <result property="lockerNo"    column="locker_no"    />
+        <result property="lockerPort"    column="locker_port"    />
+        <result property="status"    column="status"    />
+        <result property="cancelTime"    column="cancel_time"    />
+        <result property="receiveTime"    column="receive_time"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="deleted"    column="deleted"    />
+    </resultMap>
+
+    <sql id="selectSmartLockerApplicationVo">
+        select thisTab.id, thisTab.command_type, thisTab.applicant_code, thisTab.applicant_name, thisTab.item_type, thisTab.item_name, thisTab.locker_no, thisTab.locker_port, thisTab.status, thisTab.cancel_time, thisTab.receive_time, thisTab.create_time, thisTab.update_time, thisTab.remark, thisTab.create_by, thisTab.update_by, thisTab.deleted from smart_locker_application AS thisTab
+    </sql>
+    <sql id="selectSmartLockerApplicationVoCount">
+        select count(0) from smart_locker_application as thisTab
+    </sql>
+
+    <sql id="whereCondition">
+        <if test="commandType != null "> and thisTab.command_type = #{commandType}</if>
+        <if test="applicantCode != null  and applicantCode != ''"> and thisTab.applicant_code = #{applicantCode}</if>
+        <if test="applicantName != null  and applicantName != ''"> and  thisTab.applicant_name like concat('%', #{applicantName}, '%')</if>
+        <if test="itemType != null "> and thisTab.item_type = #{itemType}</if>
+        <if test="itemName != null  and itemName != ''"> and  thisTab.item_name like concat('%', #{itemName}, '%')</if>
+        <if test="lockerNo != null  and lockerNo != ''"> and thisTab.locker_no = #{lockerNo}</if>
+        <if test="lockerPort != null "> and thisTab.locker_port = #{lockerPort}</if>
+        <if test="status != null "> and thisTab.status = #{status}</if>
+        <if test="cancelTime != null "> and thisTab.cancel_time = #{cancelTime}</if>
+        <if test="receiveTime != null "> and thisTab.receive_time = #{receiveTime}</if>
+        <if test="deleted != null "> and thisTab.deleted = #{deleted}</if>
+    </sql>
+
+    <!--鏌ヨ-->
+    <select id="selectSmartLockerApplicationById" parameterType="Integer" resultMap="SmartLockerApplicationResult">
+        <include refid="selectSmartLockerApplicationVo"/>
+        where id = #{id}
+    </select>
+
+    <select id="selectSmartLockerApplicationCount" parameterType="com.ruoyi.cwgl.domain.SmartLockerApplication" resultType="int">
+        <include refid="selectSmartLockerApplicationVoCount"/>
+        <where>
+            <include refid="whereCondition"/>
+        </where>
+    </select>
+
+    <select id="selectSmartLockerApplicationList" parameterType="com.ruoyi.cwgl.domain.SmartLockerApplication" resultMap="SmartLockerApplicationResult">
+        <include refid="selectSmartLockerApplicationVo"/>
+        <where>
+            <include refid="whereCondition"/>
+        </where>
+        order by thisTab.id desc
+    </select>
+
+    <!-- 鏂板 -->
+    <insert id="insertSmartLockerApplication" parameterType="com.ruoyi.cwgl.domain.SmartLockerApplication"  useGeneratedKeys="true" keyProperty="id">
+        insert into smart_locker_application
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="commandType != null">command_type,</if>
+            <if test="applicantCode != null and applicantCode != ''">applicant_code,</if>
+            <if test="applicantName != null and applicantName != ''">applicant_name,</if>
+            <if test="itemType != null">item_type,</if>
+            <if test="itemName != null and itemName != ''">item_name,</if>
+            <if test="lockerNo != null">locker_no,</if>
+            <if test="lockerPort != null">locker_port,</if>
+            <if test="status != null">status,</if>
+            <if test="cancelTime != null">cancel_time,</if>
+            <if test="receiveTime != null">receive_time,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="deleted != null">deleted,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="commandType != null">#{commandType},</if>
+            <if test="applicantCode != null and applicantCode != ''">#{applicantCode},</if>
+            <if test="applicantName != null and applicantName != ''">#{applicantName},</if>
+            <if test="itemType != null">#{itemType},</if>
+            <if test="itemName != null and itemName != ''">#{itemName},</if>
+            <if test="lockerNo != null">#{lockerNo},</if>
+            <if test="lockerPort != null">#{lockerPort},</if>
+            <if test="status != null">#{status},</if>
+            <if test="cancelTime != null">#{cancelTime},</if>
+            <if test="receiveTime != null">#{receiveTime},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="deleted != null">#{deleted},</if>
+         </trim>
+    </insert>
+
+    <insert id="insertSmartLockerApplicationBatch" parameterType="java.util.List"  useGeneratedKeys="true" keyProperty="id">
+        insert into smart_locker_application
+        <trim prefix="(" suffix=") values" suffixOverrides=",">
+            id,command_type,applicant_code,applicant_name,item_type,item_name,locker_no,locker_port,status,cancel_time,receive_time,create_time,update_time,remark,create_by,update_by,deleted,
+        </trim>
+        <foreach item="item" index="index" collection="list" separator=",">
+            <trim prefix="(" suffix=") " suffixOverrides=",">
+                #{item.id},#{item.commandType},#{item.applicantCode},#{item.applicantName},#{item.itemType},#{item.itemName},#{item.lockerNo},#{item.lockerPort},#{item.status},#{item.cancelTime},#{item.receiveTime},#{item.createTime},#{item.updateTime},#{item.remark},#{item.createBy},#{item.updateBy},#{item.deleted},
+            </trim>
+        </foreach>
+    </insert>
+
+    <!-- 淇敼 -->
+    <update id="updateSmartLockerApplication" parameterType="com.ruoyi.cwgl.domain.SmartLockerApplication">
+        update smart_locker_application
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="commandType != null">command_type = #{commandType},</if>
+            <if test="applicantCode != null and applicantCode != ''">applicant_code = #{applicantCode},</if>
+            <if test="applicantName != null and applicantName != ''">applicant_name = #{applicantName},</if>
+            <if test="itemType != null">item_type = #{itemType},</if>
+            <if test="itemName != null and itemName != ''">item_name = #{itemName},</if>
+            <if test="lockerNo != null">locker_no = #{lockerNo},</if>
+            <if test="lockerPort != null">locker_port = #{lockerPort},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="cancelTime != null">cancel_time = #{cancelTime},</if>
+            <if test="receiveTime != null">receive_time = #{receiveTime},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="deleted != null">deleted = #{deleted},</if>
+        </trim>
+        where id = #{id}
+    </update>
+    <!-- 淇敼 -->
+    <update id="updateSmartLockerApplicationBatch" parameterType="java.util.List">
+        <foreach collection="list" item="item" index="index" separator=";">
+            update smart_locker_application
+            <trim prefix="SET" suffixOverrides=",">
+                <if test="item.commandType != null">command_type = #{item.commandType},</if>
+                <if test="item.applicantCode != null and item.applicantCode != ''">applicant_code = #{item.applicantCode},</if>
+                <if test="item.applicantName != null and item.applicantName != ''">applicant_name = #{item.applicantName},</if>
+                <if test="item.itemType != null">item_type = #{item.itemType},</if>
+                <if test="item.itemName != null and item.itemName != ''">item_name = #{item.itemName},</if>
+                <if test="item.lockerNo != null">locker_no = #{item.lockerNo},</if>
+                <if test="item.lockerPort != null">locker_port = #{item.lockerPort},</if>
+                <if test="item.status != null">status = #{item.status},</if>
+                <if test="item.cancelTime != null">cancel_time = #{item.cancelTime},</if>
+                <if test="item.receiveTime != null">receive_time = #{item.receiveTime},</if>
+                <if test="item.createTime != null">create_time = #{item.createTime},</if>
+                <if test="item.updateTime != null">update_time = #{item.updateTime},</if>
+                <if test="item.remark != null">remark = #{item.remark},</if>
+                <if test="item.createBy != null">create_by = #{item.createBy},</if>
+                <if test="item.updateBy != null">update_by = #{item.updateBy},</if>
+                <if test="item.deleted != null">deleted = #{item.deleted},</if>
+            </trim>
+        where id = #{item.id}
+        </foreach>
+    </update>
+
+    <!--鍒犻櫎-->
+    <delete id="deleteSmartLockerApplicationById" parameterType="Integer">
+        delete from smart_locker_application where id = #{id}
+    </delete>
+    <delete id="deleteSmartLockerApplicationByIds" parameterType="Integer">
+        delete from smart_locker_application where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/ui/admin-ui3/src/api/cwgl/smartLockerApplication.ts b/ui/admin-ui3/src/api/cwgl/smartLockerApplication.ts
new file mode 100644
index 0000000..68af655
--- /dev/null
+++ b/ui/admin-ui3/src/api/cwgl/smartLockerApplication.ts
@@ -0,0 +1,67 @@
+import request,{download,requestType} from "@/utils/request";
+import {BaseEntityInterface} from "@/utils/globalInterface";
+export interface SmartLockerApplicationI extends BaseEntityInterface{
+            id ?:  number   ,            commandType ?:  number   ,            applicantCode ?:  string   ,            applicantName ?:  string   ,            itemType ?:  number   ,            itemName ?:  string   ,            lockerNo ?:  string   ,            lockerPort ?:  number   ,            status ?:  number   ,            cancelTime ?:  string   ,            receiveTime ?:  string   ,            createTime ?:  string   ,            updateTime ?:  string   ,            remark ?:  string   ,            createBy ?:  string   ,            updateBy ?:  string   ,            deleted ?:  number       }
+
+
+/**
+ * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗗垪琛�
+ */
+export const listSmartLockerApplication:requestType = (query) => {
+    return request({
+        url: '/cwgl/smartLockerApplication/list',
+        method:'get',
+        params:query
+    })
+}
+/**
+ * 鏌ヨ鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞嗚缁�
+ */
+export const getSmartLockerApplication:requestType = (id) => {
+    return request({
+        url: '/cwgl/smartLockerApplication/' + id,
+        method:'get'
+    })
+}
+
+/**
+ * 鏂板鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+ */
+export const addSmartLockerApplication:requestType = (data) => {
+    return request({
+        url: '/cwgl/smartLockerApplication',
+        method: 'post',
+        data
+    })
+}
+
+/**
+ * 淇敼鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+ */
+export const updateSmartLockerApplication:requestType = (data) => {
+    return request({
+        url: '/cwgl/smartLockerApplication',
+        method: 'put',
+        data
+    })
+}
+
+/**
+ * 鍒犻櫎鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+ */
+export const delSmartLockerApplication:requestType = (id) => {
+    return request({
+        url: '/cwgl/smartLockerApplication/' + id,
+        method: 'delete'
+    })
+}
+
+
+/**
+ * 瀵煎嚭鏅鸿兘鏌滅墿鍝佺敵棰嗙鐞�
+ */
+export const exportSmartLockerApplication:requestType = (query) => {
+    return new Promise<any>(()=>{
+        download('/cwgl/smartLockerApplication/export',query);
+    })
+}
diff --git a/ui/admin-ui3/src/views/cwgl/smartLockerApplication/index.vue b/ui/admin-ui3/src/views/cwgl/smartLockerApplication/index.vue
new file mode 100644
index 0000000..a92e75c
--- /dev/null
+++ b/ui/admin-ui3/src/views/cwgl/smartLockerApplication/index.vue
@@ -0,0 +1,184 @@
+<template>
+  <basicContainer >
+    <avue-crud
+        :option="option"
+        :table-loading="pageF.loading"
+        :data="tableData"
+        :page="page"
+        :permission="permissionList"
+        :before-open="beforeOpen"
+        v-model="form"
+        ref="crudRef"
+        @row-update="rowUpdate"
+        @row-save="rowSave"
+        @refresh-change="refreshChange"
+        @row-del="rowDel"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @on-load="onLoad"
+    >
+      <template #menu-left>
+        <el-button
+            type="success"
+            icon="Edit"
+            :disabled="pageF.single"
+            v-hasPermi="['cwgl:smartLockerApplication:edit']"
+            @click="handleUpdate">淇敼
+        </el-button>
+        <el-button
+            type="danger"
+            icon="Delete"
+            :disabled="pageF.multiple"
+            @click="handleDelete"
+            v-hasPermi="['cwgl:smartLockerApplication:remove']"
+        >鍒犻櫎
+        </el-button>
+        <el-button
+            type="warning"
+            plain
+            icon="Download"
+            @click="handleExport"
+            v-hasPermi="['cwgl:smartLockerApplication:export']"
+        >瀵煎嚭
+        </el-button>
+      </template>
+    </avue-crud>
+  </basicContainer>
+</template>
+
+<script setup name="smartLockerApplication" lang="ts">
+  import {SmartLockerApplicationI,addSmartLockerApplication, delSmartLockerApplication, exportSmartLockerApplication, getSmartLockerApplication, listSmartLockerApplication, updateSmartLockerApplication} from "@/api/cwgl/smartLockerApplication";
+  import useCurrentInstance from "@/utils/useCurrentInstance";
+  import {computed,reactive, ref, toRefs} from "vue";
+  import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
+  import {usePagePlus} from "@/hooks/usePagePlus";
+  import {hasPermission} from "@/utils/permissionUtils";
+
+  const { proxy } = useCurrentInstance();
+  const crudRef = ref();
+
+  const permissionList = computed(()=>{
+    return {
+      addBtn: hasPermission(["cwgl:smartLockerApplication:add"]),
+      delBtn: hasPermission(["cwgl:smartLockerApplication:remove"]),
+      editBtn: hasPermission(["cwgl:smartLockerApplication:edit"]),
+      viewBtn: hasPermission(["cwgl:smartLockerApplication:query"]),
+    }
+  })
+
+  const data = reactive({
+    form:<SmartLockerApplicationI>{},
+    queryParams:<SmartLockerApplicationI&PageQueryInterface>{},
+    page: <PagesInterface>{
+      pageSize: 10,
+      total: 0,
+      currentPage: 1,
+    },
+    selectionList:[],
+  })
+  const {queryParams,form,page,selectionList} = toRefs(data);
+  const option = ref({
+    pageKey: 'SmartLockerApplication',
+    rowKey: 'id',
+    column: {
+                                id: {
+          label: 'ID',
+                            },
+                                commandType: {
+          label: '鎸囦护绫诲瀷(0:寮�闂ㄦ寚浠�;1:娴佽浆鎸囦护)',
+                            },
+                                applicantCode: {
+          label: '鐢抽浜虹紪鐮�',
+                                rules: [
+              {
+                required: true,
+                message: "鐢抽浜虹紪鐮佷笉鑳戒负绌�", trigger: "blur" }
+            ],                  },
+                                applicantName: {
+          label: '鐢抽浜哄鍚�',
+                                rules: [
+              {
+                required: true,
+                message: "鐢抽浜哄鍚嶄笉鑳戒负绌�", trigger: "blur" }
+            ],                  },
+                                itemType: {
+          label: '棰嗗彇鐗╁搧绫诲瀷(0:杞﹂挜鍖�;1:鏂囦欢;2:鍗扮珷;3:鍏朵粬)',
+                            },
+                                itemName: {
+          label: '鐗╁搧鍚嶇О',
+                                rules: [
+              {
+                required: true,
+                message: "鐗╁搧鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                lockerNo: {
+          label: '鏅鸿兘鏌滅紪鍙烽粯璁ゆ帴椹崇珯鏅鸿兘閽ュ寵鏌�',
+                            },
+                                lockerPort: {
+          label: '鏅鸿兘鏌滄牸鍙e彿',
+                                rules: [
+              {
+                required: true,
+                message: "鏅鸿兘鏌滄牸鍙e彿涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                status: {
+          label: '鐘舵��(0:姝e父;1:浣滃簾;2:棰嗗彇)',
+                            },
+                                cancelTime: {
+          label: '浣滃簾鏃堕棿',
+                            },
+                                receiveTime: {
+          label: '棰嗗彇鏃堕棿',
+                            },
+                                createTime: {
+          label: '鍒涘缓鏃堕棿',
+                                rules: [
+              {
+                required: true,
+                message: "鍒涘缓鏃堕棿涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                updateTime: {
+          label: '鏇存柊鏃堕棿',
+                            },
+                                remark: {
+          label: '澶囨敞',
+                      type: 'textarea', minRows: 3, maxRows: 5,
+                            },
+                                createBy: {
+          label: '鍒涘缓浜�',
+                            },
+                                updateBy: {
+          label: '鏇存柊浜�',
+                            },
+                                deleted: {
+          label: '鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)',
+                            },
+          }
+  })
+
+  const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange,
+    searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({
+    form:form,
+    option:option,
+    queryParams:queryParams,
+    idKey:'id',
+    page:page.value,
+    getListApi:listSmartLockerApplication,
+    getDetailApi:getSmartLockerApplication,
+    exportApi:exportSmartLockerApplication,
+    deleteApi:delSmartLockerApplication,
+    addApi:addSmartLockerApplication,
+    updateApi:updateSmartLockerApplication,
+    handleUpdateFunc:()=>{
+      crudRef.value.rowEdit(selectionList.value[0]);
+    },
+    handleSelectionChangeFunc:(selection:any)=>{
+      selectionList.value = selection;
+    }
+  })
+
+
+</script>

--
Gitblit v1.8.0