Browse Source

售后流程修改

liujiankang 5 years ago
parent
commit
fc07f5091e
26 changed files with 2028 additions and 136 deletions
  1. 47 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java
  2. 18 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintDetectInfo.java
  3. 1 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintSignclosedInfo.java
  4. 9 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/fm/QcInfo.java
  5. 4 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java
  6. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java
  7. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java
  8. 14 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  9. 32 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java
  10. 17 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintSignclosedInfoServiceImpl.java
  11. 14 5
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintDetectInfoMapper.xml
  12. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintSignclosedInfoMapper.xml
  13. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/util/SmsConfig.java
  14. 14 6
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminDetectController.java
  15. 2 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java
  16. 2 0
      watero-rst-web/src/main/webapp/WEB-INF/views/base/add_base.ftl
  17. 6 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_QC.ftl
  18. 2 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_detail.ftl
  19. 8 4
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_list.ftl
  20. 90 55
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/update_complete.ftl
  21. 92 56
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/update_detect.ftl
  22. 4 3
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/sales_order_list.ftl
  23. BIN
      watero-rst-web/src/main/webapp/common/static/chosen/css/chosen-sprite.png
  24. BIN
      watero-rst-web/src/main/webapp/common/static/chosen/css/chosen-sprite@2x.png
  25. 423 0
      watero-rst-web/src/main/webapp/common/static/chosen/css/chosen.css
  26. 1212 0
      watero-rst-web/src/main/webapp/common/static/chosen/js/chosen.jquery.js

+ 47 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java

