wangxiaoming 5 vuotta sitten
vanhempi
commit
e5e6225ab4
18 muutettua tiedostoa jossa 1032 lisäystä ja 157 poistoa
  1. 21 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ComplaintQuestionInfo.java
  2. 1 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/ComplaintQuestionInfoService.java
  3. 12 13
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintQuestionInfoMapper.xml
  4. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintTypeInfoMapper.xml
  5. 2 3
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  6. 114 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/ComplaintQuestionInfoController.java
  7. 14 14
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl
  8. 1 1
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl
  9. 20 20
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_customer.ftl
  10. 173 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/question/add_question.ftl
  11. 76 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/question/detail_question.ftl
  12. 228 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/question/question_list.ftl
  13. 177 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/question/update_question.ftl
  14. 6 6
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/add_signclosed.ftl
  15. 1 1
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/sales_order_list.ftl
  16. 120 98
      watero-rst-web/src/main/webapp/common/js/common/UnlimitedLevelContact.js
  17. 29 0
      watero-rst-web/src/main/webapp/common/js/common/common.js
  18. 36 0
      watero-rst-web/src/main/webapp/common/js/customer/question.js

+ 21 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/ComplaintQuestionInfo.java

@@ -29,6 +29,9 @@ public class ComplaintQuestionInfo implements Serializable {
 
     private Integer questionNum; //数量
 
+    private String smallClassName; //小类名称
+    private String complaintClassName; //大类名称
+
     public Integer getQuestionId() {
         return questionId;
     }
@@ -140,4 +143,22 @@ public class ComplaintQuestionInfo implements Serializable {
     public void setDetectComplaintType(Integer detectComplaintType) {
         this.detectComplaintType = detectComplaintType;
     }
+
+    public String getSmallClassName() {
+        return smallClassName;
+    }
+
+    public void setSmallClassName(String smallClassName) {
+        this.smallClassName = smallClassName;
+    }
+
+    public String getComplaintClassName() {
+        return complaintClassName;
+    }
+
+    public void setComplaintClassName(String complaintClassName) {
+        this.complaintClassName = complaintClassName;
+    }
+
+
 }

+ 1 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/ComplaintQuestionInfoService.java

@@ -35,4 +35,5 @@ public interface ComplaintQuestionInfoService {
      * @return
      */
     PagedResult<ComplaintQuestionInfo> listComplaintQuestionInfo(int pageNO, int pageSize, ComplaintQuestionInfo complaintQuestionInfo, boolean isTotalNum);
+
 }

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

@@ -52,7 +52,10 @@
       tb_rst_cm_complaint_question.question_update_time,
       tb_rst_cm_complaint_question.question_resolved_num,
       tb_rst_cm_complaint_question.question_not_solved_num,
-      tb_rst_cm_complaint_type.complaint_id AS complaintId
+      tb_rst_cm_complaint_type.complaint_id AS complaintId,
+      tb_rst_cm_complaint_small_class.small_class_name AS smallClassName,
+      tb_rst_cm_complaint_type.complaint_class_name AS complaintClassName,
+      tb_rst_cm_complaint_type.complaint_type AS detectComplaintType
     FROM
       tb_rst_cm_complaint_question
     INNER JOIN tb_rst_cm_complaint_small_class ON tb_rst_cm_complaint_question.small_class_id = tb_rst_cm_complaint_small_class.small_class_id
@@ -76,20 +79,22 @@
       <if test="detectComplaintType != null">
         AND tb_rst_cm_complaint_type.complaint_type = #{detectComplaintType}
       </if>
-      AND question_state = 1
+      <if test="questionState != null">
+        AND question_state = #{questionState}
+      </if>
+      <if test="questionIsQcDetect != null">
+        AND question_is_qc_detect = #{questionIsQcDetect}
+      </if>
     </where>
     ORDER BY question_create_time DESC
-
   </select>
 
   <insert id="insert" parameterType="ComplaintQuestionInfo"  useGeneratedKeys="true" keyProperty="questionId">
     insert into tb_rst_cm_complaint_question (small_class_id, question_name,
-      question_state, question_is_qc_detect, question_create_time, 
-      question_update_time, question_profile,question_resolved_num,question_not_solved_num
+      question_state, question_is_qc_detect,question_profile,question_resolved_num,question_not_solved_num
       )
     values ( #{smallClassId,jdbcType=INTEGER}, #{questionName,jdbcType=VARCHAR},
-      #{questionState,jdbcType=BIT}, #{questionIsQcDetect,jdbcType=BIT}, #{questionCreateTime,jdbcType=TIMESTAMP}, 
-      #{questionUpdateTime,jdbcType=TIMESTAMP}, #{questionProfile,jdbcType=LONGVARCHAR}, #{questionResolvedNum,jdbcType=INTEGER}
+      #{questionState,jdbcType=BIT}, #{questionIsQcDetect,jdbcType=BIT},  #{questionProfile,jdbcType=LONGVARCHAR}, #{questionResolvedNum,jdbcType=INTEGER}
       , #{questionNotSolvedNum,jdbcType=INTEGER}
       )
   </insert>
@@ -108,12 +113,6 @@
       <if test="questionIsQcDetect != null" >
         question_is_qc_detect = #{questionIsQcDetect,jdbcType=BIT},
       </if>
-      <if test="questionCreateTime != null" >
-        question_create_time = #{questionCreateTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="questionUpdateTime != null" >
-        question_update_time = #{questionUpdateTime,jdbcType=TIMESTAMP},
-      </if>
       <if test="questionProfile != null" >
         question_profile = #{questionProfile,jdbcType=LONGVARCHAR},
       </if>

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

@@ -12,7 +12,7 @@
   </resultMap>
   <sql id="Base_Column_List" >
     complaint_id, complaint_consulting_type, complaint_class_name, complaint_class_profile, 
-    complaint_class_state, complaint_create_time, complaint_update_time
+    complaint_class_state, complaint_create_time, complaint_update_time,complaint_type
   </sql>
   <select id="getTypeById" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
     select 

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

@@ -535,22 +535,22 @@ public class AdminCustomerController {
 
         //查询客诉类型集合
         List<ComplaintTypeInfo> complaintTypeList = complaintTypeInfoService.listComplaintTypeInfo(new ComplaintTypeInfo());
+
         //查询客诉类型集合
         List<ComplaintSmallClassInfo> complaintSmallClassInfoList = complaintSmallClassInfoService.listComplaintSmallClassInfo(new ComplaintSmallClassInfo());
+
         //查询处理类型
         List<ProcType> procTypeList = customerService.listProcType();
         //店铺(销售渠道)
         List<StoreInfo> listStoreInfo = storeInfoService.listStore(new StoreInfo());
         //查询问题集合   第 30 条bug
 //        List<QuestionDescribe> questionDescribeList = questionDescribeService.listQuestionDescribe(new QuestionDescribe());
-
         //查询跟进客服集合
         Admin admin = new Admin();
         admin.setAdminDept(3);
         admin.setAdminStatus(1);
         List<Admin> adminList = sysService.listSelectAdmin(admin);
 
-
         mv.addObject("complaintSmallClassInfoList", complaintSmallClassInfoList);
         mv.addObject("loginAdminId", loginAdminId);
         mv.addObject("typeList", typeList);
@@ -565,7 +565,6 @@ public class AdminCustomerController {
         StitchAttrUtil sa = StitchAttrUtil.getSa();
         sa.addDatePro("yyyy-MM-dd", "startTime", "endTime");
         sa.setModelAndView(customerInfo, mv, "/admin/customer/select_customer_list", pagedResult);
-
         return mv;
     }
 

+ 114 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/ComplaintQuestionInfoController.java

@@ -7,12 +7,15 @@ import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.cm.ComplaintQuestionInfoService;
 import com.iamberry.rst.faces.fm.ComplaintSmallClassInfoService;
 import com.iamberry.rst.faces.cm.ComplaintTypeInfoService;
+import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.wechat.tools.ResponseJson;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 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.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
@@ -103,6 +106,7 @@ public class ComplaintQuestionInfoController {
                                               @RequestParam(value = "pageNo", defaultValue = "1", required = false) Integer pageNo,
                                               @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum,
                                               ComplaintQuestionInfo complaintQuestionInfo) {
+        complaintQuestionInfo.setQuestionState(1);
         PagedResult<ComplaintQuestionInfo> pagedResult = complaintQuestionInfoService.listComplaintQuestionInfo(pageNo, pageSize, complaintQuestionInfo, totalNum == 0);
         if (totalNum != 0) {
             pagedResult.setTotal(totalNum);
@@ -211,4 +215,114 @@ public class ComplaintQuestionInfoController {
         }
         return msg;
     }
+
+    /**
+     * 分页查询客诉列表信息
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("customer:question:list")
+    @RequestMapping("/question_page")
+    public ModelAndView selectCustomerList(HttpServletRequest request, ComplaintQuestionInfo complaintQuestionInfo,
+                                           @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) throws Exception {
+        ModelAndView mv = new ModelAndView("cm/question/question_list");
+
+        PagedResult<ComplaintQuestionInfo> pagedResult = complaintQuestionInfoService.listComplaintQuestionInfo(pageNO, pageSize, complaintQuestionInfo, totalNum == 0);
+        if (totalNum != 0) {
+            pagedResult.setTotal(totalNum);
+        }
+        StitchAttrUtil sa = StitchAttrUtil.getSa();
+        sa.addDatePro("yyyy-MM-dd", "questionCreateTime", "questionUpdateTime");
+        sa.setModelAndView(complaintQuestionInfo, mv, "/admin/complaintQuestion/question_page", pagedResult);
+        return mv;
+    }
+
+    /**
+     * 详情
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("customer:question:list")
+    @RequestMapping("/to_question_detail")
+    public ModelAndView toQuestionDetail(HttpServletRequest request,Integer questionId) throws Exception {
+        ComplaintQuestionInfo complaintQuestionInfo = complaintQuestionInfoService.getQuestionById(questionId);
+        ModelAndView mv = new ModelAndView("cm/question/detail_question");
+        mv.addObject("complaintQuestionInfo",complaintQuestionInfo);
+        return mv;
+    }
+
+    /**
+     * 添加
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("customer:question:add")
+    @RequestMapping("/to_add_question")
+    public ModelAndView toAddQuestion(HttpServletRequest request) throws Exception {
+        ModelAndView mv = new ModelAndView("cm/question/add_question");
+        return mv;
+    }
+
+    /**
+     * 添加
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/add_question")
+    @RequiresPermissions("customer:question:add")
+    public ResponseJson addQuestion(HttpServletRequest request,ComplaintQuestionInfo complaintQuestionInfo){
+        ResponseJson msg = new ResponseJson();
+        Integer flag = complaintQuestionInfoService.insert(complaintQuestionInfo);
+        if (flag < 1) {
+            msg.setResultCode(500);
+            msg.setReturnCode(500);
+            msg.setResultMsg("添加失败");
+        } else {
+            msg.setResultCode(200);
+            msg.setReturnCode(200);
+            msg.setResultMsg("添加成功");
+        }
+        return msg;
+    }
+
+
+    /**
+     * 修改
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions("customer:question:update")
+    @RequestMapping("/to_update_question")
+    public ModelAndView toUpdateQuestion(HttpServletRequest request,Integer questionId) throws Exception {
+        ComplaintQuestionInfo complaintQuestionInfo = complaintQuestionInfoService.getQuestionById(questionId);
+        ModelAndView mv = new ModelAndView("cm/question/update_question");
+        mv.addObject("complaintQuestionInfo",complaintQuestionInfo);
+        return mv;
+    }
+
+
+    /**
+     * 修改
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/update_question")
+    @RequiresPermissions("customer:question:update")
+    public ResponseJson updateQuestion(HttpServletRequest request,ComplaintQuestionInfo complaintQuestionInfo){
+        ResponseJson msg = new ResponseJson();
+        Integer flag = complaintQuestionInfoService.updateQuestionById(complaintQuestionInfo);
+        if (flag < 1) {
+            msg.setResultCode(500);
+            msg.setReturnCode(500);
+            msg.setResultMsg("修改失败");
+        } else {
+            msg.setResultCode(200);
+            msg.setReturnCode(200);
+            msg.setResultMsg("修改成功");
+        }
+        return msg;
+    }
+
 }

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

@@ -362,13 +362,13 @@
                 <label class="form-label col-1 col-sm-1">处理结果:</label>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                         <select class="select" id="procTypeId" name="procTypeId" ulcId="2" ulcValName="procTypeName" ulcValId="procTypeId"  ulcURL="/admin/proc/type" msg="" ulcList="list">
+                         <select class="select ulc_select" id="procTypeId" name="procTypeId" ulcId="2" ulcValName="procTypeName" ulcValId="procTypeId"  ulcURL="/admin/proc/type" msg="" ulcList="list">
                          </select>
                      </span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                         <select class="select" id="procMethodId" name="procMethodId"  ulcId="3"  ulcValName="procMethodName" ulcValId="procMethodId"  ulcURL="/admin/proc/method?procTypeId=" msg="" ulcList="list" >
+                         <select class="select ulc_select" id="procMethodId" name="procMethodId"  ulcId="3"  ulcValName="procMethodName" ulcValId="procMethodId"  ulcURL="/admin/proc/method?procTypeId=" msg="" ulcList="list" >
                          </select>
                      </span>
                 </div>
@@ -479,25 +479,25 @@
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <span class="select-box">
-                        <select name="provinceNumber" class="select" id="province"
+                        <select name="provinceNumber" class="select ulc_select" id="province"
                                 ulcValName="province" ulcValId="provinceId"  ulcURL="/address/list_province" ulcMsg="" ulcList="provinceList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择省份">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择省份">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                        <select name="cityNumber" class="select" id="city"
+                        <select name="cityNumber" class="select ulc_select" id="city"
                                 ulcValName="city" ulcValId="cityId"  ulcURL="/address/list_city?provinceId=" ulcMsg="" ulcList="cityList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择市">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择市">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <span class="select-box">
-                        <select name="areaNumber" class="select" id="district"
+                        <select name="areaNumber" class="select ulc_select" id="district"
                                 ulcValName="district" ulcValId="districtId"  ulcURL="/address/list_district?cityId=" ulcMsg="" ulcList="districtList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择区/县">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择区/县">
                         </select>
                     </span>
                 </div>
@@ -618,25 +618,25 @@
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <span class="select-box">
-                        <select name="customerProvinceId" class="select" id="initProvince"
+                        <select name="customerProvinceId" class="select ulc_select" id="initProvince"
                                 ulcValName="province" ulcValId="provinceId"  ulcURL="/address/list_province" ulcMsg="" ulcList="provinceList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择省份">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择省份">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                        <select name="customerCityId" class="select" id="initCity"
+                        <select name="customerCityId" class="select ulc_select" id="initCity"
                                 ulcValName="city" ulcValId="cityId"  ulcURL="/address/list_city?provinceId=" ulcMsg="" ulcList="cityList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择市">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择市">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <span class="select-box">
-                        <select name="customerDistrictId" class="select" id="initCountry"
+                        <select name="customerDistrictId" class="select ulc_select" id="initCountry"
                                 ulcValName="district" ulcValId="districtId"  ulcURL="/address/list_district?cityId=" ulcMsg="" ulcList="districtList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择区/县">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择区/县">
                         </select>
                     </span>
                 </div>

+ 1 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl

@@ -85,7 +85,7 @@
 
                      <#--<div class="formControls col-2 col-sm-2 select_proMethod" style="padding: 0px 10px 0px 0px; width: 110px;" code="returnCode" msg="resultMsg" data="returnMsg">-->
                         <#--<span class="select-box">-->
-                             <#--<select class="select" id="salesOrderStatus" name="salesOrderStatus"  ulcId=""  ulcValName="procMethodName" ulcValId="procMethodId"  ulcURL="/admin/proc/method?procTypeId=" msg="" ulcList="list"  ulcIsFristSelect="true" ulcFristSelectMsg="请选择类型" >-->
+                             <#--<select class="select" id="salesOrderStatus" name="salesOrderStatus"  ulcId=""  ulcValName="procMethodName" ulcValId="procMethodId"  ulcURL="/admin/proc/method?procTypeId=" msg="" ulcList="list"  ulcIsFristSelect="1" ulcFristSelectMsg="请选择类型" >-->
                              <#--</select>-->
                          <#--</span>-->
                      <#--</div>-->

+ 20 - 20
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_customer.ftl

@@ -344,13 +344,13 @@
                 <label class="form-label col-1 col-sm-1">处理结果:</label>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                         <select class="select" id="procTypeId" name="procTypeId" ulcId="${procMethod.procTypeId!''}" ulcValName="procTypeName" ulcValId="procTypeId"  ulcURL="/admin/proc/type" msg="" ulcList="list">
+                         <select class="select ulc_select" id="procTypeId" name="procTypeId" ulcId="${procMethod.procTypeId!''}" ulcValName="procTypeName" ulcValId="procTypeId"  ulcURL="/admin/proc/type" msg="" ulcList="list">
                          </select>
                      </span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                         <select class="select" id="procMethodId" name="procMethodId" ulcId="${procMethod.procMethodId!''}"  ulcValName="procMethodName" ulcValId="procMethodId"  ulcURL="/admin/proc/method?procTypeId=" msg="" ulcList="list" >
+                         <select class="select ulc_select" id="procMethodId" name="procMethodId" ulcId="${procMethod.procMethodId!''}"  ulcValName="procMethodName" ulcValId="procMethodId"  ulcURL="/admin/proc/method?procTypeId=" msg="" ulcList="list" >
                          </select>
                      </span>
                 </div>
@@ -461,25 +461,25 @@
                 <#--<label class="form-label col-1 col-sm-1"></label>-->
                 <#--<div class="formControls col-2 col-sm-2" style="position: relative;">-->
                     <#--<span class="select-box">-->
-                        <#--<select name="provinceNumber" class="select" id="province"-->
+                        <#--<select name="provinceNumber" class="select ulc_select" id="province"-->
                                 <#--ulcValName="province" ulcValId="provinceId"  ulcURL="/address/list_province" ulcMsg="" ulcList="provinceList"-->
-                                <#--ulcIsFristSelect="true" ulcFristSelectMsg="请选择省份">-->
+                                <#--ulcIsFristSelect="1" ulcFristSelectMsg="请选择省份">-->
                         <#--</select>-->
                     <#--</span>-->
                 <#--</div>-->
                 <#--<div class="formControls col-2 col-sm-2">-->
                     <#--<span class="select-box">-->
-                        <#--<select name="cityNumber" class="select" id="city"-->
+                        <#--<select name="cityNumber" class="select ulc_select" id="city"-->
                                 <#--ulcValName="city" ulcValId="cityId"  ulcURL="/address/list_city?provinceId=" ulcMsg="" ulcList="cityList"-->
-                                <#--ulcIsFristSelect="true" ulcFristSelectMsg="请选择市">-->
+                                <#--ulcIsFristSelect="1" ulcFristSelectMsg="请选择市">-->
                         <#--</select>-->
                     <#--</span>-->
                 <#--</div>-->
                 <#--<div class="formControls col-2 col-sm-2" style="position: relative;">-->
                     <#--<span class="select-box">-->
-                        <#--<select name="areaNumber" class="select" id="district"-->
+                        <#--<select name="areaNumber" class="select ulc_select" id="district"-->
                                 <#--ulcValName="district" ulcValId="districtId"  ulcURL="/address/list_district?cityId=" ulcMsg="" ulcList="districtList"-->
-                                <#--ulcIsFristSelect="true" ulcFristSelectMsg="请选择区/县">-->
+                                <#--ulcIsFristSelect="1" ulcFristSelectMsg="请选择区/县">-->
                         <#--</select>-->
                     <#--</span>-->
                 <#--</div>-->
@@ -491,25 +491,25 @@
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <span class="select-box">
-                        <select name="provinceNumber" class="select" id="province"
+                        <select name="provinceNumber" class="select ulc_select" id="province"
                                 ulcValName="province" ulcValId="provinceId"  ulcURL="/address/list_province" ulcMsg="" ulcList="provinceList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择省份">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择省份">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                        <select name="cityNumber" class="select" id="city"
+                        <select name="cityNumber" class="select ulc_select" id="city"
                                 ulcValName="city" ulcValId="cityId"  ulcURL="/address/list_city?provinceId=" ulcMsg="" ulcList="cityList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择市">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择市">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <span class="select-box">
-                        <select name="areaNumber" class="select" id="district"
+                        <select name="areaNumber" class="select ulc_select" id="district"
                                 ulcValName="district" ulcValId="districtId"  ulcURL="/address/list_district?cityId=" ulcMsg="" ulcList="districtList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择区/县">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择区/县">
                         </select>
                     </span>
                 </div>
@@ -683,25 +683,25 @@
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <span class="select-box">
-                        <select name="customerProvinceId" class="select" id="initProvince"
+                        <select name="customerProvinceId" class="select ulc_select" id="initProvince"
                                 ulcValName="province" ulcValId="provinceId" ulcId="${customerInfo.customerProvinceId!''}"  ulcURL="/address/list_province" ulcMsg="" ulcList="provinceList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择省份">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择省份">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                        <select name="customerCityId" class="select" id="initCity"
+                        <select name="customerCityId" class="select ulc_select" id="initCity"
                                 ulcValName="city" ulcValId="cityId" ulcId="${customerInfo.customerCityId!''}"  ulcURL="/address/list_city?provinceId=" ulcMsg="" ulcList="cityList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择市">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择市">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <span class="select-box">
-                        <select name="customerDistrictId" class="select" id="initCountry"
+                        <select name="customerDistrictId" class="select ulc_select" id="initCountry"
                                 ulcValName="district" ulcValId="districtId" ulcId="${customerInfo.customerDistrictId!''}" ulcURL="/address/list_district?cityId=" ulcMsg="" ulcList="districtList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择区/县">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择区/县">
                         </select>
                     </span>
                 </div>

+ 173 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/question/add_question.ftl

@@ -0,0 +1,173 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <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">
+
+    <style>
+        .tit{position: relative;text-align: left;font-size: 16px;padding-left: 10px;}
+        .tit:after{content: '';position: absolute;left: 0;top: 20%;height: 60%;width: 3px;background-color: #32a3d8;}
+        .tit-2{position: relative;text-align: left;font-size: 16px;padding-left: 10px;color: #50a2ea;}
+        .tit-2:after{content: '';position: absolute;left: 0;top: 50%;height: 6px;width: 6px;border-radius: 6px;margin-top: -3px; background-color: #32a3d8;}
+        #province select{margin-right:10px; width:100px;height: 31px;-webkit-appearance:none !important;appearance:none;background: url(${path}/common/images/cm/select-1.png) right center no-repeat;background-size: auto 100%;padding-left:3px;padding-right: 25px;}
+        .ac_results li a {white-space: nowrap;text-decoration:none;display:block;color:#05a;padding:1px 3px}
+        .ac_results li {border:1px solid #fff}
+        .ac_results li a span {float:right}
+        .select-box{background: url(${path}/common/images/cm/select-1.png) right center no-repeat;background-size: auto 100%;}
+        .select-box select{-webkit-appearance:none !important;background-color: transparent; appearance:none;padding-right: 15px;}
+        .dalog-ask{position: absolute;left:60%;top:0;-webkit-transform: translateY(-30%);transform: translateY(-30%);display: none;background-color: #fff;z-index: 10;}
+        .tag{ width:300px; min-height:300px; border:1px solid #32a3d8; position:relative;background-color: #fff;line-height: 1.5;padding: 10px 12px;}
+        .tag em{display:block; border-width:15px; position:absolute; top:30%; left:-30px;border-style:solid dashed dashed; border-color:transparent  #32a3d8 transparent transparent;font-size:0; line-height:0;}
+        .time-line-list{list-style: none;width: 100%;margin-left: -20px;}
+        .time-line-list>li{position: relative;float: left; text-align: center;width: 100px;overflow: hidden;white-space: nowrap;word-break: break-all;padding: 2px 0;}
+        .time-line-list .number{display: inline-block; padding: 2px; background: #32a3d8;border: 2px solid #fff;box-shadow:0 0 0 1px #32a3d8;width: 20px;height: 20px;color: #fff;line-height: 20px;border-radius: 50%;}
+        .time-line-list>li:before{content:'';position: absolute;height: 1px;width: 30%;right:0;top: 15px; background-color: #32a3d8;}
+        .time-line-list>li:after{content: '';position: absolute;height: 1px;width: 30%;left: 0;top: 15px;background:#32a3d8;}
+        .time-line-list>li:first-child:after,.time-line-list>li:last-child:before{display: none;}
+        .time-line-list .arrow{border-width:7px; position:absolute; left:25%; top:9px;border-style:solid dashed dashed; border-color:transparent  transparent  transparent #32a3d8;font-size:0; line-height:0;}
+        .time-line-list>li:first-child .arrow{display: none;}
+        .table-bg th{background-color: #e2f6ff;}
+        .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
+        .msg-phone{height: 35px;line-height: 35px;}
+        .col-sm-1{width: 150px;}
+
+        .all_down{text-decoration: underline;color: #00c;}
+    </style>
+    <title>添加客诉问题 - 客诉问题管理 - RST</title>
+</head>
+<body>
+<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>
+    <a class="btn radius r"
+       href="javascript:history.back(-1);" title="后退"><i class="Hui-iconfont">&#xe6d4;</i></a>
+</nav>
+<article class="page-container" style="padding: 10px;">
+    <div class="pd-20 cl">
+        <form action="${path}/admin/complaintQuestion/add_question" method="post" class="form form-horizontal" id="form-question"  onkeydown="if(event.keyCode==13)return false;">
+
+            <input type="hidden" name="questionState" value="1">
+
+            <div class="row cl ulc_question" id="" style="" code="returnCode" msg="resultMsg" data="returnMsg" urlPrefix="${path}">
+                <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">
+                         <select name="" class="select ulc_select" id="complaint"
+                                 ulcValName="complaintClassName" ulcValId="complaintId"  ulcURL="/admin/complaintQuestion/list_complaintType" ulcMsg="" ulcList="complaintTypeInfoList"
+                                >
+                         </select>
+				    </span>
+                </div>
+                <div class="formControls col-2 col-sm-2">
+                    <span class="select-box">
+                        <select name="smallClassId" class="select ulc_select" id="small"
+                                ulcValName="smallClassName" ulcValId="smallClassId"  ulcURL="/admin/complaintQuestion/list_complaintSmallClass?complaintId=" ulcMsg="" ulcList="complaintSmallClassInfoList"
+                                >
+                        </select>
+                    </span>
+                </div>
+                <div class="formControls col-2 col-sm-2" style="display: none">
+                    <span class="select-box" style="background-color: #EEEEEE;">
+                        <select name="" class="select" id="complaintType" disabled="disabled">
+                             <option value="0">产品类型</option>
+                             <option value="1">净水机</option>
+                             <option value="2">电动牙刷</option>
+                             <option value="3">净水花洒</option>
+                             <option value="4">软水机</option>
+                             <option value="5">果蔬机</option>
+                             <option value="6">净水龙头</option>
+                        </select>
+                    </span>
+                </div>
+            </div>
+
+            <div class="row cl">
+                <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>QC检测:</label>
+                <div class="formControls col-10 col-sm-10 skin-minimal ">
+                    <div class="radio-box">
+                        <input type="radio" id="tel-1" name="questionIsQcDetect" value="1" >
+                        <label for="tel-1">需要</label>
+                    </div>
+                    <div class="radio-box">
+                        <input type="radio" id="tel-2" name="questionIsQcDetect" value="0" checked>
+                        <label for="tel-2">不需要</label>
+                    </div>
+                </div>
+            </div>
+
+            <div class="row cl" id="" style="">
+                <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>问题名称:</label>
+                <div class="formControls col-4 col-sm-4">
+                    <input type="text" class="input-text" value="" placeholder="填写问题名称" id="questionName" name="questionName" datatype="*1-50" errormsg="问题名称格式不正确!" >
+                </div>
+            </div>
+
+            <div class="row cl" id="" style="">
+                <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>问题回复:</label>
+                <div class="formControls col-9 col-sm-9">
+                    <script id="questionProfileText" type="text/plain" style="width:100%;height:150px;"></script></script>
+                    <input type="hidden" id="questionProfile" name="questionProfile">
+                </div>
+            </div>
+
+            <div class="row cl">
+                <div class="col-2 col-sm-2 col-offset-3">
+                    <button class="btn btn-block btn-primary size-XL" type="submit">确认录入</button>
+                </div>
+            </div>
+        </form>
+    </div>
+</article>
+
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.all.js"></script>
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.parse.js"></script>
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/lang/zh-cn/zh-cn.js"></script>
+
+<#-- 业务脚本JS -->
+<script type="text/javascript" charset="utf-8" src="${path}/common/js/customer/question.js"></script>
+<script type="text/javascript">
+    var url_path = "${path}";
+</script>
+
+
+<script type="text/javascript">
+
+    $('.skin-minimal input').iCheck({
+        checkboxClass: 'icheckbox-blue',
+        radioClass: 'iradio-blue',
+        increaseArea: '20%'
+    });
+
+    var ulc = $(".ulc_question").initUlcByHtml({
+        urlPrefix: root_path,
+        ulcLevel:null
+    });
+
+    ulc.setUlcAllCallback(showProductType);
+    
+    function showProductType(data) {
+        var complaint = data[0].complaintType;
+        $("#complaintType").val(complaint);
+    }
+
+    /*问题描述*/
+    var questionProfileText = UE.getEditor('questionProfileText', {
+        autoHeightEnabled: true,
+        autoFloatEnabled: true,
+        elementPathEnabled : false,/*去掉元素路径*/
+        zIndex : 5
+    });
+</script>
+
+
+
+</body>
+</html>

+ 76 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/question/detail_question.ftl

@@ -0,0 +1,76 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <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">
+
+    <style>
+        .tit{position: relative;text-align: left;font-size: 16px;padding-left: 10px;}
+        .tit:after{content: '';position: absolute;left: 0;top: 20%;height: 60%;width: 3px;background-color: #32a3d8;}
+        .tit-2{position: relative;text-align: left;font-size: 16px;padding-left: 10px;color: #50a2ea;}
+        .tit-2:after{content: '';position: absolute;left: 0;top: 50%;height: 6px;width: 6px;border-radius: 6px;margin-top: -3px; background-color: #32a3d8;}
+        #province select{margin-right:10px; width:100px;height: 31px;-webkit-appearance:none !important;appearance:none;background: url(${path}/common/images/cm/select-1.png) right center no-repeat;background-size: auto 100%;padding-left:3px;padding-right: 25px;}
+        .ac_results li a {white-space: nowrap;text-decoration:none;display:block;color:#05a;padding:1px 3px}
+        .ac_results li {border:1px solid #fff}
+        .ac_results li a span {float:right}
+        .select-box{background: url(${path}/common/images/cm/select-1.png) right center no-repeat;background-size: auto 100%;}
+        .select-box select{-webkit-appearance:none !important;background-color: transparent; appearance:none;padding-right: 15px;}
+        .dalog-ask{position: absolute;left:60%;top:0;-webkit-transform: translateY(-30%);transform: translateY(-30%);display: none;background-color: #fff;z-index: 10;}
+        .tag{ width:300px; min-height:300px; border:1px solid #32a3d8; position:relative;background-color: #fff;line-height: 1.5;padding: 10px 12px;}
+        .tag em{display:block; border-width:15px; position:absolute; top:30%; left:-30px;border-style:solid dashed dashed; border-color:transparent  #32a3d8 transparent transparent;font-size:0; line-height:0;}
+        .time-line-list{list-style: none;width: 100%;margin-left: -20px;}
+        .time-line-list>li{position: relative;float: left; text-align: center;width: 100px;overflow: hidden;white-space: nowrap;word-break: break-all;padding: 2px 0;}
+        .time-line-list .number{display: inline-block; padding: 2px; background: #32a3d8;border: 2px solid #fff;box-shadow:0 0 0 1px #32a3d8;width: 20px;height: 20px;color: #fff;line-height: 20px;border-radius: 50%;}
+        .time-line-list>li:before{content:'';position: absolute;height: 1px;width: 30%;right:0;top: 15px; background-color: #32a3d8;}
+        .time-line-list>li:after{content: '';position: absolute;height: 1px;width: 30%;left: 0;top: 15px;background:#32a3d8;}
+        .time-line-list>li:first-child:after,.time-line-list>li:last-child:before{display: none;}
+        .time-line-list .arrow{border-width:7px; position:absolute; left:25%; top:9px;border-style:solid dashed dashed; border-color:transparent  transparent  transparent #32a3d8;font-size:0; line-height:0;}
+        .time-line-list>li:first-child .arrow{display: none;}
+        .table-bg th{background-color: #e2f6ff;}
+        .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
+        .msg-phone{height: 35px;line-height: 35px;}
+        .col-sm-1{width: 150px;}
+
+        .all_down{text-decoration: underline;color: #00c;}
+    </style>
+    <title>客诉问题详情 - 客诉问题管理 - RST</title>
+</head>
+<body>
+<article class="page-container" style="padding: 10px;">
+    <div class="pd-20 cl">
+
+            <div class="row cl" id="" style="margin-bottom: 20px;">
+                <label class="form-label col-1 col-sm-1">问题名称:</label>
+                <div class="formControls col-11 col-sm-11" style="margin-left: 20px;">
+                    ${complaintQuestionInfo.questionName!''}
+                </div>
+            </div>
+
+            <div class="row cl" id="" style="">
+                <label class="form-label col-1 col-sm-1">问题回复:</label>
+                <div class="formControls col-11 col-sm-11"  style="margin-left: 20px;">
+                    ${complaintQuestionInfo.questionProfile!''}
+                </div>
+            </div>
+
+    </div>
+</article>
+
+<script type="text/javascript">
+    var url_path = "${path}";
+</script>
+
+
+<script type="text/javascript">
+
+</script>
+
+
+
+</body>
+</html>

+ 228 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/question/question_list.ftl

@@ -0,0 +1,228 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <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" />
+    <link rel="Bookmark" href="/favicon.ico" >
+    <link rel="Shortcut Icon" href="/favicon.ico" />
+<#include "/base/list_base.ftl">
+    <title>客诉问题列表 - 客诉问题管理 - RST</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{text-indent: 1em;}
+        /*.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; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-11.png) right center no-repeat;background-size:auto 100%;}
+        .my-btn-search{border: 1px solid #50a2ea;padding: 1px 25px;height: 32px;background-color: #fff;color: #50a2ea;}
+        .table-bg thead th{background-color: #f7fafd;}
+        /*.table-bg tr:nth-child(odd){background: #fff;}
+        .table-bg tr:nth-child(even){background: #f7fafd;}*/
+        .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
+        /*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;}*/
+        .txt2{width:60px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis; }
+        .postage-table{float: left;width: 150px;height: 30px;line-height: 30px;}
+        .select-upd{height: 16px;width: 90px;padding: 5px 10px 10px 15px;display: inline-block;text-align: left;cursor: pointer;-webkit-appearance: none;border: 1px solid rgba(0,0,0,.1);    background: url(/common/images/pts/select-dw.png) right center no-repeat;background-size: auto 100%;margin: 0;position: absolute;}
+        .select-upd.active{background: url(/common/images/pts/select-up.png) right center no-repeat;background-size: auto 100%;}
+        .search-other{display: none;}
+    </style>
+</head>
+<body>
+<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>
+<div class="page-container">
+    <div class="text-c ulc_question" code="returnCode" msg="resultMsg" data="returnMsg" urlPrefix="${path}">
+        <form action="${path}/admin/complaintQuestion/question_page" method="post">
+            <button type="button" style="cursor:pointer; float: left;height: 35px;margin-right: 30px;margin-bottom: 10px;" class="my-btn-search" onclick="toAddQuestion();">新建客诉问题</button>
+
+            <select name="complaintId" class="my-select ulc_select" id="complaint" style="height: 36px;width: 132px;margin: 0px;padding: 12px 10px 6px 15px;margin-bottom: 10px;"
+                    ulcId="${complaintQuestionInfo.complaintId!''}"
+                    ulcValName="complaintClassName" ulcValId="complaintId"  ulcURL="/admin/complaintQuestion/list_complaintType" ulcMsg="" ulcList="complaintTypeInfoList"
+                    ulcIsFristSelect="1" ulcFristSelectMsg="问题类型">
+            </select>
+            <select name="smallClassId" class="my-select ulc_select" id="small" style="height: 36px;width: 132px;margin: 0px;padding: 12px 10px 6px 15px;margin-bottom: 10px;"
+                    ulcId="${complaintQuestionInfo.smallClassId!''}"
+                    ulcValName="smallClassName" ulcValId="smallClassId"  ulcURL="/admin/complaintQuestion/list_complaintSmallClass?complaintId=" ulcMsg="" ulcList="complaintSmallClassInfoList"
+                    ulcIsFristSelect="1" ulcFristSelectMsg="问题小类">
+            </select>
+
+            <select class="my-select" name="detectComplaintType" id="detectComplaintType" style="height: 36px;width: 132px;margin: 0px;padding: 12px 10px 6px 15px;margin-bottom: 10px;">
+                <option value="">产品分类</option>
+                <option value="1" <#if complaintQuestionInfo.detectComplaintType??><#if complaintQuestionInfo.detectComplaintType == 1 >selected="selected"</#if></#if>>净水机</option>
+                <option value="2" <#if complaintQuestionInfo.detectComplaintType??><#if complaintQuestionInfo.detectComplaintType == 2 >selected="selected"</#if></#if>>电动牙刷</option>
+                <option value="3" <#if complaintQuestionInfo.detectComplaintType??><#if complaintQuestionInfo.detectComplaintType == 3 >selected="selected"</#if></#if>>净水花洒</option>
+                <option value="4" <#if complaintQuestionInfo.detectComplaintType??><#if complaintQuestionInfo.detectComplaintType == 4 >selected="selected"</#if></#if>>软水机</option>
+                <option value="5" <#if complaintQuestionInfo.detectComplaintType??><#if complaintQuestionInfo.detectComplaintType == 5 >selected="selected"</#if></#if>>果蔬机</option>
+                <option value="6" <#if complaintQuestionInfo.detectComplaintType??><#if complaintQuestionInfo.detectComplaintType == 6 >selected="selected"</#if></#if>>净水龙头</option>
+            </select>
+
+            <select class="my-select" name="questionIsQcDetect" id="questionIsQcDetect" style="height: 36px;width: 132px;margin: 0px;padding: 12px 10px 6px 15px;margin-bottom: 10px;">
+                <option value="">QC检测</option>
+                <option value="1" <#if complaintQuestionInfo.questionIsQcDetect??><#if complaintQuestionInfo.questionIsQcDetect == 1 >selected="selected"</#if></#if>>需要</option>
+                <option value="0" <#if complaintQuestionInfo.questionIsQcDetect??><#if complaintQuestionInfo.questionIsQcDetect == 0 >selected="selected"</#if></#if>>不需要</option>
+            </select>
+
+            <select class="my-select" name="questionState" id="questionState" style="height: 36px;width: 132px;margin: 0px;padding: 12px 10px 6px 15px;margin-bottom: 10px;">
+                <option value="">状态</option>
+                <option value="1" <#if complaintQuestionInfo.questionState??><#if complaintQuestionInfo.questionState == 1 >selected="selected"</#if></#if>>使用</option>
+                <option value="2" <#if complaintQuestionInfo.questionState??><#if complaintQuestionInfo.questionState == 2 >selected="selected"</#if></#if>>禁用</option>
+            </select>
+
+
+            <input type="text" class="my-input trim_input"  style="width:120px;margin-right: 0px; margin-bottom: 10px;" value="${complaintQuestionInfo.questionName!}" placeholder="问题名称" id="questionName" name="questionName">
+
+            <button type="submit" class="btn" style="background: #50a2ea;border: 1px solid #50a2ea;color: #fff;height: 35px;margin-top: -8px;margin-bottom: 3px;"><i class="Hui-iconfont">&#xe665;</i> 查询</button>
+
+        </form>
+    </div>
+
+
+    <div class="mt-20">
+        <table class="table table-border table-bg table-bordered">
+        <thead>
+        <tr class="text-c">
+            <th width="50">产品分类</th>
+            <th width="50">问题分类</th>
+            <th width="50">问题小类</th>
+            <th width="150">问题名称</th>
+            <th width="40">QC检测</th>
+            <th width="40">状态</th>
+            <th width="60">创建时间</th>
+            <th width="60">操作</th>
+        </tr>
+        </thead>
+        <tbody>
+            <#if page.dataList?? &&  (page.dataList?size > 0) >
+                    <#list page.dataList as question>
+                        <tr class="text-c">
+                            <td>
+                                <#if question.detectComplaintType == 1>
+                                    净水机
+                                <#elseif question.detectComplaintType == 2>
+                                    电动牙刷
+                                <#elseif question.detectComplaintType == 3>
+                                    净水花洒
+                                <#elseif question.detectComplaintType == 4>
+                                    软水机
+                                <#elseif question.detectComplaintType == 5>
+                                    果蔬机
+                                <#elseif question.detectComplaintType == 6>
+                                    净水龙头
+                                </#if>
+                            </td>
+                            <td>${question.complaintClassName!''}</td>
+                            <td>${question.smallClassName!''}</td>
+                            <td>${question.questionName!''}</td>
+                            <td>
+                                <#if question.questionIsQcDetect == 1>
+                                    需要
+                                <#elseif question.questionIsQcDetect == 0>
+                                    不需要
+                                </#if>
+                            </td>
+                            <td>
+                                <#if question.questionState == 1>
+                                    使用
+                                <#elseif question.questionState == 2>
+                                    禁用
+                                </#if>
+                            </td>
+                            <td>
+                                ${(question.questionCreateTime?string("yyyy-MM-dd HH:mm:ss"))!''}
+                                <#--${(question.questionCreateTime?string("HH:mm:ss"))!''}-->
+                            </td>
+                            <td>
+                                <#if question.questionState == 1>
+                                    <a style="text-decoration:none" href="javascript:void(0);" title="禁用" onclick="forbid(${question.questionId!''},2)">
+                                        <font color=#06c>禁用</font>
+                                    </a>
+                                <#elseif question.questionState == 2>
+                                    <a style="text-decoration:none" href="javascript:void(0);" title="启用" onclick="forbid(${question.questionId!''},1)">
+                                        <font color=#06c>启用</font>
+                                    </a>
+                                </#if>
+                                &nbsp;
+                                <a style="text-decoration:none" href="javascript:void(0);" title="修改" onclick="toUpdateQuestion(${question.questionId!''})">
+                                    <font color=#06c>修改</font>
+                                </a>
+                                &nbsp;
+                                <a style="text-decoration:none" href="javascript:void(0);" title="查看" onclick="detail(${question.questionId!''})">
+                                    <font color=#06c>查看</font>
+                                </a>
+                            </td>
+                        </tr>
+                    </#list>
+            <#else>
+                <tr><td colspan="8" class="td-manage text-c" >暂时没有客诉问题,请添加!</td></tr>
+            </#if>
+        </tbody>
+    </table>
+    </div>
+</div>
+
+<tfoot>
+<#include "/base/page_util.ftl">
+</tfoot>
+
+<script type="text/javascript">
+    var ulc = $(".ulc_question").initUlcByHtml({
+        urlPrefix: root_path,
+        ulcLevel:null
+    });
+
+    /**
+     * 跳转到添加Question页面
+     */
+    function toAddQuestion(){
+        window.location.href= "${path}/admin/complaintQuestion/to_add_question";
+    }
+    /**
+     * 跳转到添加Question页面
+     */
+    function toUpdateQuestion(questionId){
+        window.location.href= "${path}/admin/complaintQuestion/to_update_question?questionId="+questionId;
+    }
+
+    /**
+     * 查看详情
+     */
+    function detail(questionId){
+        layer_show_norm("问题详情","${path}/admin/complaintQuestion/to_question_detail?questionId="+questionId,4);
+    }
+
+    /**
+     * 禁用
+     * @param questionId
+     * @param state
+     */
+    function forbid(questionId,state) {
+        $.ajax({
+            type: "POST",
+            data: {
+                "questionId" :questionId,
+                "questionState" :state
+            },
+            url: "${path}/admin/complaintQuestion/update_question",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    location.replace(location.href);
+                }else{
+                    layer.msg("更改状态失败!", {icon: 5, time: 3000});
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+    }
+
+</script>
+
+</body>
+</html>

+ 177 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/question/update_question.ftl

@@ -0,0 +1,177 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <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">
+
+    <style>
+        .tit{position: relative;text-align: left;font-size: 16px;padding-left: 10px;}
+        .tit:after{content: '';position: absolute;left: 0;top: 20%;height: 60%;width: 3px;background-color: #32a3d8;}
+        .tit-2{position: relative;text-align: left;font-size: 16px;padding-left: 10px;color: #50a2ea;}
+        .tit-2:after{content: '';position: absolute;left: 0;top: 50%;height: 6px;width: 6px;border-radius: 6px;margin-top: -3px; background-color: #32a3d8;}
+        #province select{margin-right:10px; width:100px;height: 31px;-webkit-appearance:none !important;appearance:none;background: url(${path}/common/images/cm/select-1.png) right center no-repeat;background-size: auto 100%;padding-left:3px;padding-right: 25px;}
+        .ac_results li a {white-space: nowrap;text-decoration:none;display:block;color:#05a;padding:1px 3px}
+        .ac_results li {border:1px solid #fff}
+        .ac_results li a span {float:right}
+        .select-box{background: url(${path}/common/images/cm/select-1.png) right center no-repeat;background-size: auto 100%;}
+        .select-box select{-webkit-appearance:none !important;background-color: transparent; appearance:none;padding-right: 15px;}
+        .dalog-ask{position: absolute;left:60%;top:0;-webkit-transform: translateY(-30%);transform: translateY(-30%);display: none;background-color: #fff;z-index: 10;}
+        .tag{ width:300px; min-height:300px; border:1px solid #32a3d8; position:relative;background-color: #fff;line-height: 1.5;padding: 10px 12px;}
+        .tag em{display:block; border-width:15px; position:absolute; top:30%; left:-30px;border-style:solid dashed dashed; border-color:transparent  #32a3d8 transparent transparent;font-size:0; line-height:0;}
+        .time-line-list{list-style: none;width: 100%;margin-left: -20px;}
+        .time-line-list>li{position: relative;float: left; text-align: center;width: 100px;overflow: hidden;white-space: nowrap;word-break: break-all;padding: 2px 0;}
+        .time-line-list .number{display: inline-block; padding: 2px; background: #32a3d8;border: 2px solid #fff;box-shadow:0 0 0 1px #32a3d8;width: 20px;height: 20px;color: #fff;line-height: 20px;border-radius: 50%;}
+        .time-line-list>li:before{content:'';position: absolute;height: 1px;width: 30%;right:0;top: 15px; background-color: #32a3d8;}
+        .time-line-list>li:after{content: '';position: absolute;height: 1px;width: 30%;left: 0;top: 15px;background:#32a3d8;}
+        .time-line-list>li:first-child:after,.time-line-list>li:last-child:before{display: none;}
+        .time-line-list .arrow{border-width:7px; position:absolute; left:25%; top:9px;border-style:solid dashed dashed; border-color:transparent  transparent  transparent #32a3d8;font-size:0; line-height:0;}
+        .time-line-list>li:first-child .arrow{display: none;}
+        .table-bg th{background-color: #e2f6ff;}
+        .update-parts>span{margin-right: 10px;padding: 3px 4px;background-color: #effaff;border: 1px solid #32a3d8;}
+        .msg-phone{height: 35px;line-height: 35px;}
+        .col-sm-1{width: 150px;}
+
+        .all_down{text-decoration: underline;color: #00c;}
+    </style>
+    <title>修改客诉问题 - 客诉问题管理 - RST</title>
+</head>
+<body>
+<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>
+    <a class="btn radius r"
+       href="javascript:history.back(-1);" title="后退"><i class="Hui-iconfont">&#xe6d4;</i></a>
+</nav>
+<article class="page-container" style="padding: 10px;">
+    <div class="pd-20 cl">
+        <form action="${path}/admin/complaintQuestion/update_question" method="post" class="form form-horizontal" id="form-question"  onkeydown="if(event.keyCode==13)return false;">
+
+            <input type="hidden" name="questionId" value="${complaintQuestionInfo.questionId!''}">
+            <input type="hidden" name="questionState" value="${complaintQuestionInfo.questionState!''}">
+
+            <div class="row cl ulc_question" id="" style="" code="returnCode" msg="resultMsg" data="returnMsg" urlPrefix="${path}">
+                <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">
+                         <select name="" class="select ulc_select" id="complaint" ulcId="${complaintQuestionInfo.complaintId!''}"
+                                 ulcValName="complaintClassName" ulcValId="complaintId"  ulcURL="/admin/complaintQuestion/list_complaintType" ulcMsg="" ulcList="complaintTypeInfoList"
+                                >
+                         </select>
+				    </span>
+                </div>
+                <div class="formControls col-2 col-sm-2">
+                    <span class="select-box">
+                        <select name="smallClassId" class="select ulc_select" id="small" ulcId="${complaintQuestionInfo.smallClassId!''}"
+                                ulcValName="smallClassName" ulcValId="smallClassId"  ulcURL="/admin/complaintQuestion/list_complaintSmallClass?complaintId=" ulcMsg="" ulcList="complaintSmallClassInfoList"
+                                >
+                        </select>
+                    </span>
+                </div>
+                <div class="formControls col-2 col-sm-2" style="display: none">
+                    <span class="select-box" style="background-color: #EEEEEE;">
+                        <select name="" class="select" id="complaintType" disabled="disabled">
+                             <option value="0">产品类型</option>
+                             <option value="1">净水机</option>
+                             <option value="2">电动牙刷</option>
+                             <option value="3">净水花洒</option>
+                             <option value="4">软水机</option>
+                             <option value="5">果蔬机</option>
+                             <option value="6">净水龙头</option>
+                        </select>
+                    </span>
+                </div>
+            </div>
+
+            <div class="row cl">
+                <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>QC检测:</label>
+                <div class="formControls col-10 col-sm-10 skin-minimal ">
+                    <div class="radio-box">
+                        <input type="radio" id="tel-1" name="questionIsQcDetect" value="1" <#if complaintQuestionInfo.questionIsQcDetect==1>checked</#if> >
+                        <label for="tel-1">需要</label>
+                    </div>
+                    <div class="radio-box">
+                        <input type="radio" id="tel-2" name="questionIsQcDetect" value="0" <#if complaintQuestionInfo.questionIsQcDetect==0>checked</#if> >
+                        <label for="tel-2">不需要</label>
+                    </div>
+                </div>
+            </div>
+
+            <div class="row cl" id="" style="">
+                <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>问题名称:</label>
+                <div class="formControls col-4 col-sm-4">
+                    <input type="text" class="input-text" value="${complaintQuestionInfo.questionName!''}" placeholder="填写问题名称" id="questionName" name="questionName" datatype="*1-50" errormsg="问题名称格式不正确!" >
+                </div>
+            </div>
+
+            <div class="row cl" id="" style="">
+                <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>问题回复:</label>
+                <div class="formControls col-9 col-sm-9">
+                    <script id="questionProfileText" type="text/plain" style="width:100%;height:150px;"></script></script>
+                    <input type="hidden" id="questionProfile" name="questionProfile">
+                </div>
+            </div>
+
+            <div class="row cl">
+                <div class="col-2 col-sm-2 col-offset-3">
+                    <button class="btn btn-block btn-primary size-XL" type="submit">确认修改</button>
+                </div>
+            </div>
+        </form>
+    </div>
+</article>
+
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.all.js"></script>
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.parse.js"></script>
+<script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/lang/zh-cn/zh-cn.js"></script>
+
+<#-- 业务脚本JS -->
+<script type="text/javascript" charset="utf-8" src="${path}/common/js/customer/question.js"></script>
+<script type="text/javascript">
+    var url_path = "${path}";
+</script>
+
+
+<script type="text/javascript">
+
+    $('.skin-minimal input').iCheck({
+        checkboxClass: 'icheckbox-blue',
+        radioClass: 'iradio-blue',
+        increaseArea: '20%'
+    });
+
+    var ulc = $(".ulc_question").initUlcByHtml({
+        urlPrefix: root_path,
+        ulcLevel:null
+    });
+
+    ulc.setUlcAllCallback(showProductType);
+    
+    function showProductType(data) {
+        var complaint = data[0].complaintType;
+        $("#complaintType").val(complaint);
+    }
+
+    /*问题描述*/
+    var questionProfileText = UE.getEditor('questionProfileText', {
+        autoHeightEnabled: true,
+        autoFloatEnabled: true,
+        elementPathEnabled : false,/*去掉元素路径*/
+        zIndex : 5
+    });
+    questionProfileText.ready(function(){
+        questionProfileText.setContent('${complaintQuestionInfo.questionProfile!""}');
+    });
+</script>
+
+
+
+</body>
+</html>

+ 6 - 6
watero-rst-web/src/main/webapp/WEB-INF/views/cm/signclosed/add_signclosed.ftl

@@ -189,25 +189,25 @@
                 <label class="form-label col-3 col-sm-3"></label>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <span class="select-box">
-                        <select name="provinceNumber" class="select" id="provinces"
+                        <select name="provinceNumber" class="select ulc_select" id="provinces"
                                 ulcValName="province" ulcValId="provinceId"  ulcURL="/address/list_province" ulcMsg="" ulcList="provinceList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择省份">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择省份">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <span class="select-box">
-                        <select name="cityNumber" class="select" id="citys"
+                        <select name="cityNumber" class="select ulc_select" id="citys"
                                 ulcValName="city" ulcValId="cityId"  ulcURL="/address/list_city?provinceId=" ulcMsg="" ulcList="cityList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择市">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择市">
                         </select>
                     </span>
                 </div>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <span class="select-box">
-                        <select name="areaNumber" class="select" id="area"
+                        <select name="areaNumber" class="select ulc_select" id="area"
                                 ulcValName="district" ulcValId="districtId"  ulcURL="/address/list_district?cityId=" ulcMsg="" ulcList="districtList"
-                                ulcIsFristSelect="true" ulcFristSelectMsg="请选择区/县">
+                                ulcIsFristSelect="1" ulcFristSelectMsg="请选择区/县">
                         </select>
                     </span>
                 </div>

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

@@ -429,7 +429,7 @@
             })
         }
         if(isEmpty(salesOrderIds)){
-            layer_show("通知配货","${path}/admin/salesOrder/to_choose_warehouse?type=salesId&ids="+salesOrderIds,700,400);
+            layer_show("通知配货","${path}/admin/salesOrder/to_choose_warehouse?type=salesId&ids="+salesOrderIds,600,340);
         }else{
             layer.msg("未选择订单!", {icon: 5, time: 3000});
         }

+ 120 - 98
watero-rst-web/src/main/webapp/common/js/common/UnlimitedLevelContact.js

@@ -7,17 +7,17 @@
     //定义UnlimitedLevelContact的构造函数
     var UnlimitedLevelContact = function(ele,opt) {
         this.$element = ele,
-            this.ulcInfo = {
-                urlPrefix : "",
-                ulcLevel : [],
-                /*配置删除的字符,用于设置name的时候,需要删除某些字符更好确认选项*/
-                judgeNameShield : [],
-                /*选中的数据,按照集合的形式存放 -- 用于回调出去*/
-                dataList : [],
-                data : [],
-                allCallback:function (array) {}
-            },
-            this.options = $.extend({}, this.ulcInfo, opt)  //opt并入ulcInfo集合组成新的集合,然后赋值给 options ,所以一切调用options
+        this.ulcInfo = {
+            urlPrefix : "",
+            ulcLevel : [],
+            /*配置删除的字符,用于设置name的时候,需要删除某些字符更好确认选项*/
+            judgeNameShield : [],
+            /*选中的数据,按照集合的形式存放 -- 用于回调出去*/
+            dataList : [],
+            data : [],
+            allCallback:function (array) {}
+        },
+        this.options = $.extend({}, this.ulcInfo, opt)  //opt并入ulcInfo集合组成新的集合,然后赋值给 options ,所以一切调用options
     };
     //定义UnlimitedLevelContact的方法
     UnlimitedLevelContact.prototype = {
@@ -89,92 +89,103 @@
                 }
             }
             if(falg){
-                $.get(ulc.ulcCufte(ulc.options.urlPrefix) + node.ulcURL + id, function(result){
-                    var res = node.repData(result);
-                    if (res.code == res.isFlag) {
-                        //数据返回
-                        if(res.data.length < 1 && !node.isFristSelect){
-                            $(node.ulcNode).append("<option value=''></option>");
-                            node.isSelected = 2;
-                        }
-                        node.isContainId = false;
-                        $(res.data).each(function (){
-                            var data =  node.parseData(this);
-                            $(node.ulcNode).append("<option value='"+ data.id +"' msg='"+ ulc.ulcCufte(data.msg) +"'>"+ data.val +"</option>");
-
-                            if(node.ulcId == data.id){
-                                node.isContainId = true;
-                            }
-                        });
-                        var nodeUlcId,isGetNameCor=true;
-                        if(node.isContainId && node.dataType == 1){
-                            nodeUlcId = node.ulcId;
-                            isGetNameCor = true;
-                        }else if(ulc.ulcIsEmpty(node.ulcName) && node.dataType == 2){
-                            nodeUlcId = ulc.getUlcIdByName(node);
-                            if(!ulc.ulcIsEmpty(nodeUlcId)){
-                                isGetNameCor = false;
-                            }else{
-                                isGetNameCor = true;
-                            }
-                            if(!ulc.ulcIsEmpty(nodeUlcId) && node.isSelected != 2){
-                                nodeUlcId = node.parseData(res.data[0]).id;
-                            }
-                        }else if(res.data.length > 0 && node.isSelected != 2){
-                            nodeUlcId = node.parseData(res.data[0]).id;
-                            isGetNameCor=false;
-                        }
-
-                        if(!node.isGetNameCorrect)
-                            node.isGetNameCorrect = isGetNameCor;  //标记未获取到正确的select选项
+                if(ulc.ulcIsEmpty(node.ulcURL)){
+                    $.get(ulc.ulcCufte(ulc.options.urlPrefix) + node.ulcURL + id, function(result){
+                        ulc.setVal(level,result);
+                    }).fail(function () {   //要求jq 1.6以上
+                        console.log("Query failed ...");
+                    });
+                }else if(ulc.ulcIsEmpty(node.ulcReturnList)){
+                    ulc.setVal(level,node.ulcReturnList);
+                }else{
+                    console.log("No data source ...");
+                    return false;
+                }
+            }
+        },
+        setVal:function(level,result){
+            var ulc = this;
+            var node = ulc.options.ulcLevel[level];
+            var res = node.repData(result);
+            if (res.code == res.isFlag) {
+                //数据返回
+                if(res.data.length < 1 && !node.isFristSelect){
+                    $(node.ulcNode).append("<option value=''></option>");
+                    node.isSelected = 2;
+                }
+                node.isContainId = false;
+                $(res.data).each(function (){
+                    var data =  node.parseData(this);
+                    $(node.ulcNode).append("<option value='"+ data.id +"' msg='"+ ulc.ulcCufte(data.msg) +"'>"+ data.val +"</option>");
+                    if(node.ulcId == data.id){
+                        node.isContainId = true;
+                    }
+                });
+                var nodeUlcId,isGetNameCor=true;
+                if(node.isContainId && node.dataType == 1){
+                    nodeUlcId = node.ulcId;
+                    isGetNameCor = true;
+                }else if(ulc.ulcIsEmpty(node.ulcName) && node.dataType == 2){
+                    nodeUlcId = ulc.getUlcIdByName(node);
+                    if(!ulc.ulcIsEmpty(nodeUlcId)){
+                        isGetNameCor = false;
+                    }else{
+                        isGetNameCor = true;
+                    }
+                    if(!ulc.ulcIsEmpty(nodeUlcId) && node.isSelected != 2){
+                        nodeUlcId = node.parseData(res.data[0]).id;
+                    }
+                }else if(res.data.length > 0 && node.isSelected != 2){
+                    nodeUlcId = node.parseData(res.data[0]).id;
+                    isGetNameCor=false;
+                }
 
-                        node.ulcId = nodeUlcId;
-                        $(node.ulcNode).val(nodeUlcId);
+                if(!node.isGetNameCorrect)
+                    node.isGetNameCorrect = isGetNameCor;  //标记未获取到正确的select选项
 
-                        //标志已经加载
-                        node.isLoad = true;
-                        // $(node.ulcNode).unbind("change"); //移除change
+                node.ulcId = nodeUlcId;
+                $(node.ulcNode).val(nodeUlcId);
 
-                        /* 将每次选中的数据加入到dataList */
-                        ulc.options.dataList[level] = res.data;
+                //标志已经加载
+                node.isLoad = true;
+                // $(node.ulcNode).unbind("change"); //移除change
 
-                        /* 绑定事件 */
-                        if(ulc.options.ulcLevel.length-1 >= level){
-                            if(!node.isLoadChangeEvent){
-                                $(node.ulcNode).change(function (){
-                                    if(ulc.options.ulcLevel.length-1 > level){
-                                        //点击事件
-                                        ulc.initUlcHtml(level+1,$(node.ulcNode).val());
-                                    }else if(ulc.options.ulcLevel.length-1 == level){
-                                        //点击触发回调datalist函数
-                                        ulc.allBackData();
-                                    }
-                                    //点击事件-触发回调函数
-                                    ulc.backData(level);
+                /* 将每次选中的数据加入到dataList */
+                ulc.options.dataList[level] = res.data;
 
-                                    /*重置后面所有的isGetNameCorrect=true */
-                                    for(var k=level;k < ulc.options.ulcLevel.length;k++){
-                                        ulc.options.ulcLevel[k].isGetNameCorrect = true;
-                                    }
-                                });
-                                //只需要绑定一次事件
-                                node.isLoadChangeEvent = true;
-                            }
-                            if(ulc.options.ulcLevel.length-1 == level){
-                                // 当前就回调datalist函数
+                /* 绑定事件 */
+                if(ulc.options.ulcLevel.length-1 >= level){
+                    if(!node.isLoadChangeEvent){
+                        $(node.ulcNode).change(function (){
+                            if(ulc.options.ulcLevel.length-1 > level){
+                                //点击事件
+                                ulc.initUlcHtml(level+1,$(node.ulcNode).val());
+                            }else if(ulc.options.ulcLevel.length-1 == level){
+                                //点击触发回调datalist函数
                                 ulc.allBackData();
                             }
-                        }
-                        // 递归查询下一级
-                        if(ulc.options.ulcLevel.length-1 > level ){
-                            ulc.initUlcHtml(level+1,node.ulcId);
-                        }
-                    }else{
-                        console.log(res.msg);
+                            //点击事件-触发回调函数
+                            ulc.backData(level);
+
+                            /*重置后面所有的isGetNameCorrect=true */
+                            for(var k=level;k < ulc.options.ulcLevel.length;k++){
+                                ulc.options.ulcLevel[k].isGetNameCorrect = true;
+                            }
+                        });
+                        //只需要绑定一次事件
+                        node.isLoadChangeEvent = true;
                     }
-                }).fail(function () {   //要求jq 1.6以上
-                    console.log("查询失败!");
-                });
+                    if(ulc.options.ulcLevel.length-1 == level){
+                        // 当前就回调datalist函数
+                        ulc.allBackData();
+                    }
+                }
+                // 递归查询下一级
+                if(ulc.options.ulcLevel.length-1 > level ){
+                    ulc.initUlcHtml(level+1,node.ulcId);
+                }
+            }else{
+                console.log(res.msg);
             }
         },
         setUlcById: function(){
@@ -363,6 +374,16 @@
         setUlcAllCallback:function (fun) {
             this.options.allCallback = fun;
         },
+        setUlcReturnList:function (level,returnList) {
+            //在无URL情况下,可以直接传入list集合,集合结构与其他节点一样
+            this.options.ulcLevel[level].ulcReturnList = returnList;
+            ulc.reloadLevel(level);
+        },
+        reloadLevel:function (level) {
+            //重新加载本节点
+            if(level != 0) level--;
+            ulc.initUlcHtml(level,this.options.ulcLevel[level].ulcId);
+        },
         getIsNameCorrect:function (level) {
             var ulc = this;
             if(ulc.ulcIsEmpty(level)){
@@ -398,14 +419,15 @@
     $.fn.initUlcByHtml = function(options) {
         var  ulcLevel = new Array();
         var $selectUlc =  $(this);
-        $(this).find("select").each(function () {
+        $(this).find(".ulc_select").each(function () {
             var $ulc = $(this);
             var obj = new Object();
             obj.ulcNode = $ulc;	//节点
             obj.ulcURL = $ulc.attr("ulcURL");	//url
+            obj.ulcReturnList =null;	//数据
             obj.ulcId = $ulc.attr("ulcId");	//节点option的value
             obj.ulcName = $ulc.attr("ulcName");
-            obj.isFristSelect = $ulc.attr("ulcIsFristSelect");	//是否有“请选择项”  false:无
+            obj.isFristSelect = $ulc.attr("ulcIsFristSelect")==1?true:false;	//是否有“请选择项”  false:无
             obj.fristSelectMsg = $ulc.attr("ulcFristSelectMsg");
             obj.repData = function(res){ //res 即为原始返回的数据
                 return {
@@ -417,9 +439,9 @@
             };
             obj.parseData = function(data){ //res 即为原始返回的数据
                 return {
-                    "id": data[$ulc.attr("ulcValId")], //
-                    "val": data[$ulc.attr("ulcValName")], //
-                    "msg": data[$ulc.attr("ulcMsg")] //解析数据长度
+                    "id": data[$ulc.attr("ulcValId")], //id
+                    "val": data[$ulc.attr("ulcValName")], //text
+                    "msg": data[$ulc.attr("ulcMsg")] //其他
                 };
             };
             ulcLevel.push(obj);
@@ -509,13 +531,13 @@ function init_ulc(node){
  * b:使用html的属性来携带参数,直接初始化
  *   html :
  <div class="init_ulc" code="xxxcode" msg="xxxMsg" data="xxxList">
- <select  class="select" ulcId=""  ulcName=""
+ <select  class="select ulc_select" ulcId=""  ulcName=""
  ulcURL="/getselect1" ulcList="data1List" ulcValName="xxxName" ulcValId="xxxId"   ulcMsg=""
- ulcIsFristSelect="true" ulcFristSelectMsg="请选择XXX">
+ ulcIsFristSelect="1" ulcFristSelectMsg="请选择XXX">
  </select>
- <select  class="select" ulcId=""  ulcName=""
+ <select  class="select ulc_select" ulcId=""  ulcName=""
  ulcURL="/getselect2" ulcList="data2List" ulcValName="xxxName" ulcValId="xxxId"  ulcMsg=""
- ulcIsFristSelect="true" ulcFristSelectMsg="请选择XXX">
+ ulcIsFristSelect="1" ulcFristSelectMsg="请选择XXX">
  </select>
  </div>
 

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

@@ -206,6 +206,35 @@ function vailErrorMsg_5(node,msg){
     vailErrorMsg(node,msg,5000);
 }
 
+/**
+ * 弹窗规格
+ * @param name
+ * @param url
+ * @param type
+ */
+function layer_show_norm(name,url,type) {
+    var w=1460,h=660;
+    switch (type){
+        case 1:
+            w=500;h=285;
+            break;
+        case 2:
+            w=600;h=340;
+            break;
+        case 3:
+            w=700;h=400;
+            break;
+        case 4:
+            w=900;h=510;
+            break;
+        case 5:
+            w=1000;h=570;
+            break;
+        default:
+            break
+    }
+    layer_show(name,url,w,h);
+}
 
 /**物流名称替换**/
 function replace(code) {

+ 36 - 0
watero-rst-web/src/main/webapp/common/js/customer/question.js

@@ -0,0 +1,36 @@
+$(function(){
+    $("#form-question").Validform({
+        tiptype: function (msg, o, cssctl) {
+            if (o.type == 3) {//失败
+                layer.msg(msg, {icon: 5, time: 3000});
+                $(window).scrollTop(o.obj.offset().top - 40);
+            }
+        },
+        datatype: {//自定义验证类型
+        },
+        ignoreHidden: true,
+        tipSweep: true, //若为true,则只在表单提交时验证
+        ajaxPost: true, //异步提交
+        beforeCheck: function (curform) {  //验证通过之前执行的函数
+        },
+        beforeSubmit: function (curform) {  //验证通过之后执行的函数
+            var questionProfileText = UE.getEditor('questionProfileText').getContent();
+            if(questionProfileText == null || questionProfileText == ""){
+                vailErrorMsg($("#questionProfile"),"未填写问题描述");
+                return false;
+            }
+            $("#questionProfile").val(questionProfileText);
+        },
+        callback: function (data) {//异步回调函数
+            if (data) {
+                var index = layer.alert(data.resultMsg, function (index) {
+                    if (data.resultCode == 200) {
+                        location.href = url_path + "/admin/complaintQuestion/question_page";
+                    } else {
+                        layer.close(index);
+                    }
+                });
+            }
+        }
+    });
+})