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= 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); }