Browse Source

Merge remote-tracking branch 'origin/master'

LIVE_YE 1 năm trước cách đây
mục cha
commit
0322c1ae08
27 tập tin đã thay đổi với 1862 bổ sung1005 xóa
  1. 12 12
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/investigate/InvestigateDispositionController.java
  2. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/investigate/InvestigateDispositionTableController.java
  3. 6 0
      ruoyi-common/pom.xml
  4. 111 0
      ruoyi-common/src/main/java/com/ruoyi/common/utils/SendSmsUtils.java
  5. 86 14
      ruoyi-system/src/main/java/com/ruoyi/system/domain/InvestigateDisposition.java
  6. 50 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/InvestigateDispositionTable.java
  7. 20 9
      ruoyi-system/src/main/java/com/ruoyi/system/domain/InvestigateTable.java
  8. 31 6
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/InvestigateDispositionMapper.java
  9. 70 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/InvestigateDispositionTableMapper.java
  10. 6 6
      ruoyi-system/src/main/java/com/ruoyi/system/service/IInvestigateDispositionService.java
  11. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IInvestigateDispositionTableService.java
  12. 43 9
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InvestigateDispositionServiceImpl.java
  13. 93 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InvestigateDispositionTableServiceImpl.java
  14. 43 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InvestigateTableServiceImpl.java
  15. 56 17
      ruoyi-system/src/main/resources/mapper/system/InvestigateDispositionMapper.xml
  16. 64 0
      ruoyi-system/src/main/resources/mapper/system/InvestigateDispositionTableMapper.xml
  17. 6 6
      ruoyi-system/src/main/resources/mapper/system/InvestigateTableMapper.xml
  18. BIN
      ruoyi-ui/src/assets/images/index/mring.png
  19. BIN
      ruoyi-ui/src/assets/images/index/refresh.png
  20. BIN
      ruoyi-ui/src/assets/images/index/rimg.png
  21. BIN
      ruoyi-ui/src/assets/images/index/topa.png
  22. BIN
      ruoyi-ui/src/assets/images/index/topb.png
  23. BIN
      ruoyi-ui/src/assets/images/index/topc.png
  24. 113 0
      ruoyi-ui/src/views/dashboard/BoldChart.vue
  25. 324 0
      ruoyi-ui/src/views/dashboard/GaugeChart.vue
  26. 176 0
      ruoyi-ui/src/views/dashboard/lineBarChart.vue
  27. 387 926
      ruoyi-ui/src/views/index.vue

+ 12 - 12
ruoyi-admin/src/main/java/com/ruoyi/web/controller/investigate/InvestigateDispositionController.java

@@ -37,7 +37,7 @@ public class InvestigateDispositionController extends BaseController
     /**
      * 查询考察配置列表
      */
-    @PreAuthorize("@ss.hasPermi('investigate:disposition:list')")
+    @PreAuthorize("@ss.hasPermi('system:disposition:list')")
     @GetMapping("/list")
     public TableDataInfo list(InvestigateDisposition investigateDisposition)
     {
@@ -49,7 +49,7 @@ public class InvestigateDispositionController extends BaseController
     /**
      * 导出考察配置列表
      */
-    @PreAuthorize("@ss.hasPermi('investigate:disposition:export')")
+    @PreAuthorize("@ss.hasPermi('system:disposition:export')")
     @Log(title = "考察配置", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, InvestigateDisposition investigateDisposition)
@@ -62,17 +62,17 @@ public class InvestigateDispositionController extends BaseController
     /**
      * 获取考察配置详细信息
      */
-    @PreAuthorize("@ss.hasPermi('investigate:disposition:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
+    @PreAuthorize("@ss.hasPermi('system:disposition:query')")
+    @GetMapping(value = "/{investigateDispositionId}")
+    public AjaxResult getInfo(@PathVariable("investigateDispositionId") Long investigateDispositionId)
     {
-        return success(investigateDispositionService.selectInvestigateDispositionById(id));
+        return success(investigateDispositionService.selectInvestigateDispositionByInvestigateDispositionId(investigateDispositionId));
     }
 
     /**
      * 新增考察配置
      */
-    @PreAuthorize("@ss.hasPermi('investigate:disposition:add')")
+    @PreAuthorize("@ss.hasPermi('system:disposition:add')")
     @Log(title = "考察配置", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody InvestigateDisposition investigateDisposition)
@@ -83,7 +83,7 @@ public class InvestigateDispositionController extends BaseController
     /**
      * 修改考察配置
      */
-    @PreAuthorize("@ss.hasPermi('investigate:disposition:edit')")
+    @PreAuthorize("@ss.hasPermi('system:disposition:edit')")
     @Log(title = "考察配置", businessType = BusinessType.UPDATE)
     @PostMapping("/put")
     public AjaxResult edit(@RequestBody InvestigateDisposition investigateDisposition)
@@ -94,11 +94,11 @@ public class InvestigateDispositionController extends BaseController
     /**
      * 删除考察配置
      */
-    @PreAuthorize("@ss.hasPermi('investigate:disposition:remove')")
+    @PreAuthorize("@ss.hasPermi('system:disposition:remove')")
     @Log(title = "考察配置", businessType = BusinessType.DELETE)
-    @GetMapping("/delete/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
+	@GetMapping("/delete/{investigateDispositionIds}")
+    public AjaxResult remove(@PathVariable Long[] investigateDispositionIds)
     {
-        return toAjax(investigateDispositionService.deleteInvestigateDispositionByIds(ids));
+        return toAjax(investigateDispositionService.deleteInvestigateDispositionByInvestigateDispositionIds(investigateDispositionIds));
     }
 }

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/investigate/InvestigateDispositionTableController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.investigate;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+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.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.system.domain.InvestigateDispositionTable;
+import com.ruoyi.system.service.IInvestigateDispositionTableService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 考察配置与考察主关联Controller
+ * 
+ * @author ruoyi
+ * @date 2023-10-10
+ */
+@RestController
+@RequestMapping("/investigate/disposition/table")
+public class InvestigateDispositionTableController extends BaseController
+{
+    @Autowired
+    private IInvestigateDispositionTableService investigateDispositionTableService;
+
+    /**
+     * 查询考察配置与考察主关联列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:table:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(InvestigateDispositionTable investigateDispositionTable)
+    {
+        startPage();
+        List<InvestigateDispositionTable> list = investigateDispositionTableService.selectInvestigateDispositionTableList(investigateDispositionTable);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出考察配置与考察主关联列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:table:export')")
+    @Log(title = "考察配置与考察主关联", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, InvestigateDispositionTable investigateDispositionTable)
+    {
+        List<InvestigateDispositionTable> list = investigateDispositionTableService.selectInvestigateDispositionTableList(investigateDispositionTable);
+        ExcelUtil<InvestigateDispositionTable> util = new ExcelUtil<InvestigateDispositionTable>(InvestigateDispositionTable.class);
+        util.exportExcel(response, list, "考察配置与考察主关联数据");
+    }
+
+    /**
+     * 获取考察配置与考察主关联详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:table:query')")
+    @GetMapping(value = "/{investigateTableId}")
+    public AjaxResult getInfo(@PathVariable("investigateTableId") Long investigateTableId)
+    {
+        return success(investigateDispositionTableService.selectInvestigateDispositionTableByInvestigateTableId(investigateTableId));
+    }
+
+    /**
+     * 新增考察配置与考察主关联
+     */
+    @PreAuthorize("@ss.hasPermi('system:table:add')")
+    @Log(title = "考察配置与考察主关联", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody InvestigateDispositionTable investigateDispositionTable)
+    {
+        return toAjax(investigateDispositionTableService.insertInvestigateDispositionTable(investigateDispositionTable));
+    }
+
+    /**
+     * 修改考察配置与考察主关联
+     */
+    @PreAuthorize("@ss.hasPermi('system:table:edit')")
+    @Log(title = "考察配置与考察主关联", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody InvestigateDispositionTable investigateDispositionTable)
+    {
+        return toAjax(investigateDispositionTableService.updateInvestigateDispositionTable(investigateDispositionTable));
+    }
+
+    /**
+     * 删除考察配置与考察主关联
+     */
+    @PreAuthorize("@ss.hasPermi('system:table:remove')")
+    @Log(title = "考察配置与考察主关联", businessType = BusinessType.DELETE)
+	@GetMapping("/delete/{investigateTableIds}")
+    public AjaxResult remove(@PathVariable Long[] investigateTableIds)
+    {
+        return toAjax(investigateDispositionTableService.deleteInvestigateDispositionTableByInvestigateTableIds(investigateTableIds));
+    }
+}

+ 6 - 0
ruoyi-common/pom.xml

@@ -17,6 +17,12 @@
 
     <dependencies>
 
+        <!--阿里短信服务-->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>dysmsapi20170525</artifactId>
+            <version>2.0.23</version>
+        </dependency>
         <!-- Spring框架基本的核心工具 -->
         <dependency>
             <groupId>org.springframework</groupId>

+ 111 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/SendSmsUtils.java

@@ -0,0 +1,111 @@
+package com.ruoyi.common.utils;
+
+
+import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
+import com.aliyun.teautil.models.RuntimeOptions;
+
+/**
+ * @author tjf
+ * @Date: 2021/07/15/10:21
+ */
+public class SendSmsUtils {
+    //短信参数
+    static final String ACCESS_KEY_ID = "LTAI5tNA2fcBJH6EWRH6Pxr6";
+    static final String ACCESS_KEY_SECRET = "5WdaPEOvC3u9LC7pwy2DQ9pgmJvgUr";
+
+
+    //生成X位验证码
+    public static String getCode(Integer num) {
+        String[] codes = {"1", "2", "3", "4", "5", "6", "7", "8", "9"};
+        StringBuilder code = new StringBuilder();
+        for (int i = 0; i < num; i++) {
+            int j = (int) (Math.random() * 10);
+            if (j <= 0) {
+                j = 1;
+            }
+            code.append(codes[j - 1]);
+
+        }
+        return code.toString();
+    }
+
+    public static void main(String[] args) {
+        String code = getCode(4);
+        System.out.println(code);
+    }
+
+    /**
+     * 使用AK&SK初始化账号Client
+     *
+     * @return Client
+     * @throws Exception
+     */
+    public static com.aliyun.dysmsapi20170525.Client createClient() throws Exception {
+        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
+            // 必填,您的 AccessKey ID
+            .setAccessKeyId(ACCESS_KEY_ID)
+            // 必填,您的 AccessKey Secret
+            .setAccessKeySecret(ACCESS_KEY_SECRET);
+        // 访问的域名
+        config.endpoint = "dysmsapi.aliyuncs.com";
+        return new com.aliyun.dysmsapi20170525.Client(config);
+    }
+
+
+    /**
+     * 发送短信消息
+     *
+     * @return
+     */
+    public static String sendSms(String phone, String templateCode, String smsCode) {
+        String code = "";
+        try {
+            // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
+            com.aliyun.dysmsapi20170525.Client client = SendSmsUtils.createClient();
+
+            com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
+                //手机号码
+                .setPhoneNumbers(phone)
+                //短信签名名称。中新云
+                .setSignName("智能校管家")
+                //短信模板变量对应的实际值{"name": code}
+                .setTemplateParam(smsCode)
+                //短信模板CODE
+                .setTemplateCode(templateCode);
+            // 复制代码运行请自行打印 API 的返回值
+            SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions());
+            code = sendSmsResponse.getBody().code;
+        } catch (Exception _error) {
+        }
+        return code;
+    }
+
+    /**
+     * 发送注册的随机密码
+     *
+     * @return
+     */
+    public static String sendPassword(String password, String phone, String templateCode) {
+        String code = "";
+        try {
+            // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
+            com.aliyun.dysmsapi20170525.Client client = SendSmsUtils.createClient();
+            String smsCode = "{\"password\":\"" + password + "\"}";
+            com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
+                //手机号码
+                .setPhoneNumbers(phone)
+                //短信签名名称。潜山市数据资源局
+                .setSignName("中新云")
+                //短信模板CODE
+                .setTemplateCode(templateCode)
+                //短信模板变量对应的实际值{"name": code}
+                .setTemplateParam(smsCode);
+            // 复制代码运行请自行打印 API 的返回值
+            SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions());
+            code = sendSmsResponse.getBody().code;
+        } catch (Exception _error) {
+        }
+        return code;
+    }
+}
+