@@ -142,6 +142,13 @@ public class SalesOrder implements Serializable {
     private Integer itemReturnNum;   //退货数量
     private Integer salesOldOrderStatus;
 
+    private Integer beConfirmedNum;//待确认数量
+    private Integer distributionLogisticsNum;//待分配物流数量
+    private Integer sendTheGoods;//待发货数量
+    private Integer playSingle;//待打单数量
+    private Integer outbound;//待出库数量
+
+
     public Integer getSalesOldOrderStatus() {
         return salesOldOrderStatus;
     }
@@ -820,4 +827,44 @@ public class SalesOrder implements Serializable {
     public void setItemReturnNum(Integer itemReturnNum) {
         this.itemReturnNum = itemReturnNum;
     }
+
+    public Integer getBeConfirmedNum() {
+        return beConfirmedNum;
+    }
+
+    public void setBeConfirmedNum(Integer beConfirmedNum) {
+        this.beConfirmedNum = beConfirmedNum;
+    }
+
+    public Integer getDistributionLogisticsNum() {
+        return distributionLogisticsNum;
+    }
+
+    public void setDistributionLogisticsNum(Integer distributionLogisticsNum) {
+        this.distributionLogisticsNum = distributionLogisticsNum;
+    }
+
+    public Integer getSendTheGoods() {
+        return sendTheGoods;
+    }
+
+    public void setSendTheGoods(Integer sendTheGoods) {
+        this.sendTheGoods = sendTheGoods;
+    }
+
+    public Integer getPlaySingle() {
+        return playSingle;
+    }
+
+    public void setPlaySingle(Integer playSingle) {
+        this.playSingle = playSingle;
+    }
+
+    public Integer getOutbound() {
+        return outbound;
+    }
+
+    public void setOutbound(Integer outbound) {
+        this.outbound = outbound;
+    }
 }

+ 18 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintDetectInfo.java

@@ -32,6 +32,7 @@ public class ComplaintDetectInfo implements Serializable {
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date detectDate;//检测日期
+    private String qcDesc;//检测备注
     private Date detectCreateTime;//创建时间
     private Date detectUpdateTime;//修改时间
     private Integer customerId;//客诉id
@@ -79,6 +80,7 @@ public class ComplaintDetectInfo implements Serializable {
     private String signclosedAddrProvincesName;//省
     private String signclosedAddrCityName;//市
     private String signclosedAddrAreaName;//区
+    private String logisticsNumber;//物流单号
 
     private String[] configli1;//检测现象集合
     private String[] configli2;//故障原因集合
@@ -534,4 +536,20 @@ public class ComplaintDetectInfo implements Serializable {
     public void setConfigli6(String[] configli6) {
         this.configli6 = configli6;
     }
+
+    public String getQcDesc() {
+        return qcDesc;
+    }
+
+    public void setQcDesc(String qcDesc) {
+        this.qcDesc = qcDesc;
+    }
+
+    public String getLogisticsNumber() {
+        return logisticsNumber;
+    }
+
+    public void setLogisticsNumber(String logisticsNumber) {
+        this.logisticsNumber = logisticsNumber;
+    }
 }

+ 1 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintSignclosedInfo.java

@@ -66,7 +66,7 @@ public class ComplaintSignclosedInfo implements Serializable {
     }
 
     public void setSignclosedLogisticsNumber(String signclosedLogisticsNumber) {
-        this.signclosedLogisticsNumber = signclosedLogisticsNumber;
+        this.signclosedLogisticsNumber = signclosedLogisticsNumber.toUpperCase();
     }
 
     public String getSignclosedSendName() {

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/fm/QcInfo.java

@@ -14,6 +14,7 @@ public class QcInfo implements Serializable {
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date qcCreateTime;
+    private String qcInfoDesc;
 
     public Integer getQcInfoId() {
         return qcInfoId;
@@ -46,4 +47,12 @@ public class QcInfo implements Serializable {
     public void setQcCreateTime(Date qcCreateTime) {
         this.qcCreateTime = qcCreateTime;
     }
+
+    public String getQcInfoDesc() {
+        return qcInfoDesc;
+    }
+
+    public void setQcInfoDesc(String qcInfoDesc) {
+        this.qcInfoDesc = qcInfoDesc;
+    }
 }

+ 4 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java

@@ -446,4 +446,8 @@ public interface SalesOrderService {
      * 查询售后短信模板
      */
     List<SmsTemplateInfo> listSmsTemplateInfo(SmsTemplateInfo smsTemplateInfo);
+    /**
+     * 查询订单各个状态数量
+     */
+    SalesOrder getStatusNum();
 }

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -1397,4 +1397,9 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         return salesOrderMapper.listSmsTemplateInfo(smsTemplateInfo);
     }
 
+    @Override
+    public SalesOrder getStatusNum() {
+        return salesOrderMapper.getStatusNum();
+    }
+
 }

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java

@@ -371,4 +371,9 @@ public interface SalesOrderMapper {
      * 查询售后短信模板
      */
     List<SmsTemplateInfo> listSmsTemplateInfo(SmsTemplateInfo smsTemplateInfo);
+
+    /**
+     * 查询订单各个状态数量
+     */
+    SalesOrder getStatusNum();
 }

+ 14 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml

@@ -314,7 +314,7 @@
                 AND sales_company_id = #{salesCompanyId}
             </if>
             <if test="salesId !=null">
-                AND sales_id = #{salesId}
+                    AND sales_id = #{salesId}
             </if>
             <if test="salesOrderId !=null and salesOrderId !=''">
                 AND sales_orderId = #{salesOrderId}
@@ -1732,4 +1732,17 @@
             </if>
         </where>
     </select>
+    <select id="getStatusNum" resultType="SalesOrder">
+        SELECT
+            sum(CASE WHEN sales_status = 0 then 1 else 0 end) AS beConfirmedNum,
+            sum(CASE WHEN sales_post_firm IS NULL then 1 else 0 end) AS distributionLogisticsNum,
+            sum(CASE WHEN sales_shipping_status = 0 then 1 else 0 end) AS sendTheGoods,
+            sum(CASE WHEN sales_shipping_status = 11 then 1 else 0 end) AS playSingle,
+            sum(CASE WHEN sales_deliver = 1 then 1 else 0 end) AS outbound
+        FROM
+            tb_rst_sales_order_info
+        WHERE
+            sales_status != 3
+        AND sales_batch_id != 'KS00000000000001'
+    </select>
 </mapper>

+ 32 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java

@@ -9,28 +9,37 @@ import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.sys.Admin;
 import com.iamberry.rst.faces.fm.ComplaintDetectInfoService;
+import com.iamberry.rst.faces.sms.SmsService;
 import com.iamberry.rst.service.cm.mapper.CustomerInfoMapper;
 import com.iamberry.rst.service.cm.mapper.ProcMethodMapper;
 import com.iamberry.rst.service.fm.mapper.ComplaintDetectInfoMapper;
 import com.iamberry.rst.service.fm.mapper.ComplaintMaintenanceInfoMapper;
 import com.iamberry.rst.util.PageUtil;
+import com.iamberry.rst.util.SmsConfig;
 import com.iamberry.wechat.core.entity.AdminUtils;
+import com.iamberry.wechat.tools.ResponseJson;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.MessageFormat;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
 @Service
 public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoService {
+    private Logger logger = LoggerFactory.getLogger(ComplaintDetectInfoServiceImpl.class);
     @Autowired
     private ComplaintDetectInfoMapper complaintDetectInfoMapper;
     @Autowired
     private CustomerInfoMapper customerInfoMapper;
     @Autowired
     private ProcMethodMapper procMethodMapper;
+    @Autowired
+    private SmsService smsService;
 
     @Override
     public ComplaintDetectInfo getDetectById(Integer detectId) {
@@ -139,6 +148,7 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
         QcInfo qcInfo = new  QcInfo();
         qcInfo.setDetectId(record.getDetectId());
         qcInfo.setQcIsThrough(record.getMaintenanceResults());
+        qcInfo.setQcInfoDesc(record.getQcDesc());
         complaintDetectInfoMapper.addQcInfo(qcInfo);
         return complaintDetectInfoMapper.updateDetectById(record);
     }
@@ -359,6 +369,28 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
                 log.setRecordDesc(detectInfo.getDetectCustomerDesc());
                 log.setRecordProcessingResults(detectInfo.getDetectProcessingResults());
                 complaintDetectInfoMapper.addTreatmentRecordLog(log);
+                //发送确认短信
+                String results = "";
+                switch (detectInfo.getDetectProcessingResults()){
+                    case 1:
+                        results = "付费维修";
+                        break;
+                    case 2:
+                        results = "免费维修";
+                        break;
+                    case 3:
+                        results = "退货";
+                        break;
+                    case 4:
+                        results = "换货";
+                        break;
+                    case 5:
+                        results = "原机退回";
+                        break;
+                }
+                String text = MessageFormat.format(SmsConfig.CUSTOMER_CONFIRM, detect.getDetectNumber(),results);
+                String result = smsService.sendOtherCMS(SmsConfig.CUSTOMER_PHONE, text);
+                logger.info("给 " + SmsConfig.CUSTOMER_PHONE + " 手机用户发送短信:" + text+"发送结果:"+result);
              return true;
             }
         }catch (Exception e){

+ 17 - 4
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintSignclosedInfoServiceImpl.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.service.fm;
 
 
+import com.auth0.jwt.internal.org.apache.commons.lang3.StringUtils;
 import com.github.pagehelper.PageHelper;
 import com.iamberry.redis.RedisUtils;
 import com.iamberry.rst.core.cm.*;
@@ -135,14 +136,26 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
      */
     public int addDetect(ComplaintSignclosedInfo record){
             CustomerInfo customerInfo = new CustomerInfo();
-            if(record.getSignclosedLogisticsNumber() != null){
-                customerInfo.setSendLogisticsNo(record.getSignclosedLogisticsNumber());
-            }
+        List<CustomerInfo> listCustomer = new ArrayList<>();
             if(record.getSignclosedCustomerId() != null){
                 customerInfo.setCustomerId(record.getSignclosedCustomerId());
             }
+            if(record.getSignclosedLogisticsNumber() != null){
+                //判断是否是京东
+                if (record.getSignclosedLogisticsNumber().contains("-")){
+                        //截取-前的内容搜索一次
+                    customerInfo.setSendLogisticsNo(StringUtils.substringBefore(record.getSignclosedLogisticsNumber(), "-"));
+                    listCustomer = customerInfoMapper.listCustomer(customerInfo);
+                    if(listCustomer.size() <= 0){//如果没有搜索到数据,则用完整单号搜索
+                        customerInfo.setSendLogisticsNo(record.getSignclosedLogisticsNumber());
+                        listCustomer = customerInfoMapper.listCustomer(customerInfo);
+                    }
+                }else{
+                    customerInfo.setSendLogisticsNo(record.getSignclosedLogisticsNumber());
+                    listCustomer = customerInfoMapper.listCustomer(customerInfo);
+                }
+            }
             ComplaintSignclosedInfo sigInfo = complaintSignclosedInfoMapper.getSignclosedById(record.getSignclosedId());
-            List<CustomerInfo> listCustomer = customerInfoMapper.listCustomer(customerInfo);
             boolean m = false;
             if(listCustomer.size() > 0){
                 customerInfo = listCustomer.get(0);

+ 14 - 5
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintDetectInfoMapper.xml

@@ -46,7 +46,8 @@
       ap.province signclosedAddrProvincesName,
       ac.city signclosedAddrCityName,
       ad.district signclosedAddrAreaName,
-      cs.signclosed_date signclosedDate
+      cs.signclosed_date signclosedDate,
+      cs.signclosed_logistics_number logisticsNumber
     from tb_rst_complaint_detect cd
     LEFT JOIN tb_rst_cm_question_describe qd on cd.customer_id = qd.customer_id
     LEFT JOIN tb_rst_product_info pi ON cd.product_id = pi.product_id
@@ -126,7 +127,8 @@
     ac.city signclosedAddrCityName,
     ad.district signclosedAddrAreaName,
     cs.signclosed_date signclosedDate,
-    c.customer_create_time customerCreateTime
+    c.customer_create_time customerCreateTime,
+    cs.signclosed_logistics_number logisticsNumber
     from tb_rst_complaint_detect cd
     LEFT JOIN tb_rst_product_info pi ON cd.product_id = pi.product_id
     LEFT JOIN tb_rst_cm_question_describe qd on cd.customer_id = qd.customer_id
@@ -205,7 +207,13 @@
         AND cd.detect_processing_results = #{detectProcessingResults}
       </if>
       <if test="detectNumber != null and detectNumber != ''" >
-        AND cd.detect_number = #{detectNumber}
+        AND cd.detect_number like CONCAT('%',#{detectNumber},'%')
+      </if>
+      <if test="logisticsNumber != null and logisticsNumber != ''" >
+        AND cs.signclosed_logistics_number = #{logisticsNumber}
+      </if>
+      <if test="signclosedDate != null and signclosedDate != ''" >
+        AND cs.signclosed_date = #{signclosedDate}
       </if>
     </where>
       GROUP BY cd.detect_id
@@ -473,11 +481,12 @@
     INSERT INTO tb_rst_fm_qc_info (
         qc_is_through,
         detect_id,
-        qc_create_time
+        qc_create_time,
+        qc_info_desc
     )
     VALUES
         (
-            #{qcIsThrough},#{detectId},NOW())
+            #{qcIsThrough},#{detectId},NOW(),#{qcInfoDesc})
   </insert>
   <select id="listQcInfo" parameterType="Integer" resultType="QcInfo">
     SELECT

+ 1 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintSignclosedInfoMapper.xml

@@ -150,7 +150,7 @@
         AND cs.signclosed_send_tel like CONCAT('%',#{signclosedSendTel},'%')
       </if>
       <if test="signclosedLogisticsNumber != null and signclosedLogisticsNumber != ''" >
-        AND cs.signclosed_logistics_number = #{signclosedLogisticsNumber}
+        AND cs.signclosed_logistics_number like CONCAT('%',#{signclosedLogisticsNumber},'%')
       </if>
       <if test="signclosedCustomerId != null " >
         AND cs.signclosed_customer_id = #{signclosedCustomerId}

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/util/SmsConfig.java

@@ -72,6 +72,10 @@ public class SmsConfig {
     /* 扫描牙刷二维码访问地址 */
     public static String scanningQrCode="";
 
+    /* 客服确认售后处理结果短信模板及手机号 */
+    public static String CUSTOMER_CONFIRM="";
+    public static String CUSTOMER_PHONE="";
+
 
 
 
@@ -120,6 +124,8 @@ public class SmsConfig {
             REMIND_POSTAGE_PENDING=pro.getProperty("REMIND_POSTAGE_PENDING");
 
             scanningQrCode=pro.getProperty("scanningQrCode");
+            CUSTOMER_CONFIRM=pro.getProperty("CUSTOMER_CONFIRM");
+            CUSTOMER_PHONE=pro.getProperty("CUSTOMER_PHONE");
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 14 - 6
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminDetectController.java

@@ -37,6 +37,7 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
@@ -101,12 +102,18 @@ public class AdminDetectController {
     @RequiresPermissions("detect:select:detect")
     @RequestMapping("/select_detect_list")
     public ModelAndView selectDetectList(HttpServletRequest request,
-                                         @RequestParam(value = "pageSize", defaultValue = "5", required = false) Integer pageSize,
+                                         @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
                                          @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
                                          @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum,
-                                         ComplaintDetectInfo detect) {
+                                         ComplaintDetectInfo detect) throws ParseException {
 
         ModelAndView mv = new ModelAndView("cm/inspection/detect_list");
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String signclosedDate = request.getParameter("signclosed_date");
+        if(signclosedDate != null && !signclosedDate.equals("")){
+            detect.setSignclosedDate(sdf.parse(signclosedDate));
+        }
         // 封装请求数据
         PageRequest<ComplaintDetectInfo> pageRequest = new PageRequest<>(detect, pageNO, pageSize, totalNum == 0);
         // 查询订单列表
@@ -886,20 +893,21 @@ public class AdminDetectController {
                 area.append("-"+detect.getSignclosedAddrCityName());
             }
             row.createCell(5).setCellValue(area.toString());
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
             if(detect.getSignclosedDate()==null){
                 row.createCell(6).setCellValue( "");
             }else{
-                row.createCell(6).setCellValue(detect.getSignclosedDate());
+                row.createCell(6).setCellValue(sdf.format(detect.getSignclosedDate()));
             }
             if(detect.getSalesTime()==null){
-                row.createCell(7).setCellValue( "");
+                row.createCell(7).setCellValue("");
             }else{
-                row.createCell(7).setCellValue(detect.getSalesTime());
+                row.createCell(7).setCellValue(sdf.format(detect.getSalesTime()));
             }
             if(detect.getCustomerCreateTime()==null){
                 row.createCell(8).setCellValue("");
             }else{
-                row.createCell(8).setCellValue(detect.getCustomerCreateTime());
+                row.createCell(8).setCellValue(sdf.format(detect.getCustomerCreateTime()));
             }
 
             row.createCell(9).setCellValue(detect.getProcTypeName()==null?"":detect.getProcTypeName());

+ 2 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java

@@ -113,10 +113,12 @@ public class AdminSalesOrderController {
         List<LogisticsInfo> logisticsInfoList = logisticsInfoService.getLogisticsInfoList(new LogisticsInfo());
         salesOrder.setSalesOrderItemList(null);
         List<ProductColor> productColorList = productService.listproductAndColor(productColor);
+        SalesOrder orderNum = salesOrderService.getStatusNum();//查询订单各个状态数量
         StitchAttrUtil.getSa()
                 .addDatePro("yyyy-MM-dd HH:mm:ss","startDate","endDate")
                 .setModelAndView(salesOrder, mv, "/admin/salesOrder/list_order_page", pagedResult);
 
+        mv.addObject("orderNum",orderNum);
         mv.addObject("listStoreInfo",listStoreInfo);
         mv.addObject("logisticsInfoList",logisticsInfoList);
         mv.addObject("identity",identity);

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

@@ -13,6 +13,7 @@
 <link rel="stylesheet" type="text/css" href="${path}/common/static/h-ui.admin/css/style.css" />
 <link rel="stylesheet" type="text/css" href="${path}/common/lib/Validform/Validform.css" />
 <link rel="stylesheet" type="text/css" href="${path}/common/css/iconfont/iconfont.css" />
+<link rel="stylesheet" type="text/css" href="${path}/common/static/chosen/css/chosen.css" />
 <!--[if IE 6]>
 <script type="text/javascript" src="${path}/common/lib/DD_belatedPNG_0.0.8a-min.js" ></script>
 <script>DD_belatedPNG.fix('*');</script>
@@ -25,6 +26,7 @@
 <script type="text/javascript" src="${path}/common/lib/jquery.validation/1.14.0/validate-methods.js"></script>
 <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/static/chosen/js/chosen.jquery.js"></script>
 
 <script type="text/javascript">
     var root_path = "${path}";

+ 6 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_QC.ftl

@@ -42,6 +42,12 @@
                     <label for="tel-b2">不通过</label>
                 </div>
             </div>
+            <div class="formControls col-12 col-sm-12">
+                <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;备注</strong>
+                <div class="radio-box">
+                    <textarea style="height: 60px;margin: 10px 0px 10px 0px;width: 100%;" name="qcDesc" id="qcDesc" class="my-textarea" placeholder="请填写寄出订单备注信息!"></textarea>
+                </div>
+            </div>
         </div>
         <#--<div style="text-align:center;">
             <span>如果转入生产,则生产部门同事可查看!</span>

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

@@ -327,12 +327,14 @@
         <table class="table table-border table-bg table-bordered" style="margin-top: 10px;">
             <tr class="text-c">
                 <th>是否通过</th>
+                <th>QC备注</th>
                 <th>操作时间</th>
             </tr>
                     <#if listQcInfo?? &&  (listQcInfo?size > 0) >
                         <#list listQcInfo as item>
                             <tr class="text-c">
                                 <td><#if item.qcIsThrough == 1>通过</#if><#if item.qcIsThrough == 2>不通过</#if></td>
+                                <td><#if item.qcInfoDesc??>${item.qcInfoDesc!''}</#if></td>
                                 <td>${item.qcCreateTime?string("yyyy/MM/dd HH:mm:ss")}</td>
                             </tr>
                         </#list>

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

@@ -110,6 +110,8 @@
             <input class="my-input" style="width: 70px;height: 29px;" type="text" name="detectPoint" id="detectPoint" value="${detectPoint!}" placeholder="故障指向"/>
             <input class="my-input" style="width: 70px;height: 29px;" type="text" name="detectNalysis" id="detectNalysis" value="${detectNalysis!}" placeholder="原因分析"/>
             <input class="my-input" style="width: 70px;height: 29px;" type="text" name="detectClassification" id="detectClassification" value="${detectClassification!}" placeholder="故障分类"/>
+            <input class="my-input" style="width: 70px;height: 29px;" type="text" name="logisticsNumber" id="logisticsNumber" value="${logisticsNumber!}" placeholder="快递单号"/>
+            <input class="my-input" style="width: 70px;" type="text" value="<#if signclosedDate??>${signclosedDate?string("yyyy-MM-dd")!''}</#if>" name="signclosed_date" id="signclosedDate" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d'})" placeholder="返厂日期" readonly="readonly"/>
 
 
             <#--<select class="my-select" name="detectState" style="height: 30px;width: 150px">
@@ -143,6 +145,7 @@
                 <th width="100">当前状态</th>
                 <th width="100">购买时间</th>
                 <th width="100">寄回地区</th>
+                <th width="100">物流单号</th>
                 <th width="100">是否有故障</th>
                 <th width="100">是否可翻新</th>
                 <th width="100">检测现象</th>
@@ -205,7 +208,7 @@
                             待翻新入库
                         </#if>
                         <#if detect.detectState == 21>
-                        <span class="c-success">已翻新入库</span>
+                        <span class="c-success">已翻新</span>
                         </#if>
                         <#if detect.detectState == 22>
                             不能翻新,待报废
@@ -214,8 +217,9 @@
                             <span class="c-success">已报废回收</span>
                         </#if>
                     </td>
-                    <td class="text-c" width="100">${(detect.salesTime?string("yyyy-MM-dd"))!'-'}</td>
+                    <td class="text-c" width="100"><#if detect.salesTime??> ${(detect.salesTime?string("yyyy-MM-dd"))!'-'} </#if></td>
                     <td class="text-c" width="100">${detect.signclosedAddrProvincesName!}-${detect.signclosedAddrCityName!}-${detect.signclosedAddrAreaName!}</td>
+                    <td class="text-c" width="100">${detect.logisticsNumber!''}</td>
                     <td class="text-c" width="100">
                         <#if detect.isMaintenance == 1>
@@ -303,10 +307,10 @@
                                 </a>
                             </#if>
                             <#if detect.detectState == 20>
-                                <a style="text-decoration:none" href="javascript:;" title="翻新完成"
+                                <a style="text-decoration:none" href="javascript:;" title="维修完成"
                                    onclick="add_remark('维修完成','${path}/admin/detect/to_complete?detectId=${detect.detectId!''}&detectState=21','570','450');">
 
-                                    <i class="Hui-iconfont">翻新完成</i><br>
+                                    <i class="Hui-iconfont">维修完成</i><br>
                                 </a>
                             </#if>
                             <#if detect.detectState == 31>

+ 90 - 55
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/update_complete.ftl

@@ -122,7 +122,8 @@
         <div class="input-box">
             <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">检测现象:</label>
             <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px;">
-                <select id="configSelect1" name="configSelect1" class="my-select" style="width: 93%;">
+                <select id="configSelect1" name="configSelect1" class="chosen" style="width: 93%;">
+                    <option value="">请选择检测现象</option>
                     <#if (config1?size > 0)>
                             <#list config1 as config>
                                 <option value="${config.configId!""}">${config.configDetectContent!""}</option>
@@ -153,7 +154,8 @@
         <div class="input-box">
             <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">故障原因:</label>
             <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px;">
-                <select id="configSelect2" name="configSelect2" class="my-select" style="width: 93%;">
+                <select id="configSelect2" name="configSelect2" class="chosen" style="width: 93%;">
+                    <option value="">请选择故障原因</option>
                     <#if (config2?size > 0)>
                             <#list config2 as config>
                                 <option value="${config.configId!""}">${config.configDetectContent!""}</option>
@@ -187,7 +189,8 @@
         <div class="input-box">
             <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">判定结果:</label>
             <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px;">
-                <select id="configSelect3" name="configSelect3" class="my-select" style="width: 93%;">
+                <select id="configSelect3" name="configSelect3" class="chosen" style="width: 93%;">
+                    <option value="">请选择判定结果</option>
                     <#if (config3?size > 0)>
                             <#list config3 as config>
                                 <option value="${config.configId!""}">${config.configDetectContent!""}</option>
@@ -221,7 +224,8 @@
         <div class="input-box">
             <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">故障指向:</label>
             <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px;">
-                <select id="configSelect4" name="configSelect4" class="my-select" style="width: 93%;">
+                <select id="configSelect4" name="configSelect4" class="chosen" style="width: 93%;">
+                    <option value="">请选择故障指向</option>
                     <#if (config4?size > 0)>
                             <#list config4 as config>
                                 <option value="${config.configId!""}">${config.configDetectContent!""}</option>
@@ -255,7 +259,8 @@
         <div class="input-box">
             <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">原因分析:</label>
             <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px;">
-                <select id="configSelect5" name="configSelect5" class="my-select" style="width: 93%;">
+                <select id="configSelect5" name="configSelect5" class="chosen" style="width: 93%;">
+                    <option value="">请选择原因分析</option>
                     <#if (config5?size > 0)>
                             <#list config5 as config>
                                 <option value="${config.configId!""}">${config.configDetectContent!""}</option>
@@ -361,17 +366,19 @@
         var name = $("#configSelect1 option:selected").text();
         var id = $('#configSelect1').val();
         var bl = true;
-        $("input[name='configli1']").each(function(j,item){
-            var s = $(item).val();
-            if(s === id){
-                bl = false;
+        if(id != "") {
+            $("input[name='configli1']").each(function (j, item) {
+                var s = $(item).val();
+                if (s === id) {
+                    bl = false;
+                }
+            });
+            if (bl) {
+                $("#configui1").append('<li class="b-close" id="configDetele1">' +
+                        ' <input type="hidden" value="' + id + '" name="configli1">' + name +
+                        '<span class="my-close" onclick="deleteli(this)"></span>' +
+                        '</li>');
             }
-        });
-        if(bl){
-            $("#configui1").append('<li class="b-close" id="configDetele1">' +
-                    ' <input type="hidden" value="'+id+'" name="configli1">' +name+
-                    '<span class="my-close" onclick="deleteli(this)"></span>' +
-                    '</li>');
         }
 
     });
@@ -380,17 +387,19 @@
         var name = $("#configSelect2 option:selected").text();
         var id = $('#configSelect2').val();
         var bl = true;
-        $("input[name='configli2']").each(function(j,item){
-            var s = $(item).val();
-            if(s === id){
-                bl = false;
+        if(id != "") {
+            $("input[name='configli2']").each(function (j, item) {
+                var s = $(item).val();
+                if (s === id) {
+                    bl = false;
+                }
+            });
+            if (bl) {
+                $("#configui2").append('<li class="b-close" id="configDetele2">' +
+                        ' <input type="hidden" value="' + id + '" name="configli2">' + name +
+                        '<span class="my-close" onclick="deleteli(this)"></span>' +
+                        '</li>');
             }
-        });
-        if(bl){
-        $("#configui2").append('<li class="b-close" id="configDetele2">' +
-                ' <input type="hidden" value="'+id+'" name="configli2">' +name+
-                '<span class="my-close" onclick="deleteli(this)"></span>' +
-                '</li>');
         }
     });
 
@@ -398,17 +407,19 @@
         var name = $("#configSelect3 option:selected").text();
         var id = $('#configSelect3').val();
         var bl = true;
-        $("input[name='configli3']").each(function(j,item){
-            var s = $(item).val();
-            if(s === id){
-                bl = false;
+        if(id != "") {
+            $("input[name='configli3']").each(function (j, item) {
+                var s = $(item).val();
+                if (s === id) {
+                    bl = false;
+                }
+            });
+            if (bl) {
+                $("#configui3").append('<li class="b-close" id="configDetele3">' +
+                        ' <input type="hidden" value="' + id + '" name="configli3">' + name +
+                        '<span class="my-close" onclick="deleteli(this)"></span>' +
+                        '</li>');
             }
-        });
-        if(bl) {
-            $("#configui3").append('<li class="b-close" id="configDetele3">' +
-                    ' <input type="hidden" value="' + id + '" name="configli3">' + name +
-                    '<span class="my-close" onclick="deleteli(this)"></span>' +
-                    '</li>');
         }
     });
 
@@ -416,17 +427,19 @@
         var name = $("#configSelect4 option:selected").text();
         var id = $('#configSelect4').val();
         var bl = true;
-        $("input[name='configli4']").each(function(j,item){
-            var s = $(item).val();
-            if(s === id){
-                bl = false;
+        if(id != "") {
+            $("input[name='configli4']").each(function (j, item) {
+                var s = $(item).val();
+                if (s === id) {
+                    bl = false;
+                }
+            });
+            if (bl) {
+                $("#configui4").append('<li class="b-close" id="configDetele4">' +
+                        ' <input type="hidden" value="' + id + '" name="configli4">' + name +
+                        '<span class="my-close" onclick="deleteli(this)"></span>' +
+                        '</li>');
             }
-        });
-        if(bl) {
-            $("#configui4").append('<li class="b-close" id="configDetele4">' +
-                    ' <input type="hidden" value="' + id + '" name="configli4">' + name +
-                    '<span class="my-close" onclick="deleteli(this)"></span>' +
-                    '</li>');
         }
     });
 
@@ -434,17 +447,19 @@
         var name = $("#configSelect5 option:selected").text();
         var id = $('#configSelect5').val();
         var bl = true;
-        $("input[name='configli5']").each(function(j,item){
-            var s = $(item).val();
-            if(s === id){
-                bl = false;
+        if(id != "") {
+            $("input[name='configli5']").each(function (j, item) {
+                var s = $(item).val();
+                if (s === id) {
+                    bl = false;
+                }
+            });
+            if (bl) {
+                $("#configui5").append('<li class="b-close" id="configDetele5">' +
+                        ' <input type="hidden" value="' + id + '" name="configli5">' + name +
+                        '<span class="my-close" onclick="deleteli(this)"></span>' +
+                        '</li>');
             }
-        });
-        if(bl) {
-            $("#configui5").append('<li class="b-close" id="configDetele5">' +
-                    ' <input type="hidden" value="' + id + '" name="configli5">' + name +
-                    '<span class="my-close" onclick="deleteli(this)"></span>' +
-                    '</li>');
         }
     });
 
@@ -582,6 +597,26 @@
             }
         });
     }
+    $('.chosen').chosen({
+        no_results_text: "没有找到结果!",//搜索无结果时显示的提示
+        search_contains:true,   //关键字模糊搜索。设置为true,只要选项包含搜索词就会显示;设置为false,则要求从选项开头开始匹配
+        allow_single_deselect:true, //单选下拉框是否允许取消选择。如果允许,选中选项会有一个x号可以删除选项
+        disable_search: false, //禁用搜索。设置为true,则无法搜索选项。
+        disable_search_threshold: 0, //当选项少等于于指定个数时禁用搜索。
+        inherit_select_classes: true, //是否继承原下拉框的样式类,此处设为继承
+        placeholder_text_single: '选择国家', //单选选择框的默认提示信息,当选项为空时会显示。如果原下拉框设置了data-placeholder,会覆盖这里的值。
+        width: '467px', //设置chosen下拉框的宽度。即使原下拉框本身设置了宽度,也会被width覆盖。
+        max_shown_results: 1000, //下拉框最大显示选项数量
+        display_disabled_options: false,
+        single_backstroke_delete: false, //false表示按两次删除键才能删除选项,true表示按一次删除键即可删除
+        case_sensitive_search: false, //搜索大小写敏感。此处设为不敏感
+        group_search: false, //选项组是否可搜。此处搜索不可搜
+        include_group_label_in_selected: true //选中选项是否显示选项分组。false不显示,true显示。默认false。
+    });
+    $('.chosen2').chosen({
+        search_contains:false,
+        enable_split_word_search: true //分词搜索,选项词可通过空格或'[]'分隔。search_contains为false时才能看出效果
+    });
 </script>
 </body>
 </html>

+ 92 - 56
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/update_detect.ftl

@@ -122,7 +122,8 @@
             <div class="input-box">
                 <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">检测现象:</label>
                 <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px;">
-                    <select id="configSelect1" name="configSelect1" class="my-select" style="width: 93%;">
+                    <select id="configSelect1" name="configSelect1" class="chosen" style="width: 93%;">
+                        <option value="">请选择检测现象</option>
                     <#if (config1?size > 0)>
                             <#list config1 as config>
                                 <option value="${config.configId!""}">${config.configDetectContent!""}</option>
@@ -156,7 +157,8 @@
             <div class="input-box">
                 <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">故障原因:</label>
                 <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px;">
-                    <select id="configSelect2" name="configSelect2" class="my-select" style="width: 93%;">
+                    <select id="configSelect2" name="configSelect2" class="chosen" style="width: 93%;">
+                        <option value="">请选择故障原因</option>
                     <#if (config2?size > 0)>
                             <#list config2 as config>
                                 <option value="${config.configId!""}">${config.configDetectContent!""}</option>
@@ -169,7 +171,7 @@
 
             <div class="input-box">
                 <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;"></label>
-                <div class="formControls col-9 col-sm-9 huanhang" id="config2" style="margin: 10px 0px;">
+                <div class="formControls col-9 col-sm-9 huanhang" id="chosen" style="margin: 10px 0px;">
                     <div class="row">
                         <ul class="close-box" id="configui2">
                             <#if detectFailureCauseList??>
@@ -192,7 +194,8 @@
             <div class="input-box">
                 <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">判定结果:</label>
                 <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px;">
-                    <select id="configSelect3" name="configSelect3" class="my-select" style="width: 93%;">
+                    <select id="configSelect3" name="configSelect3" class="chosen" style="width: 93%;">
+                        <option value="">请选择判定结果</option>
                     <#if (config3?size > 0)>
                             <#list config3 as config>
                                 <option value="${config.configId!""}">${config.configDetectContent!""}</option>
@@ -228,7 +231,8 @@
             <div class="input-box">
                 <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">故障指向:</label>
                 <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px;">
-                    <select id="configSelect4" name="configSelect4" class="my-select" style="width: 93%;">
+                    <select id="configSelect4" name="configSelect4" class="chosen" style="width: 93%;">
+                        <option value="">请选择故障指向</option>
                     <#if (config4?size > 0)>
                             <#list config4 as config>
                                 <option value="${config.configId!""}">${config.configDetectContent!""}</option>
@@ -262,7 +266,8 @@
             <div class="input-box">
                 <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin-top: 14px;">原因分析:</label>
                 <div class="formControls col-9 col-sm-9 huanhang" style="margin: 10px 0px;">
-                    <select id="configSelect5" name="configSelect5" class="my-select" style="width: 93%;">
+                    <select id="configSelect5" name="configSelect5" class="chosen" style="width: 93%;">
+                        <option value="">请选择原因分析</option>
                     <#if (config5?size > 0)>
                             <#list config5 as config>
                                 <option value="${config.configId!""}">${config.configDetectContent!""}</option>
@@ -411,17 +416,19 @@
         var name = $("#configSelect1 option:selected").text();
         var id = $('#configSelect1').val();
         var bl = true;
-        $("input[name='configli1']").each(function(j,item){
-            var s = $(item).val();
-            if(s === id){
-                bl = false;
+        if(id != "") {
+            $("input[name='configli1']").each(function (j, item) {
+                var s = $(item).val();
+                if (s === id) {
+                    bl = false;
+                }
+            });
+            if (bl) {
+                $("#configui1").append('<li class="b-close" id="configDetele1">' +
+                        ' <input type="hidden" value="' + id + '" name="configli1">' + name +
+                        '<span class="my-close" onclick="deleteli(this)"></span>' +
+                        '</li>');
             }
-        });
-        if(bl){
-            $("#configui1").append('<li class="b-close" id="configDetele1">' +
-                    ' <input type="hidden" value="'+id+'" name="configli1">' +name+
-                    '<span class="my-close" onclick="deleteli(this)"></span>' +
-                    '</li>');
         }
 
     });
@@ -430,17 +437,19 @@
         var name = $("#configSelect2 option:selected").text();
         var id = $('#configSelect2').val();
         var bl = true;
-        $("input[name='configli2']").each(function(j,item){
-            var s = $(item).val();
-            if(s === id){
-                bl = false;
+        if(id != ""){
+            $("input[name='configli2']").each(function(j,item){
+                var s = $(item).val();
+                if(s === id){
+                    bl = false;
+                }
+            });
+            if(bl){
+                $("#configui2").append('<li class="b-close" id="configDetele2">' +
+                        ' <input type="hidden" value="'+id+'" name="configli2">' +name+
+                        '<span class="my-close" onclick="deleteli(this)"></span>' +
+                        '</li>');
             }
-        });
-        if(bl){
-            $("#configui2").append('<li class="b-close" id="configDetele2">' +
-                    ' <input type="hidden" value="'+id+'" name="configli2">' +name+
-                    '<span class="my-close" onclick="deleteli(this)"></span>' +
-                    '</li>');
         }
     });
 
@@ -448,17 +457,19 @@
         var name = $("#configSelect3 option:selected").text();
         var id = $('#configSelect3').val();
         var bl = true;
-        $("input[name='configli3']").each(function(j,item){
-            var s = $(item).val();
-            if(s === id){
-                bl = false;
+        if(id != "") {
+            $("input[name='configli3']").each(function (j, item) {
+                var s = $(item).val();
+                if (s === id) {
+                    bl = false;
+                }
+            });
+            if (bl) {
+                $("#configui3").append('<li class="b-close" id="configDetele3">' +
+                        ' <input type="hidden" value="' + id + '" name="configli3">' + name +
+                        '<span class="my-close" onclick="deleteli(this)"></span>' +
+                        '</li>');
             }
-        });
-        if(bl) {
-            $("#configui3").append('<li class="b-close" id="configDetele3">' +
-                    ' <input type="hidden" value="' + id + '" name="configli3">' + name +
-                    '<span class="my-close" onclick="deleteli(this)"></span>' +
-                    '</li>');
         }
     });
 
@@ -466,17 +477,19 @@
         var name = $("#configSelect4 option:selected").text();
         var id = $('#configSelect4').val();
         var bl = true;
-        $("input[name='configli4']").each(function(j,item){
-            var s = $(item).val();
-            if(s === id){
-                bl = false;
+        if(id != "") {
+            $("input[name='configli4']").each(function (j, item) {
+                var s = $(item).val();
+                if (s === id) {
+                    bl = false;
+                }
+            });
+            if (bl) {
+                $("#configui4").append('<li class="b-close" id="configDetele4">' +
+                        ' <input type="hidden" value="' + id + '" name="configli4">' + name +
+                        '<span class="my-close" onclick="deleteli(this)"></span>' +
+                        '</li>');
             }
-        });
-        if(bl) {
-            $("#configui4").append('<li class="b-close" id="configDetele4">' +
-                    ' <input type="hidden" value="' + id + '" name="configli4">' + name +
-                    '<span class="my-close" onclick="deleteli(this)"></span>' +
-                    '</li>');
         }
     });
 
@@ -484,17 +497,19 @@
         var name = $("#configSelect5 option:selected").text();
         var id = $('#configSelect5').val();
         var bl = true;
-        $("input[name='configli5']").each(function(j,item){
-            var s = $(item).val();
-            if(s === id){
-                bl = false;
+        if(id != "") {
+            $("input[name='configli5']").each(function (j, item) {
+                var s = $(item).val();
+                if (s === id) {
+                    bl = false;
+                }
+            });
+            if (bl) {
+                $("#configui5").append('<li class="b-close" id="configDetele5">' +
+                        ' <input type="hidden" value="' + id + '" name="configli5">' + name +
+                        '<span class="my-close" onclick="deleteli(this)"></span>' +
+                        '</li>');
             }
-        });
-        if(bl) {
-            $("#configui5").append('<li class="b-close" id="configDetele5">' +
-                    ' <input type="hidden" value="' + id + '" name="configli5">' + name +
-                    '<span class="my-close" onclick="deleteli(this)"></span>' +
-                    '</li>');
         }
     });
 
@@ -562,6 +577,27 @@
             }
         });
     }
+
+    $('.chosen').chosen({
+        no_results_text: "没有找到结果!",//搜索无结果时显示的提示
+        search_contains:true,   //关键字模糊搜索。设置为true,只要选项包含搜索词就会显示;设置为false,则要求从选项开头开始匹配
+        allow_single_deselect:true, //单选下拉框是否允许取消选择。如果允许,选中选项会有一个x号可以删除选项
+        disable_search: false, //禁用搜索。设置为true,则无法搜索选项。
+        disable_search_threshold: 0, //当选项少等于于指定个数时禁用搜索。
+        inherit_select_classes: true, //是否继承原下拉框的样式类,此处设为继承
+        placeholder_text_single: '选择国家', //单选选择框的默认提示信息,当选项为空时会显示。如果原下拉框设置了data-placeholder,会覆盖这里的值。
+        width: '467px', //设置chosen下拉框的宽度。即使原下拉框本身设置了宽度,也会被width覆盖。
+        max_shown_results: 1000, //下拉框最大显示选项数量
+        display_disabled_options: false,
+        single_backstroke_delete: false, //false表示按两次删除键才能删除选项,true表示按一次删除键即可删除
+        case_sensitive_search: false, //搜索大小写敏感。此处设为不敏感
+        group_search: false, //选项组是否可搜。此处搜索不可搜
+        include_group_label_in_selected: true //选中选项是否显示选项分组。false不显示,true显示。默认false。
+    });
+    $('.chosen2').chosen({
+        search_contains:false,
+        enable_split_word_search: true //分词搜索,选项词可通过空格或'[]'分隔。search_contains为false时才能看出效果
+    });
 </script>
 </body>
 </html>

+ 4 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/sales_order_list.ftl

@@ -38,14 +38,15 @@
     </style>
 </head>
 <body>
-<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
+<#--<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
     <span class="c-gray en">/</span> 订单管理
     <span class="c-gray en">/</span> 订单列表
     <a class="btn radius r" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
-</nav>
+</nav>-->
 
 <!--  录入订单 -->
 <div class="page-container">
+    <#if orderNum??><pre style="font-size: 14px;margin-top: -1%;">待确认:${orderNum.beConfirmedNum!'0'}&nbsp;&nbsp;待分配物流:${orderNum.distributionLogisticsNum!'0'} &nbsp;&nbsp;待发货:${orderNum.sendTheGoods!'0'}&nbsp;&nbsp; 待打单:${orderNum.playSingle!'0'} &nbsp;&nbsp;待出库:${orderNum.outbound!'0'} </pre></#if>
     <div class="text-c" id="form-download">
         <form action="${path}/admin/salesOrder/list_order_page" method="post">
 
@@ -113,7 +114,7 @@
             </div>
             <#--Efast add end-->
             <div style="width: 90%;margin-left: 10%;">
-                <input type="text" class="my-input trim_input"  style="margin-top: -3px;text-indent: 1em;width:118px;margin-right: 0px;height: 28px;padding: 0px;" value="${salesOrder.salesOrderId!}" placeholder="订单号" name="salesOrderId" id="salesOrderId">
+                <input type="text" class="my-input trim_input"  style="margin-top: -3px;text-indent: 1em;width:118px;margin-right: 0px;height: 28px;padding: 0px;margin-left: -77px;" value="${salesOrder.salesOrderId!}" placeholder="订单号" name="salesOrderId" id="salesOrderId">
                 <input type="text" class="my-input trim_input"  style="margin-top: -3px;text-indent: 1em;width:118px;margin-right: 0px;height: 28px;padding: 0px;" value="${salesOrder.salesDealCode!}" placeholder="交易号" name="salesDealCode" id="salesDealCode">
                 <input type="text" class="my-input trim_input"  style="margin-top: -3px;width:118px;text-indent: 1em;margin-right: 0px;height: 28px;padding: 0px;" value="${salesOrder.salesBatchId!}" placeholder="订单批次号" name="salesBatchId" id="salesBatchId">
 

BIN
watero-rst-web/src/main/webapp/common/static/chosen/css/chosen-sprite.png


BIN
watero-rst-web/src/main/webapp/common/static/chosen/css/chosen-sprite@2x.png


+ 423 - 0
watero-rst-web/src/main/webapp/common/static/chosen/css/chosen.css

@@ -0,0 +1,423 @@
+/*!
+Chosen, a Select Box Enhancer for jQuery and Prototype
+by Patrick Filler for Harvest, http://getharvest.com
+
+Version 1.1.0
+Full source at https://github.com/harvesthq/chosen
+Copyright (c) 2011 Harvest http://getharvest.com
+
+MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
+This file is generated by `grunt build`, do not edit it by hand.
+*/
+
+/* @group Base */
+.chosen-container {
+    position: relative;
+    display: inline-block;
+    vertical-align: middle;
+    font-size: 13px;
+    zoom: 1;
+    *display: inline;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    user-select: none;
+}
+.chosen-container .chosen-drop {
+    position: absolute;
+    top: 100%;
+    left: -9999px;
+    z-index: 1010;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    width: 100%;
+    border: 1px solid #aaa;
+    border-top: 0;
+    background: #fff;
+    box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
+}
+.chosen-container.chosen-with-drop .chosen-drop {
+    left: 0;
+}
+.chosen-container a {
+    cursor: pointer;
+}
+
+/* @end */
+/* @group Single Chosen */
+.chosen-container-single .chosen-single {
+    position: relative;
+    display: block;
+    overflow: hidden;
+    padding: 0 0 0 8px;
+    height: 23px;
+    border: 1px solid #aaa;
+    border-radius: 5px;
+    background-color: #fff;
+    background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
+    background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+    background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+    background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+    background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+    background-clip: padding-box;
+    box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
+    color: #444;
+    text-decoration: none;
+    white-space: nowrap;
+    line-height: 24px;
+}
+.chosen-container-single .chosen-default {
+    color: #999;
+}
+.chosen-container-single .chosen-single span {
+    display: block;
+    overflow: hidden;
+    margin-right: 26px;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+.chosen-container-single .chosen-single-with-deselect span {
+    margin-right: 38px;
+}
+.chosen-container-single .chosen-single abbr {
+    position: absolute;
+    top: 6px;
+    right: 26px;
+    display: block;
+    width: 12px;
+    height: 12px;
+    background: url('css/chosen-sprite.png') -42px 1px no-repeat;
+    font-size: 1px;
+}
+.chosen-container-single .chosen-single abbr:hover {
+    background-position: -42px -10px;
+}
+.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
+    background-position: -42px -10px;
+}
+.chosen-container-single .chosen-single div {
+    position: absolute;
+    top: 0;
+    right: 0;
+    display: block;
+    width: 18px;
+    height: 100%;
+}
+.chosen-container-single .chosen-single div b {
+    display: block;
+    width: 100%;
+    height: 100%;
+    background: url('css/chosen-sprite.png') no-repeat 0px 7px;
+}
+.chosen-container-single .chosen-search {
+    position: relative;
+    z-index: 1010;
+    margin: 0;
+    padding: 3px 4px;
+    white-space: nowrap;
+}
+.chosen-container-single .chosen-search input[type="text"] {
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    margin: 1px 0;
+    padding: 4px 20px 4px 5px;
+    width: 100%;
+    height: auto;
+    outline: 0;
+    border: 1px solid #aaa;
+    background: white url('css/chosen-sprite.png') no-repeat 100% -20px;
+    background: url('css/chosen-sprite.png') no-repeat 100% -20px;
+    font-size: 1em;
+    font-family: sans-serif;
+    line-height: normal;
+    border-radius: 0;
+}
+.chosen-container-single .chosen-drop {
+    margin-top: -1px;
+    border-radius: 0 0 4px 4px;
+    background-clip: padding-box;
+}
+.chosen-container-single.chosen-container-single-nosearch .chosen-search {
+    position: absolute;
+    left: -9999px;
+}
+
+/* @end */
+/* @group Results */
+.chosen-container .chosen-results {
+    position: relative;
+    overflow-x: hidden;
+    overflow-y: auto;
+    margin: 0 4px 4px 0;
+    padding: 0 0 0 4px;
+    max-height: 240px;
+    -webkit-overflow-scrolling: touch;
+}
+.chosen-container .chosen-results li {
+    display: none;
+    margin: 0;
+    padding: 5px 6px;
+    list-style: none;
+    line-height: 15px;
+    -webkit-touch-callout: none;
+}
+.chosen-container .chosen-results li.active-result {
+    display: list-item;
+    cursor: pointer;
+}
+.chosen-container .chosen-results li.disabled-result {
+    display: list-item;
+    color: #ccc;
+    cursor: default;
+}
+.chosen-container .chosen-results li.highlighted {
+    background-color: #3875d7;
+    background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
+    background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
+    background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
+    background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
+    background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
+    color: #fff;
+}
+.chosen-container .chosen-results li.no-results {
+    display: list-item;
+    background: #f4f4f4;
+}
+.chosen-container .chosen-results li.group-result {
+    display: list-item;
+    font-weight: bold;
+    cursor: default;
+}
+.chosen-container .chosen-results li.group-option {
+    padding-left: 15px;
+}
+.chosen-container .chosen-results li em {
+    font-style: normal;
+    text-decoration: underline;
+}
+
+/* @end */
+/* @group Multi Chosen */
+.chosen-container-multi .chosen-choices {
+    -moz-box-sizing: border-box;
+    background-color: #FFFFFF;
+    border: 1px solid #CBD5DD;
+    border-radius: 2px;
+    cursor: text;
+    height: auto !important;
+    margin: 0;
+    min-height: 30px;
+    overflow: hidden;
+    padding: 2px;
+    position: relative;
+    width: 100%;
+}
+.chosen-container-multi .chosen-choices li {
+    float: left;
+    list-style: none;
+}
+.chosen-container-multi .chosen-choices li.search-field {
+    margin: 0;
+    padding: 0;
+    white-space: nowrap;
+}
+.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
+    margin: 1px 0;
+    padding: 5px;
+    height: 25px;
+    outline: 0;
+    border: 0 !important;
+    background: transparent !important;
+    box-shadow: none;
+    color: #666;
+    font-size: 100%;
+    font-family: sans-serif;
+    line-height: normal;
+    border-radius: 0;
+}
+.chosen-container-multi .chosen-choices li.search-field .default {
+    color: #999;
+}
+.chosen-container-multi .chosen-choices li.search-choice {
+    position: relative;
+    margin: 3px 0 3px 5px;
+    padding: 3px 20px 3px 5px;
+    border: 1px solid #aaa;
+    border-radius: 3px;
+    background-color: #e4e4e4;
+    background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
+    background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-clip: padding-box;
+    box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
+    color: #333;
+    line-height: 13px;
+    cursor: default;
+}
+.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
+    position: absolute;
+    top: 4px;
+    right: 3px;
+    display: block;
+    width: 12px;
+    height: 12px;
+    background: url('css/chosen-sprite.png') -42px 1px no-repeat;
+    font-size: 1px;
+}
+.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
+    background-position: -42px -10px;
+}
+.chosen-container-multi .chosen-choices li.search-choice-disabled {
+    padding-right: 5px;
+    border: 1px solid #ccc;
+    background-color: #e4e4e4;
+    background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
+    background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    color: #666;
+}
+.chosen-container-multi .chosen-choices li.search-choice-focus {
+    background: #d4d4d4;
+}
+.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
+    background-position: -42px -10px;
+}
+.chosen-container-multi .chosen-results {
+    margin: 0;
+    padding: 0;
+}
+.chosen-container-multi .chosen-drop .result-selected {
+    display: list-item;
+    color: #ccc;
+    cursor: default;
+}
+
+/* @end */
+/* @group Active  */
+.chosen-container-active .chosen-single {
+    border: 1px solid #5897fb;
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+}
+.chosen-container-active.chosen-with-drop .chosen-single {
+    border: 1px solid #aaa;
+    -moz-border-radius-bottomright: 0;
+    border-bottom-right-radius: 0;
+    -moz-border-radius-bottomleft: 0;
+    border-bottom-left-radius: 0;
+}
+.chosen-container-active.chosen-with-drop .chosen-single div {
+    border-left: none;
+    background: transparent;
+}
+.chosen-container-active.chosen-with-drop .chosen-single div b {
+    background-position: -18px 7px;
+}
+.chosen-container-active .chosen-choices {
+    border: 1px solid #5897fb;
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+}
+.chosen-container-active .chosen-choices li.search-field input[type="text"] {
+    color: #111 !important;
+}
+
+/* @end */
+/* @group Disabled Support */
+.chosen-disabled {
+    opacity: 0.5 !important;
+    cursor: default;
+}
+.chosen-disabled .chosen-single {
+    cursor: default;
+}
+.chosen-disabled .chosen-choices .search-choice .search-choice-close {
+    cursor: default;
+}
+
+/* @end */
+/* @group Right to Left */
+.chosen-rtl {
+    text-align: right;
+}
+.chosen-rtl .chosen-single {
+    overflow: visible;
+    padding: 0 8px 0 0;
+}
+.chosen-rtl .chosen-single span {
+    margin-right: 0;
+    margin-left: 26px;
+    direction: rtl;
+}
+.chosen-rtl .chosen-single-with-deselect span {
+    margin-left: 38px;
+}
+.chosen-rtl .chosen-single div {
+    right: auto;
+    left: 3px;
+}
+.chosen-rtl .chosen-single abbr {
+    right: auto;
+    left: 26px;
+}
+.chosen-rtl .chosen-choices li {
+    float: right;
+}
+.chosen-rtl .chosen-choices li.search-field input[type="text"] {
+    direction: rtl;
+}
+.chosen-rtl .chosen-choices li.search-choice {
+    margin: 3px 5px 3px 0;
+    padding: 3px 5px 3px 19px;
+}
+.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
+    right: auto;
+    left: 4px;
+}
+.chosen-rtl.chosen-container-single-nosearch .chosen-search,
+.chosen-rtl .chosen-drop {
+    left: 9999px;
+}
+.chosen-rtl.chosen-container-single .chosen-results {
+    margin: 0 0 4px 4px;
+    padding: 0 4px 0 0;
+}
+.chosen-rtl .chosen-results li.group-option {
+    padding-right: 15px;
+    padding-left: 0;
+}
+.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
+    border-right: none;
+}
+.chosen-rtl .chosen-search input[type="text"] {
+    padding: 4px 5px 4px 20px;
+    background: white url('css/chosen-sprite.png') no-repeat -30px -20px;
+    background: url('css/chosen-sprite.png') no-repeat -30px -20px;
+    direction: rtl;
+}
+.chosen-rtl.chosen-container-single .chosen-single div b {
+    background-position: 6px 2px;
+}
+.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
+    background-position: -12px 2px;
+}
+
+/* @end */
+/* @group Retina compatibility */
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
+    .chosen-rtl .chosen-search input[type="text"],
+    .chosen-container-single .chosen-single abbr,
+    .chosen-container-single .chosen-single div b,
+    .chosen-container-single .chosen-search input[type="text"],
+    .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
+    .chosen-container .chosen-results-scroll-down span,
+    .chosen-container .chosen-results-scroll-up span {
+        background-image: url('css/chosen-sprite@2x.png') !important;
+        background-size: 52px 37px !important;
+        background-repeat: no-repeat !important;
+    }
+}
+/* @end */

File diff suppressed because it is too large
+ 1212 - 0
watero-rst-web/src/main/webapp/common/static/chosen/js/chosen.jquery.js