Ver código fonte

公司管理

tanyanfei 5 anos atrás
pai
commit
07ff6e789b

+ 16 - 1
src/api.js

@@ -92,11 +92,26 @@ export default {
 	getEnterpriseAll: params => {
 		return axios.get(`${baseURL}/api/admin/enterprise/all`,{params:params})
 	},
+	getEnterprise: params => {
+		return axios.get(`${baseURL}/api/admin/enterprise`,{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});
 	},
-	   
+	saveEnterprise: params => {
+		return axios.post(`${baseURL}/api/admin/enterprise`, params);
+	},
+	updateEnterprise: params => {
+		return axios.put(`${baseURL}/api/admin/enterprise`, params);
+	},
+	//部门
+	getDepartmentList: params => {
+		return axios.get(`${baseURL}/api/admin/department/list`,{params:params})
+	},
+	saveDepartment: params => {
+		return axios.post(`${baseURL}/api/admin/department`, params);
+	},
 }

+ 78 - 22
src/views/company/Add.vue

@@ -43,43 +43,46 @@
                         <el-input clearable placeholder="请输入企业名称" v-model="form.name"></el-input>
                     </el-form-item>
                     <el-form-item label="账号" class="req">
-                        <el-input clearable placeholder="请输入账号" v-model="form.name"></el-input>
+                        <el-input clearable placeholder="请输入账号" v-model="form.username"></el-input>
                     </el-form-item>
                     <el-form-item label="密码" class="req">
-                        <el-input clearable placeholder="请输入密码" type="password" v-model="form.name"></el-input>
+                        <el-input clearable placeholder="请输入密码" type="password" v-model="form.password"></el-input>
                     </el-form-item>
                     <el-form-item label="公司类型">
-                            <el-select v-model="form.area" placeholder="请选择">
-                                <el-option label="区域一" value="shanghai"></el-option>
-                                <el-option label="区域二" value="beijing"></el-option>
+                            <el-select clearable v-model="form.category" placeholder="请选择">
+                                <el-option v-for="(item,index) in category" :key="index" :label="item" :value="item"></el-option>
                             </el-select>
                     </el-form-item>
                     <el-form-item label="上级公司">
-                            <el-select v-model="form.area" placeholder="请选择">
-                                <el-option label="区域一" value="shanghai"></el-option>
-                                <el-option label="区域二" value="beijing"></el-option>
+                            <el-select clearable v-model="form.parent_id" placeholder="请选择">
+                                <el-option v-for="(item,index) in company" :key="index" :label="item.name" :value="item.id"></el-option>
                             </el-select>
                     </el-form-item>
-                    <el-form-item label="上级政府" class="req">
-                            <el-select v-model="form.area" placeholder="请选择">
+                    <el-form-item label="企业区域" >
+                        <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="上级政府" class="req">
+                            <el-select v-model="form.parent_id" placeholder="请选择">
                                 <el-option label="区域一" value="shanghai"></el-option>
                                 <el-option label="区域二" value="beijing"></el-option>
                             </el-select>
-                    </el-form-item>
+                    </el-form-item> -->
                     <el-form-item label="企业法人" class="req">
-                        <el-input clearable placeholder="请输入企业法人" v-model="form.name"></el-input>
+                        <el-input clearable placeholder="请输入企业法人" v-model="form.legalperson"></el-input>
                     </el-form-item>
                     <el-form-item label="法人手机号" class="req">
-                        <el-input clearable placeholder="请输入法人手机号" v-model="form.name"></el-input>
+                        <el-input clearable placeholder="请输入法人手机号" v-model="form.legalperson_phone"></el-input>
                     </el-form-item>
                     <el-form-item label="企业负责人">
-                        <el-input clearable placeholder="请输入企业负责人" v-model="form.name"></el-input>
+                        <el-input clearable placeholder="请输入企业负责人" v-model="form.principal"></el-input>
                     </el-form-item>
                     <el-form-item label="负责人手机号">
-                        <el-input clearable placeholder="请输入负责人手机号" v-model="form.name"></el-input>
+                        <el-input clearable placeholder="请输入负责人手机号" v-model="form.principal_phone"></el-input>
                     </el-form-item>
                     <el-form-item label="经营范围">
-                        <el-input type="textarea" v-model="form.name"></el-input>
+                        <el-input type="textarea" v-model="form.busscope"></el-input>
                     </el-form-item>
                     
                 </div>