+ 86 - 14
ruoyi-system/src/main/java/com/ruoyi/system/domain/InvestigateDisposition.java

@@ -1,10 +1,14 @@
 package com.ruoyi.system.domain;
 
+import com.ruoyi.common.core.domain.entity.SysDept;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 考察配置对象 investigate_disposition
  * 
@@ -16,11 +20,19 @@ public class InvestigateDisposition extends BaseEntity
     private static final long serialVersionUID = 1L;
 
     /** id */
-    private Long id;
+    private Long investigateDispositionId;
+
+    /** 父配置id */
+    @Excel(name = "父配置id")
+    private Long parentId;
+
+    /** 祖级列表 */
+    @Excel(name = "祖级列表")
+    private String ancestors;
 
-    /** 考察id */
-    @Excel(name = "考察id")
-    private Long investigateId;
+    /** 显示顺序 */
+    @Excel(name = "显示顺序")
+    private Integer orderNum;
 
     /** 标题 */
     @Excel(name = "标题")
@@ -30,23 +42,71 @@ public class InvestigateDisposition extends BaseEntity
     @Excel(name = "链接地址")
     private String url;
 
-    public void setId(Long id) 
+    /** 是否启用 Y:启用 N:不启用 */
+    @Excel(name = "是否启用 Y:启用 N:不启用")
+    private String status;
+
+    /** 父部门名称 */
+    private String parentName;
+
+    /** 子部门 */
+    private List<SysDept> children = new ArrayList<SysDept>();
+
+    public String getParentName()
     {
-        this.id = id;
+        return parentName;
     }
 
-    public Long getId() 
+    public void setParentName(String parentName)
     {
-        return id;
+        this.parentName = parentName;
     }
-    public void setInvestigateId(Long investigateId) 
+
+    public List<SysDept> getChildren()
     {
-        this.investigateId = investigateId;
+        return children;
     }
 
-    public Long getInvestigateId() 
+    public void setChildren(List<SysDept> children)
     {
-        return investigateId;
+        this.children = children;
+    }
+
+    public void setInvestigateDispositionId(Long investigateDispositionId) 
+    {
+        this.investigateDispositionId = investigateDispositionId;
+    }
+
+    public Long getInvestigateDispositionId() 
+    {
+        return investigateDispositionId;
+    }
+    public void setParentId(Long parentId) 
+    {
+        this.parentId = parentId;
+    }
+
+    public Long getParentId() 
+    {
+        return parentId;
+    }
+    public void setAncestors(String ancestors) 
+    {
+        this.ancestors = ancestors;
+    }
+
+    public String getAncestors() 
+    {
+        return ancestors;
+    }
+    public void setOrderNum(Integer orderNum) 
+    {
+        this.orderNum = orderNum;
+    }
+
+    public Integer getOrderNum() 
+    {
+        return orderNum;
     }
     public void setTitle(String title) 
     {
@@ -66,14 +126,26 @@ public class InvestigateDisposition extends BaseEntity
     {
         return url;
     }
+    public void setStatus(String status) 
+    {
+        this.status = status;
+    }
+
+    public String getStatus() 
+    {
+        return status;
+    }
 
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("investigateId", getInvestigateId())
+            .append("investigateDispositionId", getInvestigateDispositionId())
+            .append("parentId", getParentId())
+            .append("ancestors", getAncestors())
+            .append("orderNum", getOrderNum())
             .append("title", getTitle())
             .append("url", getUrl())
+            .append("status", getStatus())
             .append("createBy", getCreateBy())
             .append("createTime", getCreateTime())
             .append("updateBy", getUpdateBy())

+ 50 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/InvestigateDispositionTable.java

@@ -0,0 +1,50 @@
+package com.ruoyi.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 考察配置与考察主关联对象 investigate_disposition_table
+ * 
+ * @author ruoyi
+ * @date 2023-10-10
+ */
+public class InvestigateDispositionTable extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 考察主表id */
+    private Long investigateTableId;
+
+    /** 考察配置表id */
+    private Long investigateDispositionId;
+
+    public void setInvestigateTableId(Long investigateTableId) 
+    {
+        this.investigateTableId = investigateTableId;
+    }
+
+    public Long getInvestigateTableId() 
+    {
+        return investigateTableId;
+    }
+    public void setInvestigateDispositionId(Long investigateDispositionId) 
+    {
+        this.investigateDispositionId = investigateDispositionId;
+    }
+
+    public Long getInvestigateDispositionId() 
+    {
+        return investigateDispositionId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("investigateTableId", getInvestigateTableId())
+            .append("investigateDispositionId", getInvestigateDispositionId())
+            .toString();
+    }
+}

