blob: 00041002ccf286079a44e158d3898ee71736e5d6 [file] [log] [blame]
<div class="layui-card">
<div class="layui-card-header">
<h2 class="header-title">区域管理</h2>
<span class="layui-breadcrumb pull-right">
<a href="#">集控中心</a>
<a><cite>区域管理</cite></a>
</span>
</div>
<div class="layui-card-body">
<div id="regionapp">
<el-form :inline="true" ref="regionform" :model="regionform" data-parsley-validate class="form-horizontal form-label-left">
<div class="col-md-4">
<div class="form-group">
<label class="control-label col-md-4 col-sm-12 col-xs-12" style="font-size: 14px;">区域名称:</span>
</label>
<div class="col-md-8 col-sm-12 col-xs-12">
<el-input v-model="regionform.regionname" id="regionname"></el-input>
</div>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<button type="button" class="btn btn-info" @click="query" id="qrybtn">查 询</button>
<button class="btn btn-primary" type="button" @click="addRegion">添加区域</button>
<!--<button class="btn btn-info" type="button" @click="lookTree">查看区域树形图</button>-->
</div>
</div>
</el-form>
<template>
<el-table
ref="singletable"
:data="tableData"
highlight-current-row
@current-change="currRowChange"
stripe
max-height="2000"
border
style="width: 100%">
<el-table-column
prop="regionid"
label="区域编号"
width="140">
</el-table-column>
<el-table-column
prop="regionname"
label="区域名称"
width="180">
</el-table-column>
<el-table-column
prop="level"
label="区域级别"
sortable
:formatter="levelform"
width="120">
</el-table-column>
<el-table-column
prop="parentname"
label="父区域"
width="180">
</el-table-column>
<el-table-column
prop="address"
label="详细地址"
width="200">
</el-table-column>
<el-table-column
prop="remarks"
label="备注"
width="180">
</el-table-column>
<el-table-column
label="操作"
width="130">
<template scope="scope">
<button type="button" class="btn btn-info btn-xs" title="编辑" @click="editRegion(scope.row.regionid)">编辑</button>
<button type="button" class="btn btn-danger btn-xs" title="删除" @click="delRegion(scope.row.regionid)">删除</button>
</template>
</el-table-column>
</el-table>
<div class="clearfix"></div>
<el-pagination
@size-change="handleSizeChange"
@current-change="currPageChange"
:current-page="currPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
layout="prev, pager, next,sizes, jumper,total"
:total="totSize">
</el-pagination>
</template>
<el-dialog :title="regiontitile" :visible.sync="dialogFormVisible" >
<el-form ref="regionDiaForm" :model="regionDiaForm" :rules="rules" label-width="36%" >
<el-form-item label="区域编号:" prop="regionid">
<div class="el-col el-col-15">
<div class="el-input" style="width: 187px;">
<el-input v-model="regionDiaForm.regionid">
<i class="el-icon-edit el-input__icon" slot="icon" ></i>
</el-input>
</div>
</div>
</el-form-item>
<el-form-item label="区域名称:" prop="regionname">
<div class="el-col el-col-18">
<div class="el-input" style="width: 187px;">
<el-input v-model="regionDiaForm.regionname">
<i class="el-icon-edit el-input__icon" slot="icon" ></i>
</el-input>
</div>
</div>
</el-form-item>
<el-form-item label="区域级别:" prop="level">
<el-col :span="18">
<el-select v-model="regionDiaForm.level" style="width: 187px;"
filterable
@Change="levelChange"
placeholder="请选择">
<el-option
v-for="level in levels"
:key="level.value"
:label="level.label"
:value="level.value">
</el-option>
</el-select>
</el-col>
</el-form-item>
<el-form-item label="父区域:" prop="parentid">
<el-col :span="18">
<el-select v-model="regionDiaForm.parentid"
style="width: 187px;" clearable
filterable
:disabled="parentRegionDis"
placeholder="请选择">
<el-option
v-for="parentid in parentRegions"
:key="parentid.value"
:label="parentid.label"
:value="parentid.value">
</el-option>
</el-select>
</el-col>
</el-form-item>
<el-form-item label="详细地址:" prop="address">
<el-col :span="18">
<el-input v-model.number="regionDiaForm.address" style="width: 187px;">
<i class="el-icon-edit el-input__icon" slot="icon" ></i>
</el-input>
</el-col>
</el-form-item>
<el-form-item label="备注:" prop="remarks">
<el-col :span="18">
<el-input v-model.number="regionDiaForm.remarks" style="width: 187px;">
<i class="el-icon-edit el-input__icon" slot="icon" ></i>
</el-input>
</el-col>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="resetForm('regionDiaForm') ">取 消</el-button>
<el-button type="primary" @click="saveRegion('regionDiaForm')">确 定</el-button>
</div>
</el-dialog>
</div>
</div>
</div>
<script>
var vue = new Vue({
el:'#regionapp',
data:{
tableData:[],
currPage: 1,
pageSize:10,
totSize:0,
currentRow: null,
parentRegionDis:false,
regionform:{
regionname:''
},
dialogFormVisible: false,
dlgAllotDevVisible:false,
parentRegions:[],
levels:[],
regionDiaForm:{
regionid:'',
regionname:'',
level:'',
parentid:'',
address:'',
remarks:''
},
rules:{
regionid:[
{required:true,message:'请输入区域编号',trigger:'blur'},
],
regionname:[
{required:true,message:'请输入区域名称',trigger:'blur'},
],
level: [
{required: true, message: '请选择区域级别', trigger: 'blur'}
],
parentid: [
{required: true, message: '请选择父区域', trigger: 'blur'}
],
address: [
{required: true, message: '请输入详细地址', trigger: 'blur'}
]
},
regiontitile:'添加区域',
},
methods:{
handleSizeChange:function(val) {
this.pageSize=val;
commonQuery(this,this.regionform.regionname,this.currPage,val);
//console.log('每页条'+val);
},
currPageChange:function(val) {
this.currPage=val;
commonQuery(this,this.regionform.regionname,this.currPage,this.pageSize);
//console.log('当前页:'+val);
},
currRowChange:function(val) {
this.currentRow = val;
},
query:function(){
this.pagesize=10;
this.currPage=1;
commonQuery(this,this.regionform.regionname,this.currPage,this.pageSize);
},
addRegion:function () {
getFillData(this,"-1");
this.dialogFormVisible = true;
this.regiontitle="添加区域"
},
delRegion:function(regionid){
deletedata(regionid);
},
editRegion:function(regionid){
this.parentRegionDis=false;
getFillData(this,regionid);
this.dialogFormVisible = true;
this.regiontitile="修改区域"
},
resetForm: function (formName) {
this.$refs[formName].resetFields();
this.dialogFormVisible = false;
},
saveRegion:function (formName) {
var _that=this;
var vali = false;
this.$refs[formName].validate(
function(valid){
if (valid){
vali = true;
}else{
vali=false;
}
});
if (vali==true){
saveData(_that,_that.regionDiaForm,formName);
}
},
levelChange: function (value) {
if (value == 0) {
this.parentRegionDis = true;
} else {
this.parentRegionDis = false;
getFregion(this,value);
}
},
levelform: function (row, column, cellValue) {
return row.level+"级";
}
},
created:function(){
var _self=this;
$.ajax({
type:"get",
dataType:"json",
url:encodeURI("[[@{/system/loadRegionList?regionname=}]]"),
success:function(ret){
//console.log(ret);
_self.totSize=ret.PageResult.totalCount;
_self.tableData=ret.PageResult.list;
}
})
}
})
function refreshThisTable(){
commonQuery(vue,vue.regionform.regionname,vue.currPage,vue.pageSize);
};
function commonQuery(_self,regionname,pageno,pagesize){
$.ajax({
type: "get",
dataType: "json",
url: encodeURI("[[@{/system/loadRegionList?regionname=}]]" + regionname + "&pageNo=" + pageno + "&pageSize=" + pagesize),
success: function (ret) {
_self.totSize = ret.PageResult.totalCount;
_self.tableData = ret.PageResult.list;
if (_self.totSize == 0) {
layer.msg("暂无数据", {icon: 2, time: 1000});
}
}
})
}
function deletedata(regionid){
layer.confirm('是否删除该区域', {icon: 3, title:'请确认',offset:'30%'},function(index){
$.ajax({
type:"get",
dataType:"json",
url:"[[@{/system/deleteRegion?regionid=}]]"+regionid,
success:function(ret){
if(ret.message == undefined){
layer.msg('用户认证已过期,请重新登录', {icon:2,time:1000});
window.location="login";
return;
}
if (ret.message != "") {
layer.msg(ret.message, {icon: 2, time: 1000});
} else {
layer.msg('删除成功', {icon: 1, time: 1000});
refreshThisTable();
}
}
})
})
}
function getFillData(_self, id) {
$.ajax({
type: "get",
dataType: "json",
url: encodeURI("[[@{/system/loadRegionForUpdate?regionid=}]]" + id),
success: function (ret) {
var dictlist = [];
var parentlist = [];
var dict = ret.dicts;
for (var i = 0; i < dict.length; i++) {
dictlist.push({
value: dict[i]["dictval"],
label: dict[i]["dictcaption"]
});
}
_self.levels = dictlist;
if (ret.region != null) {
_self.regionDiaForm.regionid = ret.region.regionid;
_self.regionDiaForm.regionname = ret.region.regionname;
_self.regionDiaForm.level = ret.region.level;
_self.regionDiaForm.parentid = ret.region.parentid;
_self.regionDiaForm.address = ret.region.address;
if (ret.region.level == 0) {
_self.parentRegionDis = true;
}
_self.regionDiaForm.remarks = ret.region.remarks;
}
var fRegion = ret.fRegion;
for (var j=0;j<fRegion.length;j++){
parentlist.push({
value:fRegion[j]["regionid"],
label:fRegion[j]["regionname"]
});
}
_self.parentRegions = parentlist;
}
})
}
/* function lookTree(){
alert(tree);
}*/
function saveData(_that,formdata,formName){
var url = null;
if(vue.regiontitile == "添加区域"){
url = encodeURI("[[@{/system/addRegion}]]");
}
if(vue.regiontitile == "修改区域"){
url = encodeURI("[[@{/system/updateRegion}]]")
}
var token=$("meta[name='_csrf_token']").attr("value");
$.ajax({
type: "POST",
url: url,
dataType: "json",
contentType: "application/json",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-CSRF-TOKEN':token,
},
data: JSON.stringify(formdata),
success: function (data) {
if (data.errStr != "") {
layer.msg(data.errStr, {icon: 2,time:1000});
} else {
layer.msg('保存信息成功!', {icon: 1,time:1000});
refreshThisTable();
_that.$refs[formName].resetFields();
_that.dialogFormVisible = false;
}
}
});
}
function getFregion(_self,value){
$.ajax({
type: "get",
dataType: "json",
url: encodeURI("[[@{/system/getFregion?level=}]]" + value),
success: function (ret) {
var fList = [];
var parentRegion = ret.parentRegion;
for (var j=0;j<parentRegion.length;j++){
fList.push({
value:parentRegion[j]["regionid"],
label:parentRegion[j]["regionname"]
});
}
_self.parentRegions = fList;
}
})
}
</script>