家政预约小程序05服务管理

目录

  • [1 设计数据源](#1 设计数据源)
  • [2 后台管理](#2 后台管理)
  • [3 后端API](#3 后端API)
  • [4 调用API](#4 调用API)
  • 总结

家政预约小程序的核心是展示家政公司提供的各项服务的能力,比如房屋维护修缮,家电维修,育婴,日常保洁等。用户在选择家政服务的时候,价格,评价是影响用户选择的核心要素。因此在小程序的首要需要展示用户关心的核心内容。

1 设计数据源

为了显示服务的内容,我们先需要设计数据源用来存储数据。打开控制台,点击数据模型,点击新建

输入数据源的名称,服务管理,点击创建

数据源创建好之后,需要添加列,首先我们添加服务的名称,类型选择文本

在添加的列上点击向右插入列,添加服务描述,类型选择文本

在首页显示的时候为了吸引用户,我们添加两个价格,一个是划线价格,一个是优惠价格,类型选择数字

为了在列表上显示,我们添加一个图片字段,类型选择图片

然后添加一个销量,类型选择数字

通常小程序可以按照综合进行排序,我们设置一个综合评分,类型选择数字

在添加一个服务详情,类型选择富文本

添加一个是否在首页展示的字段,类型选择布尔值

最后添加一个服务分类,类型选择关联关系,选择我们的服务分类表

2 后台管理

数据源创建好之后,我们就可以开发后台管理功能,先创建一个服务管理页面,从模板新建

选择对应的数据模型,模板会自动的生成增删改查的页面

切换到页面布局,我们配置我们的导航菜单

点开刚才配置的菜单,将标题修改为服务管理

3 后端API

我们这里录入数据的时候,需要先计算一下服务的综合得分。我们综合得分的技术规则是按三个指标进行计算,分别是价格、销量和评价。每个指标分配不同的权重,最终求一个总体的得分。

而且综合得分是一个动态的指标,在每次顾客购买服务和做出评价后,重新计算当前服务的综合得分并进行更新。

像这种有规则的我们称之为业务逻辑,需要使用API进行开发,在小程序侧对应的事件中进行调用。

点击APIs,点击新建

选择自定义代码

输入方法的名称和标识

因为销量、价格、评价的数量级不一样,为了实现可比较,我们用minMax算法实现,以下是minMax算法的逻辑

比如价格作为一项指标公式是,评价后的价格分=(当前服务价格-最低服务价格)/(最高服务价格-最低服务价格)

然后总分=销量评价分权重+价格评价分权重+评价分*权重

首先我们需要传入当前产品的价格,设置入参,输入price

然后定义一个常量用来获取我们的入参

bash 复制代码
const price = params.price

接着定义一个变量用来返回计算的结果,初始化为0

bash 复制代码
  let score = 0

接着我们获取服务的所有数据,可以调用分页方法

bash 复制代码
const services = await context.callModel({
    name:'fwgl_u9ms0al',
    methodName:'wedaGetRecords',
    params:{
      pageSize:1000
    }
  })

默认不设置页码默认取10条,我们这里设置1000基本就把服务全获取到了

通过分页方法会把所有字段都获取到,我们这里只关心服务的价格,使用数组的map方法我们处理一下返回结果,让数组里只包含价格

bash 复制代码
const records = services.records.map(item=>(item.yhjg))

接着我们就要处理一下各种情况,比如我没录入数据的情况下,那我就直接设定价格分为0,如果只有一条数据因为分母会变成0所以也让价格分变成0

bash 复制代码
if(records.length===0){
    score=0
  }else{
    records.push(price)
    const max_price = Math.max(...records)
    const min_price = Math.min(...records)
    if(max_price==min_price){
      score=0
    }else{
      console.log('min_price',min_price,'max_price',max_price)
      score = ((price - min_price)/(max_price-min_price))*0.4
    }
  }

计算好价格之后,最后将结果返回,注意API要求返回结果是JSON格式,这里我们将结果包装成一个对象,属性放置我们的返回结果

bash 复制代码
return {score:Number(score.toFixed(2))};

代码写好之后,点击方法测试,输入入参,看一下我们的计算结果

点击运行测试就可以看到执行的结果,点击出参自动映射,我们的API就开发好了

4 调用API

在我们的编辑界面,我们添加一个按钮调用一下API,在综合评分字段旁边添加一个普通容器,将该字段放入普通容器中,并添加一个按钮

在代码区定义两个变量,一个是数字类型,一个是对象类型

选中综合得分,设置输入值,绑定我们的score

然后设置按钮,我们设置一个链式调用,先判断我们的优惠价格有没有输入,如果没有我就提示一个错误信息

如果输入了,我就调用我的API,并且传入我们的参数,并将结果赋值给我们的result对象

赋值成功后将API的调用结果赋值给我们的score变量

这样就实现了一个计算综合得分的效果

总结

本篇我们介绍了服务管理功能的开发,编写了一个小的算法用来计算综合得分,然后讲解了如何通过事件的链式调用去获取我们的综合得分。虽然这个算法不见得和实际贴合,但是主要是演示一下微搭前后端开发的一个过程,结合你自己的业务就可以实现自己想要的逻辑出来。

相关推荐
h_65432105 小时前
微信小程序点击按钮跳转链接并显示
微信小程序·小程序
银迢迢7 小时前
微信小程序的开发及问题解决
微信小程序·小程序
liyinchi19887 小时前
原生微信小程序 textarea组件placeholder无法换行的问题解决办法
微信小程序·小程序
说私域9 小时前
基于开源链动2+1模式AI智能名片S2B2C商城小程序的低集中度市场运营策略研究
人工智能·小程序·开源·零售
少恭写代码12 小时前
duxapp 2025-03-29 更新 编译结束的复制逻辑等
react native·小程序·taro
suncentwl14 小时前
答题pk小程序道具卡的获取与应用
小程序·答题小程序·知识竞赛
bysjlwdx14 小时前
uniapp婚纱预约小程序
小程序·uni-app
ALLSectorSorft14 小时前
代驾小程序订单系统框架搭建
小程序·代驾小程序
qq_124987075314 小时前
原生小程序+springboot+vue+协同过滤算法的音乐推荐系统(源码+论文+讲解+安装+部署+调试)
java·spring boot·后端·小程序·毕业设计·课程设计·协同过滤
前端极客探险家1 天前
微信小程序全解析:从入门到实战
微信小程序·小程序