+ 20 - 9
ruoyi-system/src/main/java/com/ruoyi/system/domain/InvestigateTable.java

@@ -18,7 +18,7 @@ public class InvestigateTable extends BaseEntity
     private static final long serialVersionUID = 1L;
 
     /** id */
-    private Long id;
+    private Long investigateTableId;
 
     /** 考察名称 */
     @Excel(name = "考察名称")
@@ -37,16 +37,27 @@ public class InvestigateTable extends BaseEntity
     @Excel(name = "访问密码")
     private String cipher;
 
-    public void setId(Long id) 
-    {
-        this.id = id;
+
+    /** 考察配置组 */
+    private Long[] investigateDispositionTableIds;
+
+    public Long[] getInvestigateDispositionTableIds() {
+        return investigateDispositionTableIds;
     }
 
-    public Long getId() 
-    {
-        return id;
+    public void setInvestigateDispositionTableIds(Long[] investigateDispositionTableIds) {
+        this.investigateDispositionTableIds = investigateDispositionTableIds;
     }
-    public void setInvestigateName(String investigateName) 
+
+    public Long getInvestigateTableId() {
+        return investigateTableId;
+    }
+
+    public void setInvestigateTableId(Long investigateTableId) {
+        this.investigateTableId = investigateTableId;
+    }
+
+    public void setInvestigateName(String investigateName)
     {
         this.investigateName = investigateName;
     }
@@ -86,7 +97,7 @@ public class InvestigateTable extends BaseEntity
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
+            .append("investigateTableId", getInvestigateTableId())
             .append("investigateName", getInvestigateName())
             .append("content", getContent())
             .append("endTime", getEndTime())

+ 31 - 6
ruoyi-system/src/main/java/com/ruoyi/system/mapper/InvestigateDispositionMapper.java

@@ -1,7 +1,10 @@
 package com.ruoyi.system.mapper;
 
 import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.system.domain.InvestigateDisposition;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 考察配置Mapper接口
@@ -14,10 +17,10 @@ public interface InvestigateDispositionMapper
     /**
      * 查询考察配置
      * 
-     * @param id 考察配置主键
+     * @param investigateDispositionId 考察配置主键
      * @return 考察配置
      */
-    public InvestigateDisposition selectInvestigateDispositionById(Long id);
+    public InvestigateDisposition selectInvestigateDispositionByInvestigateDispositionId(Long investigateDispositionId);
 
     /**
      * 查询考察配置列表
@@ -46,16 +49,38 @@ public interface InvestigateDispositionMapper
     /**
      * 删除考察配置
      * 
-     * @param id 考察配置主键
+     * @param investigateDispositionId 考察配置主键
      * @return 结果
      */
-    public int deleteInvestigateDispositionById(Long id);
+    public int deleteInvestigateDispositionByInvestigateDispositionId(Long investigateDispositionId);
 
     /**
      * 批量删除考察配置
      * 
-     * @param ids 需要删除的数据主键集合
+     * @param investigateDispositionIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteInvestigateDispositionByInvestigateDispositionIds(Long[] investigateDispositionIds);
+
+    /**
+     * 根据考察配置id查询信息
+     * @param investigateDispositionId
+     * @return
+     */
+    public InvestigateDisposition selectInvestigateDispositionById(Long investigateDispositionId);
+
+    /**
+     * 根据ID查询所有子考察配置
+     *
+     * @param investigateDispositionId 考察配置ID
+     * @return 考察配置列表
+     */
+    public List<InvestigateDisposition> selectChildrenInvestigateDispositionById(Long investigateDispositionId);
+    /**
+     * 修改子元素关系
+     *
+     * @param investigateDispositions 子元素
      * @return 结果
      */
-    public int deleteInvestigateDispositionByIds(Long[] ids);
+    public int updateInvestigateDispositionChildren(@Param("investigateDispositions") List<InvestigateDisposition> investigateDispositions);
 }

+ 70 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/InvestigateDispositionTableMapper.java

@@ -0,0 +1,70 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.InvestigateDispositionTable;
+import com.ruoyi.system.domain.SysUserPost;
+
+/**
+ * 考察配置与考察主关联Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2023-10-10
+ */
+public interface InvestigateDispositionTableMapper 
+{
+    /**
+     * 查询考察配置与考察主关联
+     * 
+     * @param investigateTableId 考察配置与考察主关联主键
+     * @return 考察配置与考察主关联
+     */
+    public InvestigateDispositionTable selectInvestigateDispositionTableByInvestigateTableId(Long investigateTableId);
+
+    /**
+     * 查询考察配置与考察主关联列表
+     * 
+     * @param investigateDispositionTable 考察配置与考察主关联
+     * @return 考察配置与考察主关联集合
+     */
+    public List<InvestigateDispositionTable> selectInvestigateDispositionTableList(InvestigateDispositionTable investigateDispositionTable);
+
+    /**
+     * 新增考察配置与考察主关联
+     * 
+     * @param investigateDispositionTable 考察配置与考察主关联
+     * @return 结果
+     */
+    public int insertInvestigateDispositionTable(InvestigateDispositionTable investigateDispositionTable);
+
+    /**
+     * 修改考察配置与考察主关联
+     * 
+     * @param investigateDispositionTable 考察配置与考察主关联
+     * @return 结果
+     */
+    public int updateInvestigateDispositionTable(InvestigateDispositionTable investigateDispositionTable);
+
+    /**
+     * 删除考察配置与考察主关联
+     * 
+     * @param investigateTableId 考察配置与考察主关联主键
+     * @return 结果
+     */
+    public int deleteInvestigateDispositionTableByInvestigateTableId(Long investigateTableId);
+
+    /**
+     * 批量删除考察配置与考察主关联
+     * 
+     * @param investigateTableIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteInvestigateDispositionTableByInvestigateTableIds(Long[] investigateTableIds);
+
+    /**
+     * 批量新增
+     * @param dispositionTableList
+     * @return
+     */
+    public int batchDispositionTable(List<InvestigateDispositionTable> dispositionTableList);
+
+}

+ 6 - 6
ruoyi-system/src/main/java/com/ruoyi/system/service/IInvestigateDispositionService.java

@@ -14,10 +14,10 @@ public interface IInvestigateDispositionService
     /**
      * 查询考察配置
      * 
-     * @param id 考察配置主键
+     * @param investigateDispositionId 考察配置主键
      * @return 考察配置
      */
-    public InvestigateDisposition selectInvestigateDispositionById(Long id);
+    public InvestigateDisposition selectInvestigateDispositionByInvestigateDispositionId(Long investigateDispositionId);
 
     /**
      * 查询考察配置列表
@@ -46,16 +46,16 @@ public interface IInvestigateDispositionService
     /**
      * 批量删除考察配置
      * 
-     * @param ids 需要删除的考察配置主键集合
+     * @param investigateDispositionIds 需要删除的考察配置主键集合
      * @return 结果
      */
-    public int deleteInvestigateDispositionByIds(Long[] ids);
+    public int deleteInvestigateDispositionByInvestigateDispositionIds(Long[] investigateDispositionIds);
 
     /**
      * 删除考察配置信息
      * 
-     * @param id 考察配置主键
+     * @param investigateDispositionId 考察配置主键
      * @return 结果
      */
-    public int deleteInvestigateDispositionById(Long id);
+    public int deleteInvestigateDispositionByInvestigateDispositionId(Long investigateDispositionId);
 }

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IInvestigateDispositionTableService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.InvestigateDispositionTable;
+
+/**
+ * 考察配置与考察主关联Service接口
+ * 
+ * @author ruoyi
+ * @date 2023-10-10
+ */
+public interface IInvestigateDispositionTableService 
+{
+    /**
+     * 查询考察配置与考察主关联
+     * 
+     * @param investigateTableId 考察配置与考察主关联主键
+     * @return 考察配置与考察主关联
+     */
+    public InvestigateDispositionTable selectInvestigateDispositionTableByInvestigateTableId(Long investigateTableId);
+
+    /**
+     * 查询考察配置与考察主关联列表
+     * 
+     * @param investigateDispositionTable 考察配置与考察主关联
+     * @return 考察配置与考察主关联集合
+     */
+    public List<InvestigateDispositionTable> selectInvestigateDispositionTableList(InvestigateDispositionTable investigateDispositionTable);
+
+    /**
+     * 新增考察配置与考察主关联
+     * 
+     * @param investigateDispositionTable 考察配置与考察主关联
+     * @return 结果
+     */
+    public int insertInvestigateDispositionTable(InvestigateDispositionTable investigateDispositionTable);
+
+    /**
+     * 修改考察配置与考察主关联
+     * 
+     * @param investigateDispositionTable 考察配置与考察主关联
+     * @return 结果
+     */
+    public int updateInvestigateDispositionTable(InvestigateDispositionTable investigateDispositionTable);
+
+    /**
+     * 批量删除考察配置与考察主关联
+     * 
+     * @param investigateTableIds 需要删除的考察配置与考察主关联主键集合
+     * @return 结果
+     */
+    public int deleteInvestigateDispositionTableByInvestigateTableIds(Long[] investigateTableIds);
+
+    /**
+     * 删除考察配置与考察主关联信息
+     * 
+     * @param investigateTableId 考察配置与考察主关联主键
+     * @return 结果
+     */
+    public int deleteInvestigateDispositionTableByInvestigateTableId(Long investigateTableId);
+}

