From 171f5567cecda191f6b32e6c303c2bea9cd266f0 Mon Sep 17 00:00:00 2001
From: 克 刘 <4345453@qq.com>
Date: Tue, 01 Sep 2020 19:47:37 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.2.240:7070/r/kidgrow-microservices-platform into dev

---
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/user_form.html                                                                 |   40 ++
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java |    5 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html                                                             |   17 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html                                                                  |   40 +-
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/productdetail.html                                                           |    7 
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java |   32 ++
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html                                                                |    4 
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java         |    8 
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductAllVo.java                    |   62 ++++
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/login.html                                                                                  |    2 
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/SysProductMapper.java            |    6 
 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java                     |   37 ++
 /dev/null                                                                                                                                             |   16 -
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html                                                      |   21 
 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java                |   17 +
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml                                   |    8 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html                                                                |  449 +++++++++++++++++---------------
 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml                                                                       |    4 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html                                                                |   19 
 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/fallback/FileServiceFallbackFactory.java        |    5 
 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java                             |    4 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js                                                                            |    4 
 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/FileService.java                                |    6 
 23 files changed, 525 insertions(+), 288 deletions(-)

diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/FileService.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/FileService.java
index 668e668..7aea84d 100644
--- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/FileService.java
+++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/FileService.java
@@ -54,5 +54,11 @@
      */
     @PostMapping(value = "/baseDownLoad",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
     ResultBody baseDownLoad(@RequestBody Map<String,Object> map) throws Exception;
+    /**
+     * byte数组模式上传 到 oss
+     * @param fileName bytes
+     */
+    @PostMapping(value="byteUplaod")
+    FileInfo byteUplaod(@RequestParam("fileName") String fileName,@RequestBody byte[] bytes);
 
 }
diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/fallback/FileServiceFallbackFactory.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/fallback/FileServiceFallbackFactory.java
index 0874c21..18f5142 100644
--- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/fallback/FileServiceFallbackFactory.java
+++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/fallback/FileServiceFallbackFactory.java
@@ -46,6 +46,11 @@
             public ResultBody baseDownLoad(Map<String, Object> map) throws Exception {
                 return null;
             }
+
+            @Override
+            public FileInfo byteUplaod(String fileName, byte[] bytes) {
+                return null;
+            }
         };
     }
 }
diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java
index ace2cbe..2467925 100644
--- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java
+++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java
@@ -4,9 +4,9 @@
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.model.ResultBody;
 import com.kidgrow.filecenter.model.FileInfo;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.InputStream;
 import java.util.Map;
 
 /**
@@ -42,4 +42,6 @@
      * base64图片下载
      */
     ResultBody baseDownLoad(Map<String, Object> map) throws Exception;
+
+    FileInfo byteUplaod(String fileName, InputStream inputStream,int size);
 }
diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java
index 3029f24..b6c6dbb 100644
--- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java
+++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java
@@ -317,5 +317,22 @@
 
     }
 
+    @Override
+    public FileInfo byteUplaod(String fileName, InputStream inputStream,int size) {
+        String houzhui=fileName.substring(fileName.lastIndexOf(".")+1);
+        String newFileName= RandomValueUtils.uuid()+"."+houzhui;
+        FileInfo newfileInfo=new FileInfo();
+        newfileInfo.setName(newFileName);
+        newfileInfo.setId(IdUtil.fastSimpleUUID());
+        newfileInfo.setSize(size);
+        newfileInfo.setIsImg(false);
+        newfileInfo.setContentType("byte[]");
+        newfileInfo.setSource("aliyun");
+        newfileInfo.setImgType(houzhui);
+        newfileInfo.setCreateTime(new Date());
+        this.fileUpLoadOss(newfileInfo,"pdf/"+newFileName,inputStream);
+        baseMapper.insert(newfileInfo);
+        return newfileInfo;
+    }
 }
 
diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java
index 3d67a91..b70149c 100644
--- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java
+++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java
@@ -12,6 +12,10 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.Map;
 
 /**
@@ -83,6 +87,39 @@
         }
         return fileService.baseDownLoad(map);
     }
+    /**
+     * byte[]上传
+     */
+    @PostMapping(value="byteUplaod")
+    public FileInfo byteUplaod(@RequestParam("fileName") String fileName,@RequestBody byte[] bytes){
+        if(bytes.length == 0){
+            return null;
+        }
+        if (com.kidgrow.common.utils.StringUtils.isBlank(fileName)) {
+            return null;
+        }
+        InputStream inputStream = new ByteArrayInputStream(bytes);
+        return fileService.byteUplaod(fileName,inputStream,bytes.length);
+    }
+    /**
+     * byte[]上传
+     */
+    @PostMapping(value="byteUplaodTest",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public FileInfo byteUplaodTest(@RequestParam("fileName") String fileName,@RequestPart("file") MultipartFile file)throws IOException {
+        InputStream inputStream = file.getInputStream();
+        ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
+        byte[] buffer=new byte[1024];
+        int ch;
+        /**
+         *
+         * */
+        while ((ch = inputStream.read(buffer)) != -1) {
+            bytestream.write(buffer,0,ch);
+        }
+        byte[] data = bytestream.toByteArray();
+        InputStream inputStream1 = new ByteArrayInputStream(data);
+        return fileService.byteUplaod(fileName,inputStream,data.length);
+    }
 
     /**
      * 文件删除
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductAllVo.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductAllVo.java
new file mode 100644
index 0000000..a7b782c
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductAllVo.java
@@ -0,0 +1,62 @@
+package com.kidgrow.oprationcenter.vo;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ProductAllVo extends Model<ProductAllVo> {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 产品id
+     */
+    private Long Id;
+    /**
+     * 产品名称
+     */
+    private String proName;
+    /**
+     * 时长(天)
+     */
+    private Integer proTime;
+    /**
+     * 时长单位
+     */
+    private Integer proTimeUnit;
+    /**
+     * 产品类型 0试用 1正式
+     */
+    private Integer proType;
+    /**
+     * 建议售价
+     */
+    private BigDecimal proPrice;
+    /**
+     * 报告量
+     */
+    private Integer recordCount;
+    /**
+     * 读片量
+     */
+    private Integer ailightCount;
+    /**
+     * 产品结束时间-供前端使用
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date endTime;
+    /**
+     * 产品结束时间-供前端使用
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date beginTime;
+    /**
+     * 共享,1是,0不
+     */
+    private Boolean isShare;
+}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/SysProductMapper.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/SysProductMapper.java
index 6721655..bef3be5 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/SysProductMapper.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/SysProductMapper.java
@@ -1,8 +1,9 @@
 package com.kidgrow.oprationcenter.mapper;
 
