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

目录

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

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

1 设计数据源

为了显示服务的内容,我们先需要设计数据源用来存储数据。打开控制台,点击数据模型,点击新建
在这里插入图片描述
输入数据源的名称,服务管理,点击创建
在这里插入图片描述
数据源创建好之后,需要添加列,首先我们添加服务的名称,类型选择文本
在这里插入图片描述
在这里插入图片描述
在添加的列上点击向右插入列,添加服务描述,类型选择文本
在这里插入图片描述
在这里插入图片描述
在首页显示的时候为了吸引用户,我们添加两个价格,一个是划线价格,一个是优惠价格,类型选择数字
在这里插入图片描述
在这里插入图片描述
为了在列表上显示,我们添加一个图片字段,类型选择图片
在这里插入图片描述
然后添加一个销量,类型选择数字
在这里插入图片描述
通常小程序可以按照综合进行排序,我们设置一个综合评分,类型选择数字
在这里插入图片描述
在添加一个服务详情,类型选择富文本
在这里插入图片描述
添加一个是否在首页展示的字段,类型选择布尔值
在这里插入图片描述
最后添加一个服务分类,类型选择关联关系,选择我们的服务分类表
在这里插入图片描述

2 后台管理

数据源创建好之后,我们就可以开发后台管理功能,先创建一个服务管理页面,从模板新建
在这里插入图片描述
选择对应的数据模型,模板会自动的生成增删改查的页面
在这里插入图片描述
切换到页面布局,我们配置我们的导航菜单
在这里插入图片描述
在这里插入图片描述
点开刚才配置的菜单,将标题修改为服务管理
在这里插入图片描述

3 后端API

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

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

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

点击APIs,点击新建
在这里插入图片描述
选择自定义代码
在这里插入图片描述
输入方法的名称和标识
在这里插入图片描述
因为销量、价格、评价的数量级不一样,为了实现可比较,我们用minMax算法实现,以下是minMax算法的逻辑

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

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

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

在这里插入图片描述
然后定义一个常量用来获取我们的入参

const price = params.price

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

  let score = 0

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

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

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

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

const records = services.records.map(item=>(item.yhjg))

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

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格式,这里我们将结果包装成一个对象,属性放置我们的返回结果

return {score:Number(score.toFixed(2))};

代码写好之后,点击方法测试,输入入参,看一下我们的计算结果
在这里插入图片描述
点击运行测试就可以看到执行的结果,点击出参自动映射,我们的API就开发好了
在这里插入图片描述

4 调用API

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

在这里插入图片描述
在代码区定义两个变量,一个是数字类型,一个是对象类型
在这里插入图片描述
在这里插入图片描述
选中综合得分,设置输入值,绑定我们的score
在这里插入图片描述

然后设置按钮,我们设置一个链式调用,先判断我们的优惠价格有没有输入,如果没有我就提示一个错误信息
在这里插入图片描述
如果输入了,我就调用我的API,并且传入我们的参数,并将结果赋值给我们的result对象
在这里插入图片描述
赋值成功后将API的调用结果赋值给我们的score变量
在这里插入图片描述
这样就实现了一个计算综合得分的效果

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/329428.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习之基于Tensorflow卷积神经网络脑肿瘤分类识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 脑肿瘤是医学领域的一个重要问题,对人类的健康构成了严重威胁。传统的脑肿瘤分类识别方法…

MVVM_MVVMLight架构

介绍 MVVMLight是一个实现MVVM模式的轻量级框架(相对于Prism),能够更好的帮助我们开发WPF Windows Phone、Windows 8、SilverLight相关项目。 安装 在NuGet 工具箱上搜索MVVMLight进行下载 下载后它帮你生成ViewModel文件夹,里面…

