diff --git a/enterprise-manager-ui/admin/src/assets/utils/globalComponents.js b/enterprise-manager-ui/admin/src/assets/utils/globalComponents.js
index 08b454306a377de3a187c81f3bde729e0c982bb6..5d3641593f61fa7fa1197cdbb7b43804fe546044 100644
--- a/enterprise-manager-ui/admin/src/assets/utils/globalComponents.js
+++ b/enterprise-manager-ui/admin/src/assets/utils/globalComponents.js
@@ -15,6 +15,7 @@ import FileUpload from '@/components/FileUpload';
 import Editor from '@/components/Editor';
 import Map from '@/components/Map';
 import MapDetail from '@/components/MapDetail';
+import AreaSelect from '@/components/AreaSelect';
 
 const Prototype = function() {};
 
@@ -35,6 +36,7 @@ Prototype.install = (Vue, options) => {
   Vue.component('Editor', Editor) // 瀵屾枃鏈�
   Vue.component('Map', Map) // 鍦板浘
   Vue.component('MapDetail', MapDetail) // 鍦板浘
+  Vue.component('AreaSelect', AreaSelect) // 鍖哄煙閫夋嫨
 }
 
 export default Prototype;
diff --git a/enterprise-manager-ui/admin/src/components/AreaSelect.vue b/enterprise-manager-ui/admin/src/components/AreaSelect.vue
new file mode 100644
index 0000000000000000000000000000000000000000..5309c0e84516ac3dc1bafbbd7bce9849e277ee0e
--- /dev/null
+++ b/enterprise-manager-ui/admin/src/components/AreaSelect.vue
@@ -0,0 +1,373 @@
+<template>
+  <div id="addressHorizontalSelect">
+    <el-row :gutter="10">
+      <el-col
+          :span="span">
+        <el-select
+            size="small"
+            v-model="provinceCode"
+            @focus="getProvinces"
+            @change="changeProvince"
+            placeholder="鐪�"
+            filterable>
+          <el-option
+              v-for="item in provinceList"
+              :key="item.iid"
+              :label="item.name"
+              :value="item.iid">
+          </el-option>
+        </el-select>
+      </el-col>
+      <el-col
+          :span="span"
+          v-if="!hideCity">
+        <el-select
+            size="small"
+            v-model="cityCode"
+            @focus="getCities"
+            @change="changeCity"
+            placeholder="甯�"
+            filterable>
+          <el-option
+              v-for="item in cityList"
+              :key="item.iid"
+              :label="item.name"
+              :value="item.iid">
+          </el-option>
+        </el-select>
+      </el-col>
+      <el-col
+          :span="span"
+          v-if="!hideCity && !hideArea">
+        <el-select
+            size="small"
+            v-model="areaCode"
+            @focus="getAreas"
+            @change="changeArea"
+            placeholder="鍖�/鍘�"
+            filterable>
+          <el-option
+              v-for="item in areaList"
+              :key="item.iid"
+              :label="item.name"
+              :value="item.iid">
+          </el-option>
+        </el-select>
+      </el-col>
+
+      <el-col
+          :span="span"
+          v-if="!hideCity && !hideArea&& !hideStreet">
+        <el-select
+            size="small"
+            v-model="streetCode"
+            @focus="getStreet"
+            @change="changeStreet"
+            placeholder="琛楅亾"
+            filterable>
+          <el-option
+              v-for="item in streetList"
+              :key="item.iid"
+              :label="item.name"
+              :value="item.iid">
+          </el-option>
+        </el-select>
+      </el-col>
+
+      <el-col
+          :span="span"
+          v-if="!hideCity && !hideArea&& !hideStreet&& !hideStreet">
+        <el-select
+            size="small"
+            v-model="communityCode"
+            @focus="getCommunity"
+            @change="changeCommunity"
+            placeholder="绀惧尯"
+            filterable>
+          <el-option
+              v-for="item in communityList"
+              :key="item.iid"
+              :label="item.name"
+              :value="item.iid">
+          </el-option>
+        </el-select>
+      </el-col>
+
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'addressHorizontalSelect',
+  components: {},
+  props: {
+    value: {
+      type: [String, Number, Array],
+    },
+    hideCity: { // 闅愯棌甯�
+      type: Boolean,
+      default: false
+    },
+    hideArea: { // 闅愯棌鍖�/鍘�
+      type: Boolean,
+      default: false
+    },
+    hideStreet: { // 闅愯棌琛楅亾
+      type: Boolean,
+      default: false
+    },
+
+    hideCommunity: { // 闅愯棌绀惧尯
+      type: Boolean,
+      default: false
+    },
+    addressCode: null // 鍦板潃缂栫爜
+  },
+
+  model: {
+    prop: 'value',
+    event: 'addressSelect'
+  },
+
+  data() {
+    return {
+      provinceList: [], // 鐪佷唤鍒楄〃
+      cityList: [], // 鍩庡競鍒楄〃
+      areaList: [], // 鍖�/鍘垮垪琛�
+      streetList: [], // 琛楅亾鍒楄〃
+      communityList: [], // 绀惧尯鍒楄〃
+      provinceCode: '', // 鐪佷唤缂栫爜
+      cityCode: '', // 鍩庡競缂栫爜
+      areaCode: '', // 鍖�/鍘跨紪鐮�
+      streetCode: '', // 琛楅亾缂栫爜
+      communityCode: '', // 绀惧尯缂栫爜
+      cityFlag: false, // 閬垮厤閲嶅璇锋眰鐨勬爣蹇�
+      provinceFlag: false,
+      areaFlag: false,
+      streetFlag: false,
+      communityFlag: false,
+    }
+  },
+
+  computed: {
+    span() {
+      if (this.hideCity) {
+        return 24
+      }
+      if (this.hideArea) {
+        return 12
+      }
+      if (this.hideStreet) {
+        return 8
+      }
+      if (this.hideCommunity) {
+        return 6
+      }
+      return 4
+    }
+  },
+  created() {
+    this.getProvinces()
+  },
+
+  methods: {
+
+    fetchData(array, code) {
+      var split = code.split("&");
+      let parms = {pid: split[0], size: -1}
+      this.$post("/base/area/list", parms).then((res) => {
+        if (res.code == 1) {
+          array.splice(0, array.length);
+          res.data.data.map(i => {
+            let obj = {}
+            obj.name = i.name
+            obj.iid = i.iid + "&" + i.areaCode
+            array.push(obj)
+            return obj;
+          })
+        }
+      })
+          .catch((error) => {
+            this.$message.error(error.message);
+          });
+    },
+    // 鏍规嵁鍥藉缂栫爜鑾峰彇鐪佷唤鍒楄〃
+    getProvinces() {
+      if (this.provinceFlag) {
+        return
+      }
+      this.fetchData(this.provinceList, "0&510000000000")
+      this.provinceFlag = true
+    },
+    // 鐪佷唤淇敼锛屾媺鍙栧搴斿煄甯傚垪琛�
+    changeProvince(val) {
+      this.fetchData(this.cityList, this.provinceCode)
+      this.cityFlag = true
+      this.cityCode = ''
+      this.areaCode = ''
+      this.streetCode = ''
+      this.communityCode = ''
+
+      var split = val.split("&");
+      this.$emit("input", split[1]);
+      this.$emit('addressSelect', split[1])
+    },
+    // 鏍规嵁鐪佷唤缂栫爜鑾峰彇鍩庡競鍒楄〃
+    getCities() {
+      if (this.cityFlag) {
+        return
+      }
+      if (this.provinceCode) {
+        this.fetchData(this.cityList, this.provinceCode)
+        this.cityFlag = true
+      }
+    },
+    // 鍩庡競淇敼锛屾媺鍙栧搴斿尯鍩熷垪琛�
+    changeCity(val) {
+      this.fetchData(this.areaList, this.cityCode)
+      this.areaFlag = true
+      this.areaCode = ''
+      this.streetCode = ''
+      this.communityCode = ''
+      var split = val.split("&");
+      this.$emit("input", split[1]);
+      this.$emit('addressSelect', split[1])
+    },
+    // 鏍规嵁鍩庡競缂栫爜鑾峰彇鍖哄煙鍒楄〃
+    getAreas() {
+      if (this.areaFlag) {
+        return
+      }
+      if (this.cityCode) {
+        this.fetchData(this.areaList, this.cityCode)
+      }
+    },
+    // 鍖哄煙淇敼
+    changeArea(val) {
+      this.fetchData(this.streetList, this.areaCode)
+      this.areaFlag = true
+      this.streetCode = ''
+      this.communityCode = ''
+
+      var split = val.split("&");
+      this.$emit("input", split[1]);
+      this.$emit('addressSelect', split[1])
+    },
+
+
+    // 鏍规嵁鍖哄煙缂栫爜鑾峰彇琛楅亾鍒楄〃
+    getStreet() {
+      if (this.streetFlag) {
+        return
+      }
+      if (this.areaCode) {
+        this.fetchData(this.streetList, this.areaCode)
+        this.streetFlag = true
+      }
+    },
+    // 琛楅亾淇敼锛屾媺鍙栧搴旂ぞ鍖哄垪琛�
+    changeStreet(val) {
+      this.fetchData(this.communityList, this.streetCode)
+      this.streetFlag = true
+      this.communityCode = ''
+      var split = val.split("&");
+      this.$emit("input", split[1]);
+      this.$emit('addressSelect', split[1])
+    },
+
+
+    // 鏍规嵁鍖哄煙缂栫爜鑾峰彇琛楅亾鍒楄〃
+    getCommunity() {
+      if (this.communityFlag) {
+        return
+      }
+      if (this.streetCode) {
+        this.fetchData(this.communityList, this.streetCode)
+        this.communityFlag = true
+      }
+    },
+    // 绀惧尯淇敼锛屾媺鍙栫ぞ鍖哄垪琛�
+    changeCommunity(val) {
+      console.log("changeCommunity",val)
+      this.fetchData(this.communityList, this.streetCode)
+      this.communityFlag = true
+      var split = val.split("&");
+      this.$emit("input", split[1]);
+      this.$emit('addressSelect', split[1])
+    },
+
+    // 閲嶇疆鐪佸競鍖�/鍘跨紪鐮�
+    reset() {
+      this.provinceCode = '',
+          this.cityCode = '',
+          this.areaCode = '',
+          this.streetCode = '',
+          this.communityCode = ''
+    },
+    // 鍦板潃缂栫爜杞崲鎴愮渷甯傚尯琛楅亾绀惧尯鍒楄〃
+    addressCodeToList(addressCode) {
+      if (!addressCode) return false
+      let parms = {areaCode:addressCode}
+      this.$post("/base/area/list", parms).then((res) => {
+        if (res.code == 1) {
+          if(res.data.data.length>0){
+            let area = res.data.data[0];
+            let pid = area.pid + "&" + area.areaCode
+
+            if(area.areaLevel=='1'){
+              //鐪�
+              this.provinceCode = area.iid + "&" + area.areaCode
+              this.fetchData(this.provinceList, pid)
+              return
+            }else if(area.areaLevel=='2'){
+              //甯�
+              this.cityCode = area.iid + "&" + area.areaCode
+              this.fetchData(this.cityList, pid)
+            }else if(area.areaLevel=='3'){
+              //鍖哄幙
+              this.areaCode = area.iid + "&" + area.areaCode
+              this.fetchData(this.areaList, pid)
+            }else if(area.areaLevel=='4'){
+              //琛楅亾
+              let pid = area.pid + "&" + area.areaCode
+              this.fetchData(this.streetList,pid)
+              this.streetCode = area.iid + "&" + area.areaCode
+            }else if(area.areaLevel=='5'){
+              //绀惧尯
+              this.fetchData(this.communityList, pid)
+              this.communityCode = area.iid + "&" + area.areaCode
+            }
+            this.$post("/base/area/list", {iid:area.pid}).then((res) => {
+              this.addressCodeToList(res.data.data[0].areaCode)
+            })
+          }
+        }
+      }).catch((error) => {
+            this.$message.error(error.message);
+          });
+
+    }
+  },
+
+  watch: {
+    value: {
+      deep: true,
+      immediate: true,
+      handler(newVal) {
+        if (newVal) {
+
+          this.addressCodeToList(newVal)
+        } else {
+            this.$nextTick(() => {
+              this.reset()
+            })
+        }
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+</style>
diff --git a/enterprise-manager-ui/admin/src/views/company/drawershow.vue b/enterprise-manager-ui/admin/src/views/company/drawershow.vue
index 2c721fc31a29a1cd20b4ad0a72e8719aba16ea38..628aab37f6ae0a697314650d98093bea8d98ed56 100644
--- a/enterprise-manager-ui/admin/src/views/company/drawershow.vue
+++ b/enterprise-manager-ui/admin/src/views/company/drawershow.vue
@@ -5,20 +5,33 @@
             :visible.sync="open"
             :direction="direction"
             :destroy-on-close="true"
-            size="70%">
+            size="80%">
         <el-form ref="form" :model="form" :rules="rules" label-width="120px">
             <el-row>
-                                            <Field label="鍏徃鍚嶇О" prop="companyName" v-model="form.companyName" placeholder="璇疯緭鍏ュ叕鍙稿悕绉�"/>
+              <Field label="鍏徃鍚嶇О" prop="companyName" v-model="form.companyName" placeholder="璇疯緭鍏ュ叕鍙稿悕绉�"/>
                             <Field label="鍏徃缂栫爜" prop="companyCode" v-model="form.companyCode" placeholder="璇疯緭鍏ュ叕鍙哥紪鐮�"/>
                             <Field label="娉ㄥ唽鍙�" prop="registrationNumber" v-model="form.registrationNumber" placeholder="璇疯緭鍏ユ敞鍐屽彿"/>
                             <Field label="娉曞畾浠h〃浜�" prop="legalRepresentative" v-model="form.legalRepresentative" placeholder="璇疯緭鍏ユ硶瀹氫唬琛ㄤ汉"/>
                             <Field label="娉ㄥ唽璧勬湰" prop="registeredCapital" v-model="form.registeredCapital" placeholder="璇疯緭鍏ユ敞鍐岃祫鏈�"/>
                             <Field label="鍏徃绫诲瀷" prop="companyType" v-model="form.companyType" placeholder="璇疯緭鍏ュ叕鍙哥被鍨�"/>
                             <Field label="缁忚惀鑼冨洿" prop="businessScope" v-model="form.businessScope" placeholder="璇疯緭鍏ョ粡钀ヨ寖鍥�"/>
-                            <Field label="缁忚惀鍦板潃" prop="businessAdress" v-model="form.businessAdress" placeholder="璇疯緭鍏ョ粡钀ュ湴鍧€"/>
+<!--                            <Field :span="24" label="缁忚惀鍦板潃" prop="businessAdress" v-model="form.businessAdress" placeholder="璇疯緭鍏ョ粡钀ュ湴鍧€">
+                              <p>褰撳墠閫変腑鐨勮鏀垮尯鍒掔紪鐮佷负锛� {{regionCodeList}}</p>
+                              <el-cascader  v-model="regionCodeList" :props="areaprops"></el-cascader>
+                            </Field>-->
+
+              <Field :span="24" label="缁忚惀鍦板潃"  prop="businessAdress" v-model="form.businessAdress" placeholder="璇疯緭鍏ョ粡钀ュ湴鍧€">
+
+              <area-select v-model="form.areaCode"  @addressSelect="addressSelect"></area-select>
+
+              </Field>
+
+
+
                             <Field label="鎵€鍦ㄥ湴" prop="location" v-model="form.location" placeholder="璇疯緭鍏ユ墍鍦ㄥ湴"/>
-                            <Field label="鎵€灞炲尯鍩熺紪鐮�" prop="areaCode" v-model="form.areaCode" placeholder="璇疯緭鍏ユ墍灞炲尯鍩熺紪鐮�"/>
-                            <Field label="鎵€灞炲尯鍩熷悕绉�" prop="areaName" v-model="form.areaName" placeholder="璇疯緭鍏ユ墍灞炲尯鍩熷悕绉�"/>
+
+
+
                             <Field label="鑱旂郴鐢佃瘽" prop="contactPhone" v-model="form.contactPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�"/>
                             <Field label="鐢靛瓙閭欢鍦板潃" prop="email" v-model="form.email" placeholder="璇疯緭鍏ョ數瀛愰偖浠跺湴鍧€"/>
                             <Field label="鍏徃缃戠珯" prop="website" v-model="form.website" placeholder="璇疯緭鍏ュ叕鍙哥綉绔�"/>
@@ -116,7 +129,36 @@
             this.changePath("company")
         },
         data() {
+          let that = this
             return {
+
+                regionCodeList: [],
+                areaprops: {
+                  // 鍗曢€�
+                  checkStrictly: true,
+                  // 鎳掑姞杞�
+                  lazy: true,
+                  lazyLoad(node, resolve) {
+                    var param = {
+                      pid:node.level===0?0:node.data.id,
+                      size:-1
+                    };
+
+                    that.$post("/base/area/list", param)
+                        .then(res => {
+                          console.log(res)
+                          let nodes = res.data.data.map(item => {
+                            return {
+                              value: item.areaCode,
+                              label: item.name,
+                              id:item.iid,
+                              leaf: item.haveSonArea === "False"
+                            }
+                          })
+                          resolve(nodes)
+                        })
+                  }
+                },
                 // 瀛愯〃閫変腑鏁版嵁
                 checkedCompanyLabels: [],
                 // 鍏徃鏍囨敞琛ㄦ牸鏁版嵁
@@ -177,6 +219,13 @@
         },
 
         methods: {
+
+          addressSelect(val){
+
+            console.log("addressSelect",val)
+
+          },
+
             /** 鍏徃鏍囨敞搴忓彿 */
             rowCompanyLabelsIndex({ row, rowIndex }) {
                 row.index = rowIndex + 1;
diff --git a/enterprise-manager-ui/admin/src/views/company/list.vue b/enterprise-manager-ui/admin/src/views/company/list.vue
index 87eae409e74cf54a2ec8f1064ecbd3edac447573..ad6b943dd66a0f6eb99735d351d3362cece1db2a 100644
--- a/enterprise-manager-ui/admin/src/views/company/list.vue
+++ b/enterprise-manager-ui/admin/src/views/company/list.vue
@@ -3,7 +3,6 @@
         <LayoutTable :data="tableData" :config="tableConfig">
                     </LayoutTable>
 
-
         <drawer-show ref="drawerform" @ok="getData" />
     </div>
 </template>
@@ -21,24 +20,7 @@
         created() {
         },
         methods: {
-            renderTable(tableData) {
-                return (
-                    <el-table stripe data={tableData} class="total-table">
-                    {this.columnSet.map((item) => this.renderTableColumn(item))}
-                    </el-table>
-                );
-            },
-            renderTableColumn(options) {
-                return (
-                    <el-table-column
-                        prop={options.prop}
-                        label={options.label}
-                        width={options.width}
-                        formatter={options.formatter}
-                    >
-                    </el-table-column>
-                 );
-            },
+
             /** 閲嶅啓鏂板鏂规硶 */
             toAdd(row) {
                 this.$refs.drawerform.add(row);
@@ -55,81 +37,29 @@
         },
         data() {
             return {
-                /** 瀛愯〃鍒楀厓绱� */
-                columnSet:[
-                    {label: "鏍囩Id", prop: "labelId", formatter: this.formatter},
-                    {label: "鍏徃鍚嶇О", prop: "labelName"},
-                    {label: "鍏徃Id", prop: "companyId", formatter: this.formatter},
-                    {label: "鍏徃鍚嶇О", prop: "companyName"},
-                    {label: "澶囨敞", prop: "remark"},
-                ],
+
                 config: {
                     search: [
+                      {
+                        name: "companyName",
+                        type: "text",
+                        label: "鍏徃鍚嶇О",
+                        fuzzy: true,
+                      },
                     ],
                     columns: [
-                        {type: "selection", width: 60},
                         {type: "index",label: "搴忓彿",width: 50},
 
                         {label: "鍏徃鍚嶇О", prop: "companyName"},
 
-                        {label: "鍏徃缂栫爜", prop: "companyCode"},
-
-                        {label: "娉ㄥ唽鍙�", prop: "registrationNumber"},
-
-                        {label: "娉曞畾浠h〃浜�", prop: "legalRepresentative"},
-
-                        {label: "娉ㄥ唽璧勬湰", prop: "registeredCapital"},
-
-                        {label: "鍏徃绫诲瀷", prop: "companyType"},
-
-                        {label: "缁忚惀鑼冨洿", prop: "businessScope"},
-
-                        {label: "缁忚惀鍦板潃", prop: "businessAdress"},
-
-                        {label: "鎵€鍦ㄥ湴", prop: "location"},
-
-                        {label: "鎵€灞炲尯鍩熺紪鐮�", prop: "areaCode"},
-
-                        {label: "鎵€灞炲尯鍩熷悕绉�", prop: "areaName"},
-
                         {label: "鑱旂郴鐢佃瘽", prop: "contactPhone"},
 
-                        {label: "鐢靛瓙閭欢鍦板潃", prop: "email"},
-
-                        {label: "鍏徃缃戠珯", prop: "website"},
-
-                        {label: "绋庡姟鐧昏鍙�", prop: "taxRegistrationNumber"},
-
-                        {label: "绀句細淇$敤浠g爜", prop: "socialCreditCode"},
-
-                        {label: "鍟嗘爣淇℃伅", prop: "trademarkInfo"},
-
-                        {label: "缃戠珯鍘嗗彶澶囨淇℃伅", prop: "websiteRegistrationInfo"},
-
-                        {label: "鍛樺伐鎬绘暟", prop: "totalEmployees",formatter: this.formatter},
-
-                        {label: "杞欢钁椾綔鏉冩暟閲�", prop: "softNum",formatter: this.formatter},
+                        {label: "缁忚惀鍦板潃", prop: "businessAdress"},
 
-                        {label: "涓撳埄鏁伴噺", prop: "patentNum",formatter: this.formatter},
+                        {label: "鎻忚堪", prop: "companyIntroduction"},
 
-                        {label: "鍘嗗彶鍙戝睍", prop: "hisDevelop"},
+                        {label: "鏇存柊鏃堕棿", prop: "createTime", formatter: this.formatterDate},
 
-                        {label: "鍒涘缓鐢ㄦ埛", prop: "createUserId", formatter: this.formatter},
-                        {label: "鍏徃鏍囨敞",
-                          width: 120,
-                          prop: "subColumns",
-                          formatter: (row) => {
-                              let widthsize = this.columnSet.reduce((pre, cur) => {
-                                  return pre + Number(cur.width);
-                              }, 50);
-                              return (
-                                  <el-popover placement="right" width={widthsize} trigger="click">
-                                      {this.renderTable(row.companyLabelsList)}
-                                      <el-button type="text" slot="reference">璇︾粏</el-button>
-                                  </el-popover>
-                              );
-                          },
-                        },
                         {
                             label: "鎿嶄綔",
                             width: 240,
@@ -144,4 +74,4 @@
             };
         }
     };
-</script>
\ No newline at end of file
+</script>
diff --git a/enterprise-manager-ui/admin/src/views/login/login.vue b/enterprise-manager-ui/admin/src/views/login/login.vue
index 1866a90f02eb7325a71ad17e4d69635db277958f..080dea242bed5e09e17f1b7dcda0282a12c712fa 100644
--- a/enterprise-manager-ui/admin/src/views/login/login.vue
+++ b/enterprise-manager-ui/admin/src/views/login/login.vue
@@ -80,6 +80,7 @@ export default {
     loginSuccess({ data }) {
       this.$store.commit("setUserData", data);
       console.log("userData", this.$store.state.userData);
+      console.log("redirect",this.redirect)
       this.$router.replace({
         path: this.redirect
       });