Administrator
2023-03-31 0620759090646bf58a7e786c55cfe07ce1984e45
分单随行人员
已添加9个文件
已修改8个文件
13476 ■■■■■ 文件已修改
JavaSource/com/mandi/fendan/controller/BusinessVehiclePersonController.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JavaSource/com/mandi/fendan/mapper/BusinessVehiclePersonMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JavaSource/com/mandi/fendan/persist/BusinessVehiclePerson.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JavaSource/com/mandi/fendan/service/impl/ErpService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JavaSource/com/mandi/fendan/service/impl/Fd_BsheetService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JavaSource/com/mandi/fendan/util/Contants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/basic/carPersons.xhtml 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/basic/formSplit.xhtml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/basic/js/address-picker.js 546 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/basic/js/carPersons.js 294 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/basic/js/city.data-3.js 11548 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/basic/js/formSplit.js 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/basic/js/vehicleBindMaterials.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/basic/vehicleBindMaterials.xhtml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/css/address-picker.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/css/address-picker.js 546 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebContent/template/nit/tmp_brief.xhtml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JavaSource/com/mandi/fendan/controller/BusinessVehiclePersonController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,99 @@
package com.mandi.fendan.controller;
import com.mandi.common.Jacksonmethod;
import com.mandi.common.SessionMethod;
import com.mandi.dao.common.ObjectResult;
import com.mandi.dao.common.PageRequest;
import com.mandi.dao.common.PageResult;
import com.mandi.fendan.mapper.BusinessVehiclePersonMapper;
import com.mandi.fendan.persist.BusinessVehiclePerson;
import com.sun.org.apache.xpath.internal.operations.Bool;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("/businessVehiclePerson")
public class BusinessVehiclePersonController {
    @Resource
    BusinessVehiclePersonMapper businessVehiclePersonMapper;
    @RequestMapping("/listAll.htm")
    void listAll(int page, int pageSize,  HttpServletResponse re){
        Map map = new HashMap();
        map.put("pageSize",50);
        List<BusinessVehiclePerson> list = businessVehiclePersonMapper.selectPage(map);
        PageResult<BusinessVehiclePerson> prr= new PageResult<>();
        prr.setList(list);
        String str= Jacksonmethod.tojson(prr, false);
        SessionMethod.writeresp(re, str);
    }
    @RequestMapping("/list.htm")
    void list(String businessNo, String vehicleId, HttpServletRequest r, HttpServletResponse re){
        List<BusinessVehiclePerson> list = businessVehiclePersonMapper.selectList(businessNo,vehicleId);
        PageResult<BusinessVehiclePerson> prr= new PageResult<>();
        prr.setList(list);
        String str= Jacksonmethod.tojson(prr, false);
        SessionMethod.writeresp(re, str);
    }
    @RequestMapping("/get.htm")
    void getById(Long id, HttpServletResponse re){
        BusinessVehiclePerson businessVehiclePerson = businessVehiclePersonMapper.selectById(id);
        ObjectResult<BusinessVehiclePerson> prr= new ObjectResult<>();
        prr.setItem(businessVehiclePerson);
        String str= Jacksonmethod.tojson(prr, false);
        SessionMethod.writeresp(re, str);
    }
    @RequestMapping("/update.htm")
    void update(BusinessVehiclePerson businessVehiclePerson,HttpServletResponse re){
        ObjectResult<Boolean> objectResult = new ObjectResult<>();
        try {
            BusinessVehiclePerson old = businessVehiclePersonMapper.selectById(businessVehiclePerson.getId());
            businessVehiclePerson.setCreateTime(old.getCreateTime());
            businessVehiclePerson.setUpdateTime(DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
            businessVehiclePersonMapper.update(businessVehiclePerson);
            objectResult.setCode(0);
        } catch (Exception e) {
            objectResult.setCode(1);
            objectResult.setErrmsg("系统繁忙,请稍后再试!");
        }
        String str= Jacksonmethod.tojson(objectResult, false);
        SessionMethod.writeresp(re, str);
    }
    @RequestMapping("/add.htm")
    void add(BusinessVehiclePerson businessVehiclePerson,HttpServletResponse re){
        ObjectResult<Boolean> objectResult = new ObjectResult<>();
        try {
            businessVehiclePerson.setCreateTime(DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
            businessVehiclePersonMapper.insert(businessVehiclePerson);
            objectResult.setCode(0);
        } catch (Exception e) {
            objectResult.setCode(1);
            objectResult.setErrmsg("系统繁忙,请稍后再试!");
        }
        String str= Jacksonmethod.tojson(objectResult, false);
        SessionMethod.writeresp(re, str);
    }
    @RequestMapping("/del.htm")
    void del(Long id,HttpServletResponse re){
        ObjectResult<Boolean> objectResult = new ObjectResult<>();
        try {
            businessVehiclePersonMapper.delete(id);
            objectResult.setCode(0);
        } catch (Exception e) {
            objectResult.setCode(1);
            objectResult.setErrmsg("系统繁忙,请稍后再试!");
        }
        String str= Jacksonmethod.tojson(objectResult, false);
        SessionMethod.writeresp(re, str);
    }
}
JavaSource/com/mandi/fendan/mapper/BusinessVehiclePersonMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package com.mandi.fendan.mapper;
import com.mandi.fendan.persist.BusinessVehiclePerson;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
public interface BusinessVehiclePersonMapper {
    @Select("select * from BusinessVehiclePerson where businessNo=#{businessNo} and vehicleId=#{vehicleId}")
    List<BusinessVehiclePerson> selectList(@Param("businessNo")String businessNo, @Param("vehicleId")String vehicleId);
    @Select({ "<choose>" ,
            "<when test=\"pagesize &gt; 0 \">" ,
            "select top ${pagesize} *" ,
            "</when>" ,
            "<otherwise>" ,
            "select *" ,
            "</otherwise>" ,
            "</choose> from ( select row_number()" ,
            "<choose>" ,
            "<when test=\"sort!=null and sort!='' \">" ,
            "over (order by ${sort} )" ,
            "</when>" ,
            "<otherwise>" ,
            "over (order by a.id desc )" ,
            "</otherwise>" ,
            "</choose>" ,
            "as rownumber,a.*",
            "  select * from BusinessVehiclePerson ",
            ") as a where rownumber > #{pagesize}*#{page} order by a.rownumber asc "
    })
    List<BusinessVehiclePerson> selectPage(Map<String,Object> map);
    @Select("select * from BusinessVehiclePerson where id=#{id}")
    BusinessVehiclePerson selectById(long id);
    @Insert({
            "insert into BusinessVehiclePerson(vehicleId,businessNo,userName,idCard,phone,province,city,area,street,createTime,updateTime)",
            "values(#{vehicleId},#{businessNo},#{userName},#{idCard},#{phone},#{province},#{city},#{area},#{street},#{createTime},#{updateTime})"
    })
    @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "Id")
    int insert(BusinessVehiclePerson businessVehiclePerson);
    @Update({"<script>",
            "update BusinessVehiclePerson <set>",
            "<if test=\"vehicleId!=null and vehicleId!=''\"> vehicleId=#{vehicleId},</if>",
            "<if test=\"businessNo!=null and businessNo!=''\"> businessNo=#{businessNo},</if>",
            "<if test=\"userName!=null and userName!=''\"> userName=#{userName},</if>",
            "<if test=\"idCard!=null and idCard!=''\"> idCard=#{idCard},</if>",
            "<if test=\"phone!=null and phone!=''\"> phone=#{phone},</if>",
            "<if test=\"province!=null and province!=''\"> province=#{province},</if>",
            "<if test=\"city!=null and city!=''\"> city=#{city},</if>",
            "<if test=\"area!=null and area!=''\"> area=#{area},</if>",
            "<if test=\"street!=null and street!=''\"> street=#{street},</if>",
            "<if test=\"createTime!=null and createTime!=''\"> createTime=#{createTime},</if>",
            "<if test=\"updateTime!=null and updateTime!=''\"> updateTime=#{updateTime},</if>",
            "</set> where id=#{id}",
            "</script>"
    })
    int update(BusinessVehiclePerson businessVehiclePerson);
    @Delete("delete from BusinessVehiclePerson where id=#{id}")
    int delete(Long id);
}
JavaSource/com/mandi/fendan/persist/BusinessVehiclePerson.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
package com.mandi.fendan.persist;
import org.springframework.data.annotation.Id;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name="BusinessVehiclePerson")
public class BusinessVehiclePerson {
    @Id
    Long id;
    String vehicleId;
    String businessNo;
    String userName;
    String idCard;
    String phone;
    String province;
    String city;
    String area;
    String street;
    String createTime;
    String updateTime;
    public String getCreateTime() {
        return createTime;
    }
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
    public String getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(String updateTime) {
        this.updateTime = updateTime;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getVehicleId() {
        return vehicleId;
    }
    public void setVehicleId(String vehicleId) {
        this.vehicleId = vehicleId;
    }
    public String getBusinessNo() {
        return businessNo;
    }
    public void setBusinessNo(String businessNo) {
        this.businessNo = businessNo;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getIdCard() {
        return idCard;
    }
    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getProvince() {
        return province;
    }
    public void setProvince(String province) {
        this.province = province;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getArea() {
        return area;
    }
    public void setArea(String area) {
        this.area = area;
    }
    public String getStreet() {
        return street;
    }
    public void setStreet(String street) {
        this.street = street;
    }
}
JavaSource/com/mandi/fendan/service/impl/ErpService.java
@@ -89,6 +89,7 @@
    @Resource
    private SqlSessionFactory sqlSessionFactory;
    @Resource
    private FdVehicleRemarkMapper fdVehicleRemarkMapper;
    @Override
JavaSource/com/mandi/fendan/service/impl/Fd_BsheetService.java
@@ -450,7 +450,10 @@
        }
        orr.setCode(0);
        orr.setItem(null);
        Map map = new HashMap<>();
        // è¿”回业务单号,给前端使用
        map.put("businessNo",bbsNo);
        orr.setItem(map);
        return orr;
    }
JavaSource/com/mandi/fendan/util/Contants.java
@@ -39,7 +39,7 @@
    //分单系统推送一卡通测试地址
    public static String yktLocalAdd="http://10.1.1.9:8088";//一卡通外网测试地址
    public static String yktLocalAdd=  "http://10.1.1.9:8088";//一卡通外网测试地址
//    public static String yktLocalAdd="http://125.46.81.106:8088";//一卡通外网测试地址
    //分单回写nc系统测试地址NCfdhx_url
    public static String NCfdhx_url = "http://10.0.13.20:9088/api/Domain/mtcesb/servlet/PubAPIServlet";
WebContent/basic/carPersons.xhtml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition template="/template/nit/tmp_brief.xhtml">
    <ui:define name="link">
        <link href="#{request.contextPath}/css/address-picker.css?v=3" rel="stylesheet" type="text/css"/>
    </ui:define>
    <ui:define name="acss">
        <style>
        #searchBtn {
            height: 34px;
        }
        p.error {
            color: #D9534F
        }
        input.error {
            border: 1px solid #D9534F;
        }
        #simple-table th,#simple-table td, #vehicle-table th,#vehicle-table td{
            text-align: center;
            padding: 1px 8px;
        }
        #form .control-label {
            margin-right: -14px
        }
        .t-error{
            color: red;
            position: relative;
            right: 2px;
            top: 3px;
        }
        .pagination {
            margin: 10px 0;
        }
        #simple-table th, #vehicle-table th {
            padding: 0
        }
        .th {
            position: relative;
            width: 100%;
            display: block;
            background: #F2F2F2;
            border: 1px solid #DDDDDD;
            z-index: 1;
            border-left: none;
        }
        i.fa.danger {
            color: #D15B47
        }
        i.fa.success {
            color: #87B87F
        }
        #selectNoBtn {
            display: none;
        }
        .split {
            width: 12px;
            height: 517px;
            position: absolute;
            display: block;
            background: #f1f1f1;
            margin-top: 41px;
            z-index: 999;
        }
        #vehicleMessage {
            display: none;
        }
        </style>
    </ui:define>
    <ui:define name="acontent">
        <input type="hidden" value="#{param.vehicleId}" id="vehicleId" />
        <input type="hidden" value="#{param.businessNo}" id="businessNo" />
        <div class="row">
            <div class="col-xs-12" style="width: 100%;">
               <div class="col-xs-9" >
                <div class="page-header">
                    <h1>车牌号:${param.vehicleId} &nbsp;&nbsp;&nbsp;&nbsp;业务单号:${param.businessNo}
                    </h1>
                </div>
               </div>
                <div class="col-xs-3" >
                    <button class="btn btn-primary" data-bind="click: toAddPersons"> <i class="ace-icon fa fa-plus center bigger-110"></i>添加随行人员 </button>
                    <button type="button" class="btn btn-primary" id="sxBtn"  title="刷新">
                        <i class="ace-icon fa fa-refresh bigger-110" ></i>
                    </button>
                </div>
                <table class="table table-bordered table-hover table-striped">
                    <thead>
                    <tr>
                        <th>姓名</th>
                        <th>身份证号</th>
                        <th>手机号</th>
                        <th>地址</th>
                        <th></th>
                    </tr>
                    </thead>
                    <tbody data-bind="foreach: list">
                    <tr>
                        <td  data-bind="text:$data.userName" ></td>
                        <td  data-bind="text:$data.idCard"></td>
                        <td data-bind="text:$data.phone"></td>
                        <td data-bind="text:$data.provinceCityArea"></td>
                        <td>
                            <button class="btn btn-sm" data-bind="click:$root.showPerson">编辑</button>
                            <button class="btn btn-sm btn-danger" data-bind="click:$root.delPerson" >删除</button>
                        </td>
                    </tr>
                    </tbody>
                </table>
            </div>
        </div>
        <div class="modal fade" id="personModal">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                        <h4 class="modal-title">添加<span data-bind="text: o().vehicleId"></span>随车人员</h4>
                    </div>
                    <div class="modal-body">
                        <form class="form-horizontal" id="form">
                            <div class="form-body">
                                <div class="form-group">
                                    <label class="col-md-3 control-label"><span class="t-error">*</span>姓名</label>
                                    <div class="col-md-4"> <input type="text" name="userName" class="mui-input-clear" data-bind="value:o().userName" placeholder="请输入姓名"/>
                                    </div>
                                    <div class="col-md-5">
                                        <p class="form-control-static text-error"></p>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label class="col-md-3 control-label"><span class="t-error">*</span>身份证号</label>
                                    <div class="col-md-4"><input type="text" name="idCard" data-bind="value:o().idCard" class="mui-input-clear" placeholder="请输入身份证号"/></div>
                                    <div class="col-md-5 text-error"></div>
                                </div>
                                <div class="form-group">
                                    <label class="col-md-3 control-label"><span class="t-error">*</span>手机号</label>
                                    <div class="col-md-4"><input type="text" name="dataPhone" data-bind="value:o().phone" class="mui-input-clear" placeholder="请输入手机号码"/></div>
                                    <div class="col-md-5">
                                        <p class="form-control-static text-error"></p>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label class="col-md-3 control-label"><span class="t-error">*</span>来源地</label>
                                    <div class="col-md-4"><input type="text" data-bind="click: $root.cityClick" placeholder="点击选择省、市、县(区)" name="city" id="city" readonly="" />
                                    <input type="text" class="mui-input-clear" name="street" data-bind="value:o().street" placeholder="填写街道及住址"/></div>
                                    <div class="col-md-5">
                                        <p class="form-control-static text-error"></p>
                                    </div>
                              <!--      <button type="button" class="btn btn-xs btn-info"><i class="ace-icon fa fa-plus center bigger-110"></i></button>
                                    <button type="button" class="btn btn-xs btn-info"><i class="ace-icon fa fa-pencil bigger-110"></i></button>
                                    <button type="button" class="btn btn-xs btn-info"><i class="ace-icon fa fa-check  bigger-110"></i></button>
                                    <button type="button" class="btn btn-xs btn-info"><i class="ace-icon fa fa-reply  bigger-110"></i></button>
                                    <button type="button" class="btn btn-xs btn-info"><i class="ace-icon fa fa-trash-o  bigger-110"></i></button>-->
                                </div>
                                <div class="col-md-3">
                                    <p class="form-control-static text-error"></p>
                                </div>
                            </div>
                        </form>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-sm btn-default" data-dismiss="modal">取消</button>
                        <button type="button" class="btn btn-sm btn-primary" id="tempVehicleSaveBtn">保存</button>
                    </div>
                </div>
            </div>
        </div>
    </ui:define>
    <ui:define name="myscript">
        <script src="js/city.data-3.js"></script>
        <script src="js/address-picker.js?v=11112"></script>
        <script src="js/carPersons.js?v=12311333"></script>
    </ui:define>
