Browse Source

政府管理

tanyanfei 4 years ago
parent
commit
6b8891b4fb
6 changed files with 229 additions and 53 deletions
  1. 45 11
      src/api.js
  2. 1 0
      src/main.js
  3. 13 14
      src/store.js
  4. 4 2
      src/views/Login.vue
  5. 165 25
      src/views/government/Index.vue
  6. 1 1
      vue.config.js

+ 45 - 11
src/api.js

@@ -1,17 +1,16 @@
 import axios from 'axios';
 // var baseURL='https://www.scxjc.club'
 var baseURL = ''
-// axios.defaults.headers.get['Content-Type']='application/json;charset=utf-8';
 axios.interceptors.request.use(
 	config => {
-		// const token = localStorage.getItem('token');
+		const token = localStorage.getItem('token');
 		// if (config.url.indexOf('downloadzip') >= 0) {
-		// 	if (token) { // 判断是否存在token,如果存在的话,则每个http header都加上token                      
-		// 		config.headers.Authorization = `jwt ${token}`;   
-		// 	} else {
-		// 		//未登录
-		// 		window.location.hash = "/login";
-		// 	}
+			if (token) { // 判断是否存在token,如果存在的话,则每个http header都加上token                      
+				config.headers.Authorization = `${token}`;   
+			} else {
+				//未登录
+				// window.location.hash = "/login";
+			}
 		// } 
 		return config;
 	},
@@ -19,7 +18,7 @@ axios.interceptors.request.use(
 		return Promise.reject(err);
 	});
 axios.interceptors.response.use(function (response) {
-	console.log(response.headers)
+	// console.log(response.headers)
 	// IE 8-9 
 	if (response.data == null && response.config.responseType === 'json' && response.request.responseText != null) {
 		try {
@@ -40,7 +39,7 @@ axios.interceptors.response.use(function (response) {
 }, function (error) {
 	// 对响应错误做点什么
 	if (error.request.status == 403) {
-		window.location.hash = "/login";
+		// window.location.hash = "/login";
 	}
 	// console.log(Object.getOwnPropertyNames(error))
 	// console.log(error.request,error.message)
@@ -60,9 +59,44 @@ export default {
 	uploadFile: params => {
 		return axios.post(`${baseURL}/api/admin/uploadfile`, params);
 	},
+	getdefault: params => {
+		return axios.get(`${baseURL}/api/admin/getdefault`)
+	},
 	//获取验证码
 	getCode: params => {
 		return axios.get(`${baseURL}/api/account/imgcode`)
 	},
-
+	//政府管理
+	getGovermentList: params => {
+		return axios.get(`${baseURL}/api/admin/goverment/list`,{params:params})
+	},
+	getGoverment: params => {
+		return axios.get(`${baseURL}/api/admin/goverment`,{params:params})
+	},
+	saveGoverment: params => {
+		return axios.post(`${baseURL}/api/admin/goverment`, params);
+	},
+	putGoverment: params => {
+		return axios.put(`${baseURL}/api/admin/goverment`, params);
+	},
+	deleteGoverment: params => {
+		return axios.delete(`${baseURL}/api/admin/goverment`, {params:params});
+	},
+	getGovermentList: params => {
+		return axios.get(`${baseURL}/api/admin/goverment/list`,{params:params})
+	},
+	//企业
+	getEnterpriseList: params => {
+		return axios.get(`${baseURL}/api/admin/enterprise/list`,{params:params})
+	},
+	getEnterpriseAll: params => {
+		return axios.get(`${baseURL}/api/admin/enterprise/all`,{params:params})
+	},
+	saveSubent: params => {
+		return axios.post(`${baseURL}/api/admin/goverment/subent`, params);
+	},
+	deleteSubent: params => {
+		return axios.delete(`${baseURL}/api/admin/goverment/subent`, {params:params});
+	},
+	   
 }

+ 1 - 0
src/main.js

@@ -14,6 +14,7 @@ Vue.use(BaiduMap, {
 
 Vue.use(ElementUI);
 Vue.prototype.$api = api;
+Vue.prototype.store = store;
 Vue.config.productionTip = false
 
 new Vue({

+ 13 - 14
src/store.js

@@ -1,16 +1,15 @@
 import Vue from 'vue'
-import Vuex from 'vuex'
-
-Vue.use(Vuex)
-
-export default new Vuex.Store({
-  state: {
-
-  },
-  mutations: {
-
-  },
-  actions: {
-
+var baseURL = '';
+import axios from 'axios';
+let store = {
+  area:[],
+  categorys:[],
+  getDefault:function(){
+      axios.get(`${baseURL}/api/admin/getdefault`).then(res=>{
+        this.area=res.data.data.areas;
+        this.categorys=res.data.data.categorys;
+      })
   }
-})
+}
+store.getDefault();
+export default store; 

+ 4 - 2
src/views/Login.vue

@@ -121,7 +121,8 @@ export default {
         username:'root',
         password:'root',
         imgcode_id:'',
-        imgcode:''
+        imgcode:'',
+        utype:0
       }
     }
   },
@@ -132,6 +133,7 @@ export default {
                 let data=res.data
                   if(res.data.code == 0){
                       window.location.hash='/';
+                      localStorage.setItem('token',res.data.data.token);
                   }else{
                       this.$message.error("账号或者密码有误");
                   } 
@@ -148,7 +150,7 @@ export default {
       }
     },
   created(){
-    // this.getCode();
+    this.getCode();
   }
 }
 </script>

+ 165 - 25
src/views/government/Index.vue

@@ -54,6 +54,15 @@
                 font-size: 14px;
                 width: 90%;
                 margin: 0 auto;
+                button{
+                    float: right;
+                    i{
+                        font-weight: 700;
+                        font-size: 16px;
+                        position: relative;
+                        top: -4px;
+                    }
+                }
             }
         }
     }
@@ -66,17 +75,16 @@
             <li>
                 <el-form :inline="true" size="small" label-width="40px">
                     <el-form-item label="区域">
-                        <el-select class="input_100" v-model="input1" placeholder="请选择">
-                            <el-option label="区域一" value="shanghai"></el-option>
-                            <el-option label="区域二" value="beijing"></el-option>
+                        <el-select class="input_100" v-model="filter.area" clearable @change="getData" placeholder="请选择">
+                            <el-option v-for="(item,index) in area" :key="index" :label="item" :value="item"></el-option>
                         </el-select>
-                        <el-input style="width:62%;margin-left:5px;" v-model="input1" placeholder="政府名称"></el-input>
+                        <el-input style="width:62%;margin-left:5px;" @change="getData"  v-model="filter.name" placeholder="政府名称"></el-input>
                     </el-form-item>
                 </el-form>
                 <el-button type="primary" icon="el-icon-circle-plus" size="mini" style="width:100%;margin-bottom:10px;">新增政府单位</el-button>
                 <el-tree  
                     :data="data"
-                    node-key="id" 
+                    node-key="id"  :props='props'
                     :expand-on-click-node="false">
                     <span class="custom-tree-node" slot-scope="{ node, data }" @click.stop="() => edit(data)" >
                         <span class="label_name">{{ node.label }}</span>
@@ -90,13 +98,13 @@
                         <el-button
                             type="text"
                             size="mini"
-                            @click="() => edit(data)">
+                            @click.stop="() => edit(data)">
                             <i class="el-icon-edit"></i>
                         </el-button>
                         <el-button
                             type="text"
                             size="mini"
-                            @click="() => remove(data)">
+                            @click.stop="() => remove(data)">
                             <i class="el-icon-delete"></i>
                         </el-button>
                         </span>
@@ -104,60 +112,84 @@
                 </el-tree>
             </li>
             <li>
+                <p v-if="form.parent_id">上级政府:{{form.parent_name}} <el-divider></el-divider></p>
+                
                 <el-form class="form" label-width="80px" label-position='right' size="small">
                     <el-form-item label="政府名称">
                         <el-input v-model="form.name"></el-input>
                         <span class="req">*</span>
                     </el-form-item>
                     <el-form-item label="账号" >
-                        <el-input v-model="form.name"></el-input>
+                        <el-input v-model="form.username"></el-input>
                         <span class="req">*</span>
                     </el-form-item>
                     <el-form-item label="区域" >
-                        <el-select v-model="input1" placeholder="请选择">
-                            <el-option label="区域一" value="shanghai"></el-option>
-                            <el-option label="区域二" value="beijing"></el-option>
+                        <el-select v-model="form.area" clearable placeholder="请选择">
+                            <el-option v-for="(item,index) in area" :key="index" :label="item" :value="item"></el-option>
                         </el-select>
                     </el-form-item>
                     <el-form-item label="密码" >
-                        <el-input v-model="form.name"></el-input>
+                        <el-input v-model="form.password" type="password"></el-input>
                         <span class="req">*</span>
                     </el-form-item>
                     <el-form-item label="确认密码" >
-                        <el-input v-model="form.name"></el-input>
+                        <el-input v-model="form.repassword" type="password"></el-input>
                         <span class="req">*</span>
                     </el-form-item>
                     <el-form-item label="账号状态">
                         <el-switch
-                        v-model="form.status"
+                        v-model="form.is_active"
                         active-text="启用"
                         inactive-text="禁用">
                         </el-switch>
                     </el-form-item>
                     <el-form-item label="备注">
-                        <el-input :rows="4" type="textarea" v-model="form.intro"></el-input>
+                        <el-input :rows="4" type="textarea" v-model="form.remark"></el-input>
                     </el-form-item>
                     <el-form-item>
-                        <el-button  type="primary">保存</el-button>
-                        <el-button  type="info">取消</el-button>
+                        <el-button @click="save" type="primary">保存</el-button>
+                        <el-button @click="form={parent_id:null,is_active:false}" type="info">取消</el-button>
                     </el-form-item>
                 </el-form>
             </li>
             <li class="company">
-                <h1>巴中市应急管理局下属企业  <el-button size='mini' type="primary">添加</el-button></h1>
-                <p>巴中市恩阳中学</p>
-                <p>巴中市恩阳中学</p>
-                <p>巴中市恩阳中学</p>
+                <h1 v-if="form.id">{{form.name}}下属企业  <el-button @click="dialogFormVisible=true" size='mini' type="primary">添加</el-button></h1>
+                <p v-for="item in form.enterprise" :key="item.id">{{item.name}}
+                    <el-button
+                            type="text"
+                            size="mini"
+                            @click="() => del(item.id)">
+                            <i class="el-icon-delete"></i>
+                    </el-button>
+                </p>
             </li>
         </ul>
     </div>
+
+    <el-dialog title="添加下属企业" :visible.sync="dialogFormVisible" width="500px" :close-on-click-modal='false' :close-on-press-escape='false'>
+        <el-form :model="form">
+            <el-form-item label="企业名称" >
+                <el-select v-model="enterprise.enterprise_id" placeholder="请选择">
+                    <el-option v-for="(item,index) in enterpriseList" :key="index" :label="item.name" :value="item.id"></el-option>
+                </el-select>
+            </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+            <el-button size="small" @click="dialogFormVisible = false">取 消</el-button>
+            <el-button size="small" type="primary" @click="add">确 定</el-button>
+        </div>
+    </el-dialog>
   </section>
 </template>
 <script>
 export default {
 	data() {
 		return {
-            input1:'',
+            filter:{
+                area:'',
+                name:''
+            },
+            dialogFormVisible:false,
             data:[{
                 id: 3,
                 label: '一级 3',
@@ -169,12 +201,120 @@ export default {
                     label: '二级 3-2'
                 }]
             }],
-            form:{}
+            form:{parent_id:null,is_active:false},
+            props:{
+                label:'name'
+            },
+            //下属企业
+            enterprise:{
+                enterprise_id:''
+            },
+            enterpriseList:[],
+            area:[]
 		};
 	},
-	methods: {},
+	methods: {
+        getData(){
+            this.$api.getGovermentList(this.filter).then(res=>{
+                this.data=res.data.data;
+                this.area=this.store.area;
+            })
+            this.$api.getEnterpriseAll().then(res=>{
+                this.enterpriseList=res.data.data;
+            })
+        },
+        append(data){
+            this.form={
+                parent_id:data.id,
+                parent_name:data.name
+            }
+        },
+        edit(data){
+            this.$api.getGoverment({id:data.id}).then(res=>{
+                this.form=res.data.data;
+                this.form.is_active=Boolean(this.form.is_active);
+            })
+        },
+        remove(data){
+           this.$confirm('确定删除“'+data.name+'”政府管理?', '提示', {
+                    type: 'warning'
+                }).then(() => {
+                   this.$api.deleteGoverment({id:data.id}).then(res=>{
+                        this.$message({message: '删除成功!',type: 'success'});
+                        this.getData()
+                    })
+            })
+          
+        },
+        save(){
+          var parm=this.form;
+          parm.is_active=String(Number(parm.is_active))
+
+          if(parm.password!=parm.repassword){
+                this.$message.error('两次输入的密码不一致,请检查!');
+                return;
+          }
+          if(parm.id){
+              this.$api.putGoverment(parm).then(res=>{
+                  if(res.data.code==0){
+                      this.$message({message: '修改成功!',type: 'success'});
+                      this.getData()
+                      this.form={
+                          parent_id:null,
+                          is_active:false
+                      }
+                  }else{
+                      this.$message.error(res.data.message);
+                  }
+              })
+          }else{
+              this.$api.saveGoverment(parm).then(res=>{
+                  if(res.data.code==0){
+                      this.$message({message: '添加成功!',type: 'success'});
+                      this.getData()
+                      this.form={
+                          parent_id:null,
+                          is_active:false
+                      }
+                  }else{
+                      this.$message.error(res.data.message);
+                  }
+              })
+          }
+        },
+        //下属企业
+        add(){
+            let parm=this.enterprise;
+            parm.goverment_id=this.form.id;
+            if(!parm.enterprise_id){
+                this.$message.error('请选择企业');
+            }
+            this.$api.saveSubent(parm).then(res=>{
+                if(res.data.code==0){
+                      this.$message({message: '添加成功!',type: 'success'});
+                      this.dialogFormVisible=false
+                      this.edit({id:parm.goverment_id})
+                  }else{
+                      this.$message.error(res.data.message);
+                  }
+            })
+        },
+        del(id){
+            this.$confirm('确定删除该企业?', '提示', {
+                    type: 'warning'
+                }).then(() => {
+                   this.$api.deleteSubent({enterprise_id:id,goverment_id:this.form.id}).then(res=>{
+                        this.$message({message: '删除成功!',type: 'success'});
+                        this.edit({id:this.form.id})
+                    })
+            })
+        }
+
+    },
 	created(){
-	
+        this.getData();
+        // this.store.getDefault();
+        
 	}
 };
 </script>

+ 1 - 1
vue.config.js

@@ -2,7 +2,7 @@ module.exports={
     devServer:{
         proxy:{
             '/api':{
-                target:'https://www.scxjc.club',
+                target:'http://baianxi.scxjc.club',
                 changeOrigin: true,
             }
         }