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

QQ登录

只需一步,快速开始

楼主: Masion

利用BeX5做随机抽取试题的考试系统

  [复制链接]

377

主题

2593

帖子

5074

积分

论坛元老

Rank: 8Rank: 8

积分
5074
QQ
 楼主| 发表于 2016-6-22 08:48:52 | 显示全部楼层

其实所有的源码都写在帖子里面了
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

55

主题

142

帖子

330

积分

中级会员

Rank: 3Rank: 3

积分
330
QQ
发表于 2016-9-27 22:15:45 | 显示全部楼层
访问不了啊
回复 支持 反对

使用道具 举报

377

主题

2593

帖子

5074

积分

论坛元老

Rank: 8Rank: 8

积分
5074
QQ
 楼主| 发表于 2016-9-28 08:32:43 | 显示全部楼层

客户已经移动了服务器
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2593

帖子

5074

积分

论坛元老

Rank: 8Rank: 8

积分
5074
QQ
 楼主| 发表于 2016-11-12 09:33:16 | 显示全部楼层
起步把平台升级到5.3后,我们对考试模块进行了升级
现在把代码分享出来

ontology的设置如下:
  1.         <concept name="YG_examBank" default-value-expr="guid()">
  2.                 <has-relation relation="version" default-value-expr="0">
  3.                         <label language="zh_CN">版本</label>
  4.                 </has-relation>
  5.                 <label language="zh_CN">考试题库</label>
  6.                 <has-relation relation="fIndex"></has-relation>
  7.                 <has-relation relation="fType">
  8.                         <label language="zh_CN">试题类型</label>
  9.                 </has-relation>
  10.                 <has-relation relation="fQuestion" data-type="String"></has-relation>
  11.                 <has-relation relation="fOPtionA" data-type="String"></has-relation>
  12.                 <has-relation relation="fOptionB" data-type="String"></has-relation>
  13.                 <has-relation relation="fOptionC" data-type="String"></has-relation>
  14.                 <has-relation relation="fOptionD" data-type="String"></has-relation>
  15.                 <has-relation relation="fCorrect" data-type="String"></has-relation>
  16.                 <has-relation relation="fPoints" data-type="Integer"></has-relation>
  17.                 <has-relation relation="fState"></has-relation>

  18.                 <has-relation relation="fQuestionPic" data-type="Text"></has-relation>
  19.         </concept>
复制代码

长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2593

帖子

5074

积分

论坛元老

Rank: 8Rank: 8

积分
5074
QQ
 楼主| 发表于 2016-11-12 09:43:32 | 显示全部楼层
在baas中随机抽取题库的试题函数如下:

  1.    public static JSONObject creatTest(JSONObject params, ActionContext context) throws SQLException, NamingException{

  2.             Table table = null;
  3.                 String querysql;
  4.                
  5.                 String fJudgeNum = "50";
  6.                 String fSingleNum = "30";
  7.                 String fMultiNum = "20";
  8.                 Object columns = params.get("columns");
  9.                 Connection conn = context.getConnection("YGS");
  10.                 /*
  11.                  * List<Object> sqlParams = new ArrayList<Object>();
  12.                  * sqlParams.add(fExamBankID);
  13.                  */
  14.                 try {

  15.                                 querysql = "(SELECT uuid() as fID,fIndex,fType,fQuestion,fQuestionPic,fCorrect,fPoints,fOptionA,fOptionB,fOptionC,fOptionD,0 as version FROM YG_examBank  where fType='判断题' ORDER BY RAND() LIMIT " + fJudgeNum + ") ";
  16.                                 querysql = querysql
  17.                                                 + "union (SELECT uuid() as fID,fIndex,fType,fQuestion,fQuestionPic,fCorrect,fPoints,fOptionA,fOptionB,fOptionC,fOptionD,0 as version FROM YG_examBank  where fType='单选题' ORDER BY RAND() LIMIT " + fSingleNum + ")  ";
  18.                                 querysql = querysql
  19.                                                 + "union (SELECT uuid() as fID,fIndex,fType,fQuestion,fQuestionPic,fCorrect,fPoints,fOptionA,fOptionB,fOptionC,fOptionD,0 as version FROM YG_examBank  where fType='多选题' ORDER BY RAND() LIMIT " + fMultiNum + ") ";


  20.                         table = DataUtils.queryData(conn, querysql, null, columns, null, null);
  21.                         return Transform.tableToJson(table);
  22.                 } finally {
  23.                         conn.close();
  24.                 }
  25.     }
