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

QQ登录

只需一步,快速开始

查看: 4349|回复: 13

[处理中5] 关于baasData

[复制链接]

156

主题

615

帖子

2583

积分

金牌会员

Rank: 6Rank: 6

积分
2583
QQ
发表于 2017-4-9 12:39:14 | 显示全部楼层 |阅读模式
WeX5的3.6版本,
1、使用baasData设置为树时,点工具栏的:新建子,发现父节点的值被正确赋了,但是点击保存之后,发现父节点的值没有保存到数据库中。
2、使用两个baasData做主从关联,只保留主表的保存按钮,当主从表都有修改时,点击保存按钮,发现保存按钮未变为不可用。刷新数据后,主表数据保存了,从表数据未保存。

请问这是大家都有这个问题吗?baasData未实现这些功能吗?我检查了好几次,发现设置都是正确的,用bizData也一直是这样设置,用baasData就不行了。
请帮忙看看这个问题

Desktop.rar (1.67 KB, 下载次数: 122)
发表于 2017-4-10 12:07:20 | 显示全部楼层
1.请问saveAction  绑定后台的BaasServer 标准的saveAction 了吗??
saveAction 执行了就应该能保存上的!!树结构的保存和非树的保存是一样的!!那你再试试设置为非树形就可以正常保存吗??

2.本地测试主从保存没问题
/UI2/demo/baas/masterDetail/index.w

数据库是保存上了!不过保存按钮确实是亮的!!这个是bug 请等待下个版本的修复

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

156

主题

615

帖子

2583

积分

金牌会员

Rank: 6Rank: 6

积分
2583
QQ
 楼主| 发表于 2017-4-10 22:32:35 | 显示全部楼层
1、是用平台标准的saveAction保存的,点击“新建子”按钮,在grid中显示了父节点的ID,但是并没有设置在baasData上,通过baasData.val()方法获取不到值,麻烦帮看看原因。

2、我测试时,从表真没有保存上,主表保存上了。
回复 支持 反对

使用道具 举报

发表于 2017-4-11 10:36:27 | 显示全部楼层
liang2013 发表于 2017-4-10 22:32
1、是用平台标准的saveAction保存的,点击“新建子”按钮,在grid中显示了父节点的ID,但是并没有设置在baa ...

baasData.getValue('id') 获取不到吗??
baasData  列定义中是有id的吧!既然能显示肯定是能赋值的!
你的saveAction 有没有设置只保存指定的列呢?
http://docs.wex5.com/wex5-server-question-list-2020

默认是可以保存的!grid树形显示的做法可以参考一下
http://docs.wex5.com/comps-tree-grid/
只要grid 和 baasData都设置为树形 即可!!

请问不设置为树形保存是正常的吗??先保证saveAction是生效的!


2.本地测试/UI2/demo/baas/masterDetail/index.w  修改详细页,保存刷新是生效的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

156

主题

615

帖子

2583

积分

金牌会员

Rank: 6Rank: 6

积分
2583
QQ
 楼主| 发表于 2017-4-11 16:22:36 | 显示全部楼层
我都开始怀疑我的人生了,为了做这个测试,我重新建了一个功能,看看我以前做的都是错误的步骤。详细步骤如下:

w页面:
  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"
  3.   design="device:pc">  
  4.   <div component="$UI/system/components/justep/model/model" xid="model" style="top:211px;left:172px;height:auto;">
  5.     <div component="$UI/system/components/justep/data/baasData" autoLoad="true"
  6.       xid="dataMaster" queryAction="queryDe_stufftype" saveAction="saveDe_stufftype"
  7.       url="/test/baas" tableName="de_stufftype" idColumn="fID" isTree="true" onAfterNew="dataMasterAfterNew">
  8.       <column label="fID" name="fID" type="String" xid="default1"/>  
  9.       <column label="版本" name="version" type="Integer" xid="default2"/>  
  10.       <column label="编码" name="fCode" type="String" xid="default3"/>  
  11.       <column label="名称" name="fName" type="String" xid="default4"/>  
  12.       <column label="父节点ID" name="fParentID" type="String" xid="default5"/>  
  13.       <column label="表类型" name="fTableType" type="String" xid="default6"/>  
  14.       <column label="备注" name="fNote" type="String" xid="default7"/>  
  15.       <treeOption xid="default16" parentRelation="fParentID" rootFilter="fParentID is null"/>
  16.     </div>  
  17.     <div component="$UI/system/components/justep/data/baasData" autoLoad="true"
  18.       xid="dataDetail" queryAction="queryDe_stuffinof" saveAction="saveDe_stuffinof"
  19.       url="/test/baas" tableName="de_stuffinof" idColumn="fID" onAfterNew="dataDetailAfterNew">
  20.       <column label="fID" name="fID" type="String" xid="default8"/>  
  21.       <column label="版本" name="version" type="Integer" xid="default9"/>  
  22.       <column label="主表ID" name="fMasterID" type="String" xid="default10"/>  
  23.       <column label="表类型" name="fTableType" type="String" xid="default11"/>  
  24.       <column label="编码" name="fCode" type="String" xid="default12"/>  
  25.       <column label="名称" name="fName" type="String" xid="default13"/>  
  26.       <column label="备注" name="fNote" type="String" xid="default14"/>  
  27.       <master xid="default15" data="dataMaster" relation="fMasterID"/>
  28.     </div>
  29.   </div>  
  30.   <div component="$UI/system/components/bootstrap/row/row" class="x-row" xid="row1"
  31.     style="height:100%;">
  32.     <div class="col col-xs-6" xid="col1">
  33.       <div component="$UI/system/components/justep/panel/panel" class="x-panel x-full"
  34.         xid="panel1">
  35.         <div class="x-panel-top" xid="top1">
  36.           <div component="$UI/system/components/justep/toolBar/toolBar" class="x-toolbar form-inline x-toolbar-spliter"
  37.             xid="toolBar1">
  38.             <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
  39.               onClick="{'operation':'dataMaster.new'}" xid="button3">
  40.               <i xid="i3"/>  
  41.               <span xid="span3"/>
  42.             </a>
  43.             <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
  44.               onClick="{'operation':'dataMaster.newChild'}" xid="button4">
  45.               <i xid="i4"/>  
  46.               <span xid="span4"/>
  47.             </a>
  48.             <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
  49.               onClick="{'operation':'dataMaster.save'}" xid="button1">
  50.               <i xid="i1"/>  
  51.               <span xid="span1"/>
  52.             </a>  
  53.             <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
  54.               onClick="{'operation':'dataMaster.delete'}" xid="button2">
  55.               <i xid="i2"/>  
  56.               <span xid="span2"/>
  57.             </a>  
  58.             <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
  59.               onClick="{'operation':'dataMaster.refresh'}" xid="button5">
  60.               <i xid="i5"/>  
  61.               <span xid="span5"/>
  62.             </a>
  63.           </div>
  64.         </div>  
  65.         <div class="x-panel-content" xid="content1">
  66.           <div component="$UI/system/components/justep/grid/grid" hiddenCaptionbar="true"
  67.             altRows="true" class="x-grid-no-bordered" xid="grid1" data="dataMaster"
  68.             height="100%" width="100%" appearance="treeGrid" expandColumn="fCode">
  69.             <columns xid="columns1">
  70.               <column width="100" name="fCode" xid="column1" editor="input" editable="true"/>  
  71.               <column width="100" name="fName" xid="column2" editor="input" editable="true"/>  
  72.               <column width="100" name="fParentID" xid="column3"/>
  73.             </columns>
  74.           </div>
  75.         </div>
  76.       </div>
  77.     </div>  
  78.     <div class="col col-xs-6 col-spliter-left" xid="col2">
  79.       <div component="$UI/system/components/justep/panel/panel" class="x-panel x-full"
  80.         xid="panel2">
  81.         <div class="x-panel-top" xid="top2">
  82.           <div component="$UI/system/components/justep/toolBar/toolBar" class="x-toolbar form-inline x-toolbar-spliter"
  83.             xid="toolBar2">
  84.             <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
  85.               onClick="{'operation':'dataDetail.new'}" xid="button8">
  86.               <i xid="i8"/>  
  87.               <span xid="span8"/>
  88.             </a>
  89.             <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
  90.               onClick="{'operation':'dataDetail.save'}" xid="button6">
  91.               <i xid="i6"/>  
  92.               <span xid="span6"/>
  93.             </a>  
  94.             <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
  95.               onClick="{'operation':'dataDetail.delete'}" xid="button7">
  96.               <i xid="i7"/>  
  97.               <span xid="span7"/>
  98.             </a>  
  99.             <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
  100.               onClick="{'operation':'dataDetail.refresh'}" xid="button9">
  101.               <i xid="i9"/>  
  102.               <span xid="span9"/>
  103.             </a>  
  104.             <a component="$UI/system/components/justep/button/button" class="btn btn-default"
  105.               label="debugger" xid="btn1" onClick="btn1Click">
  106.               <i xid="i10"/>  
  107.               <span xid="span10">debugger</span>
  108.             </a>
  109.           </div>
  110.         </div>  
  111.         <div class="x-panel-content" xid="content2">
  112.           <div component="$UI/system/components/justep/grid/grid" hiddenCaptionbar="true"
  113.             altRows="true" class="x-grid-no-bordered" xid="grid2" data="dataDetail"
  114.             height="100%" width="100%">
  115.             <columns xid="columns2">
  116.               <column width="100" name="fMasterID" xid="column4"/>  
  117.               <column width="100" name="fCode" xid="column5" editor="input" editable="true"/>  
  118.               <column width="100" name="fName" xid="column6" editor="input" editable="true"/>  
  119.               <column width="100" name="fNote" xid="column7" editor="input" editable="true"/>
  120.             </columns>
  121.           </div>
  122.         </div>
  123.       </div>
  124.     </div>
  125.   </div>
  126. </div>
复制代码

w页面对应的js代码:
  1. define(function(require){
  2.         var $ = require("jquery");
  3.         var justep = require("$UI/system/lib/justep");
  4.        
  5.         var Model = function(){
  6.                 this.callParent();
  7.         };

  8.         Model.prototype.dataMasterAfterNew = function(event){
  9.                 this.comp("dataMaster").setValue("fID", justep.UUID.createUUID());
  10.         };

  11.         Model.prototype.dataDetailAfterNew = function(event){
  12.                 this.comp("dataDetail").setValue("fID", justep.UUID.createUUID());
  13.         };

  14.         Model.prototype.btn1Click = function(event){
  15.                 debugger
  16.         };

  17.         return Model;
  18. });
复制代码

对应baas层的service.m文件:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <model xmlns="http://www.justep.com/model">
  3.         <action xmlns="http://www.w3.org/1999/xhtml" name="queryDe_stuffinof"
  4.                 impl="action:common/CRUD/query">
  5.                 <private name="condition" type="String"></private>
  6.                 <private name="db" type="String">demo</private>
  7.                 <private name="tableName" type="String">de_stuffinof</private>
  8.                 <public name="columns" type="Object"></public>
  9.                 <public name="filter" type="String"></public>
  10.                 <public name="limit" type="Integer"></public>
  11.                 <public name="offset" type="Integer"></public>
  12.                 <public name="orderBy" type="String"></public>
  13.                 <public name="variables" type="Object"></public>
  14.         </action>
  15.         <action xmlns="http://www.w3.org/1999/xhtml" name="saveDe_stuffinof"
  16.                 impl="action:common/CRUD/save">
  17.                 <private name="db" type="String">demo</private>
  18.                 <private name="permissions" type="Object"><![CDATA[{"de_stuffinof":""}]]></private>
  19.                 <public name="tables" type="List"></public>
  20.         </action>
  21.         <action xmlns="http://www.w3.org/1999/xhtml" name="queryDe_stufftype"
  22.                 impl="action:common/CRUD/query">
  23.                 <private name="condition" type="String"></private>
  24.                 <private name="db" type="String">demo</private>
  25.                 <private name="tableName" type="String">de_stufftype</private>
  26.                 <public name="columns" type="Object"></public>
  27.                 <public name="filter" type="String"></public>
  28.                 <public name="limit" type="Integer"></public>
  29.                 <public name="offset" type="Integer"></public>
  30.                 <public name="orderBy" type="String"></public>
  31.                 <public name="variables" type="Object"></public>
  32.         </action>
  33.         <action xmlns="http://www.w3.org/1999/xhtml" name="saveDe_stufftype"
  34.                 impl="action:common/CRUD/save">
  35.                 <private name="db" type="String">demo</private>
  36.                 <private name="permissions" type="Object"><![CDATA[{"de_stufftype":""}]]></private>
  37.                 <public name="tables" type="List"></public>
  38.         </action>
  39. </model>