-import com.kidgrow.oprationcenter.model.SysProduct;
-import com.kidgrow.db.mapper.SuperMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.db.mapper.SuperMapper;
+import com.kidgrow.oprationcenter.model.SysProduct;
+import com.kidgrow.oprationcenter.vo.ProductAllVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -24,6 +25,7 @@
      * @return
      */
     List<SysProduct> findList(Page<SysProduct> page, @Param("p") Map<String, Object> params);
+    List<ProductAllVo> findAllList(@Param("p") Map<String, Object> params);
 
     /**
      * 根据SysProduct对象当做查询条件进行查询
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 ca909f5..fa4293c 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
@@ -5,6 +5,7 @@
 import com.kidgrow.oprationcenter.model.SysProduct;
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.service.ISuperService;
+import com.kidgrow.oprationcenter.vo.ProductAllVo;
 
 import java.util.Map;
 
@@ -23,7 +24,12 @@
      * @return
      */
     PageResult<SysProduct> findList(Map<String, Object> params, SysUser sysUser);
-
+    /**
+     * 列表
+     * @param params
+     * @return
+     */
+    PageResult<ProductAllVo> findAllList(Map<String, Object> params, SysUser sysUser);
 
     /**
     * 根据SysProduct对象当做查询条件进行查询
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 460c42b..213bb71 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
@@ -5,10 +5,12 @@
 import com.kidgrow.common.model.ResultBody;
 import com.kidgrow.common.model.SysUser;
 import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.common.utils.DateUtil;
 import com.kidgrow.oprationcenter.feign.RoleOrganizationService;
 import com.kidgrow.oprationcenter.mapper.SysProductMapper;
 import com.kidgrow.oprationcenter.model.SysProduct;
 import com.kidgrow.oprationcenter.service.ISysProductService;
+import com.kidgrow.oprationcenter.vo.ProductAllVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +47,36 @@
         List<SysProduct> list  =  baseMapper.findList(page, params);
         return PageResult.<SysProduct>builder().data(list).code(0).count(page.getTotal()).build();
     }
+    /**
+     * 列表
+     * @param params
+     * @return
+     */
+    @Override
+    public PageResult<ProductAllVo> findAllList(Map<String, Object> params, SysUser sysUser){
+        List<ProductAllVo> list  =  baseMapper.findAllList(params);
+        if (list != null) {
+            for (int i = 0; i <list.size() ; i++) {
+                list.get(i).setBeginTime(new Date());
+                switch (list.get(i).getProTimeUnit())
+                {
+                    //天
+                    case 0:
+                        list.get(i).setEndTime(DateUtil.addDays(new Date(),list.get(i).getProTime()));
+                        break;
+                        //月
+                    case 1:
+                        list.get(i).setEndTime(DateUtil.addMonths(new Date(),list.get(i).getProTime()));
+                        break;
+                        //年
+                    case 2:
+                        list.get(i).setEndTime(DateUtil.addYears(new Date(),list.get(i).getProTime()));
+                        break;
+                }
+            }
+        }
+        return PageResult.<ProductAllVo>builder().data(list).code(0).count(0L).build();
+    }
 
     /**
    * 根据SysProduct对象当做查询条件进行查询
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 1707b3c..ac9b12c 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
@@ -123,4 +123,12 @@
         <include refid="where"/>
         order by id desc
     </select>
+    <!--定义根据-SysProduct当作查询条件返回对象集合-->
+    <select id="findAllList" resultType="com.kidgrow.oprationcenter.vo.ProductAllVo">
+        select
+        <include refid="Column_List"/>
+        from sys_product
+        <include refid="where"/>
+        order by id desc
+    </select>
 </mapper>
\ No newline at end of file
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 7d046b5..0583022 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
@@ -61,7 +61,10 @@
         }
         return sysProductService.findList(params,sysUser);
     }
-
+    @GetMapping("/all")
+    public PageResult allList(@RequestParam Map<String, Object> params, @LoginUser SysUser sysUser) {
+        return sysProductService.findAllList(params,sysUser);
+    }
     /**
      * 查询
      */
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
index d688e3c..39f2b2f 100644
--- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
@@ -227,6 +227,7 @@
       - /api-evaluation/evaluationxrayinfo/appSave
       - /api-file/baseUplaod
       - /api-user/users/python
+      - /api-evaluation/evaluationxrayinfo/checkQRCode
 #      - /api-user/syshospital/findAllByMap
 #      - /api-user/sysdictionaries/findAll
 #      - /api-user/sysdepartment/findListByHospitalId
@@ -259,7 +260,8 @@
         /api-evaluation/evaluationxrayinfo/appUpload,
         /api-evaluation/evaluationxrayinfo/appSave,
         /api-file/baseUplaod,
-        /api-user/users/python
+        /api-user/users/python,
+        /api-evaluation/evaluationxrayinfo/checkQRCode
 #        /api-user/syshospital/findAllByMap,
 #        /api-user/sysdictionaries/findAll,
 #        /api-user/sysdepartment/findListByHospitalId
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/login.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/login.html
index d322427..ff4eb0e 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/login.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/login.html
@@ -106,11 +106,13 @@
                     } else {
                         layer.closeAll('loading');
                         layer.msg(data.msg, {icon: 5, time: 2000});
+                        $('.login-captcha').click();
                     }
                 },
                 error: function (xhr) {
                     layer.closeAll('loading');
                     layer.msg(xhr.responseJSON.msg, {icon: 5, time: 2000});
+                        $('.login-captcha').click();
                 }
             });
             //阻止表单跳转
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js
index aa81bd3..c7c9be5 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js
@@ -1,8 +1,8 @@
 // var my_api_server_url = 'http://zuul.kidgrow.com/';
   // var my_api_server_url = 'http://192.168.2.240:8888/';