+ 43 - 9
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InvestigateDispositionServiceImpl.java

@@ -1,7 +1,10 @@
 package com.ruoyi.system.service.impl;
 
 import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.InvestigateDispositionMapper;
@@ -23,13 +26,13 @@ public class InvestigateDispositionServiceImpl implements IInvestigateDispositio
     /**
      * 查询考察配置
      * 
-     * @param id 考察配置主键
+     * @param investigateDispositionId 考察配置主键
      * @return 考察配置
      */
     @Override
-    public InvestigateDisposition selectInvestigateDispositionById(Long id)
+    public InvestigateDisposition selectInvestigateDispositionByInvestigateDispositionId(Long investigateDispositionId)
     {
-        return investigateDispositionMapper.selectInvestigateDispositionById(id);
+        return investigateDispositionMapper.selectInvestigateDispositionByInvestigateDispositionId(investigateDispositionId);
     }
 
     /**
@@ -53,7 +56,9 @@ public class InvestigateDispositionServiceImpl implements IInvestigateDispositio
     @Override
     public int insertInvestigateDisposition(InvestigateDisposition investigateDisposition)
     {
+        InvestigateDisposition info = investigateDispositionMapper.selectInvestigateDispositionById(investigateDisposition.getParentId());
         investigateDisposition.setCreateTime(DateUtils.getNowDate());
+        investigateDisposition.setAncestors(info.getAncestors() + "," + investigateDisposition.getParentId());
         return investigateDispositionMapper.insertInvestigateDisposition(investigateDisposition);
     }
 
@@ -66,31 +71,60 @@ public class InvestigateDispositionServiceImpl implements IInvestigateDispositio
     @Override
     public int updateInvestigateDisposition(InvestigateDisposition investigateDisposition)
     {
+        InvestigateDisposition newParentInfo = investigateDispositionMapper.selectInvestigateDispositionById(investigateDisposition.getParentId());
+        InvestigateDisposition oldInfo = investigateDispositionMapper.selectInvestigateDispositionById(investigateDisposition.getInvestigateDispositionId());
+        if (StringUtils.isNotNull(newParentInfo) && StringUtils.isNotNull(oldInfo))
+        {
+            String newAncestors = newParentInfo.getAncestors() + "," + newParentInfo.getInvestigateDispositionId();
+            String oldAncestors = oldInfo.getAncestors();
+            investigateDisposition.setAncestors(newAncestors);
+            updateDeptChildren(investigateDisposition.getInvestigateDispositionId(), newAncestors, oldAncestors);
+        }
         investigateDisposition.setUpdateTime(DateUtils.getNowDate());
         return investigateDispositionMapper.updateInvestigateDisposition(investigateDisposition);
     }
 
+    /**
+     * 修改子元素关系
+     *
+     * @param investigateDispositionId 被修改的考察配置ID
+     * @param newAncestors 新的父ID集合
+     * @param oldAncestors 旧的父ID集合
+     */
+    public void updateDeptChildren(Long investigateDispositionId, String newAncestors, String oldAncestors)
+    {
+        List<InvestigateDisposition> children = investigateDispositionMapper.selectChildrenInvestigateDispositionById(investigateDispositionId);
+
+        for (InvestigateDisposition child : children)
+        {
+            child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors));
+        }
+        if (children.size() > 0)
+        {
+            investigateDispositionMapper.updateInvestigateDispositionChildren(children);
+        }
+    }
     /**
      * 批量删除考察配置
      * 
-     * @param ids 需要删除的考察配置主键
+     * @param investigateDispositionIds 需要删除的考察配置主键
      * @return 结果
      */
     @Override
-    public int deleteInvestigateDispositionByIds(Long[] ids)
+    public int deleteInvestigateDispositionByInvestigateDispositionIds(Long[] investigateDispositionIds)
     {
-        return investigateDispositionMapper.deleteInvestigateDispositionByIds(ids);
+        return investigateDispositionMapper.deleteInvestigateDispositionByInvestigateDispositionIds(investigateDispositionIds);
     }
 
     /**
      * 删除考察配置信息
      * 
-     * @param id 考察配置主键
+     * @param investigateDispositionId 考察配置主键
      * @return 结果
      */
     @Override
-    public int deleteInvestigateDispositionById(Long id)
+    public int deleteInvestigateDispositionByInvestigateDispositionId(Long investigateDispositionId)
     {
-        return investigateDispositionMapper.deleteInvestigateDispositionById(id);
+        return investigateDispositionMapper.deleteInvestigateDispositionByInvestigateDispositionId(investigateDispositionId);
     }
 }

+ 93 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InvestigateDispositionTableServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.InvestigateDispositionTableMapper;
+import com.ruoyi.system.domain.InvestigateDispositionTable;
+import com.ruoyi.system.service.IInvestigateDispositionTableService;
+
+/**
+ * 考察配置与考察主关联Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2023-10-10
+ */
+@Service
+public class InvestigateDispositionTableServiceImpl implements IInvestigateDispositionTableService 
+{
+    @Autowired
+    private InvestigateDispositionTableMapper investigateDispositionTableMapper;
+
+    /**
+     * 查询考察配置与考察主关联
+     * 
+     * @param investigateTableId 考察配置与考察主关联主键
+     * @return 考察配置与考察主关联
+     */
+    @Override
+    public InvestigateDispositionTable selectInvestigateDispositionTableByInvestigateTableId(Long investigateTableId)
+    {
+        return investigateDispositionTableMapper.selectInvestigateDispositionTableByInvestigateTableId(investigateTableId);
+    }
+
+    /**
+     * 查询考察配置与考察主关联列表
+     * 
+     * @param investigateDispositionTable 考察配置与考察主关联
+     * @return 考察配置与考察主关联
+     */
+    @Override
+    public List<InvestigateDispositionTable> selectInvestigateDispositionTableList(InvestigateDispositionTable investigateDispositionTable)
+    {
+        return investigateDispositionTableMapper.selectInvestigateDispositionTableList(investigateDispositionTable);
+    }
+
+    /**
+     * 新增考察配置与考察主关联
+     * 
+     * @param investigateDispositionTable 考察配置与考察主关联
+     * @return 结果
+     */
+    @Override
+    public int insertInvestigateDispositionTable(InvestigateDispositionTable investigateDispositionTable)
+    {
+        return investigateDispositionTableMapper.insertInvestigateDispositionTable(investigateDispositionTable);
+    }
+
+    /**
+     * 修改考察配置与考察主关联
+     * 
+     * @param investigateDispositionTable 考察配置与考察主关联
+     * @return 结果
+     */
+    @Override
+    public int updateInvestigateDispositionTable(InvestigateDispositionTable investigateDispositionTable)
+    {
+        return investigateDispositionTableMapper.updateInvestigateDispositionTable(investigateDispositionTable);
+    }
+
+    /**
+     * 批量删除考察配置与考察主关联
+     * 
+     * @param investigateTableIds 需要删除的考察配置与考察主关联主键
+     * @return 结果
+     */
+    @Override
+    public int deleteInvestigateDispositionTableByInvestigateTableIds(Long[] investigateTableIds)
+    {
+        return investigateDispositionTableMapper.deleteInvestigateDispositionTableByInvestigateTableIds(investigateTableIds);
+    }
+
+    /**
+     * 删除考察配置与考察主关联信息
+     * 
+     * @param investigateTableId 考察配置与考察主关联主键
+     * @return 结果
+     */
+    @Override
+    public int deleteInvestigateDispositionTableByInvestigateTableId(Long investigateTableId)
+    {
+        return investigateDispositionTableMapper.deleteInvestigateDispositionTableByInvestigateTableId(investigateTableId);
+    }
+}

