Selaa lähdekoodia

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

liujiankang 7 vuotta sitten
vanhempi
commit
aba1b40aef
73 muutettua tiedostoa jossa 2180 lisäystä ja 562 poistoa
  1. 43 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/address/City.java
  2. 33 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/address/Country.java
  3. 43 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/address/District.java
  4. 43 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/address/Province.java
  5. 28 2
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerInfo.java
  6. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/QuestionDescribe.java
  7. 37 13
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/Visit.java
  8. 35 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/address/AddressService.java
  9. 14 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java
  10. 18 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/QuestionDescribeService.java
  11. 32 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/VisitService.java
  12. 6 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachinePartsService.java
  13. 37 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/address/AddressServiceImpl.java
  14. 35 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/AddressMapper.java
  15. 53 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/addressMapper.xml
  16. 10 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
  17. 24 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/QuestionDescribeServiceImpl.java
  18. 50 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/VisitServiceImpl.java
  19. 12 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/CustomerInfoMapper.java
  20. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/QuestionDescribeMapper.java
  21. 20 5
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/VisitMapper.java
  22. 45 162
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml
  23. 13 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/questionDescribeMapper.xml
  24. 43 128
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/visitMapper.xml
  25. 4 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachinePartsServiceImpl.java
  26. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachinePartsMapper.java
  27. 49 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machinePartsMapper.xml
  28. 78 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/address/AddressController.java
  29. 191 2
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  30. 1 1
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminPtsBomController.java
  31. 12 0
      watero-rst-web/src/main/java/com/iamberry/rst/utils/produceUtil.java
  32. 7 0
      watero-rst-web/src/main/resources/watero-rst-orm.xml
  33. 2 3
      watero-rst-web/src/main/webapp/WEB-INF/views/base/add_base.ftl
  34. 3 3
      watero-rst-web/src/main/webapp/WEB-INF/views/base/list_base.ftl
  35. 337 46
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl
  36. 506 26
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_list.ftl
  37. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_detect.ftl
  38. 3 3
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_list.ftl
  39. 1 0
      watero-rst-web/src/main/webapp/WEB-INF/views/order/excel_to_order.ftl
  40. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/batch/add_batch.ftl
  41. 5 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/batch/batch_list.ftl
  42. 3 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/batch/update_batch.ftl
  43. 4 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/add_bom.ftl
  44. 3 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/bom_details.ftl
  45. 4 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/bom_list.ftl
  46. 3 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/update_bom.ftl
  47. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/add_device.ftl
  48. 5 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/device_list.ftl
  49. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/update_device.ftl
  50. 4 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/update_process.ftl
  51. 4 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/employee/employee_list.ftl
  52. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/employee/save_employee.ftl
  53. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/employee/update_employee.ftl
  54. 4 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/addRenovationMachine.ftl
  55. 4 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/batchAddMachine.ftl
  56. 4 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_List.ftl
  57. 4 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_particulars.ftl
  58. 13 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl
  59. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/producedAbnormalityStatistics.ftl
  60. 4 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machinePtras/parts_list.ftl
  61. 24 1
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machinePtras/ptras_add.ftl
  62. 2 1
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machineVersion/version_list.ftl
  63. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/produce_list.ftl
  64. 63 62
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/save_produce.ftl
  65. 16 17
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/update_produce.ftl
  66. 3 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/supplier/add_supplier.ftl
  67. 4 4
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/supplier/supplier_list.ftl
  68. 3 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/supplier/update_supplier.ftl
  69. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/sys/add_admin.ftl
  70. BIN
      watero-rst-web/src/main/webapp/common/images/pts/noImage.png
  71. 82 0
      watero-rst-web/src/main/webapp/common/js/common/common.js
  72. 1 1
      wateroPF-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java
  73. 3 2
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/wechat/WeChatServiceImpl.java

+ 43 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/address/City.java

@@ -0,0 +1,43 @@
+package com.iamberry.rst.core.address;
+
+public class City {
+    private Long cityId;
+
+    private Long provinceId;
+
+    private String city;
+
+    private Integer divisionCode;
+
+    public Long getCityId() {
+        return cityId;
+    }
+
+    public void setCityId(Long cityId) {
+        this.cityId = cityId;
+    }
+
+    public Long getProvinceId() {
+        return provinceId;
+    }
+
+    public void setProvinceId(Long provinceId) {
+        this.provinceId = provinceId;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city == null ? null : city.trim();
+    }
+
+    public Integer getDivisionCode() {
+        return divisionCode;
+    }
+
+    public void setDivisionCode(Integer divisionCode) {
+        this.divisionCode = divisionCode;
+    }
+}

+ 33 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/address/Country.java

@@ -0,0 +1,33 @@
+package com.iamberry.rst.core.address;
+
+public class Country {
+    private Long countryId;
+
+    private String countryName;
+
+    private String countryNo;
+
+    public Long getCountryId() {
+        return countryId;
+    }
+
+    public void setCountryId(Long countryId) {
+        this.countryId = countryId;
+    }
+
+    public String getCountryName() {
+        return countryName;
+    }
+
+    public void setCountryName(String countryName) {
+        this.countryName = countryName == null ? null : countryName.trim();
+    }
+
+    public String getCountryNo() {
+        return countryNo;
+    }
+
+    public void setCountryNo(String countryNo) {
+        this.countryNo = countryNo == null ? null : countryNo.trim();
+    }
+}

+ 43 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/address/District.java

@@ -0,0 +1,43 @@
+package com.iamberry.rst.core.address;
+
+public class District {
+    private Long districtId;
+
+    private Long cityId;
+
+    private String district;
+
+    private Integer divisionCode;
+
+    public Long getDistrictId() {
+        return districtId;
+    }
+
+    public void setDistrictId(Long districtId) {
+        this.districtId = districtId;
+    }
+
+    public Long getCityId() {
+        return cityId;
+    }
+
+    public void setCityId(Long cityId) {
+        this.cityId = cityId;
+    }
+
+    public String getDistrict() {
+        return district;
+    }
+
+    public void setDistrict(String district) {
+        this.district = district == null ? null : district.trim();
+    }
+
+    public Integer getDivisionCode() {
+        return divisionCode;
+    }
+
+    public void setDivisionCode(Integer divisionCode) {
+        this.divisionCode = divisionCode;
+    }
+}

+ 43 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/address/Province.java

@@ -0,0 +1,43 @@
+package com.iamberry.rst.core.address;
+
+public class Province {
+    private Long provinceId;
+
+    private Long countryId;
+
+    private String province;
+
+    private Integer divisionCode;
+
+    public Long getProvinceId() {
+        return provinceId;
+    }
+
+    public void setProvinceId(Long provinceId) {
+        this.provinceId = provinceId;
+    }
+
+    public Long getCountryId() {
+        return countryId;
+    }
+
+    public void setCountryId(Long countryId) {
+        this.countryId = countryId;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province == null ? null : province.trim();
+    }
+
+    public Integer getDivisionCode() {
+        return divisionCode;
+    }
+
+    public void setDivisionCode(Integer divisionCode) {
+        this.divisionCode = divisionCode;
+    }
+}

+ 28 - 2
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerInfo.java