-// var my_api_server_url = 'http://127.0.0.1:8888/';
+var my_api_server_url = 'http://127.0.0.1:8888/';
 // var my_api_server_url = 'http://192.168.2.240:8888/';
-var my_api_server_url = 'http://open.zuul.kidgrow.cloud/';
+// var my_api_server_url = 'http://open.zuul.kidgrow.cloud/';
 // var my_api_server_url = 'http://uat.zuul.kidgrow.cloud/';
 // var my_api_server_url = 'https://zuul.kidgrow.cloud/';
 //var my_api_server_url = 'http://123.57.164.62:8888/';
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/console_old.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/console_old.html
deleted file mode 100644
index 989317e..0000000
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/console_old.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<html>
-
-<head>
-    <title>首页</title>
-    <meta charset="utf-8"/>
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
-</head>
-<body>
-
-<div class="layui-card-body" style="text-align: center;">
-    <img src="../../assets/images/welcome.png" style="max-width: 100%;">
-</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html
index f7b5520..804ebe2 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html
@@ -21,7 +21,7 @@
 <!-- 表格操作列 -->
 <script type="text/html" id="contract-table-bar">
     <a class="layui-btn layui-btn-danger layui-btn-xs permissions" permissions="contract-del" lay-event="del">删除</a>
-    <a class="layui-btn layui-btn-primary layui-btn-xs permissions" permissions="productorderdetail-save" lay-event="detail">查看产品</a>
+    <a class="layui-btn layui-btn-primary layui-btn-xs permissions" permissions="productorderdetail-save" lay-event="detail">查看套餐</a>
 </script>
 <!-- 表格状态列 -->
 <script type="text/html" id="contract-tpl-state">
