uniapp 小程序 评分组件

这篇具有很好参考价值的文章主要介绍了uniapp 小程序 评分组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果图:
uniapp 小程序 评分组件,uni-app,小程序

1、组件:starsRating.vue

<template>
	<view class="stars">
		<image @click="btnStars1" class="starsicon" :src="starsObject[0]" mode="widthFix"></image>
		<image @click="btnStars2" class="starsicon" :src="starsObject[1]" mode="widthFix"></image>
		<image @click="btnStars3" class="starsicon" :src="starsObject[2]" mode="widthFix"></image>
		<image @click="btnStars4" class="starsicon" :src="starsObject[3]" mode="widthFix"></image>
		<image @click="btnStars5" class="starsicon" :src="starsObject[4]" mode="widthFix"></image>
		<text class="txt-stars">{{starsIndex}}.0</text>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				
			}
		},
		components: {},
		props: {
			starsIndex: {}, // 星级评价分数
			isEditStars: {}, // 是否编辑星级评价分数
			starsObject: {} // 数组
		},
		computed: {},

		/**
		 * 生命周期函数--监听页面加载
		 */
		onLoad: function(options) {

		},

		/**
		 * 生命周期函数--监听页面初次渲染完成
		 */
		onReady: function() {},

		/**
		 * 生命周期函数--监听页面显示
		 */
		onShow: function() {

		},

		/**
		 * 生命周期函数--监听页面隐藏
		 */
		onHide: function() {},

		/**
		 * 生命周期函数--监听页面卸载
		 */
		onUnload: function() {},

		/**
		 * 页面相关事件处理函数--监听用户下拉动作
		 */
		onPullDownRefresh: function() {},

		/**
		 * 页面上拉触底事件的处理函数
		 */
		onReachBottom: function() {},
		methods: {
			btnStars1: function() {
				var _this = this
				console.log("btnStars1 = " + _this.isEditStars)
				if (_this.isEditStars) {
					_this.$emit("starsClick", 1)
				}
			},
			btnStars2: function() {
				var _this = this
				if (_this.isEditStars) {
					_this.$emit("starsClick", 2)
				}
			},
			btnStars3: function() {
				var _this = this
				if (_this.isEditStars) {
					_this.$emit("starsClick", 3)
				}
			},
			btnStars4: function() {
				var _this = this
				if (_this.isEditStars) {
					_this.$emit("starsClick", 4)
				}
			},
			btnStars5: function() {
				var _this = this
				if (_this.isEditStars) {
					_this.$emit("starsClick", 5)
				}
			}
		}
	}
</script>
<style>
	.txt-stars {
		color: #ff9900;
		font-size: 30rpx;
		margin-left: 25rpx;
	}
	
	.starsicon {
		width: 44rpx;
		height: 44rpx;
		margin-left: 11rpx;
	}
	
	.stars {
		display: flex;
		flex-direction: row;
		align-items: center;
	}
</style>

2、页面内引用:

<template>
	<view class="evaluate">
		<view class="evaluate-box">
			<view class="title">
				服务评价:
			</view>
			<view class="star-rating">
				<stars-rating :starsIndex="starsIndex" :starsObject="clicked_list" :isEditStars="true"
					@starsClick="starsClick"></stars-rating>
			</view>
		</view>
		<view class="evaluate-comment">
			<textarea class="textarea" name="" id="" cols="30" rows="10"  placeholder="填写您的评价" v-model="commentInfo"></textarea>
		</view>
		<view class="evaluate-btn">
			<button class="submit-btn" @click="toOrderDetailPage">提交</button>
		</view>
	</view>
</template>

