起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7248|回复: 12

[分享] 分享星级评价与星级显示!

  [复制链接]

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
发表于 2016-8-14 14:46:44 | 显示全部楼层 |阅读模式
本帖最后由 不羁的风 于 2016-8-14 15:07 编辑

先说实现效果!
1、用户点击星星按钮进行评分,点击确认按钮可将评分上传到数据库!(点击第5个星星按保存对应将数字5保存到数据库。)
2、前端显示,加入数据库中的评分是4,前端显示4颗星星。
项目结构如图:
注意:这里需要使用到两张图片,自行百度找两张星星图片!(1.png/2.png)
626D.tmp.jpg

评分

参与人数 1威望 +15 收起 理由
zzytxx + 15 赞一个!

查看全部评分

qq:7953899

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-8-14 15:08:35 | 显示全部楼层
源码如下!
js:
  1. define(function(require) {
  2.         var $ = require("jquery");
  3.         var justep = require("$UI/system/lib/justep");

  4.         var Model = function() {
  5.                 this.callParent();
  6.                 this.img1 = justep.Bind.observable("./img/2.png");
  7.                 this.img2 = justep.Bind.observable("./img/2.png");
  8.                 this.img3 = justep.Bind.observable("./img/2.png");
  9.                 this.img4 = justep.Bind.observable("./img/2.png");
  10.                 this.img5 = justep.Bind.observable("./img/2.png");
  11.         };

  12.         Model.prototype.getImageUrl = function(img) {

  13.                 if (img == 'img1') {
  14.                         return require.toUrl(this.img1.get());
  15.                 } else if (img == 'img2') {
  16.                         return require.toUrl(this.img2.get());
  17.                 } else if (img == 'img3') {
  18.                         return require.toUrl(this.img3.get());
  19.                 } else if (img == 'img4') {
  20.                         return require.toUrl(this.img4.get());
  21.                 } else if (img == 'img5') {
  22.                         return require.toUrl(this.img5.get());
  23.                 }
  24.         };

  25.         Model.prototype.imageClick = function(event) {
  26.                 var val = event.currentTarget.getAttribute('val');
  27.                 var number = parseInt(val);
  28.                 var gradeData = this.comp("gradeData");
  29.                 for (var i = 1; i <= number; i++) {

  30.                         var str = "this.img" + i + ".set('./img/1.png')"
  31.                         eval(str);
  32.                 }
  33.                 for (var i = 5; i > number; i--) {

  34.                         var str = "this.img" + i + ".set('./img/2.png')"
  35.                         eval(str);
  36.                 }
  37.                 gradeData.setValue('grade', parseInt(val));
  38.         };

  39.         Model.prototype.button1Click = function(event) {
  40.                 var gradeData = this.comp("gradeData");
  41.                 gradeData.saveData({
  42.                         onSuccess : function() {
  43.                                 justep.Util.hint("保存成功");
  44.                         }
  45.                 });
  46.                 //alert(gradeData.val("grade"));
  47.         };

  48.         return Model;
  49. });
复制代码



qq:7953899
回复 支持 反对

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-8-14 15:09:01 | 显示全部楼层
本帖最后由 不羁的风 于 2016-8-14 15:12 编辑