@@ -27,7 +27,7 @@ public class CustomerInfo  implements Serializable {
     private Integer customerCounselType;
     //  用户姓名 
     private String customerName;
-    //  用户手机号码 
+    //  用户手机号码
     private String customerTel;
     //  处理结果: 1:已解决  2:未解决 3:换新  4:维修 5:补发 6:退货 7:无理由退货  
     private Integer customerIsSolve;
@@ -43,12 +43,12 @@ public class CustomerInfo  implements Serializable {
     private Date customerCreateTime;
     //  修改时间 ,
     private Date customerUpdateTime;
-
     //  问题标题
     private String customerQuestionTitle;
 
     private String productName;         //客诉产品
     private String complaintClassName;  //客诉类型名称
+    private Integer complaintId;        //客诉类型id
     private String smallClassName;      //客诉小类名称
     private String describeTitle;       //客诉问题标题
     private String companyName;         //销售公司名称
@@ -60,6 +60,32 @@ public class CustomerInfo  implements Serializable {
     private Date salesTime;             //购买日期
     private Integer backStatus;         //寄回状态
     private Integer sendStatus;         //寄送状态
+    private Integer visitStatus;        //回访状态
+    private Date visitCompleteDate;     //回访完成时间
+
+    public Integer getVisitStatus() {
+        return visitStatus;
+    }
+
+    public void setVisitStatus(Integer visitStatus) {
+        this.visitStatus = visitStatus;
+    }
+
+    public Date getVisitCompleteDate() {
+        return visitCompleteDate;
+    }
+
+    public void setVisitCompleteDate(Date visitCompleteDate) {
+        this.visitCompleteDate = visitCompleteDate;
+    }
+
+    public Integer getComplaintId() {
+        return complaintId;
+    }
+
+    public void setComplaintId(Integer complaintId) {
+        this.complaintId = complaintId;
+    }
 
     public Integer getBackStatus() {
         return backStatus;

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/QuestionDescribe.java

@@ -15,6 +15,16 @@ public class QuestionDescribe implements Serializable {
     //   客诉主键  ,
     private Integer customerId;
 
+    private String describeTitle;   //客诉标题
+
+    public String getDescribeTitle() {
+        return describeTitle;
+    }
+
+    public void setDescribeTitle(String describeTitle) {
+        this.describeTitle = describeTitle;
+    }
+
     public Integer getDescribeId() {
         return describeId;
     }

+ 37 - 13
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/Visit.java

@@ -1,8 +1,14 @@
 package com.iamberry.rst.core.cm;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
 import java.util.Date;
 
-public class Visit {
+public class Visit implements Serializable {
+
+    private static final long serialVersionUID = 2472568693811968905L;
     private Integer visitId;
 
     private Integer customerId;
@@ -13,12 +19,16 @@ public class Visit {
 
     private String visitTel;
 
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date visitDate;
 
-    private Boolean visitTimeSelect;
+    private Integer visitTimeSelect;
 
-    private Byte visitStatus;
+    private Integer visitStatus;
 
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date visitCompleteDate;
 
     private String visitCompleteName;
@@ -27,10 +37,24 @@ public class Visit {
 
     private String visitCompleteRemark;
 
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date visitCreateTime;
 
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date visitUpdateTime;
 
+    private Integer visitCompleteSex;       //回访人性别
+
+    public Integer getVisitCompleteSex() {
+        return visitCompleteSex;
+    }
+
+    public void setVisitCompleteSex(Integer visitCompleteSex) {
+        this.visitCompleteSex = visitCompleteSex;
+    }
+
     public Integer getVisitId() {
         return visitId;
     }
@@ -79,19 +103,11 @@ public class Visit {
         this.visitDate = visitDate;
     }
 
-    public Boolean getVisitTimeSelect() {
-        return visitTimeSelect;
-    }
-
-    public void setVisitTimeSelect(Boolean visitTimeSelect) {
-        this.visitTimeSelect = visitTimeSelect;
-    }
-
-    public Byte getVisitStatus() {
+    public Integer getVisitStatus() {
         return visitStatus;
     }
 
-    public void setVisitStatus(Byte visitStatus) {
+    public void setVisitStatus(Integer visitStatus) {
         this.visitStatus = visitStatus;
     }
 
@@ -142,4 +158,12 @@ public class Visit {
     public void setVisitUpdateTime(Date visitUpdateTime) {
         this.visitUpdateTime = visitUpdateTime;
     }
+
+    public Integer getVisitTimeSelect() {
+        return visitTimeSelect;
+    }
+
+    public void setVisitTimeSelect(Integer visitTimeSelect) {
+        this.visitTimeSelect = visitTimeSelect;
+    }
 }

+ 35 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/address/AddressService.java

@@ -0,0 +1,35 @@
+package com.iamberry.rst.faces.address;
+
+import com.iamberry.rst.core.address.City;
+import com.iamberry.rst.core.address.District;
+import com.iamberry.rst.core.address.Province;
+
+import java.util.List;
+
+/**
+ * 获取地址接口
+ */
+public interface AddressService {
+
+    /**
+     *  获取省
+     * @param province
+     * @return
+     */
+    List<Province> listProvince(Province province);
+
+    /**
+     *  获取市
+     * @param city
+     * @return
+     */
+    List<City> listCity(City city);
+
+    /**
+     *  获取省
+     * @param district
+     * @return
+     */
+    List<District> listDistrict(District district);
+
+}

+ 14 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java

@@ -11,6 +11,20 @@ import java.util.List;
 public interface CustomerService {
 
     /**
+     * 根据id获取客诉信息
+     * @param customerId
+     * @return
+     */
+    CustomerInfo getCustomerInfo(Integer customerId);
+
+    /**
+     * 修改客诉信息
+     * @param record
+     * @return
+     */
+    Integer updateCustomerInfo(CustomerInfo record);
+
+    /**
      *  查询客诉基本信息列表
      * @param customerInfo
      * @return

+ 18 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/QuestionDescribeService.java

@@ -0,0 +1,18 @@
+package com.iamberry.rst.faces.cm;
+
+import com.iamberry.rst.core.cm.QuestionDescribe;
+
+import java.util.List;
+
+/**
+ * Created by liuzhiwei on 2017/11/6.
+ */
+public interface QuestionDescribeService {
+
+    /**
+     * 查询问题集合
+     * @param record
+     * @return
+     */
+    List<QuestionDescribe> listQuestionDescribe(QuestionDescribe record);
+}

+ 32 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/VisitService.java

@@ -0,0 +1,32 @@
+package com.iamberry.rst.faces.cm;
+
+import com.iamberry.rst.core.cm.Visit;
+
+import java.util.List;
+
+/**
+ * Created by liuzhiwei on 2017/11/3.
+ */
+public interface VisitService {
+
+    /**
+     * 添加客诉回访信息
+     * @param visit
+     * @return
+     */
+    Integer addVisitInfo(Visit visit, int customerId);
+
+    /**
+     * 修改回访信息内容
+     * @param visit
+     * @return
+     */
+    Integer updateVisit(Visit visit);
+
+    /**
+     * 查询回访列表
+     * @param visit
+     * @return
+     */
+    List<Visit> listVisit(Visit visit);
+}

+ 6 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachinePartsService.java

@@ -27,6 +27,12 @@ public interface MachinePartsService {
     List<PtsComponents> listPtsComponents(PtsComponents ptsComponents);
 
     /**
+     * 获取所有的零件
+     * 按照零件编号排序
+     * **/
+    List<PtsComponents> listPtsComponentsOrderByNo(PtsComponents ptsComponents);
+
+    /**
      * 查询零件列表
      * **/
     PagedResult<PtsComponents> listPtsComponents(int pageNO, int pageSize, PtsComponents ptsComponents, boolean isTotalNum);

+ 37 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/address/AddressServiceImpl.java

@@ -0,0 +1,37 @@
+package com.iamberry.rst.service.address;
+
+
+import com.iamberry.rst.core.address.City;
+import com.iamberry.rst.core.address.District;
+import com.iamberry.rst.core.address.Province;
+import com.iamberry.rst.faces.address.AddressService;
+import com.iamberry.rst.service.address.mapper.AddressMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class AddressServiceImpl implements AddressService {
+
+    @Autowired
+    private AddressMapper addressMapper;
+
+    @Override
+    public List<Province> listProvince(Province province) {
+        province.setCountryId((long) 1);
+        return addressMapper.listProvince(province);
+    }
+
+    @Override
+    public List<City> listCity(City city) {
+        return addressMapper.listCity(city);
+    }
+
+    @Override
+    public List<District> listDistrict(District district) {
+        return addressMapper.listDistrict(district);
+    }
+
+
+}

+ 35 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/AddressMapper.java

@@ -0,0 +1,35 @@
+package com.iamberry.rst.service.address.mapper;
+
+import com.iamberry.rst.core.address.City;
+import com.iamberry.rst.core.address.District;
+import com.iamberry.rst.core.address.Province;
+
+import java.util.List;
+
+/**
+ * 获取省市区
+ */
+public interface AddressMapper {
+
+    /**
+     *  获取省
+     * @param province
+     * @return
+     */
+    List<Province> listProvince(Province province);
+
+    /**
+     *  获取市
+     * @param city
+     * @return
+     */
+    List<City> listCity(City city);
+
+    /**
+     *  获取省
+     * @param district
+     * @return
+     */
+    List<District> listDistrict(District district);
+
+}

+ 53 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/addressMapper.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.iamberry.rst.service.address.mapper.AddressMapper" >
+
+  <select id="listProvince" resultType="Province" parameterType="Province" >
+    select 
+    province_id, country_id, province, division_code
+    from tb_rst_address_province
+    <where>
+      <if test="countryId !=null and countryId !=''">
+            country_id = #{countryId}
+      </if>
+      <if test="province !=null and province !=''">
+            AND province like CONCAT('%',#{province},'%')
+      </if>
+    </where>
+  </select>
+
+  <select id="listCity" resultType="City" parameterType="City" >
+    select
+        city_id,
+        province_id,
+        city,
+        division_code
+    from tb_rst_address_city
+    <where>
+      <if test="provinceId !=null and provinceId !=''">
+        province_id = #{provinceId}
+      </if>
+      <if test="city !=null and city !=''">
+        AND city like CONCAT('%',#{city},'%')
+      </if>
+    </where>
+  </select>
+
+  <select id="listDistrict" resultType="District" parameterType="District" >
+    SELECT
+      district_id,
+      city_id,
+      district,
+      division_code
+    from tb_rst_address_district
+    <where>
+      <if test="cityId !=null and cityId !=''">
+        city_id = #{cityId}
+      </if>
+        <if test="district !=null and district !=''">
+            AND district like CONCAT('%',#{district},'%')
+        </if>
+    </where>
+  </select>
+
+</mapper>

+ 10 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -29,6 +29,16 @@ public class CustomerServiceImpl implements CustomerService {
     private RenewedMapper renewedMapper;
 
     @Override
+    public CustomerInfo getCustomerInfo(Integer customerId) {
+        return customerInfoMapper.getCustomerInfo(customerId);
+    }
+
+    @Override
+    public Integer updateCustomerInfo(CustomerInfo record) {
+        return customerInfoMapper.updateCustomerInfo(record);
+    }
+
+    @Override
     public PagedResult<CustomerInfo> listCustomer(int pageNO, int pageSize, CustomerInfo customerInfo, boolean isTotalNum) {
         PageHelper.startPage(pageNO, pageSize, isTotalNum);
         //查询客诉列表

+ 24 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/QuestionDescribeServiceImpl.java

@@ -0,0 +1,24 @@
+package com.iamberry.rst.service.cm;
+
+import com.iamberry.rst.core.cm.QuestionDescribe;
+import com.iamberry.rst.faces.cm.QuestionDescribeService;
+import com.iamberry.rst.service.cm.mapper.QuestionDescribeMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * Created by Administrator on 2017/11/6.
+ */
+@Service
+public class QuestionDescribeServiceImpl implements QuestionDescribeService {
+
+    @Autowired
+    private QuestionDescribeMapper questionDescribeMapper;
+
+    @Override
+    public List<QuestionDescribe> listQuestionDescribe(QuestionDescribe record) {
+        return questionDescribeMapper.listQuestionDescribe(record);
+    }
+}

+ 50 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/VisitServiceImpl.java

@@ -0,0 +1,50 @@
+package com.iamberry.rst.service.cm;
+
+import com.iamberry.rst.core.cm.CustomerInfo;
+import com.iamberry.rst.core.cm.Visit;
+import com.iamberry.rst.faces.cm.VisitService;
+import com.iamberry.rst.service.cm.mapper.CustomerInfoMapper;
+import com.iamberry.rst.service.cm.mapper.VisitMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 客诉回访service
+ * Created by liuzhiwei on 2017/11/3.
+ */
+@Service
+public class VisitServiceImpl implements VisitService {
+
+    @Autowired
+    private VisitMapper visitMapper;
+    @Autowired
+    private CustomerInfoMapper customerInfoMapper;
+
+    @Transactional
+    @Override
+    public Integer addVisitInfo(Visit visit, int customerId) {
+        CustomerInfo customerInfo = new CustomerInfo();
+        customerInfo.setCustomerId(customerId);
+        customerInfo.setCustomerIsVisit("2");
+        int sum = customerInfoMapper.updateCustomerInfo(customerInfo);
+        int num = visitMapper.addVisitInfo(visit);
+        if (sum > 0 && num > 0) {
+            return 1;
+        } else {
+            return 0;
+        }
+    }
+
+    @Override
+    public Integer updateVisit(Visit visit) {
+        return visitMapper.updateVisit(visit);
+    }
+
+    @Override
+    public List<Visit> listVisit(Visit visit) {
+        return visitMapper.listVisit(visit);
+    }
+}

+ 12 - 4
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/CustomerInfoMapper.java

@@ -11,11 +11,19 @@ public interface CustomerInfoMapper {
 
     int insertSelective(CustomerInfo record);
 
-    CustomerInfo selectByPrimaryKey(Integer customerId);
-
-    int updateByPrimaryKeySelective(CustomerInfo record);
+    /**
+     * 根据id获取客诉信息
+     * @param customerId
+     * @return
+     */
+    CustomerInfo getCustomerInfo(Integer customerId);
 
-    int updateByPrimaryKey(CustomerInfo record);
+    /**
+     * 修改客诉信息
+     * @param record
+     * @return
+     */
+    Integer updateCustomerInfo(CustomerInfo record);
 
     /**
      *  查询客诉基本信息列表

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/QuestionDescribeMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.QuestionDescribe;
 
+import java.util.List;
+
 public interface QuestionDescribeMapper {
     int deleteByPrimaryKey(Integer describeId);
 
@@ -14,4 +16,11 @@ public interface QuestionDescribeMapper {
     int updateByPrimaryKeySelective(QuestionDescribe record);
 
     int updateByPrimaryKey(QuestionDescribe record);
+
+    /**
+     * 查询问题集合
+     * @param record
+     * @return
+     */
+    List<QuestionDescribe> listQuestionDescribe(QuestionDescribe record);
 }

+ 20 - 5
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/VisitMapper.java

@@ -2,16 +2,31 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.Visit;
 
+import java.util.List;
+
 public interface VisitMapper {
     int deleteByPrimaryKey(Integer visitId);
 
-    int insert(Visit record);
-
-    int insertSelective(Visit record);
+    /**
+     * 添加客诉回访信息
+     * @param visit
+     * @return
+     */
+    Integer addVisitInfo(Visit visit);
 
     Visit selectByPrimaryKey(Integer visitId);
 
-    int updateByPrimaryKeySelective(Visit record);
+    /**
+     * 修改回访信息内容
+     * @param visit
+     * @return
+     */
+    Integer updateVisit(Visit visit);
 
-    int updateByPrimaryKey(Visit record);
+    /**
+     * 查询回访列表
+     * @param visit
+     * @return
+     */
+    List<Visit> listVisit(Visit visit);
 }

+ 45 - 162
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml

@@ -25,7 +25,9 @@
     customer_counsel_type, customer_name, customer_tel, customer_is_solve, customer_is_visit, 
     customer_in_TDS, customer_out_TDS, customer_area, customer_create_time, customer_update_time
   </sql>
-  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+
+  <!-- 根据id获取客诉信息 -->
+  <select id="getCustomerInfo" resultType="CustomerInfo" parameterType="java.lang.Integer" >
     select 
     <include refid="Base_Column_List" />
     from tb_rst_customer_info
@@ -48,7 +50,7 @@
       c.customer_source customerSource,
       t.type_name typeName,
       ct.complaint_class_name complaintClassName,
-      sc.small_class_name smallClassName,
+      s.small_class_name smallClassName,
       d.describe_title describeTitle,
       sc.company_name companyName,
       si.store_name storeName,
@@ -57,7 +59,10 @@
       c.customer_out_TDS customerOutTDS,
       c.customer_is_solve customerIsSolve,
       c.customer_is_visit customerIsVisit,
-      c.customer_create_time customerCreateTime
+      c.customer_create_time customerCreateTime,
+      v.visit_status visitStatus,
+      v.visit_complete_date visitCompleteDate,
+      cd.detect_state detectState
     from
       tb_rst_customer_info c
     LEFT JOIN tb_rst_question_describe d ON c.customer_id = d.customer_id
@@ -68,24 +73,29 @@
     LEFT JOIN tb_rst_sales_company sc ON c.company_id = sc.company_id
     LEFT JOIN tb_rst_store_info si ON c.store_id = si.store_id
     LEFT JOIN tb_rst_sys_admin a ON c.admin_id = a.admin_id
+    LEFT JOIN tb_rst_visit v ON v.customer_id = c.customer_id
+    LEFT JOIN tb_rst_complaint_detect cd ON cd.customer_id = c.customer_id
     <where>
       <if test="customerName != null and customerName != ''">
-        customer_name = #{customerName}
+        c.customer_name like CONCAT('%',#{customerName},'%')
       </if>
       <if test="customerTel != null and customerTel != ''">
-        and customer_tel = #{customerTel}
+        and c.customer_tel like CONCAT('%',#{customerTel},'%')
       </if>
-      <if test="customerName != null and customerName != ''">
-        customer_name = #{customerName}
+      <if test="describeTitle != null and describeTitle != ''">
+        and d.describe_title like CONCAT('%',#{describeTitle},'%')
       </if>
-      <if test="customerName != null and customerName != ''">
-        customer_name = #{customerName}
+      <if test="customerSourceType != null and customerSourceType != ''">
+        and c.customer_source_type = #{customerSourceType}
       </if>
-      <if test="customerName != null and customerName != ''">
-        customer_name = #{customerName}
+      <if test="complaintId != null and complaintId != ''">
+        and ct.complaint_id = #{complaintId}
       </if>
-      <if test="customerName != null and customerName != ''">
-        customer_name = #{customerName}
+      <if test="customerIsVisit != null and customerIsVisit != ''">
+        and c.customer_is_visit = #{customerIsVisit}
+      </if>
+      <if test="adminId != null and adminId != ''">
+        and c.admin_id = #{adminId}
       </if>
     </where>
   </select>
@@ -106,187 +116,60 @@
       #{customerCreateTime,jdbcType=TIMESTAMP}, #{customerUpdateTime,jdbcType=TIMESTAMP}
       )
   </insert>
-  <insert id="insertSelective" parameterType="CustomerInfo" >
-    insert into tb_rst_customer_info
-    <trim prefix="(" suffix=")" suffixOverrides="," >
-      <if test="customerId != null" >
-        customer_id,
-      </if>
-      <if test="adminId != null" >
-        admin_id,
-      </if>
-      <if test="questionId != null" >
-        question_id,
-      </if>
-      <if test="companyId != null" >
-        company_id,
-      </if>
-      <if test="storeId != null" >
-        store_id,
-      </if>
-      <if test="customerSourceType != null" >
-        customer_source_type,
-      </if>
-      <if test="customerSource != null" >
-        customer_source,
-      </if>
-      <if test="customerCounselType != null" >
-        customer_counsel_type,
-      </if>
-      <if test="customerName != null" >
-        customer_name,
-      </if>
-      <if test="customerTel != null" >
-        customer_tel,
-      </if>
-      <if test="customerIsSolve != null" >
-        customer_is_solve,
-      </if>
-      <if test="customerIsVisit != null" >
-        customer_is_visit,
-      </if>
-      <if test="customerInTds != null" >
-        customer_in_TDS,
-      </if>
-      <if test="customerOutTds != null" >
-        customer_out_TDS,
-      </if>
-      <if test="customerArea != null" >
-        customer_area,
-      </if>
-      <if test="customerCreateTime != null" >
-        customer_create_time,
-      </if>
-      <if test="customerUpdateTime != null" >
-        customer_update_time,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides="," >
-      <if test="customerId != null" >
-        #{customerId,jdbcType=INTEGER},
-      </if>
-      <if test="adminId != null" >
-        #{adminId,jdbcType=INTEGER},
-      </if>
-      <if test="questionId != null" >
-        #{questionId,jdbcType=INTEGER},
-      </if>
-      <if test="companyId != null" >
-        #{companyId,jdbcType=INTEGER},
-      </if>
-      <if test="storeId != null" >
-        #{storeId,jdbcType=INTEGER},
-      </if>
-      <if test="customerSourceType != null" >
-        #{customerSourceType,jdbcType=TINYINT},
-      </if>
-      <if test="customerSource != null" >
-        #{customerSource,jdbcType=VARCHAR},
-      </if>
-      <if test="customerCounselType != null" >
-        #{customerCounselType,jdbcType=BIT},
-      </if>
-      <if test="customerName != null" >
-        #{customerName,jdbcType=VARCHAR},
-      </if>
-      <if test="customerTel != null" >
-        #{customerTel,jdbcType=VARCHAR},
-      </if>
-      <if test="customerIsSolve != null" >
-        #{customerIsSolve,jdbcType=TINYINT},
-      </if>
-      <if test="customerIsVisit != null" >
-        #{customerIsVisit,jdbcType=VARCHAR},
-      </if>
-      <if test="customerInTds != null" >
-        #{customerInTds,jdbcType=INTEGER},
-      </if>
-      <if test="customerOutTds != null" >
-        #{customerOutTds,jdbcType=INTEGER},
-      </if>
-      <if test="customerArea != null" >
-        #{customerArea,jdbcType=VARCHAR},
-      </if>
-      <if test="customerCreateTime != null" >
-        #{customerCreateTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="customerUpdateTime != null" >
-        #{customerUpdateTime,jdbcType=TIMESTAMP},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="CustomerInfo" >
+
+  <!-- 修改客诉信息 -->
+  <update id="updateCustomerInfo" parameterType="CustomerInfo" >
     update tb_rst_customer_info
     <set >
       <if test="adminId != null" >
-        admin_id = #{adminId,jdbcType=INTEGER},
+        admin_id = #{adminId},
       </if>
       <if test="questionId != null" >
-        question_id = #{questionId,jdbcType=INTEGER},
+        question_id = #{questionId},
       </if>
       <if test="companyId != null" >
-        company_id = #{companyId,jdbcType=INTEGER},
+        company_id = #{companyId},
       </if>
       <if test="storeId != null" >
-        store_id = #{storeId,jdbcType=INTEGER},
+        store_id = #{storeId},
       </if>
       <if test="customerSourceType != null" >
-        customer_source_type = #{customerSourceType,jdbcType=TINYINT},
+        customer_source_type = #{customerSourceType},
       </if>
       <if test="customerSource != null" >
-        customer_source = #{customerSource,jdbcType=VARCHAR},
+        customer_source = #{customerSource},
       </if>
       <if test="customerCounselType != null" >
-        customer_counsel_type = #{customerCounselType,jdbcType=BIT},
+        customer_counsel_type = #{customerCounselType},
       </if>
       <if test="customerName != null" >
-        customer_name = #{customerName,jdbcType=VARCHAR},
+        customer_name = #{customerName},
       </if>
       <if test="customerTel != null" >
-        customer_tel = #{customerTel,jdbcType=VARCHAR},
+        customer_tel = #{customerTel},
       </if>
       <if test="customerIsSolve != null" >
-        customer_is_solve = #{customerIsSolve,jdbcType=TINYINT},
+        customer_is_solve = #{customerIsSolve},
       </if>
       <if test="customerIsVisit != null" >
-        customer_is_visit = #{customerIsVisit,jdbcType=VARCHAR},
+        customer_is_visit = #{customerIsVisit},
       </if>
-      <if test="customerInTds != null" >
-        customer_in_TDS = #{customerInTds,jdbcType=INTEGER},
+      <if test="customerInTDS != null" >
+        customer_in_TDS = #{customerInTDS},
       </if>
-      <if test="customerOutTds != null" >
-        customer_out_TDS = #{customerOutTds,jdbcType=INTEGER},
+      <if test="customerOutTDS != null" >
+        customer_out_TDS = #{customerOutTDS},
       </if>
       <if test="customerArea != null" >
-        customer_area = #{customerArea,jdbcType=VARCHAR},
+        customer_area = #{customerArea},
       </if>
       <if test="customerCreateTime != null" >
-        customer_create_time = #{customerCreateTime,jdbcType=TIMESTAMP},
+        customer_create_time = #{customerCreateTime},
       </if>
       <if test="customerUpdateTime != null" >
-        customer_update_time = #{customerUpdateTime,jdbcType=TIMESTAMP},
+        customer_update_time = #{customerUpdateTime},
       </if>
     </set>
-    where customer_id = #{customerId,jdbcType=INTEGER}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="CustomerInfo" >
-    update tb_rst_customer_info
-    set admin_id = #{adminId,jdbcType=INTEGER},
-      question_id = #{questionId,jdbcType=INTEGER},
-      company_id = #{companyId,jdbcType=INTEGER},
-      store_id = #{storeId,jdbcType=INTEGER},
-      customer_source_type = #{customerSourceType,jdbcType=TINYINT},
-      customer_source = #{customerSource,jdbcType=VARCHAR},
-      customer_counsel_type = #{customerCounselType,jdbcType=BIT},
-      customer_name = #{customerName,jdbcType=VARCHAR},
-      customer_tel = #{customerTel,jdbcType=VARCHAR},
-      customer_is_solve = #{customerIsSolve,jdbcType=TINYINT},
-      customer_is_visit = #{customerIsVisit,jdbcType=VARCHAR},
-      customer_in_TDS = #{customerInTds,jdbcType=INTEGER},
-      customer_out_TDS = #{customerOutTds,jdbcType=INTEGER},
-      customer_area = #{customerArea,jdbcType=VARCHAR},
-      customer_create_time = #{customerCreateTime,jdbcType=TIMESTAMP},
-      customer_update_time = #{customerUpdateTime,jdbcType=TIMESTAMP}
-    where customer_id = #{customerId,jdbcType=INTEGER}
+    where customer_id = #{customerId}
   </update>
 </mapper>

+ 13 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/questionDescribeMapper.xml

@@ -15,6 +15,19 @@
     from tb_rst_question_describe
     where describe_id = #{describeId,jdbcType=INTEGER}
   </select>
+
+  <!-- 查询问题集合 -->
+  <select id="listQuestionDescribe" parameterType="QuestionDescribe" resultType="QuestionDescribe">
+    select
+      *
+    from tb_rst_question_describe
+    <where>
+      <if test="customerId">
+        customer_id = #{customerId}
+      </if>
+    </where>
+  </select>
+
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
     delete from tb_rst_question_describe
     where describe_id = #{describeId,jdbcType=INTEGER}

+ 43 - 128
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/visitMapper.xml

@@ -28,173 +28,88 @@
     from tb_rst_visit
     where visit_id = #{visitId,jdbcType=INTEGER}
   </select>
+
+  <!-- 查询回访列表 -->
+  <select id="listVisit" parameterType="Visit" resultType="Visit">
+    SELECT
+      *
+    FROM
+      tb_rst_visit
+    <where>
+      customer_id = #{customerId}
+    </where>
+  </select>
+
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
     delete from tb_rst_visit
     where visit_id = #{visitId,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="Visit" >
+
+  <!-- 添加客诉回访信息 -->
+  <insert id="addVisitInfo" parameterType="Visit" >
     insert into tb_rst_visit (visit_id, customer_id, admin_id, 
       visit_name, visit_tel, visit_date, 
       visit_time_select, visit_status, visit_complete_date, 
       visit_complete_name, visit_complete_tel, visit_complete_remark, 
-      visit_create_time, visit_update_time)
+      visit_create_time, visit_update_time, visit_complete_sex)
     values (#{visitId,jdbcType=INTEGER}, #{customerId,jdbcType=INTEGER}, #{adminId,jdbcType=INTEGER}, 
       #{visitName,jdbcType=VARCHAR}, #{visitTel,jdbcType=CHAR}, #{visitDate,jdbcType=DATE}, 
       #{visitTimeSelect,jdbcType=BIT}, #{visitStatus,jdbcType=TINYINT}, #{visitCompleteDate,jdbcType=DATE}, 
       #{visitCompleteName,jdbcType=VARCHAR}, #{visitCompleteTel,jdbcType=CHAR}, #{visitCompleteRemark,jdbcType=VARCHAR}, 
-      #{visitCreateTime,jdbcType=TIMESTAMP}, #{visitUpdateTime,jdbcType=TIMESTAMP})
-  </insert>
-  <insert id="insertSelective" parameterType="Visit" >
-    insert into tb_rst_visit
-    <trim prefix="(" suffix=")" suffixOverrides="," >
-      <if test="visitId != null" >
-        visit_id,
-      </if>
-      <if test="customerId != null" >
-        customer_id,
-      </if>
-      <if test="adminId != null" >
-        admin_id,
-      </if>
-      <if test="visitName != null" >
-        visit_name,
-      </if>
-      <if test="visitTel != null" >
-        visit_tel,
-      </if>
-      <if test="visitDate != null" >
-        visit_date,
-      </if>
-      <if test="visitTimeSelect != null" >
-        visit_time_select,
-      </if>
-      <if test="visitStatus != null" >
-        visit_status,
-      </if>
-      <if test="visitCompleteDate != null" >
-        visit_complete_date,
-      </if>
-      <if test="visitCompleteName != null" >
-        visit_complete_name,
-      </if>
-      <if test="visitCompleteTel != null" >
-        visit_complete_tel,
-      </if>
-      <if test="visitCompleteRemark != null" >
-        visit_complete_remark,
-      </if>
-      <if test="visitCreateTime != null" >
-        visit_create_time,
-      </if>
-      <if test="visitUpdateTime != null" >
-        visit_update_time,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides="," >
-      <if test="visitId != null" >
-        #{visitId,jdbcType=INTEGER},
-      </if>
-      <if test="customerId != null" >
-        #{customerId,jdbcType=INTEGER},
-      </if>
-      <if test="adminId != null" >
-        #{adminId,jdbcType=INTEGER},
-      </if>
-      <if test="visitName != null" >
-        #{visitName,jdbcType=VARCHAR},
-      </if>
-      <if test="visitTel != null" >
-        #{visitTel,jdbcType=CHAR},
-      </if>
-      <if test="visitDate != null" >
-        #{visitDate,jdbcType=DATE},
-      </if>
-      <if test="visitTimeSelect != null" >
-        #{visitTimeSelect,jdbcType=BIT},
-      </if>
-      <if test="visitStatus != null" >
-        #{visitStatus,jdbcType=TINYINT},
-      </if>
-      <if test="visitCompleteDate != null" >
-        #{visitCompleteDate,jdbcType=DATE},
-      </if>
-      <if test="visitCompleteName != null" >
-        #{visitCompleteName,jdbcType=VARCHAR},
-      </if>
-      <if test="visitCompleteTel != null" >
-        #{visitCompleteTel,jdbcType=CHAR},
-      </if>
-      <if test="visitCompleteRemark != null" >
-        #{visitCompleteRemark,jdbcType=VARCHAR},
-      </if>
-      <if test="visitCreateTime != null" >
-        #{visitCreateTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="visitUpdateTime != null" >
-        #{visitUpdateTime,jdbcType=TIMESTAMP},
-      </if>
-    </trim>
+      #{visitCreateTime,jdbcType=TIMESTAMP}, #{visitUpdateTime,jdbcType=TIMESTAMP},
+      #{visitCompleteSex})
   </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="Visit" >
+  <!-- 修改回访信息内容 -->
+  <update id="updateVisit" parameterType="Visit" >
     update tb_rst_visit
     <set >
-      <if test="customerId != null" >
-        customer_id = #{customerId,jdbcType=INTEGER},
-      </if>
       <if test="adminId != null" >
-        admin_id = #{adminId,jdbcType=INTEGER},
+        admin_id = #{adminId},
       </if>
       <if test="visitName != null" >
-        visit_name = #{visitName,jdbcType=VARCHAR},
+        visit_name = #{visitName},
       </if>
       <if test="visitTel != null" >
-        visit_tel = #{visitTel,jdbcType=CHAR},
+        visit_tel = #{visitTel},
       </if>
       <if test="visitDate != null" >
-        visit_date = #{visitDate,jdbcType=DATE},
+        visit_date = #{visitDate},
       </if>
       <if test="visitTimeSelect != null" >
-        visit_time_select = #{visitTimeSelect,jdbcType=BIT},
+        visit_time_select = #{visitTimeSelect},
       </if>
       <if test="visitStatus != null" >
-        visit_status = #{visitStatus,jdbcType=TINYINT},
+        visit_status = #{visitStatus},
       </if>
       <if test="visitCompleteDate != null" >
-        visit_complete_date = #{visitCompleteDate,jdbcType=DATE},
+        visit_complete_date = #{visitCompleteDate},
       </if>
       <if test="visitCompleteName != null" >
-        visit_complete_name = #{visitCompleteName,jdbcType=VARCHAR},
+        visit_complete_name = #{visitCompleteName},
       </if>
       <if test="visitCompleteTel != null" >
-        visit_complete_tel = #{visitCompleteTel,jdbcType=CHAR},
+        visit_complete_tel = #{visitCompleteTel},
       </if>
       <if test="visitCompleteRemark != null" >
-        visit_complete_remark = #{visitCompleteRemark,jdbcType=VARCHAR},
+        visit_complete_remark = #{visitCompleteRemark},
       </if>
       <if test="visitCreateTime != null" >
-        visit_create_time = #{visitCreateTime,jdbcType=TIMESTAMP},
+        visit_create_time = #{visitCreateTime},
       </if>
       <if test="visitUpdateTime != null" >
-        visit_update_time = #{visitUpdateTime,jdbcType=TIMESTAMP},
+        visit_update_time = #{visitUpdateTime},
+      </if>
+      <if test="visitCompleteSex != null and visitCompleteSex != ''">
+        visit_complete_sex = #{visitCompleteSex},
       </if>
     </set>
-    where visit_id = #{visitId,jdbcType=INTEGER}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="Visit" >
-    update tb_rst_visit
-    set customer_id = #{customerId,jdbcType=INTEGER},
-      admin_id = #{adminId,jdbcType=INTEGER},
-      visit_name = #{visitName,jdbcType=VARCHAR},
-      visit_tel = #{visitTel,jdbcType=CHAR},
-      visit_date = #{visitDate,jdbcType=DATE},
-      visit_time_select = #{visitTimeSelect,jdbcType=BIT},
-      visit_status = #{visitStatus,jdbcType=TINYINT},
-      visit_complete_date = #{visitCompleteDate,jdbcType=DATE},
-      visit_complete_name = #{visitCompleteName,jdbcType=VARCHAR},
-      visit_complete_tel = #{visitCompleteTel,jdbcType=CHAR},
-      visit_complete_remark = #{visitCompleteRemark,jdbcType=VARCHAR},
-      visit_create_time = #{visitCreateTime,jdbcType=TIMESTAMP},
-      visit_update_time = #{visitUpdateTime,jdbcType=TIMESTAMP}
-    where visit_id = #{visitId,jdbcType=INTEGER}
+    <where>
+      <if test="visitId != null and visitId != ''">
+        visit_id = #{visitId}
+      </if>
+      <if test="customerId != null and customerId != ''">
+        and customer_id = #{customerId}
+      </if>
+    </where>
   </update>
 </mapper>

+ 4 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachinePartsServiceImpl.java

@@ -36,6 +36,10 @@ public class MachinePartsServiceImpl implements MachinePartsService {
         return machinePartsMapper.listPtsComponents(ptsComponents);
     }
 
+    public List<PtsComponents> listPtsComponentsOrderByNo(PtsComponents ptsComponents){
+        return machinePartsMapper.listPtsComponentsOrderByNo(ptsComponents);
+    }
+
     @Override
     public PagedResult<PtsComponents> listPtsComponents(int pageNO, int pageSize, PtsComponents ptsComponents, boolean isTotalNum) {
         PageHelper.startPage(pageNO, pageSize, isTotalNum);

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachinePartsMapper.java

@@ -27,6 +27,12 @@ public interface MachinePartsMapper {
     List<PtsComponents> listPtsComponents(PtsComponents ptsComponents);
 
     /**
+     * 获取所有的零件
+     * 按照零件编号排序
+     * **/
+    List<PtsComponents> listPtsComponentsOrderByNo(PtsComponents ptsComponents);
+
+    /**
      * 修改机器零件
      * **/
     Integer updateParts(PtsComponents ptsComponents);

+ 49 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machinePartsMapper.xml

@@ -100,6 +100,55 @@
         ORDER BY t.components_id DESC
     </select>
 
+    <select id="listPtsComponentsOrderByNo" parameterType="PtsComponents" resultType="PtsComponents" >
+        SELECT
+        t.components_id AS componentsId,
+        t.supplier_id AS supplierId,
+        t.produce_id AS produceId,
+        t.components_no AS componentsNo,
+        t.components_name AS componentsName,
+        t.components_type AS componentsType,
+        t.components_cost AS componentsCost,
+        t.components_weight AS componentsWeight,
+        t.components_material AS componentsMaterial,
+        t.components_mbsc AS componentsMbsc,
+        t.components_specification AS componentsSpecification,
+        t.components_img AS  componentsImg,
+        t.components_status AS componentsStatus,
+        t.components_desc AS componentsDesc,
+        t.components_create_time AS componentsCreateTime,
+        t.components_update_time AS componentsUpdateTime,
+        s.supplier_name AS supplierName,
+        trpp.produce_name AS  produceName
+        FROM
+        tb_rst_pts_components t LEFT JOIN tb_rst_pts_supplier s on t.supplier_id = s.supplier_id
+        LEFT JOIN tb_rst_pts_produce trpp ON t.produce_id = trpp.produce_id
+        <where>
+            <if test="componentsType !=null and componentsType !='' ">
+                AND t.components_type = #{componentsType}
+            </if>
+            <if test="componentsNo !=null and componentsNo !='' ">
+                AND t.components_no like CONCAT('%',#{componentsNo},'%')
+            </if>
+            <if test="produceId !=null and produceId !='' ">
+                AND t.produce_id = #{produceId}
+            </if>
+            <if test="componentsStatus !=null and componentsStatus !='' ">
+                AND t.components_status = #{componentsStatus}
+            </if>
+            <if test="componentsId !=null">
+                AND t.components_id = #{componentsId}
+            </if>
+            <if test="componentsName !=null and componentsName !='' ">
+                AND t.components_name like CONCAT('%',#{componentsName},'%')
+            </if>
+            <if test="supplierId !=null and supplierId !='' ">
+                AND t.supplier_id = #{supplierId}
+            </if>
+        </where>
+        ORDER BY t.components_no
+    </select>
+
     <update id="updateParts" parameterType="PtsComponents" >
         UPDATE tb_rst_pts_components
         <set>

+ 78 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/address/AddressController.java

@@ -0,0 +1,78 @@
+package com.iamberry.rst.controllers.address;
+
+import com.iamberry.rst.core.address.City;
+import com.iamberry.rst.core.address.District;
+import com.iamberry.rst.core.address.Province;
+import com.iamberry.rst.faces.address.AddressService;
+import com.iamberry.wechat.tools.ResponseJson;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.List;
+
+@Controller
+@RequestMapping("/address")
+public class AddressController {
+    @Autowired
+    private AddressService addressService;
+
+    /**
+     *  获取省
+     * @param province
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/list_province")
+    public ResponseJson listProvince(Province province) throws UnsupportedEncodingException {
+        ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+        List<Province> provinceList = addressService.listProvince(province);
+        rj.addResponseKeyValue("provinceList", provinceList);
+        if (provinceList == null || provinceList.size() < 1) {
+            return new ResponseJson(500, "查询失败", 500);
+        } else {
+            return rj;
+        }
+    }
+
+    /**
+     *  获取市
+     * @param city
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/list_city")
+    public ResponseJson listCity(City city){
+        ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+        List<City> cityList = addressService.listCity(city);
+        rj.addResponseKeyValue("cityList", cityList);
+        if (cityList == null || cityList.size() < 1) {
+            return new ResponseJson(500, "查询失败", 500);
+        } else {
+            return rj;
+        }
+    }
+
+    /**
+     *  获取省
+     * @param district
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/list_district")
+    public ResponseJson listDistrict(District district){
+        ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+        List<District> districtList = addressService.listDistrict(district);
+        rj.addResponseKeyValue("cityList", districtList);
+        if (districtList == null || districtList.size() < 1) {
+            return new ResponseJson(500, "查询失败", 500);
+        } else {
+            return rj;
+        }
+    }
+
+}

+ 191 - 2
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -7,8 +7,13 @@ import com.iamberry.rst.core.sys.Admin;
 import com.iamberry.rst.faces.cm.*;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sys.SysService;
+import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.StitchAttrUtil;
+import com.iamberry.rst.faces.cm.CompanyInfoService;
+import com.iamberry.rst.faces.cm.SalesOrderService;
+import com.iamberry.rst.faces.cm.StoreInfoService;
 import com.iamberry.wechat.tools.ResponseJson;
+import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -18,9 +23,9 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
+import javax.servlet.http.HttpSession;
+import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 /**
  * Created by wxm
@@ -43,6 +48,10 @@ public class AdminCustomerController {
     private SysService sysService;
     @Autowired
     private ComplaintTypeInfoService complaintTypeInfoService;
+    @Autowired
+    private VisitService visitService;
+    @Autowired
+    private QuestionDescribeService questionDescribeService;
 
     /**
      * 获取客诉列表
@@ -191,5 +200,185 @@ public class AdminCustomerController {
         StitchAttrUtil.setModelAndView(customerInfo, mv, "/admin/customer/select_customer_list", pagedResult);
         return mv;
     }
+
+    /**
+     * 添加回访信息
+     * @param request
+     * @param visit
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:add:visit")
+    @RequestMapping("/add_visit_info")
+    public ResponseJson addVisitInfo(HttpServletRequest request,Visit visit) {
+        String visitAdminId = request.getParameter("visitAdminId");
+        if (!StringUtils.isNotEmpty(visitAdminId)) {
+            return new ResponseJson(500, "请选择回访人!", 500);
+        }
+        visit.setAdminId(Integer.parseInt(visitAdminId));
+        visit.setVisitStatus(1);
+        visit.setVisitCreateTime(new Date());
+        int num = visitService.addVisitInfo(visit, visit.getCustomerId());
+        if (num > 0) {
+            return new ResponseJson(200, "修改成功!", 200);
+        } else {
+            return new ResponseJson(500, "修改失败!", 500);
+        }
+    }
+
+    /**
+     * 修改客诉状态为已解决
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:update:customerIsSolve")
+    @RequestMapping("/update_customerIsSolve")
+    public ResponseJson updateCustomerIsSolve(HttpServletRequest request) {
+        String customerId = request.getParameter("customerId");
+        if (!StringUtils.isNotEmpty(customerId)) {
+            return new ResponseJson(500, "该客诉信息不存在!", 500);
+        }
+
+        //根据id获取客诉信息
+        CustomerInfo customer = customerService.getCustomerInfo(Integer.parseInt(customerId));
+        if (customer == null) {
+            return new ResponseJson(500, "该客诉信息不存在!", 500);
+        }
+        if (customer.getCustomerIsSolve().intValue() != 2) {
+            return new ResponseJson(500, "该客诉信息不能修改为已解决状态!", 500);
+        }
+        CustomerInfo customerInfo = new CustomerInfo();
+        customerInfo.setCustomerId(Integer.parseInt(customerId));
+        customerInfo.setCustomerIsSolve(1);
+        //修改客诉信息
+        int num = customerService.updateCustomerInfo(customerInfo);
+        if (num > 0) {
+            return new ResponseJson(200, "修改成功!", 200);
+        } else {
+            return new ResponseJson(500, "修改失败!", 500);
+        }
+    }
+
+    /**
+     * 查询客服
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:add:customer")
+    @RequestMapping("/select_sys_admin")
+    public ResponseJson selectSysAdmin(HttpServletRequest request) {
+        ResponseJson rj = new ResponseJson(200, "修改成功!", 200);
+        Integer adminId = AdminUtils.getLoginAdminId();
+        Admin admin = new Admin();
+        List<Admin> adminList = sysService.listSelectAdmin(admin);
+        if (adminList.size()> 0) {
+            rj.addResponseKeyValue("adminList",adminList);
+            rj.addResponseKeyValue("adminId",adminId);
+            return rj;
+        } else {
+            return new ResponseJson(500, "修改失败!", 500);
+        }
+    }
+
+    /**
+     * 查询产品类型
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:add:customer")
+    @RequestMapping("/select_produce_type")
+    public ResponseJson selectProduceType(HttpServletRequest request) {
+        ResponseJson rj = new ResponseJson(200, "修改成功!", 200);
+
+        ProductType productType = new ProductType();
+        List<ProductType> productTypeList = productService.listProductType(productType);
+
+        if (productTypeList != null && productTypeList.size()> 0) {
+            rj.addResponseKeyValue("productTypeList",productTypeList);
+            return rj;
+        } else {
+            return new ResponseJson(500, "修改失败!", 500);
+        }
+    }
+
+    /**
+     * 添加回访完成内容
+     * @param request
+     * @param visit
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:update:visit")
+    @RequestMapping("/update_visit_finish")
+    public ResponseJson updateVisitFinish(HttpServletRequest request,Visit visit) {
+        String customerId = request.getParameter("finish_customerId");
+        if (!StringUtils.isNotEmpty(customerId)) {
+            return new ResponseJson(500, "该客诉信息不存在!", 500);
+        }
+        visit.setCustomerId(Integer.parseInt(customerId));
+        visit.setVisitStatus(2);
+        //修改回访信息内容
+        int num = visitService.updateVisit(visit);
+        if (num > 0) {
+            return new ResponseJson(200, "添加成功!", 200);
+        } else {
+            return new ResponseJson(500, "添加失败!", 500);
+        }
+    }
+
+    /**
+     * 获取回访信息详情
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:get:visit")
+    @RequestMapping("/get_visit_info")
+    public ResponseJson getVisitInfo(HttpServletRequest request) {
+        String customerId = request.getParameter("customerId");
+        if (!StringUtils.isNotEmpty(customerId)) {
+            return new ResponseJson(500, "该客诉信息不存在!", 500);
+        }
+        Visit visit = new Visit();
+        visit.setCustomerId(Integer.parseInt(customerId));
+        //查询回访信息集合
+        List<Visit> visitList = visitService.listVisit(visit);
+        if (visitList == null || visitList.size() == 0) {
+            return new ResponseJson(500, "该客诉没有回访信息!", 500);
+        }
+        visit = visitList.get(0);
+        ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+        rj.addResponseKeyValue("visit", visit);
+        return rj;
+    }
+
+    /**
+     * 获取问题描述信息
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("customer:get:describe")
+    @RequestMapping("/get_describe_info")
+    public ResponseJson getDescribeInfo(HttpServletRequest request) {
+        String customerId = request.getParameter("customerId");
+        if (!StringUtils.isNotEmpty(customerId)) {
+            return new ResponseJson(500, "该客诉信息不存在!", 500);
+        }
+        QuestionDescribe describe = new QuestionDescribe();
+        describe.setCustomerId(Integer.parseInt(customerId));
+        //查询问题集合
+        List<QuestionDescribe> questionList = questionDescribeService.listQuestionDescribe(describe);
+        if (questionList == null || questionList.size() == 0) {
+            return new ResponseJson(500, "该客诉信息没有问题描述!", 500);
+        }
+        describe = questionList.get(0);
+        ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+        rj.addResponseKeyValue("describe", describe);
+        return rj;
+    }
 }
 

+ 1 - 1
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminPtsBomController.java

@@ -203,7 +203,7 @@ public class AdminPtsBomController {
         ptsComponents.setProduceId(Integer.valueOf(produceId));
         ptsComponents.setComponentsStatus(1);
         //查询所有零件
-        List<PtsComponents> ptsComponentsList = machinePartsService.listPtsComponents(ptsComponents);
+        List<PtsComponents> ptsComponentsList = machinePartsService.listPtsComponentsOrderByNo(ptsComponents);
 
         if (ptsComponentsList != null) {
             ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);

+ 12 - 0
watero-rst-web/src/main/java/com/iamberry/rst/utils/produceUtil.java

@@ -0,0 +1,12 @@
+package com.iamberry.rst.utils;
+
+/**
+ * 产品util类
+ */
+public class produceUtil {
+
+    /*产品颜色:  新建客诉页面颜色  批次颜色*/
+    public static final String[] PRODUCE_COLOR = {"黑色","白色","金色","红色","蓝色","绿色","橙色","黄色","青色","紫色"};
+
+
+}

+ 7 - 0
watero-rst-web/src/main/resources/watero-rst-orm.xml

@@ -80,6 +80,10 @@
 		<typeAlias type="com.iamberry.rst.core.cm.StoreInfo" alias="StoreInfo"/>
 		<typeAlias type="com.iamberry.rst.core.cm.Visit" alias="Visit"/>
 
+		<typeAlias type="com.iamberry.rst.core.address.City" alias="City"/>
+		<typeAlias type="com.iamberry.rst.core.address.Country" alias="Country"/>
+		<typeAlias type="com.iamberry.rst.core.address.District" alias="District"/>
+		<typeAlias type="com.iamberry.rst.core.address.Province" alias="Province"/>
 	</typeAliases>
 	<!-- PageHelper -->
 	<plugins>
@@ -132,5 +136,8 @@
 		<mapper resource="com/iamberry/rst/service/cm/mapper/fittingsInfoMapper.xml"/>
 		<mapper resource="com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml"/>
 		<mapper resource="com/iamberry/rst/service/cm/mapper/storeInfoMapper.xml"/>
+
+		<mapper resource="com/iamberry/rst/service/address/mapper/addressMapper.xml"/>
+
 	</mappers>
 </configuration>

+ 2 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/base/add_base.ftl

@@ -25,8 +25,7 @@
 <script type="text/javascript" src="${path}/common/lib/jquery.validation/1.14.0/messages_zh.js"></script>
 <script type="text/javascript" src="${path}/common/lib/Validform/Validform_v5.3.2.js"></script>
 
-<script type="text/javascript" src="${path}/common/js/common/common.js"></script>
 <script type="text/javascript">
-    // 判断<script type="text/javascript" src="${path}/common/js/common/common.js"></script>
     var root_path = "${path}";
-</script>
+</script>
+<script type="text/javascript" src="${path}/common/js/common/common.js"></script>

+ 3 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/base/list_base.ftl

@@ -23,8 +23,8 @@
 <script type="text/javascript" src="${path}/common/lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
 <script type="text/javascript" src="${path}/common/lib/laypage/1.2/laypage.js"></script>
 
-<script type="text/javascript" src="${path}/common/js/common/common.js"></script>
 <script type="text/javascript">
-    // 判断
     var root_path = "${path}";
-</script>
+</script>
+
+<script type="text/javascript" src="${path}/common/js/common/common.js"></script>

+ 337 - 46
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl

@@ -70,12 +70,8 @@
             <div class="row cl">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>跟进客服:</label>
                 <div class="formControls col-4 col-sm-4"> <span class="select-box">
-				<select name="" class="select">
-					<option value="0">薇薇</option>
-					<option value="1">薇薇</option>
-					<option value="11">薇薇</option>
-					<option value="12">薇薇</option>
-					<option value="13">薇薇</option>
+				<select name="adminId" id="adminId" class="select">
+
 				</select>
 				</span>
                 </div>
@@ -84,7 +80,7 @@
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>来源入口:</label>
                 <div class="formControls col-10 col-sm-10 skin-minimal">
                     <div class="radio-box">
-                        <input type="radio" id="tel-1" name="sex" datatype="*" nullmsg="请选择来源入口!">
+                        <input type="radio" id="tel-1" name="sex" datatype="*"  checked nullmsg="请选择来源入口!">
                         <label for="tel-1">400电话</label>
                     </div>
                     <div class="radio-box">
@@ -102,15 +98,30 @@
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>咨询类型:</label>
                 <div class="formControls col-10 col-sm-10 skin-minimal">
                     <div class="radio-box">
-                        <input type="radio" id="tel-3" name="customerCounselType" datatype="*" nullmsg="请选择咨询类型!">
+                        <input type="radio" id="tel-3" name="customerCounselType" datatype="*" checked nullmsg="请选择咨询类型!" >
                         <label for="tel-3">售前咨询</label>
                     </div>
                     <div class="radio-box">
-                        <input type="radio" id="tel-4" name="tel">
+                        <input type="radio" id="tel-4" name="customerCounselType" datatype="*" nullmsg="请选择咨询类型!">
                         <label for="tel-4">售后咨询</label>
                     </div>
                 </div>
             </div>
+
+            <div class="row cl">
+                <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>产品类型:</label>
+                <div class="formControls col-10 col-sm-10 skin-minimal" id="produceTypeHtml">
+                    <div class="radio-box">
+                        <input type="radio" id="tel-3" name="produceType" datatype="*" nullmsg="请选择产品类型!">
+                        <label for="tel-3">净水机</label>
+                    </div>
+                    <div class="radio-box">
+                        <input type="radio" id="tel-3" name="produceType" datatype="*" nullmsg="请选择产品类型!">
+                        <label for="tel-4">冲奶机</label>
+                    </div>
+                </div>
+            </div>
+
             <div class="row cl" style="position: relative;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>客诉问题:</label>
                 <div class="formControls col-2 col-sm-2"> <span class="select-box">
@@ -139,14 +150,8 @@
                         <strong>相关QA</strong>
                         <ul id="question">
                             <#--<li class="ask">1、净水机面板操作不灵敏,是怎么回事?</li>
-                            <li class="answer">答:<span>1净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
-                            <li class="ask">2、净水机面板操作不灵敏,是怎么回事?</li>
-                            <li class="answer">答:<span>2净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
-                            <li class="ask">3、净水机面板操作不灵敏,是怎么回事?</li>
-                            <li class="answer">答:<span>3净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
-                            <li class="ask">4、净水机面板操作不灵敏,是怎么回事?</li>
-                            <li class="answer">答:<span>4净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
--->                        </ul>
+                            <li class="answer">答:<span>4净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>-->
+                        </ul>
                     </div>
                 </div>
 
@@ -210,7 +215,7 @@
             <div class="row cl">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-10 col-sm-10">
-                    <ul class="time-line-list">
+                    <ul class="time-line-list" id="processResultStatus">
                         <li><span class="arrow"></span><div class="number">1</div><div>录入客诉</div></li>
                         <li><span class="arrow"></span><div class="number">2</div><div>督促用户寄回</div></li>
                         <li><span class="arrow"></span><div class="number">3</div><div>录入快递单号</div></li>
@@ -232,35 +237,57 @@
                 <div class="formControls col-7 col-sm-7 text-c">
                     <table class="table table-border table-bg table-bordered">
                         <tr>
-                            <th>销售</th><th>订单号</th><th>姓名</th><th>电话</th><th>订单金额</th><th>购买产品</th><th>购买日期</th>
+                            <th style="text-align: center;">销售</th>
+                            <th style="text-align: center;">订单号</th>
+                            <th style="text-align: center;">姓名</th>
+                            <th style="text-align: center;">电话</th>
+                            <th style="text-align: center;">订单金额</th>
+                            <th style="text-align: center;">购买产品</th>
+                            <th style="text-align: center;">购买日期</th>
                         </tr>
                         <tr id="showOrder">
-                            <td>爱贝源-微信商城</td>
+                          <#--  <td>爱贝源-微信商城</td>
                             <td>1290387806</td>
                             <td>何小小</td>
                             <td>1882222888</td>
                             <td>¥3680</td>
                             <td>Watero净水机</td>
-                            <td>2017-06-06</td>
-                        </tr>
-                        <tr id="showOrderAddress">
+                            <td>2017-06-06</td>-->
                         </tr>
+                        <#--<tr id="showOrderAddress">-->
+                        <#--</tr>-->
                     </table>
                 </div>
             </div>
             <div class="row cl">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>收件信息:</label>
                 <div class="formControls col-2 col-sm-2">
-                    <input type="text" class="input-text" value="何秀刚" placeholder="填写收件人姓名" id="" name="">
+                    <input type="text" class="input-text" value="" placeholder="填写收件人姓名" id="sendName" name="sendName">
                 </div>
                 <div class="formControls col-2 col-sm-2">
-                    <input type="text" class="input-text" value="13800138000" placeholder="填写收件人手机号" id="" name="">
+                    <input type="text" class="input-text" value="" placeholder="填写收件人手机号" id="sendTel" name="sendTel">
                 </div>
             </div>
             <div class="row cl">
+                <input type="hidden" id="addressInfo">
                 <label class="form-label col-1 col-sm-1"></label>
-                <div class="formControls col-4 col-sm-4">
-                    <div id="province"></div>
+                <div class="formControls col-2 col-sm-2">
+                    <span class="select-box">
+                         <select id="province" class="select">
+                         </select>
+                     </span>
+                </div>
+                <div class="formControls col-2 col-sm-2">
+                    <span class="select-box">
+                        <select id="city" class="select">
+                        </select>
+                    </span>
+                </div>
+                <div class="formControls col-2 col-sm-2">
+                    <span class="select-box">
+                        <select id="district" class="select">
+                        </select>
+                    </span>
                 </div>
                 <div class="formControls col-1 col-sm-1">
                     <button type="button" class="btn btn-primary">修改收货地址</button>
@@ -269,7 +296,8 @@
             <div class="row cl">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-5 col-sm-5">
-                    <textarea name="" cols="" rows="2" class="textarea" placeholder="请填写详细地址">莲花街道深南大道特区报业大厦12b</textarea>
+                    <textarea name="" id="sendAddress" cols="" rows="2" class="textarea" placeholder="请填写详细地址"></textarea>
+                    <span id="addrssMsg"></span>
                 </div>
             </div>
             <div class="row cl">
@@ -453,23 +481,19 @@
 <script type="text/javascript" src="${path}/common/lib/cm.lib/suggest.js"></script>
 <script type="text/javascript">
     $(function(){
+
+/*        $("#province").ProvinceCity();
         $('.skin-minimal input').iCheck({
             checkboxClass: 'icheckbox-blue',
             radioClass: 'iradio-blue',
             increaseArea: '20%'
-        });
-        $("#province").ProvinceCity();
-        $('.skin-minimal input').iCheck({
-            checkboxClass: 'icheckbox-blue',
-            radioClass: 'iradio-blue',
-            increaseArea: '20%'
-        });
-        $("#arrcity").suggest(citys,{hot_list:commoncitys,dataContainer:'#arrcity_3word',onSelect:function(result){
+        });*/
+/*        $("#arrcity").suggest(citys,{hot_list:commoncitys,dataContainer:'#arrcity_3word',onSelect:function(result){
             console.log($(this)[0].value);
 //		$("#city2").click()
         },
             attachObject:'#suggest'
-        });
+        });*/
 //$("#city2").suggest(citys,{hot_list:commoncitys,attachObject:"#suggest2"})
     });
 
@@ -480,7 +504,16 @@
 </script>
 <script type="text/javascript">
 
-
+    /*处理结果的执行状态*/
+    var isSolve = {
+        solved : {},
+        noSolved : {},
+        renewed : {"录入客诉","督促用户寄回","录入快递单号","仓库收货","换新发货","发货通知用户","收货后回访"},
+        maintain : {"录入客诉","督促用户寄回","录入快递单号","仓库收货","品质检测","产线维修","换新发货","发货通知用户","收货后回访"},
+        reissue : {"录入客诉","生成E订单","督促仓库发货","仓库发货","发货通知用户","收货后回访"},
+        backGoods :{"录入客诉","督促用户寄回","录入快递单号","仓库收货","品质检测","退款","退货完成"},
+        noReasonBack :{"录入客诉","督促用户寄回","录入快递单号","仓库收货","品质检测","退款","退货完成"}
+    }
 
     /*初始化页面参数*/
     $(function () {
@@ -488,6 +521,15 @@
         /*初始化问题分类*/
         initComplaintTypeInfo();
 
+        /*初始化客服*/
+        initSysAdmin();
+
+        /*初始化产品类型*/
+        initProduceType();
+
+        /*初始化选择处理结果*/
+        initProcessResult(1);
+
         /*监听问题类型 选择事件*/
         $("[name='complaintId']").change(function(){
             initComplaintSmallClassInfo($(this).val());
@@ -502,8 +544,115 @@
         $(document).on('click', '#selectOrder', function() {
             selectOrder();
         });
+
+        /*监听省选择事件*/
+        $(document).on('change', '#province', function() {
+            var proId = $("#province").val();
+            var cityId = setCity("",proId,2)
+            setDistrict("",cityId,2)
+        });
+
+        /*监听市选择事件*/
+        $(document).on('change', '#city', function() {
+            var city = $("#city").val();
+            setDistrict("",city,2)
+        });
+
+        /* 初始化单选框样式 */
+        $('.skin-minimal input').iCheck({
+            checkboxClass: 'icheckbox-blue',
+            radioClass: 'iradio-blue',
+            increaseArea: '20%'
+        });
     })
 
+    /*初始化客服*/
+    function initSysAdmin() {
+        var html = "";
+        $.ajax({
+            type: "POST",
+            data: {
+            },
+            url: "${path}/admin/customer/select_sys_admin",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    for(var i=0;i<data.returnMsg.adminList.length;i++){
+                        var adminList = data.returnMsg.adminList[i];
+                        if(data.returnMsg.adminId != null && data.returnMsg.adminId != "" && data.returnMsg.adminId == adminList.adminId ){
+                            html += '<option value="'+ adminList.adminId +'" selected>'+ adminList.adminName +'</option>';
+                        }else{
+                            html += '<option value="'+ adminList.adminId +'">'+ adminList.adminName +'</option>';
+                        }
+                    }
+                }else{
+                    html = '';
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+        $("#adminId").html(html);
+    }
+
+    /*初始化产品类型*/
+    function initProduceType(){
+        var html = "";
+        $.ajax({
+            type: "POST",
+            data: {
+            },
+            url: "${path}/admin/customer/select_produce_type",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    var check = "checked";
+                    for(var i=0;i<data.returnMsg.productTypeList.length;i++){
+                        var produce = data.returnMsg.productTypeList[i];
+                        html += ' <div class="radio-box">' +
+                                '<input type="radio" id="tel-3" name="produceType" datatype="*" value="'+ produce.typeId +'"  '+ check +' nullmsg="请选择产品类型!" >' +
+                                ' <label for="tel-3">'+ produce.typeName +'</label>' +
+                                ' </div>';
+                        check = "";
+                    }
+                }else{
+                    html = '';
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+        $("#produceTypeHtml").html(html);
+    }
+
+    /**
+     * 选择处理结果-- 默认选择已解决
+     * type : 0 :已解决  1:未解决  2:换新  3:维修  4:补发   5:退货  6:无理由退货
+     */
+    function initProcessResult(type){
+        if(type == null || type == ""){
+            type = 0;
+        }
+        var statusHtml = ' <li><span class="arrow"></span><div class="number">status_index</div><div>status_html</div></li>';
+        var resultHtml = '';
+        switch(type)
+        {
+            case 0:
+                $("#processResultStatus").hide();
+                break;
+            case 1:
+                $("#processResultStatus").hide();
+                break;
+            case 2:
+                resultHtml
+                isSolve();
+                break;
+            default:
+                break;
+        }
+        $("#processResultStatus").html(resultHtml);
+    }
+
     /*初始化问题大类*/
     function initComplaintTypeInfo() {
         //默认为售前咨询
@@ -537,7 +686,6 @@
         });
     }
 
-
     /*显示小类*/
     function initComplaintSmallClassInfo(complaintId){
         var html = "";
@@ -622,6 +770,8 @@
      */
     function setSelectOrder(orderId){
         var html = '';
+        var address = ''; //地址
+        var produceList = {};
         $.ajax({
             type: "POST",
             data: {
@@ -630,13 +780,13 @@
             url: "${path}/admin/customer/select_salesOrder",
             async: false,
             success: function(data){
-                var address; //地址
                 if (data.returnCode == 200) {
                     for(var i=0;i<data.returnMsg.salesOrderList.length;i++){
                         var salesOrder = data.returnMsg.salesOrderList[i];
 
                         var productsHtml = '';
-                        var salesOrderItem = salesOrder.salesOrderItemList
+                        var salesOrderItem = salesOrder.salesOrderItemList;
+                        produceList = salesOrder.salesOrderItemList;
                         for(var j=0;j<salesOrderItem.length;j++){
                             var item = salesOrderItem[j].itemProductName + "*" + salesOrderItem[j].itemNum;
                             if(j==0){
@@ -655,27 +805,168 @@
                                 ' <td>'+ productsHtml +'</td>' +
                                 ' <td>'+ time +'</td>' +
                                 '';
-                        address = '<td colspan="1">收货地址</td><td colspan="6" class="td-manage text-c" >'+ salesOrder.salesAddressInfo +'&nbsp;&nbsp;&nbsp;&nbsp;<a style="color: #0a6999;text-decoration: underline;" href="javascript:void(0);" title="编辑" onclick="updateAdress()">修改地址</a></td>' ;
+                       //address = '<td colspan="1">收货地址</td><td colspan="6" class="td-manage text-c" >'+ salesOrder.salesAddressInfo +'&nbsp;&nbsp;&nbsp;&nbsp;<a style="color: #0a6999;text-decoration: underline;" href="javascript:void(0);" title="编辑" onclick="updateAdress()">修改地址</a></td>' ;
+                        address = salesOrder.salesAddressInfo;
+
+                        $("#sendName").val(salesOrder.salesAddressName); //订单名称
+                        $("#sendTel").val(salesOrder.salesAddressTel);  //订单电话号码
                     }
-                    $("#showOrderAddress").html(address);
+                   // $("#showOrderAddress").html(address);
                 }else{
                     html = '';
                 }
-                $("#showOrder").html(html);
+                $("#showOrder").html(html);  //显示订单
             },
             error: function(XmlHttpRequest, textStatus, errorThrown){
             }
         });
+        $("#addressInfo").val(address);
+        setAdress();  //显示地址
+
+        setProduce(produceList); //显示产品
+
     }
 
     /**
      * 设置地址
      */
     function setAdress(){
+        var addres = $("#addressInfo").val();
+
+        $("#addrssMsg").html("");
+        if(addres == null){
+            $("#addrssMsg").html("*未能获取到地址,请手动选择地址");
+            return;
+        }
+        var addresList = addres.split("-");
+        if(addresList[0] == null || addresList[1]==null || addresList[2]==null || addresList[3]==null){
+            $("#addrssMsg").html("*未能获取到地址,请手动选择地址");
+            return;
+        }
+        var proId = setPro(getAddress(addresList[0],0),1);
+        var cityId = setCity(getAddress(addresList[1],1),proId,1);
+        setDistrict(getAddress(addresList[2],2),cityId,1);
+        $("#sendAddress").val(addresList[3]);
+    }
 
+    /***
+     * 删除 “省”,“市”,“区”关键字
+     * type : 0:省   2:市   3:区
+     */
+    function getAddress(addrss,type) {
+        var abbreviation = "";
+        if(addrss == ""){
+            abbreviation = "";
+        }else{
+            switch(type)
+            {
+                case 0:
+                    var proReg = new RegExp("省","g");
+                    abbreviation = addrss.replace(proReg,"");
+                    break;
+                case 1:
+                    var cityReg = new RegExp("市","g");
+                    abbreviation = addrss.replace(cityReg,"");
+                    break;
+                case 2:
+                    var districtReg = new RegExp("市","g");
+                    abbreviation = addrss.replace(districtReg,"");
+                    break;
+                default:
+                    break;
+            }
+        }
+        return abbreviation
     }
-    
-    function setPro() {
+
+    /**
+     * 设置省
+     * type  1:搜索订单赋值   2:只查询全部,默认第一个
+     */
+    function setPro(provinceName,type) {
+        var proId = '';
+        var province = listProvince();
+        var selectPro = {};
+        if(type == 1){
+            selectPro = listProvince("",provinceName);
+        }else if(type == 2){
+            selectPro = null;
+        }
+        if(province!=null){
+            var provinceHtml = ''
+            for(var i=0;i<province.length;i++){
+                if(selectPro!= null && province[i].provinceId == selectPro[0].provinceId){
+                    proId = selectPro[0].provinceId;
+                    provinceHtml += '<option value="'+ province[i].provinceId +'" selected>'+ province[i].province +'</option>';
+                }else{
+                    provinceHtml += '<option value="'+ province[i].provinceId +'">'+ province[i].province +'</option>';
+                }
+            }
+            $("#province").html(provinceHtml);
+        }
+        return proId;
+    }
+
+    /**
+     * 设置市
+     * type  1:搜索订单赋值   2:只查询全部,默认第一个
+     */
+    function setCity(cityName,proId,type) {
+        var cityId = '';
+        var city = listCity(proId,"");
+        var selectCity = {};
+        if(type == 1){
+            selectCity = listCity(proId,cityName);
+        }else if(type == 2){
+            selectCity = null;
+            cityId = city[0].cityId;
+        }
+
+        if(city!=null){
+            var cityHtml = ''
+            for(var i=0;i<city.length;i++){
+                if(selectCity != null && city[i].cityId == selectCity[0].cityId){
+                    cityId = city[i].cityId;
+                    cityHtml += '<option value="'+ city[i].cityId +'" selected>'+ city[i].city +'</option>';
+                }else{
+                    cityHtml += '<option value="'+ city[i].cityId +'">'+ city[i].city +'</option>';
+                }
+            }
+            $("#city").html(cityHtml);
+        }
+        return cityId;
+    }
+
+    /**
+     * 设置区
+     * type  1:搜索订单赋值   2:只查询全部,默认第一个
+     */
+    function setDistrict(districtName,cityId,type) {
+        var district = listDistrict(cityId,"");
+        var selectDistrict = {};
+        if(type == 1){
+            selectDistrict = listDistrict(cityId,districtName);
+        }else if(type == 2){
+            selectDistrict = null;
+        }
+        if(district!=null){
+            var districtHtml = ''
+            for(var i=0;i<district.length;i++){
+                if(selectDistrict != null && district[i].districtId == selectDistrict[0].districtId){
+                    districtHtml += '<option value="'+ district[i].districtId +'" selected>'+ district[i].district +'</option>';
+                }else{
+                    districtHtml += '<option value="'+ district[i].districtId +'">'+ district[i].district +'</option>';
+                }
+            }
+            $("#district").html(districtHtml);
+        }
+    }
+
+    /**
+     * 展示产品
+     * @param produceList
+     */
+    function setProduce(produceList) {
         
     }
 </script>

+ 506 - 26
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/custome_list.ftl

@@ -14,12 +14,12 @@
         *{padding: 0;margin: 0;}
         .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
         /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
         .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
         .barcodeImg{margin:10px 0px}
         .table-bg thead th{background-color: #e2f6ff;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        /*input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/rst/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/rst/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}*/
     </style>
 </head>
 <body>
@@ -30,11 +30,187 @@
 </nav>
 <div class="page-container">
     <div class="text-c">
+        <!-- 客诉回访start -->
+        <div class="layui-layer layui-anim layui-layer-iframe" id="layui-visit" times="4" showtime="0" contype="string" style="display:none;z-index: 19891018; width: 550px; height: 400px; position: absolute; top: 100px; left: 350px;text-align: left;">
+            <form action="" name="form-admin-visit" method="post" class="form form-horizontal" id="form-admin-visit">
+                <div class="layui-layer-title" id="synOrder" style="cursor: move;" move="ok">客诉回访</div>
+                <br>
+                <div style="margin-left: 10px;">
+                    <div class="formControls">
+                        <label><span class="c-red">*</span>&nbsp;回访人信息:</label>
+                        <input type="hidden" id="customerId" name="customerId">
+                        <input type="text" id="visitName" style="width: 150px;" class="input-text" value="" placeholder="回访人姓名" name="visitName" nullmsg="回访人姓名不能为空">
+                        <input type="text" id="visitTel" style="width: 150px;" class="input-text" value="" placeholder="回访人电话" name="visitTel" nullmsg="回访人电话不能为空">
+                    </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;回访日期:</label>
+                        <input type="text" id="visitDate" onClick="WdatePicker({ dateFmt:'yyyy-MM-dd',skin:'whyGreen' })" class="input-text" value="" style="width: 200px;" name="visitDate" nullmsg="回访日期不能为空" readonly="readonly"">
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;回访时间:</label>
+                        <input type="radio" name="visitTimeSelect" value="1" checked="checked"/><label>9:00 - 12:00&nbsp;&nbsp;</label>
+                        <input type="radio" name="visitTimeSelect" value="2"/><label>12:00 - 14:00&nbsp;&nbsp;</label>
+                        <input type="radio" name="visitTimeSelect" value="3"/><label>14:00 - 18:00</label>
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;提醒人:</label>
+                        <select class="my-select" name="visitAdminId" id="visitAdminId" style="height: 36px;width: 200px;margin: 0px;padding: 6px 10px 6px 15px;">
+                        <#if adminList?? &&  (adminList?size > 0) >
+                            <#list adminList as admin>
+                                <option value ="${admin.adminId!}" >${admin.adminName!}</option>
+                            </#list>
+                        </#if>
+                        </select>
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <label>
+                        您将为 自己 指定一个回访任务。<br/>
+                        提示原则:<br/>
+                        1、上午的回访 系统将在16日晚上22点、17日早晨9:30提醒您;<br/>
+                        2、中午的回访 系统将在本日12点提醒您;<br/>
+                        3、下午的回访 系统将在本日14:00提醒您。<br/>
+                        如果没有在指定时间完成,系统将于第二天开始推送。<br/>
+                    </label>
+                </div>
+                <div class="col-9 col-offset-3">
+                    <input class="btn btn-primary radius" onclick="addVisitInfo();" type="button" value="&nbsp;&nbsp;确认&nbsp;&nbsp;">
+                </div>
+            </form>
+            <span class="layui-layer-setwin">
+				<a class="layui-layer-ico layui-layer-close layui-layer-close1" onclick="hide_this(this)" href="javascript:;"></a>
+		</span>
+        </div>
+        <!-- 客诉回访end -->
+        <!-- 录入已完成回访内容start -->
+        <div class="layui-layer layui-anim layui-layer-iframe" id="layui-visit-finish" times="4" showtime="0" contype="string" style="display:none;z-index: 19891018; width: 550px; height: 400px; position: absolute; top: 100px; left: 350px;text-align: left;">
+            <form action="" name="form-visit-finish" method="post" class="form form-horizontal" id="form-visit-finish">
+                <div class="layui-layer-title" id="synOrder" style="cursor: move;" move="ok">已完成回访</div>
+                <br>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <input type="hidden" id="finish_customerId" name="finish_customerId">
+                        <label><span class="c-red">*</span>&nbsp;回访日期:</label>
+                        <input type="text" id="visitCompleteDate" onClick="WdatePicker({ dateFmt:'yyyy-MM-dd',skin:'whyGreen' })" class="input-text" value="" style="width: 200px;" name="visitCompleteDate" nullmsg="回访日期不能为空" readonly="readonly"">
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;客诉性别:</label>
+                        <input type="radio" name="visitCompleteSex" value="1" checked="checked"/><label>男&nbsp;&nbsp;</label>
+                        <input type="radio" name="visitCompleteSex" value="2"/><label>女&nbsp;&nbsp;</label>
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls">
+                        <label><span class="c-red">*</span>&nbsp;回访联系人:</label>
+                        <input type="text" id="visitCompleteName" class="input-text" value="" style="width: 200px;" name="visitCompleteName" nullmsg="回访联系人不能为空">
+                    </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;回访电话:</label>
+                        <input type="text" id="visitCompleteTel" class="input-text" value="" style="width: 200px;" name="visitCompleteTel" nullmsg="电话号码不能为空">
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;回复备注:</label>
+                        <input type="text" id="visitCompleteRemark" class="input-text" value="" style="width: 200px;" name="visitCompleteRemark">
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <br/>
+                <div class="col-9 col-offset-3">
+                    <input class="btn btn-primary radius" onclick="updateVisitInfo();" type="button" value="&nbsp;&nbsp;确认&nbsp;&nbsp;">
+                </div>
+            </form>
+            <span class="layui-layer-setwin">
+				<a class="layui-layer-ico layui-layer-close layui-layer-close1" onclick="hide_this(this)" href="javascript:;"></a>
+		</span>
+        </div>
+        <!-- 录入已完成回访内容end -->
+        <!-- 查看已完成回访内容start -->
+        <div class="layui-layer layui-anim layui-layer-iframe" id="select-visit-finish" times="4" showtime="0" contype="string" style="display:none;z-index: 19891018; width: 550px; height: 400px; position: absolute; top: 100px; left: 350px;text-align: left;">
+            <form action="" name="form-visit-finish" method="post" class="form form-horizontal" id="form-visit-finish">
+                <div class="layui-layer-title" id="synOrder" style="cursor: move;" move="ok">回访内容</div>
+                <br>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;回访日期:</label>
+                        <label id="txtVisitCompleteDate"></label>
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls">
+                        <label><span class="c-red">*</span>&nbsp;回访联系人:</label>
+                        <label id="txtVisitCompleteName"></label>
+                    </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;回访电话:</label>
+                        <label id="txtVisitCompleteTel"></label>
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;回复备注:</label>
+                        <label id="txtVisitCompleteRemark"></label>
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <br/>
+            </form>
+            <span class="layui-layer-setwin">
+				<a class="layui-layer-ico layui-layer-close layui-layer-close1" onclick="hide_this(this)" href="javascript:;"></a>
+		</span>
+        </div>
+        <!-- 查看问题描述内容start -->
+        <div class="layui-layer layui-anim layui-layer-iframe" id="select-question-describe" times="4" showtime="0" contype="string" style="display:none;z-index: 19891018; width: 550px; height: 400px; position: absolute; top: 100px; left: 350px;text-align: left;">
+            <form action="" name="form-visit-finish" method="post" class="form form-horizontal" id="form-visit-finish">
+                <div class="layui-layer-title" id="synOrder" style="cursor: move;" move="ok">回访内容</div>
+                <br>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;简述:</label>
+                        <label id="txtDescribeTitle"></label>
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <div style="margin-left: 10px;">
+                    <div class="formControls" style="margin-top: 10px;">
+                        <label><span class="c-red">*</span>&nbsp;详情:</label>
+                        <label id="txtDescribeContent"></label>
+                    </div>
+                    <div class="col-4"> </div>
+                </div>
+                <br/>
+            </form>
+            <span class="layui-layer-setwin">
+				<a class="layui-layer-ico layui-layer-close layui-layer-close1" onclick="hide_this(this)" href="javascript:;"></a>
+		</span>
+        </div>
+        <!-- 查看已完成回访内容end -->
         <form action="${path}/admin/customer/select_customer_list" method="post">
             <button type="button" style="cursor:pointer; float: left;" class="my-btn-search" onclick="toAddCustomer();">新建客诉</button>
-            <input type="text" class="my-input"  style="width:100px;margin-right: 0px;" value="${customerId!}" placeholder="客户问题" id="customerId" name="customerId">
-            <input type="text" class="my-input"  style="width:100px;margin-right: 0px;" value="${customerId!}" placeholder="客户电话号码" id="customerId" name="customerId">
-            <input type="text" class="my-input"  style="width:100px;margin-right: 0px;" value="${customerId!}" placeholder="请输入问题描述" id="customerId" name="customerId">
+            <input type="text" class="my-input"  style="width:100px;margin-right: 0px;" value="${customerId!}" placeholder="客户姓名" id="customerName" name="customerName">
+            <input type="text" class="my-input"  style="width:100px;margin-right: 0px;" value="${customerId!}" placeholder="客户电话号码" id="customerTel" name="customerTel">
+            <input type="text" class="my-input"  style="width:100px;margin-right: 0px;" value="${customerId!}" placeholder="请输入问题描述" id="describeTitle" name="describeTitle">
             <select class="my-select" name="customerSource" id="customerSource" style="height: 36px;width: 100px;margin: 0px;padding: 6px 10px 6px 15px;">
                 <option value="">来源</option>
                 <option value="1" <#if customerInfo.customerSourceType??><#if customerInfo.customerSourceType == "1" >selected="selected"</#if></#if>>400电话</option>
@@ -49,18 +225,13 @@
                     </#list>
                 </#if>
             </select>
-            <select class="my-select" name="produceId" style="height: 36px;width: 100px;margin: 0px;padding: 6px 10px 6px 15px;">
+            <select class="my-select" name="complaintId" style="height: 36px;width: 100px;margin: 0px;padding: 6px 10px 6px 15px;">
                 <option value ="">客诉类型</option>
                 <#if complaintTypeList?? &&  (complaintTypeList?size > 0) >
                     <#list complaintTypeList as complaint>
-                        <option value ="${complaint.complaintId!}" <#if customerInfo.adminId??><#if customerInfo.adminId ==admin.adminId >selected="selected"</#if></#if>>${complaint.complaintClassName!}</option>
+                        <option value ="${complaint.complaintId!}" <#if customerInfo.complaintId??><#if customerInfo.complaintId ==complaint.complaintId >selected="selected"</#if></#if>>${complaint.complaintClassName!}</option>
                     </#list>
                 </#if>
-            <#--<#if typeList?? &&  (typeList?size > 0) >
-                <#list typeList as type>
-                    <option value ="${type.produceId!}" <#if produceId??><#if produceId ==produce.produceId >selected="selected"</#if></#if>>${produce.produceName!}</option>
-                </#list>
-            </#if>-->
             </select>
             <select class="my-select" name="customerIsVisit" style="height: 36px;width: 100px;margin: 0px;padding: 6px 10px 6px 15px;">
                 <option value ="">是否需要回访</option>
@@ -79,6 +250,7 @@
         </form>
     </div>
 
+
     <div class="mt-20">
         <table class="table table-border table-bordered table-bg table-hover table-sort">
         <thead>
@@ -120,42 +292,157 @@
                             <td>${customer.typeName!''}</td>
                             <td>${customer.complaintClassName!''}</td>
                             <td>${customer.smallClassName!''}</td>
-                            <td>${customer.describeTitle!''}</td>
+                            <td>
+                                ${customer.describeTitle!''}
+                                    <a style="text-decoration:none" href="javascript:void(0);" title="回访内容" onclick="getDescribeInfo(${customer.customerId!''})">
+                                        <i class="Hui-iconfont">查看详情</i>
+                                    </a>&nbsp;
+                            </td>
                             <td>${customer.companyName!''}-${customer.storeName!''}</td>
                             <td>${(customer.salesTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
                             <td>${customer.customerArea!''}</td>
                             <td>进${customer.customerInTDS!'0'}出${customer.customerOutTDS!'0'}</td>
-                            <td>
+                            <td id="txt_customerIsSolve">
                                 <#if customer.customerIsSolve == 1>
                                     已解决
                                 <#elseif customer.customerIsSolve == 2>
                                     未解决
                                 <#elseif customer.customerIsSolve == 3>
-                                    换新
+                                    换新(
+                                    <#if customer.backStatus == 1>
+                                        未寄回
+                                    <#elseif customer.backStatus == 2>
+                                        已寄回
+                                    <#elseif customer.backStatus == 3>
+                                        已收货
+                                    </#if>,
+                                    <#if customer.sendStatus == 1>
+                                        未寄送
+                                    <#elseif customer.sendStatus == 2>
+                                        已寄送
+                                    <#elseif customer.sendStatus == 3>
+                                        已收货
+                                    </#if>,
+                                    <#if customer.detectState == 1>
+                                        待仓库转入
+                                    <#elseif customer.detectState == 2>
+                                        正在检查
+                                    <#elseif customer.detectState == 3>
+                                        检查通过
+                                    <#elseif customer.detectState == 4>
+                                        检查未通过
+                                    </#if>
+                                    )
                                 <#elseif customer.customerIsSolve == 4>
-                                    维修
+                                    维修(
+                                    <#if customer.backStatus == 1>
+                                        未寄回
+                                    <#elseif customer.backStatus == 2>
+                                        已寄回
+                                    <#elseif customer.backStatus == 3>
+                                        已收货
+                                    </#if>,
+                                    <#if customer.sendStatus == 1>
+                                        未寄送
+                                    <#elseif customer.sendStatus == 2>
+                                        已寄送
+                                    <#elseif customer.sendStatus == 3>
+                                        已收货
+                                    </#if>,
+                                    <#if customer.detectState == 1>
+                                        待仓库转入
+                                    <#elseif customer.detectState == 2>
+                                        正在检查
+                                    <#elseif customer.detectState == 3>
+                                        检查通过
+                                    <#elseif customer.detectState == 4>
+                                        检查未通过
+                                    </#if>
+                                    )
                                 <#elseif customer.customerIsSolve == 5>
-                                    补发
+                                    补发(
+                                    <#if customer.backStatus == 1>
+                                        未寄回
+                                    <#elseif customer.backStatus == 2>
+                                        已寄回
+                                    <#elseif customer.backStatus == 3>
+                                        已收货
+                                    </#if>,
+                                    <#if customer.sendStatus == 1>
+                                        未寄送
+                                    <#elseif customer.sendStatus == 2>
+                                        已寄送
+                                    <#elseif customer.sendStatus == 3>
+                                        已收货
+                                    </#if>,
+                                    <#if customer.detectState == 1>
+                                        待仓库转入
+                                    <#elseif customer.detectState == 2>
+                                        正在检查
+                                    <#elseif customer.detectState == 3>
+                                        检查通过
+                                    <#elseif customer.detectState == 4>
+                                        检查未通过
+                                    </#if>
+                                    )
                                 <#elseif customer.customerIsSolve == 6>
                                     退货
                                 <#elseif customer.customerIsSolve == 7>
                                     无理由退货
                                 </#if>
                             </td>
-                            <td>${customer.customerIsVisit!''}</td>
+                            <td>
+                                <#if customer.customerIsVisit == "1">
+                                    不需要回访
+                                <#elseif customer.customerIsVisit == "2">
+                                    <#if customer.visitStatus == 1>
+                                        待回访
+                                    <#elseif customer.visitStatus == 2>
+                                        已回访
+                                        <a style="text-decoration:none" href="javascript:void(0);" title="回访内容" onclick="getVisitInfo(${customer.customerId!''})">
+                                            <i class="Hui-iconfont">回访内容</i>
+                                        </a>&nbsp;
+                                    </#if>
+                                </#if>
+                            </td>
                             <td>${(customer.customerCreateTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
                             <td>
-                                <a style="text-decoration:none" href="javascript:void(0);" title="编辑" onclick="admin_update_customer(${customer.customerId!''})">
-                                    <i class="Hui-iconfont">&#xe6df;</i>
+                                <#if customer.customerIsSolve == 2>
+                                    <a style="text-decoration:none" href="javascript:void(0);" title="已解决" onclick="updateCustomerIsSolve(${customer.customerId!''})">
+                                        <i class="Hui-iconfont">已解决</i>
+                                    </a>&nbsp;
+                                </#if>
+                                <a style="text-decoration:none" href="javascript:void(0);" title="详情" onclick="admin_update_customer(${customer.customerId!''})">
+                                    <i class="Hui-iconfont">详情</i>
                                 </a>&nbsp;
-                                <a style="text-decoration:none" href="javascript:void(0);" title="查看customer单详情" onclick="admin_details_customer(${customer.customerId!''})">
-                                    <i class="Hui-iconfont">&#xe665;</i>
-                                </a>
+                                <#if customer.customerIsVisit == "2">
+                                    <#if customer.visitStatus == 1 && customer.customerIsVisit == "2">
+                                        <a style="text-decoration:none" href="javascript:void(0);" title="已完成回访" onclick="showVisitFinish(${customer.customerId!''})">
+                                            <i class="Hui-iconfont">
+                                                已完成回访
+                                            </i>
+                                        </a>&nbsp;
+                                    <#elseif customer.visitStatus == 2>
+                                        <a style="text-decoration:none" href="javascript:void(0);" title="详情" onclick="admin_update_customer(${customer.customerId!''})">
+                                            <i class="Hui-iconfont">
+                                                已收到反馈
+                                            </i>
+                                        </a>&nbsp;
+                                    </#if>
+                                </#if>
+                                <a style="text-decoration:none" href="javascript:void(0);" title="修改客诉信息" onclick="admin_update_customer(${customer.customerId!''})">
+                                    <i class="Hui-iconfont">修改客诉信息</i>
+                                </a>&nbsp;
+                                <#if customer.customerIsVisit == "1">
+                                    <a style="text-decoration:none" href="javascript:void(0)" title="需要回访" onclick="showVisit(${customer.customerId!''})">
+                                        <i class="Hui-iconfont">需要回访</i>
+                                    </a>
+                                </#if>
                             </td>
                         </tr>
                     </#list>
             <#else>
-                <tr><td colspan="10" class="td-manage text-c" >暂时没有Customer,请添加!</td></tr>
+                <tr><td colspan="10" class="td-manage text-c" >暂时没有客诉信息,请添加!</td></tr>
             </#if>
         </tbody>
     </table>
@@ -164,7 +451,12 @@
 <tfoot>
 <#include "/base/page_util.ftl">
 </tfoot>
-<script>
+<script type="text/javascript">
+
+    var mobile=/^(13|14|15|18)[0-9]{9}$/; //手机号码
+    var uname = /^[\u4e00-\u9fa5a-zA-Z]{1,12}$/; //中文英文
+    var flag = true;
+
     /**
      * 跳转到添加customer页面
      */
@@ -188,6 +480,194 @@
         window.location.href= "${path}/admin/customer/to_details_customer?customerId="+customerId;
     }
 
+    function showVisitFinish(customerId) {
+        $('#layui-visit-finish').show();
+        $('#finish_customerId').val(customerId);
+    }
+
+    function showVisit(customerId) {
+        $('#layui-visit').show();
+        $('#customerId').val(customerId);
+    }
+
+    function hide_this(val) {
+        $(val).parent().parent().hide();
+    }
+
+    function checkValue() {
+
+        var visitTimeSelect = $('input[name="visitTimeSelect"]:checked').val();
+        var visitAdminId = $("#visitAdminId option:selected").val();
+        if (!uname.test($('#visitName').val().trim())) {
+            alert("回访人姓名格式不正确,请重新填写!");
+            flag = false;
+            return;
+        }
+        if (!mobile.test($('#visitTel').val().trim())) {
+            alert("手机号码格式不正确,请重新填写!");
+            flag = false;
+            return;
+        }
+        if ($('#visitDate').val().trim() == null || $('#visitDate').val().trim() == '') {
+            alert("请选择回访日期!");
+            flag = false;
+            return;
+        }
+        if (visitTimeSelect == null || visitTimeSelect == '') {
+            alert("请选择回访时间点!");
+            flag = false;
+            return;
+        }
+        if (visitAdminId == null || visitAdminId == '') {
+            alert("请选择提醒人!");
+            flag = false;
+            return;
+        }
+    }
+
+    /**
+     * 添加回访信息
+     */
+    function addVisitInfo() {
+        checkValue();
+        alert(flag);
+        if (flag) {
+            $.ajax({
+                cache: true,
+                type: "POST",
+                data: $('#form-admin-visit').serialize(),
+                url: "${path}/admin/customer/add_visit_info",
+                async: false,
+                success: function(data){
+                    if (data.returnCode == 200) {
+                        layer.msg(data.resultMsg,{icon: 1,time:1000});
+                        $('#layui-visit').hide();
+                    } else {
+                        layer.msg(data.resultMsg,{icon: 5,time:1000});
+                        $('#layui-visit').hide();
+                    }
+                },
+                error: function(XmlHttpRequest, textStatus, errorThrown){
+                }
+            });
+        }
+    }
+
+    /**
+     * 添加回访完成信息
+     */
+    function updateVisitInfo() {
+        var visitCompleteSex = $('input[name="visitCompleteSex"]:checked').val();
+        if (!uname.test($('#visitCompleteName').val().trim())) {
+            alert("回访人姓名格式不正确,请重新填写!");
+            return;
+        }
+        if (!mobile.test($('#visitCompleteTel').val().trim())) {
+            alert("手机号码格式不正确,请重新填写!");
+            return;
+        }
+        if ($('#visitCompleteDate').val().trim() == null || $('#visitCompleteDate').val().trim() == '') {
+            alert("请选择回访日期!");
+            return;
+        }
+        if (visitCompleteSex == null || visitCompleteSex == '') {
+            alert("请选择客诉性别!");
+            return;
+        }
+        $.ajax({
+            cache: true,
+            type: "POST",
+            data: $('#form-visit-finish').serialize(),
+            url: "${path}/admin/customer/update_visit_finish",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    layer.msg(data.resultMsg,{icon: 1,time:1000});
+                } else {
+                    layer.msg(data.resultMsg,{icon: 5,time:1000});
+                }
+                $('#layui-visit-finish').hide();
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+    }
+
+    /**
+     * 查询回访内容
+     */
+    function getVisitInfo(customerId) {
+        $.ajax({
+            cache: true,
+            type: "POST",
+            data: {"customerId":customerId},
+            url: "${path}/admin/customer/get_visit_info",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    var visit = data.returnMsg.visit;
+                    $('#txtVisitCompleteDate').html(visit.visitCompleteDate);
+                    $('#txtVisitCompleteName').html(visit.visitCompleteName);
+                    $('#txtVisitCompleteTel').html(visit.visitCompleteTel);
+                    $('#txtVisitCompleteRemark').html(visit.visitCompleteRemark);
+                    $('#select-visit-finish').show();
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        })
+    }
+
+    /**
+     * 查询问题描述信息
+     */
+    function getDescribeInfo(customerId) {
+        $.ajax({
+            cache: true,
+            type: "POST",
+            data: {"customerId":customerId},
+            url: "${path}/admin/customer/get_describe_info",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    var describe = data.returnMsg.describe;
+                    $('#txtDescribeTitle').html(describe.describeTitle);
+                    $('#txtDescribeContent').html(describe.describeContent);
+                    $('#select-question-describe').show();
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        })
+    }
+
+    /**
+     * 将未解决状态修改为已解决
+     */
+    function updateCustomerIsSolve(customerId) {
+        layer.confirm('确认要修改吗?',function(index){
+            $.ajax({
+                cache: true,
+                type: "POST",
+                data: {"customerId":customerId},
+                url: "${path}/admin/customer/update_customerIsSolve",
+                async: false,
+                success: function(data){
+                    if (data.returnCode == 200) {
+                        layer.msg(data.resultMsg,{icon: 1,time:1000});
+                        $('#txt_customerIsSolve').html('已解决');
+                    } else {
+                        layer.msg(data.resultMsg,{icon: 5,time:1000});
+                    }
+                },
+                error: function(XmlHttpRequest, textStatus, errorThrown){
+                }
+            })
+        }, function() {
+
+        });
+    }
+
 </script>
 </body>
 </html>

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_detect.ftl

@@ -21,8 +21,8 @@
         .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 60%; height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(http://s.iamberry.com/images/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
     <meta name="keywords" content="${path}">
     <meta name="description" content="H-ui.admin v3.0,是一款由国人开发的轻量级扁平化网站后台模板,完全免费开源的网站后台管理系统模版,适合中小型CMS后台系统。">

+ 3 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_list.ftl

@@ -7,12 +7,12 @@
         *{padding: 0;margin: 0;}
         .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 25px;margin-right: 5px;}
         /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
         .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
         .barcodeImg{margin:10px 0px}
         .table-bg thead th{background-color: #e2f6ff;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
 <#include "/base/list_base.ftl">
 </head>

+ 1 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/order/excel_to_order.ftl

@@ -83,6 +83,7 @@
                             <option value="18">年糕妈妈</option>
                             <option value="19">快抱团</option>
                             <option value="20">北京北斗</option>
+                            <option value="22">上海-崔玉涛育学园</option>
                         </select>
                     </label>
                 </td>

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/batch/add_batch.ftl

@@ -11,8 +11,8 @@
     <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
     <style>
         .add-list>li{margin: 10px 0;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
     <title>添加批次 - 批次管理 - RST</title>
 </head>

+ 5 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/pts/batch/batch_list.ftl

@@ -11,15 +11,16 @@
 <#include "/base/list_base.ftl">
     <title>批次列表</title>
     <style>
+        html{-webkit-text-size-adjust:none;}
         *{padding: 0;margin: 0;}
         .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
         /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
         .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
         .barcodeImg{margin:10px 0px}
         .table-bg thead th{background-color: #e2f6ff;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
 </head>
 <body>
@@ -52,7 +53,7 @@
             <th width="50">所属产品</th>
             <th width="60">批次编号</th>
             <th width="100">总数量</th>
-            <th width="80">生产数量</th>
+            <th width="80">生产数量<br><span style="font-weight: normal;">(已生成的机器数量)</span></th>
             <th width="80">状态</th>
             <th width="100">软件版本</th>
             <th width="80">Bom单名称</th>

+ 3 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/pts/batch/update_batch.ftl

@@ -7,12 +7,12 @@
     <meta name="viewport"
           content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
     <meta http-equiv="Cache-Control" content="no-siteapp"/>
-<#include "/base/add_base.ftl">
+    <#include "/base/add_base.ftl">
     <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
     <style>
         .add-list>li{margin: 10px 0;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
     <title>修改批次 - 批次管理 - RST</title>
 </head>

+ 4 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/add_bom.ftl

@@ -7,12 +7,12 @@
     <meta name="viewport"
           content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
     <meta http-equiv="Cache-Control" content="no-siteapp"/>
-<#include "/base/add_base.ftl">
+    <#include "/base/add_base.ftl">
     <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
     <style>
         .add-list>li{margin: 10px 0;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
     <title>添加Bom - Bom管理 - RST</title>
 </head>
@@ -55,7 +55,7 @@
         <div class="row cl">
             <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>Bom名称:</label>
             <div class="formControls col-xs-8 col-sm-9">
-                <input type="text" class="input-text" value="" id="bomName" name="bomName" placeholder="请输入1-20位的名称,支持中文、字母、数字" datatype="/^[a-zA-Z0-9\u4e00-\u9fa5]{1,20}$/" errormsg="请输入1-20位的名称,支持中文、字母、数字!">
+                <input type="text" class="input-text" value="" id="bomName" name="bomName" placeholder="请输入1-20位字符的名称" datatype="*1-20" errormsg="请输入1-20位字符的名称!">
             </div>
         </div>
 

+ 3 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/bom_details.ftl

@@ -7,7 +7,7 @@
     <meta name="viewport"
           content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
     <meta http-equiv="Cache-Control" content="no-siteapp"/>
-<#include "/base/add_base.ftl">
+    <#include "/base/add_base.ftl">
     <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
     <style>
         .content { width: 100%; margin: 0 auto;font-size: 12px;}
@@ -24,8 +24,8 @@
         .my-btn-reset{padding: 6px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-btn-submit{padding: 6px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 60%; height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
         .my-con-right{width: 80px;float: left; text-align: right; }
         .my-con-left{width: 80%; display: block; float: left;padding-left: 20px; font-size: 14px;line-height: 20px;}
         .my-con-text{width: 80%; padding-left: 8px; }

+ 4 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/bom_list.ftl

@@ -8,18 +8,18 @@
     <meta http-equiv="Cache-Control" content="no-siteapp" />
     <link rel="Bookmark" href="/favicon.ico" >
     <link rel="Shortcut Icon" href="/favicon.ico" />
-<#include "/base/list_base.ftl">
+    <#include "/base/list_base.ftl">
     <title>bom单列表</title>
     <style>
         *{padding: 0;margin: 0;}
         .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
         /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
         .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
         .barcodeImg{margin:10px 0px}
         .table-bg thead th{background-color: #e2f6ff;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
 </head>
 <body>

+ 3 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/update_bom.ftl

@@ -44,7 +44,7 @@
         <div class="row cl">
             <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>Bom名称:</label>
             <div class="formControls col-xs-8 col-sm-9">
-                <input type="text" class="input-text" value="${ptsBom.bomName}" id="bomName" name="bomName" placeholder="请输入1-20位的名称,支持中文、字母、数字" datatype="/^[a-zA-Z0-9\u4e00-\u9fa5]{1,20}$/" errormsg="请输入1-20位的名称,支持中文、字母、数字!">
+                <input type="text" class="input-text" value="${ptsBom.bomName}" id="bomName" name="bomName" placeholder="请输入1-20位字符的名称"  datatype="*1-20"  errormsg="请输入1-20位字符的名称!">
             </div>
         </div>
 
@@ -120,6 +120,8 @@
     </form>
 </article>
 <script type="text/javascript">
+    /*添加零件模式  1:默认模式   2:添加只添加没有录入的bom */
+    var addComponentsType = 1;
 
     function sumbit_sure(){
         layer.confirm('修改的Bom,会影响已经生成的机器。 如果不是因为录入错误而修改了某个清单的零件、零件数量,建议做增加Bom处理,并做对应软硬件版本升级,您确定需要修改本Bom单吗?', {
@@ -188,7 +190,6 @@
     }
 
     $(function(){
-
     })
 
 

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/add_device.ftl

@@ -17,8 +17,8 @@
         .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 60%; height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(http://s.iamberry.com/images/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
 </head>
 <body>

+ 5 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/device_list.ftl

@@ -3,18 +3,19 @@
 <head>
     <meta charset="UTF-8">
     <title></title>
+    <#include "/base/list_base.ftl">
     <style>
         *{padding: 0;margin: 0;}
         .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
         /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
         .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
         .barcodeImg{margin:10px 0px}
         .table-bg thead th{background-color: #e2f6ff;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
-<#include "/base/list_base.ftl">
+
 </head>
 <body>
 <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/update_device.ftl

@@ -17,8 +17,8 @@
         .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 60%; height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(http://s.iamberry.com/images/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
 </head>
 <body>

+ 4 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/update_process.ftl

@@ -3,6 +3,7 @@
 <head>
     <meta charset="UTF-8">
     <title></title>
+    <#include "/base/list_base.ftl">
     <style>
         article, section, time, aside {
             display: block;
@@ -141,18 +142,18 @@
         }
 
         /*设置Select样式*/
-        select{border: 1px solid rgba(0,0,0,.1);border-radius: 5px;padding:6px 35px 6px 5px;height: 32px;-webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat !important;background-size:auto 100% !important;margin-right: 10px;width: 85px;}
+        select{border: 1px solid rgba(0,0,0,.1);border-radius: 5px;padding:6px 35px 6px 5px;height: 32px;-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat !important;background-size:auto 100% !important;margin-right: 10px;width: 100px;}
         .add-title-left{position: absolute;right: 0;top: 15%;}
         .add-title-right{position: absolute;left: 55%;top:33%;}
         .my-btn-edit{padding: 6px 20px;background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 5px 0 5px 0;}
         .list-main{list-style-type: none;margin: 0;padding: 10px;overflow-x: scroll;white-space: nowrap;}
-        .list-main>li{display: table-cell;min-width: 500px;position: relative;width: 500px;margin-right: 20px;}
+        .list-main>li{display: table-cell;min-width: 550px;position: relative;width: 550px;margin-right: 20px;}
         .list-main >li :hover{
             background: #f0f0f0;
         }
         time > span{font-size: 13px;}
     </style>
-<#include "/base/list_base.ftl">
+
 </head>
 <body>
 <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页

+ 4 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/pts/employee/employee_list.ftl

@@ -8,18 +8,18 @@
     <meta http-equiv="Cache-Control" content="no-siteapp" />
     <link rel="Bookmark" href="/favicon.ico" >
     <link rel="Shortcut Icon" href="/favicon.ico" />
-<#include "/base/list_base.ftl">
+    <#include "/base/list_base.ftl">
     <title>员工列表</title>
     <style>
         *{padding: 0;margin: 0;}
         .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
         /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
         .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
         .barcodeImg{margin:10px 0px}
         .table-bg thead th{background-color: #e2f6ff;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
 </head>
 <body>

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/employee/save_employee.ftl

@@ -21,8 +21,8 @@
         .my-btn-reset{padding: 6px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-btn-submit{padding: 6px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 60%; height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
     <title>添加员工- 员工管理 - RST</title>
 </head>

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/employee/update_employee.ftl

@@ -21,8 +21,8 @@
         .my-btn-reset{padding: 8px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-btn-submit{padding: 8px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 60%; height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
     <title>修改员工- 员工管理 - RST</title>
 </head>

+ 4 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/addRenovationMachine.ftl

@@ -6,6 +6,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
 <meta http-equiv="Cache-Control" content="no-siteapp" />
+<#include "/base/add_base.ftl">
 <title>添加翻新机</title>
     <style>
         .my-title{font-weight: 500;padding-left: 15px;position: relative;}
@@ -20,11 +21,11 @@
         .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 80%; height: 34px; -webkit-appearance:none;appearance:none;background: url(http://s.iamberry.com/images/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     	.spanhidth{width: 70px;text-align: right;}
 	</style>
-<#include "/base/add_base.ftl">
+
 </head>
 <body>
 <div class="pd-20">

+ 4 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/batchAddMachine.ftl

@@ -6,6 +6,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
 <meta http-equiv="Cache-Control" content="no-siteapp" />
+<#include "/base/add_base.ftl">
 <title>添加机器</title>
     <style>
         .my-title{font-weight: 500;padding-left: 15px;position: relative;}
@@ -20,11 +21,11 @@
         .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 60%; height: 34px; -webkit-appearance:none;appearance:none;background: url(http://s.iamberry.com/images/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     	.spanhidth{width: 48px;}
 	</style>
-<#include "/base/add_base.ftl">
+
 </head>
 <body>
 <div class="pd-20">

+ 4 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_List.ftl

@@ -3,18 +3,18 @@
 	<head>
 		<meta charset="UTF-8">
 		<title></title>
+        <#include "/base/list_base.ftl">
 		<style>
 			*{padding: 0;margin: 0;}
 			.my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
 			/*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-			.my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+			.my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
 			.my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
             .barcodeImg{margin:10px 0px}
             .table-bg thead th{background-color: #e2f6ff;}
-            input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-            input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+            input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+            input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
 		</style>
-		<#include "/base/list_base.ftl">
 	</head>
 	<body>
     <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页

+ 4 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_particulars.ftl

@@ -3,6 +3,7 @@
 <head>
     <meta charset="UTF-8">
     <title></title>
+    <#include "/base/list_base.ftl">
     <style>
         .my-title{font-weight: 500;padding-left: 15px;position: relative;}
         .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
@@ -125,12 +126,12 @@
         .content .things{margin-bottom: 0;}
         .things>.items{margin: 0 15px;}
         p{margin: 0;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
         .rj-a{text-decoration:none; color: #f6393f;}
         .rj-a:hover{text-decoration:underline;color: #f6393f;}
     </style>
-<#include "/base/list_base.ftl">
+
 </head>
 <body>
 <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页

+ 13 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl

@@ -3,17 +3,17 @@
 	<head>
 		<meta charset="UTF-8">
 		<title></title>
+        <#include "/base/list_base.ftl">
 		<style>
             *{padding: 0;margin: 0;}
 			.my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
 			.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}
-			.my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+			.my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
 			.my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
             .barcodeImg{margin:10px 0px}
 			.isprint{width: 200px;height:50px;}
             .background{background-color: #0a6999}
 		</style>
-		<#include "/base/list_base.ftl">
 	</head>
 	<body>
     <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
@@ -205,8 +205,14 @@
                     }
                 });
                 numbers = numbers - parseInt(settingNumber);
-                if(numbers > 40){
-                    layer.msg('一次最多支持打印40张条形码', {icon: 2, time: 2000});
+
+                /*计算总打印数量*/
+                var num = $("#settingNumber").val();
+                var selectNum = $("#listid").find("input[name='checkbox']:checked").length;
+                var machinePrintNumber = parseInt(num)*parseInt(selectNum);
+
+                if(machinePrintNumber > 24){
+                    layer.msg('一次最多支持打印24张条形码', {icon: 2, time: 2000});
                 }else if (prints != ""){
                     $("#printlist").printArea();
                     $("#printlist").html("");
@@ -214,6 +220,9 @@
                 } else {
                     layer.msg('未选中需要打印的条形码', {icon: 2, time: 2000});
                 }
+
+                $("#printlist").html("");  //未打印成功,需要清除数据
+
                 /*if (prints != "") {
                     $("#printlist").printArea();
                     $("#printlist").html("");

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/producedAbnormalityStatistics.ftl

@@ -6,7 +6,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
 <meta http-equiv="Cache-Control" content="no-siteapp" />
-
+<#include "/base/list_base.ftl">
 <style>
 	.charts-box{width:500px;height:400px;display: inline-block;position: relative;margin-right: 40px;margin-bottom: 40px;}
 	.my-nav{width: 100%;height: 48px;background: #fff;display: table;text-align: center;}
@@ -15,7 +15,7 @@
 	.my-nav>a.active{background-color: #32a3d8;color:#fff;}
 </style>
 <title>生产统计</title>
-<#include "/base/list_base.ftl">
+
 </head>
 <body>
 <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 统计管理 <span class="c-gray en">&gt;</span> 生产统计 <a class="btn btn-success radius r mr-20" style="line-height:1.6em;margin-top:3px;background-color: #32a3d8;border: 1px solid #32a3d8;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>

+ 4 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machinePtras/parts_list.ftl

@@ -8,18 +8,18 @@
     <meta http-equiv="Cache-Control" content="no-siteapp" />
     <link rel="Bookmark" href="/favicon.ico" >
     <link rel="Shortcut Icon" href="/favicon.ico" />
-<#include "/base/list_base.ftl">
+    <#include "/base/list_base.ftl">
     <title>零件列表</title>
     <style>
         *{padding: 0;margin: 0;}
         .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
         /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
         .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
         .barcodeImg{margin:10px 0px}
         .table-bg thead th{background-color: #e2f6ff;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
 </head>
 <body>

+ 24 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machinePtras/ptras_add.ftl

@@ -12,6 +12,17 @@
 <#include "/base/add_base.ftl">
     <link href="${path }/common/kingedit/themes/default/default.css" rel="stylesheet" type="text/css" />
 <title>添加机器零件</title>
+    <style>
+        *{padding: 0;margin: 0;}
+        .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
+        /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
+        .barcodeImg{margin:10px 0px}
+        .table-bg thead th{background-color: #e2f6ff;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+    </style>
 </head>
 <body>
 <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
@@ -76,12 +87,15 @@
 
         <div class="row cl">
             <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>零件图片:</label>
-            <div class="formControls col-xs-8 col-sm-9" id="fileDiv">
+            <div class="formControls col-xs-3 col-sm-3" id="fileDiv" style="width: 17%;">
                 <input type="file" name="file" id="fileid" style="opacity: 0; position: absolute; width: 90px;height: 80px;">
                 <img alt="介绍图" src="${path}/common/images/pts/addparts.jpg" id="partsImg" width="90" height="80">
                 <input type="hidden" id="componentsImg" name="componentsImg" value=""/>
                 <#--<button type="button" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);" id="uploadSubmit"><i class="Hui-iconfont">&#xe665;</i> 上传</button>-->
             </div>
+            <div class="formControls col-xs-3 col-sm-3" style="height: 80px;">
+                <button type="button" style="cursor:pointer; float: left;margin-top: 48px" class="my-btn-search" onclick="addImage();">暂无图片</button>
+            </div>
         </div>
         <#--<div class="row cl">
             <label class="form-label col-xs-4 col-sm-2">缩略图:</label>
@@ -321,6 +335,15 @@
             }
         });
     }
+
+    /***
+     * 点击暂无图片,添加暂无图片的标识
+     */
+    function addImage(){
+        var image = root_path + "/common/images/pts/noImage.png";
+        $("#partsImg").attr("src",image);
+        $("#componentsImg").val("/common/images/pts/noImage.png");
+    }
 </script> 
 <!--/请在上方写此页面业务相关的脚本-->
 </body>

+ 2 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machineVersion/version_list.ftl

@@ -3,6 +3,7 @@
 	<head>
 		<meta charset="UTF-8">
 		<title>机器版本</title>
+	<#include "/base/list_base.ftl">
 <style>
 			article, section, time, aside {
 				display: block;
@@ -149,7 +150,7 @@
 }
 .center-midddle{position: absolute;top:50%;left: 0;-webkit-transform: translateY(-50%);transform: translateY(-50%);}
 		</style>
-	<#include "/base/list_base.ftl">
+
 	</head>
 	<body>
 		<ul class="list-main">

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/produce_list.ftl

@@ -31,8 +31,8 @@
         .chanpin-list>.li-add:before{content: '';width: 5px;height: 80px; position: absolute;left: 50%;top: 90px;background-color: #32a3d8;border-radius: 50px;}
         .chanpin-list>.li-add:after{content: '';height: 5px;width: 80px;position: absolute;left: 75px;top: 128px;background-color: #32a3d8;border-radius: 50px;-webkit-transform:scaleX(1);}
         .chanpin-list>.li-add>div{display: table-cell;vertical-align: middle;height: 100%;width: 100%;text-align: center;color: #32a3d8;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
 </head>
 <body>

+ 63 - 62
watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/save_produce.ftl

@@ -21,10 +21,10 @@
         .add-list>li{margin: 10px 0;}
         .cp-list{list-style-type: none;margin: 0;padding: 0;}
         .cp-list>li{position: relative;    cursor: pointer;clear: both;padding: 15px 0;}
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        select{border: 1px solid rgba(0,0,0,.1);border-radius: 5px;padding:6px 35px 6px 5px;height: 32px;-webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat !important;background-size:auto 100% !important;margin-right: 10px;width: 85px;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        select{border: 1px solid rgba(0,0,0,.1);border-radius: 5px;padding:6px 35px 6px 5px;height: 32px;-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat !important;background-size:auto 100% !important;margin-right: 10px;width: 85px;}
     </style>
     <title>添加生产产品- 生产产品管理 - RST</title>
 </head>
@@ -34,72 +34,73 @@
     <span class="c-gray en">&gt;</span> 添加产品
     <a class="btn radius r" style="line-height:1.6em;margin-top:3px;background: #58d2ea;color: #fff;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
 </nav>
-<article class="page-container">
-    <form class="form form-horizontal" id="form-admin-addProduce">
-        <div style="padding: 10px;width: 600px;margin: 0 auto;" class="">
-            <div class="my-title">产品信息</div>
-            <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" id="produceName" type="text" value="" placeholder="请输入产品名称,2-20位字符" required   maxlength="20" minlength="2"/> </div>
-            <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" id="produceRemake" value="" placeholder="请输入产品描述,2-100位字符" required  maxlength="100" minlength="2"/> </div>
+<form class="form form-horizontal" id="form-admin-addProduce">
+    <article class="page-container" style="padding-bottom: 80px;">
 
-            <div class="input-box "><span class="input-dic">产品特性</span>
-                <select class="" style="width: 290px;" id="produceFeature" name="produceFeature">
-                    <option value="A" selected>国内(A)</option>
-                    <option value="B">美国(B)</option>
-                    <option value="C">欧洲(C)</option>
-                    <option value="D">其他(D)</option>
-                </select>
-            </div>
-            <div class="input-box"><span class="input-dic">产品型号</span><input class="my-input" style="width: 120px;" type="text" name="producePattern" id="producePattern" value="" placeholder="2-3位英文、数字组合" required  maxlength="3" minlength="2"/>-<input class="my-input" style="width: 120px;" type="text" name="produceModel" id="produceModel" value="" placeholder="2-3位英文、数字组合" required  maxlength="3" minlength="2"/>  </div>
+            <div style="padding: 10px;width: 600px;margin: 0 auto;" class="">
+                <div class="my-title">产品信息</div>
+                <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" id="produceName" type="text" value="" placeholder="请输入产品名称,2-20位字符" required   maxlength="20" minlength="2"/> </div>
+                <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" id="produceRemake" value="" placeholder="请输入产品描述,2-100位字符" required  maxlength="100" minlength="2"/> </div>
 
-            <div class="input-box"><span class="input-dic">产品类型</span>
-                <label><input type="radio" name="produceType" value="1" checked>净水机</label>
-                <label><input type="radio" name="produceType" value="2">冲奶机</label>
-            </div>
+                <div class="input-box "><span class="input-dic">产品特性</span>
+                    <select class="" style="width: 290px;" id="produceFeature" name="produceFeature">
+                        <option value="A" selected>国内(A)</option>
+                        <option value="B">美国(B)</option>
+                        <option value="C">欧洲(C)</option>
+                        <option value="D">其他(D)</option>
+                    </select>
+                </div>
+                <div class="input-box"><span class="input-dic">产品型号</span><input class="my-input" style="width: 120px;" type="text" name="producePattern" id="producePattern" value="" placeholder="1-3位英文、数字组合" required  maxlength="3" minlength="1"/>-<input class="my-input" style="width: 120px;" type="text" name="produceModel" id="produceModel" value="" placeholder="1-3位英文、数字组合" required  maxlength="3" minlength="1"/>  </div>
 
-            <div class="input-box"><span class="input-dic">产品状态</span>
-                <label><input type="radio" name="produceStatus" value="1" checked>正在使用</label>
-                <label><input type="radio" name="produceStatus" value="0">停止使用</label>
-            </div>
-            <div style="background-color:rgba(0,0,0,.1);height: 1px;margin: 15px 0;width: 93%;"></div>
+                <div class="input-box"><span class="input-dic">产品类型</span>
+                    <label><input type="radio" name="produceType" value="1" checked>净水机</label>
+                    <label><input type="radio" name="produceType" value="2">冲奶机</label>
+                </div>
 
-            <div class="my-title">节点信息</div>
+                <div class="input-box"><span class="input-dic">产品状态</span>
+                    <label><input type="radio" name="produceStatus" value="1" checked>正在使用</label>
+                    <label><input type="radio" name="produceStatus" value="0">停止使用</label>
+                </div>
+                <div style="background-color:rgba(0,0,0,.1);height: 1px;margin: 15px 0;width: 93%;"></div>
 
-            <ul class="cp-list onrTheProcess" id="sortable">
-                <li id="1" class="processList">
-                    <input type="hidden" class="processNumber" value="1">
-                    <div class="input-box pro-height">
-                        <span class="input-dic process-type process-sp">节点类型</span>
-                        <label><input type="radio" name="processType_p1" value="1" checked>生产工序</label>
-                        <label><input type="radio" name="processType_p1" value="2">修理工序</label>
-                        <button type="button" class="my-btn-edit" onclick="delProcess(this)">删除节点</button>
-                    </div>
-                    <div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入节点名称,2-20位字符" required   maxlength="20" minlength="2"/> </div>
-                    <div class="input-box"><span class="input-dic">节点操作</span>
-                        <ul class="add-list oneTheNode" >
-                            <li class="nodeList">
-                                <#--<select class="my-select"><option>1</option></select>-->
-                                <label><input type="radio" name="nodeStatus_p1_n1" value="1" checked>正常</label>
-                                <label><input type="radio" name="nodeStatus_p1_n1" value="0">异常</label>
-                                <input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点操作描述,2-20位字符" required minlength="2"   maxlength="20" />
-                                <i class="Hui-iconfont" onclick="delNode(this)">&#xe60b;</i>
-                            </li>
-                            <li>
-                                <button type="button" class="my-btn-edit" onclick="addProNode(this)">增加节点操作</button>
-                            </li>
-                        </ul>
-                    </div>
-                </li>
-            </ul>
+                <div class="my-title">节点信息</div>
 
-            <div style="clear: both;"></div>
-            <div style="padding-top: 15px;"><button type="button" class="my-btn-edit" onclick="addProcess(this)">增加节点</button></div>
-            <div>
-                <button type="reset" class="my-btn-reset" >重置</button><button type="submit" class="my-btn-submit">确认提交</button>
+                <ul class="cp-list onrTheProcess" id="sortable">
+                    <li id="1" class="processList">
+                        <input type="hidden" class="processNumber" value="1">
+                        <div class="input-box pro-height">
+                            <span class="input-dic process-type process-sp">节点类型</span>
+                            <label><input type="radio" name="processType_p1" value="1" checked>生产工序</label>
+                            <label><input type="radio" name="processType_p1" value="2">修理工序</label>
+                            <button type="button" class="my-btn-edit" onclick="delProcess(this)">删除节点</button>
+                        </div>
+                        <div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入节点名称,2-20位字符" required   maxlength="20" minlength="2"/> </div>
+                        <div class="input-box"><span class="input-dic">节点操作</span>
+                            <ul class="add-list oneTheNode" >
+                                <li class="nodeList">
+                                    <#--<select class="my-select"><option>1</option></select>-->
+                                    <label><input type="radio" name="nodeStatus_p1_n1" value="1" checked>正常</label>
+                                    <label><input type="radio" name="nodeStatus_p1_n1" value="0">异常</label>
+                                    <input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点操作描述,2-20位字符" required minlength="2"   maxlength="20" />
+                                    <i class="Hui-iconfont" onclick="delNode(this)">&#xe60b;</i>
+                                </li>
+                                <li>
+                                    <button type="button" class="my-btn-edit" onclick="addProNode(this)">增加节点操作</button>
+                                </li>
+                            </ul>
+                        </div>
+                    </li>
+                </ul>
+
+                <div style="clear: both;"></div>
+                <div style="padding-top: 15px;"><button type="button" class="my-btn-edit" onclick="addProcess(this)">增加节点</button></div>
             </div>
-        </div>
+    </article>
 
-    </form>
-</article>
+        <div style="width: 100%;height: 80px;position: fixed;bottom: 0px;background: #f5f5f5;text-align: center;line-height: 80px;">
+            <button type="reset" class="my-btn-reset" >重置</button><button type="submit" class="my-btn-submit">确认提交</button>
+        </div>
+</form>
 <#--<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>-->
 <#--<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.all.js"></script>-->
 <script type="text/javascript" src="${path}/common/lib/jquery.ui/jquery-ui.js"></script>

+ 16 - 17
watero-rst-web/src/main/webapp/WEB-INF/views/pts/produce/update_produce.ftl

@@ -6,7 +6,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
     <meta http-equiv="Cache-Control" content="no-siteapp" />
-<#include "/base/add_base.ftl">
+    <#include "/base/add_base.ftl">
     <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css" />
     <style>
         .my-title{font-weight: 500;padding-left: 15px;position: relative;}
@@ -21,10 +21,10 @@
         .add-list>li{margin: 10px 0;}
         .cp-list{list-style-type: none;margin: 0;padding: 0;}
         .cp-list>li{position: relative;    cursor: pointer;clear: both;padding: 15px 0;}
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        select{border: 1px solid rgba(0,0,0,.1);border-radius: 5px;padding:6px 35px 6px 5px;height: 32px;-webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat !important;background-size:auto 100% !important;margin-right: 10px;width: 85px;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        select{border: 1px solid rgba(0,0,0,.1);border-radius: 5px;padding:6px 35px 6px 5px;height: 32px;-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat !important;background-size:auto 100% !important;margin-right: 10px;width: 85px;}
     </style>
     <title>修改生产产品- 生产产品管理 - RST</title>
 </head>
@@ -34,8 +34,8 @@
     <span class="c-gray en">&gt;</span> 修改产品
     <a class="btn radius r" style="line-height:1.6em;margin-top:3px;background: #58d2ea;color: #fff;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
 </nav>
-<article class="page-container">
-    <form class="form form-horizontal" id="form-admin-addProduce">
+<form class="form form-horizontal" id="form-admin-addProduce">
+    <article class="page-container" style="padding-bottom: 80px;">
         <div style="padding: 10px;width: 600px;margin: 0 auto;" class="">
             <div class="my-title">产品信息</div>
             <input type="hidden" name="produceId" value="${produce.produceId!}">
@@ -50,8 +50,8 @@
                     <option value ="D" <#if produce.produceFeature??><#if produce.produceFeature == 'D'>selected="selected"</#if></#if>>其他(D)</option>
                 </select>
             </div>
-            <div class="input-box"><span class="input-dic">产品型号</span><input class="my-input" style="width: 120px;" type="text" name="producePattern" id="producePattern" placeholder="2-3位英文、数字组合" value="${produce.producePattern!}" placeholder="" required  maxlength="3" minlength="2"/>-
-                <input class="my-input" style="width: 120px;" type="text" name="produceModel" id="produceModel" value="${produce.produceModel!}" placeholder="2-3位英文、数字组合" required  maxlength="3" minlength="2"/>  </div>
+            <div class="input-box"><span class="input-dic">产品型号</span><input class="my-input" style="width: 120px;" type="text" name="producePattern" id="producePattern" placeholder="1-3位英文、数字组合" value="${produce.producePattern!}" placeholder="" required  maxlength="3" minlength="1"/>-
+                <input class="my-input" style="width: 120px;" type="text" name="produceModel" id="produceModel" value="${produce.produceModel!}" placeholder="1-3位英文、数字组合" required  maxlength="3" minlength="1"/>  </div>
 
             <div class="input-box"><span class="input-dic">产品类型</span>
                 <label><input type="radio" name="produceType" value="1" <#if produce.produceType == 1>checked</#if>>净水机</label>
@@ -99,16 +99,15 @@
 
             <div style="clear: both;"></div>
             <div style="padding-top: 15px;"><button type="button" class="my-btn-edit" onclick="addProcess(this)">增加节点</button></div>
-
-            <div style="color: red; margin: 10px;">*说明:如果机器正在生产,请不要修改,待生成完成以后修改;如果信息有误,请联系深圳技术部协助处理。</div>
-            <div>
-
-                <button type="submit" class="my-btn-submit">确认提交</button>
-            </div>
         </div>
+    </article>
+
 
-    </form>
-</article>
+    <div style="width: 100%;height: 80px;position: fixed;bottom: 0px;background: #f5f5f5;text-align: center;">
+        <span style="color: red; margin: 10px;display: block;margin: 0 auto;width:700px;padding-top: 5px;">*说明:如果机器正在生产,请不要修改,待生成完成以后修改;如果信息有误,请联系深圳技术部协助处理。</span>
+        <div><button type="submit" class="my-btn-submit">确认提交</button></div>
+    </div>
+</form>
 <#--<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>-->
 <#--<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.all.js"></script>-->
 <script type="text/javascript" src="${path}/common/lib/jquery.ui/jquery-ui.js"></script>

+ 3 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/pts/supplier/add_supplier.ftl

@@ -7,12 +7,12 @@
     <meta name="viewport"
           content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
     <meta http-equiv="Cache-Control" content="no-siteapp"/>
-<#include "/base/add_base.ftl">
+    <#include "/base/add_base.ftl">
     <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
     <style>
         .add-list>li{margin: 10px 0;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
     <title>添加供应商 - 供应商管理 - RST</title>
 </head>

+ 4 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/pts/supplier/supplier_list.ftl

@@ -8,18 +8,18 @@
     <meta http-equiv="Cache-Control" content="no-siteapp" />
     <link rel="Bookmark" href="/favicon.ico" >
     <link rel="Shortcut Icon" href="/favicon.ico" />
-<#include "/base/list_base.ftl">
+    <#include "/base/list_base.ftl">
     <title>供应商列表</title>
     <style>
         *{padding: 0;margin: 0;}
         .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
         /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
-        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
         .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
         .barcodeImg{margin:10px 0px}
         .table-bg thead th{background-color: #e2f6ff;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
 </head>
 <body>

+ 3 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/pts/supplier/update_supplier.ftl

@@ -7,12 +7,12 @@
     <meta name="viewport"
           content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
     <meta http-equiv="Cache-Control" content="no-siteapp"/>
-<#include "/base/add_base.ftl">
+    <#include "/base/add_base.ftl">
     <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
     <style>
         .add-list>li{margin: 10px 0;}
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
     <title>修改供应商 - 供应商管理 - RST</title>
 </head>

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/sys/add_admin.ftl

@@ -11,8 +11,8 @@
     <meta name="keywords" content="${path}">
     <meta name="description" content="H-ui.admin v3.0,是一款由国人开发的轻量级扁平化网站后台模板,完全免费开源的网站后台管理系统模版,适合中小型CMS后台系统。">
     <style>
-        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
-        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
     </style>
 </head>
 <body>

BIN
watero-rst-web/src/main/webapp/common/images/pts/noImage.png


+ 82 - 0
watero-rst-web/src/main/webapp/common/js/common/common.js

@@ -58,3 +58,85 @@ function Trim(str)
     return str.replace(/\s+/g, "");
 }
 
+/**
+ * 获取省
+ * @param provinceId 省id
+ * @param province 省名称(模糊搜索)
+ * @returns {{}}
+ */
+function listProvince(provinceId,provinceName){
+    var province = {};
+    $.ajax({
+        type: "get",
+        data: {
+            provinceId : provinceId,
+            province : provinceName
+        },
+        dataType: "json",
+        contentType:"application/json; charset=utf-8",
+        url: root_path +"/address/list_province",
+        async: false,
+        success: function(data){
+            if (data.returnCode == 200) {
+                province = data.returnMsg.provinceList;
+            }else{
+                console.log("查询失败");
+            }
+        },
+        error: function(XmlHttpRequest, textStatus, errorThrown){
+        }
+    });
+    return province;
+}
+
+/**
+ * 获取市
+ */
+function listCity(provinceId,cityName){
+    var city = {};
+    $.ajax({
+        type: "get",
+        data: {
+            provinceId : provinceId,
+            city : cityName
+        },
+        url: root_path +"/address/list_city",
+        async: false,
+        success: function(data){
+            if (data.returnCode == 200) {
+                city = data.returnMsg.cityList;
+            }else{
+                console.log("查询失败");
+            }
+        },
+        error: function(XmlHttpRequest, textStatus, errorThrown){
+        }
+    });
+    return city;
+}
+
+/**
+ * 获取区
+ */
+function listDistrict(cityId,districtName){
+    var district = {};
+    $.ajax({
+        type: "get",
+        data: {
+            cityId : cityId,
+            district : districtName
+        },
+        url: root_path +"/address/list_district",
+        async: false,
+        success: function(data){
+            if (data.returnCode == 200) {
+                district = data.returnMsg.cityList;
+            }else{
+                console.log("查询失败");
+            }
+        },
+        error: function(XmlHttpRequest, textStatus, errorThrown){
+        }
+    });
+    return district;
+}

+ 1 - 1
wateroPF-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -29,7 +29,7 @@ public class ResultInfo {
 	public  static String repeatNameError="";
 	public  static String lostMemberInfo="";
 
-	public  static String barCodePrefix="QR_CODE";
+	public  static String barCodePrefix="MACHINE_QR_CODE";
 	/**
 	 * 初始化代理商信息openid成功前缀
 	 */

+ 3 - 2
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/wechat/WeChatServiceImpl.java

@@ -263,7 +263,7 @@ public class WeChatServiceImpl implements WeChatService {
 		Status status = new Status();
 		String senceid = requestMap.get("EventKey");//场景值
 		senceid = senceid.replaceAll(ResultInfo.barCodePrefix,"");//替换标识前的字符串
-        String str = bindingMachine(senceid, fromUserName);
+        String str = "【美国WaterO】经检测,您的机器为美国WaterO正品,请放心使用。";//bindingMachine(senceid, fromUserName);
         status.setCountext(str);
 		status.setFlag(false);
 		return status;
@@ -280,7 +280,7 @@ public class WeChatServiceImpl implements WeChatService {
 		Member member = refreshUserInfo(fromUserName);
 		String senceid = requestMap.get("EventKey");//场景值
 		senceid = senceid.replaceAll(ResultInfo.barCodePrefix,"");//替换标识前的字符串
-		String str = bindingMachine(senceid, fromUserName);
+		String str = "【美国WaterO】经检测,您的机器为美国WaterO正品,请放心使用。";//bindingMachine(senceid.trim(), fromUserName);
 		status.setCountext(str);
 		status.setFlag(false);
 		return status;
@@ -300,6 +300,7 @@ public class WeChatServiceImpl implements WeChatService {
 		List<MachineNumber> numberList = machineNumberService.listMachineNumber(machineNumber);
 		if (numberList == null && numberList.size() == 0) {
 			str.append("该机器条形码有误,请重新扫描!");
+			return str.toString();
 		}
 		MachineNumber machine = numberList.get(0);
 		if (machine.getNumberOpenId() != null && !"".equals(machine.getNumberOpenId())) {