复制代码
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2593

帖子

5074

积分

论坛元老

Rank: 8Rank: 8

积分
5074
QQ
 楼主| 发表于 2016-11-12 09:45:00 | 显示全部楼层
测试页面的.w源码如下:

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <div xmlns="http://www.w3.org/1999/xhtml" component="$UI/system/components/justep/window/window" design="device:m;"
  3.   xid="window" class="window">  
  4.   <div component="$UI/system/components/justep/model/model" xid="model" style="height:auto;top:209px;left:163px;" onLoad="modelLoad" onModelConstruct="modelModelConstruct">
  5.     <div component="$UI/system/components/justep/data/data" autoLoad="true"
  6.       xid="statusData" autoNew="false" idColumn="fExamStatus">
  7.       <column label="考试状态" name="fExamStatus" type="String" xid="xid15"></column>
  8.   <column label="考试剩余时间" name="fTimeLeft" type="String" xid="xid16"></column>
  9.   <data xid="default5">[{&quot;fExamStatus&quot;:&quot;考试进行&quot;,&quot;fTimeLeft&quot;:&quot;&quot;}]</data>
  10.   <column name="fExamResult" type="String" xid="xid31"></column></div>
  11.     <div component="$UI/system/components/justep/data/data" autoLoad="false"
  12.       xid="examData" confirmRefresh="false" idColumn="fID" onCustomRefresh="examDataCustomRefresh"
  13.       onIndexChanged="examDataIndexChanged" onAfterRefresh="examDataAfterRefresh"
  14.       limit="-1">
  15.       <column name="fID" type="String" xid="xid3"></column>
  16.   <column name="fIndex" type="String" xid="xid5"></column>
  17.   <column name="fType" type="String" xid="xid6"></column>
  18.   <column name="fQuestion" type="String" xid="xid7"></column>
  19.   <column name="fQuestionPic" type="String" xid="xid8"></column>
  20.   <column name="fCorrect" type="String" xid="xid9"></column>
  21.   <column name="fUserAnswer" type="String" xid="xid10"></column>
  22.   <column name="fOptionA" type="String" xid="xid11"></column>
  23.   <column name="fOptionB" type="String" xid="xid12"></column>
  24.   <column name="fOptionC" type="String" xid="xid13"></column>
  25.   <column name="fOptionD" type="String" xid="xid14"></column>
  26.   <rule xid="rule1">
  27.    <col name="fUserAnswer" xid="ruleCol1">
  28.     <readonly xid="readonly1">
  29.      <expr xid="default2"></expr></readonly> </col>
  30.    <readonly xid="readonly2">
  31.     <expr xid="default4">$model.statusData.val(&quot;fExamStatus&quot;)=='考试完成'</expr></readonly> </rule>
  32.   <column name="version" type="Integer" xid="xid20"></column>
  33.   <column name="fPoints" type="Integer" xid="xid4"></column>
  34.   <column name="fState" type="String" xid="xid17"></column>
  35.   <column name="fUserPoints" type="Integer" xid="xid21"></column>
  36.   <column name="fQuestionPic" type="String" xid="xid18"></column></div>  
  37.     <div component="$UI/system/components/justep/data/data" autoLoad="true"
  38.       xid="optionData" idColumn="fOptionValue" confirmDelete="false" confirmRefresh="false">
  39.       <column label="值" name="fOptionValue" type="String" xid="xid1"/>  
  40.       <column label="名称" name="fOptionLable" type="String" xid="xid2"/>  
  41.       <data xid="default1">[{"fOptionValue":"1","fOptionLable":"2"}]</data>
  42.     </div>  
  43.     </div>  
  44.   <span component="$UI/system/components/justep/messageDialog/messageDialog" xid="messageDialog1" style="top:382px;left:160px;"></span><div component="$UI/system/components/justep/panel/panel" class="x-panel x-full"
  45.     xid="panel1">
  46.     <div class="x-panel-content" xid="content1" style="padding-left:10px;padding-right:10px;">
  47.       <div component="$UI/system/components/justep/row/row" class="x-row" xid="row1">
  48.         <div class="x-col x-col-fixed" xid="col5" style="width:40px;">
  49.           <div component="$UI/system/components/justep/output/output" class="x-output"
  50.             xid="output1" style="font-size:18px;" bind-text=" $model.MyGetIndex(event)"/>
  51.         </div>  
  52.         <div class="x-col" xid="col6">
  53.           <div component="$UI/system/components/justep/output/output" class="x-output"
  54.             xid="output2" bind-ref="examData.ref('fType')" style="font-size:18px;"/>
  55.         </div>  
  56.         <div class="x-col" xid="col7"/>
  57.       </div>  
  58.       <div component="$UI/system/components/justep/row/row" class="x-row" xid="row2">
  59.         <div class="x-col" xid="col8" bind-text=" $model.examData.val(&quot;fQuestion&quot;)"
  60.           style="font-size:18px;"/>
  61.       </div>  
  62.       <div component="$UI/system/components/justep/controlGroup/controlGroup"
  63.         class="x-control-group" title="title" xid="controlGroup1" bind-visible=" $model.examData.val(&quot;fQuestionPic&quot;)">
  64.         <!--         <div class="x-control-group-title" xid="controlGroupTitle1">
  65.           <span xid="span3">title</span>
  66.         </div>  -->  
  67.         <img src="" alt="" xid="image1" style="width:100%;" height="auto" bind-attr-src=' $model.examData.val("fQuestionPic")'/>
  68.       </div>  
  69.       <span component="$UI/system/components/justep/select/checkboxGroup" class="x-checkbox-group x-checkbox-group-lg x-checkbox-group-vertical"
  70.         xid="checkboxGroup1" bind-ref="examData.ref('fUserAnswer')" bind-itemset="optionData"
  71.         bind-itemsetValue="ref('fOptionValue')" bind-itemsetLabel="ref('fOptionLable')"
  72.         itemStyle="padding-top:10px;" bind-visible=" $model.examData.val(&quot;fType&quot;) =='多选题'"
  73.         style="padding-top:10px;display:none;"/>  
  74.       <span component="$UI/system/components/justep/select/radioGroup" class="x-radio-group x-radio-group-lg x-radio-group-vertical"
  75.         xid="radioGroup1" bind-ref="examData.ref('fUserAnswer')" bind-itemset="optionData"
  76.         bind-itemsetValue="ref('fOptionValue')" bind-itemsetLabel="ref('fOptionLable')"
  77.         bind-visible="$model.examData.val(&quot;fType&quot;)!='多选题'"
  78.         style="padding-top:10px;display:none;" itemStyle="padding-top:10px;" bind-click="checkboxGroup1Click"/>  
  79.       <img alt="" xid="image2" bind-attr-src='$model.examData.val("fCorrect") == $model.examData.val("fUserAnswer")?"correct.png":"wrong.png"'
  80.         bind-visible=" $model.statusData.val(&quot;fExamStatus&quot;) =='考试完成'" style="position:absolute;right:5px;"
  81.         height="32px"/>
  82.       <div xid="div3" style="display:none;" bind-visible=" $model.statusData.val(&quot;fExamStatus&quot;)=='考试完成'">
  83.         <span xid="span6"><![CDATA[正确答案:]]></span>  
  84.         <span xid="span7" bind-text="examData.ref('fCorrect')" style="font-size:18px;"/>
  85.       </div>
  86.     </div>  
  87.     <div xid="examPanel" style="position:absolute;width:100%;bottom:48px;left:0px;display:none;border-top-style:solid;border-top-width:1px;border-top-color:#CDCDCD;background-color:#FFFFFF;padding:2% 2% 2% 2%;max-height:35%;"
  88.       bind-click="examPanelClick" class="m-examPanel">
  89.       <div component="$UI/system/components/justep/list/list" class="x-list  x-cards"
  90.         xid="list1" data="examData" autoLoad="false">
  91.         <ul class="x-list-template" xid="listTemplateUl1">
  92.           <li xid="li1" style="float:left;width:20%;padding:1px 1px 1px 1px;"
  93.             bind-css="{'m-border':( $object.index()+1)== $model.MyGetIndex(event)}">
  94.             <div component="$UI/system/components/justep/output/output" class="x-output"
  95.               xid="output3" bind-text="$object.index()+1" style="text-align:center;color:#C0C0C0;"
  96.               bind-css="{'bg-success': ( $object.val(&quot;fUserAnswer&quot;) &amp;&amp; $model.statusData.val(&quot;fExamStatus&quot;) =='考试进行') ||$model.statusData.val(&quot;fExamStatus&quot;) =='考试完成' &amp;&amp; $object.val(&quot;fUserAnswer&quot;)== $object.val(&quot;fCorrect&quot;), 'bg-danger':$model.statusData.val(&quot;fExamStatus&quot;) =='考试完成' &amp;&amp; $object.val(&quot;fUserAnswer&quot;)!= $object.val(&quot;fCorrect&quot;)}"/>
  97.           </li>
  98.         </ul>
  99.       </div>
  100.     </div>
  101.     <div class="x-panel-bottom" xid="bottom1">
  102.       <div component="$UI/system/components/justep/button/buttonGroup" class="btn-group x-card btn-group-justified"
  103.         tabbed="false" xid="buttonGroup1" style="height:100%;">
  104.         <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-only-label"
  105.           label="交卷" xid="button1" onClick="button1Click" bind-disable=" ">
  106.           <i xid="i1"/>  
  107.           <span xid="span1" style="height:100%;">交卷</span>
  108.         </a>  
  109.         <div class="btn btn-link" bind-text=" $model.statusData.val(&quot;fTimeLeft&quot;)"
  110.           xid="timer">计时器</div>
  111.         <div xid="div1" class="btn btn-link" bind-text=" $model.MyGetIndex(event)+&quot;/&quot;+$model.examData.count()"
  112.           bind-click="div1Click">试题数</div>  
  113.         <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-only-label"
  114.           label="上一题" xid="button4" onClick="{operation:'examData.prevRow'}">
  115.           <i xid="i4"/>  
  116.           <span xid="span4">上一题</span>
  117.         </a>  
  118.         <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-only-label"
  119.           label="下一题" xid="button5" onClick="{operation:'examData.nextRow'}">
  120.           <i xid="i5"/>  
  121.           <span xid="span5">下一题</span>
  122.         </a>  
  123.         </div>
  124.     </div>
  125.   </div>  
  126.   </div>
