Ver código fonte

fix: 定位调整

zh 2 anos atrás
pai
commit
66e7a8a774

+ 9 - 0
src/api/common.js

@@ -149,3 +149,12 @@ export function updateStockCostDict(params) {
     params
   })
 }
+
+// 高德省市区街道
+export function getAutonaviRegion(params) {
+  return request({
+    url: '/common/region',
+    method: 'post',
+    params
+  })
+}

+ 22 - 37
src/views/commercialEngineering/components/base.vue

@@ -238,22 +238,23 @@
           <div class="label">工程(建筑)地址*:</div>
           <div class="value">
             <el-select v-model="formData.provinceId" placeholder="请选择省" class="my-width" @change="changeProvince">
-              <el-option v-for="item in provinceList" :key="item.id" :label="item.name" :value="item.id" />
+              <el-option v-for="item in provinceList" :key="item.lbsId" :label="item.name" :value="item.lbsId" />
             </el-select>
             <el-select v-model="formData.cityId" placeholder="请选择市" class="my-width" @change="changeCity">
-              <el-option v-for="item in cityList" :key="item.id" :label="item.name" :value="item.id" />
+              <el-option v-for="item in cityList" :key="item.lbsId" :label="item.name" :value="item.lbsId" />
             </el-select>
             <el-select v-model="formData.areaId" placeholder="请选择区" class="my-width" @change="changeArea">
-              <el-option v-for="item in areaList" :key="item.id" :label="item.name" :value="item.id" />
+              <el-option v-for="item in areaList" :key="item.lbsId" :label="item.name" :value="item.lbsId" />
             </el-select>
             <el-select v-model="formData.streetId" placeholder="请选择街道" class="my-width" @change="changeStreet">
-              <el-option v-for="item in streetList" :key="item.id" :label="item.name" :value="item.id" />
+              <el-option v-for="item in streetList" :key="item.lbsId" :label="item.name" :value="item.lbsId" />
             </el-select>
           </div>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="24" class="item">
           <div class="label">详细地址*:</div>
           <div class="value">
+            <el-input v-model="formData.positionAddress" placeholder="定位地址" size="mini" clearable disabled />
             <el-input v-model="formData.address" placeholder="请填写详细地址" size="mini" clearable />
             <geographicalPosi v-if="module !== 'detail'" :form-data="formData" @selectPosi="handleSelectPosi" />
           </div>
@@ -439,7 +440,7 @@
 
 <script>
 import { findElem } from '@/utils/util'
-import { getRegion } from '@/api/sales'
+import { getAutonaviRegion } from '@/api/common'
 import { getTradeConfigList } from '@/api/basic_data/sectorAllocation'
 import GeographicalPosi from './geographicalPosi.vue'
 import FileUpload from '@/components/Common/file-upload.vue'
@@ -531,7 +532,6 @@ export default {
             }
           })
         }
-
         if (this.formData.homeProjectNameRadio === 'SELF') {
           this.formData.homeProjectNameArea2 = this.formData.homeProjectNameArea
         }