+ 43 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InvestigateTableServiceImpl.java

@@ -1,7 +1,14 @@
 package com.ruoyi.system.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.InvestigateDispositionTable;
+import com.ruoyi.system.domain.SysUserRole;
+import com.ruoyi.system.mapper.InvestigateDispositionTableMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.InvestigateTableMapper;
@@ -19,6 +26,8 @@ public class InvestigateTableServiceImpl implements IInvestigateTableService
 {
     @Autowired
     private InvestigateTableMapper investigateTableMapper;
+    @Autowired
+    private InvestigateDispositionTableMapper investigateDispositionTableMapper;
 
     /**
      * 查询考察主
@@ -54,9 +63,43 @@ public class InvestigateTableServiceImpl implements IInvestigateTableService
     public int insertInvestigateTable(InvestigateTable investigateTable)
     {
         investigateTable.setCreateTime(DateUtils.getNowDate());
+        //新增考察配置与考察主表关联
+        insertInvestigateDispositionTable(investigateTable);
         return investigateTableMapper.insertInvestigateTable(investigateTable);
     }
 
+    /**
+     * 新增考察配置与考察主表关联
+     *
+     * @param investigateTable 考察主表对象
+     */
+    public void insertInvestigateDispositionTable(InvestigateTable investigateTable)
+    {
+        this.insertInvestigateDispositionTable(investigateTable.getInvestigateTableId(), investigateTable.getInvestigateDispositionTableIds());
+    }
+
+    /**
+     * 新增考察配置与考察主表关联
+     *
+     * @param investigateTableId 察主表ID
+     * @param investigateDispositionTableIds 考察配置组
+     */
+    public void insertInvestigateDispositionTable(Long investigateTableId, Long[] investigateDispositionTableIds)
+    {
+        if (StringUtils.isNotEmpty(investigateDispositionTableIds))
+        {
+            // 新增考察配置与考察主表关联
+            List<InvestigateDispositionTable> list = new ArrayList<InvestigateDispositionTable>(investigateDispositionTableIds.length);
+            for (Long dispositionId : investigateDispositionTableIds)
+            {
+                InvestigateDispositionTable investigateDispositionTable = new InvestigateDispositionTable();
+                investigateDispositionTable.setInvestigateTableId(investigateTableId);
+                investigateDispositionTable.setInvestigateDispositionId(dispositionId);
+                list.add(investigateDispositionTable);
+            }
+            investigateDispositionTableMapper.batchDispositionTable(list);
+        }
+    }
     /**
      * 修改考察主
      * 

+ 56 - 17
ruoyi-system/src/main/resources/mapper/system/InvestigateDispositionMapper.xml

@@ -5,10 +5,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 <mapper namespace="com.ruoyi.system.mapper.InvestigateDispositionMapper">
     
     <resultMap type="InvestigateDisposition" id="InvestigateDispositionResult">
-        <result property="id"    column="id"    />
-        <result property="investigateId"    column="investigate_id"    />
+        <result property="investigateDispositionId"    column="investigate_disposition_id"    />
+        <result property="parentId"    column="parent_id"    />
+        <result property="ancestors"    column="ancestors"    />
+        <result property="orderNum"    column="order_num"    />
         <result property="title"    column="title"    />
         <result property="url"    column="url"    />
+        <result property="status"    column="status"    />
+        <result property="parentName" column="parent_name" />
         <result property="createBy"    column="create_by"    />
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
@@ -17,29 +21,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectInvestigateDispositionVo">
-        select id, investigate_id, title, url, create_by, create_time, update_by, update_time, remark from investigate_disposition
+        select investigate_disposition_id, parent_id, ancestors, order_num, title, url, status, create_by, create_time, update_by, update_time, remark from investigate_disposition
     </sql>
 
     <select id="selectInvestigateDispositionList" parameterType="InvestigateDisposition" resultMap="InvestigateDispositionResult">
         <include refid="selectInvestigateDispositionVo"/>
         <where>  
-            <if test="investigateId != null "> and investigate_id = #{investigateId}</if>
+            <if test="parentId != null "> and parent_id = #{parentId}</if>
+            <if test="ancestors != null  and ancestors != ''"> and ancestors = #{ancestors}</if>
+            <if test="orderNum != null "> and order_num = #{orderNum}</if>
             <if test="title != null  and title != ''"> and title = #{title}</if>
             <if test="url != null  and url != ''"> and url = #{url}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
         </where>
     </select>
     
-    <select id="selectInvestigateDispositionById" parameterType="Long" resultMap="InvestigateDispositionResult">
+    <select id="selectInvestigateDispositionByInvestigateDispositionId" parameterType="Long" resultMap="InvestigateDispositionResult">
         <include refid="selectInvestigateDispositionVo"/>
-        where id = #{id}
+        where investigate_disposition_id = #{investigateDispositionId}
     </select>
         
-    <insert id="insertInvestigateDisposition" parameterType="InvestigateDisposition" useGeneratedKeys="true" keyProperty="id">
+    <insert id="insertInvestigateDisposition" parameterType="InvestigateDisposition" useGeneratedKeys="true" keyProperty="investigateDispositionId">
         insert into investigate_disposition
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="investigateId != null">investigate_id,</if>
+            <if test="parentId != null">parent_id,</if>
+            <if test="ancestors != null">ancestors,</if>
+            <if test="orderNum != null">order_num,</if>
             <if test="title != null">title,</if>
             <if test="url != null">url,</if>
+            <if test="status != null">status,</if>
             <if test="createBy != null">create_by,</if>
             <if test="createTime != null">create_time,</if>
             <if test="updateBy != null">update_by,</if>
@@ -47,9 +57,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="remark != null">remark,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="investigateId != null">#{investigateId},</if>
+            <if test="parentId != null">#{parentId},</if>
+            <if test="ancestors != null">#{ancestors},</if>
+            <if test="orderNum != null">#{orderNum},</if>
             <if test="title != null">#{title},</if>
             <if test="url != null">#{url},</if>
+            <if test="status != null">#{status},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="updateBy != null">#{updateBy},</if>
@@ -61,26 +74,52 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateInvestigateDisposition" parameterType="InvestigateDisposition">
         update investigate_disposition
         <trim prefix="SET" suffixOverrides=",">
-            <if test="investigateId != null">investigate_id = #{investigateId},</if>
+            <if test="parentId != null">parent_id = #{parentId},</if>
+            <if test="ancestors != null">ancestors = #{ancestors},</if>
+            <if test="orderNum != null">order_num = #{orderNum},</if>
             <if test="title != null">title = #{title},</if>
             <if test="url != null">url = #{url},</if>
+            <if test="status != null">status = #{status},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="remark != null">remark = #{remark},</if>
         </trim>
-        where id = #{id}
+        where investigate_disposition_id = #{investigateDispositionId}
     </update>
 
-    <delete id="deleteInvestigateDispositionById" parameterType="Long">
-        delete from investigate_disposition where id = #{id}
+    <delete id="deleteInvestigateDispositionByInvestigateDispositionId" parameterType="Long">
+        delete from investigate_disposition where investigate_disposition_id = #{investigateDispositionId}
     </delete>
 
-    <delete id="deleteInvestigateDispositionByIds" parameterType="String">
-        delete from investigate_disposition where id in 
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
+    <delete id="deleteInvestigateDispositionByInvestigateDispositionIds" parameterType="String">
+        delete from investigate_disposition where investigate_disposition_id in 
+        <foreach item="investigateDispositionId" collection="array" open="(" separator="," close=")">
+            #{investigateDispositionId}
         </foreach>
     </delete>
+
+    <select id="selectInvestigateDispositionById" parameterType="Long" resultMap="InvestigateDispositionResult">
+        select d.investigate_disposition_id, d.parent_id, d.ancestors, d.order_num, d.title, d.url, d.status,
+            (select title from investigate_disposition where investigate_disposition_id = d.investigate_disposition_id) parent_name
+        from investigate_disposition d
+        where d.investigate_disposition_id = #{investigateDispositionId}
+    </select>
+    <select id="selectChildrenInvestigateDispositionById" parameterType="Long" resultMap="InvestigateDispositionResult">
+        select * from investigate_disposition where find_in_set(#{investigateDispositionId}, ancestors)
+    </select>
+
+    <update id="updateInvestigateDispositionChildren" parameterType="java.util.List">
+        update investigate_disposition set ancestors =
+        <foreach collection="investigateDispositions" item="item" index="index"
+                 separator=" " open="case investigate_disposition_id" close="end">
+            when #{investigateDispositionId} then #{item.ancestors}
+        </foreach>
+        where investigate_disposition_id in
+        <foreach collection="investigateDispositions" item="item" index="index"
+                 separator="," open="(" close=")">
+            #{investigateDispositionId}
+        </foreach>
+    </update>
 </mapper>

+ 64 - 0
ruoyi-system/src/main/resources/mapper/system/InvestigateDispositionTableMapper.xml

@@ -0,0 +1,64 @@
+<?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.system.mapper.InvestigateDispositionTableMapper">
+    
+    <resultMap type="InvestigateDispositionTable" id="InvestigateDispositionTableResult">
+        <result property="investigateTableId"    column="investigate_table_id"    />
+        <result property="investigateDispositionId"    column="investigate_disposition_id"    />
+    </resultMap>
+
+    <sql id="selectInvestigateDispositionTableVo">
+        select investigate_table_id, investigate_disposition_id from investigate_disposition_table
+    </sql>
+
+    <select id="selectInvestigateDispositionTableList" parameterType="InvestigateDispositionTable" resultMap="InvestigateDispositionTableResult">
+        <include refid="selectInvestigateDispositionTableVo"/>
+        <where>  
+        </where>
+    </select>
+    
+    <select id="selectInvestigateDispositionTableByInvestigateTableId" parameterType="Long" resultMap="InvestigateDispositionTableResult">
+        <include refid="selectInvestigateDispositionTableVo"/>
+        where investigate_table_id = #{investigateTableId}
+    </select>
+        
+    <insert id="insertInvestigateDispositionTable" parameterType="InvestigateDispositionTable">
+        insert into investigate_disposition_table
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="investigateTableId != null">investigate_table_id,</if>
+            <if test="investigateDispositionId != null">investigate_disposition_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="investigateTableId != null">#{investigateTableId},</if>
+            <if test="investigateDispositionId != null">#{investigateDispositionId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateInvestigateDispositionTable" parameterType="InvestigateDispositionTable">
+        update investigate_disposition_table
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="investigateDispositionId != null">investigate_disposition_id = #{investigateDispositionId},</if>
+        </trim>
+        where investigate_table_id = #{investigateTableId}
+    </update>
+
+    <delete id="deleteInvestigateDispositionTableByInvestigateTableId" parameterType="Long">
+        delete from investigate_disposition_table where investigate_table_id = #{investigateTableId}
+    </delete>
+
+    <delete id="deleteInvestigateDispositionTableByInvestigateTableIds" parameterType="String">
+        delete from investigate_disposition_table where investigate_table_id in 
+        <foreach item="investigateTableId" collection="array" open="(" separator="," close=")">
+            #{investigateTableId}
+        </foreach>
+    </delete>
+
+    <insert id="batchDispositionTable">
+        insert into investigate_disposition_table(investigate_table_id, investigate_disposition_id) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            (#{investigateTableId},#{investigateDispositionId})
+        </foreach>
+    </insert>
+</mapper>

+ 6 - 6
ruoyi-system/src/main/resources/mapper/system/InvestigateTableMapper.xml

@@ -5,7 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 <mapper namespace="com.ruoyi.system.mapper.InvestigateTableMapper">
     
     <resultMap type="InvestigateTable" id="InvestigateTableResult">
-        <result property="id"    column="id"    />
+        <result property="investigateTableId"    column="investigate_table_id"    />
         <result property="investigateName"    column="investigate_name"    />
         <result property="content"    column="content"    />
         <result property="endTime"    column="end_time"    />
@@ -18,7 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectInvestigateTableVo">
-        select id, investigate_name, content, end_time, cipher, create_by, create_time, update_by, update_time, remark from investigate_table
+        select investigate_table_id, investigate_name, content, end_time, cipher, create_by, create_time, update_by, update_time, remark from investigate_table
     </sql>
 
     <select id="selectInvestigateTableList" parameterType="InvestigateTable" resultMap="InvestigateTableResult">
@@ -33,7 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     
     <select id="selectInvestigateTableById" parameterType="Long" resultMap="InvestigateTableResult">
         <include refid="selectInvestigateTableVo"/>
-        where id = #{id}
+        where investigate_table_id = #{investigateTableId}
     </select>
         
     <insert id="insertInvestigateTable" parameterType="InvestigateTable" useGeneratedKeys="true" keyProperty="id">
@@ -75,15 +75,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="remark != null">remark = #{remark},</if>
         </trim>
-        where id = #{id}
+        where investigate_table_id = #{investigateTableId}
     </update>
 
     <delete id="deleteInvestigateTableById" parameterType="Long">
-        delete from investigate_table where id = #{id}
+        delete from investigate_table where investigate_table_id = #{investigateTableId}
     </delete>
 
     <delete id="deleteInvestigateTableByIds" parameterType="String">
-        delete from investigate_table where id in 
+        delete from investigate_table where investigate_table_id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>

BIN
ruoyi-ui/src/assets/images/index/mring.png


BIN
ruoyi-ui/src/assets/images/index/refresh.png


BIN
ruoyi-ui/src/assets/images/index/rimg.png


BIN
ruoyi-ui/src/assets/images/index/topa.png


BIN
ruoyi-ui/src/assets/images/index/topb.png


BIN
ruoyi-ui/src/assets/images/index/topc.png


+ 113 - 0
ruoyi-ui/src/views/dashboard/BoldChart.vue

@@ -0,0 +1,113 @@
+<template>
+  <div :class="className" :style="{height:height,width:width}" />
+</template>
+
+<script>
+import * as echarts from 'echarts';
+require('echarts/theme/macarons') // echarts theme
+import resize from './mixins/resize'
+
+export default {
+  mixins: [resize],
+  props: {
+    className: {
+      type: String,
+      default: 'chart'
+    },
+    width: {
+      type: String,
+      default: '100%'
+    },
+    height: {
+      type: String,
+      default: '295px'
+    }
+  },
+  data() {
+    return {
+      chart: null
+    }
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.initChart()
+    })
+  },
+  beforeDestroy() {
+    if (!this.chart) {
+      return
+    }
+    this.chart.dispose()
+    this.chart = null
+  },
+  methods: {
+    initChart() {
+      this.chart = echarts.init(this.$el, 'macarons')
+
+      this.chart.setOption({
+        color:['#91F2DE', '#65E1E3','#32EADC','#38CDDC', '#60A4DF','#91EAFD'],
+        tooltip: {
+          trigger: 'item',
+          formatter: '{a} <br/>{b} : {c}次',
+          backgroundColor: "#FFF",
+          color: "#161616",
+          textStyle: {
+            color: "#161616",
+          },
+        },
+        legend: {
+          show:false,
+          left: 'center',
+          bottom: '10',
+          data: ['0 ~ 5分', '5 ~ 10分', '10 ~ 20分', '20 ~ 30分', '30 ~ 60分','60分以上']
+        },
+
+        graphic: [{
+          type: "text",
+          left: "center",
+          top: "136",
+          style: {
+            text: "人均停留(分钟)",
+            textAlign: "center",
+            fill: "#666666",
+            fontSize: 14,
+            }
+        },{
+          type: "text",
+          left: "center",
+          top: "160",
+          style: {
+            text:"47",
+            textAlign: "center",
+            fill: "#65E3C3",
+            fontSize: 18,
+            fontWeight:'bold',
+            }
+        }],
+        series: [
+          {
+            name: '人均停留时长统计',
+            type: 'pie',
+            radius: ['50%', '70%'],
+            itemStyle: {
+              borderRadius: 0,
+              borderColor: '#ffffff',
+              borderWidth: 2
+            },
+            data: [
+              { value: 31, name: '0 ~ 5分' },
+              { value: 79, name: '5 ~ 10分' },
+              { value: 23, name: '10 ~ 20分' },
+              { value: 12, name: '20 ~ 30分' },
+              { value: 2, name: '30 ~ 60分' },
+              { value: 6, name: '60分以上' }
+            ],
+            // animationEasing: 'cubicInOut',
+            // animationDuration: 2600
+          }
+        ]
+      })
+    }
+  }
+}
+</script>

+ 324 - 0
ruoyi-ui/src/views/dashboard/GaugeChart.vue

@@ -0,0 +1,324 @@
+<template>
+  <div :class="className" :style="{height:height,width:width}" />
+</template>
+
+<script>
+import * as echarts from 'echarts';
+require('echarts/theme/macarons') // echarts theme
+import resize from './mixins/resize'
+
+export default {
+  mixins: [resize],
+  props: {
+    className: {
+      type: String,
+      default: 'chart'
+    },
+    width: {
+      type: String,
+      default: '104px'
+    },
+    height: {
+      type: String,
+      default: '104px'
+    }
+  },
+  data() {
+    return {
+      chart: null,
+      timestr:'',
+      option: {
+        series: [
+          {
+            name: 'hour',
+            type: 'gauge',
+            startAngle: 90,
+            endAngle: -270,
+            min: 0,
+            max: 12,
+            splitNumber: 12,
+            clockwise: true,
+            axisTick:{
+              show:false,
+            },
+            axisLine: {
+              lineStyle: {
+                width: 2,
+                color: [[1, 'rgba(0,0,0,0.7)']],
+                shadowColor: 'rgba(0, 0, 0, 0.5)',
+                shadowBlur: 2
+              }
+            },
+            splitLine: {
+              length: 3,
+              distance: 3,
+              lineStyle: {
+                width: 1,
+                shadowColor: 'rgba(0, 0, 0, 0.3)',
+                shadowBlur: 1,
+                shadowOffsetX: 1,
+                shadowOffsetY: 2
+              }
+            },
+            axisLabel: {
+              fontSize: 11,
+              distance: 3,
+              formatter: function (value) {
+                if (value === 0) {
+                  return '';
+                }
+                return value + '';
+              }
+            },
+            anchor: {
+              show: false,
+              icon: 'path://M532.8,70.8C532.8,70.8,532.8,70.8,532.8,70.8L532.8,70.8C532.7,70.8,532.8,70.8,532.8,70.8z M456.1,49.6c-2.2-6.2-8.1-10.6-15-10.6h-37.5v10.6h37.5l0,0c2.9,0,5.3,2.4,5.3,5.3c0,2.9-2.4,5.3-5.3,5.3v0h-22.5c-1.5,0.1-3,0.4-4.3,0.9c-4.5,1.6-8.1,5.2-9.7,9.8c-0.6,1.7-0.9,3.4-0.9,5.3v16h10.6v-16l0,0l0,0c0-2.7,2.1-5,4.7-5.3h10.3l10.4,21.2h11.8l-10.4-21.2h0c6.9,0,12.8-4.4,15-10.6c0.6-1.7,0.9-3.5,0.9-5.3C457,53,456.7,51.2,456.1,49.6z M388.9,92.1h11.3L381,39h-3.6h-11.3L346.8,92v0h11.3l3.9-10.7h7.3h7.7l3.9-10.6h-7.7h-7.3l7.7-21.2v0L388.9,92.1z M301,38.9h-10.6v53.1H301V70.8h28.4l3.7-10.6H301V38.9zM333.2,38.9v10.6v10.7v31.9h10.6V38.9H333.2z M249.5,81.4L249.5,81.4L249.5,81.4c-2.9,0-5.3-2.4-5.3-5.3h0V54.9h0l0,0c0-2.9,2.4-5.3,5.3-5.3l0,0l0,0h33.6l3.9-10.6h-37.5c-1.9,0-3.6,0.3-5.3,0.9c-4.5,1.6-8.1,5.2-9.7,9.7c-0.6,1.7-0.9,3.5-0.9,5.3l0,0v21.3c0,1.9,0.3,3.6,0.9,5.3c1.6,4.5,5.2,8.1,9.7,9.7c1.7,0.6,3.5,0.9,5.3,0.9h33.6l3.9-10.6H249.5z M176.8,38.9v10.6h49.6l3.9-10.6H176.8z M192.7,81.4L192.7,81.4L192.7,81.4c-2.9,0-5.3-2.4-5.3-5.3l0,0v-5.3h38.9l3.9-10.6h-53.4v10.6v5.3l0,0c0,1.9,0.3,3.6,0.9,5.3c1.6,4.5,5.2,8.1,9.7,9.7c1.7,0.6,3.4,0.9,5.3,0.9h23.4h10.2l3.9-10.6l0,0H192.7z M460.1,38.9v10.6h21.4v42.5h10.6V49.6h17.5l3.8-10.6H460.1z M541.6,68.2c-0.2,0.1-0.4,0.3-0.7,0.4C541.1,68.4,541.4,68.3,541.6,68.2L541.6,68.2z M554.3,60.2h-21.6v0l0,0c-2.9,0-5.3-2.4-5.3-5.3c0-2.9,2.4-5.3,5.3-5.3l0,0l0,0h33.6l3.8-10.6h-37.5l0,0c-6.9,0-12.8,4.4-15,10.6c-0.6,1.7-0.9,3.5-0.9,5.3c0,1.9,0.3,3.7,0.9,5.3c2.2,6.2,8.1,10.6,15,10.6h21.6l0,0c2.9,0,5.3,2.4,5.3,5.3c0,2.9-2.4,5.3-5.3,5.3l0,0h-37.5v10.6h37.5c6.9,0,12.8-4.4,15-10.6c0.6-1.7,0.9-3.5,0.9-5.3c0-1.9-0.3-3.7-0.9-5.3C567.2,64.6,561.3,60.2,554.3,60.2z',
+              showAbove: false,
+              offsetCenter: [0, '-35%'],
+              size: 10,
+              keepAspect: true,
+              itemStyle: {
+                color: '#707177'
+              }
+            },
+            pointer: {
+              icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
+              width: 5,
+              length: '55%',
+              offsetCenter: [0, '8%'],
+              itemStyle: {
+                color: '#C0911F',
+                shadowColor: 'rgba(0, 0, 0, 0.3)',
+                shadowBlur: 1,
+                shadowOffsetX: 2,
+                shadowOffsetY: 4
+              }
+            },
+            detail: {
+              show: false
+            },
+            title: {
+              offsetCenter: [0, '30%']
+            },
+            data: [
+              {
+                value: 0
+              }
+            ]
+          },
+          {
+            name: 'minute',
+            type: 'gauge',
+            startAngle: 90,
+            endAngle: -270,
+            min: 0,
+            max: 60,
+            clockwise: true,
+            axisLine: {
+              show: false
+            },
+            splitLine: {
+              show: false
+            },
+            axisTick: {
+              show: false
+            },
+            axisLabel: {
+              show: false
+            },
+            pointer: {
+              icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
+              width: 3,
+              length: '70%',
+              offsetCenter: [0, '8%'],
+              itemStyle: {
+                color: '#C0911F',
+                shadowColor: 'rgba(0, 0, 0, 0.3)',
+                shadowBlur: 1,
+                shadowOffsetX: 2,
+                shadowOffsetY: 4
+              }
+            },
+            anchor: {
+              show: true,
+              size: 8,
+              showAbove: false,
+              itemStyle: {
+                borderWidth: 3,
+                borderColor: '#C0911F',
+                shadowColor: 'rgba(0, 0, 0, 0.3)',
+                shadowBlur: 1,
+                shadowOffsetX: 2,
+                shadowOffsetY: 4
+              }
+            },
+            detail: {
+              show: false
+            },
+            title: {
+              offsetCenter: ['0%', '-40%']
+            },
+            data: [
+              {
+                value: 0
+              }
+            ]
+          },
+          {
+            name: 'second',
+            type: 'gauge',
+            startAngle: 90,
+            endAngle: -270,
+            min: 0,
+            max: 60,
+            animationEasingUpdate: 'bounceOut',
+            clockwise: true,
+            axisLine: {
+              show: false
+            },
+            splitLine: {
+              show: false
+            },
+            axisTick: {
+              show: false
+            },
+            axisLabel: {
+              show: false
+            },
+            pointer: {
+              icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
+              width: 1,
+              length: '85%',
+              offsetCenter: [0, '8%'],
+              itemStyle: {
+                color: '#C0911F',
+                shadowColor: 'rgba(0, 0, 0, 0.3)',
+                shadowBlur: 1,
+                shadowOffsetX: 2,
+                shadowOffsetY: 4
+              }
+            },
+            anchor: {
+              show: true,
+              size: 1,
+              showAbove: true,
+              itemStyle: {
+                color: '#C0911F',
+                shadowColor: 'rgba(0, 0, 0, 0.3)',
+                shadowBlur: 1,
+                shadowOffsetX: 2,
+                shadowOffsetY: 4
+              }
+            },
+            detail: {
+              show: false
+            },
+            title: {
+              offsetCenter: ['0%', '-40%']
+            },
+            data: [
+              {
+                value: 0
+              }
+            ]
+          }
+        ]
+      },
+    }
+  },
+  mounted() {
+    this.$nextTick(() => {
+      // this.initChart()
+      this.time()
+      this.chart = echarts.init(this.$el, 'macarons')
+      this.chart.setOption(this.option)
+      // return
+      var that=this;
+      clearInterval(this.timestr)
+      that.timestr=setInterval(function () {
+        var date = new Date();
+        var y = date.getFullYear();
+        var m = date.getMonth() + 1;
+        var d = date.getDate();
+        var h = date.getHours();
+        var min = date.getMinutes();
+        var s = date.getSeconds();
+        var second = s;
+        var minute = min + second / 60;
+        var hour = (h % 12) + minute / 60;
+
+        var timeStr = (h < 10 ? ('0' + h) : h) + ':' + (min < 10 ? ('0' + min) : min) + ':' + (s < 10 ? (
+        	'0' + s) : s);
+        var day=m+'月'+d+'日'
+        var week = date.getDay(); //获取当前星期X(0-6,0代表星期天)
+        var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
+        var obj={
+          time:timeStr,
+          day:day,
+          week:weeks[week]
+        }
+        // that.option.animationDurationUpdate = 300;
+        that.$emit('getTime',obj)
+        var optione={
+          series: [
+            {
+              name: 'hour',
+              animation: hour !== 0,
+              data: [{ value: hour }]
+            },
+            {
+              name: 'minute',
+              animation: minute !== 0,
+              data: [{ value: minute }]
+            },
+            {
+              animation: second !== 0,
+              name: 'second',
+              data: [{ value: second }]
+            }
+          ]
+        }
+        that.chart.setOption(optione);
+      }, 1000);
+
+
+    })
+  },
+  beforeDestroy() {
+    if (!this.chart) {
+      return
+    }
+    clearInterval(this.timestr)
+    this.chart.dispose()
+    this.chart = null
+  },
+  methods: {
+    time(){
+      var date = new Date();
+      var y = date.getFullYear();
+      var m = date.getMonth() + 1;
+      var d = date.getDate();
+      var h = date.getHours();
+      var min = date.getMinutes();
+      var s = date.getSeconds();
+      var timeStr = (h < 10 ? ('0' + h) : h) + ':' + (min < 10 ? ('0' + min) : min) + ':' + (s < 10 ? (
+      	'0' + s) : s);
+      var day=m+'月'+d+'日'
+      var week = date.getDay(); //获取当前星期X(0-6,0代表星期天)
+      var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
+      var obj={
+        time:timeStr,
+        day:day,
+        week:weeks[week]
+      }
+      this.$emit('getTime',obj)
+    },
+    initChart() {
+      this.chart = echarts.init(this.$el, 'macarons')
+      this.chart.setOption({
+
+      })
+    }
+  }
+}
+</script>

+ 176 - 0
ruoyi-ui/src/views/dashboard/lineBarChart.vue

@@ -0,0 +1,176 @@
+<template>
+  <div :class="className" :style="{height:height,width:width}" />
+</template>
+
+<script>
+import * as echarts from 'echarts';
+require('echarts/theme/macarons') // echarts theme
+import resize from './mixins/resize'
+
+export default {
+  mixins: [resize],
+  props: {
+    className: {
+      type: String,
+      default: 'chart'
+    },
+    width: {
+      type: String,
+      default: '100%'
+    },
+    height: {
+      type: String,
+      default: '458px'
+    },
+    autoResize: {
+      type: Boolean,
+      default: true
+    },
+    chartData: {
+      type: Object,
+      required: true
+    }
+  },
+  data() {
+    return {
+      chart: null
+    }
+  },
+  watch: {
+    chartData: {
+      deep: true,
+      handler(val) {
+        this.setOptions(val)
+      }
+    }
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.initChart()
+    })
+  },
+  beforeDestroy() {
+    if (!this.chart) {
+      return
+    }
+    this.chart.dispose()
+    this.chart = null
+  },
+  methods: {
+    initChart() {
+      this.chart = echarts.init(this.$el, 'macarons')
+      this.setOptions(this.chartData)
+    },
+    setOptions({ expectedData, actualData,linedata } = {}) {
+      this.chart.setOption({
+        title:{text: "2023年浏览统计",
+          left: "center",
+          top: 0,
+          textStyle: {
+            color: "#161616",
+            fontWeight: 'bold',
+            fontSize: '15px',
+            }
+          },
+        color:['#04BFA1', '#4875E8','#FFB132'],
+        xAxis: {
+          data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月','8月', '9月', '10月', '11月', '12月'],
+          axisLabel:{
+            color:'#AAAAAA'
+          },
+          axisLine: {
+          	lineStyle: {
+          		color: '#DADADA',
+          		width: 1
+          	}
+          },
+          splitLine: {
+                show: false,
+              },
+        },
+        grid: {
+          left: 10,
+          right: 10,
+          bottom: 40,
+          top: 50,
+          show:false,
+          containLabel: true
+        },
+        toolbox: {
+          show:false,
+        },
+        tooltip: {
+          trigger: 'axis',
+          backgroundColor: "#FFF",
+          color: "#161616",
+          textStyle: {
+                color: "#161616",
+                // fontWeight:'bold'
+              },
+          axisPointer: {
+            type: 'cross',
+          },
+          padding: [5, 10]
+        },
+        yAxis: {
+          splitArea: {
+            show: false
+          },
+          axisLabel:{
+            color:'#AAAAAA'
+          },
+          axisLine: {
+            show:true,
+          	lineStyle: {
+          		color: '#DADADA',
+          		width: 1
+          	}
+          },
+          splitLine:{  //决定是否显示坐标中网格
+            show:false
+          }
+        },
+        legend: {
+          x:'center',
+          y:'bottom',
+          textStyle: {
+            color: "#161616",
+            padding:[0,3]//文字与图形之间的左右间距
+          },
+          itemWidth: 38,//图例标记的图形宽度。
+          itemHeight: 12,
+          itemGap: 20,
+          data: ['总浏览人数', '总浏览次数','累计浏览终端数']
+        },
+        series: [{
+          name: '总浏览人数',
+          itemStyle: {},
+          type: 'bar',
+          barGap:"70%",
+          barCategoryGap:'30%',
+          data: expectedData,
+          // animationDuration: 2800,
+          // animationEasing: 'cubicInOut'
+        },
+        {
+          name: '总浏览次数',
+          type: 'bar',
+          barGap:"70%",
+          barCategoryGap:'30%',
+          data: actualData,
+          // animationDuration: 2800,
+          // animationEasing: 'quadraticOut'
+        },
+        {
+          name: '累计浏览终端数',
+          type: 'line',
+          data: linedata,
+          // animationDuration: 2800,
+          // animationEasing: 'quadraticOut'
+        }
+        ]
+      })
+    }
+  }
+}
+</script>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 387 - 926
ruoyi-ui/src/views/index.vue


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác