#5 feat: 伴宠师认证流程-接口对接;

Merged
Fox merged 2 commits from fox into master 3 weeks ago
  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. +2
    -3
      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) => {
return request({
url: '/applet/examination/answeBaseByQuestionId',
headers: {
isToken: true
},
method: "get",
params
}).then(res => {
@ -101,6 +104,9 @@ export const addTrainAnswer = (data) => {
export const answeTrainByQuestionId = (params) => {
return request({
url: '/applet/examination/answeTrainByQuestionId',
headers: {
isToken: true
},
method: "get",
params
}).then(res => {


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

@ -1,12 +1,161 @@
<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>

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

@ -4,6 +4,7 @@
<image src="@/static/images/ydd/icon2.png" mode=""></image>
<text class="color-ffb size-22 ml16">普通喂养员可设置3个接单地址优选喂养员可设置5个接单地址</text>
</view>
<view v-if="list.length">
<view class="li bg-fff"
v-for="(item, index) in list"
@ -25,7 +26,7 @@
</view>
<view class="color-999 size-22 mt16 flex-rowl">
<text>
{{ `${item.disabledDate.length}天:` }}
{{ `${item.disabledDate?.length}天:` }}
</text>
<text class="text-ellipsis" style="flex: 1;">
{{ getDisabledDateDesc(item.disabledDate) }}
@ -66,35 +67,27 @@
</template>
<script setup>
import { ref } from 'vue'
import { onShow } from '@dcloudio/uni-app'
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) => {
if (!dateArr.length) {
if (!dateArr?.length) {
return '暂无不可接单日期'
}
@ -106,6 +99,11 @@
url: "/otherPages/authentication/connectAddress/detail"
})
}
onShow(() => {
fetchAddressList()
})
</script>


+ 2
- 3
otherPages/authentication/examination/end.vue View File

@ -68,7 +68,7 @@
<view class="item">
<view class="flex-between mb10">
<view class="flex-rowl">
<image class="img" :src="configList.wx_image.paramValueImage" mode="widthFix"></image>
<image class="img" src="@/static/images/ydd/end1(4).png" mode="widthFix"></image>
<text class="size-30 color-000 fw700">添加客服微信</text>
</view>
<view class="size-22 highlight">
@ -77,7 +77,7 @@
</view>
<view class="info color-777 size-22 flex-rowl">
<text class="size-22 color-777">微信二维码</text>
<image src="" mode="" style="width: 150rpx;height: 150rpx;"></image>
<image :src="configList.wx_image.paramValueImage" mode="widthFix" style="width: 150rpx;height: 150rpx;"></image>
</view>
</view>
</view>
@ -182,7 +182,6 @@
}
const selectAddr = () => {
console.log('--selectAddr')
uni.chooseLocation({
success: function(res) {
setAddress(res)


Loading…
Cancel
Save