@@ -87,15 +90,15 @@
                     <el-form-item label="封面图">
                         <div class="upload_div">
                             <i class="el-icon-upload"></i>
-                            <img v-if="form.oldcard_img" width="100%" height="100%" :src="form.oldcard_img" alt="">
-                            <input @change="upload('oldcard_img')" id='oldcard_img' type="file">
+                            <img v-if="form.faceimg" width="100%" height="100%" :src="form.faceimg" alt="">
+                            <input @change="upload('faceimg')" id='faceimg' type="file">
                         </div>
                     </el-form-item>
                     <el-form-item label="四色分布图">
                         <div class="upload_div">
                             <i class="el-icon-upload"></i>
-                            <img v-if="form.oldcard_img" width="100%" height="100%" :src="form.oldcard_img" alt="">
-                            <input @change="upload('oldcard_img')" id='oldcard_img' type="file">
+                            <img v-if="form.safecolor_img" width="100%" height="100%" :src="form.safecolor_img" alt="">
+                            <input @change="upload('safecolor_img')" id='safecolor_img' type="file">
                         </div>
                     </el-form-item>
                     <el-form-item label="企业地址">
@@ -112,7 +115,7 @@
                     </el-form-item>
                     <el-form-item class="btn_div">  
                         <el-button  @click="$router.push({path:'/company/add'})"  type="info">重置</el-button>
-                        <el-button type="primary">保存</el-button>
+                        <el-button @click="save" type="primary">保存</el-button>
                     </el-form-item>
                 </div>
                 
@@ -128,6 +131,7 @@ export default {
   },
   data(){
     return{
+      id:'',
       form:{name:''},
       BMap:null,
       keyword:'',
@@ -135,6 +139,9 @@ export default {
         lng:'',
         lat:''
       },
+      category:[],
+      area:[],
+      company:[]
     }
   },
   methods:{
@@ -174,9 +181,58 @@ export default {
             })
         }
     },
+    upload(type){
+          var file=document.getElementById(type).files;
+          var data=new FormData();
+            data.append("file",file[0])
+          this.$api.uploadFile(data).then(res=>{
+              if(res.data.code==0){
+                      let form=this.form;
+                      this.$set(form,type,res.data.data.url)
+                      this.$message({message: '上传成功!',type: 'success'});
+                  }else{
+                      this.$message.error(res.data.message);
+                  }
+          })
+    },
+    getData(){
+        this.$api.getEnterprise({id:this.id}).then(res=>{
+            this.form=res.data.data
+        })
+        this.$api.getEnterpriseAll().then(res=>{
+            this.company=res.data.data;
+            this.area=this.store.area;
+            this.category=this.store.categorys;
+        })
+    },
+    save(){
+          var parm=this.form;
+          if(parm.id){
+              this.$api.updateEnterprise(parm).then(res=>{
+                  if(res.data.code==0){
+                      this.$message({message: '修改成功!',type: 'success'});
+                      this.$router.push({path:'/company'})
+                  }else{
+                      this.$message.error(res.data.message);
+                  }
+              })
+          }else{
+              this.$api.saveEnterprise(parm).then(res=>{
+                  if(res.data.code==0){
+                      this.$message({message: '添加成功!',type: 'success'});
+                      this.$router.push({path:'/company'})
+                  }else{
+                      this.$message.error(res.data.message);
+                  }
+              })
+          }
+        },
   },
   created(){
-    //   this.getData()
+        if(this.$route.query.id){
+            this.id=this.$route.query.id
+        }
+        this.getData()
   }
 }
 </script>

+ 16 - 14
src/views/company/Company.vue

@@ -10,15 +10,13 @@
                         <el-input clearable placeholder="请输入企业名称" v-model="form.name"></el-input>
                 </el-form-item>
                 <el-form-item label="企业区域">
-                        <el-select v-model="form.area" placeholder="请选择">
-                            <el-option label="区域一" value="shanghai"></el-option>
-                            <el-option label="区域二" value="beijing"></el-option>
+                        <el-select clearable v-model="form.area" 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-select v-model="form.area" placeholder="请选择">
-                            <el-option label="区域一" value="shanghai"></el-option>
-                            <el-option label="区域二" value="beijing"></el-option>
+                        <el-select clearable v-model="form.category" placeholder="请选择">
+                            <el-option v-for="(item,index) in category" :key="index" :label="item" :value="item"></el-option>
                         </el-select>
                 </el-form-item>
                 <el-form-item>