@@ -553,24 +553,9 @@ export default {
     }
   },
   created() {
-    const districtSearchOptions = {
-      level: 'country',
-      //  显示下级行政区级数,1表示返回下一级行政区
-      subdistrict: 1
-    }
-    const amapDistrictSearch = new AMap.DistrictSearch(districtSearchOptions)
-    amapDistrictSearch.setLevel('province') // 行政区级别
-    amapDistrictSearch.setExtensions('all')
-    amapDistrictSearch.search('410000', (status, result) => {
-      console.log(result)
-      if (status == 'complete') {
-        console.log(result)
-      }
-    })
-
     this.getTradeConfigList()
     if (this.module === 'add') {
-      this.getRegion()
+      this.getAutonaviRegion()
       if (this.isCustomer) {
         this.formData.customerId = this.customerId
         this.formData.customerNumber = this.customerNumber
@@ -588,8 +573,8 @@ export default {
   },
   methods: {
     // 获取省市区街道
-    getRegion(level = 0, id = 0) {
-      getRegion({ pid: id }).then(res => {
+    getAutonaviRegion(level = 0, id = null) {
+      getAutonaviRegion({ parentLbsId: id }).then(res => {
         if (level === 0) {
           if (['frock', 'home'].includes(this.pageType)) {
             this.provinceList = res.data.filter(k => {
@@ -599,6 +584,7 @@ export default {
           } else {
             this.provinceList = res.data
           }
+          console.log(res.data)
         } else if (level === 1) {
           this.cityList = res.data
           //   this.getPosition(res.data, 'cityId', 'city')
@@ -615,9 +601,9 @@ export default {
         this.formData[id] = item.id
         this.formData[name] = item.name
         if (name === 'province') {
-          this.getRegion(1, item.id)
+          this.getAutonaviRegion(1, item.id)
         } else {
-          this.getRegion(2, item.id)
+          this.getAutonaviRegion(2, item.id)
         }
       }
     },
@@ -642,7 +628,7 @@ export default {
       })
     },
     handleArea(value, type) {
-      this.formData[type] = this[type + 'List'].find(k => k.id === value).name
+      this.formData[type] = this[type + 'List'].find(k => k.lbsId === value).name
     },
     // 切换省
     changeProvince(value) {
@@ -652,7 +638,7 @@ export default {
       this.cityList = []
       this.areaList = []
       this.streetList = []
-      this.getRegion(1, value)
+      this.getAutonaviRegion(1, value)
       this.handleArea(value, 'province')
     },
 
@@ -662,7 +648,7 @@ export default {
       this.formData.streetId = ''
       this.areaList = []
       this.streetList = []
-      this.getRegion(2, value)
+      this.getAutonaviRegion(2, value)
       this.handleArea(value, 'city')
     },
 
@@ -671,13 +657,13 @@ export default {
       this.areaValue = value
       this.formData.streetId = ''
       this.streetList = []
-      this.getRegion(3, value)
+      this.getAutonaviRegion(3, value)
       this.handleArea(value, 'area')
     },
 
     // 切换街道
     changeStreet(value) {
-      this.getRegion(3, this.areaValue)
+      this.getAutonaviRegion(3, this.areaValue)
       this.handleArea(value, 'street')
     },
 
@@ -685,7 +671,7 @@ export default {
     initRegion(level, item, id = 0) {
       const { province, city, area, street } = item
       let nextId = null
-      getRegion({ pid: id }).then(res => {
+      getAutonaviRegion({ pid: id }).then(res => {
         if (level === 0) {
           this.provinceList = res.data
           nextId = this.formData.provinceId = this.provinceList[findElem(this.provinceList, 'name', province)].id
@@ -783,12 +769,12 @@ export default {
       this.formData.lnt = data.center[0]
       this.formData.lat = data.center[1]
       this.formData.positionAddress = data.name
-      this.formData.address = data.name
+      // this.formData.address = data.name
       var { province, city, district, township } = data.data.addressComponent
       console.log(province, city, district, township)
       const area = district
       const street = township
-      await this.getCallbackPosition(0, province, 'province')
+      await this.getCallbackPosition(null, province, 'province')
       await this.getCallbackPosition(this.formData.provinceId, city, 'city')
       await this.getCallbackPosition(this.formData.cityId, area, 'area')
       await this.getCallbackPosition(this.formData.areaId, street, 'street')
@@ -801,12 +787,11 @@ export default {
      * @param {*} way // 筛选属性,默认name
      */
     async getCallbackPosition(id = 0, value = '', name, way = 'name') {
-      const { data } = await getRegion({ pid: id })
+      const { data } = await getAutonaviRegion({ parentLbsId: id })
       this[name + 'List'] = data
       const temp = data.find(k => k[way] == value)
-      console.log(temp, 999, value)
       this.formData[name] = temp && temp.name
-      this.formData[name + 'Id'] = temp && temp.id
+      this.formData[name + 'Id'] = temp && temp.lbsId
     },
     openPdf(item) {
       const link = document.createElement('a')

+ 8 - 10
src/views/commercialEngineering/components/examine.vue

@@ -31,19 +31,19 @@
             </el-col>
             <el-col :span="7" class="flex-box">
               <div class="flex-box-title">经销商编号</div>
-              <el-input v-model="formData.customerNumber" class="my-input" placeholder="请填写" size="mini" clearable />
+              <el-input v-model="formData.customerNumber2" class="my-input" placeholder="请填写" size="mini" clearable />
             </el-col>
             <el-col :span="7" class="flex-box">
               <div class="flex-box-title">经销商名称</div>
-              <el-input v-model="formData.customerName" class="my-input" placeholder="请填写" size="mini" clearable />
+              <el-input v-model="formData.customerName2" class="my-input" placeholder="请填写" size="mini" clearable />
             </el-col>
             <el-col :span="7" class="flex-box">
               <div class="flex-box-title">业务员编号</div>
-              <el-input v-model="formData.serviceNumber" class="my-input" placeholder="请填写" size="mini" clearable />
+              <el-input v-model="formData.serviceNumber2" class="my-input" placeholder="请填写" size="mini" clearable />
             </el-col>
             <el-col :span="7" class="flex-box">
               <div class="flex-box-title">业务员名称</div>
-              <el-input v-model="formData.serviceName" class="my-input" placeholder="请填写" size="mini" clearable />
+              <el-input v-model="formData.serviceName2" class="my-input" placeholder="请填写" size="mini" clearable />
             </el-col>
           </div>
         </el-col>
@@ -169,17 +169,15 @@ export default {
     }
   },
   created() {
-    console.log(this.formData, this.module, 8888)
   },
   methods: {
     handleSuccess(val) {
-      console.log(val)
       const res = val[0]
       this.formData.successLoginProject = res.projectNo
-      this.formData.customerNumber = res.customerNumber
-      this.formData.customerName = res.customerName
-      this.formData.serviceName = res.serviceName
-      this.formData.serviceNumber = res.serviceNumber
+      this.formData.customerNumber2 = res.customerNumber
+      this.formData.customerName2 = res.customerName
+      this.formData.serviceName2 = res.serviceName
+      this.formData.serviceNumber2 = res.serviceNumber
     },
     handleCancel() {
       this.showDialog = false

+ 35 - 3
src/views/commercialEngineering/mixin/index.js

@@ -3,7 +3,9 @@ import { getDictList, getSalesmanList } from '@/api/common'
 import { getDealerListV2 } from '@/api/basic_data/dealer'
 import { getFirstPartyCustomerManagementList } from '@/api/basic_data/partya'
 import { mapGetters } from 'vuex'
-
+import { getLoginHomeDecorationList } from '@/api/homeDecoration'
+import { getLoginCrossDistrictList } from '@/api/crossDistrict'
+import { getLoginFrockList } from '@/api/frock'
 export default {
   props: {
     detailId: {
@@ -100,7 +102,11 @@ export default {
         tradeParentId: '',
         type: 'DRAW',
         useExtent: '',
-        fileList: []
+        fileList: [],
+        serviceNumber2: '',
+        serviceName2: '',
+        customerNumber2: '',
+        customerName2: ''
       },
       commonData: {
         dict: {
@@ -157,7 +163,7 @@ export default {
           return {
             label: k.nickName,
             value: k.adminUserId,
-            userName:k.userName
+            userName: k.userName
           }
         })
       })
@@ -209,6 +215,7 @@ export default {
             }
           ]
         }
+        this.getData()
       })
     },
     getPositionProject() {
@@ -221,6 +228,31 @@ export default {
         ...this.resetData,
         id: this.detailId
       }
+    },
+    getData() {
+      if (!this.formData.successLoginProject) return
+      const params = {
+        pageNum: 1,
+        pageSize: 15,
+        param: [
+          {
+            'param': 'a.project_no',
+            'compare': 'like',
+            'value': this.formData.successLoginProject
+          }
+        ]
+      }
+      const objFn = {
+        'home': getLoginHomeDecorationList(params),
+        'cross': getLoginCrossDistrictList(params),
+        'frock': getLoginFrockList(params)
+      }
+      objFn[this.pageType].then(res => {
+        this.formData.customerNumber2 = res.data.customerNumber
+        this.formData.customerName2 = res.data.customerName
+        this.formData.serviceName2 = res.data.serviceName
+        this.formData.serviceNumber2 = res.data.serviceNumber
+      })
     }
   }
 }

+ 2 - 1
src/views/secondaryMerchant/components/subMerchantForm.vue

@@ -28,12 +28,13 @@
             </el-col>
             <el-col :span="6">
               <el-form-item label="上级商户信息" prop="higherPrantName">
-                <el-input v-if="isCustomer" v-model="formData.higherPrantName" disabled placeholder="系统自动生成" />
+                <el-input v-if="isCustomer" v-model="formData.higherPrantName" placeholder="系统自动生成" disabled />
                 <el-select
                   v-else
                   v-model="formData.higherPrantName"
                   placeholder="请选择"
                   clearable
+                  filterable
                   style="width: 100%"
                   @change="handleChange"
                 >