复制代码





回复 支持 反对

使用道具 举报

156

主题

615

帖子

2583

积分

金牌会员

Rank: 6Rank: 6

积分
2583
QQ
 楼主| 发表于 2017-4-11 16:27:49 | 显示全部楼层
以下是测试的截图:
问题1的debugger信息,可以看到,debugger获取fParentID确实没有获取到,如图:
问题1.png


问题2的截图,点击的是主表的保存按钮:
问题2-1.png 问题2-2.png 问题2-3.png


点击主表的保存按钮后,数据库中确实没有把从表的数据保存进来。

请问,是不是我的设置,或者步骤做错了导致的
要是我的记忆没有出问题的话,我想应该不是我设置的问题吧?



回复 支持 反对

使用道具 举报

156

主题

615

帖子

2583

积分

金牌会员

Rank: 6Rank: 6

积分
2583
QQ
 楼主| 发表于 2017-4-11 16:40:41 | 显示全部楼层
另外:问题1我做测试实在是没有把父关系赋值,导致保存的数据不是树型。
问题2你让我参考的例子我看过,没有发贴之前我就看了,结果我不知道为什么你们的可以,我做的就不可以,我做的步骤、代码都贴上去了,你们看看是不是我设置有问题
回复 支持 反对

使用道具 举报

发表于 2017-4-11 17:28:15 | 显示全部楼层
liang2013 发表于 2017-4-11 16:40
另外:问题1我做测试实在是没有把父关系赋值,导致保存的数据不是树型。
问题2你让我参考的例子我看过,没 ...

你好楼主,该问题需要远程,请在你的个人信息中完善QQ和联系电话,我们会尽快QQ远程。

1.主从关联只需要设置从表的master属性 关联主表和外键即可!
你先试试这个案例可以正常保存吗??
/UI2/demo/baas/masterDetail/index.w


2.属性设置可以参考:/UI2/demo/baas/treeData/index.w如图 data组件 两点设置比较重要

TBVQILFQTTDY}XZORB@WQ5H.png
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

156

主题

615

帖子

2583

积分

金牌会员

Rank: 6Rank: 6

积分
2583
QQ
 楼主| 发表于 2017-4-12 09:56:41 | 显示全部楼层
你说的都设置了,页面的配置也都发上来了,你可以看看
回复 支持 反对

使用道具 举报

发表于 2017-4-12 11:58:40 | 显示全部楼层
liang2013 发表于 2017-4-12 09:56
你说的都设置了,页面的配置也都发上来了,你可以看看

下午远程看看吧!
QQ 联系
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 07:09 , Processed in 0.069568 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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