<script>
	var http = require("../../utils/http.js");//公共的请求方法(在另一篇文章中已发布)
	var config = require("../../utils/config.js");//公共的请求地址(在另一篇文章中已发布)
	import starsRating from '../../components/starsRating/starsRating'
	export default {
		data() {
			return {
				starsIndex: 1, // 默认星级评价分数
				clicked_list: {}, //星级评价图标数组
				commentInfo: '',
				orderId: '',
				commentStatus: 0
			}
		},
		components: {
			starsRating
		},
		props: {},
		computed: {},

		/**
		 * 生命周期函数--监听页面加载
		 */
		onLoad: function(options) {
			this.orderId = options.orderId

			var _this = this
			_this.curShowStars(_this.starsIndex)

		},

		/**
		 * 生命周期函数--监听页面初次渲染完成
		 */
		onReady: function() {},

		/**
		 * 生命周期函数--监听页面显示
		 */
		onShow: function() {

		},

		/**
		 * 生命周期函数--监听页面隐藏
		 */
		onHide: function() {},

		/**
		 * 生命周期函数--监听页面卸载
		 */
		onUnload: function() {},

		/**
		 * 页面相关事件处理函数--监听用户下拉动作
		 */
		onPullDownRefresh: function() {},

		/**
		 * 页面上拉触底事件的处理函数
		 */
		onReachBottom: function() {

		},
		methods: {
			starsClick: function(starsNum) {
				var _this = this
				_this.starsIndex = starsNum
				_this.curShowStars(starsNum)
			},
			// 星星评价展示
			curShowStars: function(starsNum) {
				var _this = this
				if (starsNum == 1) {
					_this.clicked_list = [
						"../../static/img/stars_selected.png", "../../static/img/stars_defalt.png",
						"../../static/img/stars_defalt.png", "../../static/img/stars_defalt.png",
						"../../static/img/stars_defalt.png"
					]
				} else if (starsNum == 2) {
					_this.clicked_list = [
						"../../static/img/stars_selected.png", "../../static/img/stars_selected.png",
						"../../static/img/stars_defalt.png", "../../static/img/stars_defalt.png",
						"../../static/img/stars_defalt.png"
					]
				} else if (starsNum == 3) {
					_this.clicked_list = [
						"../../static/img/stars_selected.png", "../../static/img/stars_selected.png",
						"../../static/img/stars_selected.png", "../../static/img/stars_defalt.png",
						"../../static/img/stars_defalt.png"
					]
				} else if (starsNum == 4) {
					_this.clicked_list = [
						"../../static/img/stars_selected.png", "../../static/img/stars_selected.png",
						"../../static/img/stars_selected.png", "../../static/img/stars_selected.png",
						"../../static/img/stars_defalt.png"
					]
				} else if (starsNum == 5) {
					_this.clicked_list = [
						"../../static/img/stars_selected.png", "../../static/img/stars_selected.png",
						"../../static/img/stars_selected.png", "../../static/img/stars_selected.png",
						"../../static/img/stars_selected.png"
					]
				} else {
					_this.clicked_list = [
						"../../static/img/stars_defalt.png", "../../static/img/stars_defalt.png",
						"../../static/img/stars_defalt.png", "../../static/img/stars_defalt.png",
						"../../static/img/stars_defalt.png"
					]
					_this.starsIndex = 0
				}
			},
			/**
			 * 提交评价
			 */
			toOrderDetailPage: function(e) {
				uni.showLoading();
				var params = {
					url: "/***/evaluate",//评价接口
					method: "PUT",
					data: {
						orderId: this.orderId,
						commentStatus: 1,//评论状态 :0 未评价 1 已评价
						commentStart: this.starsIndex,//星星数
						commentContent: this.commentInfo//评论内容
					},
					callBack: res => {
						uni.hideLoading()
						uni.showModal({
							title: "提交成功",
							content: "",
							confirmText: "确定",
							showCancel: false,
							success: (res) => {
								if (res.confirm) {
									//提交成功跳转到订单列表页
									uni.reLaunch({
										url: '/pages/order/order'
									})
								}
							}
						})
					}
				};
				http.request(params);
			}
		}
	}
</script>
<style>
	page {
	background: #f8f8f8;
}

.evaluate {
	padding: 32rpx 21rpx 0rpx 21rpx;
}

.evaluate-box {
	display: flex;
	justify-content: flex-start;
	align-items: center;
}

.title {
	font-size: 32rpx;
	color: #333333;
	margin-right: 50rpx;
}

.evaluate-comment {
	width: 708rpx;
	height: 513rpx;
	border-radius: 20rpx;
	background: #FFFFFF;
	font-size: 30rpx;
	line-height: 40rpx;
	letter-spacing: 1rpx;
	color: #666666;
	margin-top: 31rpx;
}

textarea {
	padding: 32rpx 37rpx 32rpx 37rpx;
}

.evaluate-btn {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 120rpx;
	background: #FFFFFF;
	border: 1rpx solid #E4E4E4;
	padding-top: 16rpx;
	box-sizing: border-box;
}

.submit-btn {
	width: 710rpx;
	height: 88rpx;
	line-height: 88rpx;
	border-radius: 60rpx;
	background: #3DB86D;
	text-align: center;
	color: #fff;
	font-size: 32rpx;
}

</style>

3、星星图片
uniapp 小程序 评分组件,uni-app,小程序
uniapp 小程序 评分组件,uni-app,小程序文章来源地址https://www.toymoban.com/news/detail-602382.html

到了这里,关于uniapp 小程序 评分组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uni-app 微信小程序启用组件按需注入

    uni-appi 微信小程序开发,微信小程序开发工具代码质量检查显示 启用组件按需注入:未通过 。 通过官方文档可知,微信小程序自基础库版本2.11.1起,小程序支持有选择地注入必要的代码,以降低小程序的启动时间和运行时内存。配置方法如下: 添加配置 在 manifest.json 配置

    2024年02月12日
    浏览(71)
  • uni-app多选select组件,兼容多平台小程序、H5

          目录 介绍 平台差异说明 使用方式 安装 引入 基本使用 默认选中项(回显) 配置label、value对应的key名称 获取点击确认后的结果 完整示例 API Props Option Attributes Slot Events 多选select组件目前只支持多选,单选请用单选select组件 支持配置段 兼容多平台小程序、H5

    2024年02月09日
    浏览(107)
  • [uni-app] 微信小程序 - 组件找不到/导入报错 (分包问题导致)

    切换了个路径下的组件, 导入失败, 尝试了清缓存重启删项目等一些列操作均无效 上面两个路径中, 都存在一模一样的 videItem.vue Main 路径是可以导入的 Main 路径是无法导入的 后来发现, 是 分包 的问题导致. 我们先来假设一个场景,如果小程序进行了分包操作, 其中有个公共组

    2024年02月16日
    浏览(53)
  • uni-app编译成钉钉小程序,uViewUI组件样式失效,自定义组件样式失效

    公司项目需要把原本用 uinapp 开发的微信小程序想要在钉钉上也能使用,然后就打算用uniapp编译成钉钉小程序,看看是否有坑,不试不知道,一试吓一跳,官方没有提供钉钉的编译方式,按照网上文章的配置编译成钉钉小程序后,初步发现, uView-ui的icon没啦 ,然后样式和布局

    2024年02月11日
    浏览(55)
  • uni-app日历组件(calendar),兼容安卓、ios、微信、百度、抖音小程序

    插件链接: https://ext.dcloud.net.cn/plugin?id=7839/ 参数 说明 类型 可选值 默认值 pointList 日期数组,控制日期底下的点 Array - [] pointColor 点的颜色 String - #fff defaultDate 默认选中的日期 String - 默认值为当天 (传YYYY-MM-DD 或者 YYYY/MM/DD格式日期) showBtn 是否显示 展开/折叠 按钮 Boolean true /

    2024年02月09日
    浏览(63)
  • uni-app 解决钉钉小程序日期组件uni-datetime-picker不兼容ios问题

    最近在使用uni-app开发 钉钉小程序 ,遇到一个ios的兼容性问题 uni-datetime-picker 组件在模拟器上可以使用,在真机上不生效问题 就是自定义一个 view 然后通过click事件触发dd.datePicker。 在优化一下自定义的日期组件的样式 样式跟uni-ui的 uni-datetime-picker 组件样式一样。

    2024年02月03日
    浏览(66)
  • miniprogram-to-uniapp使用指南(各种小程序项目转换为uni-app项目)

    小程序分类:uni-app qq小程序 支付宝小程序 百度小程序 钉钉小程序 微信小程序 小程序转成uni_app 小程序转为uni_app 小程序转uni_app 小程序转换 工具现在支持npm全局库、HBuilderX插件两种方式使用,任君选择,HBuilderX插件地址:https://ext.dcloud.net.cn/plugin?id=2656 【miniprogram-to-uniapp】

    2024年02月08日
    浏览(55)
  • uni-app开发使用uni-ui组件uni-data-checkbox编译微信小程序报错

    uniapp开发使用uni-ui控件uni-data-checkbox,编译成微信小程序报错VM50 WAService.js:1 TypeError: Cannot read property \\\'length\\\' of undefined,并且页面无法显示。  解决方法: 1、 HBuilder X 编译器下载 sass 或更新 HBuilder X 版本 2、更新uni-ui组件库 3、如果不使用uniCloud就注释uni-data-checkbox.vue文件中的

    2024年02月06日
    浏览(69)
  • uni-app开发微信小程序,textarea组件宽度设置,解决超出父级div

    当我们使用textarea组件时,会出现设置宽度100%,但其超出了父级Div,如下图 添加 box-sizing:border-box; 属性,即可完美解决。 box-sizing 属性定义如何计算一个元素的总宽度和总高度,主要设置是否需要加上内边距(padding)和边框等。 例如,假如您需要并排放置两个带边框的框,可通过将

    2024年03月13日
    浏览(49)
  • 微信小程序:uni-app页面Page和组件Component生命周期执行的先后顺序

    文档 页面生命周期 https://uniapp.dcloud.net.cn/tutorial/page.html#lifecycle 组件生命周期 https://uniapp.dcloud.net.cn/tutorial/page.html#componentlifecycle 经测试,得出结论: H5和微信小程序的生命周期函数调用顺序不一致 一般情况下,主要使用的周期函数如下,他们的执行顺序是固定的 页面 组件

    2024年02月08日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包