@@ -51,7 +49,7 @@
                 label="上级单位">
                 </el-table-column>
                 <el-table-column
-                prop="signuped_count" 
+                prop="category" 
                 label="企业类型">
                 </el-table-column>
                 <el-table-column
@@ -91,7 +89,9 @@ export default {
       activeName:"1",
       total:1,
       list:[{name:'2333'}],
-      loading:false
+      loading:false,
+      category:[],
+      area:[],
     }
   },
   methods:{
@@ -105,11 +105,13 @@ export default {
         getData(){
             var parm=this.form;
             this.loading=true
-            // this.$api.getClass(parm).then(res=>{
-            //     this.list=res.data.data.list
-            //     this.total=res.data.data.total
-            //     this.loading=false
-            // })
+            this.$api.getEnterpriseList(parm).then(res=>{
+                this.list=res.data.data.list
+                this.total=res.data.data.total
+                this.loading=false
+                this.area=this.store.area;
+                this.category=this.store.categorys;
+            })
         },
         del(id){
                 this.$confirm('确定删除吗', '提示', {
@@ -126,7 +128,7 @@ export default {
         },
   },
   created(){
-    //   this.getData()
+      this.getData()
   }
 }
 </script>

+ 264 - 68
src/views/company/Department.vue

@@ -1,69 +1,211 @@
 <style lang="scss">
-    
+    .staff{
+        display: flex;
+        justify-content: space-between;
+        &>li{
+            width: 30%;
+            list-style: none;
+            min-height: 70vh;
+            background: #fff;
+            border: 1px solid #d9d9d9;
+            padding:20px 10px;
+        }
+        .custom-tree-node{
+                    width: 100%;
+                    .el-tree-node__content{
+                        height: 32px;
+                    }
+                    .label_name{
+                        font-size: 14px;
+                    }
+                    .active{
+                        color:#1989FA;
+                    }
+                    .edit{
+                        float: right;
+                        i{
+                            font-weight: bolder;
+                            font-size: 14px;
+                        }
+                    }
+        }
+        .staff_list{
+            width: 68%;
+        }
+    }
 </style>
 <template>
-    <section>
-        <p>公司管理  >  部门列表</p>
-        <div class="filter">
-            <el-form label-width="70px" :inline="true" size="small" label-position="left">
-                <el-form-item label="企业名称">
-                        <el-input clearable placeholder="请输入企业名称" v-model="form.name"></el-input>
-                </el-form-item>
-                <el-form-item>
-                       <el-button @click="form.page=1,getData()" type="primary" icon="el-icon-search">搜索</el-button>
-                       <el-button icon="el-icon-plus" @click="$router.push({path:'/company/add'})"  type="primary">创建部门</el-button>
-                </el-form-item>
-            </el-form>
+  <section>
+    <p>公司管理 > 部门列表</p>
+    <div class="content">
+        <ul class="staff">
+            <li>
+                <el-form  size="small">
+                    <el-form-item>
+                        <el-input suffix-icon="el-icon-search" v-model="enterprise_name" @change="getData"  placeholder="公司名称"></el-input>
+                    </el-form-item>
+                </el-form>
+                <el-tree  
+                    :data="data"
+                    node-key="id"   :props='props'
+                    :expand-on-click-node="false">
+                    <span class="custom-tree-node" slot-scope="{ node, data }" @click.stop="id=data.id,getDpt()" >
+                        <span v-if='id==node.id' class="label_name active">{{ node.label }}</span>
+                        <span v-else class="label_name">{{ node.label }}</span>
+                    </span>
+                </el-tree>
+            </li>
+            <li class="staff_list">
+                    <el-form label-width="70px" :inline="true" size="small" label-position="left">
+                        <!-- <el-form-item label="公司名称">
+                                <el-input clearable placeholder="请输入公司名称" v-model="form.name"></el-input>
+                        </el-form-item> -->
+                        <el-form-item>
+                            <!-- <el-button @click="form.page=1,getData()" type="primary" icon="el-icon-search">搜索</el-button> -->
+                            <el-button icon="el-icon-plus" @click="dialogFormVisible=true"  type="primary">新增部门</el-button>
+                        </el-form-item>
+                    </el-form>
+                <el-table
+                        class="table"
+                        :data="list" height="54vh"
+                        border  v-loading="loading"
+                        style="width: 100%">
+                        <el-table-column
+                        prop="enterprise_name" 
+                        label="公司名称">
+                        </el-table-column>
+                        <el-table-column
+                        prop="name" 
+                        label="部门">
+                        </el-table-column>
+                        <el-table-column
+                        prop="ctime" 
+                        label="时间">
+                        </el-table-column>
+                        <el-table-column fixed="right"
+                        prop="zip"  width="230"
+                        label="操作">
+                        <template slot-scope="scope">
+                            <el-button  @click="viewStaff(scope.row.staffusers)" size="mini" type="warning">查看员工</el-button>
+                            <el-button icon="el-icon-edit" @click="$router.push({path:'/company/add',query:{id:scope.row.id}})" size="mini" type="warning">编辑</el-button>
+                            <el-button icon="el-icon-delete" @click="del(scope.row.id)" size="mini"  type="danger">删除</el-button>
+                        </template>
+                        </el-table-column>
+                </el-table>
+                <Page  ref="pageButton"  :total='total' @pageChange='gopage'/>
+            </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" label-width="80px">
+            <el-form-item label="部门名称">
+                        <el-input clearable placeholder="请输入部门名称" v-model="dpt.name"></el-input>
+            </el-form-item>
+            <el-form-item label="部门员工" >
+                <el-tag
+                :key="index"
+                v-for="(item,index) in dpt.staffusers"
+                closable  type="info"
+                :disable-transitions="false"
+                @close="handleClose(tag)">
+                {{item.name}}
+                </el-tag>
+                &nbsp;
+                <el-button  class="button-new-tag" size="small" @click="dialogFormVisible1=true">+ 添加员工</el-button>
+            </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>
+
+    <el-dialog title="新增员工" :visible.sync="dialogFormVisible1" width="500px" :close-on-click-modal='false' :close-on-press-escape='false'>
+        <el-form size="small" label-width="80px">
+            <el-form-item label="姓名">
+                <el-input clearable  v-model="staff.name"></el-input>
+            </el-form-item>
+            <el-form-item label="账号">
+                <el-input clearable  v-model="staff.username"></el-input>
+            </el-form-item>
+            <el-form-item label="密码">
+                <el-input clearable type="password" v-model="staff.password"></el-input>
+            </el-form-item>
+            <el-form-item label="联系电话">
+                <el-input clearable  v-model="staff.phone"></el-input>
+            </el-form-item>
+            <el-form-item label="账号类型">
+                <el-select clearable v-model="staff.utype" placeholder="请选择">
+                    <el-option label="部门级" value="部门级"></el-option>
+                    <el-option label="岗位级" value="岗位级"></el-option>
+                </el-select>
+            </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+            <el-button size="small" @click="dialogFormVisible1 = false">取 消</el-button>
+            <el-button size="small" type="primary" @click="addStaff">确 定</el-button>
         </div>
+    </el-dialog>
+
+    <el-dialog title="员工列表" :visible.sync="dialogFormVisible2" width="500px" :close-on-click-modal='false' :close-on-press-escape='false'>
         <el-table
-                class="table"
-                :data="list" height="64vh"
-                border  v-loading="loading"
-                style="width: 100%">
-                <el-table-column
-                type="selection" fixed="left"
-                width="40">
-                </el-table-column>
-                <el-table-column
-                prop="name" 
-                label="公司名称">
-                </el-table-column>
-                <el-table-column
-                prop="subject_item" 
-                label="部门">
-                </el-table-column>
-                <el-table-column
-                prop="ctime"  width="200"
-                label="时间">
-                </el-table-column>
-                <el-table-column fixed="right"
-                prop="zip"  width="170"
-                label="操作">
-                <template slot-scope="scope">
-                    <el-button icon="el-icon-edit" @click="$router.push({path:'/company/add',query:{id:scope.row.id}})" size="mini" type="warning">编辑</el-button>
-                    <el-button icon="el-icon-delete" @click="del(scope.row.id)" size="mini"  type="danger">删除</el-button>
-                </template>
-                </el-table-column>
-        </el-table>
-        <Page  ref="pageButton"  :total='total' @pageChange='gopage'/>
-    </section>
+                        class="table"
+                        :data="staffList" 
+                        border 
+                        style="width: 100%">
+                        <el-table-column
+                        prop="name" 
+                        label="姓名">
+                        </el-table-column>
+                        <el-table-column
+                        prop="phonr" 
+                        label="电话">
+                        </el-table-column>
+                        <el-table-column
+                        prop="username" 
+                        label="账号">
+                        </el-table-column>
+                        <el-table-column
+                        prop="utype" 
+                        label="账号类型">
+                        </el-table-column>
+                </el-table>
+        <!-- <div slot="footer" class="dialog-footer">
+            <el-button size="small" @click="dialogFormVisible1 = false">取 消</el-button>
+            <el-button size="small" type="primary" @click="addStaff">确 定</el-button>
+        </div> -->
+    </el-dialog>
+  </section>
 </template>
 <script>
 import Page from '../../components/Page';
 export default {
-  components:{
+    components:{
         Page
-  },
-  data(){
-    return{
-      form:{name:'',page:1,page_size:20},
-      activeName:"1",
-      total:1,
-      list:[{name:'2333'}],
-      loading:false
-    }
-  },
-  methods:{
+    },
+	data() {
+		return {
+            dialogFormVisible:false,
+            dialogFormVisible1:false,
+            dialogFormVisible2:false,
+            data:[],
+            form:{page:1,page_size:20},
+            list:[],
+            total:1,
+            loading:false,
+            props:{
+                label:'name'
+            },
+            id:'',
+            dpt:{enterprise_id:'',staffusers:[]},
+            enterprise_name:'',
+            staff:{},
+            staffList:[]
+		};
+	},
+	methods: {
         gopage(size){
             if(size){
                 this.form.page_size=size
@@ -72,13 +214,24 @@ export default {
             this.getData()
         },
         getData(){
-            var parm=this.form;
             this.loading=true
-            // this.$api.getClass(parm).then(res=>{
-            //     this.list=res.data.data.list
-            //     this.total=res.data.data.total
-            //     this.loading=false
-            // })
+            this.$api.getEnterpriseAll({name:this.enterprise_name}).then(res=>{
+                this.data=res.data.data;
+                this.id=this.data[0].id;
+                this.dpt.enterprise_name=this.data[0].name;
+                this.dpt.enterprise_id=this.id;
+                this.getDpt()
+            })
+        },
+        getDpt(){
+            var parm=this.form;
+            
+            parm.enterprise_id=this.id
+            this.$api.getDepartmentList(parm).then(res=>{
+                this.loading=false;
+                this.list=res.data.data;
+                this.total=res.data.data.total
+            })
         },
         del(id){
                 this.$confirm('确定删除吗', '提示', {
@@ -93,9 +246,52 @@ export default {
                     })
                 })
         },
-  },
-  created(){
-    //   this.getData()
-  }
-}
-</script>
+        add(){
+            let parm=this.dpt;
+            if(!parm.name){
+                this.$message.error('请输入部门名称');
+            }
+            this.$api.saveDepartment(parm).then(res=>{
+                if(res.data.code==0){
+                      this.$message({message: '添加成功!',type: 'success'});
+                      this.getDpt()
+                      this.dpt.name=''
+                      this.dialogFormVisible=false
+                  }else{
+                      this.$message.error(res.data.message);
+                  }
+            })
+        },
+        addStaff(){
+            let parm=this.staff;
+            parm.id=0;
+            if(!parm.name){
+                this.$message.error('请输入员工名称');
+                return;
+            }
+            if(!parm.username){
+                this.$message.error('请输入账号');
+                return;
+            }
+            if(!parm.password){
+                this.$message.error('请输入密码');
+                return;
+            }
+            if(!parm.utype){
+                this.$message.error('请选择账号类型');
+                return;
+            }
+            this.dpt.staffusers.push(parm);
+            this.staff={}
+            this.dialogFormVisible1=false
+        },
+        viewStaff(data){
+            this.dialogFormVisible2=true;
+            this.staffList=data
+        }
+    },
+	created(){
+        this.getData()
+	}
+};
+</script>

+ 1 - 1
src/views/company/Staff.vue

@@ -163,7 +163,7 @@ export default {
         },
     },
 	created(){
-	
+        
 	}
 };
 </script>

+ 1 - 1
src/views/government/Index.vue

@@ -153,7 +153,7 @@
                 </el-form>
             </li>
             <li class="company" v-show="show">
-                <h1 v-if="form.id">{{form.name}}下属企业  <el-button @click="dialogFormVisible=true" size='mini' type="primary">添加</el-button></h1>
+                <h1 v-if="form.id"><span style="width:75%;display:inline-block;">{{form.name}}下属企业</span>  <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"