复制代码
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2593

帖子

5074

积分

论坛元老

Rank: 8Rank: 8

积分
5074
QQ
 楼主| 发表于 2016-11-12 09:45:34 | 显示全部楼层
测试页面的.js文件如下

  1. define(function(require){
  2.         var $ = require("jquery");
  3.         var justep = require("$UI/system/lib/justep");
  4.         var maxtime, timer;
  5.         var Model = function(){
  6.                 this.callParent();
  7.         };

  8.         Model.prototype.MyGetIndex = function(event){

  9.                 return this.comp("examData").getRowIndex(this.comp("examData").getCurrentRow())+1;
  10.         };


  11.         Model.prototype.examDataCustomRefresh = function(event){
  12.                
  13.                         justep.Baas.sendRequest({
  14.                                 "url" : "/YGS/YGS",
  15.                                 "action" : "creatTest",
  16.                                 "async" : false,
  17.                                 "params" : {
  18.                                                        
  19.                                                        
  20.                                                         columns:this.comp("examData").getColumnIDs()
  21.                                 },
  22.                                 "success" : function(data) {
  23.                                
  24.                                         event.source.loadData(data);
  25.                                 }
  26.                         });
  27.         };
  28.        
  29.         // 转换动态图片URL
  30.         Model.prototype.transURL = function(url) {
  31.                 return require.toUrl(url);
  32.         };
  33.        
  34.         //当考试数据的索引变化时
  35.         Model.prototype.examDataIndexChanged = function(event){
  36.                         this.comp("optionData").deleteAllData();
  37.                
  38.                         var tempArr=[];

  39.                         if (typeof (this.comp("examData").val("fOptionA")) != "undefined" && this.comp("examData").val("fOptionA"))
  40.                                 tempArr.push({
  41.                                         fOptionValue : "A",
  42.                                         fOptionLable :this.comp("examData").getValue("fOptionA"),
  43.                                        
  44.                                 });
  45.                         if (typeof (this.comp("examData").val("fOptionB")) != "undefined" && this.comp("examData").val("fOptionB"))
  46.                                 tempArr.push({
  47.                                         fOptionValue : "B",
  48.                                         fOptionLable :this.comp("examData").val("fOptionB"),
  49.                                        
  50.                                 });                               
  51.                         if (typeof (this.comp("examData").val("fOptionC")) != "undefined" && this.comp("examData").val("fOptionC"))
  52.                                 tempArr.push({
  53.                                         fOptionValue : "C",
  54.                                         fOptionLable :this.comp("examData").val("fOptionC"),
  55.                                        
  56.                                 });
  57.                         if (typeof (this.comp("examData").val("fOptionD")) != "undefined" && this.comp("examData").val("fOptionD"))
  58.                                 tempArr.push({
  59.                                         fOptionValue : "D",
  60.                                         fOptionLable :this.comp("examData").val("fOptionD"),
  61.                                        
  62.                                 });                                                       
  63.                        

  64.                         this.comp("optionData").newData({defaultValues:tempArr});
  65.                        
  66.         };
  67. //考试数据加载完成后,启动计时器
  68.         Model.prototype.examDataAfterRefresh = function(event){
  69.                 var self=this;
  70.                  maxtime = 60*60; //一个小时,按秒计算,自己调整!
  71.                
  72.                  timer = setInterval(function(){
  73.        
  74.        
  75.                         if(maxtime>=0){  
  76.                                 self.comp("statusData").setValue("fTimeLeft",Math.floor(maxtime/60)+":"+Math.floor(maxtime%60));
  77.                                 //5分钟又一次对话框提示
  78.                                 if(maxtime == 3*60)
  79.                                         justep.Util.hint("注意,还有3分钟!");
  80.                                 --maxtime;  
  81.                         } else{  
  82.                                 justep.Util.hint("考试时间到");
  83.                                 self.button1Click();
  84.                         }
  85.                  },1000);        //(在界面中添加一个div组件,xid为time),设置每秒钟刷新一次
  86.         };
  87.                
  88.         //交卷
  89.         Model.prototype.button1Click = function(event){
  90.                 debugger
  91.                 var statusData=this.comp("statusData");
  92.                 if(statusData.val("fExamStatus")=="考试完成"){

  93.                         return;
  94.                 }
  95.                 statusData.setValue("fExamStatus","考试完成");

  96.                 clearInterval(timer);  
  97.                 //计算分数
  98.                 var score=this.comp("examData").sum("fPoints",function(ev){
  99.                      return ev.source.getValue('fUserAnswer',ev.row)==ev.source.getValue('fCorrect',ev.row);
  100.                  
  101.             });
  102.             
  103.            this.comp("messageDialog1").show({title:"本次测试成绩","message":score+"分"})
  104.             this.comp("statusData").setValue("fExamResult","本次考试成绩为:"+score+"分");
  105.             this.comp("button1").set(
  106.             {label:score+"分"}
  107.             )
  108.         };
  109.                
  110.         //切换显示考试面板
  111.         Model.prototype.div1Click = function(event){
  112.                 $(this.getElementByXid("examPanel")).slideToggle();
  113.         };
  114.                

  115.         Model.prototype.examPanelClick = function(event){
  116.                 $(this.getElementByXid("examPanel")).slideToggle();
  117.         };
  118.                


  119.                

  120.                

  121.        
  122.                

  123.         Model.prototype.timerClick = function(event){
  124.                 this.comp("windowDialog1").open();
  125.         };
  126.                

  127.         Model.prototype.button2Click = function(event){

  128.         };
  129.                

  130.         Model.prototype.modelLoad = function(event){
  131.                 //题库信息加载上来之后
  132.                 //加载试题信息
  133.                 this.comp("list1").refresh(true);

  134.         };
  135.                

  136.         Model.prototype.modelModelConstruct = function(event){
  137.                
  138.                 var $body = $('body');
  139.                 document.title = '从业资格证考试练习';
  140.                 // hack在微信等webview中无法修改document.title的情况
  141.                 var $iframe = $('<iframe src="/favicon.ico"></iframe>');
  142.                 $iframe.on('load', function() {
  143.                         setTimeout(function() {
  144.                                 $iframe.off('load').remove();
  145.                         }, 0);
  146.                 }).appendTo($body);
  147.                
  148.         };
  149.                


  150.                

  151.         Model.prototype.checkboxGroup1Click = function(event){
  152.                 var self = this;
  153.                 if (this.comp("examData").val("fUserAnswer"))
  154.                         setTimeout(function() {
  155.                                 self.comp("examData").next();
  156.                         }, 500);
  157.                
  158.         };
  159.                

  160.         return Model;
  161. });
