Quellcode durchsuchen

feature_20250917_仿石漆潜在客户区域创建

zhujindu vor 2 Monaten
Ursprung
Commit
50170b76e3
1 geänderte Dateien mit 76 neuen und 35 gelöschten Zeilen
  1. 76 35
      src/views/storeManagement/competingStoresEdit.vue

+ 76 - 35
src/views/storeManagement/competingStoresEdit.vue

@@ -31,7 +31,8 @@
           name="picker"
           :value="fromData.storeCategoryName"
           label="客户类型"
-          placeholder="点击选择客户类型">
+          placeholder="点击选择客户类型"
+          :rules="[{ required: true, message: '请选择客户类型' }]">
           <template #left-icon>
             <span class="van-f-red">*</span>
           </template>
@@ -43,7 +44,8 @@
           :value="fromData.orgName"
           label="销售部"
           placeholder="点击选择销售部"
-          @click="PickerDept">
+          @click="PickerDept"
+          :rules="[{ required: true, message: '请选择销售部' }]">
           <template #left-icon>
             <span class="van-f-red">*</span>
           </template>
@@ -77,7 +79,8 @@
           :value="fromData.provinceName"
           label="省(州)"
           placeholder="点击选择省(州)"
-          @click="showProvincePicker = true">
+          @click="showProvincePicker = true"
+          :rules="[{ required: true, message: '请选择省(州)' }]">
           <template #left-icon>
             <span class="van-f-red">*</span>
           </template>
@@ -89,7 +92,8 @@
           :value="fromData.cityName"
           label="城市"
           placeholder="点击选择城市"
-          @click="showCityPicker = true">
+          @click="showCityPicker = true"
+          :rules="[{ required: true, message: '请选择城市' }]">
           <template #left-icon>
             <span class="van-f-red">*</span>
           </template>
@@ -101,7 +105,8 @@
           :value="fromData.districtName"
           label="区(县)"
           placeholder="点击选择区(县)"
-          @click="showDistrictPicker = true">
+          @click="showDistrictPicker = true"
+          :rules="[{ required: true, message: '请选择区(县)' }]">
           <template #left-icon>
             <span class="van-f-red">*</span>
           </template>
@@ -113,7 +118,8 @@
           :value="fromData.townName"
           label="街道"
           placeholder="点击选择街道"
-          @click="showTownPicker = true">
+          @click="showTownPicker = true"
+          :rules="[{ required: true, message: '请选择街道' }]">
           <template #left-icon>
             <span class="van-f-red">*</span>
           </template>
@@ -125,7 +131,8 @@
           rows="1"
           autosize
           type="textarea"
-          @blur="addressFn">
+          @blur="addressFn"
+          :rules="[{ required: true, message: '请选择地址' }]">
           <template #left-icon>
             <span class="van-f-red">*</span>
           </template>
@@ -142,7 +149,7 @@
           placeholder="请输入联系电话"
           :rules="[
             {
-              required: false,
+              required: true,
               validator: FSQValidatePhone,
               message: '请输入联系电话',
             },
@@ -151,7 +158,11 @@
             <span class="van-f-red">*</span>
           </template>
         </van-field>
-        <van-field v-model="fromData.salesmanName" label="联系人" placeholder="联系人">
+        <van-field
+          v-model="fromData.salesmanName"
+          label="联系人"
+          placeholder="联系人"
+          :rules="[{ required: true, message: '请输入联系人' }]">
           <template #left-icon>
             <span class="van-f-red">*</span>
           </template>
@@ -250,8 +261,9 @@
 <script>
 import { phoneCheck, streetQuery, getChainsByDeptCode } from '@/api/index';
 import { updateStore } from '@/api/FSQStore';
-import { getPosition, getTicketFun } from '@/utils/TXApiFun';
+import { getPosition, getTicketFun, getMapPoi, getkeywordPoi, getGeocoder } from '@/utils/TXApiFun';
 import { jsonp } from 'vue-jsonp';
+import { getstreetInfoList } from '@/api/addDesigner';
 export default {
   data() {
     return {
@@ -304,8 +316,6 @@ export default {
   activated() {
     this.showmap = false;
     // this.toastLoading(0, '加载中...', true);
-    // 获取地址
-    this.getStreetQuery();
     // 授权
     getTicketFun(['getLocation', 'chooseImage', 'uploadImage']).then(() => {
       this.$nextTick(() => {
@@ -315,30 +325,61 @@ export default {
   },
   methods: {
     getLocation() {
-      if (localStorage.getItem('loginType') == 'cs') {
-        this.fromData.lat = '31.2517820000';
-        this.fromData.lon = '120.5593090000';
-        this.addVisits();
-      } else {
-        getPosition()
-          .then((res) => {
-            let { TXisBD, resData } = res;
-            this.mlon = resData.longitude;
-            this.mlan = resData.latitude;
-            this.location = TXisBD;
-            this.fromData.lat = TXisBD.lat;
-            this.fromData.lon = TXisBD.lon;
-            this.location.lat1 = resData.latitude;
-            this.location.lon1 = resData.longitude;
-            this.addVisits();
-          })
-          .catch((error) => {
-            // this.beforeAddFn();
-            this.$dialog.alert({
-              message: error,
-            });
+      getPosition()
+        .then((res) => {
+          let { TXisBD, resData } = res;
+          this.mlon = resData.longitude;
+          this.mlan = resData.latitude;
+          this.location = TXisBD;
+          this.fromData.lat = TXisBD.lat;
+          this.fromData.lon = TXisBD.lon;
+          this.location.lat1 = resData.latitude;
+          this.location.lon1 = resData.longitude;
+          this.addVisits();
+          this.initData();
+        })
+        .catch((error) => {
+          // this.beforeAddFn();
+          this.$dialog.alert({
+            message: error,
           });
-      }
+        });
+    },
+    initData() {
+      getGeocoder({ latitude: this.location.lat1, longitude: this.location.lon1 })
+        .then((res) => {
+          if (res.status == 0 && res.result) {
+            let result = res.result;
+            this.fromData.cityNameOld = result.ad_info.city;
+            this.fromData.districtNameOld = result.ad_info.district;
+            let addresses = result.formatted_addresses; // 描述性地址
+            getstreetInfoList({ districtName: result.ad_info.district }).then((response) => {
+              if (response.code == 200 && response.data) {
+                this.fromData.province = response.data.provinceCode;
+                this.fromData.city = response.data.cityCode;
+                this.fromData.district = response.data.countyCode;
+                this.fromData.provinceName = response.data.provinceName;
+                this.fromData.cityName = response.data.cityName;
+                this.fromData.districtName = response.data.countyName;
+                this.$nextTick(() => {
+                  this.getStreetQuery();
+                  this.getStreetQuery('1');
+                  this.getStreetQuery('2');
+                  this.getStreetQuery('3');
+                });
+              }
+            });
+            if (addresses) {
+              this.fromData.addressLine = addresses.recommend;
+              localStorage.setItem('locationRemark', addresses.recommend);
+            }
+          } else {
+            this.toastLoading().clear();
+          }
+        })
+        .catch(() => {
+          this.toastLoading().clear();
+        });
     },
     addVisits() {
       var that = this;