html:
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <div xmlns="http://www.w3.org/1999/xhtml" xid="window" class="window" component="$UI/system/components/justep/window/window" design="device:m;">  
  3.   <div component="$UI/system/components/justep/model/model" xid="model"><div component="$UI/system/components/justep/data/data" autoLoad="true" xid="gradeData" idColumn="id"><column name="id" type="String" xid="xid1"></column>
  4.   <column label=" 星级" name="grade" type="String" xid="xid2"></column>
  5.   <data xid="default1">[{&quot;id&quot;:&quot;1&quot;,&quot;grade&quot;:&quot;0&quot;}]</data></div></div>
  6. <div component="$UI/system/components/justep/panel/panel" class="x-panel x-full" xid="panel1">
  7.    <div class="x-panel-top" xid="top1"></div>
  8.    <div class="x-panel-content" xid="content1"><div component="$UI/system/components/justep/row/row" class="x-row pull-right" xid="row3">
  9.    <div class="x-col" xid="col3">
  10.     <img bind-attr-src="$model.getImageUrl('img1')" alt="" xid="image34" val="1" bind-click="imageClick" name="1" bind-ref='gradeData.ref("grade")'></img>
  11.     <img bind-attr-src="$model.getImageUrl('img2')" alt="" xid="image33" val="2" bind-click="imageClick" name="2" bind-ref='gradeData.ref("grade")'></img>
  12.     <img bind-attr-src="$model.getImageUrl('img3')" alt="" xid="image36" val="3" bind-click="imageClick" name="3" bind-ref='gradeData.ref("grade")'></img>
  13.     <img bind-attr-src="$model.getImageUrl('img4')" alt="" xid="image35" val="4" bind-click="imageClick" name="4" bind-ref='gradeData.ref("grade")'></img>
  14.     <img bind-attr-src="$model.getImageUrl('img5')" alt="" xid="image37" val="5" bind-click="imageClick" name="5" bind-ref='gradeData.ref("grade")'></img></div> </div>
  15.   <a component="$UI/system/components/justep/button/button" class="btn btn-default" label="保存" xid="button1" onClick="button1Click">
  16.    <i xid="i1"></i>
  17.    <span xid="span1">保存</span></a>
  18.   <div component="$UI/system/components/justep/row/row" class="x-row" xid="row1">
  19.    <div class="x-col" xid="col1">
  20.     <img bind-attr-src='gradeData.val("grade")&lt;=0?"img/2.png":"img/1.png"' alt="" xid="image1" val="1" name="1" src="./img/2.png" style="height:17px;"></img>
  21.     <img bind-attr-src='gradeData.val("grade")&lt;=1?"img/2.png":"img/1.png"' alt="" xid="image5" val="2" name="2" src="./img/2.png" style="height:17px;"></img>
  22.     <img bind-attr-src='gradeData.val("grade")&lt;=2?"img/2.png":"img/1.png"' alt="" xid="image2" val="3" name="3" src="./img/2.png" style="height:17px;"></img>
  23.     <img bind-attr-src='gradeData.val("grade")&lt;=3?"img/2.png":"img/1.png"' alt="" xid="image4" val="4" name="4" src="./img/2.png" style="height:17px;"></img>
  24.     <img bind-attr-src='gradeData.val("grade")&lt;=4?"img/2.png":"img/1.png"' alt="" xid="image3" val="5" name="5" src="./img/2.png" style="height:17px;"></img></div> </div></div>
  25.    <div class="x-panel-bottom" xid="bottom1"></div></div></div>
复制代码
qq:7953899
回复 支持 反对

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-8-14 15:09:45 | 显示全部楼层
如上,复制粘贴即可使用,欢迎指正!
qq:7953899
回复 支持 反对

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-8-14 15:14:46 | 显示全部楼层
源代码文件

grade.rar

25.17 KB, 下载次数: 224

qq:7953899
回复 支持 反对

使用道具 举报

18

主题

60

帖子

286

积分

中级会员

Rank: 3Rank: 3

积分
286
QQ
发表于 2016-11-5 21:06:01 | 显示全部楼层
如果有5个需要这样的评价,如何做?谢谢。。。
回复 支持 反对

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-11-8 11:19:37 | 显示全部楼层
justepfu 发表于 2016-11-5 21:06
如果有5个需要这样的评价,如何做?谢谢。。。

一样的道理啊
qq:7953899
回复 支持 反对

使用道具 举报

18

主题

60

帖子

286

积分

中级会员

Rank: 3Rank: 3

积分
286
QQ
发表于 2016-11-9 01:09:44 | 显示全部楼层
如果25个星星,5个评价对象,这样写有点太麻烦了,有没有简便一点的写法?谢谢。
回复 支持 反对

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-11-9 10:34:45 | 显示全部楼层
自己想嘍,不同需求有不同方法。比如list
qq:7953899
回复 支持 反对

使用道具 举报

8

主题

1141

帖子

1885

积分

金牌会员

Rank: 6Rank: 6

积分
1885
QQ
发表于 2017-5-24 11:54:44 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-27 01:00 , Processed in 0.068866 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表