From 5fccfd521d02ae9a3cd29a0bdc9dcf4b4b179f59 Mon Sep 17 00:00:00 2001
From: 克 刘 <4345453@qq.com>
Date: Fri, 10 Apr 2020 11:40:25 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.2.240:7070/r/kidgrow-microservices-platform into dev
---
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml | 1
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java | 37
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDictionariesController.java | 30
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java | 3
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDictionariesMapper.xml | 14
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorAnswer.java | 2
kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js | 25
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java | 42
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysFeedbackService.java | 7
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml | 2
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java | 4
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessServer.java | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysLoggerController.java | 24
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DataNeed.java | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysFeedbackMapper.xml | 17
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/sysdictionaries.html | 285 +++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java | 37
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysFeedbackController.java | 43
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java | 19
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDictionariesMapper.java | 2
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysArea.java | 21
kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/treetable2/treeTable.css | 396 +++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java | 7
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/sysArea.html | 187 ++
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java | 33
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysAreaMapper.java | 8
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java | 2
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysAreaServiceImpl.java | 26
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java | 2
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java | 9
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysAreaService.java | 8
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java | 10
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml | 5
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html | 711 +++++++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorServer.java | 3
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html | 153 +
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysAreaMapper.xml | 5
kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/treetable2/treeTable.js | 1494 ++++++++++++++++++
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDictionaries.java | 9
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html | 236 ++
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java | 9
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysFeedback.java | 2
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml | 4
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java | 7
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java | 12
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java | 37
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorSigning.java | 12
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDictionariesVo.java | 10
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDictionariesService.java | 8
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java | 3
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java | 125 +
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessRecords.java | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java | 60
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorTemplete.java | 2
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDictionariesServiceImpl.java | 47
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java | 18
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java | 5
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java | 10
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java | 7
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/sysArea_form.html | 110 +
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product_form.html | 101 +
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysAreaController.java | 45
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product.html | 133 +
kidgrow-web/kidgrow-web-manager/src/main/resources/static/index.html | 33
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java | 5
65 files changed, 4,557 insertions(+), 173 deletions(-)
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessRecords.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessRecords.java
index d2f1139..37c7539 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessRecords.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessRecords.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -61,6 +62,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
private Boolean isDel;
/**
* 状态,1启用,0停用
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessServer.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessServer.java
index bbe86f9..79457ae 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessServer.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessServer.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -54,6 +55,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DataNeed.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DataNeed.java
index f32429d..df4fc12 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DataNeed.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DataNeed.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -72,6 +73,7 @@
/**
* 是否删除,1删除(已下载),0未删除(未下载)
*/
+ @TableLogic
private Boolean isDel;
/**
* 文件路径
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorAnswer.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorAnswer.java
index cedd506..7f5cad4 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorAnswer.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorAnswer.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -29,6 +30,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorServer.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorServer.java
index d89f08c..f72a645 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorServer.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorServer.java
@@ -1,12 +1,12 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;
/**
@@ -42,6 +42,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorSigning.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorSigning.java
index 0efd75b..3c0f4cd 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorSigning.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorSigning.java
@@ -1,18 +1,13 @@
package com.kidgrow.oprationcenter.model;
-import com.kidgrow.common.model.SuperModel;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.*;
-
-import java.util.Date;
+import org.hibernate.validator.constraints.NotEmpty;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -34,6 +29,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorTemplete.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorTemplete.java
index 8d1ebf5..e26093c 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorTemplete.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorTemplete.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -76,6 +77,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java
index d856b5d..57a9392 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java
@@ -1,12 +1,12 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;
/**
@@ -46,6 +46,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java
index 32c138c..8995728 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -72,6 +73,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java
index 5865e22..f0d6424 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -50,6 +51,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysFeedback.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysFeedback.java
index 639fef6..bc8236d 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysFeedback.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysFeedback.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -66,6 +67,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
private Boolean isDel;
/**
* 状态,1已查收,0未处理
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java
index f822277..a38e4f4 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -8,6 +9,7 @@
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
@@ -35,31 +37,37 @@
/**
* 时长(天)
*/
- @NotEmpty(message = "时长(天)不能为空")
+ @NotNull(message = "时长不能为空")
private Integer proTime;
+ /**
+ * 时长单位
+ */
+ @NotNull(message = "时长单位不能为空")
+ private Integer proTimeUnit;
/**
* 产品类型 0试用 1正式
*/
- @NotEmpty(message = "产品类型 0试用 1正式不能为空")
+ @NotNull(message = "产品类型 0试用 1正式不能为空")
private Integer proType;
/**
* 建议售价
*/
- @NotEmpty(message = "建议售价不能为空")
+ @NotNull(message = "建议售价不能为空")
private BigDecimal proPrice;
/**
* 报告量
*/
- @NotEmpty(message = "报告量不能为空")
+ @NotNull(message = "报告量不能为空")
private Integer recordCount;
/**
* 读片量
*/
- @NotEmpty(message = "读片量不能为空")
+ @NotNull(message = "读片量不能为空")
private Integer ailightCount;
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
private Boolean isDel;
/**
* 状态,1启用,0停用
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysFeedbackService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysFeedbackService.java
index 3f9f798..f7b1772 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysFeedbackService.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysFeedbackService.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.service;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.oprationcenter.model.SysFeedback;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.ISuperService;
@@ -29,5 +30,11 @@
* @return SysFeedback对象
*/
SysFeedback findByObject(SysFeedback sysFeedback);
+ /**
+ * 状态变更
+ * @param params
+ * @return
+ */
+ ResultBody updateEnabled(Map<String, Object> params);
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java
index 0487484..64d7428 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.service;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.oprationcenter.model.SysProduct;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.ISuperService;
@@ -29,5 +30,11 @@
* @return SysProduct对象
*/
SysProduct findByObject(SysProduct sysProduct);
+ /**
+ * 状态变更
+ * @param params
+ * @return
+ */
+ ResultBody updateEnabled(Map<String, Object> params);
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java
index a3ca564..0c7e151 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java
@@ -1,18 +1,19 @@
package com.kidgrow.oprationcenter.service.impl;
-import org.springframework.stereotype.Service;
-import com.kidgrow.common.model.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.oprationcenter.mapper.SysFeedbackMapper;
+import com.kidgrow.oprationcenter.model.SysFeedback;
+import com.kidgrow.oprationcenter.service.ISysFeedbackService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.stereotype.Service;
+import java.util.Date;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.MapUtils;
-import lombok.extern.slf4j.Slf4j;
-
-import com.kidgrow.oprationcenter.model.SysFeedback;
-import com.kidgrow.oprationcenter.mapper.SysFeedbackMapper;
-import com.kidgrow.oprationcenter.service.ISysFeedbackService;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -46,4 +47,24 @@
public SysFeedback findByObject(SysFeedback sysFeedback){
return baseMapper.findByObject(sysFeedback);
}
+
+ /**
+ * 根据id和启用禁用值更新数据
+ * @param params
+ * @return ResultBody
+ */
+ @Override
+ public ResultBody updateEnabled(Map<String, Object> params) {
+ Long id = MapUtils.getLong(params, "id");
+ Boolean enabled = MapUtils.getBoolean(params, "enabled");
+
+ SysFeedback feedback = baseMapper.selectById(id);
+ if (feedback == null) {
+ return ResultBody.failed("该反馈数据不存在!");
+ }
+ feedback.setEnabled(enabled);
+ feedback.setUpdateTime(new Date());
+ int i = baseMapper.updateById(feedback);
+ return i > 0 ? ResultBody.ok().data(feedback).msg("更新成功") : ResultBody.failed("更新失败");
+ }
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java
index 82797e4..a57e78b 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java
@@ -1,18 +1,19 @@
package com.kidgrow.oprationcenter.service.impl;
-import org.springframework.stereotype.Service;
-import com.kidgrow.common.model.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.oprationcenter.mapper.SysProductMapper;
+import com.kidgrow.oprationcenter.model.SysProduct;
+import com.kidgrow.oprationcenter.service.ISysProductService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.stereotype.Service;
+import java.util.Date;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.MapUtils;
-import lombok.extern.slf4j.Slf4j;
-
-import com.kidgrow.oprationcenter.model.SysProduct;
-import com.kidgrow.oprationcenter.mapper.SysProductMapper;
-import com.kidgrow.oprationcenter.service.ISysProductService;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -46,4 +47,24 @@
public SysProduct findByObject(SysProduct sysProduct){
return baseMapper.findByObject(sysProduct);
}
+
+ /**
+ * 根据id和启用禁用值更新数据
+ * @param params
+ * @return ResultBody
+ */
+ @Override
+ public ResultBody updateEnabled(Map<String, Object> params) {
+ Long id = MapUtils.getLong(params, "id");
+ Boolean enabled = MapUtils.getBoolean(params, "enabled");
+
+ SysProduct sysProduct = baseMapper.selectById(id);
+ if (sysProduct == null) {
+ return ResultBody.failed("该数据不存在!");
+ }
+ sysProduct.setEnabled(enabled);
+ sysProduct.setUpdateTime(new Date());
+ int i = baseMapper.updateById(sysProduct);
+ return i > 0 ? ResultBody.ok().data(sysProduct).msg("更新成功") : ResultBody.failed("更新失败");
+ }
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysFeedbackMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysFeedbackMapper.xml
index de5684f..50c3397 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysFeedbackMapper.xml
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysFeedbackMapper.xml
@@ -4,7 +4,13 @@
<mapper namespace="com.kidgrow.oprationcenter.mapper.SysFeedbackMapper">
<!--定义查询列-->
<sql id="Column_List">
- *
+ id,
+ doctor_name,
+ doctor_tel,
+ department_name,
+ hospital_name,
+ enabled,
+ create_time
</sql>
<!--sql查询片段-->
@@ -19,7 +25,7 @@
and doctor_id = #{p.doctorId}
</if>
<if test="p.doctorName != null and p.doctorName !=''">
- and doctor_name = #{p.doctorName}
+ and doctor_name like concat('%', #{p.doctorName}, '%')
</if>
<if test="p.doctorTel != null and p.doctorTel !=''">
and doctor_tel = #{p.doctorTel}
@@ -57,11 +63,8 @@
<if test="p.updateUserName != null and p.updateUserName !=''">
and update_user_name = #{p.updateUserName}
</if>
- <if test="p.createTime != null and p.createTime !=''">
- and create_time = #{p.createTime}
- </if>
- <if test="p.updateTime != null and p.updateTime !=''">
- and update_time = #{p.updateTime}
+ <if test="p.createTime != null and p.createTime !='' and p.updateTime != null and p.updateTime !=''">
+ and (create_time between #{p.createTime} and #{p.updateTime})
</if>
</where>
</sql>
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml
index e015f6f..c23f867 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml
@@ -16,7 +16,7 @@
and id = #{p.id}
</if>
<if test="p.proName != null and p.proName !=''">
- and pro_name = #{p.proName}
+ and pro_name like concat('%', #{p.proName}, '%')
</if>
<if test="p.proTime != null and p.proTime !=''">
and pro_time = #{p.proTime}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysFeedbackController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysFeedbackController.java
index 5376e06..e95b416 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysFeedbackController.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysFeedbackController.java
@@ -1,28 +1,24 @@
package com.kidgrow.oprationcenter.controller;
-import java.util.Map;
import com.kidgrow.common.controller.BaseController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.ObjectError;
-import org.springframework.web.bind.annotation.*;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.oprationcenter.model.SysFeedback;
+import com.kidgrow.oprationcenter.service.ISysFeedbackService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
-
-import com.kidgrow.oprationcenter.model.SysFeedback;
-import com.kidgrow.oprationcenter.service.ISysFeedbackService;
-import com.kidgrow.common.model.*;
-
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.*;
+
import javax.validation.Valid;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
/**
@@ -50,12 +46,12 @@
@ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
})
@GetMapping
- public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) {
+ public PageResult list(@RequestParam Map<String, Object> params) {
if(params.size()==0){
params.put("page",1);
params.put("limit",10);
}
- return ResultBody.ok().data(sysFeedbackService.findList(params));
+ return sysFeedbackService.findList(params);
}
/**
@@ -115,4 +111,23 @@
return ResultBody.failed().msg("删除失败");
}
}
+ /**
+ * 修改状态
+ *
+ * @param params
+ * @return
+ */
+ @ApiOperation(value = "修改反馈数据状态")
+ @GetMapping("/updateEnabled")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Integer"),
+ @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean")
+ })
+ public ResultBody updateEnabled(@RequestParam Map<String, Object> params) {
+ if (params.size()==0)
+ {
+ return ResultBody.failed().msg("参数异常!");
+ }
+ return sysFeedbackService.updateEnabled(params);
+ }
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysLoggerController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysLoggerController.java
index ee6f3b1..35c2c14 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysLoggerController.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysLoggerController.java
@@ -1,28 +1,24 @@
package com.kidgrow.oprationcenter.controller;
-import java.util.Map;
import com.kidgrow.common.controller.BaseController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.ObjectError;
-import org.springframework.web.bind.annotation.*;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.oprationcenter.model.SysLogger;
+import com.kidgrow.oprationcenter.service.ISysLoggerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
-
-import com.kidgrow.oprationcenter.model.SysLogger;
-import com.kidgrow.oprationcenter.service.ISysLoggerService;
-import com.kidgrow.common.model.*;
-
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.*;
+
import javax.validation.Valid;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
/**
@@ -93,10 +89,10 @@
} else {
boolean v= sysLoggerService.saveOrUpdate(sysLogger);
if(v) {
- return ResultBody.ok().data(sysLogger).msg("保存成功");
+ return ResultBody.ok().data(sysLogger).msg("反馈提交成功");
}
else {
- return ResultBody.failed().msg("保存失败");
+ return ResultBody.failed().msg("信息提交失败");
}
}
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java
index dea3751..16185a5 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java
@@ -3,13 +3,16 @@
import com.kidgrow.common.controller.BaseController;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.oprationcenter.model.ProductOrderDetail;
import com.kidgrow.oprationcenter.model.SysProduct;
+import com.kidgrow.oprationcenter.service.IProductOrderDetailService;
import com.kidgrow.oprationcenter.service.ISysProductService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
@@ -31,11 +34,13 @@
*/
@Slf4j
@RestController
-@RequestMapping("/sysproduct")
+@RequestMapping("/product")
@Api(tags = "")
public class SysProductController extends BaseController{
@Autowired
private ISysProductService sysProductService;
+ @Autowired
+ private IProductOrderDetailService productOrderDetailService;
/**
* 列表
@@ -46,12 +51,12 @@
@ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
})
@GetMapping
- public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) {
+ public PageResult list(@RequestParam Map<String, Object> params) {
if(params.size()==0){
params.put("page",1);
params.put("limit",10);
}
- return ResultBody.ok().data(sysProductService.findList(params));
+ return sysProductService.findList(params);
}
/**
@@ -103,12 +108,53 @@
@ApiOperation(value = "删除")
@DeleteMapping("/{id}")
public ResultBody delete(@PathVariable Long id) {
- boolean v= sysProductService.removeById(id);
- if(v) {
- return ResultBody.ok().msg("删除成功");
+ if (!ProIsUseed(id)) {
+ return ResultBody.failed().msg("该产品已经被使用,无法删除!");
}
else {
- return ResultBody.failed().msg("删除失败");
+ boolean v = sysProductService.removeById(id);
+ if (v) {
+ return ResultBody.ok().msg("删除成功");
+ } else {
+ return ResultBody.failed().msg("删除失败");
+ }
+ }
+ }
+
+ /**
+ * 判断该产品id下有没有已经使用的订单明细
+ * @param id
+ * @return
+ */
+ private boolean ProIsUseed(Long id)
+ {
+ ProductOrderDetail productOrderDetail=new ProductOrderDetail();
+ productOrderDetail.setProId(id);
+ productOrderDetail=productOrderDetailService.findByObject(productOrderDetail);
+ return (productOrderDetail==null);
+ }
+ /**
+ * 修改状态
+ *
+ * @param params
+ * @return
+ */
+ @ApiOperation(value = "修改数据状态")
+ @GetMapping("/updateEnabled")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Integer"),
+ @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean")
+ })
+ public ResultBody updateEnabled(@RequestParam Map<String, Object> params) {
+ if (params.size()==0)
+ {
+ return ResultBody.failed().msg("参数异常!");
+ }
+ else if (!ProIsUseed(Long.valueOf(MapUtils.getInteger(params, "id")))) {
+ return ResultBody.failed().msg("该产品已经被使用,无法删除!");
+ }
+ else{
+ return sysProductService.updateEnabled(params);
}
}
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml
index 0a3f8d2..dc1f9c9 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml
@@ -61,6 +61,7 @@
- sys_logger
- data_need
- business_records
+ - sys_feedback
ignoreSqls:
- com.kidgrow.usercenter.mapper.SysRoleMapper.findAll
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysArea.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysArea.java
index 7b93ba0..57cfc7b 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysArea.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysArea.java
@@ -1,11 +1,13 @@
package com.kidgrow.usercenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.kidgrow.common.model.SuperModel;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.NotEmpty;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -21,12 +23,16 @@
@NoArgsConstructor
@AllArgsConstructor
@TableName("sys_area")
-public class SysArea extends SuperModel {
- private static final long serialVersionUID = 1L;
+public class SysArea extends Model<SysArea> {
+ /**
+ * 区域id
+ */
+ private Long id;
/**
* 区域名称
*/
+ @NotEmpty(message = "区域名称不能为空")
private String areaName;
/**
* 父级区域id
@@ -60,4 +66,13 @@
* 名称拼音
*/
private String areaCh;
+ /**
+ * 状态,1启用,0停用
+ */
+ private Boolean enabled;
+ /**
+ * 是否删除,1删除,0未删除
+ */
+ @TableLogic
+ private Boolean isDel;
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDictionaries.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDictionaries.java
index a04cd74..563a202 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDictionaries.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDictionaries.java
@@ -1,10 +1,7 @@
package com.kidgrow.usercenter.model;
+import com.baomidou.mybatisplus.annotation.*;
import com.kidgrow.common.model.SuperModel;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -36,6 +33,9 @@
*/
@NotEmpty(message = "字典值不能为空")
private String dictionariesName;
+
+ @NotEmpty(message = "字典KEY不能为空")
+ private String dictionariesKey;
/**
* 字典归属分类的标识(如果这个字典项是分类,则该字段为空)
*/
@@ -47,6 +47,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
private Integer isDel;
/**
* 状态,1启用,0停用
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java
index 1927292..e738e58 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java
@@ -1,5 +1,6 @@
package com.kidgrow.usercenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -7,6 +8,8 @@
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.NotEmpty;
+
+import javax.validation.constraints.NotNull;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -32,7 +35,7 @@
/**
* 所属医院ID
*/
- @NotEmpty(message = "所属医院ID不能为空")
+ @NotNull(message = "所属医院ID不能为空")
private Long hospitalId;
/**
* 医院名称
@@ -42,12 +45,10 @@
/**
* 科室ID
*/
- @NotEmpty(message = "科室ID不能为空")
private Long departmentId;
/**
* 科室名称
*/
- @NotEmpty(message = "科室名称不能为空")
private String departmentName;
/**
* 医生姓名
@@ -98,14 +99,24 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
private Boolean isDel;
/**
* 医生状态 1正常 0试用
*/
- @NotEmpty(message = "医生状态 1正常 0试用不能为空")
+ @NotNull(message = "医生状态 1正常 0试用不能为空")
private Boolean doctorState;
/**
* 启用禁用状态,1启用,0停用
*/
private Boolean enabled;
+
+ /**
+ * 销售代表的id
+ */
+ private String serverUserId;
+ /**
+ * 销售代表名称
+ */
+ private String serverUserName;
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDictionariesVo.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDictionariesVo.java
new file mode 100644
index 0000000..28ede91
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDictionariesVo.java
@@ -0,0 +1,10 @@
+package com.kidgrow.usercenter.vo;
+
+import com.kidgrow.usercenter.model.SysDictionaries;
+import lombok.Data;
+
+@Data
+public class SysDictionariesVo extends SysDictionaries {
+
+ private String dictionariesClassName;
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java
new file mode 100644
index 0000000..b8900fe
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java
@@ -0,0 +1,9 @@
+package com.kidgrow.usercenter.vo;
+
+import lombok.Data;
+
+@Data
+public class SysDoctorDto extends SysDoctorVo {
+ private String username;
+ private String password;
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java
new file mode 100644
index 0000000..562f388
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java
@@ -0,0 +1,9 @@
+package com.kidgrow.usercenter.vo;
+
+import com.kidgrow.usercenter.model.SysDoctor;
+import lombok.Data;
+
+@Data
+public class SysDoctorVo extends SysDoctor {
+ private String username;
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysAreaMapper.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysAreaMapper.java
index 344a45e..0524888 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysAreaMapper.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysAreaMapper.java
@@ -1,8 +1,7 @@
package com.kidgrow.usercenter.mapper;
-import com.kidgrow.usercenter.model.SysArea;
import com.kidgrow.db.mapper.SuperMapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.usercenter.model.SysArea;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -18,12 +17,11 @@
*/
public interface SysAreaMapper extends SuperMapper<SysArea> {
/**
- * 分页查询省市区数据表列表
- * @param page
+ * 查询省市区数据表列表
* @param params
* @return
*/
- List<SysArea> findList(Page<SysArea> page, @Param("p") Map<String, Object> params);
+ List<SysArea> findList(@Param("p") Map<String, Object> params);
/**
* 根据SysArea对象当做查询条件进行查询
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDictionariesMapper.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDictionariesMapper.java
index 8721214..141fe6e 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDictionariesMapper.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDictionariesMapper.java
@@ -31,4 +31,6 @@
* @return SysDictionaries对象
*/
SysDictionaries findByObject(@Param("p") SysDictionaries sysDictionaries);
+
+ List<SysDictionaries> findAll(@Param("p") Map<String, Object> params);
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysAreaService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysAreaService.java
index 4d484bb..7ce78d4 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysAreaService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysAreaService.java
@@ -1,5 +1,6 @@
package com.kidgrow.usercenter.service;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.usercenter.model.SysArea;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.ISuperService;
@@ -29,5 +30,12 @@
* @return SysArea对象
*/
SysArea findByObject(SysArea sysArea);
+
+ /**
+ * 状态变更
+ * @param params
+ * @return
+ */
+ ResultBody updateEnabled(Map<String, Object> params);
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java
index c90eea9..9775fca 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java
@@ -1,5 +1,6 @@
package com.kidgrow.usercenter.service;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.usercenter.model.SysDepartment;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.ISuperService;
@@ -29,5 +30,9 @@
* @return SysDepartment对象
*/
SysDepartment findByObject(SysDepartment sysDepartment);
+
+ ResultBody findAll(Map<String, Object> params);
+
+ ResultBody findListByHospitalId(Map<String, Object> params);
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDictionariesService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDictionariesService.java
index 1c5fba0..933ce9d 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDictionariesService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDictionariesService.java
@@ -1,9 +1,11 @@
package com.kidgrow.usercenter.service;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.usercenter.model.SysDictionaries;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.ISuperService;
+import java.util.List;
import java.util.Map;
/**
@@ -20,7 +22,7 @@
* @param params
* @return
*/
- PageResult<SysDictionaries> findList(Map<String, Object> params);
+ PageResult findList(Map<String, Object> params);
/**
@@ -29,5 +31,9 @@
* @return SysDictionaries对象
*/
SysDictionaries findByObject(SysDictionaries sysDictionaries);
+
+ ResultBody updateEnabled(Map<String, Object> params);
+
+ List<SysDictionaries> findAll(Map<String, Object> params);
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
index ec3e4b7..988ccbb 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
@@ -1,9 +1,13 @@
package com.kidgrow.usercenter.service;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.usercenter.model.SysDoctor;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.ISuperService;
+import com.kidgrow.usercenter.vo.SysDoctorDto;
+import com.kidgrow.usercenter.vo.SysDoctorVo;
+import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
@@ -20,7 +24,7 @@
* @param params
* @return
*/
- PageResult<SysDoctor> findList(Map<String, Object> params);
+ PageResult<SysDoctorVo> findList(Map<String, Object> params);
/**
@@ -29,5 +33,11 @@
* @return SysDoctor对象
*/
SysDoctor findByObject(SysDoctor sysDoctor);
+
+ boolean delete(Long id);
+
+ ResultBody enable(Map<String, Object> params);
+
+ boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request);
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
index 42b2137..2c44889 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
@@ -1,5 +1,6 @@
package com.kidgrow.usercenter.service;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.usercenter.model.SysHospital;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.ISuperService;
@@ -29,5 +30,7 @@
* @return SysHospital对象
*/
SysHospital findByObject(SysHospital sysHospital);
+
+ ResultBody<SysHospital> findAll(Map<String, Object> params);
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
index 8792cdd..28c445c 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
@@ -3,7 +3,9 @@
import com.kidgrow.common.model.*;
import com.kidgrow.common.service.ISuperService;
import com.kidgrow.usercenter.model.SysUserExcel;
+import org.springframework.web.bind.annotation.RequestBody;
+import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -107,4 +109,6 @@
boolean delUser(Long id);
ResultBody findAll(Map<String, Object> map);
+
+ ResultBody getThisUserOrganizationUser(HttpServletRequest request);
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysAreaServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysAreaServiceImpl.java
index 99e8614..e7b5972 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysAreaServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysAreaServiceImpl.java
@@ -1,7 +1,7 @@
package com.kidgrow.usercenter.service.impl;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.common.service.impl.SuperServiceImpl;
import com.kidgrow.usercenter.mapper.SysAreaMapper;
import com.kidgrow.usercenter.model.SysArea;
@@ -31,9 +31,8 @@
*/
@Override
public PageResult<SysArea> findList(Map<String, Object> params){
- Page<SysArea> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
- List<SysArea> list = baseMapper.findList(page, params);
- return PageResult.<SysArea>builder().data(list).code(0).count(page.getTotal()).build();
+ List<SysArea> list = baseMapper.findList(params);
+ return PageResult.<SysArea>builder().data(list).code(0).count((long) list.size()).build();
}
/**
@@ -45,4 +44,23 @@
public SysArea findByObject(SysArea sysArea){
return baseMapper.findByObject(sysArea);
}
+ /**
+ * 根据id和启用禁用值更新数据
+ * @param params
+ * @return ResultBody
+ */
+ @Override
+ public ResultBody updateEnabled(Map<String, Object> params) {
+ Long id = MapUtils.getLong(params, "id");
+ Boolean enabled = MapUtils.getBoolean(params, "enabled");
+
+ SysArea area = baseMapper.selectById(id);
+ if (area == null) {
+ return ResultBody.failed("该数据不存在!");
+ }
+ area.setEnabled(enabled);
+
+ int i = baseMapper.updateById(area);
+ return i > 0 ? ResultBody.ok().data(area).msg("更新成功") : ResultBody.failed("更新失败");
+ }
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java
index 7095637..f0c9c3b 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java
@@ -1,12 +1,24 @@
package com.kidgrow.usercenter.service.impl;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysOrganization;
+import com.kidgrow.usercenter.model.SysHospital;
+import com.kidgrow.usercenter.service.ISysHospitalService;
+import com.kidgrow.usercenter.service.ISysOrganizationService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kidgrow.common.model.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.service.impl.SuperServiceImpl;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+
import org.apache.commons.collections4.MapUtils;
import lombok.extern.slf4j.Slf4j;
@@ -25,6 +37,11 @@
@Slf4j
@Service
public class SysDepartmentServiceImpl extends SuperServiceImpl<SysDepartmentMapper, SysDepartment> implements ISysDepartmentService {
+
+ @Autowired
+ private ISysOrganizationService iSysOrganizationService;
+ @Autowired
+ private ISysHospitalService iSysHospitalService;
/**
* 列表
* @param params
@@ -46,4 +63,29 @@
public SysDepartment findByObject(SysDepartment sysDepartment){
return baseMapper.findByObject(sysDepartment);
}
+
+ @Override
+ public ResultBody findAll(Map<String, Object> params) {
+ return ResultBody.ok().data(baseMapper.selectByMap(params));
+ }
+
+ @Override
+ public ResultBody findListByHospitalId(Map<String, Object> params) {
+ //查询组织
+ Long id = MapUtils.getLong(params, "id");
+ List<SysDepartment> sysDepartments=new ArrayList<>();
+ SysHospital byId = iSysHospitalService.getById(id);
+ if(byId!=null){
+ params=new HashMap<>();
+ params.put("org_parent_id",byId.getOrgId());
+ List<SysOrganization> sysOrganizations = iSysOrganizationService.listByMap(params);
+ if (sysOrganizations.size()>0) {
+ List<Long> collect = sysOrganizations.stream().map(e -> e.getId()).collect(Collectors.toList());
+ QueryWrapper<SysDepartment> queryWrapper=new QueryWrapper();
+ queryWrapper.in("org_id",collect );
+ sysDepartments= baseMapper.selectList(queryWrapper);
+ }
+ }
+ return ResultBody.ok().data(sysDepartments);
+ }
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDictionariesServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDictionariesServiceImpl.java
index 7b5ad28..f53f2a7 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDictionariesServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDictionariesServiceImpl.java
@@ -1,10 +1,18 @@
package com.kidgrow.usercenter.service.impl;
+import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.usercenter.vo.SysDictionariesVo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.cglib.beans.BeanCopier;
import org.springframework.stereotype.Service;
import com.kidgrow.common.model.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.service.impl.SuperServiceImpl;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.collections4.MapUtils;
@@ -31,10 +39,24 @@
* @return
*/
@Override
- public PageResult<SysDictionaries> findList(Map<String, Object> params){
+ public PageResult findList(Map<String, Object> params){
Page<SysDictionaries> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
List<SysDictionaries> list = baseMapper.findList(page, params);
- return PageResult.<SysDictionaries>builder().data(list).code(0).count(page.getTotal()).build();
+ List<SysDictionariesVo> listvo = new ArrayList<>();
+ for (SysDictionaries dictionaries:list
+ ) {
+ SysDictionariesVo sysDictionariesVo=new SysDictionariesVo();
+ BeanCopier beanCopier = BeanCopier.create(SysDictionaries.class, SysDictionariesVo.class, false);
+ beanCopier.copy(dictionaries,sysDictionariesVo,null);
+ if(StringUtils.isNotBlank(dictionaries.getDictionariesClassId())){
+ SysDictionaries dic = baseMapper.selectById(dictionaries.getDictionariesClassId());
+ if(dic!=null){
+ sysDictionariesVo.setDictionariesClassName(dic.getDictionariesName());
+ }
+ }
+ listvo.add(sysDictionariesVo);
+ }
+ return PageResult.<SysDictionariesVo>builder().data(listvo).code(0).count(page.getTotal()).build();
}
/**
@@ -46,4 +68,25 @@
public SysDictionaries findByObject(SysDictionaries sysDictionaries){
return baseMapper.findByObject(sysDictionaries);
}
+
+ @Override
+ public ResultBody updateEnabled(Map<String, Object> params) {
+ Long id = MapUtils.getLong(params, "id");
+ SysDictionaries dictionaries = baseMapper.selectById(id);
+ if(dictionaries!=null){
+ Integer enabled = MapUtils.getInteger( params,"enabled");
+ dictionaries.setEnabled(enabled);
+ dictionaries.setUpdateTime(new Date());
+ int i = baseMapper.updateById(dictionaries);
+ return ResultBody.ok(0,"更新成功");
+ }else {
+ return ResultBody.failed("更新成功");
+ }
+
+ }
+
+ @Override
+ public List<SysDictionaries> findAll(Map<String, Object> params) {
+ return baseMapper.findAll(params);
+ }
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
index 8566373..4fcd9b5 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
@@ -1,49 +1,156 @@
package com.kidgrow.usercenter.service.impl;
+import com.kidgrow.common.constant.SecurityConstants;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysUser;
+import com.kidgrow.usercenter.service.ISysUserService;
+import com.kidgrow.usercenter.vo.SysDoctorDto;
+import com.kidgrow.usercenter.vo.SysDoctorVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cglib.beans.BeanCopier;
+import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import com.kidgrow.common.model.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.service.impl.SuperServiceImpl;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Map;
+
import org.apache.commons.collections4.MapUtils;
import lombok.extern.slf4j.Slf4j;
import com.kidgrow.usercenter.model.SysDoctor;
import com.kidgrow.usercenter.mapper.SysDoctorMapper;
import com.kidgrow.usercenter.service.ISysDoctorService;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletRequest;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @version 1.0
* @Description: <br>
* @Project: 用户中心<br>
* @CreateDate: Created in 2020-04-02 14:02:50 <br>
* @Author: <a href="4345453@kidgrow.com">liuke</a>
- * @version 1.0
*/
@Slf4j
@Service
public class SysDoctorServiceImpl extends SuperServiceImpl<SysDoctorMapper, SysDoctor> implements ISysDoctorService {
/**
* 列表
+ *
* @param params
* @return
*/
+ @Autowired
+ private ISysUserService iSysUserService;
+ @Autowired
+ private PasswordEncoder passwordEncoder;
+
@Override
- public PageResult<SysDoctor> findList(Map<String, Object> params){
+ public PageResult<SysDoctorVo> findList(Map<String, Object> params) {
Page<SysDoctor> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
- List<SysDoctor> list = baseMapper.findList(page, params);
- return PageResult.<SysDoctor>builder().data(list).code(0).count(page.getTotal()).build();
+ List<SysDoctor> list = baseMapper.findList(page, params);
+ List<SysDoctorVo> listvo = new ArrayList<>();
+ list.forEach(e -> {
+ SysDoctorVo vo = new SysDoctorVo();
+ BeanCopier beanCopier = BeanCopier.create(SysDoctor.class, SysDoctorVo.class, false);
+ beanCopier.copy(e, vo, null);
+ //查询用户的登录账号;
+ if (e.getUserId() != null) {
+ SysUser sysUser = iSysUserService.getById(e.getUserId());
+ if (sysUser != null) {
+ vo.setUsername(sysUser.getUsername());
+ }
+ }
+ listvo.add(vo);
+ });
+ return PageResult.<SysDoctorVo>builder().data(listvo).code(0).count(page.getTotal()).build();
}
/**
- * 根据SysDoctor对象当做查询条件进行查询
- * @param sysDoctor
- * @return SysDoctor
- */
+ * 根据SysDoctor对象当做查询条件进行查询
+ *
+ * @param sysDoctor
+ * @return SysDoctor
+ */
@Override
- public SysDoctor findByObject(SysDoctor sysDoctor){
+ public SysDoctor findByObject(SysDoctor sysDoctor) {
return baseMapper.findByObject(sysDoctor);
}
+
+ @Override
+ public boolean delete(Long id) {
+ //查询user表
+ SysDoctor sysDoctor = baseMapper.selectById(id);
+ if (sysDoctor != null && sysDoctor.getUserId() != null) {
+ boolean b = iSysUserService.delUser(sysDoctor.getUserId());
+ }
+ sysDoctor.setIsDel(true);
+ int i = baseMapper.deleteById(id);
+ return true;
+ }
+
+ @Override
+ public ResultBody enable(Map<String, Object> params) {
+ Long aLong = MapUtils.getLong(params,"id");
+ SysDoctor sysDoctor = baseMapper.selectById(aLong);
+ if (sysDoctor != null && sysDoctor.getUserId() != null) {
+ SysUser byId = iSysUserService.getById(sysDoctor.getUserId());
+ if(byId!=null){
+ byId.setEnabled(true);
+ iSysUserService.updateById(byId);
+ }
+ }
+ if(sysDoctor!=null){
+ sysDoctor.setEnabled(true);
+ baseMapper.updateById(sysDoctor);
+ }else {
+ return ResultBody.failed("禁用失败");
+ }
+ return ResultBody.ok(0,"禁用成功");
+ }
+
+ @Override
+ @Transactional
+ public boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request) {
+ String id = request.getHeader(SecurityConstants.USER_ID_HEADER);
+ if(null==sysDoctor){
+ return false;
+ }else {
+ if (sysDoctor.getId()==null) {
+ //保存
+ SysUser sysUser=new SysUser();
+ sysUser.setUsername(sysDoctor.getUsername());
+ sysUser.setPassword(passwordEncoder.encode(sysDoctor.getPassword()));
+ sysUser.setNickname(sysDoctor.getHospitalName());
+ sysUser.setHeadImgUrl(sysDoctor.getDoctorLogo());
+ sysUser.setMobile(sysDoctor.getDoctorTel());
+ sysUser.setType("doctor");
+ sysUser.setTenantId("hospital");
+ sysUser.setCreateTime(new Date());
+ SysUser byId = iSysUserService.getById(id);
+ if(byId!=null){
+ sysUser.setCreateUserId(byId.getId());
+ sysUser.setCreateUserName(byId.getUsername());
+ }
+ iSysUserService.save(sysUser);
+ //保存doctor的数据
+ SysDoctor sysDoc=new SysDoctor();
+ BeanCopier beanCopier = BeanCopier.create(SysDoctorDto.class, SysDoctor.class, false);
+ beanCopier.copy(sysDoctor,sysDoc,null);
+ sysDoc.setUserId(sysUser.getId());
+ baseMapper.insert(sysDoc);
+ }else {
+ //更新
+ baseMapper.updateById(sysDoctor);
+ }
+ }
+ return true;
+ }
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
index 949389f..accdf78 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
@@ -1,5 +1,6 @@
package com.kidgrow.usercenter.service.impl;
+import com.kidgrow.common.model.ResultBody;
import org.springframework.stereotype.Service;
import com.kidgrow.common.model.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -46,4 +47,10 @@
public SysHospital findByObject(SysHospital sysHospital){
return baseMapper.findByObject(sysHospital);
}
+
+ @Override
+ public ResultBody<SysHospital> findAll(Map<String, Object> params) {
+ List<SysHospital> sysHospitals = baseMapper.selectByMap(params);
+ return ResultBody.ok().data(sysHospitals).msg("查询成功");
+ }
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
index bcb4b7c..94f1dad 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.constant.CommonConstant;
+import com.kidgrow.common.constant.SecurityConstants;
import com.kidgrow.common.context.ClientContextHolder;
import com.kidgrow.common.lock.DistributedLock;
import com.kidgrow.common.model.*;
@@ -14,11 +15,13 @@
import com.kidgrow.usercenter.model.SysUserExcel;
import com.kidgrow.usercenter.service.ISysOrganizationService;
import com.kidgrow.usercenter.service.ISysRoleUserService;
+import com.kidgrow.usercenter.service.ISysUserOrgService;
import com.kidgrow.usercenter.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
+import org.hibernate.validator.constraints.NotBlank;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
@@ -27,6 +30,7 @@
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.stream.Collectors;
@@ -54,6 +58,8 @@
@Autowired
private ISysOrganizationService organizationService;
+ @Autowired
+ private ISysUserOrgService iSysUserOrgService;
@@ -285,4 +291,35 @@
List<SysUser> sysUsers = baseMapper.selectByMap(map);
return ResultBody.ok().data(sysUsers).msg("操作成功");
}
+
+ /**
+ * 获取当前用的 组织下的所有人员
+ * @param request
+ * @return
+ */
+ @Override
+ public ResultBody getThisUserOrganizationUser(HttpServletRequest request) {
+ String id = request.getHeader(SecurityConstants.USER_ID_HEADER);
+ List<SysUser> sysUsers=new ArrayList<>();
+ if(StringUtils.isNotBlank(id)){
+ QueryWrapper<SysUserOrg> queryWrapper=new QueryWrapper();
+ queryWrapper.eq("user_id",id);
+ List<SysUserOrg> list = iSysUserOrgService.list(queryWrapper);
+ if(list.size()>0){
+ List<Long> collect = list.stream().map(e -> e.getOrgId()).collect(Collectors.toList());
+ if (collect.size()>0) {
+ queryWrapper=new QueryWrapper<>();
+ queryWrapper.in("org_id",collect);
+ List<SysUserOrg> sysUserOrgs = iSysUserOrgService.list(queryWrapper);
+ List<Long> userIds = sysUserOrgs.stream().map(e -> e.getUserId()).collect(Collectors.toList());
+ QueryWrapper<SysUser> sysUserQueryWrapper=new QueryWrapper();
+ sysUserQueryWrapper.in("id",userIds);
+ sysUsers= baseMapper.selectList(sysUserQueryWrapper);
+ }
+ }
+ }else {
+ return ResultBody.failed("暂无数据");
+ }
+ return ResultBody.ok().data(sysUsers);
+ }
}
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysAreaMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysAreaMapper.xml
index 2adbfca..b9271bd 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysAreaMapper.xml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysAreaMapper.xml
@@ -42,6 +42,9 @@
<if test="p.areaCh != null and p.areaCh !=''">
and area_ch = #{p.areaCh}
</if>
+ <if test="p.enabled != null and p.enabled !=''">
+ and enabled = #{p.enabled}
+ </if>
</where>
</sql>
@@ -61,6 +64,6 @@
<include refid="Column_List"/>
from sys_area
<include refid="where"/>
- order by id desc
+ order by id
</select>
</mapper>
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDictionariesMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDictionariesMapper.xml
index f9c5492..b8f51c3 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDictionariesMapper.xml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDictionariesMapper.xml
@@ -16,10 +16,13 @@
and id = #{p.id}
</if>
<if test="p.dictionariesName != null and p.dictionariesName !=''">
- and dictionaries_name = #{p.dictionariesName}
+ and dictionaries_name like '%${p.dictionariesName}%'
</if>
<if test="p.dictionariesClassId != null and p.dictionariesClassId !=''">
and dictionaries_class_id = #{p.dictionariesClassId}
+ </if>
+ <if test="p.dictionariesClassIdIsNull != null and p.dictionariesClassIdIsNull !=''">
+ and dictionaries_class_id is null
</if>
<if test="p.dictionariesOrder != null and p.dictionariesOrder !=''">
and dictionaries_order = #{p.dictionariesOrder}
@@ -67,6 +70,13 @@
<include refid="Column_List"/>
from sys_dictionaries
<include refid="where"/>
- order by id desc
+ order by id asc
+ </select>
+ <select id="findAll" resultType="com.kidgrow.usercenter.model.SysDictionaries">
+ select
+ <include refid="Column_List"/>
+ from sys_dictionaries
+ <include refid="where"/>
+ order by id asc
</select>
</mapper>
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
index 04087be..e9af41f 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
@@ -31,13 +31,13 @@
and department_name = #{p.departmentName}
</if>
<if test="p.doctorName != null and p.doctorName !=''">
- and doctor_name = #{p.doctorName}
+ and doctor_name like '%${p.doctorName}%'
</if>
<if test="p.doctorLogo != null and p.doctorLogo !=''">
and doctor_logo = #{p.doctorLogo}
</if>
<if test="p.doctorTel != null and p.doctorTel !=''">
- and doctor_tel = #{p.doctorTel}
+ and doctor_tel like '%${p.doctorTel}%'
</if>
<if test="p.doctorRankId != null and p.doctorRankId !=''">
and doctor_rank_id = #{p.doctorRankId}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysAreaController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysAreaController.java
index ad22d4d..7a5e36c 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysAreaController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysAreaController.java
@@ -41,17 +41,9 @@
* 列表
*/
@ApiOperation(value = "查询列表")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"),
- @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
- })
- @GetMapping
- public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) {
- if(params.size()==0){
- params.put("page",1);
- params.put("limit",10);
- }
- return ResultBody.ok().data(sysAreaService.findList(params));
+ @GetMapping("/findAlls")
+ public PageResult<SysArea> findAlls(@RequestParam Map<String, Object> params) {
+ return sysAreaService.findList(params);
}
/**
@@ -87,6 +79,18 @@
}
return ResultBody.failed().msg(errMsg.toString());
} else {
+ //如果父级id是空的,默认填-1
+ if (sysArea.getAreaParentId()==null) {
+ sysArea.setAreaParentId(-1L);
+ }
+ //添加的时候得判断主键唯一
+ if (sysArea.getIsDel()==null) {
+ SysArea model =sysAreaService.getById(sysArea.getId());
+ if (model!=null)
+ {
+ return ResultBody.failed().msg("区域编号已存在!");
+ }
+ }
boolean v= sysAreaService.saveOrUpdate(sysArea);
if(v) {
return ResultBody.ok().data(sysArea).msg("保存成功");
@@ -111,4 +115,23 @@
return ResultBody.failed().msg("删除失败");
}
}
+ /**
+ * 修改状态
+ *
+ * @param params
+ * @return
+ */
+ @ApiOperation(value = "修改反馈数据状态")
+ @GetMapping("/updateEnabled")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Integer"),
+ @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean")
+ })
+ public ResultBody updateEnabled(@RequestParam Map<String, Object> params) {
+ if (params.size()==0)
+ {
+ return ResultBody.failed().msg("参数异常!");
+ }
+ return sysAreaService.updateEnabled(params);
+ }
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
index 4f68ff7..157e44f 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
@@ -115,4 +115,14 @@
return ResultBody.failed().msg("删除失败");
}
}
+
+ /**
+ * 根据医院获取 组织,通过组织,获取科室;
+ * @param params
+ * @return
+ */
+ @GetMapping("findListByHospitalId")
+ public ResultBody findListByHospitalId(@RequestParam Map<String, Object> params) {
+ return sysDepartmentService.findListByHospitalId(params);
+ }
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDictionariesController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDictionariesController.java
index 47b328b..4fc3002 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDictionariesController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDictionariesController.java
@@ -2,6 +2,7 @@
import java.util.Map;
import com.kidgrow.common.controller.BaseController;
+import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.*;
@@ -50,12 +51,12 @@
@ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
})
@GetMapping
- public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) {
+ public PageResult list(@RequestParam Map<String, Object> params) {
if(params.size()==0){
params.put("page",1);
params.put("limit",10);
}
- return ResultBody.ok().data(sysDictionariesService.findList(params));
+ return sysDictionariesService.findList(params);
}
/**
@@ -65,6 +66,12 @@
@GetMapping("/{id}")
public ResultBody findById(@PathVariable Long id) {
SysDictionaries model = sysDictionariesService.getById(id);
+ return ResultBody.ok().data(model).msg("查询成功");
+ }
+ @ApiOperation(value = "根据SysDictionaries当做查询条件进行查询")
+ @PostMapping("/findAll")
+ public ResultBody findAll(@RequestBody Map<String, Object> params) {
+ List<SysDictionaries> model = sysDictionariesService.findAll(params);
return ResultBody.ok().data(model).msg("查询成功");
}
@@ -102,6 +109,25 @@
}
/**
+ * 修改字典表状态
+ *
+ * @param params
+ * @return
+ */
+ @ApiOperation(value = "修改字典表状态")
+ @GetMapping("/updateEnabled")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "用户id", required = true, dataType = "Integer"),
+ @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Integer")
+ })
+ public ResultBody updateEnabled(@RequestParam Map<String, Object> params) {
+ Long id = MapUtils.getLong(params, "id");
+ if (id==null) {
+ return ResultBody.failed("请选择一条数据");
+ }
+ return sysDictionariesService.updateEnabled(params);
+ }
+ /**
* 删除
*/
@ApiOperation(value = "删除")
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
index 51be1e4..0a589ab 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
@@ -2,6 +2,9 @@
import java.util.Map;
import com.kidgrow.common.controller.BaseController;
+import com.kidgrow.usercenter.vo.SysDoctorVo;
+import com.kidgrow.usercenter.vo.SysDoctorDto;
+import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.*;
@@ -16,13 +19,11 @@
import com.kidgrow.common.model.*;
import org.springframework.validation.BindingResult;
+
+import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
-import java.util.Set;
/**
@@ -50,12 +51,12 @@
@ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
})
@GetMapping
- public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) {
+ public PageResult<SysDoctorVo> list(@RequestParam Map<String, Object> params) {
if(params.size()==0){
params.put("page",1);
params.put("limit",10);
}
- return ResultBody.ok().data(sysDoctorService.findList(params));
+ return sysDoctorService.findList(params);
}
/**
@@ -83,7 +84,7 @@
*/
@ApiOperation(value = "保存")
@PostMapping
- public ResultBody save(@Valid @RequestBody SysDoctor sysDoctor, BindingResult bindingResult) {
+ public ResultBody save(@Valid @RequestBody SysDoctorDto sysDoctor, BindingResult bindingResult, HttpServletRequest request) {
List<String> errMsg= new ArrayList<>();
if (bindingResult.hasErrors()) {
for (ObjectError error : bindingResult.getAllErrors()) {
@@ -91,7 +92,8 @@
}
return ResultBody.failed().msg(errMsg.toString());
} else {
- boolean v= sysDoctorService.saveOrUpdate(sysDoctor);
+ boolean v= sysDoctorService.saveOrUpdateSer(sysDoctor,request);
+
if(v) {
return ResultBody.ok().data(sysDoctor).msg("保存成功");
}
@@ -107,7 +109,7 @@
@ApiOperation(value = "删除")
@DeleteMapping("/{id}")
public ResultBody delete(@PathVariable Long id) {
- boolean v= sysDoctorService.removeById(id);
+ boolean v= sysDoctorService.delete(id);
if(v) {
return ResultBody.ok().msg("删除成功");
}
@@ -115,4 +117,17 @@
return ResultBody.failed().msg("删除失败");
}
}
+ /**
+ * 状态
+ */
+ @ApiOperation(value = "修改状态")
+ @PostMapping("enable")
+ public ResultBody enable(@RequestBody Map<String, Object> params) {
+ Long id = MapUtils.getLong(params, "id");
+ if (id==null) {
+ return ResultBody.failed("请选择一条数据");
+ }
+ return sysDoctorService.enable(params);
+ }
+
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
index e673471..7b1e22b 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
@@ -50,14 +50,18 @@
@ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
})
@GetMapping
- public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) {
+ public PageResult<SysHospital> list(@RequestParam Map<String, Object> params) {
if(params.size()==0){
params.put("page",1);
params.put("limit",10);
}
- return ResultBody.ok().data(sysHospitalService.findList(params));
+ return sysHospitalService.findList(params);
}
-
+ @PostMapping("findAll")
+ @ApiOperation(value = "查询所有列表")
+ public ResultBody<SysHospital> findAll(@RequestBody Map<String, Object> params) {
+ return sysHospitalService.findAll(params);
+ }
/**
* 查询
*/
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
index 7e38efd..0bd18d0 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
@@ -336,4 +336,11 @@
public ResultBody findAll(@RequestParam Map<String,Object> map) {
return appUserService.findAll(map);
}
+ /**
+ * 获取当前用的 组织下的所有人员
+ */
+ @GetMapping("users/getThisUserOrganizationUser")
+ public ResultBody getThisUserOrganizationUser(HttpServletRequest request){
+ return appUserService.getThisUserOrganizationUser(request);
+ }
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
index 2837660..185051f 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
@@ -65,6 +65,11 @@
- sys_user_logs
- sys_organization
- sys_user_org
+ - sys_dictionaries
+ - sys_hospital
+ - sys_doctor
+ - sys_department
+ - sys_area
ignoreSqls:
- com.kidgrow.usercenter.mapper.SysRoleMapper.findAll
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java
index 18e47d2..f1b26c1 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java
@@ -43,7 +43,10 @@
* 用户所属部门名称
*/
String USER_DEP_NAME_HEADER="x-user-dep-name-header";
-
+ /**
+ * 用户真实名信息头
+ */
+ String USER_REAL_NAME = "x-user-real-name-header";
/**
* 角色信息头
*/
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js
index 8d1b993..9042ad8 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js
@@ -4,11 +4,32 @@
}).extend({
formSelects: 'formSelects/formSelects-v4',
treetable: 'treetable-lay/treetable',
+ treetable2: 'treetable2/TreeTable',
step: 'step-lay/step'
-}).use(['layer'], function () {
+}).use(['layer','config', 'index', 'element'], function () {
var $ = layui.jquery;
var layer = layui.layer;
+ let config = layui.config;
+ let index = layui.index;
+ let element = layui.element;
+ // 检查是否登录
+ if (!config.getToken() || config.getToken() == '') {
+ location.replace('login.html');
+ return;
+ }
+
+ // 检查多标签功能是否开启
+ index.checkPageTabs();
+
+ // 获取当前用户信息
+ index.getUser(function (user) {
+ $('.layui-layout-admin .layui-header').vm(user);
+ index.initLeftNav();
+ element.render('nav');
+ index.initRouter();
+ index.bindEvent();
+ });
// 加载设置的主题
var theme = layui.data('easyweb').theme;
if (theme) {
@@ -236,4 +257,4 @@
}
return true;
}
-};
\ No newline at end of file
+};
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/index.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/index.html
index 567d597..28c158c 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/index.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/index.html
@@ -1,6 +1,5 @@
<!DOCTYPE html>
<html>
-
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta charset="utf-8"/>
@@ -60,37 +59,5 @@
<script type="text/javascript" src="assets/libs/layui/layui.js"></script>
<script type="text/javascript" src="assets/js/common.js?v=1.0"></script>
<script type="text/javascript" src="assets/libs/zTree/js/jquery.ztree.all-3.5.min.js"></script>
-
-<script>
- layui.config({
- base: 'module/'
- }).extend({
- formSelects: 'formSelects/formSelects-v4',
- treetable: 'treetable-lay/treetable'
- }).use(['config', 'index', 'element'], function () {
- let config = layui.config;
- let index = layui.index;
- let element = layui.element;
-
- // 检查是否登录
- if (!config.getToken() || config.getToken() == '') {
- location.replace('login.html');
- return;
- }
-
- // 检查多标签功能是否开启
- index.checkPageTabs();
-
- // 获取当前用户信息
- index.getUser(function (user) {
- $('.layui-layout-admin .layui-header').vm(user);
- index.initLeftNav();
- element.render('nav');
- index.initRouter();
- index.bindEvent();
- });
- });
-</script>
</body>
-
</html>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/treetable2/treeTable.css b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/treetable2/treeTable.css
new file mode 100644
index 0000000..147dc2f
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/treetable2/treeTable.css
@@ -0,0 +1,396 @@
+/* 最外层容器 */
+.ew-tree-table {
+ margin: 10px 0;
+ position: relative;
+}
+
+.ew-tree-table .layui-table {
+ margin: 0;
+ table-layout: fixed;
+}
+
+/* 表格容器 */
+.ew-tree-table-group {
+ position: relative;
+}
+
+/* 主体表格容器 */
+.ew-tree-table > .ew-tree-table-group > .ew-tree-table-box {
+ overflow: auto;
+ position: relative;
+ box-sizing: border-box;
+}
+
+/* 表头表格容器 */
+.ew-tree-table > .ew-tree-table-group > .ew-tree-table-head {
+ overflow: hidden;
+ position: relative;
+ box-sizing: border-box;
+ background-color: #f2f2f2;
+}
+
+/* 容器加边框 */
+.ew-tree-table .ew-tree-table-border {
+ position: absolute;
+ background-color: #e6e6e6;
+}
+
+.ew-tree-table .ew-tree-table-border.top {
+ left: 0;
+ right: 0;
+ top: 0;
+ height: 1px;
+}
+
+.ew-tree-table .ew-tree-table-border.left {
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 1px;
+}
+
+.ew-tree-table .ew-tree-table-border.right {
+ top: 0;
+ right: 0;
+ bottom: 0;
+ width: 0.52px;
+}
+
+.ew-tree-table .ew-tree-table-border.bottom {
+ left: 0;
+ right: 0;
+ bottom: 0;
+ height: 0.52px;
+}
+
+/* table的loading */
+.ew-tree-table .ew-tree-table-box > .ew-tree-table-loading {
+ padding: 10px 0;
+ text-align: center;
+}
+
+.ew-tree-table .ew-tree-table-box > .ew-tree-table-loading > i {
+ color: #999;
+ font-size: 30px;
+}
+
+.ew-tree-table .ew-tree-table-box > .ew-tree-table-loading.ew-loading-float {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+}
+
+/* 空数据提示 */
+.ew-tree-table .ew-tree-table-box > .ew-tree-table-empty {
+ color: #666;
+ font-size: 14px;
+ text-align: center;
+}
+
+/* 折叠箭头 */
+.ew-tree-table .ew-tree-table-arrow {
+ margin-right: 5px;
+ vertical-align: middle;
+}
+
+.ew-tree-table .ew-tree-table-arrow:before {
+ content: "\e623";
+}
+
+.ew-tree-table .ew-tree-table-open .ew-tree-table-arrow:before {
+ content: "\e625";
+}
+
+.ew-tree-table .ew-tree-table-arrow.arrow2 {
+ font-size: 13px;
+ font-weight: 600;
+ line-height: 16px;
+ height: 16px;
+ width: 16px;
+ display: inline-block;
+ text-align: center;
+ color: #888;
+}
+
+.ew-tree-table .ew-tree-table-arrow.arrow2:before {
+ content: "\e602";
+}
+
+.ew-tree-table .ew-tree-table-open .ew-tree-table-arrow.arrow2:before {
+ content: "\e61a";
+}
+
+/* 箭头隐藏 */
+.ew-tree-table-arrow.ew-tree-table-arrow-hide {
+ visibility: hidden;
+}
+
+/* 箭头变加载中状态 */
+.ew-tree-table .ew-tree-table-loading > td .ew-tree-pack > .ew-tree-table-arrow:before {
+ content: "\e63d" !important;
+}
+
+.ew-tree-table .ew-tree-table-loading > td .ew-tree-pack > .ew-tree-table-arrow {
+ margin-right: 0;
+}
+
+.ew-tree-table .ew-tree-table-loading > td .ew-tree-pack > .ew-tree-table-arrow + * {
+ margin-left: 5px;
+}
+
+/* tr加载中禁用事件 */
+.ew-tree-table tr.ew-tree-table-loading > * {
+ pointer-events: none !important;
+}
+
+/* 图标列 */
+.ew-tree-table .ew-tree-pack {
+ cursor: pointer;
+ line-height: 16px;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ew-tree-table .ew-tree-pack > span {
+ height: 16px;
+ line-height: 16px;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+/* 折叠行 */
+.ew-tree-table .ew-tree-tb-hide {
+ display: none;
+}
+
+/* 缩进 */
+.ew-tree-table .ew-tree-table-indent {
+ margin-right: 5px;
+ padding-left: 16px;
+}
+
+/* 图标 */
+.ew-tree-table .ew-tree-icon {
+ margin-right: 5px;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ew-tree-table .ew-tree-icon-folder, .ew-tree-table .ew-tree-icon-file {
+ width: 22px;
+ height: 16px;
+ line-height: 16px;
+ position: relative;
+}
+
+.ew-tree-table .ew-tree-icon-folder:after, .ew-tree-table .ew-tree-icon-file:after {
+ content: "";
+ width: 22px;
+ height: 22px;
+ position: absolute;
+ left: 0;
+ top: -3px;
+ background-size: cover;
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTc0MDYyMzE3MTQ3IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjIxNTgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTE4MSA4MjNoLTMxLjFjLTI4LjYgMC01MS45LTIzLjItNTEuOS01MS45VjI1Mi40YzAtMjguNiAyMy4yLTUxLjkgNTEuOS01MS45SDQzMGw4MyA3Ny44aDMzMmM0NS42IDAgODMgMzUgODMgNzcuOHYzODkuMWMwIDQyLjgtMzcuMyA3Ny44LTgzIDc3LjhIMTgxeiIgcC1pZD0iMjE1OSIgZmlsbD0iI0ZGQTUwMCI+PC9wYXRoPjwvc3ZnPg==")
+}
+
+.ew-tree-table tr.ew-tree-table-open > td > .ew-tree-pack .ew-tree-icon-folder:after {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTc0MDYyMzA5MDQwIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE5NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTMyNi40IDQ2MC4xSDkyOGwtODIuMyAzMjRjLTUuOCAyMy0yNi42IDM5LjEtNTAuMyAzOS4xSDE0OS45Yy0yOC42IDAtNTEuOS0yMy4yLTUxLjktNTEuOVYyNTIuNmMwLTI4LjYgMjMuMi01MS45IDUxLjktNTEuOUg0MTNsMTA1IDEwMy43aDI5MS44YzE0LjMgMCAyNS45IDExLjYgMjUuOSAyNS45djc3LjhoLTUyN0wyMDMuNCA1NjMuOWg1Mi43bDcwLjMtMTAzLjh6IiBwLWlkPSIxOTc4IiBmaWxsPSIjRkZBNTAwIj48L3BhdGg+PC9zdmc+")
+}
+
+.ew-tree-table .ew-tree-icon-file:after {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTc0MDYyNTE1MDUxIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjEzNTE4IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0Ij48ZGVmcz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwvc3R5bGU+PC9kZWZzPjxwYXRoIGQ9Ik03NDEuMyAxNjEuNmgtNDIuNGMtMTAuNSAwLTE5LjEgOC42LTE5LjEgMTkuMXM4LjYgMTkuMSAxOS4xIDE5LjFoNDIuNGM0MiAwIDc2LjIgMzQuMiA3Ni4yIDc2LjN2NDc3LjRjMCA0Mi4xLTM0LjMgNzYuMy03Ni40IDc2LjNIMjgyLjljLTQyLjEgMC03Ni4zLTM0LjItNzYuMy03Ni4zVjI3Ni4xYzAtNDIuMSAzNC4yLTc2LjMgNzYuMy03Ni4zaDQ0LjljMTAuNSAwIDE5LjEtOC42IDE5LjEtMTkuMXMtOC42LTE5LjEtMTkuMS0xOS4xaC00NC45Yy02My4xIDAtMTE0LjUgNTEuNC0xMTQuNSAxMTQuNXY0NzcuNGMwIDYzLjEgNTEuNCAxMTQuNSAxMTQuNSAxMTQuNWg0NTguM2M2My4xIDAgMTE0LjUtNTEuNCAxMTQuNS0xMTQuNVYyNzYuMWMtMC4xLTYzLjEtNTEuNC0xMTQuNS0xMTQuNC0xMTQuNXoiIHAtaWQ9IjEzNTE5IiBmaWxsPSIjRkZBNTAwIj48L3BhdGg+PHBhdGggZD0iTTY4MC42IDUwNS4zSDM0My40Yy0xMi4zIDAtMjIuMyA4LjYtMjIuMyAxOS4xczEwIDE5LjEgMjIuMyAxOS4xaDMzNy4yYzEyLjMgMCAyMi4zLTguNiAyMi4zLTE5LjEgMC0xMC42LTEwLTE5LjEtMjIuMy0xOS4xek00MzkuMyAyMTMuM2gxNDQuNmMxOSAwIDM0LjQtMTIuOCAzNC40LTI4LjZzLTE1LjQtMjguNi0zNC40LTI4LjZINDM5LjNjLTE5IDAtMzQuNCAxMi44LTM0LjQgMjguNi0wLjEgMTUuNyAxNS4zIDI4LjYgMzQuNCAyOC42ek02ODAuNiA2NThIMzQzLjRjLTEyLjMgMC0yMi4zIDguNS0yMi4zIDE5LjEgMCAxMC41IDEwIDE5LjEgMjIuMyAxOS4xaDMzNy4yYzEyLjMgMCAyMi4zLTguNiAyMi4zLTE5LjEgMC0xMC42LTEwLTE5LjEtMjIuMy0xOS4xek02ODAuNiAzNTIuNUgzNDMuNGMtMTIuMyAwLTIyLjMgOC42LTIyLjMgMTkuMXMxMCAxOS4xIDIyLjMgMTkuMWgzMzcuMmMxMi4zIDAgMjIuMy04LjYgMjIuMy0xOS4xIDAtMTAuNS0xMC0xOS4xLTIyLjMtMTkuMXoiIHAtaWQ9IjEzNTIwIiBmaWxsPSIjRkZBNTAwIj48L3BhdGg+PC9zdmc+")
+}
+
+/* 序号列调整 */
+.ew-tree-table td[data-type="numbers"] {
+ padding-left: 0;
+ padding-right: 0;
+ text-align: center;
+}
+
+/* 单元格内表单元素样式调整 */
+.ew-tree-table .layui-form-switch {
+ margin-top: 0;
+}
+
+.ew-tree-table .layui-form-radio {
+ margin: 0;
+}
+
+/* checkbox和radio列调整 */
+.ew-tree-table-checkbox + .layui-form-checkbox {
+ padding: 0;
+}
+
+.ew-tree-table-checkbox + .layui-form-checkbox > .layui-icon {
+ color: transparent;
+ transition: background-color .1s linear;
+}
+
+.ew-tree-table-checkbox + .layui-form-checkbox.layui-form-checked > .layui-icon {
+ color: #fff;
+}
+
+.ew-tree-table-radio + .layui-form-radio {
+ padding: 0;
+ height: 20px;
+ line-height: 20px;
+}
+
+.ew-tree-table-radio + .layui-form-radio > i {
+ margin: 0;
+ height: 20px;
+ font-size: 20px;
+ line-height: 20px;
+}
+
+/* checkbox半选状态 */
+.ew-tree-table .layui-form-checked.ew-form-indeterminate > .layui-icon:before {
+ content: "";
+ width: 9px;
+ height: 2px;
+ display: inline-block;
+ background-color: #eee;
+ vertical-align: middle;
+}
+
+.ew-tree-table .layui-form-checked.ew-form-indeterminate > .layui-icon {
+ line-height: 14px;
+}
+
+/* 单元格编辑 */
+.ew-tree-table .layui-table td[data-edit] {
+ cursor: text;
+}
+
+.ew-tree-table .ew-tree-table-edit {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ border-radius: 0;
+ box-shadow: 1px 1px 20px rgba(0, 0, 0, .15);
+}
+
+.ew-tree-table .ew-tree-table-edit:focus {
+ border-color: #5FB878 !important;
+}
+
+.ew-tree-table .ew-tree-table-edit.layui-form-danger {
+ border-color: #FF5722 !important;
+}
+
+/* 搜索数据隐藏行 */
+.ew-tree-table tr.ew-tree-table-filter-hide {
+ display: none !important;
+}
+
+/* 单元格超出隐藏 */
+.ew-tree-table-td-single {
+ position: relative;
+}
+
+.ew-tree-table-td-single > .ew-tree-tips {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+.ew-tree-table-td-single > .ew-tree-tips-c {
+ position: absolute;
+ right: -10px;
+ top: -6px;
+ width: 24px;
+ height: 24px;
+ line-height: 24px;
+ font-size: 18px;
+ text-align: center;
+ color: #fff;
+ border-radius: 50%;
+ background-color: #666;
+ cursor: pointer;
+ display: none;
+}
+
+.ew-tree-table table tr:first-child .ew-tree-table-td-single > .ew-tree-tips-c {
+ top: 2px;
+ bottom: auto;
+ right: -12px;
+}
+
+.ew-tree-table-td-single.ew-tree-tips-open {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 5;
+ background-color: #fff;
+ min-height: 100%;
+ box-sizing: border-box;
+ box-shadow: 3px 3px 8px rgba(0, 0, 0, .15);
+}
+
+.ew-tree-table table thead .ew-tree-table-td-single.ew-tree-tips-open {
+ background-color: #f2f2f2;
+}
+
+.ew-tree-table-td-single.ew-tree-tips-open.ew-show-left {
+ right: 0;
+ left: auto;
+ box-shadow: -3px 3px 8px rgba(0, 0, 0, .15);
+}
+
+.ew-tree-table-td-single.ew-tree-tips-open.ew-show-bottom {
+ bottom: 0;
+ top: auto;
+ box-shadow: 3px -3px 8px rgba(0, 0, 0, .15);
+}
+
+.ew-tree-table-td-single.ew-tree-tips-open.ew-show-left.ew-show-bottom {
+ box-shadow: -3px -3px 8px rgba(0, 0, 0, .15);
+}
+
+.ew-tree-table-td-single.ew-tree-tips-open > .ew-tree-tips {
+ padding: 9px 15px;
+ overflow: auto;
+ max-width: 280px;
+ max-height: 100px;
+ width: max-content;
+ white-space: normal;
+}
+
+.ew-tree-table-td-single.ew-tree-tips-open > .ew-tree-tips-c {
+ display: block;
+}
+
+.ew-tree-table-td-single.ew-tree-tips-open.ew-show-left > .ew-tree-tips-c {
+ left: -10px;
+ right: auto !important;
+}
+
+.ew-tree-table td > .layui-table-grid-down {
+ bottom: 0;
+ height: auto;
+}
+
+/* 辅助样式 */
+.pd-tb-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+
+.break-all {
+ word-break: break-all !important;
+}
+
+/* 列宽拖拽调整 */
+/*.ew-tree-table .ew-tb-resize {
+ position: absolute;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ width: 10px;
+ cursor: col-resize;
+}*/
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/treetable2/treeTable.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/treetable2/treeTable.js
new file mode 100644
index 0000000..8906848
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/treetable2/treeTable.js
@@ -0,0 +1,1494 @@
+/**
+ * 树形表格 2.x
+ * date:2019-11-08 License By http://easyweb.vip
+ */
+layui.define(['layer', 'laytpl', 'form'], function (exports) {
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var laytpl = layui.laytpl;
+ var form = layui.form;
+ var device = layui.device();
+ var MOD_NAME = 'treeTable2'; // 绑定事件的模块名
+ // 改为同步加载css,避免滚动条补丁首次进入无效
+ $.ajax({
+ url: layui.cache.base + 'treeTable2/treeTable.css',
+ async: false,
+ success: function (res) {
+ $('head').append('<style id="ew-tree-table-css">' + res + '</style>');
+ }
+ });
+
+ /** TreeTable类构造方法 */
+ var TreeTable = function (options) {
+ // 表格默认参数
+ var defaultOption = {
+ elem: undefined, // table容器
+ data: [], // 数据
+ cols: [], // 列配置
+ reqData: undefined, // 异步加载数据的方法
+ width: undefined, // 容器宽度
+ height: undefined, // 容器高度
+ cellMinWidth: 100, // 单元格最小宽度
+ skin: undefined, // 表格风格
+ size: undefined, // 表格尺寸
+ even: undefined, // 是否开启隔行变色
+ style: undefined, // 容器样式
+ getThead: function () { // 获取表头
+ return getThead(this);
+ },
+ getAllChooseBox: function () { // 获取全选按钮
+ return getAllChooseBox(this);
+ },
+ getColgroup: function () { // 获取colgroup
+ return getColgroup(this);
+ },
+ getTbWidth: function () { // 计算table的宽度
+ return getTbWidth(this);
+ },
+ tree: {},
+ text: {}
+ };
+ // 默认tree参数
+ var treeDefaultOption = {
+ idName: 'id', // id的字段名
+ pidName: 'pid', // pid的字段名
+ childName: 'children', // children的字段名
+ haveChildName: 'haveChild', // 是否有children标识的字段名
+ openName: 'open', // 是否默认展开的字段名
+ isPidData: false, // 是否是pid形式的数据
+ iconIndex: 0, // 图标列的索引
+ arrowType: undefined, // 箭头类型
+ onlyIconControl: false, // 仅允许点击图标折叠
+ getIcon: function (d) { // 自定义图标
+ return getIcon(d, this);
+ }
+ };
+ // 默认提示文本
+ var textDefaultOption = {
+ none: '<div style="padding: 18px 0;">暂无数据</div>' // 空文本提示文字
+ };
+ this.options = $.extend(defaultOption, options);
+ this.options.tree = $.extend(treeDefaultOption, options.tree);
+ this.options.text = $.extend(textDefaultOption, options.text);
+ for (var i = 0; i < options.cols.length; i++) {
+ // 列默认参数
+ var colDefaultOption = {
+ field: undefined, // 字段名
+ title: undefined, // 标题
+ align: undefined, // 对齐方式
+ templet: undefined, // 自定义模板
+ toolbar: undefined, // 工具列
+ width: undefined, // 宽度
+ minWidth: undefined, // 最小宽度
+ type: undefined, // 列类型
+ style: undefined, // 单元格样式
+ class: '', // 单元格class
+ singleLine: true, // 一行显示
+ fixed: undefined, // 固定列
+ unresize: false // 关闭拖拽列宽
+ };
+ this.options.cols[i] = $.extend(colDefaultOption, options.cols[i]);
+ }
+ this.init(); // 初始化表格
+ this.bindEvents(); // 绑定事件
+ };
+
+ /** 初始化表格 */
+ TreeTable.prototype.init = function () {
+ var options = this.options;
+ var tbFilter = options.elem.substring(1); // 树表格的filter
+ var $elem = $(options.elem); // 原始表格
+
+ // 生成树表格dom
+ $elem.removeAttr('lay-filter');
+ $elem.next('.ew-tree-table').remove();
+ var viewHtml = '<div class="layui-form ew-tree-table" style="' + (options.style || '') + '">';
+ viewHtml += ' <div class="ew-tree-table-group">';
+ viewHtml += ' <div class="ew-tree-table-head">';
+ viewHtml += ' <table class="layui-table"></table>';
+ viewHtml += ' <div class="ew-tree-table-border bottom"></div>';
+ viewHtml += ' </div>';
+ viewHtml += ' <div class="ew-tree-table-box">';
+ viewHtml += ' <table class="layui-table"></table>';
+ viewHtml += ' <div class="ew-tree-table-loading"><i class="layui-icon layui-anim layui-anim-rotate layui-anim-loop"></i></div>';
+ viewHtml += ' <div class="ew-tree-table-empty" style="display: none;">' + (options.text.none || '') + '</div>';
+ viewHtml += ' </div>';
+ viewHtml += ' </div>';
+ viewHtml += ' <div class="ew-tree-table-border top"></div><div class="ew-tree-table-border left"></div>';
+ viewHtml += ' <div class="ew-tree-table-border right"></div><div class="ew-tree-table-border bottom"></div>';
+ viewHtml += ' </div>';
+ $elem.after(viewHtml);
+
+ // 获取各个组件
+ var components = this.getComponents();
+ var $view = components.$view; // 容器
+ $view.attr('lay-filter', tbFilter);
+ var $group = components.$group; // 表格容器
+ var $tbBox = components.$tbBox; // 表格主体部分容器
+ var $table = components.$table; // 主体表格
+ var $headTb = components.$headTb; // 表头表格
+ var $tbEmpty = components.$tbEmpty; // 空视图
+ var $tbLoading = components.$tbLoading; // 空视图
+
+ // 基础参数设置
+ options.skin && $table.attr('lay-skin', options.skin);
+ options.size && $table.attr('lay-size', options.size);
+ options.even && $table.attr('lay-even', options.even);
+
+ // 容器边框调整
+ if (device.ie) {
+ $view.find('.ew-tree-table-border.bottom').css('height', '1px');
+ $view.find('.ew-tree-table-border.right').css('width', '1px');
+ }
+
+ // 固定宽度
+ if (options.width) {
+ $view.css('width', options.width);
+ $headTb.parent().css('width', options.width);
+ $tbBox.css('width', options.width);
+ }
+ // col最小宽度
+ var tbWidth = options.getTbWidth();
+ if (tbWidth.setWidth) {
+ $table.css('width', tbWidth.minWidth);
+ $headTb.css('width', tbWidth.minWidth);
+ } else {
+ $table.css('min-width', tbWidth.minWidth);
+ $headTb.css('min-width', tbWidth.minWidth);
+ }
+
+ // 渲染表结构及表头
+ var colgroupHtmlStr = options.getColgroup();
+ var headHtmlStr = colgroupHtmlStr + '<thead>' + options.getThead() + '</thead>';
+ if (options.height) { // 固定表头
+ $table.html(colgroupHtmlStr + '<tbody></tbody>');
+ $headTb.html(headHtmlStr);
+ $table.css('margin-top', '-1px');
+ if (options.height.indexOf('full-') == 0) { // 差值高度
+ var h = parseFloat(options.height.substring(5));
+ var cssStr = '<style>.ew-tree-table > .ew-tree-table-group > .ew-tree-table-box {';
+ cssStr += ' height: ' + (getPageHeight() - h) + 'px;';
+ cssStr += ' height: -moz-calc(100vh - ' + h + 'px);';
+ cssStr += ' height: -webkit-calc(100vh - ' + h + 'px);';
+ cssStr += ' height: calc(100vh - ' + h + 'px);';
+ cssStr += ' }</style>';
+ $tbBox.after(cssStr);
+ $tbBox.attr('ew-tree-full', h);
+ } else { // 固定高度
+ $tbBox.css('height', options.height);
+ }
+ } else {
+ $table.html(headHtmlStr + '<tbody></tbody>');
+ }
+ form.render('checkbox', tbFilter); // 渲染表头的表单元素
+
+ // 渲染数据
+ if (options.reqData) { // 异步加载
+ this.renderBodyAsync();
+ } else { // 一次性渲染
+ if (options.data && options.data.length > 0) {
+ // 处理数据
+ if (options.tree.isPidData) { // pid形式数据
+ options.data = treeTb.pidToChildren(options.data, options.tree.idName, options.tree.pidName, options.tree.childName);
+ } else { // children形式数据
+ addPidField(options.data, options.tree);
+ }
+ $table.children('tbody').html(this.renderBody(options.data));
+ $tbLoading.hide();
+ this.renderNumberCol(); // 渲染序号列
+ form.render(null, tbFilter); // 渲染表单元素
+ this.checkChooseAllCB(); // 联动全选框
+ updateFixedTbHead($view);
+ } else {
+ $tbLoading.hide();
+ $tbEmpty.show();
+ }
+ }
+ };
+
+ /** 绑定各项事件 */
+ TreeTable.prototype.bindEvents = function () {
+ var that = this;
+ var options = this.options;
+ var components = this.getComponents();
+ var $view = components.$view;
+ var $table = components.$table;
+ var $tbEmpty = components.$tbEmpty;
+ var tbFilter = components.tbFilter;
+ var checkboxFilter = components.checkboxFilter;
+ var radioFilter = components.radioFilter;
+ var cbAllFilter = components.cbAllFilter;
+ var $tbody = $table.children('tbody');
+
+ /** 行事件公共返回对象 */
+ var commonMember = function (ext) {
+ var $tr = $(this);
+ if (!$tr.is('tr')) {
+ var $td_tr = $tr.parent('tr[data-id]');
+ if ($td_tr.length > 0) {
+ $tr = $td_tr;
+ } else {
+ $tr = $tr.parentsUntil('tr[data-id]').last().parent();
+ }
+ }
+ var id = $tr.data('id');
+ var data = getDataById(options.data, id, options.tree);
+ var obj = {
+ tr: $tr, // 当前行
+ data: data, //当前行数据
+ del: function () { // 删除行
+ var indent = parseInt(this.tr.data('indent'));
+ this.tr.nextAll('tr').each(function () {
+ if (parseInt($(this).data('indent')) <= indent) {
+ return false;
+ }
+ $(this).remove();
+ });
+ var $parentTr = this.tr.prevAll('tr');
+ this.tr.remove();
+ delDataById(options.data, id, options.tree);
+ if (!options.data || options.data.length <= 0) {
+ $tbEmpty.show();
+ }
+ that.renderNumberCol(); // 渲染序号列
+ // 联动父级
+ $parentTr.each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd < indent) {
+ that.checkParentCB($(this));
+ indent = tInd;
+ }
+ });
+ that.checkChooseAllCB(); // 联动全选框
+ },
+ update: function (fields) { // 修改行
+ data = $.extend(data, fields);
+ var indent = parseInt(this.tr.data('indent'));
+ that.renderBodyTr(data, indent, undefined, this.tr);
+ form.render(null, tbFilter); // 渲染表单元素
+ that.checkIndeterminateCB(); // 恢复半选框状态
+ that.checkChooseAllCB(); // 联动全选框
+ }
+ };
+ return $.extend(obj, ext);
+ };
+
+ // 绑定折叠展开事件
+ $tbody.off('click.fold').on('click.fold', '.ew-tree-pack', function (e) {
+ layui.stope(e);
+ var $tr = $(this).parentsUntil('tr').last().parent();
+ if ($tr.hasClass('ew-tree-table-loading')) { // 已是加载中
+ return;
+ }
+ var haveChild = $tr.data('have-child');
+ if (haveChild != true && haveChild != 'true') { // 子节点
+ return;
+ }
+ var id = $tr.data('id');
+ var isOpen = $tr.hasClass('ew-tree-table-open');
+ var data = getDataById(options.data, id, options.tree);
+ if (!isOpen && (!data[options.tree.childName] || data[options.tree.childName].length <= 0)) {
+ that.renderBodyAsync(data, $tr);
+ } else {
+ toggleRow($tr);
+ }
+ });
+
+ // 绑定lay-event事件
+ $tbody.off('click.tool').on('click.tool', '*[lay-event]', function (e) {
+ layui.stope(e);
+ var $this = $(this);
+ layui.event.call(this, MOD_NAME, 'tool(' + tbFilter + ')', commonMember.call(this, {
+ event: $this.attr('lay-event')
+ }));
+ });
+
+ // 绑定单选框事件
+ form.on('radio(' + radioFilter + ')', function (data) {
+ var d = getDataById(options.data, data.value, options.tree);
+ that.removeAllChecked();
+ d.LAY_CHECKED = true; // 同时更新数据
+ layui.event.call(this, MOD_NAME, 'checkbox(' + tbFilter + ')', {checked: true, data: d, type: 'one'});
+ });
+
+ // 绑定复选框事件
+ form.on('checkbox(' + checkboxFilter + ')', function (data) {
+ var checked = data.elem.checked;
+ var $cb = $(data.elem);
+ var $layCb = $cb.next('.layui-form-checkbox');
+ // 如果是半选状态,点击全选
+ if (!checked && $layCb.hasClass('ew-form-indeterminate')) {
+ checked = true;
+ $cb.prop('checked', checked);
+ $cb.data('indeterminate', 'false');
+ $layCb.addClass('layui-form-checked');
+ $layCb.removeClass('ew-form-indeterminate');
+ }
+ var d = getDataById(options.data, data.value, options.tree);
+ d.LAY_CHECKED = checked; // 同时更新数据
+ // 联动操作
+ var $tr = $cb.parentsUntil('tr').last().parent();
+ if (d[options.tree.childName] && d[options.tree.childName].length > 0) {
+ that.checkSubCB($tr, checked); // 联动子级
+ }
+ var indent = parseInt($tr.data('indent'));
+ $tr.prevAll('tr').each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd < indent) {
+ that.checkParentCB($(this)); // 联动父级
+ indent = tInd;
+ }
+ });
+ that.checkChooseAllCB(); // 联动全选框
+ // 回调事件
+ layui.event.call(this, MOD_NAME, 'checkbox(' + tbFilter + ')', {
+ checked: checked,
+ data: d,
+ type: 'one'
+ });
+ });
+
+ // 绑定全选复选框事件
+ form.on('checkbox(' + cbAllFilter + ')', function (data) {
+ var checked = data.elem.checked;
+ var $cb = $(data.elem);
+ var $layCb = $cb.next('.layui-form-checkbox');
+ if (!options.data || options.data.length <= 0) { // 如果数据为空
+ $cb.prop('checked', false);
+ $cb.data('indeterminate', 'false');
+ $layCb.removeClass('layui-form-checked ew-form-indeterminate');
+ return;
+ }
+ // 如果是半选状态,点击全选
+ if (!checked && $layCb.hasClass('ew-form-indeterminate')) {
+ checked = true;
+ $cb.prop('checked', checked);
+ $cb.data('indeterminate', 'false');
+ $layCb.addClass('layui-form-checked');
+ $layCb.removeClass('ew-form-indeterminate');
+ }
+ layui.event.call(this, MOD_NAME, 'checkbox(' + tbFilter + ')', {
+ checked: checked,
+ data: undefined,
+ type: 'all'
+ });
+ that.checkSubCB($table.children('tbody'), checked); // 联动操作
+ });
+
+ // 绑定行单击事件
+ $tbody.off('click.row').on('click.row', 'tr', function () {
+ layui.event.call(this, MOD_NAME, 'row(' + tbFilter + ')', commonMember.call(this, {}));
+ });
+
+ // 绑定行双击事件
+ $tbody.off('dblclick.rowDouble').on('dblclick.rowDouble', 'tr', function () {
+ layui.event.call(this, MOD_NAME, 'rowDouble(' + tbFilter + ')', commonMember.call(this, {}));
+ });
+
+ // 绑定单元格点击事件
+ $tbody.off('click.cell').on('click.cell', 'td', function (e) {
+ var $td = $(this);
+ var type = $td.data('type');
+ // 判断是否是复选框、单选框列
+ if (type == 'checkbox' || type == 'radio') {
+ layui.stope(e);
+ return;
+ }
+ var edit = $td.data('edit');
+ var field = $td.data('field');
+ if (edit) { // 开启了单元格编辑
+ layui.stope(e);
+ if ($tbody.find('.ew-tree-table-edit').length > 0) {
+ return;
+ }
+ var index = $td.data('index');
+ var indentSize = $td.children('.ew-tree-table-indent').length;
+ var id = $td.parent().data('id');
+ var d = getDataById(options.data, id, options.tree);
+ if ('text' == edit || 'number' == edit) { // 文本框
+ var $input = $('<input type="' + edit + '" class="layui-input ew-tree-table-edit"/>');
+ $input[0].value = d[field];
+ $td.append($input);
+ $input.focus();
+ $input.blur(function () {
+ var value = $(this).val();
+ if (value == d[field]) {
+ $(this).remove();
+ return;
+ }
+ var rs = layui.event.call(this, MOD_NAME, 'edit(' + tbFilter + ')', commonMember.call(this, {
+ value: value,
+ field: field
+ }));
+ if (rs == false) {
+ $(this).addClass('layui-form-danger');
+ $(this).focus();
+ } else {
+ d[field] = value; // 同步更新数据
+ that.renderBodyTd(d, indentSize, index, $td); // 更新单元格
+ }
+ });
+ } else {
+ console.error('不支持的单元格编辑类型:' + edit);
+ }
+ } else { // 回调单元格点击事件
+ var rs = layui.event.call(this, MOD_NAME, 'cell(' + tbFilter + ')', commonMember.call(this, {
+ td: $td,
+ field: field
+ }));
+ if (rs == false) {
+ layui.stope(e);
+ }
+ }
+ });
+
+ // 绑定单元格双击事件
+ $tbody.off('dblclick.cellDouble').on('dblclick.cellDouble', 'td', function (e) {
+ var $td = $(this);
+ var type = $td.data('type');
+ // 判断是否是复选框、单选框列
+ if (type == 'checkbox' || type == 'radio') {
+ layui.stope(e);
+ return;
+ }
+ var edit = $td.data('edit');
+ var field = $td.data('field');
+ if (edit) { // 开启了单元格编辑
+ layui.stope(e);
+ } else { // 回调单元格双击事件
+ var rs = layui.event.call(this, MOD_NAME, 'cellDouble(' + tbFilter + ')', commonMember.call(this, {
+ td: $td,
+ field: field
+ }));
+ if (rs == false) {
+ layui.stope(e);
+ }
+ }
+ });
+
+ // 同步滚动条
+ components.$tbBox.on('scroll', function () {
+ var $this = $(this);
+ var scrollLeft = $this.scrollLeft();
+ var scrollTop = $this.scrollTop();
+ components.$headTb.parent().scrollLeft(scrollLeft);
+ // $headGroup.scrollTop(scrollTop);
+ });
+
+ // 列宽拖拽调整
+ /*$view.off('mousedown.resize').on('mousedown.resize', '.ew-tb-resize', function (e) {
+ layui.stope(e);
+ var index = $(this).parent().data('index');
+ $(this).data('move', 'true');
+ $(this).data('x', e.clientX);
+ var w = $(this).parent().parent().parent().parent().children('colgroup').children('col').eq(index).attr('width');
+ $(this).data('width', w);
+ });
+ $view.off('mousemove.resize').on('mousemove.resize', '.ew-tb-resize', function (e) {
+ layui.stope(e);
+ var move = $(this).data('move');
+ if ('true' == move) {
+ var x = $(this).data('x');
+ var w = $(this).data('width');
+ var index = $(this).parent().data('index');
+ var nw = parseFloat(w) + e.clientX - parseFloat(x);
+ $(this).parent().parent().parent().parent().children('colgroup').children('col').eq(index).attr('width', nw);
+ }
+ });
+ $view.off('mouseup.resize').on('mouseup.resize', '.ew-tb-resize', function (e) {
+ layui.stope(e);
+ $(this).data('move', 'false');
+ });
+ $view.off('mouseleave.resize').on('mouseleave.resize', '.ew-tb-resize', function (e) {
+ layui.stope(e);
+ $(this).data('move', 'false');
+ });*/
+
+ };
+
+ /** 获取各个组件 */
+ TreeTable.prototype.getComponents = function () {
+ var $view = $(this.options.elem).next(); // 容器
+ var $group = $view.children('.ew-tree-table-group'); // 表格容器
+ var $tbBox = $group.children('.ew-tree-table-box'); // 表格主体部分容器
+ var $table = $tbBox.children('.layui-table'); // 主体表格
+ var $headTb = $group.children('.ew-tree-table-head').children('.layui-table'); // 表头表格
+ var $tbEmpty = $tbBox.children('.ew-tree-table-empty'); // 空视图
+ var $tbLoading = $tbBox.children('.ew-tree-table-loading'); // 加载视图
+ var tbFilter = $view.attr('lay-filter'); // 容器filter
+ var checkboxFilter = 'ew_tb_checkbox_' + tbFilter; // 复选框filter
+ var radioFilter = 'ew_tb_radio_' + tbFilter; // 单选框filter
+ var cbAllFilter = 'ew_tb_choose_all_' + tbFilter; // 全选按钮filter
+ return {
+ $view: $view,
+ $group: $group,
+ $tbBox: $tbBox,
+ $table: $table,
+ $headTb: $headTb,
+ $tbEmpty: $tbEmpty,
+ $tbLoading: $tbLoading,
+ tbFilter: tbFilter,
+ checkboxFilter: checkboxFilter,
+ radioFilter: radioFilter,
+ cbAllFilter: cbAllFilter
+ };
+ };
+
+ /**
+ * 递归渲染表格主体部分
+ * @param data 数据列表
+ * @param indentSize 缩进大小
+ * @param isHide 是否默认隐藏
+ * @returns {string}
+ */
+ TreeTable.prototype.renderBody = function (data, indentSize, isHide) {
+ var options = this.options;
+ var treeOption = options.tree;
+ indentSize || (indentSize = 0);
+ var htmlStr = '';
+ for (var i = 0; i < data.length; i++) {
+ var d = data[i];
+ htmlStr += this.renderBodyTr(d, indentSize, isHide);
+ // 递归渲染子集
+ var children = d[treeOption.childName];
+ if (children && children.length > 0) {
+ htmlStr += this.renderBody(children, indentSize + 1, !d[treeOption.openName]);
+ }
+ }
+ return htmlStr;
+ };
+
+ /**
+ * 渲染一行数据
+ * @param d 行数据
+ * @param option 配置
+ * @param indentSize 缩进大小
+ * @param isHide 是否隐藏
+ * @param $tr
+ * @returns {string}
+ */
+ TreeTable.prototype.renderBodyTr = function (d, indentSize, isHide, $tr) {
+ var options = this.options;
+ var cols = options.cols;
+ var treeOption = options.tree;
+ indentSize || (indentSize = 0);
+ var htmlStr = '';
+ var haveChild = getHaveChild(d, treeOption);
+ if ($tr) {
+ $tr.data('pid', d[treeOption.pidName] || '');
+ $tr.data('have-child', haveChild);
+ $tr.data('indent', indentSize);
+ $tr.removeClass('ew-tree-table-loading');
+ } else {
+ var classNames = '';
+ if (haveChild && d[treeOption.openName]) {
+ classNames += 'ew-tree-table-open';
+ }
+ if (isHide) {
+ classNames += 'ew-tree-tb-hide';
+ }
+ htmlStr += '<tr class="' + classNames + '" data-id="' + d[treeOption.idName] + '"';
+ htmlStr += ' data-pid="' + (d[treeOption.pidName] || '') + '" data-have-child="' + haveChild + '"';
+ htmlStr += ' data-indent="' + indentSize + '">';
+ }
+ for (var j = 0; j < cols.length; j++) {
+ var $td;
+ if ($tr) {
+ $td = $tr.children('td').eq(j);
+ }
+ htmlStr += this.renderBodyTd(d, indentSize, j, $td);
+ }
+ htmlStr += '</tr>';
+ return htmlStr;
+ };
+
+ /**
+ * 渲染每一个单元格数据
+ * @param d 行数据
+ * @param indentSize 缩进大小
+ * @param index 第几列
+ * @param $td
+ * @returns {string}
+ */
+ TreeTable.prototype.renderBodyTd = function (d, indentSize, index, $td) {
+ var options = this.options;
+ var col = options.cols[index];
+ var treeOption = options.tree;
+ var components = this.getComponents();
+ var checkboxFilter = components.checkboxFilter;
+ var radioFilter = components.radioFilter;
+ indentSize || (indentSize = 0);
+ // 内容填充
+ var fieldStr = '';
+ if (col.type == 'numbers') { // 序号列
+ fieldStr += '<span class="ew-tree-table-numbers"></span>';
+ col.singleLine = false;
+ } else if (col.type == 'checkbox') { // 复选框列
+ var attrStr = 'name="' + checkboxFilter + '" lay-filter="' + checkboxFilter + '" value="' + d[treeOption.idName] + '"';
+ attrStr += d.LAY_CHECKED ? ' checked="checked"' : '';
+ fieldStr += '<input type="checkbox" lay-skin="primary" ' + attrStr + ' class="ew-tree-table-checkbox" />';
+ col.singleLine = false;
+ } else if (col.type == 'radio') { // 单选框列
+ var attrStr = 'name="' + radioFilter + '" lay-filter="' + radioFilter + '" value="' + d[treeOption.idName] + '"';
+ attrStr += d.LAY_CHECKED ? ' checked="checked"' : '';
+ fieldStr += '<input type="radio" ' + attrStr + ' class="ew-tree-table-radio" />';
+ col.singleLine = false;
+ } else if (col.templet) { // 自定义模板
+ if (typeof col.templet == 'function') {
+ fieldStr += col.templet(d);
+ } else if (typeof col.templet == 'string') {
+ laytpl($(col.templet).html()).render(d, function (html) {
+ fieldStr += html;
+ });
+ }
+ } else if (col.toolbar) { // 工具列
+ laytpl($(col.toolbar).html()).render(d, function (html) {
+ fieldStr += html;
+ });
+ } else if (col.field && d[col.field] != undefined && d[col.field] != null) { // 普通字段
+ fieldStr += d[col.field];
+ }
+ var tdStr = '';
+ // 图标列处理
+ if (index == treeOption.iconIndex) {
+ // 缩进
+ for (var k = 0; k < indentSize; k++) {
+ tdStr += '<span class="ew-tree-table-indent"></span>';
+ }
+ tdStr += '<span class="ew-tree-pack">';
+ // 加箭头
+ var haveChild = getHaveChild(d, treeOption);
+ tdStr += ('<i class="layui-icon ew-tree-table-arrow ' + (haveChild ? '' : 'ew-tree-table-arrow-hide') + ' ' + (options.tree.arrowType || '') + '"></i>');
+ // 加图标
+ tdStr += treeOption.getIcon(d);
+ if (options.tree.onlyIconControl) {
+ tdStr += '</span>';
+ tdStr += ('<span>' + fieldStr + '</span>');
+ } else {
+ tdStr += ('<span>' + fieldStr + '</span>');
+ tdStr += '</span>';
+ }
+ } else {
+ tdStr += fieldStr;
+ }
+ if ($td && col.type != 'numbers') {
+ $td.html(tdStr);
+ }
+ var htmlStr = '<td data-index="' + index + '" ';
+ col.field && (htmlStr += (' data-field="' + col.field + '"'));
+ col.edit && (htmlStr += (' data-edit="' + col.edit + '"'));
+ col.type && (htmlStr += (' data-type="' + col.type + '"'));
+ col.align && (htmlStr += (' align="' + col.align + '"')); // 对齐方式
+ col.style && (htmlStr += (' style="' + col.style + '"')); // 单元格样式
+ col.class && (htmlStr += (' class="' + col.class + '"')); // 单元格样式
+ htmlStr += '>';
+ if (col.singleLine) {
+ htmlStr += ('<div class="ew-tree-table-td-single"><i class="layui-icon layui-icon-close ew-tree-tips-c"></i><div class="ew-tree-tips">' + tdStr + '</div></div>');
+ } else {
+ htmlStr += tdStr;
+ }
+ htmlStr += '</td>';
+ return htmlStr;
+ };
+
+ /**
+ * 异步加载渲染
+ * @param data 父级数据
+ * @param $tr 父级dom
+ */
+ TreeTable.prototype.renderBodyAsync = function (d, $tr) {
+ var that = this;
+ var options = this.options;
+ var components = this.getComponents();
+ var $tbEmpty = components.$tbEmpty;
+ var $tbLoading = components.$tbLoading;
+ // 显示loading
+ if ($tr) {
+ $tr.addClass('ew-tree-table-loading');
+ $tr.children('td').find('.ew-tree-pack').children('.ew-tree-table-arrow').addClass('layui-anim layui-anim-rotate layui-anim-loop');
+ } else {
+ if (options.data && options.data.length > 0) {
+ $tbLoading.addClass('ew-loading-float');
+ }
+ $tbLoading.show();
+ $tbEmpty.hide();
+ }
+ // 请求数据
+ options.reqData(d, function (res) {
+ if (options.tree.isPidData) {
+ res = treeTb.pidToChildren(res, options.tree.idName, options.tree.pidName, options.tree.childName);
+ }
+ that.renderBodyData(res, d, $tr); // 渲染内容
+ // 移除loading
+ if ($tr) {
+ $tr.removeClass('ew-tree-table-loading');
+ $tr.children('td').find('.ew-tree-pack').children('.ew-tree-table-arrow').removeClass('layui-anim layui-anim-rotate layui-anim-loop');
+ } else {
+ $tbLoading.hide();
+ $tbLoading.removeClass('ew-loading-float');
+ // 是否为空
+ if (!res || res.length == 0) {
+ $tbEmpty.show();
+ } else {
+ $tbEmpty.hide();
+ }
+ }
+ });
+ };
+
+ /**
+ * 根据数据渲染body
+ * @param data 数据集合
+ * @param option 配置项
+ * @param d 父级数据
+ * @param $tr 父级dom
+ */
+ TreeTable.prototype.renderBodyData = function (data, d, $tr) {
+ var that = this;
+ var options = this.options;
+ var components = this.getComponents();
+ var $view = components.$view;
+ var $table = components.$table;
+ var tbFilter = components.tbFilter;
+ addPidField(data, options.tree, d); // 补充pid字段
+ // 更新到数据
+ if (d == undefined) {
+ options.data = data;
+ } else {
+ d[options.tree.childName] = data;
+ }
+ var indent;
+ if ($tr) {
+ indent = parseInt($tr.data('indent')) + 1;
+ }
+ var htmlStr = this.renderBody(data, indent);
+ if ($tr) {
+ // 移除旧dom
+ $tr.nextAll('tr').each(function () {
+ if (parseInt($(this).data('indent')) <= (indent - 1)) {
+ return false;
+ }
+ $(this).remove();
+ });
+ // 渲染新dom
+ $tr.after(htmlStr);
+ $tr.addClass('ew-tree-table-open');
+ } else {
+ $table.children('tbody').html(htmlStr);
+ }
+ form.render(null, tbFilter); // 渲染表单元素
+ this.renderNumberCol(); // 渲染序号列
+ this.checkIndeterminateCB(); // 恢复复选框半选状态
+ if ($tr) {
+ // 更新父级复选框状态
+ this.checkParentCB($tr);
+ $tr.prevAll('tr').each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd < (indent - 1)) {
+ that.checkParentCB($(this));
+ indent = tInd + 1;
+ }
+ });
+ }
+ this.checkChooseAllCB(); // 联动全选框
+ updateFixedTbHead($view);
+ };
+
+ /**
+ * 联动子级复选框状态
+ * @param $tr 当前tr的dom
+ * @param checked
+ */
+ TreeTable.prototype.checkSubCB = function ($tr, checked) {
+ var that = this;
+ var components = this.getComponents();
+ var cbFilter = components.checkboxFilter;
+ var indent = -1, $trList;
+ if ($tr.is('tbody')) {
+ $trList = $tr.children('tr');
+ } else {
+ indent = parseInt($tr.data('indent'));
+ $trList = $tr.nextAll('tr')
+ }
+ $trList.each(function () {
+ if (parseInt($(this).data('indent')) <= indent) {
+ return false;
+ }
+ var $cb = $(this).children('td').find('input[name="' + cbFilter + '"]');
+ $cb.prop('checked', checked);
+ if (checked) {
+ $cb.data('indeterminate', 'false');
+ $cb.next('.layui-form-checkbox').addClass('layui-form-checked');
+ $cb.next('.layui-form-checkbox').removeClass('ew-form-indeterminate');
+ } else {
+ $cb.data('indeterminate', 'false');
+ $cb.next('.layui-form-checkbox').removeClass('layui-form-checked ew-form-indeterminate');
+ }
+ that.update($(this).data('id'), {LAY_CHECKED: checked}); // 同步更新数据
+ });
+ };
+
+ /**
+ * 联动父级复选框状态
+ * @param $tr 父级的dom
+ */
+ TreeTable.prototype.checkParentCB = function ($tr) {
+ var that = this;
+ var components = this.getComponents();
+ var cbFilter = components.checkboxFilter;
+ var indent = parseInt($tr.data('indent'));
+ var ckNum = 0, unCkNum = 0;
+ $tr.nextAll('tr').each(function () {
+ if (parseInt($(this).data('indent')) <= indent) {
+ return false;
+ }
+ var $cb = $(this).children('td').find('input[name="' + cbFilter + '"]');
+ if ($cb.prop('checked')) {
+ ckNum++;
+ } else {
+ unCkNum++;
+ }
+ });
+ var $cb = $tr.children('td').find('input[name="' + cbFilter + '"]');
+ if (ckNum > 0 && unCkNum == 0) { // 全选
+ $cb.prop('checked', true);
+ $cb.data('indeterminate', 'false');
+ $cb.next('.layui-form-checkbox').addClass('layui-form-checked');
+ $cb.next('.layui-form-checkbox').removeClass('ew-form-indeterminate');
+ that.update($tr.data('id'), {LAY_CHECKED: true}); // 同步更新数据
+ } else if (ckNum == 0 && unCkNum > 0) { // 全不选
+ $cb.prop('checked', false);
+ $cb.data('indeterminate', 'false');
+ $cb.next('.layui-form-checkbox').removeClass('layui-form-checked ew-form-indeterminate');
+ that.update($tr.data('id'), {LAY_CHECKED: false}); // 同步更新数据
+ } else if (ckNum > 0 && unCkNum > 0) { // 半选
+ $cb.prop('checked', true);
+ $cb.data('indeterminate', 'true');
+ $cb.next('.layui-form-checkbox').addClass('layui-form-checked ew-form-indeterminate');
+ that.update($tr.data('id'), {LAY_CHECKED: true}); // 同步更新数据
+ }
+ };
+
+ /** 联动全选复选框 */
+ TreeTable.prototype.checkChooseAllCB = function () {
+ var components = this.getComponents();
+ var cbAllFilter = components.cbAllFilter;
+ var cbFilter = components.checkboxFilter;
+ var $tbody = components.$table.children('tbody');
+ var ckNum = 0, unCkNum = 0;
+ $tbody.children('tr').each(function () {
+ var $cb = $(this).children('td').find('input[name="' + cbFilter + '"]');
+ if ($cb.prop('checked')) {
+ ckNum++;
+ } else {
+ unCkNum++;
+ }
+ });
+ var $cb = $('input[lay-filter="' + cbAllFilter + '"]');
+ if (ckNum > 0 && unCkNum == 0) { // 全选
+ $cb.prop('checked', true);
+ $cb.data('indeterminate', 'false');
+ $cb.next('.layui-form-checkbox').addClass('layui-form-checked');
+ $cb.next('.layui-form-checkbox').removeClass('ew-form-indeterminate');
+ } else if ((ckNum == 0 && unCkNum > 0) || (ckNum == 0 && unCkNum == 0)) { // 全不选
+ $cb.prop('checked', false);
+ $cb.data('indeterminate', 'false');
+ $cb.next('.layui-form-checkbox').removeClass('layui-form-checked ew-form-indeterminate');
+ } else if (ckNum > 0 && unCkNum > 0) { // 半选
+ $cb.prop('checked', true);
+ $cb.data('indeterminate', 'true');
+ $cb.next('.layui-form-checkbox').addClass('layui-form-checked ew-form-indeterminate');
+ }
+ };
+
+ /** 填充序号列 */
+ TreeTable.prototype.renderNumberCol = function () {
+ var components = this.getComponents();
+ var $tbody = components.$table.children('tbody');
+ $tbody.children('tr').each(function (index) {
+ $(this).children('td').find('.ew-tree-table-numbers').text(index + 1);
+ });
+ };
+
+ /* 解决form.render之后半选框被重置的问题 */
+ TreeTable.prototype.checkIndeterminateCB = function () {
+ var components = this.getComponents();
+ var cbFilter = components.checkboxFilter;
+ $('input[lay-filter="' + cbFilter + '"]').each(function () {
+ var $cb = $(this);
+ if ($cb.data('indeterminate') == 'true' && $cb.prop('checked')) {
+ $cb.next('.layui-form-checkbox').addClass('ew-form-indeterminate');
+ }
+ });
+ };
+
+ /**
+ * 搜索数据
+ * @param ids 关键字或数据id集合
+ */
+ TreeTable.prototype.filterData = function (ids) {
+ var components = this.getComponents();
+ var $trList = components.$table.children('tbody').children('tr');
+ if (typeof ids == 'string') { // 关键字
+ var keyword = ids;
+ ids = [];
+ $trList.each(function () {
+ var id = $(this).data('id');
+ $(this).children('td').each(function () {
+ if ($(this).text().indexOf(keyword) != -1) {
+ ids.push(id);
+ return false;
+ }
+ });
+ });
+ }
+ $trList.addClass('ew-tree-table-filter-hide');
+ for (var i = 0; i < ids.length; i++) {
+ var $tr = $trList.filter('[data-id="' + ids[i] + '"]');
+ $tr.removeClass('ew-tree-table-filter-hide');
+ // 联动父级
+ var indent = parseInt($tr.data('indent'));
+ $tr.prevAll('tr').each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd < indent) {
+ $(this).removeClass('ew-tree-table-filter-hide'); // 联动父级
+ if (!$(this).hasClass('ew-tree-table-open')) {
+ toggleRow($(this));
+ }
+ indent = tInd;
+ }
+ });
+ }
+ };
+
+ /** 重置搜索 */
+ TreeTable.prototype.clearFilter = function () {
+ var components = this.getComponents();
+ var $trList = components.$table.children('tbody').children('tr');
+ $trList.removeClass('ew-tree-table-filter-hide');
+ };
+
+ /** 展开指定行 */
+ TreeTable.prototype.expand = function (id, cascade) {
+ var components = this.getComponents();
+ var $tr = components.$table.children('tbody').children('tr[data-id="' + id + '"]');
+ if (!$tr.hasClass('ew-tree-table-open')) {
+ $tr.children('td').find('.ew-tree-pack').trigger('click');
+ }
+ if (cascade == false) {
+ return;
+ }
+ // 联动父级
+ var indent = parseInt($tr.data('indent'));
+ $tr.prevAll('tr').each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd < indent) {
+ if (!$(this).hasClass('ew-tree-table-open')) {
+ $(this).children('td').find('.ew-tree-pack').trigger('click');
+ }
+ indent = tInd;
+ }
+ });
+ };
+
+ /** 折叠指定行 */
+ TreeTable.prototype.fold = function (id, cascade) {
+ var components = this.getComponents();
+ var $tr = components.$table.children('tbody').children('tr[data-id="' + id + '"]');
+ if ($tr.hasClass('ew-tree-table-open')) {
+ $tr.children('td').find('.ew-tree-pack').trigger('click');
+ }
+ if (cascade == false) {
+ return;
+ }
+ // 联动父级
+ var indent = parseInt($tr.data('indent'));
+ $tr.prevAll('tr').each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd < indent) {
+ if ($(this).hasClass('ew-tree-table-open')) {
+ $(this).children('td').find('.ew-tree-pack').trigger('click');
+ }
+ indent = tInd;
+ }
+ });
+ };
+
+ /** 全部展开 */
+ TreeTable.prototype.expandAll = function () {
+ var that = this;
+ var components = this.getComponents();
+ var $trList = components.$table.children('tbody').children('tr');
+ $trList.each(function () {
+ that.expand($(this).data('id'), false);
+ });
+ };
+
+ /** 全部折叠 */
+ TreeTable.prototype.foldAll = function () {
+ var that = this;
+ var components = this.getComponents();
+ var $trList = components.$table.children('tbody').children('tr');
+ $trList.each(function () {
+ that.fold($(this).data('id'), false);
+ });
+ };
+
+ /** 获取当前数据 */
+ TreeTable.prototype.getData = function () {
+ return this.options.data;
+ };
+
+ /** 重载表格 */
+ TreeTable.prototype.reload = function (opt) {
+ treeTb.render($.extend(this.options, opt));
+ };
+
+ /** 根据id更新数据 */
+ TreeTable.prototype.update = function (id, fields) {
+ var data = getDataById(this.getData(), id, this.options.tree);
+ $.extend(data, fields);
+ };
+
+ /** 根据id删除数据 */
+ TreeTable.prototype.del = function (id) {
+ delDataById(this.getData(), id, this.options.tree);
+ };
+
+ /** 获取当前选中行 */
+ TreeTable.prototype.checkStatus = function (needIndeterminate) {
+ (needIndeterminate == undefined) && (needIndeterminate = true);
+ var that = this;
+ var components = this.getComponents();
+ var $table = components.$table;
+ var checkboxFilter = components.checkboxFilter;
+ var radioFilter = components.radioFilter;
+ var list = [];
+ // 获取单选框选中数据
+ var $radio = $table.find('input[name="' + radioFilter + '"]');
+ if ($radio.length > 0) {
+ var id = $radio.filter(':checked').val();
+ var d = getDataById(this.getData(), id, this.options.tree);
+ if (d) {
+ list.push(d);
+ }
+ } else { // 获取复选框数据
+ $table.find('input[name="' + checkboxFilter + '"]:checked').each(function () {
+ var id = $(this).val();
+ var isIndeterminate = $(this).next('.layui-form-checkbox').hasClass('ew-form-indeterminate');
+ if (needIndeterminate || !isIndeterminate) {
+ var d = getDataById(that.getData(), id, that.options.tree);
+ if (d) {
+ d.isIndeterminate = isIndeterminate;
+ list.push(d);
+ }
+ }
+ });
+ }
+ return list;
+ };
+
+ /** 设置复/单选框选中 */
+ TreeTable.prototype.setChecked = function (ids) {
+ var components = this.getComponents();
+ var $table = components.$table;
+ var checkboxFilter = components.checkboxFilter;
+ var radioFilter = components.radioFilter;
+ var $radio = $table.find('input[name="' + radioFilter + '"]');
+ if ($radio.length > 0) { // 开启了单选框
+ $radio.each(function () {
+ if (ids[ids.length - 1] == $(this).val()) {
+ $(this).next('.layui-form-radio').trigger('click');
+ return false;
+ }
+ });
+ } else { // 开启了复选框
+ $table.find('input[name="' + checkboxFilter + '"]').each(function () {
+ var $cb = $(this);
+ var value = $cb.val();
+ var $layCb = $cb.next('.layui-form-checkbox');
+ for (var i = 0; i < ids.length; i++) {
+ if (value == ids[i]) {
+ var checked = $cb.prop('checked');
+ var indeterminate = $layCb.hasClass('ew-form-indeterminate');
+ if (!checked || indeterminate) {
+ $layCb.trigger('click');
+ }
+ }
+ }
+ });
+ }
+ };
+
+ /** 移除全部选中 */
+ TreeTable.prototype.removeAllChecked = function () {
+ var components = this.getComponents();
+ var $table = components.$table;
+ var checkboxFilter = components.checkboxFilter;
+ this.checkSubCB($table.children('tbody'), false);
+ };
+
+ /**
+ * 刷新指定父级下的节点
+ * @param id 父级id,空则全部刷新
+ * @param data 非异步模式替换的数据
+ */
+ TreeTable.prototype.refresh = function (id, data) {
+ if (isClass(id) == 'Array') {
+ data = id;
+ id = undefined;
+ }
+ var components = this.getComponents();
+ var $table = components.$table;
+ var d, $tr;
+ if (id != undefined) {
+ d = getDataById(this.getData(), id, this.options.tree);
+ $tr = $table.children('tbody').children('tr[data-id="' + id + '"]');
+ }
+ if (data) { // 数据模式
+ components.$tbLoading.addClass('ew-loading-float');
+ components.$tbLoading.show();
+ this.renderBodyData(data, d, $tr);
+ components.$tbLoading.hide();
+ components.$tbLoading.removeClass('ew-loading-float');
+ if (data && data.length > 0) {
+ components.$tbEmpty.hide();
+ } else {
+ components.$tbEmpty.show();
+ }
+ } else { // 异步模式
+ this.renderBodyAsync(d, $tr);
+ }
+ };
+
+ /** 生成表头 */
+ function getThead(options) {
+ var htmlStr = '<tr>';
+ for (var i = 0; i < options.cols.length; i++) {
+ var col = options.cols[i];
+ htmlStr += '<td data-index="' + i + '" ';
+ col.align && (htmlStr += ' align="' + col.align + '"'); // 对齐方式
+ htmlStr += ' >';
+ if (col.singleLine && col.type != 'checkbox') { // 单行显示
+ htmlStr += '<div class="ew-tree-table-td-single"><i class="layui-icon layui-icon-close ew-tree-tips-c"></i><div class="ew-tree-tips">';
+ }
+ // 标题
+ if (col.type == 'checkbox') {
+ htmlStr += options.getAllChooseBox();
+ } else {
+ htmlStr += (col.title || '');
+ }
+ // 列宽拖拽
+ if (!col.unresize && 'checkbox' != col.type && 'radio' != col.type && 'numbers' != col.type && 'space' != col.type) {
+ htmlStr += '<span class="ew-tb-resize"></span>';
+ }
+ if (col.singleLine) { // 单行显示
+ htmlStr += '</div></div>';
+ }
+ htmlStr += '</td>';
+ }
+ htmlStr += '</tr>';
+ return htmlStr;
+ }
+
+ /** 生成colgroup */
+ function getColgroup(options) {
+ var htmlStr = '<colgroup>';
+ for (var i = 0; i < options.cols.length; i++) {
+ var col = options.cols[i];
+ htmlStr += '<col ';
+ // 设置宽度
+ if (col.width) {
+ htmlStr += 'width="' + col.width + '"'
+ } else if (col.type == 'space') { // 空列
+ htmlStr += 'width="15"'
+ } else if (col.type == 'numbers') { // 序号列
+ htmlStr += 'width="40"'
+ } else if (col.type == 'checkbox' || col.type == 'radio') { // 复/单选框列
+ htmlStr += 'width="48"'
+ }
+ htmlStr += ' />';
+ }
+ htmlStr += '</colgroup>';
+ return htmlStr;
+ }
+
+ /** 计算table宽度 */
+ function getTbWidth(options) {
+ var minWidth = 0, setWidth = true;
+ for (var i = 0; i < options.cols.length; i++) {
+ var col = options.cols[i];
+ if (col.type == 'space') { // 空列
+ minWidth += 15;
+ } else if (col.type == 'numbers') { // 序号列
+ minWidth += 40;
+ } else if (col.type == 'checkbox' || col.type == 'radio') { // 复/单选框列
+ minWidth += 48;
+ } else if (!col.width || /\d+%$/.test(col.width)) { // 列未固定宽度
+ setWidth = false;
+ if (col.minWidth) {
+ minWidth += col.minWidth;
+ } else if (options.cellMinWidth) {
+ minWidth += options.cellMinWidth;
+ }
+ } else { // 列固定宽度
+ minWidth += col.width;
+ }
+ }
+ return {minWidth: minWidth, setWidth: setWidth};
+ }
+
+ /** 生成全选按钮 */
+ function getAllChooseBox(options) {
+ var tbFilter = $(options.elem).next().attr('lay-filter');
+ var cbAllFilter = 'ew_tb_choose_all_' + tbFilter;
+ return '<input type="checkbox" lay-filter="' + cbAllFilter + '" lay-skin="primary" class="ew-tree-table-checkbox"/>';
+ }
+
+ /** 获取列图标 */
+ function getIcon(d, treeOption) {
+ if (getHaveChild(d, treeOption)) {
+ return '<i class="ew-tree-icon layui-icon layui-icon-layer"></i>';
+ } else {
+ return '<i class="ew-tree-icon layui-icon layui-icon-file"></i>';
+ }
+ }
+
+ /** 折叠/展开行 */
+ function toggleRow($tr) {
+ var indent = parseInt($tr.data('indent'));
+ var isOpen = $tr.hasClass('ew-tree-table-open');
+ if (isOpen) { // 折叠
+ $tr.removeClass('ew-tree-table-open');
+ $tr.nextAll('tr').each(function () {
+ if (parseInt($(this).data('indent')) <= indent) {
+ return false;
+ }
+ $(this).addClass('ew-tree-tb-hide');
+ });
+ } else { // 展开
+ $tr.addClass('ew-tree-table-open');
+ var hideInd;
+ $tr.nextAll('tr').each(function () {
+ var ind = parseInt($(this).data('indent'));
+ if (ind <= indent) {
+ return false;
+ }
+ if (hideInd != undefined && ind > hideInd) {
+ return true;
+ }
+ $(this).removeClass('ew-tree-tb-hide');
+ if (!$(this).hasClass('ew-tree-table-open')) {
+ hideInd = parseInt($(this).data('indent'));
+ } else {
+ hideInd = undefined;
+ }
+ });
+ }
+ updateFixedTbHead($tr.parent().parent().parent().parent().parent());
+ }
+
+ /** 固定表头滚动条补丁 */
+ function updateFixedTbHead($view) {
+ var $group = $view.children('.ew-tree-table-group');
+ var $headBox = $group.children('.ew-tree-table-head');
+ var $tbBox = $group.children('.ew-tree-table-box');
+ var sWidth = $tbBox.width() - $tbBox.prop('clientWidth');
+ if (sWidth > 0) {
+ $headBox.css('border-right', sWidth + 'px solid #f2f2f2');
+ } else {
+ $headBox.css('border-right', 'none');
+ }
+ }
+
+ // 监听窗口大小改变
+ $(window).resize(function () {
+ $('.ew-tree-table').each(function () {
+ updateFixedTbHead($(this));
+ var $tbBox = $(this).children('.ew-tree-table-group').children('.ew-tree-table-box');
+ var full = $tbBox.attr('ew-tree-full');
+ if (full && device.ie && device.ie < 10) {
+ $tbBox.css('height', getPageHeight() - full);
+ }
+ });
+ });
+
+ // 表格溢出点击展开功能
+ $(document).on('mouseenter', '.ew-tree-table td', function () {
+ var $tdSingle = $(this).children('.ew-tree-table-td-single');
+ var $content = $tdSingle.children('.ew-tree-tips');
+ if ($tdSingle.length > 0 && $content.prop('scrollWidth') > $content.outerWidth()) {
+ $(this).append('<div class="layui-table-grid-down"><i class="layui-icon layui-icon-down"></i></div>');
+ }
+ }).on('mouseleave', '.ew-tree-table td', function () {
+ $(this).children('.layui-table-grid-down').remove();
+ });
+ // 点击箭头展开
+ $(document).on('click', '.ew-tree-table td>.layui-table-grid-down', function (e) {
+ hideAllTdTips();
+ var $tdSingle = $(this).parent().children('.ew-tree-table-td-single');
+ $tdSingle.addClass('ew-tree-tips-open');
+ var $box = $tdSingle.parents().filter('.ew-tree-table-box');
+ if ($box.length <= 0) {
+ $box = $tdSingle.parents().filter('.ew-tree-table-head');
+ }
+ if (($tdSingle.outerWidth() + $tdSingle.parent().offset().left) > $box.offset().left + $box.outerWidth()) {
+ $tdSingle.addClass('ew-show-left');
+ }
+ if (($tdSingle.outerHeight() + $tdSingle.parent().offset().top) > $box.offset().top + $box.outerHeight()) {
+ $tdSingle.addClass('ew-show-bottom');
+ }
+ e.stopPropagation();
+ });
+ // 点击关闭按钮关闭
+ $(document).on('click', '.ew-tree-table .ew-tree-tips-c', function (e) {
+ hideAllTdTips();
+ });
+ // 点击空白部分关闭
+ $(document).on('click', function () {
+ hideAllTdTips();
+ });
+ $(document).on('click', '.ew-tree-table-td-single.ew-tree-tips-open', function (e) {
+ e.stopPropagation();
+ });
+
+ /* 关闭所有单元格溢出提示框 */
+ function hideAllTdTips() {
+ var $single = $('.ew-tree-table-td-single');
+ $single.removeClass('ew-tree-tips-open');
+ $single.removeClass('ew-show-left');
+ }
+
+ /** 判断是否还有子节点 */
+ function getHaveChild(d, treeOption) {
+ var haveChild = false;
+ if (d[treeOption.haveChildName] != undefined) {
+ haveChild = d[treeOption.haveChildName];
+ haveChild = haveChild == true || haveChild == 'true';
+ } else if (d[treeOption.childName]) {
+ haveChild = d[treeOption.childName].length > 0;
+ }
+ return haveChild;
+ }
+
+ /** 补充pid字段 */
+ function addPidField(data, treeOption, parent) {
+ for (var i = 0; i < data.length; i++) {
+ if (parent) {
+ data[i][treeOption.pidName] = parent[treeOption.idName];
+ }
+ if (data[i][treeOption.childName] && data[i][treeOption.childName].length > 0) {
+ addPidField(data[i][treeOption.childName], treeOption, data[i]);
+ }
+ }
+ }
+
+ /** 根据id获取数据 */
+ function getDataById(data, id, treeOption) {
+ for (var i = 0; i < data.length; i++) {
+ if (data[i][treeOption.idName] == id) {
+ return data[i];
+ }
+ if (data[i][treeOption.childName] && data[i][treeOption.childName].length > 0) {
+ var d = getDataById(data[i][treeOption.childName], id, treeOption);
+ if (d != undefined) {
+ return d;
+ }
+ }
+ }
+ }
+
+ /** 根据id删除数据 */
+ function delDataById(data, id, treeOption) {
+ for (var i = 0; i < data.length; i++) {
+ if (data[i][treeOption.idName] == id) {
+ data.splice(i, 1);
+ return true;
+ }
+ if (data[i][treeOption.childName] && data[i][treeOption.childName].length > 0) {
+ var rs = delDataById(data[i][treeOption.childName], id, treeOption);
+ if (rs) {
+ return true;
+ }
+ }
+ }
+ }
+
+ /** 获取顶级的pId */
+ function getPids(list, idName, pidName) {
+ var pids = [];
+ for (var i = 0; i < list.length; i++) {
+ var hasPid = false;
+ for (var j = 0; j < list.length; j++) {
+ if (i != j && list[j][idName] == list[i][pidName]) {
+ hasPid = true;
+ }
+ }
+ if (!hasPid) {
+ pids.push(list[i][pidName]);
+ }
+ }
+ return pids;
+ }
+
+ /** 判断pId是否相等 */
+ function pidEquals(pId, pIds) {
+ if (isClass(pIds) == 'Array') {
+ for (var i = 0; i < pIds.length; i++) {
+ if (pId == pIds[i]) {
+ return true;
+ }
+ }
+ } else {
+ return pId == pIds;
+ }
+ return false;
+ }
+
+ /** 获取变量类型 */
+ function isClass(o) {
+ if (o === null)
+ return 'Null';
+ if (o === undefined)
+ return 'Undefined';
+ return Object.prototype.toString.call(o).slice(8, -1);
+ }
+
+ /* 获取浏览器高度 */
+ function getPageHeight() {
+ return document.documentElement.clientHeight || document.body.clientHeight;
+ }
+
+ /* 获取浏览器宽度 */
+ function getPageWidth() {
+ return document.documentElement.clientWidth || document.body.clientWidth;
+ }
+
+ /** 对外提供的方法 */
+ var treeTb = {
+ /* 渲染 */
+ render: function (options) {
+ return new TreeTable(options);
+ },
+ /* 事件监听 */
+ on: function (events, callback) {
+ return layui.onevent.call(this, MOD_NAME, events, callback);
+ },
+ /* pid转children形式 */
+ pidToChildren: function (data, idName, pidName, childName, pId) {
+ childName || (childName = 'children');
+ var newList = [];
+ for (var i = 0; i < data.length; i++) {
+ (pId == undefined) && (pId = getPids(data, idName, pidName));
+ if (pidEquals(data[i][pidName], pId)) {
+ var children = this.pidToChildren(data, idName, pidName, childName, data[i][idName]);
+ (children.length > 0) && (data[i][childName] = children);
+ newList.push(data[i]);
+ }
+ }
+ return newList;
+ }
+ };
+
+ exports('treeTable', treeTb);
+});
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
new file mode 100644
index 0000000..f9ba10b
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
@@ -0,0 +1,711 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">医生管理</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#!home_console">首页</a>
+ <a><cite>医生管理</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ <button id="doctor-btn-add" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button>
+ <select placeholder="选择一个应用" id="doctorState" lay-filter="role_clients">
+ <option value="">-请选择-</option>
+ <option value="true">正常</option>
+ <option value="false">试用</option>
+ </select>
+ <select id="hospitalName-seach" placeholder="选择一个应用" lay-filter="role_clients">
+ <option value="">-请选择-</option>
+ </select>
+ <input id="doctorTel" class="layui-input search-input" type="text" placeholder="按手机号..." /> 
+ <input id="doctorName" class="layui-input search-input" type="text" placeholder="按医生..." /> 
+ <button id="app-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>
+ </div>
+
+ <!-- 数据表格 -->
+ <table class="layui-table" id="app-table" lay-filter="app-table"></table>
+ </div>
+</div>
+
+<!-- 表格操作列 -->
+
+<script type="text/html" id="doctor-table-bar">
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a>
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="reset">重置密码</a>
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
+ <a class="layui-btn layui-btn-xs" lay-event="del">删除</a>
+ <a class="layui-btn layui-btn-xs" lay-event="enable">停用</a>
+</script>
+
+
+<!-- 表单弹窗 -->
+<script type="text/html" id="app-model">
+ <form id="app-form" lay-filter="app-form" class="layui-form model-form">
+ <input name="id" type="hidden"/>
+ <div class="layui-form-item">
+ <label class="layui-form-label">医院名称</label>
+ <div class="layui-input-block">
+ <input name="hospitalName" id="hospitalName" type="hidden" class="layui-input" maxlength="20"/>
+ <select id="hospitalId" name="hospitalId" lay-filter="getdepartment" placeholder="选择一个应用" lay-filter="role_clients">
+ <option value="">-请选择-</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">科室</label>
+ <div class="layui-input-block">
+ <input name="departmentName" id="departmentName" placeholder="请输入应用名称" type="hidden" class="layui-input" maxlength="20"/>
+ <select id="departmentId" name="departmentId" lay-filter="departmentId" placeholder="选择一个应用" lay-filter="role_clients">
+ <option value="">-请选择-</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">医生姓名</label>
+ <div class="layui-input-block">
+ <input name="doctorName" type="text" class="layui-input" maxlength="20"
+ lay-verify="required" required />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">医生的头像</label>
+ <div class="layui-input-block">
+ <input name="doctorLogo" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">联系方式</label>
+ <div class="layui-input-block">
+ <input name="doctorTel" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">职称</label>
+ <div class="layui-input-block">
+ <input name="doctorRank" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">其它联系方式</label>
+ <div class="layui-input-block">
+ <input name="doctorOtherLink" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">医生的email</label>
+ <div class="layui-input-block">
+ <input name="doctorEmail" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">医生简介</label>
+ <div class="layui-input-block">
+ <input name="doctorAbout" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">是否医答</label>
+ <div class="layui-input-block">
+ <input name="isAnswer" id="isAnswer-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+ <input name="isAnswer" id="isAnswer-fou" type="radio" value="false" title="否" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">是否签约医生</label>
+ <div class="layui-input-block">
+ <input name="isSigning" id="isSigning-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+ <input name="isSigning" id="isSigning-fou" type="radio" value="false" title="否" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label"> 是否置顶</label>
+ <div class="layui-input-block">
+ <input name="isTop" id="isTop-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+ <input name="isTop" id="isTop-fou" type="radio" value="false" title="否" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label"> 医生状态</label>
+ <div class="layui-input-block">
+ <input name="doctorState" id="doctorState-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+ <input name="doctorState" id="doctorState-fou" type="radio" value="false" title="否" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label" >销售代表名称</label>
+ <div class="layui-input-block">
+ <input name="serverUserName" type="text" class="layui-input" maxlength="15"/>
+ </div>
+ </div>
+ <div class="layui-form-item model-form-footer">
+ <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
+ <button class="layui-btn" id="sure" lay-filter="user-form-submit" lay-submit>保存</button>
+ </div>
+ </form>
+</script>
+
+<!-- 表单弹窗 添加-->
+<script type="text/html" id="app-model-add">
+
+ <form id="app-form-add" lay-filter="app-form-add" class="layui-form model-form">
+ <input name="id" type="hidden"/>
+ <div class="layui-form-item">
+ <label class="layui-form-label">医院名称</label>
+ <div class="layui-input-block">
+ <input name="hospitalName" id="hospitalId-add" type="hidden" class="layui-input" maxlength="20"/>
+ <select id="hospitalName-add" name="hospitalId" lay-filter="getdepartment-add" placeholder="选择一个应用" lay-filter="role_clients">
+ <option value="">-请选择-</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">姓名</label>
+ <div class="layui-input-block">
+ <input name="doctorName" type="text" class="layui-input" maxlength="20"
+ lay-verify="required" required />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">科室</label>
+ <div class="layui-input-block">
+ <input name="departmentName" id="departmentName" placeholder="请输入应用名称" type="hidden" class="layui-input" maxlength="20"/>
+ <select id="departmentId" name="departmentId" lay-filter="departmentId" placeholder="选择一个应用" lay-filter="role_clients">
+ <option value="">-请选择-</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">职称</label>
+ <div class="layui-input-block">
+ <select id="doctorRankId" name="doctorRankId" lay-filter="doctorRankId" placeholder="选择一个职称" >
+ <option value="">-请选择-</option>
+ </select>
+ <input name="doctorRank" id='doctorRank' type="hidden" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">联系电话</label>
+ <div class="layui-input-block">
+ <input name="doctorTel" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">其它联系方式</label>
+ <div class="layui-input-block">
+ <input name="doctorOtherLink" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">医生的email</label>
+ <div class="layui-input-block">
+ <input name="doctorEmail" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">医生简介</label>
+ <div class="layui-input-block">
+ <input name="doctorAbout" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">医生的头像</label>
+ <div class="layui-input-block" id="demo">
+ <button type="button" class="layui-btn" id="phonto">
+ <i class="layui-icon"></i>上传图片
+ </button>
+ <input name="doctorLogo" id="doctorLogo-add" type="hidden" class="layui-input" maxlength="20"/>
+ <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
+ 预览图:
+ <div class="layui-upload-list" id="demo2"></div>
+ </blockquote>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label"> 是否置顶</label>
+ <div class="layui-input-block">
+ <input name="isTop" id="isTop-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+ <input name="isTop" id="isTop-fou" type="radio" value="false" title="否" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">是否医答</label>
+ <div class="layui-input-block">
+ <input name="isAnswer" id="isAnswer-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+ <input name="isAnswer" id="isAnswer-fou" type="radio" value="false" title="否" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">是否签约医生</label>
+ <div class="layui-input-block">
+ <input name="isSigning" id="isSigning-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+ <input name="isSigning" id="isSigning-fou" type="radio" value="false" title="否" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label"> 医生状态</label>
+ <div class="layui-input-block">
+ <input name="doctorState" id="doctorState-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+ <input name="doctorState" id="doctorState-fou" type="radio" value="false" title="否" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label" >登录帐号</label>
+ <div class="layui-input-block">
+ <input name="username" type="text" class="layui-input" maxlength="15"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label" >登录密码</label>
+ <div class="layui-input-block">
+ <input name="password" type="text" class="layui-input" maxlength="15"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label" >确认密码</label>
+ <div class="layui-input-block">
+ <input name="passwordSure" type="text" class="layui-input" maxlength="15"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label" >销售代表名称</label>
+ <div class="layui-input-block">
+ <input name="serverUserName" id="serverUserName-add" type="hidden" class="layui-input" maxlength="15"/>
+ <select id="serverUserId-add" name="serverUserId" lay-filter="serverUserId-add" placeholder="选择一个应用" lay-filter="role_clients">
+ <option value="">-请选择-</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item model-form-footer">
+ <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
+ <button class="layui-btn" id="sure" lay-filter="user-form-submit" lay-submit>保存</button>
+ </div>
+ </form>
+</script>
+
+
+<script>
+ layui.use(['form', 'table', 'laydate', 'util', 'config', 'upload', 'admin'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var config = layui.config;
+ var layer = layui.layer;
+ var util = layui.util;
+ var admin = layui.admin;
+ var upload = layui.upload;
+
+
+ //执行实例
+ var uploadInst = upload.render({
+ elem: '#phonto' //绑定元素
+ , url: '/upload/' //上传接口
+ , done: function (res) {
+ //上传完毕回调
+ }
+ , error: function () {
+ //请求异常回调
+ }
+ });
+ //医院数据绑定在弹框里
+ var hospital = "";
+
+ var department = "";
+ //销售代表
+ var user = "";
+ //职称
+ var doctorRank="";
+ // 获取应用列表
+ // layer.load(2);
+ admin.req('api-user/syshospital/findAll', JSON.stringify({ is_del: 0 }), function (data) {
+ layer.closeAll('loading');
+ if (0 === data.code) {
+ let selected = false;
+ clientsAll = data.data;
+ hospital = data.data;
+ $.each(data.data, function (index, item) {
+ if (config.clientId === item.clientId) {
+ selected = true;
+ } else {
+ selected = false;
+ }
+ //往下拉菜单里添加元素
+ $('#hospitalName-seach').append(new Option(item.hospitalName, item.id, false, selected));
+ // $('#hospitalId').append(new Option(item.hospitalName, item.id, false, selected));
+ form.render('select', 'app-form');
+ })
+ form.render();
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'Post');
+ //职称添加数据
+ var getZhiCheng = function () {
+ admin.req('api-user/sysdictionaries/findAll', JSON.stringify({ dictionariesClassId: "1248150699682988034" }), function (data) {
+ layer.closeAll('loading');
+ if (0 === data.code) {
+ let selected = false;
+ doctorRank = data.data;
+ $.each(data.data, function (index, item) {
+ if (config.clientId === item.clientId) {
+ selected = true;
+ } else {
+ selected = false;
+ }
+ //往下拉菜单里添加元素
+ $('#doctorRankId').append(new Option(item.dictionariesName, item.id, false, selected));
+ })
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'Post');
+ }
+ //获取销售代表
+ var getXiaoShouDaiBiao = function () {
+ admin.req('api-user/users/getThisUserOrganizationUser', {}, function (data) {
+ layer.closeAll('loading');
+ if (0 === data.code) {
+ user = data.data;
+ $.each(data.data, function (index, item) {
+ //往下拉菜单里添加元素
+ console.log(item.nickname)
+ $('#serverUserId-add').append(new Option(item.nickname, item.id, false, false));
+ })
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'get');
+ }
+
+ // 添加按钮点击事件
+ $('#doctor-btn-add').click(function () {
+ showEditModel_add(undefined, 2);
+ });
+ //时间格式
+ var laydate = layui.laydate;
+ //执行一个laydate实例
+ laydate.render({
+ elem: '#test1' //指定元素
+ });
+ laydate.render({
+ elem: '#test2' //指定元素
+ });
+
+ // 渲染表格
+ table.render({
+ elem: '#app-table',
+ url: config.base_server + 'api-user/sysdoctor',
+ method: 'GET',
+ headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
+ page: true,
+ cols: [[
+ { type: 'numbers' },
+ { field: 'hospitalName', width: 180, sort: true, title: '医院名称' },
+ { field: 'doctorName', width: 200, sort: true, title: '医生姓名' },
+ { field: 'doctorRank', width: 180, sort: true, title: '职称' },
+ { field: 'username', width: 300, sort: true, title: '登录帐号' },
+ { field: 'doctorTel', width: 300, sort: true, title: '联系方式' },
+ {
+ field: 'doctorState', width: 300, sort: true, title: '状态', templet: function (d) {
+ return d.doctorState ? "正式" : "试用"
+ }
+ },
+ {
+ field: 'isAnswer', width: 300, sort: true, title: '医答', templet: function (d) {
+ return d.isAnswer ? "是" : "否"
+ }
+ },
+ {
+ field: 'isSigning', width: 300, sort: true, title: '签约', templet: function (d) {
+ return d.isSigning ? "是" : "否"
+ }
+ },
+ { field: 'createTime', width: 250, sort: true, title: '时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy年MM月dd日 HH:mm:ss')}}</div>" },
+ { field: 'serverUserName', width: 100, sort: true, title: '销售代表' },
+ { width: 200, width: 300, align: 'center', toolbar: '#doctor-table-bar', sort: true, title: '操作' },
+ ]]
+ });
+
+ // 工具条点击事件
+ table.on('tool(app-table)', function (obj) {
+ var data = obj.data;
+ var layEvent = obj.event;
+ if (layEvent === 'detail') { // 查看详情
+ showEditModel(data, 1);
+ } else if (layEvent === 'reset') {
+ layer.confirm('确定重置此用户的密码吗?', function (i) {
+ layer.close(i);
+ layer.load(2);
+ admin.req('api-user/users/' + obj.data.userId + '/password', {}, function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ layer.msg(data.msg, { icon: 1, time: 500 });
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'PUT');
+ });
+ } else if (layEvent === 'edit') {
+ showEditModel(data, 3);
+ } else if (layEvent === 'del') {
+ layer.confirm('确定删除此用户吗?', function (i) {
+ layer.close(i);
+ layer.load(2);
+ admin.req('api-user/sysdoctor/' + obj.data.id, {}, function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ layer.msg(data.msg, { icon: 1, time: 500 });
+ table.reload('app-table', {});
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'delete');
+ });
+ } else if (layEvent === 'enable') {
+ layer.confirm('确定删除此用户吗?', function (i) {
+ layer.close(i);
+ layer.load(2);
+ admin.req('api-user/sysdoctor/enable', JSON.stringify({ id: obj.data.id }), function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ layer.msg(data.msg, { icon: 1, time: 500 });
+ table.reload('app-table', {});
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'post');
+ });
+ }
+ });
+
+ // 搜索按钮点击事件
+ $('#app-btn-search').click(function () {
+ var doctorState = $('#doctorState').val();
+ var hospitalName = $('#hospitalName-seach').val();
+ var doctorTel = $('#doctorTel').val();
+ var doctorName = $('#doctorName').val();
+ table.reload('app-table', { where: { doctorState: doctorState, hospitalId: hospitalName, doctorTel: doctorTel, doctorName: doctorName } });
+ });
+ // 显示新增弹窗
+ var showEditModel_add = function () {
+ layer.open({
+ type: 1,
+ title: '新增',
+ area: '450px',
+ offset: '120px',
+ content: $('#app-model-add').html(),
+ success: function () {
+ $('#app-form-add')[0].reset();
+ $('#app-form-add').attr('method', 'POST');
+ $('.layui-layer-content').css('overflow','auto');
+ //将医院的数据保存到下拉表
+ let selected = false;
+ //获取职称的
+ getZhiCheng();
+ //获取销售代表
+ getXiaoShouDaiBiao();
+ var upload = layui.upload;
+ //执行实例
+ upload.render({
+ elem: '#phonto',
+ url: config.base_server + 'api-file/files-anon',
+ accept: 'file',
+ auto: true,
+ headers: { "Authorization": "Bearer " + config.getToken().access_token },
+ before: function (obj) {
+ layer.load(); //上传loading
+ //预读本地文件示例,不支持ie8
+ obj.preview(function (index, file, result) {
+ $(".layui-upload-img").remove();
+ $('#demo2').append('<img src="' + result + '" width="50px" height="50px" alt="' + file.name + '" class="layui-upload-img">')
+ });
+ },
+ done: function (data) {
+ layer.closeAll('loading');
+ $("#doctorLogo-add").val(data.url);
+ },
+ error: function (data) {
+ layer.closeAll('loading');
+ }
+ });
+ $.each(hospital, function (index, item) {
+ if (config.clientId === item.clientId) {
+ selected = true;
+ } else {
+ selected = false;
+ }
+ console.log(item)
+ $('#hospitalName-add').append(new Option(item.hospitalName, item.id, false, selected));
+ })
+ form.render();
+ }
+ });
+ };
+ // 显示编辑弹窗
+ var showEditModel = function (data, flag) {
+ var title = "";
+ if (flag == 1) {
+ title = "查看详情";
+ } else if (flag == 2) {
+ title = "新增";
+ } else if (flag == 3) {
+ title = "编辑";
+ }
+
+ layer.open({
+ type: 1,
+ title: title,
+ area: '450px',
+ offset: '120px',
+ content: $('#app-model').html(),
+ success: function () {
+ $('#app-form')[0].reset();
+ $('#app-form').attr('method', 'POST');
+ //将医院的数据保存到下拉表
+ let selected = false;
+ $.each(hospital, function (index, item) {
+ if (config.clientId === item.clientId) {
+ selected = true;
+ } else {
+ selected = false;
+ }
+ //往下拉菜单里添加元素
+ $('#hospitalId').append(new Option(item.hospitalName, item.id, false, selected));
+ })
+ //将科室的数据绑定到里面
+ if (flag != 2) {
+ getdepartment(data.hospitalId);
+ }
+ if (data) {
+ if (data.isAnswer) {
+ $("#isAnswer-shi").attr('checked', true);
+ } else {
+ $("#isAnswer-fou").attr('checked', true);
+ }
+
+ if (data.isSigning) {
+ $("#isSigning-shi").attr('checked', true);
+ } else {
+ $("#isSigning-fou").attr('checked', true);
+ }
+
+ if (data.isTop) {
+ $("#isTop-shi").attr('checked', true);
+ } else {
+ $("#isTop-fou").attr('checked', true);
+ }
+
+ if (data.doctorState) {
+ $("#doctorState-shi").attr('checked', true);
+ } else {
+ $("#doctorState-fou").attr('checked', true);
+ }
+ form.val('app-form', data);
+ if (flag == 1) {
+ //将确定隐藏 doctorState-shi
+ $("#sure").hide();
+ //将所有的设置为只读
+ $('#app-form').find('input').attr('readonly', true);
+ $('#app-form').find('select,input[type="radio"]').attr('disabled', true);
+ } else {
+ $("#sure").show();
+ $('#app-form').attr('method', 'POST');
+ }
+ }
+ }
+ });
+ };
+ // 表单提交事件
+ form.on('submit(user-form-submit)', function (data) {
+ layer.load(2);
+ data.field.hospitalId = parseInt(data.field.hospitalId);
+ admin.req('api-user/sysdoctor', JSON.stringify(data.field), function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ // layer.msg(data.msg, { icon: 1, time: 500 });
+ layer.closeAll();
+ table.reload('app-table', {});
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, "POST");
+ return false;
+ });
+ //更新 点击医院触发的事件
+ form.on('select(getdepartment)', function (data) {
+ //将医院名称赋值
+ $.each(hospital, function (index, item) {
+ if (item.id == data.value) {
+ $('#hospitalName').val(item.hospitalName);
+ }
+ })
+ //
+ getdepartment(data.value);
+ });
+ //新增----点击医院触发的事件
+ form.on('select(getdepartment-add)', function (data) {
+ //将医院名称赋值
+ $.each(hospital, function (index, item) {
+ if (item.id == data.value) {
+ $('#hospitalId-add').val(item.hospitalName);
+ console.log($('#hospitalId-add').val())
+ }
+ })
+ //
+ getdepartment(data.value);
+ });
+ //将新增 中的 serverUserName 赋值
+ form.on('select(serverUserId-add)', function (data) {
+ //将医院名称赋值
+ $.each(user, function (index, item) {
+ if (item.id == data.value) {
+ $('#serverUserName-add').val(item.nickname);
+ console.log($('#serverUserName-add').val())
+ }
+ })
+ //
+ });
+ //新增 点击职称的触发事件
+ form.on('select(doctorRankId)', function (data) {
+ //将部门名称赋值
+
+ $.each(doctorRank, function (index, item) {
+ if (item.id == data.value) {
+ console.log(12312312312)
+ $('#doctorRank').val(item.dictionariesName);
+ console.log($('#doctorRank').val())
+ }
+ })
+ });
+ //新增 和 更新 科室触发的事件
+ form.on('select(departmentId)', function (data) {
+ //将部门名称赋值
+ $.each(department, function (index, item) {
+ if (item.id == data.value) {
+ $('#departmentName').val(item.departmentName);
+ }
+ })
+ //
+ // getdepartment(data.value);
+ });
+ //获取科室
+ var getdepartment = function (data) {
+ admin.req('api-user/sysdepartment/findListByHospitalId', { id: data }, function (data) {
+ layer.closeAll('loading');
+ if (0 === data.code) {
+ department = data.data;
+ $('#departmentId').empty();
+ if(data.data.length>0){
+ $('#departmentName').val(data.data[0].departmentName);
+ }
+ $.each(data.data, function (index, item) {
+ //往下拉菜单里添加元素
+ $('#departmentId').append(new Option(item.departmentName, item.id, false, false));
+ form.render('select', 'app-form');
+ })
+ form.render();
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'get');
+ }
+ });
+</script>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html
new file mode 100644
index 0000000..57dbde3
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html
@@ -0,0 +1,153 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">用户反馈</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#!console">首页</a>
+ <a><cite>用户反馈</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar"> 
+ <input id="user-search-value" class="layui-input search-input" type="text" placeholder="输入医生姓名" /> 
+ <input type="text" name="date" id="datebegin" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off"
+ class="layui-input search-input">
+ 至
+ <input type="text" name="date" id="dateend" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off"
+ class="layui-input search-input">  
+ <button id="user-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>
+ </div>
+
+ <table class="layui-table" id="feedback-table" lay-filter="feedback-table"></table>
+ </div>
+</div>
+
+<!-- 表格操作列 -->
+<script type="text/html" id="feeedback-table-bar">
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
+</script>
+<!-- 表格状态列 -->
+<script type="text/html" id="user-tpl-state">
+ <input type="checkbox" lay-filter="feedback-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="未处理|已处理"
+ {{d.enabled==true?'checked':''}}/>
+</script>
+<!-- 弹窗内容 -->
+<script type="text/html" id="feedback-detail">
+ <div class="layui-card-body" id="feedback-detail-note">
+ </div>
+</script>
+<script>
+ layui.use(['table', 'util', 'admin', 'laydate', 'config', 'form'], function () {
+ let table = layui.table;
+ let util = layui.util;
+ let admin = layui.admin;
+ let form = layui.form;
+ let laydate = layui.laydate;
+ let config = layui.config;
+
+ //日期
+ laydate.render({
+ elem: '#datebegin'
+ });
+ laydate.render({
+ elem: '#dateend'
+ });
+ // 渲染表格
+ var tableLoad = table.render({
+ elem: '#feedback-table',
+ url: config.base_server + 'api-opration/sysfeedback',
+ method: 'GET',
+ headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
+ //where: {tenantId: config.clientId},
+ page: true,
+ cols: [[
+ { field: 'doctorName', width: 150, title: '医生姓名' },
+ { field: 'doctorTel', width: 200, title: '联系电话' },
+ { field: 'hospitalName', width: 300, title: '医院' },
+ { field: 'departmentName', width: 180, title: '科室' },
+ { field: 'enabled', width: 150, templet: '#user-tpl-state', sort: true, title: '状态' },
+ { field: 'createTime', width: 200, sort: true, title: '创建时间' },
+ { align: 'center', width: 200, toolbar: '#feeedback-table-bar', title: '操作' }
+ ]]
+ });
+
+ // 修改状态
+ form.on('switch(feedback-tpl-state)', function (obj) {
+ layer.load(2);
+ admin.req('api-opration/sysfeedback/updateEnabled', {
+ id: obj.elem.value,
+ enabled: obj.elem.checked ? true : false
+ }, function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ layer.msg(data.msg, { icon: 1, time: 500 });
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ $(obj.elem).prop('checked', !obj.elem.checked);
+ form.render('checkbox');
+ }
+ }, 'GET');
+ });
+
+ // 工具条点击事件
+ table.on('tool(feedback-table)', function (obj) {
+ if (obj.event === 'del') { // 删除
+ layer.confirm('确定要删除吗?', function (i) {
+ layer.close(i);
+ layer.load(2);
+ admin.req('api-opration/sysfeedback/' + obj.data.id, {}, function (data) {
+ layer.closeAll('loading');
+ layer.msg(data.msg, { icon: 1, time: 500 }, function () {
+ tableLoad();
+ });
+ obj.del();
+ }, 'DELETE');
+ });
+ }
+ else if (obj.event == 'detail') {
+ $.ajax({
+ type: "GET",
+ url: config.base_server + "api-opration/sysfeedback/" + obj.data.id,
+ success: function (data) {
+ if (data != null) {
+ layer.open({
+ type: 1,
+ title: '详情',
+ area: ['500px', '300px'],
+ offset: 'auto',
+ content: $("#feedback-detail").html(),
+ success: function (obj) {
+ $("#feedback-detail-note").html(data.data.feedbackNote);
+ }
+ });
+ }
+ else {
+ layer.msg('未找到相关数据', { icon: 1, time: 500 });
+ }
+ },
+ beforeSend: function (xhr) {
+ xhr.setRequestHeader("Authorization", "Bearer " + config.getToken().access_token);
+ xhr.setRequestHeader("Content-Type", "application/json")
+ }
+ });
+ }
+ });
+
+ // 搜索按钮点击事件
+ $('#user-btn-search').click(function () {
+ var doctorName = $('#user-search-value').val();
+ var datebegin = $('#datebegin').val();
+ var dateend = $('#dateend').val();
+ if (strUtil.isEmpty(datebegin) && !strUtil.isEmpty(dateend)) {
+ datebegin = dateUtil.getNowDate();
+ $('#datebegin').val(datebegin);
+ }
+ if (!strUtil.isEmpty(datebegin) && strUtil.isEmpty(dateend)) {
+ dateend = dateUtil.getNowDate();
+ $('#dateend').val(dateend);
+ }
+ table.reload('feedback-table', { where: { doctorName: doctorName, createTime: datebegin, updateTime: dateend } });
+ });
+
+ });
+</script>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
new file mode 100644
index 0000000..6a3ac4b
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
@@ -0,0 +1,236 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">医院管理</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#!home_console">首页</a>
+ <a><cite>医院管理</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ <input id="app-edit-search" class="layui-input search-input" type="text" placeholder="请输入标题" /> 
+ <input type="text" class="layui-input search-input" id="test1"> 至 <input type="text"
+ class="layui-input search-input" id="test2">  
+ <select id="role_clients" placeholder="选择一个应用" lay-filter="role_clients">
+ <option value="">-请选择-</option>
+ </select>
+ <button id="app-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>
+ </div>
+
+ <!-- 数据表格 -->
+ <table class="layui-table" id="app-table" lay-filter="app-table"></table>
+ </div>
+</div>
+
+<!-- 表格操作列 -->
+<script type="text/html" id="businessRecords-table-bar">
+ <select>
+ <option></option
+ </select>
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a>
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
+ <a class="layui-btn layui-btn-xs" lay-event="reset">重置密码</a>
+ <a class="layui-btn layui-btn-xs" lay-event="del">删除</a>
+</script>
+
+<!-- 表单弹窗 -->
+<script type="text/html" id="app-model">
+ <form id="app-form" lay-filter="app-form" class="layui-form model-form">
+ <input name="id" type="hidden"/>
+ <div class="layui-form-item">
+ <label class="layui-form-label">记录标题</label>
+ <div class="layui-input-block">
+ <input name="recordTitle" disabled="true" type="text" class="layui-input" maxlength="20"
+ lay-verify="required" required/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">操作人姓名</label>
+ <div class="layui-input-block">
+ <input name="userName" disabled="true" placeholder="请输入应用名称" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">应用名称</label>
+ <div class="layui-input-block">
+ <input name="appName" disabled="true" type="text" class="layui-input" maxlength="20"
+ lay-verify="required" required />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">ip</label>
+ <div class="layui-input-block">
+ <input name="recordIp" disabled="true" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">业务操作记录</label>
+ <div class="layui-input-block">
+ <input name="recordDetail" disabled="true" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item model-form-footer">
+ <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">确定</button>
+ </div>
+ </form>
+</script>
+
+
+<script>
+ layui.use(['form', 'table', 'laydate', 'util', 'config', 'admin'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var config = layui.config;
+ var layer = layui.layer;
+ var util = layui.util;
+ var admin = layui.admin;
+
+ // 获取应用列表
+ // layer.load(2);
+ admin.req('api-user/users/findAll', {}, function (data) {
+ layer.closeAll('loading');
+ if (0 === data.code) {
+ let selected = false;
+ clientsAll = data.data;
+ $.each(data.data, function (index, item) {
+ if (config.clientId === item.clientId) {
+ selected = true;
+ } else {
+ selected = false;
+ }
+ //往下拉菜单里添加元素
+ $('#role_clients').append(new Option(item.username, item.id, false, selected));
+ })
+ form.render();
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'Post');
+
+ //时间格式
+ var laydate = layui.laydate;
+ //执行一个laydate实例
+ laydate.render({
+ elem: '#test1' //指定元素
+ });
+ laydate.render({
+ elem: '#test2' //指定元素
+ });
+
+ // 渲染表格
+ table.render({
+ elem: '#app-table',
+ url: config.base_server + 'api-user/syshospital',
+ method: 'GET',
+ headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
+ page: true,
+ cols: [[
+ { type: 'numbers' },
+ { field: 'hospitalName', width: 180, sort: true, title: '医院名称' },
+ { field: 'hospitalTypeName', width: 200, sort: true, title: '科室' },
+ { field: 'serverUserName', width: 180, sort: true, title: '联系人' },
+ { field: 'hospitalTel', width: 300, sort: true, title: '联系方式' },
+ { field: 'time', width: 300, sort: true, title: '服务到期时间' },
+ { field: 'enabled', width: 300, sort: true, title: '状态' ,templet:function (d) {
+ return d.hospitalState==0?"试用":"正式"
+ }},
+ { field: 'isScreen', width: 300, sort: true, title: '筛查',templet:function (d) {
+ return d.isScreen?"是":"否"
+ } },
+ { field: 'createTime', width: 300, sort: true, title: '创建时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy/MM/dd')}}</div>" },
+ { field: 'id', width: 250, align: 'center', toolbar: '#businessRecords-table-bar', sort: true, title: '操作' },// 0就诊数据 1筛查
+ ]]
+ });
+
+ // 工具条点击事件
+ table.on('tool(app-table)', function (obj) {
+ var data = obj.data;
+ var layEvent = obj.event;
+ if (layEvent === 'detail') { // 查看详情
+ showEditModel(data);
+ }
+ });
+
+ // 搜索按钮点击事件
+ $('#app-btn-search').click(function () {
+ var userId = $('#role_clients').val();
+ var key = $('#app-edit-search').val();
+ var startTime = $('#test1').val();
+ var endTime = $('#test2').val();
+ if (startTime != null && endTime != null) {
+ var flag = compareDate(startTime, endTime);
+ if (!flag) {
+ layer.msg('结束时间不得小于开始时间');
+ return;
+ }
+ }
+
+ table.reload('app-table', { where: { recordTitle: key, startTime: startTime, endTime: endTime, userId: userId } });
+ });
+ //比较日期大小
+ function compareDate(logintime, logouttime) {
+ var arys1 = new Array();
+ var arys2 = new Array();
+ if (logintime != null && logouttime != null) {
+ arys1 = logintime.split('-');
+ var logindate = new Date(arys1[0], parseInt(arys1[1] - 1), arys1[2]);
+ arys2 = logouttime.split('-');
+ var logoutdate = new Date(arys2[0], parseInt(arys2[1] - 1), arys2[2]);
+ if (logindate > logoutdate) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ }
+ // 导出
+ $('#app-btn-export').click(function () {
+ var url = config.base_server + 'api-user/dataneed/export';
+ var xhr = new XMLHttpRequest();
+ xhr.open('POST', url, true);
+ xhr.responseType = "blob";
+ xhr.setRequestHeader("client_type", "DESKTOP_WEB");
+ xhr.setRequestHeader("Authorization", "Bearer " + config.getToken().access_token);
+ xhr.onload = function () {
+ if (this.status == 200) {
+ var fileName = "user.xlsx";
+ var blob = this.response;
+ var a = document.createElement('a');
+ a.innerHTML = fileName;
+ // 指定生成的文件名
+ a.download = fileName;
+ a.href = URL.createObjectURL(blob);
+ document.body.appendChild(a);
+ var evt = document.createEvent("MouseEvents");
+ evt.initEvent("click", false, false);
+ a.dispatchEvent(evt);
+ document.body.removeChild(a);
+ }
+ }
+ xhr.send();
+ });
+
+ // // 显示编辑弹窗
+ var showEditModel = function (data) {
+ layer.open({
+ type: 1,
+ title: '查看详情',
+ area: '450px',
+ offset: '120px',
+ content: $('#app-model').html(),
+ success: function () {
+ $('#app-form')[0].reset();
+ $('#app-form').attr('method', 'POST');
+ if (data) {
+ $("input[name='clientId']").attr('disabled', true);
+ $("input[name='clientId']").attr('class', "layui-input layui-disabled");
+ $("input[name='webServerRedirectUri']").attr('disabled', true);
+ $("input[name='webServerRedirectUri']").attr('class', "layui-input layui-disabled");
+ form.val('app-form', data);
+ // $('#app-form').attr('method', 'POST');
+ }
+ }
+ });
+ };
+ });
+</script>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product.html
new file mode 100644
index 0000000..53c6ebb
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product.html
@@ -0,0 +1,133 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">产品管理</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#!console">首页</a>
+ <a><cite>产品管理</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar"> 
+ <input id="product-search-value" class="layui-input search-input" type="text" placeholder="输入产品名" /> 
+ <button id="product-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>
+ <button id="product-btn-add" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button>
+ </div>
+ <table class="layui-table" id="product-table" lay-filter="product-table"></table>
+ </div>
+</div>
+<!-- 表格操作列 -->
+<script type="text/html" id="product-table-bar">
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
+</script>
+<!-- 表格状态列 -->
+<script type="text/html" id="product-tpl-state">
+ <input type="checkbox" lay-filter="product-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="未处理|已处理"
+ {{d.enabled==true?'checked':''}}/>
+</script>
+<!-- 弹窗内容 -->
+<script type="text/html" id="feedback-detail">
+
+</script>
+
+<script>
+ layui.use(['table', 'util', 'admin', 'config', 'form'], function () {
+ let table = layui.table;
+ let util = layui.util;
+ let admin = layui.admin;
+ let form = layui.form;
+ let laydate = layui.laydate;
+ let config = layui.config;
+
+ // 渲染表格
+ var renderTable = function () {
+ layer.load(2);
+ table.render({
+ elem: '#product-table',
+ url: config.base_server + 'api-opration/product',
+ method: 'GET',
+ headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
+ page: true,
+ cols: [[
+ { field: 'proName', width: 300, title: '产品名称' },
+ {
+ field: 'proTime', width: 150, title: '有效时长', templet: function (d) {
+ switch (d.proTimeUnit) {
+ case 0:
+ return d.proTime + "天";
+ break;
+ case 1:
+ return d.proTime + "月";
+ break;
+ case 2:
+ return d.proTime + "年";
+ break;
+ }
+ }
+ },
+ { field: 'proPrice', width: 100, title: '价格' },
+ { field: 'recordCount', width: 180, title: '报告数' },
+ { field: 'ailightCount', width: 180, title: '读片量' },
+ { field: 'enabled', width: 150, templet: '#product-tpl-state', sort: true, title: '状态' },
+ { field: 'createTime', width: 200, sort: true, title: '创建时间' },
+ { align: 'center', width: 100, toolbar: '#product-table-bar', title: '操作' }
+ ]],
+ done: function () {
+ layer.closeAll('loading');
+ }
+ });
+ }
+ renderTable();
+
+ // 修改状态
+ form.on('switch(product-tpl-state)', function (obj) {
+ layer.load(2);
+ admin.req('api-opration/product/updateEnabled', {
+ id: obj.elem.value,
+ enabled: obj.elem.checked ? true : false
+ }, function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ layer.msg(data.msg, { icon: 1, time: 500 });
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ $(obj.elem).prop('checked', !obj.elem.checked);
+ form.render('checkbox');
+ }
+ }, 'GET');
+ });
+
+ // 工具条点击事件
+ table.on('tool(product-table)', function (obj) {
+ if (obj.event === 'del') { // 删除
+ layer.confirm('确定要删除吗?', function (i) {
+ layer.close(i);
+ layer.load(2);
+ admin.req('api-opration/product/' + obj.data.id, {}, function (data) {
+ layer.closeAll('loading');
+ layer.msg(data.msg, { icon: 1, time: 500 }, function () {
+
+ renderTable();
+ });
+ obj.del();
+ }, 'DELETE');
+ });
+ }
+ });
+
+ // 搜索按钮点击事件
+ $('#product-btn-search').click(function () {
+ var proName = $('#product-search-value').val();
+ table.reload('product-table', { where: { proName: proName } });
+ });
+ // 添加按钮点击事件
+ $('#product-btn-add').click(function () {
+ admin.popupCenter({
+ title: '添加产品',
+ path: 'pages/opration/product_form.html',
+ finish: function () {
+ renderTable();
+ }
+ })
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product_form.html
new file mode 100644
index 0000000..55aa09e
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product_form.html
@@ -0,0 +1,101 @@
+<form id="product-form" lay-filter="product-form" class="layui-form model-form" method="POST">
+ <div class="layui-form-item">
+ <label class="layui-form-label">产品类型</label>
+ <div class="layui-input-block">
+ <input type="radio" name="proType" value="1" title="正式" checked />
+ <input type="radio" name="proType" value="0" title="试用" />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">产品名称</label>
+ <div class="layui-input-block">
+ <input name="proName" placeholder="请输入产品名称" type="text" class="layui-input" maxlength="50"
+ lay-verify="required" required />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">有效时长</label>
+ <div class="layui-input-block">
+ <input name="proTime" type="text" class="layui-input" maxlength="4" lay-verify="required|number" required />
+ <select name="proTimeUnit" id="proTimeUnit">
+ <option value="0">天</option>
+ <option value="1">月</option>
+ <option value="2">年</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">价格</label>
+ <div class="layui-input-block">
+ <input name="proPrice" type="text" class="layui-input" maxlength="8" lay-verify="required|number" required />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">报告量</label>
+ <div class="layui-input-block">
+ <input name="recordCount" type="text" class="layui-input" maxlength="6" lay-verify="required|number"
+ required />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">读片量</label>
+ <div class="layui-input-block">
+ <input name="ailightCount" type="text" class="layui-input" maxlength="6" lay-verify="required|number"
+ required />
+ </div>
+ </div>
+ <div class="layui-form-item model-form-footer">
+ <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
+ <button class="layui-btn" lay-filter="product-form-submit" lay-submit>保存</button>
+ </div>
+</form>
+
+<script>
+ layui.use(['form', 'table', 'util', 'config', 'admin', 'formSelects'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var config = layui.config;
+ var layer = layui.layer;
+ var util = layui.util;
+ var admin = layui.admin;
+ var formSelects = layui.formSelects;
+ var clientsAll = null;
+ // 获取应用列表
+ layer.load(2);
+ admin.req('api-uaa/clients/all', {}, function (data) {
+ layer.closeAll('loading');
+ if (0 === data.code) {
+ let selected = false;
+ clientsAll = data.data;
+ $.each(data.data, function (index, item) {
+ if (config.clientId === item.clientId) {
+ selected = true;
+ } else {
+ selected = false;
+ }
+ //往下拉菜单里添加元素
+ $('#tenantId').append(new Option(item.clientName, item.clientId, false, selected));
+ })
+ form.render();
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'GET');
+ // 表单提交事件
+ form.on('submit(product-form-submit)', function (data) {
+ layer.load(2);
+ admin.req('api-opration/product', JSON.stringify(data.field), function (data) {
+ if (data.code === 0) {
+ layer.closeAll('loading');
+ layer.msg(data.msg, { icon: 1, time: 500 });
+ admin.finishPopupCenter();
+ } else {
+ layer.closeAll('loading');
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, $('#product-form').attr('method'));
+ return false;
+ });
+
+ });
+</script>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/sysdictionaries.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/sysdictionaries.html
new file mode 100644
index 0000000..cc81dd6
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/sysdictionaries.html
@@ -0,0 +1,285 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">字典管理</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#!home_console">首页</a>
+ <a><cite>字典管理</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ <input id="app-edit-search" class="layui-input search-input" type="text" placeholder="按名称" /> 
+ <button id="app-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>
+ <button id="user-btn-add" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button>
+ </div>
+
+ <!-- 数据表格 -->
+ <table class="layui-table" id="app-table" lay-filter="app-table"></table>
+ </div>
+</div>
+
+<!-- 表格操作列 -->
+<script type="text/html" id="dictionaries-table-bar">
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
+ <a class="layui-btn layui-btn-xs" lay-event="del">删除</a>
+</script>
+<!-- 表格状态列 -->
+<script type="text/html" id="dictionaries-tpl-state">
+ <input type="checkbox" lay-filter="dictionaries-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
+ {{d.enabled==1?'checked':''}}/>
+</script>
+
+<!-- 表单弹窗 -->
+<script type="text/html" id="app-model">
+ <style>
+ .layui-layer-setwin {
+ position: absolute;
+ right: 15px;
+ *right: 0;
+ top: -29px;
+ font-size: 0;
+ line-height: initial;
+}
+ </style>
+ <form id="app-form" lay-filter="app-form" class="layui-form model-form">
+ <input name="id" type="hidden"/>
+ <div class="layui-form-item">
+ <label class="layui-form-label">字典值</label>
+ <div class="layui-input-block">
+ <input name="dictionariesName" placeholder="字典值" type="text" class="layui-input" maxlength="20"
+ lay-verify="required" required/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">字典key</label>
+ <div class="layui-input-block">
+ <input name="dictionariesKey" placeholder="字典key" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">字段排序</label>
+ <div class="layui-input-block">
+ <input name="dictionariesOrder" placeholder="请输入数字" type="text" class="layui-input" maxlength="20"
+ lay-verify="required" required />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">字典类型</label>
+ <div class="layui-input-block">
+ <input name="zidian_or_fenlei" id="fenlei" type="radio" value="1" lay-filter="resourceType" onchange="ccc" title="分类" class="layui-input" maxlength="20"/>
+ <input name="zidian_or_fenlei" id="zidian " type="radio" value="0" checked lay-filter="resourceType" title="字典" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">状态</label>
+ <div class="layui-input-block">
+ <input name="enabled" id="enabled1" type="radio" checked value="1" title="启用" class="layui-input" maxlength="20"/>
+ <input name="enabled" id="enabled2" type="radio" value="0" title="停用" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">所属类型</label>
+ <div class="layui-input-block">
+ <select id="role_clients" name="dictionariesClassId" placeholder="选择一个应用" lay-filter="role_clients">
+ <option value="">-请选择-</option>
+ </select>
+ </div>
+ <div class="layui-form-item model-form-footer zd-btn-class" style="margin-top:30px;">
+ <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
+ <button class="layui-btn" lay-filter="user-form-submit" lay-submit>保存</button>
+ </div>
+ </form>
+</script>
+
+
+<script>
+ layui.use(['form', 'table', 'laydate', 'util', 'config', 'admin'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var config = layui.config;
+ var layer = layui.layer;
+ var util = layui.util;
+ var admin = layui.admin;
+
+ //时间格式
+ var laydate = layui.laydate;
+ //执行一个laydate实例
+ laydate.render({
+ elem: '#test1' //指定元素
+ });
+ laydate.render({
+ elem: '#test2' //指定元素
+ });
+
+ // 渲染表格
+ table.render({
+ elem: '#app-table',
+ url: config.base_server + 'api-user/sysdictionaries',
+ method: 'GET',
+ headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
+ page: true,
+ cols: [[
+ { type: 'numbers' },
+ {
+ field: 'dictionariesClassId', width: 180, sort: true, title: '字典类型', templet: function (d) {
+ return d.dictionariesClassId == undefined ? "分类" : "字典"
+ }
+ },
+ { field: 'dictionariesClassName', width: 200, sort: true, title: '字典分类' },
+ { field: 'dictionariesKey', width: 180, sort: true, title: '字典Key' },
+ { field: 'dictionariesName', width: 264, sort: true, title: '字典值' },
+ { field: 'id', width: 250, align: 'center', toolbar: '#dictionaries-tpl-state', sort: true, title: '状态' },// 0就诊数据 1筛查
+ { field: 'createTime', width: 250, sort: true, title: '创建时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy年MM月dd日 HH:mm:ss')}}</div>" },
+ { field: 'id', width: 250, align: 'center', toolbar: '#dictionaries-table-bar', sort: true, title: '操作' },// 0就诊数据 1筛查
+ ]]
+ });
+
+ // 修改菜单类型
+ let changeType = function (type) {
+
+ if (type == 1) {
+ $('#role_clients').attr('disabled', true);
+ $('#role_clients').val("");
+ } else {
+ $('#role_clients').attr('disabled', false);
+ }
+ form.render('select', 'app-form');
+ };
+
+ // 工具条点击事件
+ table.on('tool(app-table)', function (obj) {
+ var data = obj.data;
+ var layEvent = obj.event;
+ if (layEvent === 'edit') { // 查看详情
+ showEditModel(data);
+ } else if (layEvent === 'del') {
+ doDelete(data);
+ }
+ });
+ function ccc() {
+ console.log(11111111)
+ }
+ // 删除
+ var doDelete = function (obj) {
+ layer.confirm('确定删除此用户吗?', function (i) {
+ layer.close(i);
+ layer.load(2);
+ admin.req('api-user/sysdictionaries/' + obj.id, {}, function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ layer.msg(data.msg, { icon: 1, time: 500 });
+ table.reload('app-table', {});
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'delete');
+ });
+ };
+
+ // 获取应用列表
+ var getdata = function () {
+ var co = $('#role_clients');
+ console.log(11111111111111);
+ console.log(co);
+ admin.req('api-user/sysdictionaries/findAll', JSON.stringify({ dictionariesClassIdIsNull: "str" }), function (data) {
+ layer.closeAll('loading');
+ if (0 === data.code) {
+ console.log(123132132132132132)
+ let selected = false;
+ clientsAll = data;
+ $.each(data.data, function (index, item) {
+ //往下拉菜单里添加元素
+ // console.log(JSON.stringify(item))
+ $('#role_clients').append(new Option(item.dictionariesName, item.id, false, selected));
+ })
+ form.render();
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'Post');
+ }
+
+
+ // 搜索按钮点击事件
+ $('#app-btn-search').click(function () {
+ var key = $('#app-edit-search').val();
+ table.reload('app-table', { where: { dictionariesName: key } });
+ });
+ // 修改role状态
+ form.on('switch(dictionaries-tpl-state)', function (obj) {
+ layer.load(2);
+ admin.req('api-user/sysdictionaries/updateEnabled', {
+ id: obj.elem.value,
+ enabled: obj.elem.checked ? 1 : 0
+ }, function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ // layer.msg(data.msg, { icon: 1, time: 500 });
+ table.reload('app-table', {});
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ $(obj.elem).prop('checked', !obj.elem.checked);
+ form.render('checkbox');
+ }
+ }, 'GET');
+ });
+ // // 显示编辑弹窗
+ var showEditModel = function (data) {
+
+ layer.open({
+ type: 1,
+ title: data ? '修改用户' : '添加用户',
+ area: '400px',
+ offset: '200px',
+ content: $('#app-model').html(),
+ success: function () {
+ $('#app-form')[0].reset();
+ $('#app-form').attr('method', 'POST');
+ // 将数据绑定到下拉框
+ getdata();
+ if (data) {
+ if (data.enabled == 1) {
+ $("#enabled1").attr('checked', true);
+ } else {
+ $("#enabled2").attr('checked', true);
+ }
+ if (data.dictionariesClassId == undefined || data.dictionariesClassId == "") {
+ $("#fenlei").attr('checked', true);
+ $("#role_clients").attr('disabled', true);
+ } else {
+ $("#zidian").attr('checked', true);
+ }
+ form.val('app-form', data);
+ }
+ }
+ });
+ };
+ // 添加按钮点击事件
+ $('#user-btn-add').click(function () {
+ showEditModel();
+ });
+ //
+ // 表单提交事件
+ form.on('submit(user-form-submit)', function (data) {
+ layer.load(2);
+ if (data.field.dictionariesClassId == "") {
+ data.field.dictionariesClassId = null;
+ }
+ admin.req('api-user/sysdictionaries', JSON.stringify(data.field), function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ // layer.msg(data.msg, { icon: 1, time: 500 });
+ layer.closeAll();
+ table.reload('app-table', {});
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, "POST");
+ return false;
+ });
+
+ form.on("radio(resourceType)", function (data) {
+ changeType(data.value);
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/sysArea.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/sysArea.html
new file mode 100644
index 0000000..2782d31
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/sysArea.html
@@ -0,0 +1,187 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">地区管理</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#!console">首页</a>
+ <a><cite>地区管理</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar"> 
+ <input id="area-search-value" class="layui-input search-input" type="text" placeholder="输入地区名称"/> 
+ <button id="area-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>
+ <button id="area-btn-add" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button>
+ <button id="area-btn-expand" class="layui-btn">全部展开</button>
+ <button id="area-btn-fold" class="layui-btn">全部折叠</button>
+ </div>
+
+ <table class="layui-table" id="area-table" lay-filter="area-table"></table>
+ </div>
+</div>
+
+<!-- 表格操作列 -->
+<script type="text/html" id="area-table-bar">
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">编辑</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
+</script>
+
+<!-- 表格状态列 -->
+<script type="text/html" id="area-tpl-state">
+ <input type="checkbox" lay-filter="area-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
+ {{d.enabled==true?'checked':''}}/>
+</script>
+
+<script>
+ layui.use(['form', 'util', 'config', 'admin','treetable','table'],function () {
+ let layer = layui.layer;
+ let admin = layui.admin;
+ let treetable = layui.treetable;
+ let config = layui.config;
+ let form = layui.form;
+ let table=layui.table;
+
+ // 渲染表格
+ var renderTable = function (param) {
+ layer.load(2);
+ if (param) {
+ param.access_token = config.getToken().access_token;
+ } else {
+ param = {
+ access_token: config.getToken().access_token
+ };
+ }
+ treetable.render({
+ treeColIndex: 0,
+ treeSpid: -1,
+ treeIdName: 'id',
+ treePidName: 'areaParentId',
+ elem: '#area-table',
+ url: config.base_server + 'api-user/sysarea/findAlls',
+ where: param,
+ page: false,
+ cols: [[
+ {field: 'areaName', minWidth: 200, title: '区域名称'},
+ {field: 'areaCh', align: 'center', title: '拼音'},
+ {field: 'areaShortname', minWidth: 80, title: '简称'},
+ {field: 'areaCitycode', title: '区号'},
+ {field: 'areaZipcode', title: '邮编'},
+ {field: 'sort', width: 80, align: 'center', title: '排序号'},
+ {
+ field: 'areaLeveltype', width: 80, align: 'center', templet: function (d) {
+ switch(d.areaLeveltype){
+ case 0:
+ return '<span class="layui-badge layui-bg-red">国家</span>';
+ break;
+ case 1:
+ return '<span class="layui-badge layui-bg-blue">省/行政区</span>';
+ break;
+ case 2:
+ return '<span class="layui-badge layui-bg-gray">市</span>';
+ break;
+ case 3:
+ return '<span class="layui-badge layui-bg-green">区/县</span>';
+ break;
+ }
+ }, title: '级别'
+ },
+ {field: 'enabled', width: 100,sort: true, templet: '#area-tpl-state', title: '状态'},
+ {templet: '#area-table-bar', width: 120, align: 'center', title: '操作'}
+ ]],
+ done: function () {
+ layer.closeAll('loading');
+ }
+ });
+ };
+ renderTable();
+
+ // 修改状态
+ form.on('switch(area-tpl-state)', function (obj) {
+ layer.load(2);
+ admin.req('api-user/sysarea/updateEnabled', {
+ id: obj.elem.value,
+ enabled: obj.elem.checked ? true : false
+ }, function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ layer.msg(data.msg, {icon: 1, time: 500});
+ } else {
+ layer.msg(data.msg, {icon: 2, time: 500});
+ $(obj.elem).prop('checked', !obj.elem.checked);
+ form.render('checkbox');
+ }
+ }, 'GET');
+ });
+
+ // 工具条点击事件
+ table.on('tool(area-table)', function (obj) {
+ if (obj.event === 'del') { // 删除
+ layer.confirm('确定要删除吗?', function (i) {
+ layer.close(i);
+ layer.load(2);
+ admin.req('api-user/sysarea/'+obj.data.id, {}, function (data) {
+ layer.closeAll('loading');
+ layer.msg(data.msg, {icon: 1, time: 800},function(){
+ renderTable();
+ });
+ obj.del();
+ }, 'DELETE');
+ });
+ }
+ else if(obj.event=='edit')
+ {
+ showEditModel(obj.data);
+ }
+ });
+
+ // 显示编辑弹窗
+ var showEditModel = function (data) {
+ let title = data ? '修改区域' : '添加区域';
+ if (!data){
+ data = {};
+ }
+ admin.putTempData('t_area', data);
+
+ admin.popupCenter({
+ title: title,
+ path: 'pages/system/sysarea_form.html',
+ finish: function () {
+ renderTable();
+ }
+ });
+ };
+
+ // 搜索按钮点击事件
+ $('#area-btn-search').click(function () {
+ var keyword = $('#area-search-value').val();
+ var searchCount = 0;
+ $('#area-table').next('.treeTable').find('.layui-table-body tbody tr td').each(function () {
+ $(this).css('background-color', 'transparent');
+ var text = $(this).text();
+ if (keyword !== '' && text.indexOf(keyword) >= 0) {
+ $(this).css('background-color', 'rgba(250,230,160,0.5)');
+ if (searchCount === 0) {
+ $('.layui-tab-item.layui-show').stop(true);
+ $('.layui-tab-item.layui-show').animate({scrollTop: $(this).offset().top - 150}, 500);
+ }
+ searchCount++;
+ }
+ });
+ if (keyword !== '' && searchCount === 0) {
+ layer.msg("没有匹配结果", {icon: 5, time: 500});
+ } else {
+ treetable.expandAll('#area-table');
+ }
+ });
+ $('#area-btn-expand').click(function () {
+ treetable.expandAll('#area-table');
+ });
+
+ $('#area-btn-fold').click(function () {
+ treetable.foldAll('#area-table');
+ });
+ // 添加按钮点击事件
+ $('#area-btn-add').click(function () {
+ showEditModel();
+ });
+ });
+</script>
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/sysArea_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/sysArea_form.html
new file mode 100644
index 0000000..61d4536
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/sysArea_form.html
@@ -0,0 +1,110 @@
+<!-- 菜单弹框 -->
+<form id="area-form" lay-filter="area-form" class="layui-form model-form" method="POST">
+ <div class="layui-form-item">
+ <label class="layui-form-label">区域级别</label>
+ <div class="layui-input-block">
+ <select name="areaLeveltype" id="areaLeveltype">
+ <option value="">请选择</option>
+ <option value="0">国家</option>
+ <option value="1">省/行政区</option>
+ <option value="2">市</option>
+ <option value="3">区县</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">区域编号</label>
+ <div class="layui-input-block">
+ <input id="Id" name="id" placeholder="请输入区域编号" type="text" class="layui-input" maxlength="20"
+ lay-verify="required" required/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">区域名称</label>
+ <div class="layui-input-block">
+ <input name="areaName" placeholder="请输入区域名称" type="text" class="layui-input" maxlength="50"
+ lay-verify="required" required/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">简称</label>
+ <div class="layui-input-block">
+ <input name="areaShortname" type="text" class="layui-input" maxlength="50"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">拼音名称</label>
+ <div class="layui-input-block">
+ <input name="areaCh" type="text" class="layui-input" maxlength="50"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">父级编号</label>
+ <div class="layui-input-block">
+ <input name="areaParentId" type="text" class="layui-input" maxlength="20"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">区号</label>
+ <div class="layui-input-block">
+ <input name="areaCitycode" type="text" class="layui-input"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">邮编</label>
+ <div class="layui-input-block">
+ <input name="areaZipcode" type="text" class="layui-input"/>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">纬度</label>
+ <div class="layui-input-block">
+ <input name="areaLng" type="text" class="layui-input"/>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">经度</label>
+ <div class="layui-input-block">
+ <input name="areaLat" type="text" class="layui-input"/>
+ </div>
+ </div>
+
+ <div class="layui-form-item model-form-footer">
+ <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
+ <button class="layui-btn" lay-filter="area-form-submit" lay-submit>保存</button>
+ </div>
+ <input name="enabled" type="hidden" />
+ <input name="isDel" type="hidden" />
+</form>
+
+<script>
+ layui.use(['layer', 'admin', 'form'],function () {
+ var layer = layui.layer;
+ var admin = layui.admin;
+ var form = layui.form;
+
+ // 回显menu数据
+ let area = admin.getTempData('t_area');
+ if(area){
+ form.val('area-form', area);
+ $("#Id").attr("enabled","false");
+ }
+ // 表单提交事件
+ form.on('submit(area-form-submit)', function (data) {
+ layer.load(2);
+ admin.req('api-user/sysarea', JSON.stringify(data.field), function (data) {
+ if (data.code === 0) {
+ layer.closeAll('loading');
+ layer.msg(data.msg, {icon: 1, time: 500});
+ admin.finishPopupCenter();
+ } else {
+ layer.closeAll('loading');
+ layer.msg(data.msg, {icon: 2, time: 500});
+ }
+ }, $('#area-form').attr('method'));
+ return false;
+ });
+ });
+</script>
\ No newline at end of file
--
Gitblit v1.8.0