第四篇:服务商(工人端)-01服务商入驻申请
目录
- 1 需求分析
- 2 创建数据源
- 3 搭建申请页面
- 4 搭建申请查看页面
- 5 搭建跳转逻辑
- 总结
在用户小程序中注册的普通用户,如果想要成为平台的服务提供商,需要通过入驻流程提交必要的资质信息,并经过平台的审核。这是确保服务商质量,构建平台信任体系的第一步。
1 需求分析
核心需求是:
- 用户可以在服务商小程序或用户小程序的特定入口发起入驻申请。
- 申请人需要填写个人信息、联系方式、服务经验、服务区域等。
- 申请人需要上传身份证明(如身份证正反面)和相关的职业资质证明图片。
- 提交申请后,系统应记录申请信息,并将服务商状态标记为“待审核”。
- 申请人能够查看自己的申请状态(待审核、已通过、已拒绝)。
- 入驻申请的审核由管理员在管理后台完成。
2 创建数据源
添加一个服务商申请表,添加必要的字段
3 搭建申请页面
在小程序端我的页面,我们搭建一个菜单服务商入驻申请
创建一个服务商入驻申请页面
添加表单容器,数据模型选择我们的服务商申请表
将自我介绍改为多行输入
审核状态的选中值改为1
所属用户从全局变量绑定数据标识
将无需向用户显示的字段进行隐藏
打开必填字段
继续添加一个申请成功的页面
搭建申请成功的布局
在表单提交成功后跳转到申请成功的页面
4 搭建申请查看页面
当申请提交之后,后续我们再打开这个模块的时候就是查看页面,创建一个申请查看页面
添加数据详情组件,数据模型选择服务商申请表
数据筛选配置为openid等于我们系统变量里的openId
5 搭建跳转逻辑
回到我的页面,搭建一下申请的跳转逻辑,先要检查用户是否注册,如果未注册我们就要求注册。这里可以沿用我们在服务详情页面的功能,如果已经注册看是否首次申请,如果首次申请就跳转到申请页面,如果已经申请过了就跳转到查看页面。
新建一个javascript方法
function generateRandomOpenID(length = 28, prefix = 'o', options = {}) {// 参数验证if (length <= prefix.length) {throw new Error('OpenID总长度必须大于前缀长度');}// 配置选项const { uppercase = false, includeNumbers = true,timestamp = false } = options;// 字符集let chars = 'abcdefghijklmnopqrstuvwxyz';if (uppercase) chars += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';if (includeNumbers) chars += '0123456789';// 计算随机部分长度let randomLength = length - prefix.length;// 如果启用时间戳,预留8位给时间戳(缩短随机部分)let timestampPart = '';if (timestamp) {if (randomLength < 9) {throw new Error('启用时间戳选项时,总长度至少需要比前缀长9位');}timestampPart = Math.floor(Date.now() / 1000).toString(36).padStart(8, '0');randomLength -= 8;}// 生成随机字符串let randomPart = '';for (let i = 0; i < randomLength; i++) {randomPart += chars.charAt(Math.floor(Math.random() * chars.length));}// 组合结果return prefix + (timestamp ? timestampPart + randomPart : randomPart);
}
export default async function({event, data}) {const userInfo = await $w.auth.getUserInfo()const openid = userInfo.openId||generateRandomOpenID()console.log("openid",openid)const result = await $w.cloud.callDataSource({dataSourceName: 'userManagement_hrhzd6x',methodName: 'getUserInfo',params: {openid: openid}, // 方法入参});console.log("result",result)if (result?.data?.isRegistered) {$w.utils.navigateTo({pageId: 'u_shen_qing_cha_kan', // 页面 Idparams: {}});} else {$w.utils.showModal({title: '注册提示',content: '尚未注册,请先注册用户',success(res) {if (res.confirm) {console.log('用户点击确定');$w.modal1.open({})} else if (res.cancel) {console.log('用户点击取消');}}});}}
然后给我们的组件绑定这个方法
总结
本篇我们介绍了服务商入驻申请的搭建过程,包括搭建数据源,创建页面,配置页面跳转等步骤。服务商是我们小程序的核心角色,下一篇我们就搭建一下管理员审核的功能。