</ui:composition>
</html>
WebContent/basic/formSplit.xhtml
@@ -147,6 +147,7 @@
            </div>
            <div class="col-xs-3" style="text-align: left;width: 15%;">
                <button type="button" class="btn btn-primary btn-sm" id="addTempVehicle" style="font-size: 10px;">添加临时车辆</button>
                <!--<button type="button" class="btn btn-primary btn-sm" id="addPerson" style="font-size: 10px;">添加随车人员</button>-->
                <!-- <button type="button" class="btn btn-primary btn-sm" id="refreshVehicleBtn" style="font-size: 10px;">
                    <i class="ace-icon fa fa-refresh bigger-110"></i>
                    æ›´æ–°è½¦è¾†çŠ¶æ€
@@ -389,7 +390,7 @@
        </div>
    </ui:define>
    <ui:define name="myscript">
        <script src="js/formSplit.js?v=#{sessionScope.login_page_vesion}"></script>
        <script src="js/formSplit.js?v=12"></script>
    </ui:define>
</ui:composition>
</html>
WebContent/basic/js/address-picker.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,546 @@
(function () {
    Number.prototype.toPercent = function () {
        return (Math.round(this * 10000) / 100).toFixed(2) + "%"
    };
    var a = function (q) {
        if (!(this instanceof a)) {
            return new a(q)
        }
        var n = this;
        var h = {};
        var r = [];
        var g = {};
        var o;
        var e = [];
        var k = new Date().getTime();
        var j = {
            id: "",
            level: 3,
            levelDesc: ["省份", "城市", "区县"],
            index: "99999999999999999999",
            separator: " / ",
            isInitClick: true,
            isWithMouse: false,
            offsetX: 0,
            offsetY: 0,
            emptyText: "暂无数据",
            color: "#56b4f8",
            fontSize: "14px",
            isAsync: false,
            asyncUrl: "",
            isShowBtn: true,
            btnConfig: [],
            data: ""
        };
        var t = j;
        var l;
        var c = 20;
        var m = true;
        n._init = function () {
            if (!i()) {
                return
            }
            d();
            var x = '<div id="adp-wraper-' + k + '" class="adp-wraper" style="z-index: ' + t.index + '"><p>';
            var v = '<div class="ul-div" style="display: block"><ul></ul></div>';
            x += '<span class="adp-head-active">' + t.levelDesc[0] + "</span><span>" + t.levelDesc[0] + "</span>";
            for (var w = 1; w < t.level; w++) {
                x += "<span>" + t.levelDesc[w] + "</span>";
                v += '<div class="ul-div"><ul><span class="adp-empty-text">' + t.emptyText + "</span></ul></div>"
            }
            x += "</p>";
            var y = b();
           // $("body").append(x + v + y + '</div><div class="adp-wraper-backshadow" style="z-index: ' + (t.index - 1) + '"></div>');
            $("body").append(x + v + y + '</div>');
            if (t.isAsync) {
                o = f(null);
                n._initFirstLevelData()
            } else {
                if (typeof t.data == "string" && !p(t.data)) {
                    $.ajax({
                        url: t.data, async: false, success: function (z) {
                            o = z;
                            n._getEachLevelData(0, t.level, o);
                            n._initFirstLevelData()
                        }
                    })
                } else {
                    o = t.data;
                    if (typeof t.data == "string") {
                        o = JSON.parse(o)
                    }
                    n._getEachLevelData(0, t.level, o);
                    n._initFirstLevelData()
                }
            }
            n._bindEvent()
        };
        n._getEachLevelData = function (w, B, y) {
            var A = [];
            var z = [];
            if (w >= B) {
                return
            }
            for (var x = 0; x < y.length; x++) {
                A.push(y[x]);
                if (w == B - 1) {
                    continue
                }
                if (y[x].children == undefined) {
                    continue
                }
                for (var v = 0; v < y[x].children.length; v++) {
                    z.push(y[x].children[v])
                }
            }
            if (z.length == 0) {
                return
            }
            h["data_level_" + w] = A;
            n._getEachLevelData(w + 1, B, z)
        };
        n._initFirstLevelData = function () {
            for (var w = 0; w < t.level; w++) {
                $("#adp-wraper-" + k).children("div").eq(w).children("ul").empty();
                $("#adp-wraper-" + k).children("div").eq(w).children("ul").append('<span class="adp-empty-text">' + t.emptyText + "</span>")
            }
            if (o.length > 0) {
                $("#adp-wraper-" + k).children("div").eq(0).children("ul").empty()
            }
            for (var w = 0; w < o.length; w++) {
                var v = '<li data-code="' + o[w].value + '" title="' + o[w].text + '">' + o[w].text + "</li>";
                $("#adp-wraper-" + k).children("div").eq(0).children("ul").append(v)
            }
            var y = $("#adp-wraper-" + k).children("p").children("span").eq(1).text();
            var x = $("#adp-wraper-" + k).children("p").children("span.adp-head-active");
            x.css("left", "-1px");
            x.text(y);
            $("#adp-wraper-" + k).children("div.ul-div").eq(0).show().siblings("div.ul-div").hide();
            if (t.isShowBtn) {
                s(0)
            }
        };
        n._bindEvent = function () {
            $("#adp-wraper-" + k + " div ul").delegate("li", "click", function () {
                var z = $(this).parent().parent().index();
                g.value = $(this).data("code");
                g.text = $(this).text();
                g.level = z;
                r[z - 1] = $(this).data("code");
                e[z - 1] = $(this).text();
                r.splice(z, r.length - z);
                e.splice(z, e.length - z);
                var G = $("#adp-wraper-" + k).children("div").length;
                G = G -1
                // console.log(z,G,z>G)
                if (z < G) {
                    for (var F = z; F < t.level; F++) {
                        $("#adp-wraper-" + k).children("div.ul-div").eq(F).children("ul").empty().append('<span class="adp-empty-text">' + t.emptyText + "</span>")
                    }
                    $("#adp-wraper-" + k).children("div.ul-div").eq(z).children("ul").empty();
                    var x = t.isAsync ? f(g, z) : o;
                    if (z > 1 && !t.isAsync) {
                        x = h["data_level_" + (z - 1)]
                    }
                    if (x != undefined) {
                        for (var C = 0; C < x.length; C++) {
                            var y = x[C];
                            if (t.isAsync) {
                                var E = '<li data-code="' + y.value + '" title="' + y.text + '">' + y.text + "</li>";
                                $("#adp-wraper-" + k).children("div").eq(z).children("ul").append(E)
                            } else {
                                if (y.text == $(this).text() && y.value == $(this).data("code")) {
                                    if (y.children != null && y.children.length > 0) {
                                        for (var B = 0; B < y.children.length; B++) {
                                            var A = y.children[B];
                                            var E = '<li data-code="' + A.value + '" title="' + A.text + '">' + A.text + "</li>";
                                            $("#adp-wraper-" + k).children("div.ul-div").eq(z).children("ul").append(E)
                                        }
                                    } else {
                                        $("#adp-wraper-" + k).children("div.ul-div").eq(z).children("ul").append('<span class="adp-empty-text">' + t.emptyText + "</span>")
                                    }
                                    break
                                }
                            }
                        }
                        if (t.isShowBtn) {
                            s(z)
                        }
                    } else {
                        $("#adp-wraper-" + k).children("div.ul-div").eq(z).children("ul").append('<span class="adp-empty-text">' + t.emptyText + "</span>")
                    }
                    $(this).addClass("adp-active").siblings().removeClass("adp-active");
                    var D = $("#adp-wraper-" + k).children("p").children("span").eq(z + 1).text();
                    var H = $("#adp-wraper-" + k).children("p").children("span.adp-head-active");
                    H.css("left", (0.2 * (z)).toPercent());
                    $(this).parent().parent().next().show().siblings("div.ul-div").hide();
                    setTimeout(function () {
                        H.text(D)
                    }, 200)
                } else {
                    $(this).addClass("adp-active").siblings().removeClass("adp-active");
                    $("#adp-wraper-" + k).fadeOut();
                    $("div.adp-wraper-backshadow").hide()
                }
            });
            $("#adp-wraper-" + k + " p span").click(function () {
                if ($(this).hasClass("adp-head-active")) {
                    return
                }
                var x = $(this).index() - 1;
                var z = $(this).text();
                var y = $("#adp-wraper-" + k).children("p").children("span.adp-head-active");
                y.css("left", x == 0 ? -1 : (0.2 * x).toPercent());
                setTimeout(function () {
                    y.text(z)
                }, 200);
                $("#adp-wraper-" + k).children("div").eq(x).show().siblings("div.ul-div").hide()
            });
            $("div.adp-wraper-backshadow").on("click", function () {
                $("div.adp-wraper-backshadow").hide();
                $("#adp-wraper-" + k).fadeOut()
            });
            $("#adp-wraper-" + k).click(function(event) {
                $(document).one("click",
                    function() { //对document绑定一个影藏Div方法
                        $("#adp-wraper-" + k).hide();
                    });
                event.stopPropagation(); //阻止事件向上冒泡
            });
            if (t.isInitClick) {
                $("#" + t.id).on("click", function () {
                    var y = u(event);
                    var x = $("#adp-wraper-" + k + " div.ul-div").eq(0);
                    $("#adp-wraper-" + k).css("left", y.x);
                    $("#adp-wraper-" + k).css("top", y.y);
                    $("#adp-wraper-" + k).fadeIn();
                    if ((g.level == undefined || m) && t.isShowBtn) {
                        if (x.children("ul").children("li").height() != 0) {
                            c = x.children("ul").children("li").height()
                        }
                        s(0);
                        m = false
                    }
                    $(".adp-wraper-backshadow").show()
                })
            }
            if (t.isShowBtn) {
                var w = t.btnConfig;
                for (var v = 0; v < w.length; v++) {
                    if (typeof (w[v].click) == "function") {
                        $("#adp_btn_" + v).on("click", w[v].click)
                    }
                }
            }
        };
        n._clearSelectedData = function () {
            r = [];
            e = [];
            g = {};
            var x = $("#adp-wraper-" + k).children("p").children("span.adp-head-active");
            x.css("left", "-1px");
            setTimeout(function () {
                x.text(t.levelDesc[0])
            }, 200);
            for (var w = 1; w < t.level; w++) {
                $("#adp-wraper-" + k).children("div.ul-div").eq(w).children("ul").empty().append('<span class="adp-empty-text">' + t.emptyText + "</span>");
                if (t.isShowBtn) {
                    s(w)
                }
            }
            var v;
            if ((v = $("#adp-wraper-" + k).children("div.ul-div").eq(0).children("ul").children("li.adp-active")).length > 0) {
                v.removeClass("adp-active")
            }
            $("#adp-wraper-" + k).children("div").eq(0).show().siblings("div.ul-div").hide()
        };
        n._setSelectedData = function (E) {
            if (typeof (E) != "object" || E == null) {
                return
            }
            if (E.length > t.level || E.length == 0) {
                return
            }
            var v = t.isAsync ? f(null) : o;
            if (typeof (v) != "object" || v == null) {
                return
            }
            var x, G, H, K, I, J = "", D = false, C;
            H = $("#adp-wraper-" + k).children("div.ul-div").eq(0).children("ul");
            for (var z = 0; z < (K = H.children("li")).length; z++) {
                x = v[z];
                if (x.value == E[0]) {
                    g.value = x.value;
                    g.text = x.text;
                    g.level = 1;
                    r[0] = x.value;
                    e[0] = x.text;
                    r.splice(1, r.length - 1);
                    e.splice(1, e.length - 1);
                    G = x;
                    C = 0;
                    D = true;
                    H.children("li").removeClass("adp-active");
                    $(K[z]).addClass("adp-active");
                    continue
                }
            }
            if (!D) {
                return
            }
            for (var B = 1; B < E.length; B++) {
                if (E[B] == null || E[B] == "") {
                    break
                }
                var w = t.isAsync ? f(G, g.level) : G.children;
                if (typeof (w) != "object" || w == null) {
                    break
                }
                J = "";
                D = false;
                G = {};
                for (var A = 0; A < w.length; A++) {
                    if (w[A].value == E[B]) {
                        J += '<li data-code="' + w[A].value + '" title="' + w[A].text + '" class="adp-active">' + w[A].text + "</li>";
                        g.value = w[A].value;
                        g.text = w[A].text;
                        g.level = (B + 1);
                        r[B] = w[A].value;
                        e[B] = w[A].text;
                        r.splice(B + 1, r.length - B - 1);
                        e.splice(B + 1, e.length - B - 1);
                        G = w[A];
                        D = true;
                        C = B;
                        continue
                    }
                    J += '<li data-code="' + w[A].value + '" title="' + w[A].text + '">' + w[A].text + "</li>"
                }
                if (!D) {
                    break
                }
                $("#adp-wraper-" + k).children("div.ul-div").eq(B).children("ul").empty().append(J);
                if (t.isShowBtn) {
                    s(B)
                }
            }
            if (typeof (C) == "number") {
                $("#adp-wraper-" + k).children("div.ul-div").eq(C).show().siblings("div.ul-div").hide();
                var F = $("#adp-wraper-" + k).children("p").children("span").eq(C + 1).text();
                var L = $("#adp-wraper-" + k).children("p").children("span.adp-head-active");
                L.css("left", (0.2 * (C)).toPercent());
                setTimeout(function () {
                    L.text(F)
                }, 200);
                for (var y = C + 1; y < t.level; y++) {
                    $("#adp-wraper-" + k).children("div.ul-div").eq(y).children("ul").empty().append('<span class="adp-empty-text">' + t.emptyText + "</span>");
                    if (t.isShowBtn) {
                        s(y)
                    }
                }
            }
        };
        n._refreshData = function (v) {
            if (typeof v == "string" && p(v)) {
                v = JSON.parse(v)
            }
            o = v;
            if (o.length > 0) {
                n._getEachLevelData(0, t.level, o)
            }
            n._initFirstLevelData()
        };
        n._getTotalValueAsArray = function () {
            return {value: r, text: e}
        };
        n._getTotalValueAsText = function () {
            var w = "";
            for (var v = 0; v < g.level; v++) {
                w += (v < g.level - 1 ? e[v] + t.separator : e[v])
            }
            return w
        };
        n._getCurrentObject = function () {
            return g
        };
        n._show = function () {
            var v = u(event);
            $("#adp-wraper-" + k).css("left", v.x);
            $("#adp-wraper-" + k).css("top", v.y);
            $("#adp-wraper-" + k).fadeIn();
            $(".adp-wraper-backshadow").show()
        };
        n._hide = function () {
            $("#adp-wraper-" + k).fadeOut();
            $("div.adp-wraper-backshadow").hide()
        };
        n._on = function (v, w) {
            $("#adp-wraper-" + k + " div ul").delegate("li", v, w)
        };
        function p(x) {
            if (typeof x == "string") {
                try {
                    var w = JSON.parse(x);
                    if (typeof w == "object" && w) {
                        return true
                    } else {
                        return false
                    }
                } catch (v) {
                    return false
                }
            }
        }
        function u(w) {
            var v = $("#" + t.id).offset().left - 10;
            var C = $("#" + t.id).offset().top + $("#" + t.id).height() + 5;
            if (t.isWithMouse) {
                var A = w || window.event;
                var B = document.documentElement.scrollLeft || document.body.scrollLeft;
                var z = document.documentElement.scrollTop || document.body.scrollTop;
                v = A.pageX || A.clientX + B;
                C = A.pageY || A.clientY + z
            }
            v += t.offsetX;
            C += t.offsetY;
            return {x: v, y: C}
        }
        function d() {
            var w = "";
            var y = $("head script");
            if (y.length > 0) {
                for (var A = 0; A < y.length; A++) {
                    if (y[A].src.indexOf("/js/address-picker.js") != -1) {
                        w = y[A].src.substring(0, y[A].src.indexOf("/js/address-picker.js"));
                        break
                    }
                }
            }
            if (w != "") {
                var v = document.querySelector(":root");
                v.style.setProperty("--theme-color", t.color);
                v.style.setProperty("--font-size", t.fontSize);
                var z = document.getElementsByTagName("head")[0];
                var x = document.createElement("script");
                var B = document.createElement("link");
                B.href = w + "/css/address-picker.css";
                B.rel = "stylesheet";
                B.type = "text/css";
                z.appendChild(B);
                if (t.data == "") {
                    if (t.level == 1 || t.level == 2) {
                        t.data = w + "/data/pc-code.json"
                    } else {
                        if (t.level == 4 || t.level == 5) {
                            t.data = w + "/data/pcas-code.json"
                        } else {
                            t.data = w + "/data/pca-code.json"
                        }
                    }
                }
            }
        }
        function i() {
            var v = true;
            if (q instanceof Object) {
                t = $.extend({}, j, q)
            } else {
                if (typeof (q) == "string") {
                    t.id = q
                } else {
                    v = false
                }
            }
            if (t.level > t.levelDesc.length) {
                t.levelDesc = j.levelDesc
            }
            if (t.color == "") {
                t.color = j.color
            }
            if (t.fontSize == "") {
                t.fontSize = j.fontSize
            }
            if (t.id == "" || t.id == undefined) {
                v = false
            } else {
                if ($("#" + t.id).length == 0) {
                    v = false
                }
            }
            if (t.isAsync && (typeof (t.asyncUrl) != "string" || t.asyncUrl == "")) {
                t.isAsync = j.isAsync
            }
            if (typeof (t.btnConfig) != "object" || t.btnConfig == null) {
                t.isShowBtn = false;
                t.btnConfig = j.btnConfig
            }
            return v
        }
        function s(y) {
            var w = $("#adp-wraper-" + k).children("div.ul-div").eq(y);
            var x = w.find("ul li");
            var v = Math.ceil(x.length / 5) * (c + 16) + 10;
            w.css("height", v > 65 ? v : 65 + "px")
        }
        function b() {
            var x, v = "";
            if (t.isShowBtn && (x = t.btnConfig).length > 0) {
                v = '<div class="adp-btn-area">';
                for (var w = 0; w < x.length; w++) {
                    v += '<div id="adp_btn_' + w + '" class="adp-btn">' + x[w].text + "</div>"
                }
                v += "</div>"
            }
            return v
        }
        function f(z, y) {
            var v = [];
            if (t.isAsync) {
                var x = "", w = "", A = 1;
                if (z == null) {
                    if ((typeof (l) != "undefined" && l != null)) {
                        return l
                    }
                } else {
                    x = z.value;
                    w = z.text ? z.text : z.text;
                    A = y
                }
                $.ajax({
                    data: {value: x, text: w, level: A}, url: t.asyncUrl, async: false, success: function (B) {
                        if (typeof (B) == "string" && p(B)) {
                            B = JSON.parse(B)
                        }
                        v = B;
                        if (z == null && typeof (l) == "undefined") {
                            l = B
                        }
                    }
                })
            }
            return v
        }
        n._init();
        return {
            on: n._on,
            show: n._show,
            hide: n._hide,
            refreshData: n._refreshData,
            getCurrentObject: n._getCurrentObject,
            getTotalValueAsArray: n._getTotalValueAsArray,
            getTotalValueAsText: n._getTotalValueAsText,
            clearSelectedData: n._clearSelectedData,
            setSelectedData: n._setSelectedData
        }
    };
    window.addressPicker = a
}());
WebContent/basic/js/carPersons.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,294 @@
window.I = {
    personModal:$("#personModal"),
    addPerson: $("#addPerson"),
    sxBtn: $("#sxBtn"),
    tempVehicleSaveBtn:$("#tempVehicleSaveBtn"),
    businessNo: $("#businessNo").val(),
    vehicleId: $("#vehicleId").val(),
}
var Obj = {
    id: null,
    businessNo: I.businessNo,
    vehicleId: I.vehicleId,
    userName: null,
    idCard: '',
    phone: '',
    province: '',
    city: '',
    area: '',
    street: '',
    provinceCityArea: '',
}
// æ˜ŸæœŸä¸€å¾…做 1: åŸŽå¸‚选择器 2、验证数据  3、配车后提示人员添加-车辆任务人员添加  4、发卡页面添加人员 5、做一个统一查询页面 6、业务单页面弹出展示
var ViewModel = function() {
    var self = this;
    self.list = ko.observableArray();
    self.o = ko.observable(ko.mapping.fromJS(Obj));
    self.toAddPersons  = function () {
        var o = ko.mapping.fromJS(Obj)
        vm.o(o)
        I.personModal.modal("show");
    }
    self.showPerson  = function (item) {
        getById(item);
    }
    self.delPerson  = function (item) {
        delPerson(item);
    }
}
$(function () {
    window.vm = new ViewModel();
    ko.applyBindings(vm);
    autoHeight();
    getVehiclePersonList();
    pageInit();
});
function isIdCardNo(value) {
 return  /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(value);
}
function  pageInit() {
    jQuery.validator.addMethod("isIdCardNo", function (value, element){
        return this.optional(element) || isIdCardNo(value);
    },"请正确输入您的身份证号码");
    I.tempVehicleSaveBtn.on("click",function (e){
        e.preventDefault();
        if (valid()) {
            var o = ko.mapping.toJS(vm.o());
            if (o.id) update(o);
            else add(o);
        }
    })
    I.sxBtn.on("click",function(e){
        getVehiclePersonList();
        let $this =  $(this)
        $this.attr("disabled","");
        setTimeout(function (){ $this.removeAttr("disabled")},5000);
    })
    window.address_picker = new addressPicker({
        id: "city", level: 3, data: cityData3,
        btnConfig: [{
            text: '清除数据', click: function () {
                address_picker.clearSelectedData();
                $("#city").val('');
            }
        }]
        });
    address_picker.on("click",function () {
        var obj = address_picker.getCurrentObject();
        if(obj.level === 3) {
            var val = address_picker.getTotalValueAsText();
            $("#city").val(val);
            setProvinceCityArea(val);
        }
    })
    I.personModal.on('hidden.bs.modal', function (e) {
        $("#city").val('');
        clearError();
    });
    $("#city").on("click",function(event){
        var display = $(".adp-wraper").css("display");
        setTimeout(function () {
                $(document).one("click",
                    function () {
                        // $(".adp-wraper").hide();
                        address_picker.hide();
                    });
        },300);
        event.stopPropagation(); //阻止事件向上冒泡
    })
}
function setProvinceCityArea(val){
    if(!val || val.trim()=='')  {
        vm.o().province('');
        vm.o().city('');
        vm.o().area('');
        return;
    }
    var arr = val.split("/")
    for(var i=0,len=arr.length;i<len;i++) {
        if(i==0) vm.o().province(arr[i].trim());
        if(i==1) vm.o().city(arr[i].trim());
        if(i==2) vm.o().area(arr[i].trim());
    }
}
function getVehiclePersonList () {
    $.post("/businessVehiclePerson/list.htm", {vehicleId: I.vehicleId, businessNo: I.businessNo},
        function (data, textStatus, jqXHR) {
            if (data.code >= 1) {
                swal({title: '', text: data.errmsg, type: 'error', confirmButtonText: '确定'});
                return;
            }
            if (data.code == 0) {
                vm.list.removeAll()
                data.list.forEach(l=>{
                    l.provinceCityArea = l.province + l.city + l.area + " " + l.street
                });
                if(isList(data.list))  vm.list.push(...data.list);
            }
        })
}
function  getById(item){
    $.post("/businessVehiclePerson/get.htm", {id: item.id},
        function (data, textStatus, jqXHR) {
            if (data.code >= 1) {
                swal({title: '', text: data.errmsg, type: 'error', confirmButtonText: '确定'});
                return;
            }
            if (data.code == 0) {
                I.personModal.modal("show");
                var item = data.item;
                $("#city").val(item.province + " / " + item.city + " / " + item.area)
                var arr = getProvinceCityArea(item.province,item.city,item.area);
                address_picker.setSelectedData(arr);
                console.log(arr)
                var  newItem = ko.mapping.fromJS(item)
                vm.o(newItem);
                getVehiclePersonList();
            }
        })
}
function delPerson(item) {
    swal({
        title: "是否确认删除?", text: "",  type: "warning",
        showCancelButton: true,
        confirmButtonColor: "#1c84c6",
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        closeOnConfirm: true,
        closeOnCancel: true,
    }, function (isConfirm) {
        if (isConfirm) {
            $.post("/businessVehiclePerson/del.htm", {id: item.id},
                function (data, textStatus, jqXHR) {
                    if (data.code >= 1) {
                        swal({title: '', text: data.errmsg, type: 'error', confirmButtonText: '确定'});
                        return;
                    }
                    if (data.code == 0) {
                        parent.showErrmsg("删除成功!");
                        getVehiclePersonList();
                    }
                })
        }
    });
}
function update() {
    var o = ko.mapping.toJS(vm.o());
    $.post("/businessVehiclePerson/update.htm", o,
        function (data, textStatus, jqXHR) {
            if (data.code >= 1) {
                swal({title: '', text: data.errmsg, type: 'error', confirmButtonText: '确定'});
                return;
            }
            if (data.code == 0) {
                parent.showErrmsg("更新成功!");
                I.personModal.modal("hide");
                getVehiclePersonList();
            }
        })
}
function getProvinceCityArea(province,city,area){
    let array = []
    cityData3.forEach(({text,value,children}) =>{
        if(text === province) { array[0] = value;
            children.forEach(({text,value,children}) => {
                if(text === city) { array[1] = value;
                    children.forEach(({text,value}) => {
                        if(text === area) { array[2] = value;}
                    });
                }
            });
        }
    })
    return array;
}
function add(item) {
    $.post("/businessVehiclePerson/add.htm", item,
        function (data, textStatus, jqXHR) {
            if (data.code >= 1) {
                swal({title: '', text: data.errmsg, type: 'error', confirmButtonText: '确定'});
                return;
            }
            if (data.code == 0) {
                parent.showErrmsg("新增成功!");
                I.personModal.modal("hide");
                getVehiclePersonList();
            }
        })
}
function valid(){
    var isValid = false;
    var iF = $('#form');
    iF.validate({
        rules: {
            'userName': {
                required: true,
               // isPlateNumber: true
            },
            'idCard': {
                required: true,
                isIdCardNo: true,
            },
            'dataPhone': {
                required: true,
                isPhone: true
            },
            'street': {
                required: true,
            },
            'city': {
                required: true,
            }
        },
        messages: {
            'userName': {
                required: '不能为空!',
            },
            'idCard': {
                required: '不能为空!',
                isIdCardNo: '身份证号码不正确'
            },
            'dataPhone': {
                required: '不能为空!',
                isPhone: '手机号不正确!'
            },
            'street': {
                required: '不能为空!',
            },
            'city': {
                required: '不能为空!',
            }
        },
        errorPlacement: function (err, element) {
            var p = element.parents('.form-group').eq(0);
            var d = p.find('.text-error').eq(0);
            d.css('color', '#D9534F');
            err.appendTo(d);
        }
    })
    isValid = iF.valid();
    return isValid;
}
function clearError() {
    $('#form input').removeClass('error');
    $('#form .text-error').html('');
}
function autoHeight() {
    $('.page-content').css('min-height', $(parent.window).height() - 117);
    $('.table-responsive').css('height', $(parent.window).height() - 275);
    $('.split').css('left', $('.table-vehicleId').width() + 12);
}
WebContent/basic/js/city.data-3.js
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
WebContent/basic/js/formSplit.js
@@ -14,7 +14,9 @@
// var data_doDel = Mock.mock('/transport/yscompany/del.htm', {code: 0, errmsg: 'errmsg'})
// var data_doSave = Mock.mock('/transport/yscompany/save.htm', {code: 0, errmsg: 'errmsg'})
//test data end
/*
 * é…è½¦æˆåŠŸ ---- éœ€è¦æ·»åŠ éšè¡Œäººå‘˜ ---- æ˜¯å¦ç«‹å³æ·»åŠ  éšè¡Œäººå‘˜     ----- ç¡®å®š   --- è·³è½¬åˆ°æ·»åŠ é¡µé¢ï¼ˆç»‘定车辆、业务单、人员关系)   ---车辆任务页面也可以添加或修改(绑定车辆、业务单、人员关系)
*/
var SORT = [
    {key: '批次号', value: 'tdmx_fdcph', visible: ko.observable(true)}, 
    {key: '规格型号', value: 'tdmx_ggxh', visible: ko.observable(true)},
@@ -48,7 +50,9 @@
    modal: $('#modal'),
    clearSortBtn: $('#clearSortBtn'),
    ssortBtn:$('#searchSortBtn'),
    sxBtn:$('#sxBtn')
    sxBtn:$('#sxBtn'),
    personModal:$("#personModal"),
    addPerson: $("#addPerson")
}
var Obj = {
@@ -170,6 +174,13 @@
        vm.o(ko.mapping.fromJS(Obj));
        I.tempVehicleModal.modal('show');
    });
    // I.addPerson.click(function (e) {
    //     e.preventDefault();
    //     // vm.o(ko.mapping.fromJS(Obj));
    //     // I.personModal.modal('show');
    //     var item = {businessNo:'XS202203060079',vehicleId: '沪EJ3876'}
    //     addPersonTab(item);
    // });
    I.tempVehicleModal.on('hidden.bs.modal', function (e) {
        clearError();
    });