复制代码
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2593

帖子

5074

积分

论坛元老

Rank: 8Rank: 8

积分
5074
QQ
 楼主| 发表于 2016-11-12 09:46:10 | 显示全部楼层
测试页面的.css文件如下:

  1. .x-modal-title + .x-modal-text {
  2.         text-align: center;
  3.        
  4. }
  5. .m-border{
  6. text-decoration:underline ;
  7. }

  8. .m-examPanel{
  9.        
  10.         overflow-y:auto;
  11. }
复制代码
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2593

帖子

5074

积分

论坛元老

Rank: 8Rank: 8

积分
5074
QQ
 楼主| 发表于 2016-11-12 10:11:54 | 显示全部楼层
题库列表维护的.w源码
  1. <?xml version="1.0" encoding="utf-8"?>

  2. <div xmlns="http://www.w3.org/1999/xhtml" component="$UI/system/components/justep/window/window" xid="window" design="device:pc;">  
  3.   <div component="$UI/system/components/justep/model/model" xid="model" style="height:auto;top:174px;left:234px;">
  4.     <div component="$UI/system/components/justep/data/bizData" xid="mainData"
  5.       directDelete="true" autoLoad="true" concept="YG_examBank" columns=""
  6.       onSaveCommit="saveCommit" limit="20" onAfterNew="mainDataAfterNew" orderBy="fIndex asc,fType asc">
  7.       <reader action="/YGS/masion/logic/action/queryYG_examBankAction"/>  
  8.       <writer action="/YGS/masion/logic/action/saveYG_examBankAction"/>  
  9.       <creator action="/YGS/masion/logic/action/createYG_examBankAction"/>  
  10.       <calculateRelation relation="calcCheckBox"/>
  11.     <rule xid="rule1">
  12.    <col name="fType" xid="ruleCol1">
  13.     <required xid="required1">
  14.      <expr xid="default7">true</expr></required> </col> </rule></div>
  15.   </div>  
  16.   <div xid="view">
  17.     <div component="$UI/system/components/justep/toolBar/toolBar" class="x-toolbar x-toolbar-spliter form-inline" xid="bar">
  18.    <div component="$UI/system/components/justep/smartFilter/smartFilter" xid="smartFilter1" filterData="mainData" filterCols="fIndex,fType,fQuestion,fOPtionA,fOptionB,fOptionC,fOptionD,fCorrect,fPoints,fState" class="pull-right">
  19.     <input type="text" class="form-control" placeholder="搜索" data-bind="valueUpdate: ['input', 'afterkeydown']" bind-value="$model.comp($element.parentElement).searchText" bind-change="$model.comp($element.parentElement).onInputChange.bind($model.comp($element.parentElement))" xid="input1"></input></div>
  20.    <a component="$UI/system/components/justep/button/button" label=" 新建" class="btn btn-link btn-icon-left" icon="icon-plus" onClick="newBtnClick" xid="newBtn">
  21.     <i class="icon-plus" xid="i8"></i>
  22.     <span xid="span13">新建</span></a>
  23.    <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left" label="保存" xid="saveBtn" onClick='{"operation":"mainData.save"}'>
  24.     <i xid="i3"></i>
  25.     <span xid="label7">保存</span></a>
  26.    <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left" label="删除" xid="deleteBtn" onClick='{"operation":"mainData.delete"}'>
  27.     <i xid="i4"></i>
  28.     <span xid="span7">删除</span></a>
  29.    <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left" xid="refreshBtn" onClick='{"operation":"mainData.refresh"}' label="刷新">
  30.     <i xid="i2"></i>
  31.     <span xid="span2">刷新</span></a>
  32.    <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left" label="查询" xid="filterBtn" icon="icon-android-search" onClick="{operation:'bizFilter.menu'}">
  33.     <i xid="i5" class="icon-android-search"></i>
  34.     <span xid="span8">查询</span></a>
  35.    
  36.    <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left" onClick="{'operation':'exportExcel1.exportExcel'}" xid="button2">
  37.     <i xid="i6"></i>
  38.     <span xid="span11"></span></a>
  39.    <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left" onClick="{'operation':'importExcel1.importExcel'}" xid="button3">
  40.     <i xid="i7"></i>
  41.     <span xid="span12"></span></a> </div><div component="$UI/system/components/justep/grid/grid" xid="mainGrid"
  42.       data="mainData" width="100%" hiddenCaptionbar="true" height="auto" class="x-grid-no-bordered" onRowDblClick="mainGridRowDblClick">
  43.       <columns xid="column">
  44.         <column name="fIndex" editable="false" sorttype="int" width="50">
  45.           <editor>
  46.             <input component="$UI/system/components/justep/input/input" class="form-control"
  47.               bind-ref="ref('fIndex')"/>
  48.           </editor>
  49.         </column>
  50.         <column name="fType" editable="false" width="80">
  51.           </column>
  52.         <column name="fQuestion" editable="false">
  53.           <editor>
  54.             <input component="$UI/system/components/justep/input/input" class="form-control"
  55.               bind-ref="ref('fQuestion')"/>
  56.           </editor>
  57.         </column>
  58.         <column name="fOPtionA" editable="false" width="150">
  59.           <editor>
  60.             <input component="$UI/system/components/justep/input/input" class="form-control"
  61.               bind-ref="ref('fOPtionA')"/>
  62.           </editor>
  63.         </column>
  64.         <column name="fOptionB" editable="false" width="150">
  65.           <editor>
  66.             <input component="$UI/system/components/justep/input/input" class="form-control"
  67.               bind-ref="ref('fOptionB')"/>
  68.           </editor>
  69.         </column>
  70.         <column name="fOptionC" editable="false" width="150">
  71.           <editor>
  72.             <input component="$UI/system/components/justep/input/input" class="form-control"
  73.               bind-ref="ref('fOptionC')"/>
  74.           </editor>
  75.         </column>
  76.         <column name="fOptionD" editable="false" width="150">
  77.           <editor>
  78.             <input component="$UI/system/components/justep/input/input" class="form-control"
  79.               bind-ref="ref('fOptionD')"/>
  80.           </editor>
  81.         </column>
  82.         <column name="fCorrect" editable="false" width="80">
  83.           <editor>
  84.             <input component="$UI/system/components/justep/input/input" class="form-control"
  85.               bind-ref="ref('fCorrect')"/>
  86.           </editor>
  87.         </column>
  88.         <column width="60" name="fPoints" xid="column1"></column></columns>
  89.     </div>
  90.   </div>  
  91.   <div component="$UI/system/components/justep/excel/exportExcel" xid="exportExcel1" style="left:419px;top:102px;" data="mainData" labelRelations=",,,,,,,," relations="fIndex:,fType:,fQuestion:,fOPtionA:,fOptionB:,fOptionC:,fOptionD:,fCorrect:,fPoints:"></div><span component="$UI/system/components/justep/bizFilter/bizFilter" xid="bizFilter"
  92.     filterData="mainData" style="left:28px;top:290px;"/>  
  93.   <div component="$UI/system/components/justep/excel/importExcel" xid="importExcel1" style="top:144px;left:536px;" mappings="$UI/YGS/masion/process/examBank/import.mapping.xml" data="mainData"></div>
  94.   <span component="$UI/system/components/justep/windowDialog/windowDialog" xid="windowDialog1" src="$UI/YGS/masion/process/examBank/bankQuestionDetail.w" title="编辑题库详情" showTitle="true" status="normal" style="top:118px;left:74px;"><result concept="mainData" operation="edit" origin="mainData" xid="default22">
  95.    <mapping from="YG_examBank" to="YG_examBank" locator="true" xid="default23"></mapping>
  96.    <mapping from="version" to="version" xid="default24"></mapping>
  97.    <mapping from="fIndex" to="fIndex" xid="default25"></mapping>
  98.    <mapping from="fType" to="fType" xid="default26"></mapping>
  99.    <mapping from="fQuestion" to="fQuestion" xid="default27"></mapping>
  100.    <mapping from="fOPtionA" to="fOPtionA" xid="default28"></mapping>
  101.    <mapping from="fOptionB" to="fOptionB" xid="default29"></mapping>
  102.    <mapping from="fOptionC" to="fOptionC" xid="default30"></mapping>
  103.    <mapping from="fOptionD" to="fOptionD" xid="default31"></mapping>
  104.    <mapping from="fCorrect" to="fCorrect" xid="default32"></mapping>
  105.    <mapping from="fPoints" to="fPoints" xid="default33"></mapping>
  106.    <mapping from="fState" to="fState" xid="default34"></mapping>
  107.    <mapping from="fQuestionPic" to="fQuestionPic" xid="default35"></mapping></result></span><div component="$UI/system/components/justep/pagerBar/pagerBar" class="x-pagerbar container-fluid"
  108.     xid="pagerBar" data="mainData">
  109.     <div class="row" xid="div1">
  110.       <div class="col-sm-3" xid="div2">
  111.         <div class="x-pagerbar-length" xid="div3">
  112.           <label component="$UI/system/components/justep/pagerLimitSelect/pagerLimitSelect"
  113.             class="x-pagerlimitselect" xid="pagerLimitSelect1">
  114.             <span xid="span1">显示</span>  
  115.             <select component="$UI/system/components/justep/select/select" class="form-control input-sm"
  116.               xid="select1">
  117.               <option value="10" xid="default2">10</option>  
  118.               <option value="20" xid="default3">20</option>  
  119.               <option value="50" xid="default4">50</option>  
  120.               <option value="100" xid="default5">100</option>
  121.             </select>  
  122.             <span xid="span3">条</span>
  123.           </label>
  124.         </div>
  125.       </div>  
  126.       <div class="col-sm-3" xid="div4">
  127.         <div class="x-pagerbar-info" xid="div5">当前显示1-10条,共16条</div>
  128.       </div>  
  129.       <div class="col-sm-6" xid="div6">
  130.         <div class="x-pagerbar-pagination" xid="div7">
  131.           <ul class="pagination" component="$UI/system/components/bootstrap/pagination/pagination"
  132.             xid="pagination1">
  133.             <li class="prev" xid="li1">
  134.               <a href="#" xid="a1">
  135.                 <span aria-hidden="true" xid="span4">«</span>  
  136.                 <span class="sr-only" xid="span5">Previous</span>
  137.               </a>
  138.             </li>  
  139.             <li class="next" xid="li2">
  140.               <a href="#" xid="a2">
  141.                 <span aria-hidden="true" xid="span6">»</span>  
  142.                 <span class="sr-only" xid="span9">Next</span>
  143.               </a>
  144.             </li>
  145.           </ul>
  146.         </div>
  147.       </div>
  148.     </div>
  149.   </div>
  150. </div>
复制代码

长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2593

帖子

5074

积分

论坛元老

Rank: 8Rank: 8

积分
5074
QQ
 楼主| 发表于 2016-11-12 10:12:31 | 显示全部楼层
题库列表维护的.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.         };

  7.         Model.prototype.saveCommit = function(event){
  8.                 justep.Util.hint("保存成功!", {type: 'success', parent: this.getRootNode()});
  9.         };

  10.         Model.prototype.mainDataAfterNew = function(event){
  11.                 this.comp("mainData").setValue("fIndex",this.comp("mainData").count());
  12.         };

  13.         Model.prototype.mainGridRowDblClick = function(event){
  14. this.comp("windowDialog1").open({params:{actionType:"edit",data:{currentRow:this.comp("mainData").getCurrentRow().toJson()}}});
  15.         };

  16.         Model.prototype.newBtnClick = function(event){
  17.                 this.comp("windowDialog1").open({params:{actionType:"new"}});
  18.         };

  19.         return Model;
  20. });
复制代码
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-2-18 06:17 , Processed in 0.154250 second(s), 23 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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