顶顶通呼叫中心中间件-自动外呼输入分机号(比如隐私号)(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-自动外呼输入分机号(比如隐私号)(mod_cti基于FreeSWITCH) 比如有些人的号码是这样的就需要用上自动外呼输入分机号了 号码1:182XXXX8111-1234 号码2:182XXXX8222 如果号码是这样的就根据以下步骤配置 注意使用这个需要:…

web4.0-元宇宙虚拟现实

互联网一直在不断演变和改变我们的生活方式,从Web逐渐 1.0时代的静态网页到Web 2.0时代的社会性和内容制作,再从Web逐渐 在3.0阶段,互联网发展一直推动着大家时代的发展。如今,大家正站在互联网演化的新起点上,迈入Web…

k8s pv 一直是release状态

如下图所示,pv 一直是release状态 这个时候大家可能就会想到现在我的 PVC 被删除了,PV 也变成了 Released 状态,那么我重建之前的 PVC 他们不就可以重新绑定了,事实并不会,PVC 只能和 Available 状态的 PV 进行绑定。…

OpenAI宫斗剧番外篇: “Ilya与Altman联手对抗微软大帝,扫除黑恶势力”,“余华”和“莫言”犀利点评

事情是这样的。 小编我是一个重度的智谱清言用户,最近智谱清言悄悄上线了一个“划词引用”功能后,我仿佛打开了新世界的大门。我甚至用这个小功能,玩出来了即将为你上映的《OpenAI宫斗剧番外篇》。 3.5研究测试:hujiaoai.cn 4研…

Github上传时报错The file path is empty的解决办法

问题截图 文件夹明明不是空的,却怎么都上传不上去。 解决方案: 打开隐藏文件的开关,删除原作者的.git文件 如图所示: 上传成功!

vue三级联动组件

背景 项目中经常出现三级下拉框组件的要求,这种组件其中一级发生变化,子级的组件就会发生变化如果这一个组件,单独作为搜索条件使用,很好写,同时作为搜索条件和form回写组件,回显就比较困难 子组件代码 将与…

Vitis HLS 学习笔记--控制驱动TLP - Dataflow视图

目录 1. 简介 2. 功能特性 2.1 Dataflow Viewer 的功能 2.2 Dataflow 和 Pipeline 的区别 3. 具体演示 4. 总结 1. 简介 Dataflow视图,即数据流查看器。 DATAFLOW优化属于一种动态优化过程,其完整性依赖于与RTL协同仿真的完成。因此,…

JavaEE-文件IO1

文章目录 一、什么是文件IO?1.1 IO1.2 文件1.2.1 路径1.2.2 文件分类 二、使用Java针对文件系统进行操作 一、什么是文件IO? 1.1 IO IO分别代表Input和Output即输入和输出。比如我的电脑可以从网络上下载文件,也可以通过网络上传文件或者我把我的内存中的数据保…

巨某量引擎后台登录实战笔记 | Playwright自动化框架

前言 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 入正题看看滑块是怎么个事…

Arthas,应用诊断利器!【送源码】

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信…

C#, PCANBasicd.dll库读写CAN设备数据

PCAN-Basic是一个简单的 PCAN 系统编程接口。 通过 PCAN-Basic Dll,可以将自己的应用程序连接到设备驱动程序和 PCAN 硬件,以与 CAN 总线进行通信。支持C、C++、C#、Delphi、JAVA、VB、Python等语言。 PCAN-Basic库和驱动下载地址 ​ ​https://www.peak-system.com/filead…

O2OA(翱途)开发平台数据统计如何配置?

O2OA提供的数据管理中心,可以让用户通过配置的形式完成对数据的汇总,统计和数据分组展现,查询和搜索数据形成列表数据展现。也支持用户配置独立的数据表来适应特殊的业务的数据存储需求。本文主要介绍如何在O2OA中开发和配置统计。 一、先决…

mysql 多表关联查询性能优化-同一sql不同的执行计划

一、问题背景 相同的sql,不同的日期,执行的时间差异很大,执行计划不一样。执行快时,30ms左右。执行慢时,15s左右。 二、分析结论 1、经过分析,发现不同日期下,sql的执行计划不同,驱…

Qt 科目一考试系统(有源码)

项目源码和资源:科目一考试系统: qt实现科目一考试系统 一.项目概述 该项目是一个基于Qt框架开发的在线考试系统,主要实现了考试题目的随机抽取、考试时间限制、成绩统计等功能。用户可以通过界面操作进行考试,并查看自己的考试成绩。 二.技…

【BSP开发经验】用户态栈回溯技术

前言 在内核中有一个非常好用的函数dump_stack, 该函数在我们调试内核的过程中可以打印出函数调用关系,该函数可以帮助我们进行内核调试,以及让我们了解内核的调用关系。同时当内核发生崩溃的时候就会自己将自己的调用栈输出到串口。 栈回溯非常有利于我…

react 下拉框内容回显

需要实现效果如下 目前效果如下 思路 : 将下拉框选项的value和label一起存储到state中 , 初始化表单数据时 , 将faqType对应的label查找出来并设置到Form.Item中 , 最后修改useEffect 旧代码 //可以拿到faqType为0 但是却没有回显出下拉框的内容 我需要faqType为0 回显出下拉…

【实战教程】使用Spring AOP和自定义注解监控接口调用

一、背景 随着项目的长期运行和迭代,积累的功能日益繁多,但并非所有功能都能得到用户的频繁使用或实际上根本无人问津。 为了提高系统性能和代码质量,我们往往需要对那些不常用的功能进行下线处理。 那么,该下线哪些功能呢&…

QTextEdit 控件上显示信息:

目录 1. 使用 append 方法: 2. 使用 setPlainText 方法 3.例子: 1. 使用 append 方法: 如果你希望在 QTextEdit 控件上追加显示新的信息,可以使用 append 方法。例如,当你想要追加一行新的日志信息: self.text_edit.append(&…