Merge pull request '邓洁 :发布表单区域街道联动' (#107) from dj into master

Reviewed-on: http://git.feashow.cn/odjbin/city-store-transfer/pulls/107
This commit is contained in:
odjbin
2023-11-26 13:05:46 +00:00
6 changed files with 250 additions and 92 deletions

View File

@@ -29,7 +29,7 @@
</view>
<view class="location-detail">
<text>行业{{shopInfo.trade1}}</text>
<text>行业{{shopInfo.trade1+'-'}}{{shopInfo.trade2}}</text>
<text>区域{{shopInfo.area1}}</text>
<text v-if="search">地址{{shopInfo.adress}}</text>
</view>

View File

@@ -37,21 +37,24 @@
:columns="[Karmacolumns]" v-model="form.commercialForm" @confirm="karmaConfirm"></u-picker>
</u-form-item>
<u-form-item label="面积" label-position="top" border-bottom="true" label-width="auto" prop="area">
<u-input v-model="form.area" placeholder="请输入店铺面积" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.area" placeholder="请输入店铺面积" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="预计投资" label-position="top" border-bottom="true" label-width="auto" prop="transferFee">
<u-input v-model="form.transferFee" placeholder="请输入预计投资" placeholder-class="input-class" type="number"
border="none"></u-input>
</u-form-item>
<u-form-item label="租金(元/月)" label-position="top" border-bottom="true" label-width="auto" prop="rent">
<u-input v-model="form.rent" placeholder="请输入店铺租金" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.rent" placeholder="请输入店铺租金" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="联系人" label-position="top" border-bottom="true" label-width="auto" prop="contactPerson">
<u-input v-model="form.contactPerson" placeholder="请输入联系人姓名" placeholder-class="input-class"
border="none"></u-input>
</u-form-item>
<u-form-item label="手机号码" label-position="top" border-bottom="true" label-width="auto" prop="phone">
<u-input v-model="form.phone" placeholder="请输入联系人手机号码" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.phone" placeholder="请输入联系人手机号码" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="详情介绍" label-position="top" border-bottom="true" label-width="auto" prop="details">
<u-input v-model="form.details" placeholder="请输入介绍详情" placeholder-class="input-class" border="none"></u-input>

View File

@@ -21,8 +21,9 @@
<view class="arrow-icon">
<u-icon name="arrow-right" size="30px" @click="show1 = true"></u-icon>
</view>
<u-picker :columns="regionColumns" :show="show1" :closeOnClickOverlay="true" @close="show1 = false"
v-model="form.region" @confirm="regionConfirm"></u-picker>
<u-picker :columns="[regionColumns]" ref="regionPicker" :show="show1" :closeOnClickOverlay="true"
@close="show1 = false" v-model="form.region" @confirm="regionConfirm"
@change="changeRegionHandler"></u-picker>
</u-form-item>
<u-form-item label="项目地址" label-position="top" border-bottom="true" prop="address" label-width="auto">
<u-input v-model="form.address" placeholder="请输入项目地址" placeholder-class="input-class" border="none"
@@ -39,17 +40,20 @@
:columns="[Classcolumns]" v-model="form.business" @confirm="tradeConfirm"></u-picker>
</u-form-item>
<u-form-item label="面积" label-position="top" border-bottom="true" label-width="auto" prop="area">
<u-input v-model="form.area" placeholder="请输入店铺面积" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.area" placeholder="请输入店铺面积" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="租金(元/月)" label-position="top" border-bottom="true" label-width="auto" prop="rent">
<u-input v-model="form.rent" placeholder="请输入店铺租金" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.rent" placeholder="请输入店铺租金" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="联系人" label-position="top" border-bottom="true" label-width="auto" prop="contactPerson">
<u-input v-model="form.contactPerson" placeholder="请输入联系人姓名" placeholder-class="input-class"
border="none"></u-input>
</u-form-item>
<u-form-item label="手机号码" label-position="top" border-bottom="true" label-width="auto" prop="phone">
<u-input v-model="form.phone" placeholder="请输入联系人手机号码" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.phone" placeholder="请输入联系人手机号码" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="详情介绍" label-position="top" border-bottom="true" label-width="auto" prop="details">
<u-input v-model="form.details" placeholder="请输入介绍详情" placeholder-class="input-class" border="none"></u-input>
@@ -69,6 +73,9 @@
imageLength: 0,
fileList1: [],
regionColumns: [],
regionSecondColumns: [],
regionId: [],
regionCheckId: '',
form: {
title: '',
region: '',
@@ -226,6 +233,8 @@
}
let data = {
...this.form,
address: this.form.region.split('-')[1] + this.form.address,
region: this.form.region.split('-')[0],
images: temp.join(',')
}
console.log("项目招商:", data)
@@ -255,13 +264,53 @@
// console.log('changeAddress', e);
this.getAddressList(e)
},
changeRegionHandler(e) {
const {
columnIndex,
value,
values, // values为当前变化列的数组内容
index,
// 微信小程序无法将picker实例传出来只能通过ref操作
picker = this.$refs.regionPicker
} = e
// 当第一列值发生变化时,变化第二列(后一列)对应的选项
if (columnIndex === 0) {
// picker为选择器this实例变化第二列对应的选项
this.regionCheckId = this.regionId[index]
const that = this
uni.request({
url: 'https://apis.map.qq.com/ws/district/v1/getchildren?id=' + that.regionCheckId + '&key=' +
that.$api.key,
success(res) {
that.regionSecondColumns = res.data.result[0].map(item => item.fullname)
picker.setColumnValues(1, that.regionSecondColumns)
},
fail(err) {
console.log('请求区域失败:', err);
}
})
}
},
getRegionList() {
var that = this
uni.request({
url: 'https://apis.map.qq.com/ws/district/v1/getchildren?id=' + uni.getStorageSync('city_code') + '&key=' +
that.$api.key,
success(res) {
that.regionColumns = [res.data.result[0].map(item => item.fullname)]
that.regionColumns = res.data.result[0].map(item => item.fullname)
that.regionId = res.data.result[0].map(item => item.id)
var that1 = that
uni.request({
url: 'https://apis.map.qq.com/ws/district/v1/getchildren?id=' + that1.regionId[0] + '&key=' +
that1.$api.key,
success(res) {
that1.regionSecondColumns = res.data.result[0].map(item => item.fullname)
that1.$refs.regionPicker.setColumnValues(1, that1.regionSecondColumns)
},
fail(err) {
console.log('请求区域失败:', err);
}
})
},
fail(err) {
console.log('请求区域失败:', err);
@@ -274,7 +323,6 @@
url: 'https://apis.map.qq.com/ws/geocoder/v1/?address=' + that.form.region + value + '&key=' +
that.$api.key,
success(res) {
console.log('diz', res.data.result.location);
if (res.data.message == "query ok") {
// console.log('lat', res.data.result.location.lat);
that.form.latitude = res.data.result.location.lat
@@ -306,7 +354,7 @@
},
regionConfirm(e) {
this.show1 = false
this.form.region = e.value[0]
this.form.region = e.value[0] + '-' + e.value[1]
},
getDetail(type, id) {
console.log('type, id', type, id);

View File

@@ -21,8 +21,9 @@
<view class="arrow-icon">
<u-icon name="arrow-right" size="30px" @click="show1 = true"></u-icon>
</view>
<u-picker :columns="regionColumns" :show="show1" :closeOnClickOverlay="true" @close="show1 = false"
v-model="form.region" @confirm="regionConfirm"></u-picker>
<u-picker :columns="[regionColumns]" ref="regionPicker" :show="show1" :closeOnClickOverlay="true"
@close="show1 = false" v-model="form.region" @confirm="regionConfirm"
@change="changeRegionHandler"></u-picker>
</u-form-item>
<u-form-item label="地址" label-position="top" border-bottom="true" prop="address" label-width="auto">
<u-input v-model="form.address" placeholder="请输入店铺地址" placeholder-class="input-class" border="none"
@@ -30,7 +31,8 @@
</u-form-item>
<u-form-item label="行业" label-position="top" border-bottom="true" class="picker" label-width="auto"
prop="business">
<text @click="show2 = true" class="checkedtext" v-if="form.business">{{form.business}}-{{form.commercial}}</text>
<text @click="show2 = true" class="checkedtext"
v-if="form.business">{{form.business}}-{{form.commercial}}</text>
<text @click="show2 = true" class="checktext" v-else>请选择店铺行业与业态</text>
<view class="arrow-icon">
<u-icon name="arrow-right" size="30px" @click="show2 = true"></u-icon>
@@ -48,16 +50,19 @@
:columns="[Karmacolumns]" v-model="form.commercial" @confirm="karmaConfirm"></u-picker>
</u-form-item> -->
<u-form-item label="面积" label-position="top" border-bottom="true" label-width="auto" prop="area">
<u-input v-model="form.area" placeholder="请输入店铺面积" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.area" placeholder="请输入店铺面积" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="租金(元/月)" label-position="top" border-bottom="true" label-width="auto" prop="rent">
<u-input v-model="form.rent" placeholder="请输入店铺租金" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.rent" placeholder="请输入店铺租金" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="联系人" label-position="top" border-bottom="true" label-width="auto" prop="contact">
<u-input v-model="form.contact" placeholder="请输入联系人姓名" placeholder-class="input-class" border="none"></u-input>
</u-form-item>
<u-form-item label="手机号码" label-position="top" border-bottom="true" label-width="auto" prop="mobile">
<u-input v-model="form.mobile" placeholder="请输入联系人手机号码" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.mobile" placeholder="请输入联系人手机号码" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="详情介绍" label-position="top" border-bottom="true" label-width="auto" prop="content">
<u-input v-model="form.content" placeholder="请输入介绍详情" placeholder-class="input-class" border="none"></u-input>
@@ -76,8 +81,10 @@
return {
imageLength: '0',
fileList1: [],
regionColumns: [JSON.parse(uni.getStorageSync('regionList'))] || [],
regionColumns: [],
regionSecondColumns: [],
regionId: [],
regionCheckId: '',
form: {
title: '',
region: '',
@@ -241,6 +248,8 @@
}
let data = {
...this.form,
address: this.form.region.split('-')[1] + this.form.address,
region: this.form.region.split('-')[0],
images: temp.join(',')
}
console.log("提交表单信息:", data)
@@ -278,6 +287,59 @@
// console.log('changeAddress', e);
this.getAddressList(e)
},
changeRegionHandler(e) {
const {
columnIndex,
value,
values, // values为当前变化列的数组内容
index,
// 微信小程序无法将picker实例传出来只能通过ref操作
picker = this.$refs.regionPicker
} = e
// 当第一列值发生变化时,变化第二列(后一列)对应的选项
if (columnIndex === 0) {
// picker为选择器this实例变化第二列对应的选项
this.regionCheckId = this.regionId[index]
const that = this
uni.request({
url: 'https://apis.map.qq.com/ws/district/v1/getchildren?id=' + that.regionCheckId + '&key=' +
that.$api.key,
success(res) {
that.regionSecondColumns = res.data.result[0].map(item => item.fullname)
picker.setColumnValues(1, that.regionSecondColumns)
},
fail(err) {
console.log('请求区域失败:', err);
}
})
}
},
getRegionList() {
var that = this
uni.request({
url: 'https://apis.map.qq.com/ws/district/v1/getchildren?id=' + uni.getStorageSync('city_code') + '&key=' +
that.$api.key,
success(res) {
that.regionColumns = res.data.result[0].map(item => item.fullname)
that.regionId = res.data.result[0].map(item => item.id)
var that1 = that
uni.request({
url: 'https://apis.map.qq.com/ws/district/v1/getchildren?id=' + that1.regionId[0] + '&key=' +
that1.$api.key,
success(res) {
that1.regionSecondColumns = res.data.result[0].map(item => item.fullname)
that1.$refs.regionPicker.setColumnValues(1, that1.regionSecondColumns)
},
fail(err) {
console.log('请求区域失败:', err);
}
})
},
fail(err) {
console.log('请求区域失败:', err);
}
})
},
getAddressList(value) {
if (!this.form.region) {
uni.$u.toast('请先选择区域')
@@ -304,34 +366,32 @@
})
},
changeHandler(e) {
const {
columnIndex,
value,
values, // values为当前变化列的数组内容
index,
// 微信小程序无法将picker实例传出来只能通过ref操作
picker = this.$refs.uPicker
} = e
// 当第一列值发生变化时,变化第二列(后一列)对应的选项
console.log(e);
if (columnIndex === 0) {
// picker为选择器this实例变化第二列对应的选项
this.ClassCheckId = this.pid[index]
this.$api.getClassList(this.ClassCheckId).then(res => {
console.log(res);
this.Karmacolumns = res.data.data.map((item) => {
return item = item.name
})
picker.setColumnValues(1, this.Karmacolumns)
})
}
},
const {
columnIndex,
value,
values, // values为当前变化列的数组内容
index,
// 微信小程序无法将picker实例传出来只能通过ref操作
picker = this.$refs.uPicker
} = e
// 当第一列值发生变化时,变化第二列(后一列)对应的选项
console.log(e);
if (columnIndex === 0) {
// picker为选择器this实例变化第二列对应的选项
this.ClassCheckId = this.pid[index]
this.$api.getClassList(this.ClassCheckId).then(res => {
console.log(res);
this.Karmacolumns = res.data.data.map((item) => {
return item = item.name
})
picker.setColumnValues(1, this.Karmacolumns)
})
}
},
tradeConfirm(e) {
this.show2 = false
this.form.business = e.value[0]
this.form.commercial = e.value[1]
},
karmaConfirm(e) {
this.show3 = false
@@ -339,7 +399,7 @@
},
regionConfirm(e) {
this.show1 = false
this.form.region = e.value[0]
this.form.region = e.value[0] + '-' + e.value[1]
},
getDetail(type, id) {
console.log('type, id', type, id);
@@ -396,6 +456,7 @@
} else {
console.log('发布');
}
this.getRegionList()
this.$api.getClassList().then(res => {
// console.log(res.data.data.length);
this.Classcolumns = res.data.data.map((item) => {
@@ -408,8 +469,8 @@
this.$api.getClassList(9).then(res => {
this.Karmacolumns = res.data.data.map((item) => {
return item = item.name
})
this.$refs.uPicker.setColumnValues(1,this.Karmacolumns)
})
this.$refs.uPicker.setColumnValues(1, this.Karmacolumns)
})
})
},

View File

@@ -20,8 +20,9 @@
<view class="arrow-icon">
<u-icon name="arrow-right" size="30px" @click="show1 = true"></u-icon>
</view>
<u-picker :columns="regionColumns" :show="show1" :closeOnClickOverlay="true" @close="show1 = false"
v-model="form.region" @confirm="regionConfirm"></u-picker>
<u-picker :columns="[regionColumns]" ref="regionPicker" :show="show1" :closeOnClickOverlay="true"
@close="show1 = false" v-model="form.region" @confirm="regionConfirm"
@change="changeRegionHandler"></u-picker>
</u-form-item>
<u-form-item label="地址" label-position="top" border-bottom="true" prop="address" label-width="auto">
<u-input v-model="form.address" placeholder="请输入店铺地址" placeholder-class="input-class" border="none"
@@ -29,7 +30,8 @@
</u-form-item>
<u-form-item label="行业" label-position="top" border-bottom="true" class="picker" label-width="auto"
prop="business">
<text @click="show2 = true" class="checkedtext" v-if="form.business">{{form.business}}-{{form.commercial}}</text>
<text @click="show2 = true" class="checkedtext"
v-if="form.business">{{form.business}}-{{form.commercial}}</text>
<text @click="show2 = true" class="checktext" v-else>请选择店铺行业与业态</text>
<view class="arrow-icon">
<u-icon name="arrow-right" size="30px" @click="show2 = true"></u-icon>
@@ -38,10 +40,12 @@
:columns="[Classcolumns]" v-model="form.business" @confirm="tradeConfirm" @change="changeHandler"></u-picker>
</u-form-item>
<u-form-item label="面积" label-position="top" border-bottom="true" label-width="auto" prop="area">
<u-input v-model="form.area" placeholder="请输入店铺面积" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.area" placeholder="请输入店铺面积" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="租金(元/月)" label-position="top" border-bottom="true" label-width="auto" prop="rent">
<u-input v-model="form.rent" placeholder="请输入店铺租金" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.rent" placeholder="请输入店铺租金" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="转让费(万元)" label-position="top" border-bottom="true" label-width="auto" prop="transferFee">
<u-input v-model="form.transferFee" placeholder="请输入店铺转让费" placeholder-class="input-class" type="number"
@@ -51,7 +55,8 @@
<u-input v-model="form.contact" placeholder="请输入联系人姓名" placeholder-class="input-class" border="none"></u-input>
</u-form-item>
<u-form-item label="手机号码" label-position="top" border-bottom="true" label-width="auto" prop="mobile">
<u-input v-model="form.mobile" placeholder="请输入联系人手机号码" placeholder-class="input-class" border="none" type="number"></u-input>
<u-input v-model="form.mobile" placeholder="请输入联系人手机号码" placeholder-class="input-class" border="none"
type="number"></u-input>
</u-form-item>
<u-form-item label="详情介绍" label-position="top" border-bottom="true" label-width="auto" prop="content">
<u-input v-model="form.content" placeholder="请输入介绍详情" placeholder-class="input-class" border="none"></u-input>
@@ -70,7 +75,9 @@
imageLength: 0,
fileList1: [],
regionColumns: [],
regionSecondColumns: [],
regionId: [],
regionCheckId: '',
form: {
title: '',
region: '',
@@ -238,11 +245,14 @@
uni.$u.toast('请输入准确地址')
return false
}
let data = {
...this.form,
address: this.form.region.split('-')[1] + this.form.address,
region: this.form.region.split('-')[0],
images: temp.join(',')
}
console.log('提交表单信息', data, this.form);
console.log('提交表单信息', data);
this.$api.publishTransfer(data).then(res => {
console.log('发布店铺转让', res);
if (res.data.code == 1) {
@@ -277,13 +287,53 @@
// console.log('changeAddress', e);
this.getAddressList(e)
},
changeRegionHandler(e) {
const {
columnIndex,
value,
values, // values为当前变化列的数组内容
index,
// 微信小程序无法将picker实例传出来只能通过ref操作
picker = this.$refs.regionPicker
} = e
// 当第一列值发生变化时,变化第二列(后一列)对应的选项
if (columnIndex === 0) {
// picker为选择器this实例变化第二列对应的选项
this.regionCheckId = this.regionId[index]
const that = this
uni.request({
url: 'https://apis.map.qq.com/ws/district/v1/getchildren?id=' + that.regionCheckId + '&key=' +
that.$api.key,
success(res) {
that.regionSecondColumns = res.data.result[0].map(item => item.fullname)
picker.setColumnValues(1, that.regionSecondColumns)
},
fail(err) {
console.log('请求区域失败:', err);
}
})
}
},
getRegionList() {
var that = this
uni.request({
url: 'https://apis.map.qq.com/ws/district/v1/getchildren?id=' + uni.getStorageSync('city_code') + '&key=' +
that.$api.key,
success(res) {
that.regionColumns = [res.data.result[0].map(item => item.fullname)]
that.regionColumns = res.data.result[0].map(item => item.fullname)
that.regionId = res.data.result[0].map(item => item.id)
var that1 = that
uni.request({
url: 'https://apis.map.qq.com/ws/district/v1/getchildren?id=' + that1.regionId[0] + '&key=' +
that1.$api.key,
success(res) {
that1.regionSecondColumns = res.data.result[0].map(item => item.fullname)
that1.$refs.regionPicker.setColumnValues(1, that1.regionSecondColumns)
},
fail(err) {
console.log('请求区域失败:', err);
}
})
},
fail(err) {
console.log('请求区域失败:', err);
@@ -301,7 +351,7 @@
url: 'https://apis.map.qq.com/ws/geocoder/v1/?address=' + that.form.region + value + '&key=' +
that.$api.key,
success(res) {
console.log('地址转经纬度', res.data);
console.log('地址转经纬度', that.form.region, res.data);
if (res.data.message == "query ok") {
// console.log('lat', res.data.result.location.lat);
that.form.latitude = res.data.result.location.lat
@@ -317,29 +367,29 @@
})
},
changeHandler(e) {
const {
columnIndex,
value,
values, // values为当前变化列的数组内容
index,
// 微信小程序无法将picker实例传出来只能通过ref操作
picker = this.$refs.uPicker
} = e
// 当第一列值发生变化时,变化第二列(后一列)对应的选项
console.log(e);
if (columnIndex === 0) {
// picker为选择器this实例变化第二列对应的选项
this.ClassCheckId = this.pid[index]
this.$api.getClassList(this.ClassCheckId).then(res => {
console.log(res);
this.Karmacolumns = res.data.data.map((item) => {
return item = item.name
})
picker.setColumnValues(1, this.Karmacolumns)
})
const {
columnIndex,
value,
values, // values为当前变化列的数组内容
index,
// 微信小程序无法将picker实例传出来只能通过ref操作
picker = this.$refs.uPicker
} = e
// 当第一列值发生变化时,变化第二列(后一列)对应的选项
console.log(e);
if (columnIndex === 0) {
// picker为选择器this实例变化第二列对应的选项
this.ClassCheckId = this.pid[index]
this.$api.getClassList(this.ClassCheckId).then(res => {
console.log(res);
this.Karmacolumns = res.data.data.map((item) => {
return item = item.name
})
picker.setColumnValues(1, this.Karmacolumns)
})
}
},
}
},
tradeConfirm(e) {
this.show2 = false
this.form.business = e.value[0]
@@ -347,11 +397,10 @@
},
karmaConfirm(e) {
this.show3 = false
},
regionConfirm(e) {
this.show1 = false
this.form.region = e.value[0]
this.form.region = e.value[0] + '-' + e.value[1]
},
getDetail(type, id) {
console.log('type, id', type, id);
@@ -419,12 +468,10 @@
this.$api.getClassList(9).then(res => {
this.Karmacolumns = res.data.data.map((item) => {
return item = item.name
})
this.$refs.uPicker.setColumnValues(1,this.Karmacolumns)
})
this.$refs.uPicker.setColumnValues(1, this.Karmacolumns)
})
})
},
computed: {
isChecked(index) {

View File

@@ -3,9 +3,9 @@ function isOutTime(res) {
if (res.data.msg == '登录超时,请重新登录') {
uni.showToast('登录信息已过期,请重新登录')
// setTimeout(() => {
uni.redirectTo({
url: '/pages/login/login'
})
uni.redirectTo({
url: '/pages/login/login'
})
// }, 1000)
uni.removeStorageSync('loginToken')
} else {
@@ -25,11 +25,10 @@ const service = {
header: header,
success: res => {
resolve(res)
console.log('res===',res);
isOutTime(res);
},
fail: err => {
console.log('错误',err);
console.log('错误', err);
reject(err)
}
})