Browse Source

feat: 地址设置页面(暂存);

pull/5/head
Fox-33 2 months ago
parent
commit
462ba8d958
5 changed files with 191 additions and 25 deletions
  1. +14
    -0
      api/address.js
  2. +6
    -0
      api/examination.js
  3. +149
    -0
      otherPages/authentication/connectAddress/detail.vue
  4. +22
    -24
      otherPages/authentication/connectAddress/index.vue
  5. +0
    -1
      otherPages/authentication/examination/end.vue

+ 14
- 0
api/address.js View File

@ -0,0 +1,14 @@
import request from '@/utils/request'
export const getAddressList = (params) => {
return request({
url: '/applet/address/addressList',
headers: {
isToken: true
},
method: "get",
params
}).then(res => {
return res.data
})
}

+ 6
- 0
api/examination.js View File

@ -80,6 +80,9 @@ export const addBaseAnswer = (data) => {
export const answeBaseByQuestionId = (params) => { export const answeBaseByQuestionId = (params) => {
return request({ return request({
url: '/applet/examination/answeBaseByQuestionId', url: '/applet/examination/answeBaseByQuestionId',
headers: {
isToken: true
},
method: "get", method: "get",
params params
}).then(res => { }).then(res => {
@ -101,6 +104,9 @@ export const addTrainAnswer = (data) => {
export const answeTrainByQuestionId = (params) => { export const answeTrainByQuestionId = (params) => {
return request({ return request({
url: '/applet/examination/answeTrainByQuestionId', url: '/applet/examination/answeTrainByQuestionId',
headers: {
isToken: true
},
method: "get", method: "get",
params params
}).then(res => { }).then(res => {


+ 149
- 0
otherPages/authentication/connectAddress/detail.vue View File

@ -1,12 +1,161 @@
<template> <template>
<view class="page"> <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> </view>
</template> </template>
<script setup> <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> </script>
<style lang="scss" scoped> <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> </style>

+ 22
- 24
otherPages/authentication/connectAddress/index.vue View File

@ -4,6 +4,7 @@
<image src="@/static/images/ydd/icon2.png" mode=""></image> <image src="@/static/images/ydd/icon2.png" mode=""></image>
<text class="color-ffb size-22 ml16">普通喂养员可设置3个接单地址优选喂养员可设置5个接单地址</text> <text class="color-ffb size-22 ml16">普通喂养员可设置3个接单地址优选喂养员可设置5个接单地址</text>
</view> </view>
<view v-if="list.length"> <view v-if="list.length">
<view class="li bg-fff" <view class="li bg-fff"
v-for="(item, index) in list" v-for="(item, index) in list"
@ -25,7 +26,7 @@
</view> </view>
<view class="color-999 size-22 mt16 flex-rowl"> <view class="color-999 size-22 mt16 flex-rowl">
<text> <text>
{{ `${item.disabledDate.length}天:` }}
{{ `${item.disabledDate?.length}天:` }}
</text> </text>
<text class="text-ellipsis" style="flex: 1;"> <text class="text-ellipsis" style="flex: 1;">
{{ getDisabledDateDesc(item.disabledDate) }} {{ getDisabledDateDesc(item.disabledDate) }}
@ -66,35 +67,27 @@
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'
import { onShow } from '@dcloudio/uni-app' import { onShow } from '@dcloudio/uni-app'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import { usePageList } from "@/utils/pageList";
// todo
const { list, total, getData } = usePageList()
import { getAddressList } from '@/api/address'
const list = ref([])
onShow(() => {
// todo: delte test data
list.value = [
{
area: '四季阳光花城',
distance: 10,
disabledDate: [],
},
{
area: '四季阳光花城',
distance: 10,
disabledDate: ['02-19', '02-20', '02-21', '02-22', '02-23', '02-24', '02-25', '02-26'],
},
]
console.log('--onShow', list.value)
const fetchAddressList = async () => {
try {
// todo:
list.value = await getAddressList()
})
console.log('--list', list.value)
} catch (err) {
}
}
const getDisabledDateDesc = (dateArr) => { const getDisabledDateDesc = (dateArr) => {
if (!dateArr.length) {
if (!dateArr?.length) {
return '暂无不可接单日期' return '暂无不可接单日期'
} }
@ -106,6 +99,11 @@
url: "/otherPages/authentication/connectAddress/detail" url: "/otherPages/authentication/connectAddress/detail"
}) })
} }
onShow(() => {
fetchAddressList()
})
</script> </script>


+ 0
- 1
otherPages/authentication/examination/end.vue View File

@ -182,7 +182,6 @@
} }
const selectAddr = () => { const selectAddr = () => {
console.log('--selectAddr')
uni.chooseLocation({ uni.chooseLocation({
success: function(res) { success: function(res) {
setAddress(res) setAddress(res)


Loading…
Cancel
Save