1.课题背景
随着互联网和移动设备的普及,电子商务的快速发展,快递行业也迎来了快速发展的时期。随着人们对生活品质的要求不断提高,对快递寄件服务的要求也越来越高。因此,开发一款高效、智能的快递寄件小程序成为了当前快递行业的一个热门课题。
快递寄件小程序有着广泛的应用场景。例如,用户可以通过手机APP或者小程序在线下单,实现寄件、打印运单、付款等一系列服务,方便快捷。对于快递公司来说,快递寄件小程序可以大大提高快递业务的效率和服务质量,优化运营流程,提高运营收益。
当前,快递寄件小程序的研究和开发已经成为了快递行业中的一项重要课题。其中,主要研究内容包括:快递寄件小程序的需求分析、设计与开发、运营与管理等方面。
首先,需求分析是快递寄件小程序研究的第一步。通过对用户的需求分析,了解用户的基本需求和使用习惯,为后续的设计和开发提供依据。同时,还需要考虑到不同用户群体的需求,例如老年人、残疾人、外国人等,为不同用户设计不同的界面和操作方式,提高用户体验。
其次,设计与开发是快递寄件小程序研究的核心环节。在设计时,需要考虑界面设计、用户体验、功能设计等多方面因素,使得小程序具有良好的用户交互性和易用性。在开发时,则需要考虑技术选型、安全性、兼容性等多个方面,实现快递寄件小程序的高效、稳定、安全的运行。
最后,运营与管理则是快递寄件小程序研究的重要保障。在运营方面,需要考虑推广、营销、客户服务等方面,使得小程序能够被更多用户使用。在管理方面,则需要考虑运营数据统计、维护、升级等方面,保证小程序的稳定性和可持续性。
总之,快递寄件小程序的研究和开发,是当前快递行业中的一项重要课题。通过不断地完善和优化,快递寄件小程序可以更好地服务于用户,提高快递行业的效率和服务质量,创造更大的社会价值。
2.分组及角色
团队人员角色及其职责,角色可重复,所有人都要参与开发。
序号 |
角色 |
职责 |
负责人名字 |
1 |
项目经理 |
把控项目总体设计,开发进度的计划及进度管理,定制相应的开发规范,负责各个环节的工作评审,协调团队开发人员之间工作。 |
建议写组长 |
2 |
需求分析工程师 |
提供详细的策划方案和需分析。 |
建议写全部的 |
3 |
开发工程师 |
根据项目总体设计来设计数据库和功能模块的实现。 |
写几个人 |
4 |
UI设计工程师 |
根据项目需求设计项目的界面,图标,Logo等。 |
写几个人 |
5 |
测试工程师 |
负责测试程序。 |
写全部,交叉测试 |
6 |
实施运维人员 |
负责项目后期上线的线上实施,维护。 |
建议挑选部分人 |
3.系统分析
3.1用例分析
用户用例图:
管理员用例图:
3.2功能分析
3.2.1小程序端
小程序的需求分析为系统的功能设计奠定了基础和提供了参考,通过需求分析对小程序的功能进行了具体设计,以满足用户需求,设计出适应市场的小程序。本小程序主要分为四大模块:首页、查快递、福利、我的、下单模块。每个模块都有对应功能,最后实现寄件、查看功能。
各模块主要功能如下:
(1)首页
① 用户可在首页查看系统投放的广告banner图;
② 寄快递部分,用户可以直接点击寄快递直接进入下单界面,输入寄件需要的信息,完成下单;
③ 查运费部分,用户可以直接查运费直接进入查运费界面,输入相关信息,从而了解寄件的费用情况。
④ 资讯轮播,用户可以看到推送的资讯信息。
⑤ 活动链接模块,用户可以看到链接的热门外卖红包、电影票等多个生活服务入口。
⑥ 我的订单等多个快捷入口,首页提供了直接进入我的订单查看列表、我的优惠券等多个地方。
(2)查快递模块
查快递模块是查询快递信息的一个入口,提供了查看全部快递、待揽件快递、运输中快递、已签收快递、已取消快递及其查看运单详情的功能。除此之外提供了按运单号、寄件人手机号或收件人手机号查询的功能。
(3)订单模块
订单模块是用户在需要寄快递时,输入下单需要的收件人信息、寄件人信息等候点击立即下单,并完成支付形成的订单。在里面包含了撤销订单、立即支付等多个操作
(4)福利模块
福利模块提供了签到领取积分、积分查看、积分明细、积分兑换等多个给用户的福利功能。
(5)我的模块
我的模块是对用户的相关信息进行管理。
① 用户可在个人界面查看个人的头像或者上传个人的头像,查看自己的积分;通过查询相关订单信息;
② 余额查看、账户重置、优惠券查看等功能;
③ 寄快递的快递入口;
④ 积分兑换、查运费、退出等多个功能;
3.2.2 后台管理
根据管理需求,后台可以管理管理员信息、快递公司信息,对平台用户进行管理,同时可以查询订单信息、对数据进行统计的功能。
(1) 管理员可查看用户信息;
(2) 管理员可查看用户的地址簿信息;
(3) 管理员可查看用户用户的订单信息及其状态;
(4) 管理员可查看用户的搜索历史,了解用户关注的产品关键信息;
(5) 管理员可以管理管理员的信息,对其进行新增、修改、删除、查询等操作。
(6) 管理可以管理快递公司的信息。
4.架构设计
系统架构设计图:
小程序寄件总流程设计图:
5.UI设计
(1)小程序首页
(2)查快递
(3)福利
(4)我的
(5)寄快递
(6)地址簿
(7)地址新增
(8)选择物品信息
(9)查运费
(10)我的优惠券
(11)积分兑换
(12)余额
(13)提现
(14)充值
(15)补差价
6.数据库设计
该系统的主要数据库表设计有:小程序端用户表、宣传广告表、收货地址表、管理员表、订单表等等。主要的逻辑设计及结构如下所示。用户表存储的是微信小程序用户的昵称、省、市、县、openid、头像、积分、会员等级等情况信息。
表6.1 用户信息表
字段名 |
字段类型 |
长度 |
是否NULL |
字段说明 |
user_id |
int unsigned |
0 |
否 |
用户id |
parent_id |
int |
0 |
是 |
上级 |
unionid |
varchar |
64 |
是 |
unionid |
open_id |
varchar |
64 |
是 |
openid |
openid |
varchar |
64 |
是 |
openid |
province |
int |
0 |
是 |
省 |
city |
int |
0 |
是 |
市 |
area |
int |
0 |
是 |
县或区 |
requestCode |
varchar |
32 |
是 |
请求码 |
account |
varchar |
64 |
是 |
邮件或者手机 |
password |
char |
32 |
是 |
密码 |
pay_password |
char |
32 |
是 |
支付密码 |
face |
varchar |
500 |
是 |
头像 |
ext0 |
varchar |
15 |
是 |
为了兼容DISCUZ 设立的用户名存储的字段 |
nickname |
varchar |
32 |
是 |
昵称 |
integral |
int |
0 |
是 |
积分 |
prestige |
int |
0 |
是 |
声望,影响等级的 |
money |
int |
0 |
是 |
账户余额 |
stock |
int |
0 |
是 |
股权 |
draw |
int |
0 |
是 |
奖金表 |
moneys |
int |
0 |
是 |
账户余额 |
qrcode |
varchar |
256 |
是 |
二维码 |
qrcode1 |
varchar |
256 |
是 |
二维码1 |
qrcode2 |
varchar |
256 |
是 |
二维码2 |
qrcode3 |
varchar |
256 |
是 |
二维码3 |
guide |
int |
0 |
是 |
级别 |
rank_id |
tinyint |
0 |
是 |
等级ID |
gold |
int |
0 |
是 |
是否会员 |
frozen_money |
int |
0 |
是 |
会员余额-冻结金 |
frozen_gold |
int |
0 |
是 |
冻结金-商家资金 |
reg_time |
int |
0 |
是 |
注册时间 |
reg_ip |
varchar |
15 |
是 |
区域ip |
last_time |
int |
0 |
是 |
最后登录时间 |
last_ip |
varchar |
32 |
是 |
最后登录IP |
frozen_money_time |
int |
0 |
是 |
会员余额-冻结金修改时间 |
frozen_gold_time |
int |
0 |
是 |
修改商家资金冻结时间 |
prestige_frozen |
int |
0 |
是 |
威望冻结金 |
is_prestige_frozen |
tinyint |
1 |
是 |
0代表威望已冻结,1已解冻 |
closed |
tinyint |
1 |
是 |
-1代表需要激活 0 代表正常 1 代表删除 |
uc_id |
int |
0 |
是 |
|
|
varchar |
64 |
是 |
认证的邮件 |
mobile |
varchar |
11 |
是 |
认证的手机号码 |
lock_num |
int |
0 |
是 |
锁定 |
token |
char |
32 |
是 |
token |
|
varchar |
11 |
是 |
|
count_team |
int |
0 |
是 |
团队人数 |
count_user_price |
int |
0 |
是 |
个人业绩 |
count_team_price |
int |
0 |
是 |
团队业绩 |
is_lock |
tinyint |
1 |
是 |
是否锁定 |
is_lock_time |
int |
0 |
是 |
锁定时间 |
is_aux |
tinyint |
1 |
是 |
会员是否实名认证 |
管理员信息表存储的是管理员id、用户名、密码、角色id、手机号等基本信息。
表6.2 管理员信息表
字段名 |
字段类型 |
长度 |
是否NULL |
字段说明 |
admin_id |
int unsigned |
0 |
否 |
管理员id |
type |
tinyint |
1 |
是 |
类型 |
user_id |
int |
0 |
是 |
用户id |
username |
varchar |
32 |
是 |
用户名 |
password |
char |
32 |
是 |
密码 |
role_id |
int |
0 |
是 |
角色id |
city_id |
int |
0 |
是 |
城市id |
area_id |
int |
0 |
是 |
区域id' |
business_id |
int |
0 |
是 |
business_id |
mobile |
varchar |
11 |
是 |
手机号 |
lock_admin_mum |
int |
0 |
是 |
锁定最小时间 |
is_lock |
tinyint |
1 |
是 |
是否锁定 |
is_admin_lock |
tinyint |
1 |
是 |
|
is_admin_lock_time |
int |
0 |
是 |
锁定最小时间 |
create_time |
int |
0 |
是 |
创建时间 |
create_ip |
varchar |
15 |
是 |
创建ip |
last_time |
int |
0 |
是 |
最近登录时间 |
last_ip |
varchar |
20 |
是 |
最近登录ip |
is_ip |
tinyint |
1 |
是 |
|
is_username_lock |
tinyint |
1 |
是 |
是否锁定 |
closed |
tinyint |
1 |
是 |
用户地址信息表存储的是地址id、地址类型、用户id、省、市、县等基本信息。
表6.3 用户地址信息表
字段名 |
字段类型 |
长度 |
是否NULL |
字段说明 |
addr_id |
int unsigned |
0 |
否 |
地址id |
type |
int |
0 |
是 |
类型 |
is_dw |
int |
0 |
是 |
是否已得物 |
user_id |
int |
0 |
是 |
用户id |
city_id |
int |
0 |
是 |
城市id |
area_id |
int |
0 |
是 |
地区id |
business_id |
int |
0 |
是 |
镇id |
name |
varchar |
255 |
是 |
姓名 |
mobile |
varchar |
20 |
是 |
固定电话 |
phone |
varchar |
11 |
是 |
手机号 |
getAddr |
varchar |
128 |
是 |
获取地址 |
addr |
varchar |
1024 |
是 |
地址 |
info |
varchar |
128 |
是 |
信息 |
lng |
varchar |
16 |
是 |
经度 |
lat |
varchar |
16 |
是 |
纬度 |
province |
varchar |
11 |
是 |
省 |
area |
varchar |
11 |
是 |
县 |
city |
varchar |
256 |
是 |
市 |
linkMan |
varchar |
256 |
是 |
联系人 |
createTime |
varchar |
11 |
是 |
创建时间 |
address |
varchar |
256 |
是 |
详细地址 |
is_default |
tinyint |
1 |
是 |
是否默认 |
closed |
tinyint |
1 |
是 |
删除状态 |
省信息表存储的是编号、省名称、中心经度、中心纬度、区号等基本信息。
表6.4 省信息表
字段名 |
字段类型 |
长度 |
是否NULL |
字段说明 |
id |
int |
0 |
否 |
主键id |
adcode |
varchar |
10 |
是 |
编号 |
name |
varchar |
100 |
是 |
省名称 |
lat |
double |
0 |
是 |
中心纬度 |
lng |
double |
0 |
是 |
中心经度 |
citycode |
varchar |
10 |
是 |
区号 |
user_id |
int |
0 |
是 |
会员绑定 |
ratio |
int |
0 |
是 |
分成费率 |
市信息表存储的是城市名称、管理员id、代理id、照片、拼音、经度、纬度、级别类型等基本信息。
表6.5 市信息表
字段名 |
字段类型 |
长度 |
是否NULL |
字段说明 |
city_id |
int unsigned |
0 |
否 |
城市id |
name |
varchar |
64 |
是 |
城市名称 |
user_id |
int |
0 |
是 |
管理员ID |
agent_id |
int |
0 |
是 |
代理ID |
photo |
varchar |
255 |
是 |
照片 |
pinyin |
varchar |
32 |
是 |
拼音 |
is_open |
tinyint |
1 |
是 |
是否打开 |
domain |
tinyint |
1 |
是 |
领域 |
lng |
varchar |
15 |
是 |
经度 |
lat |
varchar |
15 |
是 |
纬度 |
orderby |
tinyint |
0 |
是 |
序号 |
first_letter |
char |
1 |
是 |
第一个字符 |
theme |
varchar |
21 |
是 |
目的 |
closed |
tinyint |
1 |
是 |
是否隐藏 |
create_time |
varchar |
15 |
是 |
创建时间 |
create_ip |
varchar |
32 |
是 |
创建ip |
pid |
smallint |
0 |
是 |
上级城市ID |
ShortName |
varchar |
64 |
是 |
简称 |
LevelType |
tinyint |
0 |
是 |
级别类型 |
CityCode |
tinyint |
0 |
是 |
城市编码 |
ZipCode |
tinyint |
0 |
是 |
邮政编号 |
MergerName |
varchar |
255 |
是 |
合并名称 |
ParentId |
int |
0 |
是 |
父级id |
hot |
tinyint |
1 |
是 |
0代表普通城市;1代表热门城市 |
县区信息表存储的是城市id、县区名称、排序、名字、级别类型、城市编码、邮政编码、合并名称等基本信息。
表6.6 县区信息表
字段名 |
字段类型 |
长度 |
是否NULL |
字段说明 |
area_id |
int unsigned |
0 |
否 |
县区id |
city_id |
int |
0 |
是 |
城市id |
area_name |
varchar |
32 |
是 |
县区名称 |
orderby |
tinyint |
0 |
是 |
排序 |
Name |
varchar |
255 |
是 |
名字 |
LevelType |
tinyint |
0 |
是 |
级别类型 |
CityCode |
tinyint |
0 |
是 |
城市编码 |
ZipCode |
tinyint |
0 |
是 |
邮政编码 |
MergerName |
varchar |
255 |
是 |
合并名称 |
lng |
varchar |
15 |
是 |
经度 |
Lat |
varchar |
15 |
是 |
纬度 |
pinyin |
varchar |
32 |
是 |
拼音 |
user_id |
int |
0 |
是 |
管理员id |
街道镇信息表存储的是街道或镇名称id'、县区id、排序、热门城市、经度、纬度等基本信息。
表6.7 街道镇信息表
字段名 |
字段类型 |
长度 |
是否NULL |
字段说明 |
business_id |
int unsigned |
0 |
否 |
街道镇信息id |
business_name |
varchar |
32 |
是 |
街道或镇名称 |
area_id |
int |
0 |
是 |
县区id |
orderby |
tinyint |
0 |
是 |
排序 |
is_hot |
tinyint |
1 |
是 |
热门城市 |
lng |
varchar |
15 |
是 |
经度 |
lat |
varchar |
15 |
是 |
纬度 |
订单信息表存储的是订单单号、会员id、快递公司id、订单状态、预约时间等基本信息。
表6.8 订单信息表
字段名 |
字段类型 |
长度 |
是否NULL |
字段说明 |
id |
int unsigned |
0 |
否 |
主键id |
type |
int |
0 |
是 |
接口名称 |
is_pei |
int |
0 |
是 |
是否配送 |
pid |
int |
0 |
是 |
上级ID |
deliveryId |
varchar |
38 |
是 |
快递公司返回ID |
expressId |
varchar |
38 |
是 |
快递公司ID |
expressNo |
varchar |
38 |
是 |
快递公司单号 |
user_id |
int |
0 |
是 |
会员ID |
takeDesc |
varchar |
32 |
是 |
排序模式 |
orderStatus |
int |
0 |
是 |
订单状态 |
orderStatusName |
varchar |
11 |
是 |
订单状态名 |
realOrderState |
varchar |
32 |
是 |
订单真实状态 |
diffStatus |
int |
0 |
是 |
状态 |
orderNo |
varchar |
11 |
是 |
单号 |
orderRightsStatus |
int |
0 |
是 |
退款状态 |
requestParams |
varchar |
9999 |
是 |
php提交数组 |
requestParams2 |
text |
0 |
是 |
易达 |
sendStartTime |
varchar |
11 |
是 |
预约时间开始 |
sendEndTime |
varchar |
11 |
是 |
预约时间结束 |
createTime |
varchar |
32 |
是 |
时间 |
wight |
varchar |
256 |
是 |
重量 |
preOrderFee |
int |
0 |
是 |
订单费 |
firstPrice |
int |
0 |
是 |
首重价格 |
firstPrice_jia |
int |
0 |
是 |
首重价格+ |
addPrice |
int |
0 |
是 |
续重价格 |
addPrice_jia |
int |
0 |
是 |
续重价格+ |
limitFirstPrice |
int |
0 |
是 |
限重首重价格 |
limitFirstPrice_jia |
int |
0 |
是 |
限重首重价格+ |
limitAddPrice |
int |
0 |
是 |
限重续重价格 |
limitAddPrice_jia |
int |
0 |
是 |
限重续重价格+ |
sumMoneyYuan |
int |
0 |
是 |
支付金额 |
sumMoneyYuan_old |
int |
0 |
是 |
原始金额 |
sumMoneyYuan_jia |
int |
0 |
是 |
加价金额 |
diffMoneyYuan |
int |
0 |
是 |
差价金额 |
insurancePrice |
int |
0 |
是 |
保价费用 |
insuranceValue |
int |
0 |
是 |
保价金额 |
packageServicePrice |
int |
0 |
是 |
包装费用 |
sendName |
varchar |
256 |
是 |
寄件方姓名 |
sendMobile |
varchar |
256 |
是 |
寄件方手机 |
sendCity |
varchar |
512 |
是 |
寄件方城市 |
sendAddress |
varchar |
256 |
是 |
寄件方地址 |
orderType |
tinyint |
1 |
是 |
订单类型 |
receiveName |
varchar |
32 |
是 |
收件姓名 |
receiveMobile |
varchar |
32 |
是 |
收件手机 |
receiveCity |
varchar |
32 |
是 |
收件城市 |
receiveAddress |
varchar |
512 |
是 |
收件地址 |
kuaidi |
varchar |
256 |
是 |
快递 |
goodsType |
varchar |
256 |
是 |
商品类别 |
cargoName |
varchar |
11 |
是 |
物品名称 |
totalNumber |
varchar |
11 |
是 |
数量 |
totalVolume |
varchar |
11 |
是 |
下单体积 |
review_weight |
varchar |
11 |
是 |
开单重量 |
review_vloumn |
varchar |
11 |
是 |
开单体积 |
coupon_pmt |
int |
0 |
是 |
优惠金额 |
coupon_download_id |
int |
0 |
是 |
下载券ID |
yuyuetime |
varchar |
32 |
是 |
预约时间 |
remark |
varchar |
64 |
是 |
备注 |
message |
varchar |
256 |
是 |
异常说明 |
pdfUrl |
varchar |
256 |
是 |
Url |
pay_time |
varchar |
15 |
是 |
字符时间 |
cancel_reason |
varchar |
256 |
是 |
取消说明 |
cancel_time |
varchar |
13 |
是 |
取消时间 |
reason |
varchar |
32 |
是 |
取消订单原因 |
closed |
int |
0 |
是 |
是否取消 |
create_time |
int |
0 |
是 |
创建时间 |
create_ip |
varchar |
15 |
是 |
创建ip |
7.数据流图
系统主要业务流程的数据流图:
8.编码
(1)寄快递
关键代码;
<view class="content">
<view class="lbt-box">
<swiper autoplay="{ {true}}" circular="true" class="swiper" duration="500" indicatorColor="rgba(130, 130, 130, .3)" indicatorDots="true" interval="3000">
<swiper-item wx:for="{ {bannerList}}" wx:key="index">
<view bindtap="__e" class="swiper-item" data-event-opts="{ {[ [ 'tap',[ [ 'jumpbanner',['$0'],[ [ ['bannerList','',index] ] ] ] ] ] ]}}" src="{ {item.banner_url}}">
<image src="{ {item.banner_url}}"></image>
</view>
</swiper-item>
</swiper>
</view>
<view class="express-box">
<view class="express-top">
<view class="express-top-left">主流快递运费比价寄</view>
<view class="express-top-right">
<image src="https://express.17huaban.com/attachs/imge/zt.png"></image>
<image src="https://express.17huaban.com/attachs/imge/yd.png"></image>
<image src="https://express.17huaban.com/attachs/imge/db.png"></image>
<image src="https://express.17huaban.com/attachs/imge/jd.png"></image>
<image src="https://express.17huaban.com/attachs/imge/zt.png"></image>
<image src="https://express.17huaban.com/attachs/imge/sf.png"></image>
<image src="https://express.17huaban.com/attachs/imge/yd.png"></image>
</view>
</view>
<view class="express-middle">
<view bindtap="__e" class="express-ji" data-event-opts="{ {[ [ 'tap',[ [ 'top_jump',[1] ] ] ] ]}}">
<view class="express-ji-img" style="margin-left:68rpx;">
<image src="https://cps.mingduyun.com/static/tubiao/111.jpg"></image>
</view>
<view class="express-ji-text">寄快递</view>
</view>
<view class="express-shu"></view>
<view bindtap="__e" class="express-ji" data-event-opts="{ {[ [ 'tap',[ [ 'top_jump',[2] ] ] ] ]}}">
<view class="express-ji-img" style="margin-left:105rpx;">
<image src="https://cps.mingduyun.com/static/tubiao/222.jpg"></image>
</view>
<view class="express-ji-text">查运费</view>
</view>
</view>
<view class="win-info">
<view class="swiper-icon">
<image src="https://express.17huaban.com/attachs/imge/praise.png"></image>
</view>
<view class="swiper-view" wx:if="{ {newsList.length==1&&configindex}}">
<view class="swiper-text">{ {'欢迎使用'+configindex.index_title+'寄快递折扣平台'}}</view>
</view>
<swiper autoplay="{ {true}}" circular="{ {true}}" class="win-info-swiper" disableTouch="{ {true}}" interval="{ {5000}}" vertical="{ {true}}" wx:else>
<swiper-item class="u-swiper-item" wx:for="{ {newsList}}" wx:key="index">
<view class="swiper-view">
<view class="swiper-text">{ {item.title}}</view>
</view>
</swiper-item>
</swiper>
</view>
</view>
<view>
<view class="four-box">
<view bindtap="__e" class="four-view" data-event-opts="{ {[ [ 'tap',[ [ 'skipPage',[item],[ [ ['menuList','',index,'url','appid'] ],[ ['menuList','',index,'check'] ] ] ] ] ] ]}}" wx:for="{ {menuList}}" wx:key="index">
<view class="four-view-text">
<view class="fvt-title">{ {item.name}}</view>
<view class="fvt-content">{ {item.info}}</view>
</view>
<view class="fvt-img-box">
<view class="fvt-img">
<image src="{ {item.icon}}"></image>
</view>
</view>
</view>
</view>
<view class="four-box" wx:if="{ {configindex.jt_cps==1}}">
<view bindtap="__e" class="four-view" data-event-opts="{ {[ [ 'tap',[ [ 'to_detail',['$0'],[ [ ['bottomList','',index] ] ] ] ] ] ]}}" style="position:relative;" wx:for="{ {bottomList}}" wx:key="index">
<view class="four-view-text">
<view class="fvt-title">{ {item.text_top}}</view>
<view class="fvt-content">{ {item.text_bot}}</view>
</view>
<view class="fvt-img-box">
<view class="fvt-img">
<image src="{ {item.icon}}"></image>
</view>
</view>
</view>
</view>
</view>
<view class="three-box">
<view bindtap="__e" class="three-view" data-event-opts="{ {[ [ 'tap',[ [ 'to_next',['$0'],[ [ ['content_list','',index,'url'] ] ] ] ] ] ]}}" wx:for="{ {content_list}}" wx:key="index">
<view class="three-view-img">
<image src="{ {item.icon}}"></image>
<view style="width:20rpx;height:20rpx;margin-top:-88rpx;margin-left:42rpx;">
<uni-badge bind:__l="__l" text="{ {uInfo.trade_num}}" type="error" vueId="8dd740cc-1"></uni-badge>
</view>
</view>
<view class="three-view-text">{ {item.name}}</view>
</view>
</view>
<view class="two-box">
<view bindtap="__e" class="two-box-view" data-event-opts="{ {[ [ 'tap',[ [ 'top_jump',[3] ] ] ] ]}}">
<image src="https://express.17huaban.com/attachs/imge/bot-img2.png"></image>
</view>
<view bindtap="__e" class="two-box-view" data-event-opts="{ {[ [ 'tap',[ [ 'top_jump',[4] ] ] ] ]}}">
<image src="https://express.17huaban.com/attachs/imge/bot-img.png"></image>
</view>
</view>
<view class="two-box" wx:if="{ {site.pay.unit_id_1&&site.pay.unit_id_1}}">
<view class="adContainer">
<ad unit-id="{ {site.pay.unit_id_1}}" ad-intervals="30"></ad>
</view>
</view>
<view class="balance-paybx " wx:if="{ {myhandleCount>0}}">
<view class="fl-b-between">
<view class="iconfont" style="font-size:50rpx;margin-left:20rpx;"></view>
<view class="follow-text">{ {'您有'+myhandleCount+'笔运单需要补费'}}</view>
<view catchtap="__e" class="follow-btn" data-event-opts="{ {[ [ 'tap',[ [ 'top_jump',[7] ] ] ] ]}}">去补缴</view>
</view>
</view>
<view class="bottom-text savepadding">
<view catchtap="__e" class="bottom-text-box" data-event-opts="{ {[ [ 'tap',[ [ 'top_jump',[6] ] ] ] ]}}">
<view class="bottom-text-box-logo">
<image src="{ {configindex.logo}}"></image>
</view>
<view class="bottom-text-box-text">{ {'新手必看,'+configindex.index_title+'怎么寄快递最便宜?'}}</view>
</view>
</view>
<view catchtap="__e" class="kefu" data-event-opts="{ {[ [ 'tap',[ [ 'top_jump',[5] ] ] ] ]}}">
<view class="kefu">
<view class="kefu-img">
<image src="https://express.17huaban.com/attachs/imge/kefu.png"></image>
</view>
<view class="kefu-text">在线咨询</view>
</view>
</view>
<view class="hongbao-model data-v-a1" wx:if="{ {hongbaoShow}}">
<view class="hongbao data-v-a1">
<view class="data-v-a1" style="position:relative;">
<image bindload="__e" class="data-v-a1" data-event-opts="{ {[ [ 'load',[ [ 'redbagload',['$event'] ] ] ] ]}}" mode="widthFix" src="{ {newren_hb_url}}" style="width:450rpx;"></image>
<view class="data-v-a1" style="color:#ff4141;font-weight:bold;position:absolute;top:calc(50% - 55rpx);left:50%;transform:translate(-50%,-50%);" wx:if="{ {delayShow}}">
<text class="data-v-a1" style="font-size:60rpx;">{ {hongbaoList.reduce_price}}</text>
<text class="data-v-a1" style="font-size:30rpx;">元</text>
</view>
<view class="data-v-a1" style="color:#ff4141;position:absolute;top:calc(50% + 45rpx);left:50%;transform:translate(-50%,-50%);font-size:38rpx;" wx:if="{ {delayShow}}">{ {hongbaoList.title}}</view>
<view class="data-v-a1" style="position:absolute;top:calc(50% + 170rpx);left:50%;transform:translate(-50%,-50%);">
<image bindtap="__e" class="data-v-a1" data-event-opts="{ {[ [ 'tap',[ ['gethongbao'] ] ] ]}}" mode="widthFix" src="https://express.17huaban.com/attachs/imge/coin.png" style="width:150rpx;"></image>
</view>
</view>
<image bindtap="__e" class="data-v-a1" data-event-opts="{ {[ [ 'tap',[ ['closehongbao'] ] ] ]}}" mode="widthFix" src="https://express.17huaban.com/attachs/imge/closed.png" style="width:60rpx;height:60rpx;"></image>
</view>
</view>
<view class="hongbao-model-mask data-v-a1" wx:if="{ {hongbaoShow}}"></view>
<index-tip bind:__l="__l" class="data-v-a1" showTips="{ {showTips}}" vueId="8dd740cc-2"></index-tip>
<view bindtap="__e" catchtouchmove="__e" class="movable data-v-a1" data-event-opts="{ {[ [ 'tap',[ [ 'skipPage',['/subpages/pages/mailing-consult/mailing-consult'] ] ] ],[ 'touchmove',[ [ 'touchmove',['$event'] ] ] ] ]}}" style="{ {'position:fixed;right:0;top:80%;'+'top:'+(leftTop==0?'80%':leftTop+'px')+';'}}"></view>
<wyb-popup bgColor="rgba(0,0,0,0)" bind:__l="__l" bind:hide="__e" class="data-v-a1 vue-ref" data-event-opts="{ {[ [ '^hide',[ ['hidepopup'] ] ] ]}}" data-ref="popup" height="552" radius="20" showCloseIcon="{ {false}}" type="center" vueId="8dd740cc-3" vueSlots="{ {['default']}}" width="384">
<view bindtap="__e" class="data-v-a1" data-event-opts="{ {[ [ 'tap',[ [ 'hideNewyearNotice',['$event'] ] ] ] ]}}" style="position:relative;height:100%;"></view>
<view bindtap="__e" class="close-btn-newyear-activity data-v-a1" data-event-opts="{ {[ [ 'tap',[ [ 'hideNewyearNotice',['$event'] ] ] ] ]}}">
<image mode class="data-v-a1" src="https://express.17huaban.com/attachs/imge/closed.png" style="width:100%;height:100%;"></image>
</view>
</wyb-popup>
<view class="hongbao-model-mask data-v-a1" wx:if="{ {hongbaoShow1}}"></view>
<wyb-popup bgColor="#fff" bind:__l="__l" class="data-v-a1 vue-ref" data-ref="popup_wh" height="360" maskClickClose="{ {false}}" radius="10" showCloseIcon="{ {false}}" type="center" vueId="8dd740cc-4" vueSlots="{ {['default']}}" width="600">
<view class="data-v-a1" style="padding:40rpx;">
<view class="data-v-a1" style="text-align:center;margin-bottom:30rpx;font-size:32rpx;font-weight:bold;">{ {''+wh_title+''}}</view>
<view class="data-v-a1" style="margin-bottom:10rpx;">尊敬的用户:</view>
<view class="data-v-a1" style="line-height:50rpx;">
<text class="data-v-a1" decode="{ {true}}">{ {wh_text}}</text>
</view>
</view>
</wyb-popup>
<view class="hongbao-model-mask data-v-a1" wx:if="{ {hongbaoShow2}}"></view>
<wyb-popup bgColor="#fff" bind:__l="__l" class="data-v-a1 vue-ref" data-ref="popup_wh1" height="360" maskClickClose="{ {false}}" radius="10" showCloseIcon="{ {false}}" type="center" vueId="8dd740cc-5" vueSlots="{ {['default']}}" width="600">
<view class="data-v-a1" style="padding:40rpx;">
<view class="data-v-a1" style="text-align:center;margin-bottom:30rpx;font-size:32rpx;font-weight:bold;">{ {wh_title}}</view>
<view class="data-v-a1" style="margin-bottom:10rpx;">尊敬的用户:</view>
<view class="data-v-a1" style="line-height:50rpx;">
<text class="data-v-a1" decode="{ {true}}">{ {wh_text}}</text>
</view>
</view>
<view bindtap="__e" class="close-btn-newyear-activity1 data-v-a1" data-event-opts="{ {[ [ 'tap',[ [ 'hideNewyearNotice2',['$event'] ] ] ] ]}}">
<image mode class="data-v-a1" src="https://express.17huaban.com/attachs/imge/closed.png" style="width:100%;height:100%;"></image>
</view>
</wyb-popup>
</view>
实现截图;
(2)寄件下单
关键代码;
<view class="{ {['delivery-container','data-v-a6',noticeHeight]}}">
<view class="data-v-a6" style="background-color:#ffe4e4;box-shadow:0rpx 3rpx 5rpx 0rpx rgba(0, 0, 0, 0.08);border-radius:10rpx;margin:0 30rpx;padding:10rpx 0;margin-bottom:20rpx;font-size:23rpx;">
<view class="data-v-a6" style="padding:10rpx 30rpx;display:flex;align-items:center;">
<image class="data-v-a6" mode="aspectFit" src="https://express.17huaban.com/attachs/imge/warn.png" style="width:40rpx;height:40rpx;margin-right:20rpx;"></image>
<view class="flex-full info data-v-a6">
<text>{ {title_content}}</text>
</view>
</view>
</view>
<view class="express-info data-v-a6">
<view class="express-item t1 flex-row data-v-a6">
<view class="type data-v-a6">寄</view>
<view bindtap="__e" class="flex-full info data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'addressDirectUrl',[0] ] ] ] ]}}">
<block wx:if="{ {sendAddr===''}}">寄件信息</block>
<block wx:else>
<view class="top flex-row data-v-a6">
<view class="name data-v-a6">{ {sendAddr.sender_name}}</view>
<view class="tel flex-full data-v-a6">{ {sendAddr.sender_phone||sendAddr.sender_mobile}}</view>
</view>
<view class="addr data-v-a6">{ {sendAddr.sender_address}}</view>
</block>
</view>
<view bindtap="__e" class="btn data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'skipPage',['/pagess/address/address?type=1',0] ] ] ] ]}}">地址簿</view>
</view>
<view class="express-item t2 flex-row data-v-a6">
<view class="type data-v-a6">收</view>
<view bindtap="__e" class="flex-full info data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'addressDirectUrl',[1] ] ] ] ]}}">
<block wx:if="{ {receiptAddr===''}}">收件信息</block>
<block wx:else>
<view class="top flex-row data-v-a6">
<view class="name data-v-a6">{ {receiptAddr.sender_name}}</view>
<view class="tel flex-full data-v-a6">{ {receiptAddr.sender_phone||receiptAddr.sender_mobile}}</view>
</view>
<view class="addr data-v-a6">{ {receiptAddr.sender_address}}</view>
</block>
</view>
<view bindtap="__e" class="btn data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'skipPage',['$0',1],['expressUrl'] ] ] ] ]}}">地址簿</view>
</view>
</view>
<view class="goods-form data-v-a6">
<view bindtap="__e" class="form-item flex-row data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'skipPage',['/pages/delivery/goods/goods','goodsModule'] ] ] ] ]}}">
<view class="name data-v-a6" style="display:flex;align-items:center;">物品信息<view class="bitian data-v-a6">必填</view>
</view>
<view class="flex-full value data-v-a6">{ {payload.cargodata.name?payload.cargodata.name+' '+payload.totalWeight+'kg':'请选择'}}</view>
<image class="arrow data-v-a6" src="https://express.17huaban.com/attachs/imge/arrow-right.png"></image>
</view>
<view bindtap="__e" class="form-item flex-row data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'openModal',['expressModule'] ] ] ] ]}}">
<view class="name data-v-a6" style="display:flex;align-items:center;">选择配送公司<view class="bitian data-v-a6">必填</view>
</view>
<view class="flex-full value data-v-a6">{ {expressInfo?expressInfo.nickname:'请选择'}}</view>
<image class="arrow data-v-a6" src="https://express.17huaban.com/attachs/imge/arrow-right.png"></image>
</view>
<view bindtap="__e" class="form-item flex-row data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'openModal',['selectTimeModule'] ] ] ] ]}}" wx:if="{ {is_yuyue}}">
<view class="name data-v-a6">预约取件时间</view>
<view class="flex-full value data-v-a6">{ {payload.sendEndTime?payload.sendStartTime+' '+payload.sendEndTime:'请选择'}}</view>
<image class="arrow data-v-a6" src="https://express.17huaban.com/attachs/imge/arrow-right.png"></image>
</view>
<view bindtap="__e" class="form-item flex-row data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'skipPage',['/pages/delivery/insurance/insurance','insurance'] ] ] ] ]}}" wx:if="{ {is_baojia}}">
<view class="name data-v-a6">保价</view>
<view class="flex-full value data-v-a6">{ {payload.insuranceValue==''?'选填':'价值'+payload.insuranceValue+'元,保费'+payload.insurancePrice+'元'}}</view>
<image class="arrow data-v-a6" src="https://express.17huaban.com/attachs/imge/arrow-right.png"></image>
</view>
<view class="form-item flex-row data-v-a6" wx:else>
<view class="name data-v-a6">保价</view>
<view class="flex-full value data-v-a6">该快递暂不支持保价</view>
<image class="arrow data-v-a6" src="https://express.17huaban.com/attachs/imge/arrow-right.png"></image>
</view>
<view bindtap="__e" class="form-item flex-row data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'openModal',['remarkModule'] ] ] ] ]}}">
<view class="name data-v-a6">备注</view>
<view class="flex-full value data-v-a6">{ {payload.remark||'选填'}}</view>
<image class="arrow data-v-a6" src="https://express.17huaban.com/attachs/imge/arrow-right.png"></image>
</view>
</view>
<view class="goods-form data-v-a6">
<navigator class="vip-module flex-row data-v-a6" url="/pagess/vip/vip" wx:if="{ {!vip}}">
<image class="vip-icon data-v-a6" src="https://express.17huaban.com/attachs/imge/vip-icon.png"></image>
<view class="name flex-full data-v-a6">{ {vip?'特惠寄件 尊贵特权':'开通VIP会员,寄件更优惠'}}</view>
<view class="btn data-v-a6">{ {vip?'降级提现':'立即开通'}}</view>
</navigator>
<view class="form-item flex-row data-v-a6" wx:if="{ {expressInfo.name=='DEPPON'&&expressInfo.channel=='1'}}">
<view class="name data-v-a6">优惠券</view>
<view class="flex-full value data-v-a6">该快递暂不支持优惠券</view>
<image class="arrow data-v-a6" src="https://express.17huaban.com/attachs/imge/arrow-right.png"></image>
</view>
<view bindtap="__e" class="form-item flex-row data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'skipPage',['/pagess/coupon/coupon','couponModule'] ] ] ] ]}}" wx:else>
<view class="name data-v-a6">优惠券</view>
<view class="flex-full value data-v-a6">{ {couponInfo===''?'未使用':'-¥'+couponInfo.money}}</view>
<image class="arrow data-v-a6" src="https://express.17huaban.com/attachs/imge/arrow-right.png"></image>
</view>
</view>
<view class="goods-form data-v-a6 notice-title" wx:if="{ {volumetext.length>0}}">
<view class="remark-list data-v-a6" style="font-size:24rpx;padding-bottom:20rpx;">
<view class="title data-v-a6">{ {noticeTitle+'下单须知'}}</view>
<view class="express-item flex-row data-v-a6" style="padding:10rpx 0rpx 10rpx 0rpx !important;border-bottom:none !important;">
<view class="info flex-full data-v-a6">
<view class="data-v-a6">
<view class="t1 data-v-a6">
<text class="data-v-a6">{ {volumetext}}</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="bottom-container flex-row data-v-a6">
<view class="flex-full main-box data-v-a6">
<view class="top flex-row data-v-a6">
<view class="t1 data-v-a6">运费<text class="val data-v-a6">{ {'¥'+expressValue}}</text>
</view>
<view class="old data-v-a6">{ {expressInfo?expressInfo.original_cost:'0.00'}}</view>
<view bindtap="__e" class="change-btn flex-full flex-row data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'openDetail',['$event'] ] ] ] ]}}">
<view class="txt data-v-a6">明细</view>
<image class="{ {['icon','data-v-a6',showDetail?'active-icon':'']}}" src="https://express.17huaban.com/attachs/imge/arrow-top.png"></image>
</view>
</view>
<view class="bot data-v-a6">
<checkbox-group bindchange="__e" class="data-v-a6" data-event-opts="{ {[ [ 'change',[ [ 'changeAgree',['$event'] ] ] ] ]}}">
<checkbox class="data-v-a6" value="on"></checkbox>
<text bindtap="__e" class="data-v-a6" data-event-opts="{ {[ [ 'tap',[ [ 'skipPage',['/pages/find/agreement/agreement?type=1',null] ] ] ] ]}}">阅读并同意《云递易达寄件服务协议》</text>
</checkbox-group>
</view>
</view>
<view bindtap="__e" class="{ {['btn','data-v-a6',disabled?'disabled':'']}}" data-event-opts="{ {[ [ 'tap',[ [ 'confirmOrder',['$event'] ] ] ] ]}}">{ {submitName}}</view>
</view>
<detail-modal bind:__l="__l" bind:change="__e" class="data-v-a6" coupon="{ {couponInfo===''?'0.00':couponInfo.money}}" data-event-opts="{ {[ [ '^change',[ ['e0'] ] ] ]}}" info="{ {expressInfo}}" insurancePrice="{ {payload.insurancePrice}}" otherCost="{ {expressInfo.otherCost}}" vip="{ {vip}}" vueId="cb4a4e80-1" wx:if="{ {showDetail}}"></detail-modal>
<express-modal bind:__l="__l" bind:change="__e" class="data-v-a6 vue-ref" data-event-opts="{ {[ [ '^change',[ ['changeExpress'] ] ] ]}}" data-ref="expressModule" vueId="cb4a4e80-2"></express-modal>
<remark-modal bind:__l="__l" bind:change="__e" bind:input="__e" class="data-v-a6 vue-ref" data-event-opts="{ {[ [ '^change',[ ['changePayload'] ] ],[ '^input',[ [ '__set_model',[ '','expressInfo','$event',[] ] ] ] ] ]}}" data-ref="remarkModule" value="{ {expressInfo}}" vueId="cb4a4e80-3"></remark-modal>
<select-time-modal bind:__l="__l" bind:change="__e" class="data-v-a6 vue-ref" data-event-opts="{ {[ [ '^change',[ ['changePayload'] ] ] ]}}" data-ref="selectTimeModule" expressInfo="{ {expressInfo}}" payload="{ {payload}}" sendAddr="{ {sendAddr}}" vueId="cb4a4e80-4"></select-time-modal>
<zb-pay-modal bind:__l="__l" bind:change="__e" class="data-v-a6 vue-ref" data-event-opts="{ {[ [ '^change',[ ['changePay'] ] ] ]}}" data-ref="zbPayModule" vueId="cb4a4e80-5"></zb-pay-modal>
</view>
实现截图;
(3)寄件地址簿
关键代码;
<view class="address-container data-v-a17">
<view class="search-module data-v-a17">
<view class="search-box flex-row data-v-a17">
<input bindblur="__e" bindchange="__e" bindinput="__e" class="ipt flex-full data-v-a17" data-event-opts="{ {[ [ 'change',[ [ 'loadRes',[true] ] ] ],[ 'input',[ [ '__set_model',[ '','addkey','$event',['trim'] ] ] ] ],[ 'blur',[ ['$forceUpdate'] ] ] ]}}" placeholder="请输入联系人姓名或者手机号码" type="text" value="{ {addkey}}"></input>
<image class="icon data-v-a17" src="https://express.17huaban.com/attachs/imge/search-icon.png"></image>
</view>
</view>
<view class="addlist data-v-a17" wx:if="{ {dataSource.length>0}}">
<view class="address-item data-v-a17" wx:for="{ {dataSource}}" wx:key="index">
<view bindtap="__e" class="top data-v-a17" data-event-opts="{ {[ [ 'tap',[ [ 'select',['$0'],[ [ ['dataSource','',index] ] ] ] ] ] ]}}">
<view class="t1 data-v-a17">{ {''+item.sender_name+''}}<text class="tel data-v-a17">{ {item.sender_phone?item.sender_phone:item.sender_mobile}}</text>
</view>
<view class="t2 data-v-a17">{ {item.sender_address}}</view>
</view>
<view class="bot flex-row data-v-a17" style="display:flex;justify-content:flex-end;">
<view bindtap="__e" class="btn-box flex-row data-v-a17" data-event-opts="{ {[ [ 'tap',[ [ 'edit',['$0'],[ [ ['dataSource','',index] ] ] ] ] ] ]}}">
<image class="icon data-v-a17" src="https://express.17huaban.com/attachs/imge/edit-btn.png"></image>
<text class="flex-full data-v-a17">编辑</text>
</view>
<view bindtap="__e" class="btn-box flex-row data-v-a17" data-event-opts="{ {[ [ 'tap',[ [ 'remove',['$0'],[ [ ['dataSource','',index,'id'] ] ] ] ] ] ]}}">
<image class="icon data-v-a17" src="https://express.17huaban.com/attachs/imge/delete-btn.png"></image>
<text class="flex-full data-v-a17">删除</text>
</view>
</view>
</view>
</view>
<empty bind:__l="__l" class="data-v-a17" vueId="7a5cd8ee-1" wx:else></empty>
<view bindtap="__e" class="add-btn data-v-a17" data-event-opts="{ {[ [ 'tap',[ [ 'edit',[null] ] ] ] ]}}">{ {buttonTitle}}</view>
</view>
实现截图;
(4)地址添加编辑
关键代码;
<view class="address-edit data-v-a19">
<view class="goods-form data-v-a19">
<view class="form-item data-v-a19" style="height:235rpx;">
<textarea bindblur="__e" bindinput="__e" class="data-v-a19" data-event-opts="{ {[ [ 'input',[ [ '__set_model',[ '','content','$event',['trim'] ] ] ] ],[ 'blur',[ ['$forceUpdate'] ] ] ]}}" maxlength="200" placeholder="粘贴地址信息,自动拆分姓名、地址和联系方式。例:张三 13566666666 上海市上海市青浦区xx镇xx路xx号。识别后请仔细检查地址是否有误!" style="height:155rpx;line-height:36rpx;" value="{ {content}}"></textarea>
<button bindtap="__e" class="mini-btn shibie data-v-a19" data-event-opts="{ {[ [ 'tap',[ [ 'aiarea',['$event'] ] ] ] ]}}" size="mini" type="default">识别</button>
</view>
</view>
<view class="goods-form data-v-a19">
<view class="form-item flex-row data-v-a19">
<view class="name data-v-a19">联系人</view>
<input bindblur="__e" bindinput="__e" class="flex-full value data-v-a19" data-event-opts="{ {[ [ 'input',[ [ '__set_model',[ '$0','name','$event',['trim'] ],['payload'] ] ] ],[ 'blur',[ ['$forceUpdate'] ] ] ]}}" placeholder="请输入" type="text" value="{ {payload.name}}"></input>
</view>
<view class="form-item flex-row data-v-a19">
<view class="name data-v-a19">手机号码</view>
<input bindblur="__e" bindinput="__e" class="flex-full value data-v-a19" data-event-opts="{ {[ [ 'input',[ [ '__set_model',[ '$0','phone','$event',['trim'] ],['payload'] ] ] ],[ 'blur',[ ['$forceUpdate'] ] ] ]}}" placeholder="例如:13566666666" type="number" value="{ {payload.phone}}"></input>
</view>
<view class="form-item flex-row data-v-a19">
<view class="name data-v-a19">固定电话</view>
<input bindblur="__e" bindinput="__e" class="flex-full value data-v-a19" data-event-opts="{ {[ [ 'input',[ [ '__set_model',[ '$0','mobile','$event',['trim'] ],['payload'] ] ] ],[ 'blur',[ ['$forceUpdate'] ] ] ]}}" placeholder="选填,例如:055112345678" type="number" value="{ {payload.mobile}}"></input>
</view>
<pick-regions bind:__l="__l" bind:getRegion="__e" class="data-v-a19" data-event-opts="{ {[ [ '^getRegion',[ ['handleGetRegion'] ] ] ]}}" defaultRegion="{ {defaultRegion}}" vueId="162b6693-1" vueSlots="{ {['default']}}">
<view class="form-item flex-row data-v-a19">
<view class="name data-v-a19">所在地区</view>
<input class="flex-full value data-v-a19" disabled="{ {true}}" placeholder="请选择" type="text" wx:if="{ {payload.area===''}}"></input>
<view class="flex-full value data-v-a19" wx:else>{ {payload.province+'-'+payload.city+'-'+payload.area}}</view>
<image class="arrow data-v-a19" src="https://express.17huaban.com/attachs/imge/arrow-right.png"></image>
</view>
</pick-regions>
<view class="form-item flex-row data-v-a19">
<view class="name data-v-a19">详细地址</view>
<input bindblur="__e" bindinput="__e" class="flex-full value data-v-a19" data-event-opts="{ {[ [ 'input',[ [ '__set_model',[ '$0','address','$event',['trim'] ],['payload'] ] ] ],[ 'blur',[ ['$forceUpdate'] ] ] ]}}" maxlength="60" placeholder="请输入" type="text" value="{ {payload.address}}"></input>
</view>
</view>
<view bindtap="__e" class="submit-btn data-v-a19" data-event-opts="{ {[ [ 'tap',[ [ 'submit',['$event'] ] ] ] ]}}">确定</view>
</view>
实现截图;
9.测试
当前小程序由于是开发版,并未发布因此不可对外让用户使用,可不可以生成小程序二维码让用户扫码去使用,仅可以在电脑的模拟器或者本人的手机上,因此没有办法测试小程序的兼容性。但是,在这里对本系统的功能进行了大量功能性测试,具体内容如下所示。
(1)测试目的
软件测试的目的是为了发现并纠正软件中的错误、缺陷和漏洞,以确保软件产品的质量和稳定性,提高用户的满意度和信任度。同时,软件测试也可以帮助开发团队发现潜在的问题,并为软件产品的改进提供支持。
(2)小程序的核心功能测试过程
以下部分是对小程序端主要功能的测试,包括了:
① 微信登录;
② 寄快递信息填写;
③ 选择地址簿,添加地址;
④ 下单支付的功能;
⑤ 历史下单记录功能查看;
⑥ 查快递;
⑦ 查运费。
测试结果如表11.1:
表11.1测试结果表
功能模块 |
测试结果 |
微信登录功能 |
未发现问题 |
寄快递信息填写 |
未发现问题 |
选择地址簿,添加地址 |
未发现问题 |
下单支付的功能 |
未发现问题 |
历史下单记录功能查看 |
未发现问题 |
查快递 |
未发现问题 |
查运费 |
未发现问题 |
以下部分是对后台管理系统主要功能的测试,包括了:
① 后台登录;
② 管理员管理;
③ 会员管理;
④ 订单管理功能;
⑤ 帮助中心管理;
⑥ 用户地址管理。
测试结果如表11.2:
表11.2测试结果表
功能模块 |
测试结果 |
后台登录 |
未发现问题 |
管理员管理 |
未发现问题 |
会员管理 |
未发现问题 |
订单管理功能 |
未发现问题 |
帮助中心管理 |
未发现问题 |
用户地址管理 |
未发现问题 |
喜欢的点赞收藏加关注私信沟通