猫妈狗爸伴宠师小程序前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

161 lines
3.8 KiB

<template>
<view class="page">
<up-form
ref="formRef"
:model="form"
:rules="rules"
labelPosition="left"
labelWidth="150rpx"
>
<view class="info">
<view class="info-header">地址信息</view>
<view class="info-content">
<up-form-item label="接单地址" prop="area">
<view plain class="flex-rowr" @click="selectAddr">
<text v-if="form.area"></text>
<text v-else class="placeholder">请定位选择小区或商城等</text>
<up-icon style="margin-left: 22rpx;" name="arrow-down" color="#7F7F7F" size="21rpx"></up-icon>
</view>
</up-form-item>
<up-form-item label="接单地址" prop="address" labelPosition="top">
<view class="textarea">
<textarea
v-model="form.address"
placeholder="如街道、门牌号、小区、乡镇、村等"
:row="3"
></textarea>
</view>
</up-form-item>
</view>
</view>
<view class="info">
<view class="info-header">接单信息</view>
<view class="info-content">
<up-form-item label="接单状态" prop="status">
<view class="flex-rowr">
<switch :checked="!!form.status" @change="onSwitch" color="#FFBF60" style="transform: scale(0.6);"/>
<text>{{ !!form.status ? '开启' : '关闭' }}</text>
</view>
</up-form-item>
<up-form-item label="接单范围" prop="distance">
<up-input
v-model="form.distance"
placeholder="请输入内容"
inputAlign="right"
border="none"
>
<template #suffix>
<text>Km</text>
</template>
</up-input>
</up-form-item>
<up-form-item label="不接单日期(选填)" prop="disabledDate" labelWidth="300rpx">
<!-- todo -->
</up-form-item>
</view>
</view>
</up-form>
<view>
<up-parse class="size-28"
:content="configList.pet_km_text.paramValueArea"
:containerStyle="{
color: '#707070',
fontSize: '22rpx',
lineHeight: '35rpx',
}"
></up-parse>
</view>
<view class="footer-btn">
<view class="btn" @click="onSave">
保存
</view>
</view>
</view>
</template>
<script setup>
import { ref } from 'vue'
import { store } from '@/store'
const configList = store.state.system.configList
const formRef = ref()
const form = ref({
area: null,
latitude: null,
longitude: null,
address: null,
status: true,
distance: null,
disabledDate: [],
})
// todo: set rules
const rules = ref({})
const setAddress = (res) => {
//经纬度信息
form.value.latitude = res.latitude
form.value.longitude = res.longitude
if (!res.address && res.name) { //用户直接选择城市的逻辑
return form.value.area = res.name
}
if (res.address || res.name) {
return form.value.area = res.address + res.name
}
form.value.area = '' //用户啥都没选就点击勾选
}
const selectAddr = () => {
uni.chooseLocation({
success: function(res) {
setAddress(res)
}
})
}
const onSwitch = (e) => {
form.value.status = e.detail.value
}
const onSave = () => {
// todo: fetch save data
uni.navigateBack()
}
</script>
<style lang="scss" scoped>
.page {
padding: 35rpx 37rpx 144rpx 37rpx;
}
.info {
color: #707070;
font-size: 30rpx;
line-height: 40rpx;
&-header {
color: #000000;
}
.placeholder {
color: #707070;
}
.textarea {
margin-top: 16rpx;
background-color: #F3F3F3;
padding: 26rpx 8rpx;
border-radius: 15rpx;
}
:deep(.u-form-item__body__left__content__label) {
color: #707070;
}
}
</style>