Przeglądaj źródła

申请开店页补上用 hasMap 控制是否使用地图定位功能

shizhongqi 11 miesięcy temu
rodzic
commit
f530b430df

+ 2 - 3
ghsApp/src/components/app-area-sel.vue

@@ -86,7 +86,7 @@
 				});
 				suggestion({ region: this.city, keyword: this.keyword }).then(res => {
 					uni.hideLoading();
-					console.log("地址搜索返回数据:", res);
+					//console.log("地址搜索返回数据:", res);
 					
 					// 处理数据结构
 					let dataList = [];
@@ -103,8 +103,7 @@
 							duration: 1800
 						});
 					}
-					
-					console.log("处理后的地址数据:", this.nearListData);
+					//console.log("处理后的地址数据:", this.nearListData);
 				}).catch(err => {
 					uni.hideLoading();
 					console.error("地址请求失败:", err);

+ 7 - 2
ghsApp/src/pagesClient/member/modify.vue

@@ -54,6 +54,7 @@ export default {
 			form: {
 				province: '',
 				city: '',
+				dist: '',
 				address: '',
 				floor: '',
 				showAddress:''
@@ -108,14 +109,18 @@ export default {
 			this.showRegion = true
 		},
 		changeAreaFn(e) {
-			this.form.address = e.name
-
 			let locationStr = e.location
 			let fruits = locationStr.split(",").map(fruit => fruit.trim())
 
 			this.region.lat = fruits[1]
 			this.region.long = fruits[0]
 			this.form.showAddress = e.address
+			this.form.address = e.name
+
+			// 提取地区信息,按遇到第一个"市"字后,把"市"后面的字符串作为地区
+			const districtStr = e.district || '';
+			const cityIndex = districtStr.indexOf('市');
+			this.form.dist = cityIndex !== -1 ? districtStr.substring(cityIndex + 1) : districtStr;
 		},
 		confirmFn() {
 			let that = this

+ 49 - 13
ghsApp/src/pagesClient/official/apply.vue

@@ -15,13 +15,24 @@
           <div class="tui-input" v-if="form.province" >{{ form.province + '-' + form.city }}</div>
           <div class="tui-placeholder" v-else >请选择</div>
         </tui-list-cell>
-        <tui-list-cell class="line-cell" :hover="false">
+        <!-- <tui-list-cell class="line-cell" :hover="false">
           <div class="tui-title">所在地址</div>
           <input v-model="form.address" type="text" placeholder-class="phcolor" placeholder-style="color:#CCCCCC" class="tui-input" name="address" placeholder="请填写" />
-        </tui-list-cell>
+        </tui-list-cell> -->
+        <tui-list-cell v-if="hasMap == 0" class="line-cell" :hover="false">
+					<view class="tui-title">所在地址</view>
+					<input v-model="form.address" placeholder-class="phcolor"
+          placeholder-style="color:#CCCCCC" class="tui-input" name="address" @input="modifyShow" placeholder="请填写" />
+				</tui-list-cell>
+				<tui-list-cell v-else class="line-cell" :hover="false" :arrow="true" @click="selectRegion">
+					<view class="tui-title">所在地址</view>
+					<view v-if="form.address" class="tui-input">{{ form.address }}</view>
+					<view v-else class="tui-placeholder">请填写地址</view>
+					<input v-model="form.address" name="address" hidden />
+				</tui-list-cell>
         <tui-list-cell class="line-cell" :hover="false" >
           <div class="tui-title">楼号门牌</div>
-          <input v-model="form.floor" type="text" placeholder-class="phcolor" placeholder-style="color:#CCCCCC" class="tui-input" name="floor" placeholder="选填" />
+          <input v-model="form.floor" type="text" placeholder-class="phcolor" placeholder-style="color:#CCCCCC" class="tui-input" name="floor" placeholder="选填" @input="modifyShow"  />
         </tui-list-cell>
       </view>
 
@@ -73,7 +84,8 @@
 
       <!-- 省市联动 -->
       <simple-address ref="simpleAddress" :pickerValueDefault="cityPickerValueDefault" @onConfirm="onCityConfirm" ></simple-address>
-
+      <!-- 选择地区 -->
+		  <app-area-sel :show.sync="showRegion" :city="form.city" @change="changeAreaFn" />
     </form>
   </div>
 </template>
@@ -90,9 +102,8 @@ import {getAuthCode} from "@/api/apply";
 import { mapGetters } from "vuex"
 //图片上传插件来源:https://ext.dcloud.net.cn/plugin?id=2922 已改造,不能再升级 shish 20211228
 import htzImageUpload from '@/components/htz-image-upload/htz-image-upload.vue'
-import { mapResolve } from "@/api/map";
-import util from '@/utils/util';
 import { APIHOST } from '@/config'
+import {getHasMap} from "@/api/express"
 export default {
   name: "apply-data",
   components: {
@@ -119,8 +130,8 @@ export default {
         licenseNo: "",
         license: "",
         floor: "",
-        longitude: 10,
-        latitude: 11,
+        longitude: 0,
+        latitude: 0,
         showAddress:"",
         authCode:"",
         cover:'',
@@ -135,7 +146,8 @@ export default {
       INT:false,
       headers:{token:''},
       currentImgData: [],
-      uploadImgUrl:APIHOST+'/upload/save-file'
+      uploadImgUrl:APIHOST+'/upload/save-file',
+      hasMap:0
     };
   },
 	computed:{
@@ -143,14 +155,14 @@ export default {
 	},
   onLoad () {
     const token = uni.getStorageSync('token')
-    this.headers.token = token
+    this.headers.token = token,
+    getHasMap().then(res=>{
+      this.hasMap = res.data.hasMap
+    })
   },
   onUnload(){
     clearInterval(this.INT)
   },
-	onShow() {
-
-	},
   methods: {
     suggest(){
       let that = this
@@ -233,6 +245,30 @@ export default {
     imgDeleteFn(res){
       this.form.cover =''
     },
+    selectRegion() {
+			if (!this.form.city) {
+				this.$msg('请先选择城市!')
+				return false
+			}
+			this.showRegion = true
+		},
+    modifyShow(){
+			this.form.showAddress = this.form.city+this.form.address+this.form.floor
+		},
+    changeAreaFn(e) {
+			let locationStr = e.location
+			let fruits = locationStr.split(",").map(fruit => fruit.trim())
+
+			this.form.latitude = fruits[1]
+			this.form.longitude = fruits[0]
+			this.form.showAddress = e.address
+      this.form.address = e.name
+
+      // 提取地区信息,按遇到第一个"市"字后,把"市"后面的字符串作为地区
+			const districtStr = e.district || '';
+			const cityIndex = districtStr.indexOf('市');
+			this.form.dist = cityIndex !== -1 ? districtStr.substring(cityIndex + 1) : districtStr;
+		},
     formSubmit (e) {
       let rules = [
         { name: "name", rule: ["required"], msg: ["请填写名称"] },

+ 48 - 10
hdApp/src/pagesClient/official/apply.vue

@@ -60,13 +60,23 @@
           <div class="tui-placeholder" v-else style="width:280upx;">请选择城市</div>
           <button class="admin-button-com blue small" @click.stop="onHere">我在昆明</button>
         </tui-list-cell>
-        <tui-list-cell class="line-cell" :hover="false">
+        <!-- <tui-list-cell class="line-cell" :hover="false">
           <div class="tui-title">所在地址</div>
           <input v-model="form.address" type="text" placeholder-class="phcolor" placeholder-style="color:#CCCCCC" class="tui-input" name="address" placeholder="请填写地址" />
-        </tui-list-cell>
+        </tui-list-cell> -->
+        <tui-list-cell v-if="hasMap == 0" class="line-cell" :hover="false">
+					<view class="tui-title">所在地址</view>
+					<input v-model="form.address" placeholder-class="phcolor" placeholder-style="color:#CCCCCC" class="tui-input" name="address" @input="modifyShow" placeholder="请填写地址" />
+				</tui-list-cell>
+				<tui-list-cell v-else class="line-cell" :hover="false" :arrow="true" @click="selectRegion">
+					<view class="tui-title">所在地址</view>
+					<view v-if="form.address" class="tui-input">{{ form.address }}</view>
+					<view v-else class="tui-placeholder">请填写地址</view>
+					<input v-model="form.address" name="address" hidden />
+				</tui-list-cell>
         <tui-list-cell class="line-cell" :hover="false" >
           <div class="tui-title">楼号门牌</div>
-          <input v-model="form.floor" type="text" placeholder-class="phcolor" placeholder-style="color:#CCCCCC" class="tui-input" name="floor" placeholder="选填" />
+          <input v-model="form.floor" type="text" placeholder-class="phcolor" placeholder-style="color:#CCCCCC" class="tui-input" name="floor" placeholder="选填" @input="modifyShow" />
         </tui-list-cell>
       </view>
 
@@ -99,7 +109,8 @@
 
       <!-- 省市联动 -->
       <simple-address ref="simpleAddress" :pickerValueDefault="cityPickerValueDefault" @onConfirm="onCityConfirm" ></simple-address>
-
+      <!-- 选择地区 -->
+		  <app-area-sel :show.sync="showRegion" :city="form.city" @change="changeAreaFn" />
     </form>
   </div>
 </template>
@@ -113,18 +124,16 @@ import AppUploader from "@/components/app-uploader";
 const form = require("@/utils/formValidation.js");
 import {getIntroduce,applyRegister} from "@/api/official";
 import {getAuthCode} from "@/api/apply";
-import { replaceClientId } from '@/api/admin'
 import { mapGetters,mapActions } from "vuex"
 //图片上传插件来源:https://ext.dcloud.net.cn/plugin?id=2922 已改造,不能再升级 shish 20211228
 import htzImageUpload from '@/components/htz-image-upload/htz-image-upload.vue'
-import { mapResolve } from "@/api/map";
-import util from '@/utils/util';
 import { APIHOST } from '@/config'
 import { getShopInfo} from "@/utils/auth";
 import { getDictionaries } from '@/api/mini'
 import { checkShop } from '@/api/shop'
 import { ghsInfo } from "@/api/ghs/index";
 import { getMobile } from "@/api/auth";
+import {getHasMap} from "@/api/express"
 export default {
   name: "apply-data",
   components: {
@@ -151,12 +160,13 @@ export default {
         licenseNo: "",
         license: "",
         floor: "",
-        longitude: 10,
-        latitude: 11,
+        longitude: 0,
+        latitude: 0,
         showAddress:"",
         authCode:"",
         cover:''
       },
+      showRegion: false,
       cityPickerValueDefault: [0, 0],
       adminName: "",
       logo: '',
@@ -167,7 +177,8 @@ export default {
       currentImgData: [],
       isHd:1,
       uploadImgUrl:APIHOST+'/upload/save-file',
-      fillMobile:0
+      fillMobile:0,
+      hasMap:0
     };
   },
 	computed:{
@@ -179,6 +190,9 @@ export default {
     // #ifdef APP-PLUS
     this.fillMobile = 1
     // #endif
+    getHasMap().then(res=>{
+      this.hasMap = res.data.hasMap
+    })
   },
   onUnload(){
     clearInterval(this.INT)
@@ -300,6 +314,30 @@ export default {
     imgDeleteFn(res){
       this.form.cover=''
     },
+    selectRegion() {
+			if (!this.form.city) {
+				this.$msg('请先选择城市!')
+				return false
+			}
+			this.showRegion = true
+		},
+    modifyShow(){
+			this.form.showAddress = this.form.city+this.form.address+this.form.floor
+		},
+    changeAreaFn(e) {
+			let locationStr = e.location
+			let fruits = locationStr.split(",").map(fruit => fruit.trim())
+
+			this.form.latitude = fruits[1]
+			this.form.longitude = fruits[0]
+			this.form.showAddress = e.address
+      this.form.address = e.name
+
+      // 提取地区信息,按遇到第一个"市"字后,把"市"后面的字符串作为地区
+			const districtStr = e.district || '';
+			const cityIndex = districtStr.indexOf('市');
+			this.form.dist = cityIndex !== -1 ? districtStr.substring(cityIndex + 1) : districtStr;
+		},
     formSubmit (e) {
       let rules = [
         { name: "name", rule: ["required"], msg: ["请填写名称"] },