@@ -64,26 +64,27 @@
                 headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
                 page: true,
                 cols: [[
-                    { field: 'hospitalName', width: 263, title: '医院名称' },
-                    { field: 'departmentName', width: 100, title: '科室名称' },
+                    { field: 'hospitalName', width: 300, title: '医院名称' },
+                    { field: 'departmentName', width: 200, title: '科室名称' },
                     { field: 'contractNo', width: 150, title: '合同编号' },
-                    { field: 'contractTitle', width: 260, title: '合同名' },
-                    { field: 'contractBeginTime', width: 150, title: '合同生效时间',templet:function(d)
+                    { field: 'contractTitle', width: 200, title: '合同名' },
+                    { field: 'contractBeginTime', width: 120, title: '合同生效时间',templet:function(d)
                     {
                         return new Date(d.contractBeginTime).dateFormat("yyyy/MM/dd");
                     }
                     },
-                    { field: 'contractEndTime', width: 150, title: '合同到期时间',templet:function(d){
+                    { field: 'contractEndTime', width: 120, title: '合同到期时间',templet:function(d){
                         return new Date(d.contractEndTime).dateFormat("yyyy/MM/dd");
                     } },
-                    { field: 'contractTime', width: 180, title: '合同签订时间',templet:function(d){
+                    { field: 'contractTime', width: 120, title: '合同签订时间',templet:function(d){
                         return new Date(d.contractTime).dateFormat("yyyy/MM/dd");
                     } },
                     // { field: 'enabled', width: 120, templet: '#contract-tpl-state', sort: true, title: '状态' },
                     { field: 'createTime', width: 160, title: '创建时间' , templet: function (d) {
                         return new Date(d.createTime).dateFormat("yyyy-MM-dd hh:mm");
                     }},
-                    { align: 'center', width: 200, toolbar: '#contract-table-bar', title: '操作' }
+                    { align: 'center', width: 150, toolbar: '#contract-table-bar', title: '操作',
+                            fixed: 'right'}
                 ]],
                 done:function(res){
                     permissionsInput(res,config);
@@ -94,7 +95,7 @@
         // 工具条点击事件
         table.on('tool(contract-table)', function (obj) {
             if (obj.event === 'del') { // 删除
-                layer.confirm('确定要删除吗?', function (i) {
+                layer.confirm('确定要删除合同及关联套餐吗?', function (i) {
                     layer.close(i);
                     layer.load(2);
                     admin.req('api-opration/contract/' + obj.data.id, {}, function (data) {
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
index 683b7e9..6b072f7 100644
--- 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
@@ -35,15 +35,14 @@
 <!-- 表格操作列 -->
 
 <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="detail">详情</a>
     {{# if (d.doctorType !=2){}}
     <button class="layui-btn layui-btn-primary layui-btn-xs permissions" permissions="users-edit"
         lay-event="reset">重置密码</button>
     {{#}}}
-
     <button class="layui-btn layui-btn-primary layui-btn-xs permissions" permissions="sysdoctor-edit"
         lay-event="edit">修改</button>
-    <button class="layui-btn layui-btn-xs permissions" permissions="sysdoctor-del" lay-event="del">删除</button>
+    <button class="layui-btn layui-btn-danger layui-btn-xs permissions" permissions="sysdoctor-del" lay-event="del">删除</button>
 </script>
 
 <!-- 表格状态列 -->
@@ -137,8 +136,8 @@
                 <div class="layui-inline">
                     <label class="layui-form-label">Email</label>
                     <div class="layui-input-block" style="width: 150px;">
-                        <input name="doctorEmail" type="text" class="layui-input" maxlength="20"
-                            lay-verify="required|email" required />
+                        <input name="doctorEmail" type="text" class="layui-input" maxlength="50"
+                            lay-verify="email"  autocomplete="off"/>
                     </div>
                 </div>
             </div>
@@ -399,40 +398,40 @@
                 cols: [
                     [{
                             field: 'hospitalName',
-                            width: "10%",
+                            width: "200",
                             title: '医院名称',
                             fixed: 'left'
                         },
                         {
                             field: 'departmentName',
-                            width: "9%",
+                            width: "150",
                             title: '科室',
                             fixed: 'left'
                         },
                         {
                             field: 'doctorName',
-                            width: "7%",
+                            width: "150",
                             title: '医生姓名',
                             fixed: 'left'
                         },
                         {
                             field: 'doctorRank',
-                            width: "8%",
+                            width: "100",
                             title: '职称'
                         },
                         {
                             field: 'username',
-                            width: "10%",
+                            width: "150",
                             title: '登录帐号'
                         },
                         {
                             field: 'doctorTel',
-                            width: "10%",
+                            width: "150",
                             title: '联系方式'
                         },
                         {
                             field: 'isAnswer',
-                            width: "5%",
+                            width: "100",
                             title: '医答',
                             templet: function (d) {
                                 return d.isAnswer ? "是" : "否"
@@ -440,34 +439,26 @@
                         },
                         {
                             field: 'isSigning',
-                            width: "5%",
+                            width: "100",
                             title: '签约',
                             templet: function (d) {
                                 return d.isSigning ? "是" : "否"
                             }
                         },
-                        // {
-                        //     field: 'enabled',
-                        //     width: 100,
-                        //     align: 'center',
-                        //     templet: '#doctor-tpl-state',
-                        //     title: '状态'
-                        // },
-                        // { field: 'createTime', width: 150, title: '创建时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy-MM-dd HH:mm')}}</div>" },
                         {
                             field: 'createTime',
-                            width: "10%",
+                            width: "120",
                             sort: true,
                             title: '创建时间',
                             templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy/MM/dd HH:mm')}}</div>"
                         },
                         {
                             field: 'serverUserName',
-                            width: "6%",
+                            width: "120",
                             title: '销售代表'
                         },
                         {
-                            width: "20%",
+                            width: "260",
                             align: 'center',
                             toolbar: '#doctor-table-bar',
                             title: '操作',
@@ -612,6 +603,7 @@
                     title: title,
                     path: 'pages/opration/doctor_form.html',
                     area: '900px',
+                    offset: '0px',
                     finish: function () {}
                 });
             };
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html
index e60539d..e02b7a9 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html
@@ -57,7 +57,7 @@
                 <label class="layui-form-label">Email</label>
                 <div class="layui-input-block" style="width: 150px;">
                     <input name="doctorEmail" type="text" class="layui-input" maxlength="50" lay-verify="v_email"
-                         />
+                    autocomplete="off"  />
                 </div>
             </div>
         </div>
@@ -442,7 +442,7 @@
             }, 'Post');
         }
         //获取销售代表
-        var getXiaoShouDaiBiao = function () {
+        var getXiaoShouDaiBiao = function (selectVal) {
             admin.req('api-user/users/getAppointUser', { type: 0 }, function (data) {
                 layer.closeAll('loading');
                 if (0 === data.code) {
@@ -450,7 +450,7 @@
                     $.each(data.data, function (index, item) {
                         //往下拉菜单里添加元素
                         $('#serverUserId-add').append(new Option(item.nickname, item.id,
-                            false, false));
+                            false, (!strUtil.isEmpty(selectVal) && selectVal == item.id)));
                     })
                 } else {
                     layer.msg(data.msg, {
@@ -467,10 +467,16 @@
             $('.layui-layer-content').css('overflow', 'auto');
             //将医院的数据保存到下拉表
             let selected = false;
+            var selectVal="";
+            //先拿到当前登录用户的信息
+            var nowUser = config.getUser();
+            if (!strUtil.isEmpty(nowUser)) {
+                selectVal = nowUser.id;
+            }
             //获取职称的
             getZhiCheng();
             //获取销售代表
-            getXiaoShouDaiBiao();
+            getXiaoShouDaiBiao(selectVal);
             //获取角色
             get_role();
             var upload = layui.upload;
@@ -622,7 +628,8 @@
             $("#password").removeAttr("lay-verify")
             $("#password").removeAttr("required")
             $("#passwordSure").removeAttr("lay-verify")
-
+            
+            
             form.render();
         } else {
             loadEditData();
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
index f2a0a11..80b9a41 100644
--- 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
@@ -156,11 +156,12 @@
                         width: 80,
                         templet: '#hospital-tpl-state',
                         title: '状态',
+                        align: 'center',
                         fixed: 'right'
                     },
                     {
                         field: 'hospitalId',
-                        width: 250,
+                        width: 225,
                         align: 'center',
                         toolbar: '#businessRecords-table-bar',
                         title: '操作',
@@ -250,6 +251,7 @@
                 title: (strUtil.isEmpty(data)) ? '添加医院/科室' : '编辑医院/科室',
                 path: 'pages/opration/hospital_form_base.html',
                 area: '900px',
+                    offset: '0px',
                 finish: function () {
                     $('#hospita-btn-search').click();
                 }
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
index c6adb27..7bc7364 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
@@ -233,13 +233,8 @@
                     if (data.data.length > 0) {
                         $.each(data.data, function (index, item) {
                             //往下拉菜单里添加元素
-                            if (!strUtil.isEmpty(selectVal) && selectVal == item.id) {
                                 $('#saleUserName').append(new Option(item.nickname, item.id,
-                                    false, true));
-                            } else {
-                                $('#saleUserName').append(new Option(item.nickname, item.id,
-                                    false, false));
-                            }
+                                    false, (!strUtil.isEmpty(selectVal) && selectVal == item.id)));
                         });
 
                         if (hosIdForEdit == "") {
@@ -254,7 +249,6 @@
                         time: 2000
                     });
                 }
-
             }, 'get');
         }
         //医院资质数据
@@ -267,13 +261,22 @@
         let edithospitalData = admin.getTempData('t_hospital');
         var hosIdForEdit = "";
         var departmentId = "";
+        //当前登录人员的id
+        var selectVal="";
         if (edithospitalData != null) {
             hosIdForEdit = edithospitalData.hospitalId;
             departmentId = edithospitalData.departmentId;
         }
+        else{
+            //先拿到当前登录用户的信息
+            var nowUser = config.getUser();
+            if (!strUtil.isEmpty(nowUser)) {
+                selectVal = nowUser.id;
+            }
+        }
         //装载销售人员 服务人员数据
-        loadServerUser();
-        loadSaleUser();
+        loadServerUser(selectVal);
+        loadSaleUser(selectVal);
 
         //装载市区数据
         form.on("select(hospitalProvince)", function (data) {
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/productdetail.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/productdetail.html
index a12b18e..26bea23 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/productdetail.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/productdetail.html
@@ -1,9 +1,9 @@
 <div class="layui-card">
     <div class="layui-card-header">
-        <h2 class="header-title">产品消费记录</h2>
+        <h2 class="header-title">产品充值记录</h2>
         <span class="layui-breadcrumb pull-right">
             <a href="#!console">首页</a>
-            <a><cite>产品消费记录</cite></a>
+            <a><cite>产品充值记录</cite></a>
         </span>
     </div>
     <div class="layui-card-body">
@@ -93,9 +93,6 @@
                     { field: 'proEndtime', width: 120, title: '结束时间',templet:function(d){
                         return new Date(d.proEndtime).dateFormat("yyyy/MM/dd");
                     } },
-                    // { field: 'createTime', width: 160, sort: true, title: '创建时间',templet:function(d){
-                    //     return new Date(d.createTime).dateFormat("yyyy/MM/dd hh:mm:ss");
-                    // } },
                     { field: 'createTime', width: 200, sort: true, title: '创建时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy/MM/dd HH:mm')}}</div>" },
                     { align: 'center', width: 100, toolbar: '#product-table-bar', title: '操作',
                         fixed: 'right' }
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
index 697168d..a5eb861 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
@@ -1,128 +1,132 @@
 <form id="recharge-form" lay-filter="recharge-form" class="layui-form">
     <div style="overflow-y: auto; height:700px;">
-    <div class="layui-tab">
-        <ul class="layui-tab-title">
-            <li class="layui-this">合同信息</li>
-        </ul>
-        <div class="layui-tab-content" style="margin: 0px;">
-            <div class="layui-tab-item layui-show">
-                <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
-                    <div class="layui-row">
-                        <div class="layui-col-sm5">
-                            <label class="layui-form-label" style="padding: 0;">医院名称</label>
-                            <div class="layui-input-block">
-                                <input name="hospitalName" id="hospitalName" type="text" class="layui-input"
-                                    style="border: none; margin-top:-10px" readonly />
+        <div class="layui-tab">
+            <ul class="layui-tab-title">
+                <li class="layui-this">合同信息</li>
+            </ul>
+            <div class="layui-tab-content" style="margin: 0px 0px -10px 0px;">
+                <div class="layui-tab-item layui-show">
+                    <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
+                        <div class="layui-row">
+                            <div class="layui-col-sm5">
+                                <label class="layui-form-label" style="padding: 0;">医院名称</label>
+                                <div class="layui-input-block">
+                                    <input name="hospitalName" id="hospitalName" type="text" class="layui-input"
+                                        style="border: none; margin-top:-10px" readonly />
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-col-sm3">
-                            <label class="layui-form-label" style="padding: 0;">科室名称</label>
-                            <div class="layui-input-block">
-                                <input name="departmentName" id="departmentName" style="border: none;  margin-top:-10px"
-                                    readonly class="layui-input" />
+                            <div class="layui-col-sm3">
+                                <label class="layui-form-label" style="padding: 0;">科室名称</label>
+                                <div class="layui-input-block">
+                                    <input name="departmentName" id="departmentName"
+                                        style="border: none;  margin-top:-10px" readonly class="layui-input" />
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-col-sm2">
-                            <label class="layui-form-label" style="padding: 0;">服务人员</label>
-                            <div class="layui-input-block">
-                                <input name="serverUserName" id="serverUserName"
-                                    style="border: none; margin-top:-10px;width: 120px;" readonly class="layui-input" />
+                            <div class="layui-col-sm2">
+                                <label class="layui-form-label" style="padding: 0;">服务人员</label>
+                                <div class="layui-input-block">
+                                    <input name="serverUserName" id="serverUserName"
+                                        style="border: none; margin-top:-10px;width: 120px;" readonly
+                                        class="layui-input" />
+                                </div>
                             </div>
                         </div>
                     </div>
-                </div>
 
-                <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
-                    <div class="layui-row">
-                        <div class="layui-col-sm5">
-                            <label class="layui-form-label" style="padding: 0 30px 0 0;">地区</label>
-                            <input name="hospitalAreas" id="hospitalAreas" type="text"
-                                style="border: none; width: 250px; margin-top:-10px" readonly class="layui-input" />
-                        </div>
-                        <div class="layui-col-sm3">
-                            <label class="layui-form-label" style="padding: 0;">联系电话</label>
-                            <div class="layui-input-block">
-                                <input name="hospitalTel" id="hospitalTel" type="text" class="layui-input"
-                                    style="border: none; margin-top:-10px" readonly />
+                    <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
+                        <div class="layui-row">
+                            <div class="layui-col-sm5">
+                                <label class="layui-form-label" style="padding: 0 30px 0 0;">地区</label>
+                                <input name="hospitalAreas" id="hospitalAreas" type="text"
+                                    style="border: none; width: 250px; margin-top:-10px" readonly class="layui-input" />
                             </div>
-                        </div>
-                        <div class="layui-col-sm2">
-                            <label class="layui-form-label" style="padding: 0;">联系人</label>
-                            <div class="layui-input-block">
-                                <input name="hospitalLink" type="text" class="layui-input"
-                                    style="border: none; margin-top:-10px;width: 120px;" readonly />
+                            <div class="layui-col-sm3">
+                                <label class="layui-form-label" style="padding: 0;">联系电话</label>
+                                <div class="layui-input-block">
+                                    <input name="hospitalTel" id="hospitalTel" type="text" class="layui-input"
+                                        style="border: none; margin-top:-10px" readonly />
+                                </div>
+                            </div>
+                            <div class="layui-col-sm2">
+                                <label class="layui-form-label" style="padding: 0;">联系人</label>
+                                <div class="layui-input-block">
+                                    <input name="hospitalLink" type="text" class="layui-input"
+                                        style="border: none; margin-top:-10px;width: 120px;" readonly />
+                                </div>
                             </div>
                         </div>
                     </div>
-                </div>
-                <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
-                    <div class="layui-row">
-                        <div class="layui-col-sm4">
-                            <label class="layui-form-label" style="padding: 10px 30px 0 0px;">合同名称</label>
-                            <div class="layui-input-block">
-                                <input name="contractTitle" id="contractTitle" type="text" class="layui-input"
-                                    maxlength="50" lay-verify="required" required autocomplete="off" />
+                    <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
+                        <div class="layui-row">
+                            <div class="layui-col-sm4">
+                                <label class="layui-form-label" style="padding: 10px 30px 0 0px;">合同名称</label>
+                                <div class="layui-input-block">
+                                    <input name="contractTitle" id="contractTitle" type="text" class="layui-input"
+                                        maxlength="50" lay-verify="required" required autocomplete="off" />
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-col-sm3">
-                            <label class="layui-form-label">合同编号</label>
-                            <div class="layui-input-block">
-                                <input name="contractNo" id="contractNo" type="text" class="layui-input" maxlength="50"
-                                    style="width: 185px;" autocomplete="off"  lay-verify="required" required />
+                            <div class="layui-col-sm3">
+                                <label class="layui-form-label">合同编号</label>
+                                <div class="layui-input-block">
+                                    <input name="contractNo" id="contractNo" type="text" class="layui-input"
+                                        maxlength="50" style="width: 185px;" autocomplete="off" lay-verify="required"
+                                        required />
+                                </div>
                             </div>
                         </div>
                     </div>
-                </div>
-                <div class="layui-form-item" style="margin: 10px 0px 0px 0px;">
-                    <div class="layui-row">
-                        <div class="layui-col-sm4">
-                            <label class="layui-form-label" style="padding: 10px 30px 0 0px;">开始日期</label>
-                            <input autocomplete="off" name="contractBeginTime" id="contractBeginTime" type="text"
-                                class="layui-input" style="width: 182px;" maxlength="50" lay-verify="required"
-                                required />
-                        </div>
-                        <div class="layui-col-sm4">
-                            <label class="layui-form-label">截止日期</label>
-                            <div class="layui-input-block">
-                                <input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text"
-                                    class="layui-input" maxlength="50" lay-verify="required" required />
+                    <div class="layui-form-item" style="margin: 10px 0px 0px 0px;">
+                        <div class="layui-row">
+                            <div class="layui-col-sm4">
+                                <label class="layui-form-label" style="padding: 10px 30px 0 0px;">开始日期</label>
+                                <input autocomplete="off" name="contractBeginTime" id="contractBeginTime" type="text"
+                                    class="layui-input" style="width: 182px;" maxlength="50" lay-verify="required"
+                                    required />
                             </div>
-                        </div>
-                        <div class="layui-col-sm4">
-                            <label class="layui-form-label">签订日期</label>
-                            <div class="layui-input-block">
-                                <input autocomplete="off" name="contractTime" id="contractTime" type="text"
-                                    class="layui-input" maxlength="50" lay-verify="required" required />
+                            <div class="layui-col-sm4">
+                                <label class="layui-form-label">截止日期</label>
+                                <div class="layui-input-block">
+                                    <input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text"
+                                        class="layui-input" maxlength="50" lay-verify="required" required />
+                                </div>
+                            </div>
+                            <div class="layui-col-sm4">
+                                <label class="layui-form-label">签订日期</label>
+                                <div class="layui-input-block">
+                                    <input autocomplete="off" name="contractTime" id="contractTime" type="text"
+                                        class="layui-input" maxlength="50" lay-verify="required" required />
+                                </div>
                             </div>
                         </div>
                     </div>
                 </div>
             </div>
         </div>
-    </div>
 
-    <div class="layui-tab" style="margin: 0px;">
-        <ul class="layui-tab-title">
-            <li class="layui-this">产品信息</li>
-        </ul>
-        <div class="layui-tab-content" style="margin: 0px;">
-            <div class="layui-tab-item layui-show" style="padding-top: 0px;">
-                <table class="layui-table" id="product-table" lay-filter="product-table" style="margin: 0px;"></table>
+        <div class="layui-tab" style="margin: 0px;">
+            <ul class="layui-tab-title">
+                <li class="layui-this">产品信息</li>
+            </ul>
+            <div class="layui-tab-content" style="margin: -10px 0px -10px 0px;">
+                <div class="layui-tab-item layui-show" style="padding-top: 0px;">
+                    <table class="layui-table" id="product-table" lay-filter="product-table" style="margin: 0px;">
+                    </table>
+                </div>
             </div>
         </div>
-    </div>
 
-    <div class="layui-tab" style="margin: 0px;">
-        <ul class="layui-tab-title">
-            <li class="layui-this">待充值产品</li>
-        </ul>
-        <div class="layui-tab-content">
-            <div class="layui-tab-item layui-show" style="padding-top: 0px;">
-                <table class="layui-table" id="product-table-temp" lay-filter="product-table-temp" style="margin: 0px;">
-                </table>
+        <div class="layui-tab" style="margin: 0px;">
+            <ul class="layui-tab-title">
+                <li class="layui-this">待充值产品</li>
+            </ul>
+            <div class="layui-tab-content" style="margin: -10px 0px -10px 0px;">
+                <div class="layui-tab-item layui-show" style="padding-top: 0px;">
+                    <table class="layui-table" id="product-table-temp" lay-filter="product-table-temp"
+                        style="margin: 0px;">
+                    </table>
+                </div>
             </div>
         </div>
-    </div>
     </div>
     <div class="layui-form-item model-form-footer" style="margin-right: 20px;">
         <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
@@ -158,7 +162,7 @@
         var laydate = layui.laydate;
 
         //充值进行中
-        var isRun=false;
+        var isRun = false;
         //执行一个laydate实例
         laydate.render({
             elem: '#contractBeginTime' //指定元素
@@ -182,7 +186,7 @@
                 cols: [
                     [{
                             field: 'proName',
-                            width: 320,
+                            width: 330,
                             title: '产品名称',
                             align: 'center',
                             fixed: 'left'
@@ -190,7 +194,7 @@
                         {
                             field: 'proType',
                             align: 'center',
-                            width: 100,
+                            width: 80,
                             templet: function (d) {
                                 if (d.proType === 0)
                                     return "试用"
@@ -219,16 +223,16 @@
                             }
                         },
                         {
-                            field: 'recordCount',
-                            width: 110,
-                            align: 'center',
-                            title: '报告数'
-                        },
-                        {
                             field: 'ailightCount',
                             width: 100,
                             align: 'center',
                             title: '读片量'
+                        },
+                        {
+                            field: 'recordCount',
+                            width: 100,
+                            align: 'center',
+                            title: '报告量'
                         },
                         {
                             field: 'beginTime',
@@ -259,7 +263,7 @@
                             field: 'id',
                             fixed: 'right',
                             align: 'center',
-                            width: 80,
+                            width: 100,
                             toolbar: '#product-tpl-bar-temp',
                             title: '操作'
                         }
@@ -278,7 +282,7 @@
         //装载产品数据
         table.render({
             elem: '#product-table',
-            url: config.base_server + 'api-opration/product',
+            url: config.base_server + 'api-opration/product/all',
             method: 'GET',
             cellMinWidth: 50,
             headers: {
@@ -293,7 +297,7 @@
                 [{
                         field: 'proName',
                         sort: true,
-                        width: 300,
+                        width: 330,
                         title: '产品名称',
                         align: 'center',
                         fixed: 'left'
@@ -331,38 +335,30 @@
                         }
                     },
                     {
-                        field: 'recordCount',
-                        width: 100,
-                        align: 'center',
-                        title: '报告数'
-                    },
-                    {
                         field: 'ailightCount',
                         width: 100,
                         align: 'center',
                         title: '读片量'
                     },
                     {
+                        field: 'recordCount',
+                        width: 100,
+                        align: 'center',
+                        title: '报告量'
+                    },
+                    {
                         field: 'beginTime',
                         align: 'center',
-                        width: 130,
+                        width: 120,
                         title: '开始日期',
-                        templet: function (d) {
-                            return getNowDate();
-                        },
-                        event: "date",
-                        edit: 'text'
+                        event: "date"
                     },
                     {
                         field: 'endTime',
                         align: 'center',
-                        width: 130,
+                        width: 120,
                         title: '结束日期',
-                        templet: function (d) {
-                            return getNowDate(d.proTime, d.proTimeUnit);
-                        },
-                        event: "date",
-                        edit: 'text'
+                        event: "date"
                     },
                     {
                         field: 'isShare',
@@ -397,8 +393,32 @@
         });
         //单元格点击事件
         table.on('tool(product-table)', function (obj) {
+            var newdata = {};
             var data = obj.data;
             var selectData = {};
+            if (obj.event === 'date') {
+                var field = $(this).data('field');
+                laydate.render({
+                    elem: this.firstChild,
+                    format: "yyyy-MM-dd",
+                    show: true,
+                    done: function (value, date) {
+                        var nowTr=obj.tr;
+                        if (field === "beginTime") {
+                            var endTimes = getNowDate(data.proTime, data.proTimeUnit,
+                                value);
+                            newdata["beginTime"] = value;
+                            newdata["endTime"] = endTimes;
+                        } else if (field === "endTime") {
+                            newdata["endTime"] = value;
+                            var beginTimes = getNowDate((0 - parseInt(data.proTime)),
+                                data.proTimeUnit, value);
+                            newdata["beginTime"] = beginTimes;
+                        }
+                        obj.update(newdata);
+                    }
+                });
+            }
             if (obj.event === "pay") {
                 data.beginTime = obj.tr.find("td[data-field='beginTime'] input").val();
                 data.endTime = obj.tr.find("td[data-field='endTime'] input").val();
@@ -434,8 +454,12 @@
             }
         });
         //自动计算时间
-        var getNowDate = function (proTime, proTimeUnit) {
-            var now = new Date();
+        var getNowDate = function (proTime, proTimeUnit, now) {
+            if (strUtil.isEmpty(now)) {
+                now = new Date();
+            } else {
+                now = dateUtil.strTurnDate(now);
+            }
             if (strUtil.isEmpty(proTime) && strUtil.isEmpty(proTimeUnit)) {
                 return now.dateFormat("yyyy-MM-dd");
             } else {
@@ -446,8 +470,8 @@
                         return new Date(now.setDate(now.getDate() + proTime)).dateFormat("yyyy-MM-dd");
                         break;
                     case 1:
-                        return new Date(now.setMonth(now.getMonth() + proTime + 1)).dateFormat(
-                        "yyyy-MM-dd");
+                        return new Date(now.setMonth(now.getMonth() + proTime)).dateFormat(
+                            "yyyy-MM-dd");
                         break;
                     case 2:
                         return new Date(now.setFullYear(now.getFullYear() + proTime)).dateFormat(
@@ -491,98 +515,101 @@
             }
         }
         form.on('submit(recharge-form-submit)', function (data) {
-            if(!isRun){
+            if (!isRun) {
                 layer.load(2);
-            var listData = admin.getTempData("t_tempProduct");
-            if (listData != null) {
-                if (data.field != null) {
-                    layer.confirm("确定要将待充值列表中的" + listData.length + "个产品充值给当前医院的科室吗?", {
-                        btn: ["确定", "返回"]
-                    }, function () {
-                        isRun=true;
-                        data.field.contractBeginTime = data.field.contractBeginTime +
-                            " 00:00:00";
-                        data.field.contractEndTime = data.field.contractEndTime + " 23:59:59";
-                        data.field.contractTime = data.field.contractTime + " 00:00:00";
-                        admin.req('api-opration/contract', JSON.stringify(data.field),
-                            function (data) {
-                                layer.closeAll('loading');
-                                if (data.code === 0) {
-                                    var orderData = data.data;
-                                    //处理订单明细数据
-                                    var listDetailData = new Array();
-                                    $.each(listData, function (index, item) {
-                                        var detailData = {
-                                            orderId: orderData.id,
-                                            proId: item.id,
-                                            proType: item.proType,
-                                            proName: item.proName,
-                                            isShare: item.isShare,
-                                            ailightCount: item.ailightCount,
-                                            recordCount: item.recordCount,
-                                            proBegintime: item.beginTime +
-                                                ' 00:00:00',
-                                            proEndtime: item.endTime +
-                                                ' 23:59:59'
-                                        };
-                                        listDetailData.push(detailData);
-                                    })
+                var listData = admin.getTempData("t_tempProduct");
+                if (listData != null) {
+                    if (data.field != null) {
+                        layer.confirm("确定要将待充值列表中的" + listData.length + "个产品充值给当前医院的科室吗?", {
+                            btn: ["确定", "返回"]
+                        }, function () {
+                            isRun = true;
+                            data.field.contractBeginTime = data.field.contractBeginTime +
+                                " 00:00:00";
+                            data.field.contractEndTime = data.field.contractEndTime +
+                                " 23:59:59";
+                            data.field.contractTime = data.field.contractTime + " 00:00:00";
+                            admin.req('api-opration/contract', JSON.stringify(data.field),
+                                function (data) {
+                                    layer.closeAll('loading');
+                                    if (data.code === 0) {
+                                        var orderData = data.data;
+                                        //处理订单明细数据
+                                        var listDetailData = new Array();
+                                        $.each(listData, function (index, item) {
+                                            var detailData = {
+                                                orderId: orderData.id,
+                                                proId: item.id,
+                                                proType: item.proType,
+                                                proName: item.proName,
+                                                isShare: item.isShare,
+                                                ailightCount: item.ailightCount,
+                                                recordCount: item.recordCount,
+                                                proBegintime: item.beginTime +
+                                                    ' 00:00:00',
+                                                proEndtime: item.endTime +
+                                                    ' 23:59:59'
+                                            };
+                                            listDetailData.push(detailData);
+                                        })
 
-                                    if (listDetailData.length > 0) {
-                                        //提交订单数据
-                                        admin.req('api-opration/productorderdetail/saveall',
-                                            JSON.stringify(listDetailData),
-                                            function (data) {
-                                                isRun=false;
-                                                layer.closeAll('loading');
-                                                if (data.code === 0) {
-                                                    //现将临时数据清理
-                                                    admin.putTempData("t_tempProduct",
-                                                        "");
-                                                    layer.msg(data.msg, {
-                                                        icon: 1,
-                                                        time: 3000
-                                                    }, function () {
-                                                        admin
-                                                        .finishPopupCenter();
-                                                    });
-                                                } else {
-                                                    layer.msg(data.msg, {
-                                                        icon: 2,
-                                                        time: 1000
-                                                    });
-                                                }
-                                            }, 'POST');
+                                        if (listDetailData.length > 0) {
+                                            //提交订单数据
+                                            admin.req(
+                                                'api-opration/productorderdetail/saveall',
+                                                JSON.stringify(listDetailData),
+                                                function (data) {
+                                                    isRun = false;
+                                                    layer.closeAll('loading');
+                                                    if (data.code === 0) {
+                                                        //现将临时数据清理
+                                                        admin.putTempData(
+                                                            "t_tempProduct",
+                                                            "");
+                                                        layer.msg(data.msg, {
+                                                            icon: 1,
+                                                            time: 3000
+                                                        }, function () {
+                                                            admin
+                                                                .finishPopupCenter();
+                                                        });
+                                                    } else {
+                                                        layer.msg(data.msg, {
+                                                            icon: 2,
+                                                            time: 1000
+                                                        });
+                                                    }
+                                                }, 'POST');
+                                        } else {
+                                            layer.msg("充值数据异常为空!", {
+                                                icon: 2,
+                                                time: 1000
+                                            });
+                                            isRun = false;
+                                        }
                                     } else {
-                                        layer.msg("充值数据异常为空!", {
+                                        layer.msg(data.msg, {
                                             icon: 2,
                                             time: 1000
                                         });
-                                    isRun=false;
+                                        isRun = false;
                                     }
-                                } else {
-                                    layer.msg(data.msg, {
-                                        icon: 2,
-                                        time: 1000
-                                    });
-                                    isRun=false;
-                                }
-                            }, 'POST');
-                    })
+                                }, 'POST');
+                        })
+                    } else {
+                        layer.msg("数据异常!", {
+                            icon: 2,
+                            time: 1000
+                        });
+                    }
                 } else {
-                    layer.msg("数据异常!", {
+                    layer.msg("请先将要充值的产品加入待充值!", {
                         icon: 2,
-                        time: 1000
+                        time: 2000
                     });
                 }
-            } else {
-                layer.msg("请先将要充值的产品加入待充值!", {
-                    icon: 2,
-                    time: 2000
-                });
-            }
-            layer.closeAll('loading');
-            return false;
+                layer.closeAll('loading');
+                return false;
             }
         });
     });
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/user_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/user_form.html
index 252f1fe..83b3eba 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/user_form.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/user_form.html
@@ -100,5 +100,45 @@
             }, "POST");
             return false;
         });
+        //判断用户名是否被使用
+        var username_is_usered = function (username_id) {
+            var username = $("#" + username_id).val()
+            admin.req('api-user/users/findCountByMap', JSON.stringify({
+                username: username
+            }), function (data) {
+                if (data.code == 0) {
+                    if (data.data > 0) {
+                        $("#" + username_id).val("")
+                        layer.msg("该手机号已经使用", {
+                            icon: 2,
+                            time: 2000
+                        })
+                    }
+                } else {
+                    layer.msg(data.msg, {
+                        icon: 2,
+                        time: 2000
+                    });
+                }
+            }, 'post');
+        }
+        /*
+        * 验证手机号码
+        */
+        function validatorTel(content) {
+            // 正则验证格式
+            eval("var reg = /^1[34578]\\d{9}$/;");
+            var flag = RegExp(reg).test(content)
+            return flag;
+        }
+        //验证手机号是否被使用
+        $("#mobile").blur(function () {
+            let mobile=$("#mobile").val()
+            if (!validatorTel(mobile)) {
+                layer.msg("请输入正确的手机号");
+            } else {
+                username_is_usered("mobile");
+            }
+        })
     });
 </script>
\ No newline at end of file

--
Gitblit v1.8.0