$(function () { $("#jqGrid").Grid({ url: '../sys/region/list', rownumWidth:60, colModel: [ {label: 'id', name: 'id', index: 'id', key: true, hidden: true}, {label: '上级区域', name: 'parentName', index: 'parent_id', width: 180}, {label: '区域', name: 'name', index: 'name', width: 80}, { label: '类型', name: 'type', index: 'type', width: 80, formatter: function (value) { if (value === '0' || value === 0) { return '国家'; } if (value == '1') { return '省份'; } if (value == '2') { return '地市'; } if (value == '3') { return '区县'; } if (value == '4') { return '街道'; } } }] }); }); var vm = new Vue({ el: '#rrapp', data: { showList: true, title: null, region: {type: '1'}, ruleValidate: { name: [ {required: true, message: '区域名称不能为空', trigger: 'blur'} ] }, q: { parentName: '', name: '', type: '' }, regionList: [] }, methods: { query: function () { vm.reload(); }, add: function () { vm.showList = false; vm.title = "新增"; vm.region = {type: '1'}; vm.changeType(1); }, update: function (event) { var id = getSelectedRow("#jqGrid"); if (id == null) { return; } vm.showList = false; vm.title = "修改"; vm.getInfo(id) }, saveOrUpdate: function (event) { var url = vm.region.id == null ? "../sys/region/save" : "../sys/region/update"; Ajax.request({ type: 'POST', url: url, params: JSON.stringify(vm.region), contentType: "application/json", successCallback: function () { alert('操作成功', function (index) { vm.reload(); }); } }); }, del: function (event) { var ids = getSelectedRows("#jqGrid"); if (ids == null) { return; } confirm('确定要删除选中的记录?', function () { Ajax.request({ url: "../sys/region/delete", params: JSON.stringify(ids), contentType: "application/json", type: 'POST', successCallback: function () { alert('操作成功', function (index) { vm.reload(); }); } }); }); }, getInfo: function (id) { Ajax.request({ url: "../sys/region/info/" + id, async: true, successCallback: function (r) { vm.region = r.region; vm.changeType(vm.region.type); } }); }, changeType: function (type) { Ajax.request({ url: "../sys/region/getAreaByType?type=" + type, async: true, successCallback: function (r) { vm.regionList = r.list; } }); }, reload: function (event) { vm.showList = true; var page = $("#jqGrid").jqGrid('getGridParam', 'page'); $("#jqGrid").jqGrid('setGridParam', { postData: { 'name': vm.q.name, 'parentName': vm.q.parentName, 'type': vm.q.type }, page: page }).trigger("reloadGrid"); vm.handleReset('formValidate'); }, handleSubmit: function (name) { handleSubmitValidate(this, name, function () { vm.saveOrUpdate() }); }, handleReset: function (name) { handleResetForm(this, name); } } });