@@ -484,7 +495,10 @@
                //         }
                //     });
                // });
                // é…è½¦
                updateNum();
                var item = {businessNo: data.item.businessNo, vehicleId: vehicle.vehicleId}
                confirmAddCarPersonTab(item);
                getVehicleList();
                return;
            }
@@ -492,6 +506,31 @@
        "json"
    );
}
function confirmAddCarPersonTab(item) {
    swal({
        title: "是否需要添加随车人员?", text: "如果不添加或需要修改,请到车辆任务详情处操作。",  type: "warning",
        showCancelButton: true,
        confirmButtonColor: "#1c84c6",
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        closeOnConfirm: true,
        closeOnCancel: true,
    }, function (isConfirm) {
        if (isConfirm) {
            addPersonTab(item)
        }
    });
}
function addPersonTab(item){
    var businessNo = item.businessNo
    var vehicleId = item.vehicleId
    parent.closableTab.addTab({
        'id':  "carPersons-" + businessNo + "-" + vehicleId,
        'name':  '添加随行人员',
        'url': '/basic/carPersons.jsf?businessNo=' + businessNo + '&vehicleId=' + vehicleId,
        'closable': true
    });
}
function doUnbind() {
    if (!!I.AjaxdoUnbind) {
WebContent/basic/js/vehicleBindMaterials.js
@@ -16,6 +16,7 @@
    bsNo: $('#_bsNo').val(),
    printBtn: $('#printBtn'),
    detailModal:  $("#modal"),
    addCarPersons: $("#addCarPersons")
var ViewModel = function() {
@@ -58,6 +59,18 @@
        e.preventDefault();
        I.detailModal.modal('hide');
    })
    I.addCarPersons.click(function (e) {
        e.preventDefault();
        var item = {businessNo: I.bsNo,vehicleId: I.numberplates}
        console.log("item",item);
        parent.closableTab.addTab({
            'id':  "carPersons-" + item.businessNo + "-" + item.vehicleId,
            'name':  '添加随行人员',
            'url': '/basic/carPersons.jsf?businessNo=' + item.businessNo + '&vehicleId=' + item.vehicleId,
            'closable': true
        });
    })
    getRemarkDetail();
}
function saveRemark() {
WebContent/basic/vehicleBindMaterials.xhtml
@@ -69,10 +69,13 @@
                    æ–°è¿è¾“公司
                </button>
            </div> -->
            <div class="col-xs-10">
            <div class="col-xs-9">
                <h3 style="margin: 0"><span data-bind="text: decodeURI('#{param.numberplates}')"></span>的已配车物资,总数量:<span data-bind="text: list().length"></span>,总毛重:<span data-bind="text: totalMZ"></span>,总净重:<span data-bind="text: totalJZ"></span>,载重:<span data-bind="text: vehicleLoadweight"></span>,超重:<span data-bind="text: (totalMZ() - vehicleLoadweight()) > 0 ? (totalMZ() - vehicleLoadweight()) : 0"></span>。</h3>
            </div>
            <div class="col-xs-2" style="text-align: right;">
            <div class="col-xs-3" style="text-align: right;">
                <button class="btn btn-sm btn-info" type="button" id="addCarPersons">
                    <i class="ace-icon fa fa-plus center bigger-110"></i>  æ·»åŠ éšè¡Œäººå‘˜
                </button>
                <button class="btn btn-sm btn-info" type="button" id="remark" data-bind="click:addRemark">
                    å¤‡æ³¨
                </button>
@@ -177,7 +180,7 @@
        </div>
    </ui:define>
    <ui:define name="myscript">
        <script src="js/vehicleBindMaterials.js?v=11222222321"></script>
        <script src="js/vehicleBindMaterials.js?v=12321"></script>
    </ui:define>
</ui:composition>
</html>
WebContent/css/address-picker.css
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
:root{--theme-color:#56b4f8;--font-size:14px}div.adp-wraper{display:none;position:absolute;width:450px;height:auto;min-height:60px;font-size:15px;border-radius:3px;border:1px solid var(--theme-color);padding:0 0 5px 0;/*box-shadow:0 0 20px #eee;*/background-color:#fcfcfc}div.adp-wraper p{width:450px;height:37px;line-height:37px;border-bottom:2px solid var(--theme-color);margin:0 0 0 -1px;cursor:pointer}div.adp-wraper p span{color:#666;display:inline-block;width:90px;text-align:center;height:34px;line-height:34px;font-size:var(--font-size)}div.adp-wraper p .adp-avtive{background:var(--theme-color);color:white}div.adp-wraper>div.ul-div{padding:0 5px 0 5px;min-height:60px;display:none}div.adp-wraper div ul{width:100%;margin:0;height:100%;min-height:60px;text-align:center;padding:5px 0 0 0;list-style:none}div.adp-wraper div ul li{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:20%;padding:8px 0;border-radius:3px;cursor:pointer;color:#666;text-align:center;float:left;transition:.3s;font-size:var(--font-size)}div.adp-wraper div ul li:hover{color:#fff;background:var(--theme-color)}div.adp-wraper .adp-active{background:var(--theme-color);color:#fff !important}div.adp-wraper .adp-head-active{position:absolute;background-color:var(--theme-color);width:20%;height:35px;transition:.3s;border-radius:3px;color:#fff;font-size:var(--font-size);text-align:center;line-height:34px}div.adp-wraper .adp-empty-text{margin-top:15px;display:inline-block;color:#666;font-size:var(--font-size)}div.adp-wraper div.adp-btn-area{height:30px;width:100%;text-align:center;clear:both;}div.adp-wraper div.adp-btn{display:inline-block;margin-right:2px;cursor:pointer;font-family:Microsoft YaHei;font-size:var(--font-size);outline:0;width:18%;height:30px;line-height:30px;border-radius:2px;border:1px solid var(--theme-color);color:#fff;background-color:var(--theme-color)}div.adp-wraper div.adp-btn:hover{box-shadow:0 0 10px #eee;color:#fbfbfb}div.adp-wraper-backshadow{background:#ddd;opacity:.3;top:0;left:0;display:none;position:absolute;width:100%;height:100%}
WebContent/css/address-picker.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,546 @@
(function () {
    Number.prototype.toPercent = function () {
        return (Math.round(this * 10000) / 100).toFixed(2) + "%"
    };
    var a = function (q) {
        if (!(this instanceof a)) {
            return new a(q)
        }
        var n = this;
        var h = {};
        var r = [];
        var g = {};
        var o;
        var e = [];
        var k = new Date().getTime();
        var j = {
            id: "",
            level: 3,
            levelDesc: ["省份", "城市", "区县"],
            index: "99999999999999999999",
            separator: " / ",
            isInitClick: true,
            isWithMouse: false,
            offsetX: 0,
            offsetY: 0,
            emptyText: "暂无数据",
            color: "#56b4f8",
            fontSize: "14px",
            isAsync: false,
            asyncUrl: "",
            isShowBtn: true,
            btnConfig: [],
            data: ""
        };
        var t = j;
        var l;
        var c = 20;
        var m = true;
        n._init = function () {
            if (!i()) {
                return
            }
            d();
            var x = '<div id="adp-wraper-' + k + '" class="adp-wraper" style="z-index: ' + t.index + '"><p>';
            var v = '<div class="ul-div" style="display: block"><ul></ul></div>';
            x += '<span class="adp-head-active">' + t.levelDesc[0] + "</span><span>" + t.levelDesc[0] + "</span>";
            for (var w = 1; w < t.level; w++) {
                x += "<span>" + t.levelDesc[w] + "</span>";
                v += '<div class="ul-div"><ul><span class="adp-empty-text">' + t.emptyText + "</span></ul></div>"
            }
            x += "</p>";
            var y = b();
           // $("body").append(x + v + y + '</div><div class="adp-wraper-backshadow" style="z-index: ' + (t.index - 1) + '"></div>');
            $("body").append(x + v + y + '</div>');
            if (t.isAsync) {
                o = f(null);
                n._initFirstLevelData()
            } else {
                if (typeof t.data == "string" && !p(t.data)) {
                    $.ajax({
                        url: t.data, async: false, success: function (z) {
                            o = z;
                            n._getEachLevelData(0, t.level, o);
                            n._initFirstLevelData()
                        }
                    })
                } else {
                    o = t.data;
                    if (typeof t.data == "string") {
                        o = JSON.parse(o)
                    }
                    n._getEachLevelData(0, t.level, o);
                    n._initFirstLevelData()
                }
            }
            n._bindEvent()
        };
        n._getEachLevelData = function (w, B, y) {
            var A = [];
            var z = [];
            if (w >= B) {
                return
            }
            for (var x = 0; x < y.length; x++) {
                A.push(y[x]);
                if (w == B - 1) {
                    continue
                }
                if (y[x].children == undefined) {
                    continue
                }
                for (var v = 0; v < y[x].children.length; v++) {
                    z.push(y[x].children[v])
                }
            }
            if (z.length == 0) {
                return
            }
            h["data_level_" + w] = A;
            n._getEachLevelData(w + 1, B, z)
        };
        n._initFirstLevelData = function () {
            for (var w = 0; w < t.level; w++) {
                $("#adp-wraper-" + k).children("div").eq(w).children("ul").empty();
                $("#adp-wraper-" + k).children("div").eq(w).children("ul").append('<span class="adp-empty-text">' + t.emptyText + "</span>")
            }
            if (o.length > 0) {
                $("#adp-wraper-" + k).children("div").eq(0).children("ul").empty()
            }
            for (var w = 0; w < o.length; w++) {
                var v = '<li data-code="' + o[w].value + '" title="' + o[w].text + '">' + o[w].text + "</li>";
                $("#adp-wraper-" + k).children("div").eq(0).children("ul").append(v)
            }
            var y = $("#adp-wraper-" + k).children("p").children("span").eq(1).text();
            var x = $("#adp-wraper-" + k).children("p").children("span.adp-head-active");
            x.css("left", "-1px");
            x.text(y);
            $("#adp-wraper-" + k).children("div.ul-div").eq(0).show().siblings("div.ul-div").hide();
            if (t.isShowBtn) {
                s(0)
            }
        };
        n._bindEvent = function () {
            $("#adp-wraper-" + k + " div ul").delegate("li", "click", function () {
                var z = $(this).parent().parent().index();
                g.value = $(this).data("code");
                g.text = $(this).text();
                g.level = z;
                r[z - 1] = $(this).data("code");
                e[z - 1] = $(this).text();
                r.splice(z, r.length - z);
                e.splice(z, e.length - z);
                var G = $("#adp-wraper-" + k).children("div").length;
                G = G -1
                // console.log(z,G,z>G)
                if (z < G) {
                    for (var F = z; F < t.level; F++) {
                        $("#adp-wraper-" + k).children("div.ul-div").eq(F).children("ul").empty().append('<span class="adp-empty-text">' + t.emptyText + "</span>")
                    }
                    $("#adp-wraper-" + k).children("div.ul-div").eq(z).children("ul").empty();
                    var x = t.isAsync ? f(g, z) : o;
                    if (z > 1 && !t.isAsync) {
                        x = h["data_level_" + (z - 1)]
                    }
                    if (x != undefined) {
                        for (var C = 0; C < x.length; C++) {
                            var y = x[C];
                            if (t.isAsync) {
                                var E = '<li data-code="' + y.value + '" title="' + y.text + '">' + y.text + "</li>";
                                $("#adp-wraper-" + k).children("div").eq(z).children("ul").append(E)
                            } else {
                                if (y.text == $(this).text() && y.value == $(this).data("code")) {
                                    if (y.children != null && y.children.length > 0) {
                                        for (var B = 0; B < y.children.length; B++) {
                                            var A = y.children[B];
                                            var E = '<li data-code="' + A.value + '" title="' + A.text + '">' + A.text + "</li>";
                                            $("#adp-wraper-" + k).children("div.ul-div").eq(z).children("ul").append(E)
                                        }
                                    } else {
                                        $("#adp-wraper-" + k).children("div.ul-div").eq(z).children("ul").append('<span class="adp-empty-text">' + t.emptyText + "</span>")
                                    }
                                    break
                                }
                            }
                        }
                        if (t.isShowBtn) {
                            s(z)
                        }
                    } else {
                        $("#adp-wraper-" + k).children("div.ul-div").eq(z).children("ul").append('<span class="adp-empty-text">' + t.emptyText + "</span>")
                    }
                    $(this).addClass("adp-active").siblings().removeClass("adp-active");
                    var D = $("#adp-wraper-" + k).children("p").children("span").eq(z + 1).text();
                    var H = $("#adp-wraper-" + k).children("p").children("span.adp-head-active");
                    H.css("left", (0.2 * (z)).toPercent());
                    $(this).parent().parent().next().show().siblings("div.ul-div").hide();
                    setTimeout(function () {
                        H.text(D)
                    }, 200)
                } else {
                    $(this).addClass("adp-active").siblings().removeClass("adp-active");
                    $("#adp-wraper-" + k).fadeOut();
                    $("div.adp-wraper-backshadow").hide()
                }
            });
            $("#adp-wraper-" + k + " p span").click(function () {
                if ($(this).hasClass("adp-head-active")) {
                    return
                }
                var x = $(this).index() - 1;
                var z = $(this).text();
                var y = $("#adp-wraper-" + k).children("p").children("span.adp-head-active");
                y.css("left", x == 0 ? -1 : (0.2 * x).toPercent());
                setTimeout(function () {
                    y.text(z)
                }, 200);
                $("#adp-wraper-" + k).children("div").eq(x).show().siblings("div.ul-div").hide()
            });
            $("div.adp-wraper-backshadow").on("click", function () {
                $("div.adp-wraper-backshadow").hide();
                $("#adp-wraper-" + k).fadeOut()
            });
            $("#adp-wraper-" + k).click(function(event) {
                $(document).one("click",
                    function() { //对document绑定一个影藏Div方法
                        $("#adp-wraper-" + k).hide();
                    });
                event.stopPropagation(); //阻止事件向上冒泡
            });
            if (t.isInitClick) {
                $("#" + t.id).on("click", function () {
                    var y = u(event);
                    var x = $("#adp-wraper-" + k + " div.ul-div").eq(0);
                    $("#adp-wraper-" + k).css("left", y.x);
                    $("#adp-wraper-" + k).css("top", y.y);
                    $("#adp-wraper-" + k).fadeIn();
                    if ((g.level == undefined || m) && t.isShowBtn) {
                        if (x.children("ul").children("li").height() != 0) {
                            c = x.children("ul").children("li").height()
                        }
                        s(0);
                        m = false
                    }
                    $(".adp-wraper-backshadow").show()
                })
            }
            if (t.isShowBtn) {
                var w = t.btnConfig;
                for (var v = 0; v < w.length; v++) {
                    if (typeof (w[v].click) == "function") {
                        $("#adp_btn_" + v).on("click", w[v].click)
                    }
                }
            }
        };
        n._clearSelectedData = function () {
            r = [];
            e = [];
            g = {};
            var x = $("#adp-wraper-" + k).children("p").children("span.adp-head-active");
            x.css("left", "-1px");
            setTimeout(function () {
                x.text(t.levelDesc[0])
            }, 200);
            for (var w = 1; w < t.level; w++) {
                $("#adp-wraper-" + k).children("div.ul-div").eq(w).children("ul").empty().append('<span class="adp-empty-text">' + t.emptyText + "</span>");
                if (t.isShowBtn) {
                    s(w)
                }
            }
            var v;
            if ((v = $("#adp-wraper-" + k).children("div.ul-div").eq(0).children("ul").children("li.adp-active")).length > 0) {
                v.removeClass("adp-active")
            }
            $("#adp-wraper-" + k).children("div").eq(0).show().siblings("div.ul-div").hide()
        };
        n._setSelectedData = function (E) {
            if (typeof (E) != "object" || E == null) {
                return
            }
            if (E.length > t.level || E.length == 0) {
                return
            }
            var v = t.isAsync ? f(null) : o;
            if (typeof (v) != "object" || v == null) {
                return
            }
            var x, G, H, K, I, J = "", D = false, C;
            H = $("#adp-wraper-" + k).children("div.ul-div").eq(0).children("ul");
            for (var z = 0; z < (K = H.children("li")).length; z++) {
                x = v[z];
                if (x.value == E[0]) {
                    g.value = x.value;
                    g.text = x.text;
                    g.level = 1;
                    r[0] = x.value;
                    e[0] = x.text;
                    r.splice(1, r.length - 1);
                    e.splice(1, e.length - 1);
                    G = x;
                    C = 0;
                    D = true;
                    H.children("li").removeClass("adp-active");
                    $(K[z]).addClass("adp-active");
                    continue
                }
            }
            if (!D) {
                return
            }
            for (var B = 1; B < E.length; B++) {
                if (E[B] == null || E[B] == "") {
                    break
                }
                var w = t.isAsync ? f(G, g.level) : G.children;
                if (typeof (w) != "object" || w == null) {
                    break
                }
                J = "";
                D = false;
                G = {};
                for (var A = 0; A < w.length; A++) {
                    if (w[A].value == E[B]) {
                        J += '<li data-code="' + w[A].value + '" title="' + w[A].text + '" class="adp-active">' + w[A].text + "</li>";
                        g.value = w[A].value;
                        g.text = w[A].text;
                        g.level = (B + 1);
                        r[B] = w[A].value;
                        e[B] = w[A].text;
                        r.splice(B + 1, r.length - B - 1);
                        e.splice(B + 1, e.length - B - 1);
                        G = w[A];
                        D = true;
                        C = B;
                        continue
                    }
                    J += '<li data-code="' + w[A].value + '" title="' + w[A].text + '">' + w[A].text + "</li>"
                }
                if (!D) {
                    break
                }
                $("#adp-wraper-" + k).children("div.ul-div").eq(B).children("ul").empty().append(J);
                if (t.isShowBtn) {
                    s(B)
                }
            }
            if (typeof (C) == "number") {
                $("#adp-wraper-" + k).children("div.ul-div").eq(C).show().siblings("div.ul-div").hide();
                var F = $("#adp-wraper-" + k).children("p").children("span").eq(C + 1).text();
                var L = $("#adp-wraper-" + k).children("p").children("span.adp-head-active");
                L.css("left", (0.2 * (C)).toPercent());
                setTimeout(function () {
                    L.text(F)
                }, 200);
                for (var y = C + 1; y < t.level; y++) {
                    $("#adp-wraper-" + k).children("div.ul-div").eq(y).children("ul").empty().append('<span class="adp-empty-text">' + t.emptyText + "</span>");
                    if (t.isShowBtn) {
                        s(y)
                    }
                }
            }
        };
        n._refreshData = function (v) {
            if (typeof v == "string" && p(v)) {
                v = JSON.parse(v)
            }
            o = v;
            if (o.length > 0) {
                n._getEachLevelData(0, t.level, o)
            }
            n._initFirstLevelData()
        };
        n._getTotalValueAsArray = function () {
            return {value: r, text: e}
        };
        n._getTotalValueAsText = function () {
            var w = "";
            for (var v = 0; v < g.level; v++) {
                w += (v < g.level - 1 ? e[v] + t.separator : e[v])
            }
            return w
        };
        n._getCurrentObject = function () {
            return g
        };
        n._show = function () {
            var v = u(event);
            $("#adp-wraper-" + k).css("left", v.x);
            $("#adp-wraper-" + k).css("top", v.y);
            $("#adp-wraper-" + k).fadeIn();
            $(".adp-wraper-backshadow").show()
        };
        n._hide = function () {
            $("#adp-wraper-" + k).fadeOut();
            $("div.adp-wraper-backshadow").hide()
        };
        n._on = function (v, w) {
            $("#adp-wraper-" + k + " div ul").delegate("li", v, w)
        };
        function p(x) {
            if (typeof x == "string") {
                try {
                    var w = JSON.parse(x);
                    if (typeof w == "object" && w) {
                        return true
                    } else {
                        return false
                    }
                } catch (v) {
                    return false
                }
            }
        }
        function u(w) {
            var v = $("#" + t.id).offset().left - 10;
            var C = $("#" + t.id).offset().top + $("#" + t.id).height() + 5;
            if (t.isWithMouse) {
                var A = w || window.event;
                var B = document.documentElement.scrollLeft || document.body.scrollLeft;
                var z = document.documentElement.scrollTop || document.body.scrollTop;
                v = A.pageX || A.clientX + B;
                C = A.pageY || A.clientY + z
            }
            v += t.offsetX;
            C += t.offsetY;
            return {x: v, y: C}
        }
        function d() {
            var w = "";
            var y = $("head script");
            if (y.length > 0) {
                for (var A = 0; A < y.length; A++) {
                    if (y[A].src.indexOf("/js/address-picker.js") != -1) {
                        w = y[A].src.substring(0, y[A].src.indexOf("/js/address-picker.js"));
                        break
                    }
                }
            }
            if (w != "") {
                var v = document.querySelector(":root");
                v.style.setProperty("--theme-color", t.color);
                v.style.setProperty("--font-size", t.fontSize);
                var z = document.getElementsByTagName("head")[0];
                var x = document.createElement("script");
                var B = document.createElement("link");
                B.href = w + "/css/address-picker.css";
                B.rel = "stylesheet";
                B.type = "text/css";
                z.appendChild(B);
                if (t.data == "") {
                    if (t.level == 1 || t.level == 2) {
                        t.data = w + "/data/pc-code.json"
                    } else {
                        if (t.level == 4 || t.level == 5) {
                            t.data = w + "/data/pcas-code.json"
                        } else {
                            t.data = w + "/data/pca-code.json"
                        }
                    }
                }
            }
        }
        function i() {
            var v = true;
            if (q instanceof Object) {
                t = $.extend({}, j, q)
            } else {
                if (typeof (q) == "string") {
                    t.id = q
                } else {
                    v = false
                }
            }
            if (t.level > t.levelDesc.length) {
                t.levelDesc = j.levelDesc
            }
            if (t.color == "") {
                t.color = j.color
            }
            if (t.fontSize == "") {
                t.fontSize = j.fontSize
            }
            if (t.id == "" || t.id == undefined) {
                v = false
            } else {
                if ($("#" + t.id).length == 0) {
                    v = false
                }
            }
            if (t.isAsync && (typeof (t.asyncUrl) != "string" || t.asyncUrl == "")) {
                t.isAsync = j.isAsync
            }
            if (typeof (t.btnConfig) != "object" || t.btnConfig == null) {
                t.isShowBtn = false;
                t.btnConfig = j.btnConfig
            }
            return v
        }
        function s(y) {
            var w = $("#adp-wraper-" + k).children("div.ul-div").eq(y);
            var x = w.find("ul li");
            var v = Math.ceil(x.length / 5) * (c + 16) + 10;
            w.css("height", v > 65 ? v : 65 + "px")
        }
        function b() {
            var x, v = "";
            if (t.isShowBtn && (x = t.btnConfig).length > 0) {
                v = '<div class="adp-btn-area">';
                for (var w = 0; w < x.length; w++) {
                    v += '<div id="adp_btn_' + w + '" class="adp-btn">' + x[w].text + "</div>"
                }
                v += "</div>"
            }
            return v
        }
        function f(z, y) {
            var v = [];
            if (t.isAsync) {
                var x = "", w = "", A = 1;
                if (z == null) {
                    if ((typeof (l) != "undefined" && l != null)) {
                        return l
                    }
                } else {
                    x = z.value;
                    w = z.text ? z.text : z.text;
                    A = y
                }
                $.ajax({
                    data: {value: x, text: w, level: A}, url: t.asyncUrl, async: false, success: function (B) {
                        if (typeof (B) == "string" && p(B)) {
                            B = JSON.parse(B)
                        }
                        v = B;
                        if (z == null && typeof (l) == "undefined") {
                            l = B
                        }
                    }
                })
            }
            return v
        }
        n._init();
        return {
            on: n._on,
            show: n._show,
            hide: n._hide,
            refreshData: n._refreshData,
            getCurrentObject: n._getCurrentObject,
            getTotalValueAsArray: n._getTotalValueAsArray,
            getTotalValueAsText: n._getTotalValueAsText,
            clearSelectedData: n._clearSelectedData,
            setSelectedData: n._setSelectedData
        }
    };
    window.addressPicker = a
}());
WebContent/template/nit/tmp_brief.xhtml
@@ -87,6 +87,7 @@
        <ui:insert name="title">
            <title>河南明泰分单配车管理系统</title>
        </ui:insert>
        <ui:insert name="link"/>
        <ui:insert name="acss"></ui:insert>
    </h:head>
    <h:body class="no-skin">