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

QQ登录

只需一步,快速开始

查看: 10946|回复: 37

[结贴] 树结构叶节点不能自动维护

[复制链接]

36

主题

137

帖子

157

积分

初级会员

Rank: 2

积分
157
QQ
发表于 2016-9-5 14:38:32 | 显示全部楼层 |阅读模式


我是通过弹出对话框的形式,然后获取数据源保存的,这样就不能自动维护叶节点了。

        if (orgData.saveData()) {
                                                        if ($this._params.openMode == "new") {
                                                                $this._params.orgID = orgData.getRowID();
                                                        }
                                                        $this.comp("windowReceiver").windowEnsure(
                                                                        $this._params);
                                                }




YJ       5JN~]NMPB@06Z6VJO3S)Q.png

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-9-5 14:46:54 | 显示全部楼层
数据是在什么地方新增的?如果是弹出框中新增的,那么弹出框中的data也需要是treeData才可以
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

36

主题

137

帖子

157

积分

初级会员

Rank: 2

积分
157
QQ
 楼主| 发表于 2016-9-5 14:47:52 | 显示全部楼层
本帖最后由 hyhdev 于 2016-9-5 14:49 编辑

我在对话框的JS里保存的,就是保存的都是表单里的字段,没有保存那个nodeKind字段
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-9-5 15:04:50 | 显示全部楼层
对话框中的data上设置这个字段了吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

36

主题

137

帖子

157

积分

初级会员

Rank: 2

积分
157
QQ
 楼主| 发表于 2016-9-5 15:21:41 | 显示全部楼层
本帖最后由 hyhdev 于 2016-9-5 15:23 编辑

有的 LXA2JU]B%2$@{1E`8@Q5J.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-9-5 15:24:01 | 显示全部楼层
把.w和js文件发一下看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

36

主题

137

帖子

157

积分

初级会员

Rank: 2

积分
157
QQ
 楼主| 发表于 2016-9-5 15:35:48 | 显示全部楼层
<?xml version="1.0" encoding="utf-8"?>

<div xmlns="http://www.w3.org/1999/xhtml" component="$UI/system/components/justep/window/window" xid="window" design="device:pc;" title='""'>  
  <div component="$UI/system/components/justep/model/model" xid="model" style="height:auto;top:228px;left:409px;">
    <div component="$UI/system/components/justep/data/bizData" xid="treeData"
      directDelete="true" autoLoad="true" concept="Base_class_dict" columns="" onSaveCommit="saveCommit"
      limit="20" isTree="true" autoNew="true">
      <reader action="/RMP/RCC/logic/action/queryBase_class_dictAction"/>  
      <writer action="/RMP/RCC/logic/action/saveBase_class_dictAction"/>  
      <creator action="/RMP/RCC/logic/action/createBase_class_dictAction"/>  
      <calculateRelation relation="calcCheckBox"/>  
      <treeOption xid="default1" parentRelation="UPPER_CODE" nodeKindRelation="NODE_KIND"/>
    </div>  
    <div component="$UI/system/components/justep/data/bizData" autoLoad="true"
      xid="DicData" concept="Base_class_dict" orderBy="SORT_NO desc">
      <creator xid="default9" action="/RMP/RCC/logic/action/createBase_class_dictAction"/>  
      <reader xid="default10" action="/RMP/RCC/logic/action/queryBase_class_dictAction"/>  
      <writer xid="default11" action="/RMP/RCC/logic/action/saveBase_class_dictAction"/>
    <filter name="Filter0" xid="filter2"></filter>
  <filter name="filter1" xid="filter3"><![CDATA[VALID_FLAG = 1]]></filter></div>
    </div>  
  <div xid="view">
    <div component="$UI/system/components/justep/toolBar/toolBar" class="x-toolbar x-toolbar-spliter form-inline"
      xid="bar">
      <div component="$UI/system/components/justep/smartFilter/smartFilter"
        xid="smartFilter1" filterData="treeData" filterCols="fBH" class="pull-right">
        <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"/>
      </div>  
      <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
        onClick="newOrgBtnClick" xid="button3" label="新增类别" icon="linear linear-arrowleftcircle">
        <i xid="i7" class="linear linear-arrowleftcircle"/>  
        <span xid="span3">新增类别</span>
      </a>  
      <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left" onClick="btnEditAction" xid="button1" label="修改" icon="linear linear-pencil">
   <i xid="i1" class="linear linear-pencil"></i>
   <span xid="span8">修改</span></a><a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
        label="保存" xid="saveBtn" onClick='{"operation":"treeData.save"}'>
        <i xid="i3"/>  
        <span xid="label7">保存</span>
      </a>  
      <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-icon-left"
        label="删除" xid="deleteBtn" onClick='deleteTreeData'>
        <i xid="i4"/>  
        <span xid="span7">删除</span>
      </a>  
      </div>  
    <div component="$UI/system/components/bootstrap/row/row" class="row" xid="row1">
      <div class="col col-xs-3" xid="col1">
        <div component="$UI/system/components/justep/grid/grid" xid="mainGrid"
          data="treeData" width="100%" hiddenCaptionbar="true" height="auto" class="x-grid-no-bordered"
          appearance="treeGrid" expandColumn="CLASS_NAME" useVirtualRoot="true" onRowClick="mainGridRowClick" onTreeIconRender="mainGridTreeIconRender" virtualRootLabel="字典类别">
          <columns xid="column">
            <column width="200" name="CLASS_NAME" xid="column1" editable="false"
              label="字典类别管理">
              <input component="$UI/system/components/justep/input/input" class="form-control"
                xid="input5" bind-ref="ref(&quot;CLASS_NAME&quot;)"/>
            </column>
          </columns>
        </div>
      </div>  
      <div class="col col-xs-8" xid="col3">
        <div component="$UI/system/components/justep/grid/grid" hiddenCaptionbar="true"
          altRows="true" class="x-grid-no-bordered" xid="DicDataGrid" data="DicData"
          showRowNumber="true" height="auto" width="100%">
          <columns xid="columns2">
            <column width="100" name="CLASS_CODE" xid="column4" label="类别代码"></column><column width="100" name="CLASS_NAME" xid="column2" label="类别名称"></column>
  <column width="100" name="PARENT_NAME" xid="column6" label="父级名称"></column><column width="100" name="MODIFY_OPERATOR" xid="column3" label="操作人员"></column>
  
  <column width="100" name="REMARK" xid="column5" label="备注"></column>
  </columns>
        </div>
      </div>
    </div>
  </div>  
  <span component="$UI/system/components/justep/bizFilter/bizFilter" xid="bizFilter"
    filterData="treeData" style="left:28px;top:290px;"/>  
  <div component="$UI/system/components/justep/pagerBar/pagerBar" class="x-pagerbar container-fluid"
    xid="pagerBar" data="DicData" style="margin-top:100px;">
    <div class="row" xid="div1">
      <div class="col-sm-3" xid="div2">
        <div class="x-pagerbar-length" xid="div3">
          <label component="$UI/system/components/justep/pagerLimitSelect/pagerLimitSelect"
            class="x-pagerlimitselect" xid="pagerLimitSelect1">
            <span xid="span1">显示</span>  
            <select component="$UI/system/components/justep/select/select" class="form-control input-sm"
              xid="select1">
              <option value="10" xid="default2">10</option>  
              <option value="20" xid="default3">20</option>  
              <option value="50" xid="default4">50</option>  
              <option value="100" xid="default5">100</option>
            </select>  
            <span xid="span3">条</span>
          </label>
        </div>
      </div>  
      <div class="col-sm-3" xid="div4">
        <div class="x-pagerbar-info" xid="div5">当前显示1-10条,共16条</div>
      </div>  
      <div class="col-sm-6" xid="div6">
        <div class="x-pagerbar-pagination" xid="div7">
          <ul class="pagination" component="$UI/system/components/bootstrap/pagination/pagination"
            xid="pagination1">
            <li class="prev" xid="li1">
              <a href="#" xid="a1">
                <span aria-hidden="true" xid="span4">«</span>  
                <span class="sr-only" xid="span5">Previous</span>
              </a>
            </li>  
            <li class="next" xid="li2">
              <a href="#" xid="a2">
                <span aria-hidden="true" xid="span6">»</span>  
                <span class="sr-only" xid="span9">Next</span>
              </a>
            </li>
          </ul>
        </div>
      </div>
    </div>
  </div>
<span component="$UI/system/components/justep/windowDialog/windowDialog" xid="dicDialog" src="$UI/RMP/RCC/process/Dict_Config/orgDetail.w" status="normal" onReceive="dicDialogReceive" style="top:270px;left:120px;" showTitle="true" title="新增字典类别"></span>
  </div>


define(function(require) {
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        var Grid = require("$UI/system/components/justep/grid/grid");

        var Model = function() {
                this.callParent();
        };

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

        Model.prototype.newOrgBtnClick = function(event) {
                var row = this.comp("treeData").getCurrentRow();
                var parentID = null;
                if (row) {
                        parentID = this.comp("treeData").getCurrentRowID();
                        var parentName = row.row.CLASS_NAME.value.latestValue;
                } else
                        var parentName = null;
                this.comp("dicDialog").open({
                        data : {
                                "openMode" : "new",
                                "parentID" : parentID,
                                "parentName" : parentName
                        }
                });
        };

        Model.prototype.dicDialogReceive = function(event) {
                this.comp("treeData").refreshData();
                this.comp("DicData").refreshData();
        };

        Model.prototype.mainGridRowClick = function(event) {
                var data = this.comp("treeData");// 获取tree关联的data
                var rowid = data.getCurrentRowID();// 获取当前行id
                var basicData = this.comp("DicData");
                if (rowid)
                        basicData.setFilter("Filter0", " UPPER_CODE = '" + rowid
                                        + "' or Base_class_dict = '" + rowid + "'");
                basicData.refreshData();
        };

        Model.prototype.mainGridTreeIconRender = function(event) {
                if ((event.row != null && event.row.val('UPPER_CODE') == undefined)
                                || event.row == null) {
                        event.html = "<img height='16' width='16' src='/x5/UI2/v_f2677a3d05544a43a8665d1774e41f3fl_zh_CNs_desktopd_pc/SA/OPM/images/funPermission.gif' >";
                } else
                        event.html = "<img height='16' width='16' src='/x5/UI2/v_da6af9fbadc949deaa3728bdbf1a561fl_zh_CNs_desktopd_pc/SA/OPM/images/funRole.gif'/>";
        };

        Model.prototype.btnEditAction = function(event) {
                var parentID = this.comp("treeData").getCurrentRowID();
                var row = this.comp("treeData").getCurrentRow();
                if (!parentID)
                        parentID = null;
                this.comp("dicDialog").open({
                        data : {
                                "openMode" : "edit",
                                "parentID" : parentID,
                                "data" : row
                        }
                });
        };

        Model.prototype.deleteTreeData = function(event) {
                var data = this.comp("treeData");
                var basicData = this.comp("DicData");
                if (data.deleteData(data.getCurrentRow())) {
                        data.refreshData();
                        basicData.clear();
                        justep.Util.hint("删除成功!");
                }

        };

        return Model;
});


主界面。。
回复 支持 反对

使用道具 举报

36

主题

137

帖子

157

积分

初级会员

Rank: 2

积分
157
QQ
 楼主| 发表于 2016-9-5 15:36:29 | 显示全部楼层
<?xml version="1.0" encoding="utf-8"?>

<div xmlns="http://www.w3.org/1999/xhtml" xid="window" class="window justep-opm-orgdetail" component="$UI/system/components/justep/window/window">  
  <div component="$UI/system/components/justep/model/model" xid="model" style="height:auto;top:117px;left:322px;">
    <div component="$UI/system/components/justep/data/bizData" xid="orgData"
      concept="Base_class_dict" limit="1" autoLoad="false" confirmRefresh="false">
      <reader xid="default1" action="/RMP/RCC/logic/action/queryBase_class_dictAction"/>  
      <writer xid="default2" action="/RMP/RCC/logic/action/saveBase_class_dictAction"/>  
      <creator xid="default3" action="/RMP/RCC/logic/action/createBase_class_dictAction"/>  
      <calculateRelation relation="orgKindLabel" xid="calculateRelation1"/>  
      <rule xid="rule6">
   <readonly xid="readonly12">
    <expr xid="default24">js:$model.openMode.get() == 'view'</expr></readonly>
   <col name="sName" xid="ruleCol13">
    <required xid="required2">
     <expr xid="default25">js:true</expr>
     <message xid="default26">组织名称不能为空</message></required> </col>
   <col name="sCode" xid="ruleCol14">
    <required xid="required3">
     <expr xid="default27">js:true</expr>
     <message xid="default28">组织编码不能为空</message></required> </col>
   <col name="orgKindLabel" xid="ruleCol15">
    <calculate xid="calculate6">
     <expr xid="default29">js:$model.orgKinds.getLabel($row.val('sOrgKindID'))</expr></calculate> </col>
   <col name="CLASS_NAME" xid="ruleCol1">
    <required xid="required1">
     <expr xid="default4">true</expr>
     <message xid="default5">类别名称不能为空</message></required> </col>
   <col name="CODE" xid="ruleCol2">
    <required xid="required4">
     <expr xid="default6">true</expr>
     <message xid="default7">类别编码不能为空</message></required> </col>
   <col name="CLASS_CODE" xid="ruleCol3">
    <required xid="required5">
     <expr xid="default8">true</expr>
     <message xid="default9">类别代码不能为空</message></required> </col> </rule></div>  
    </div>  
  <span component="$UI/system/components/justep/windowReceiver/windowReceiver"
    xid="windowReceiver" style="top:255px;left:136px;"/>  
  <div component="$UI/system/components/justep/panel/panel" class="x-panel x-full"
    xid="panel1">
    <div class="x-panel-content container-fluid" xid="content1">
      <div class="form-horizontal container-fluid" component="$UI/system/components/bootstrap/form/form" xid="form1"><div class="form-group" xid="formGroup2">
   <div class="col-xs-2" xid="col15">
   <label class="control-label" xid="controlLabel1"><![CDATA[上级组织]]></label></div><div class="col-xs-10" xid="col16"><input component="$UI/system/components/justep/input/input" class="form-control input-sm x-edit" bind-ref='$model.orgData.ref("PARENT_NAME")' readonly="true"></input></div>
   </div>
  <div class="form-group" xid="formGroup4">
   <div class="col-xs-2" xid="col21"><label class="control-label" xid="controlLabel2"><![CDATA[类别名称]]></label></div>
   <div class="col-xs-4" xid="col22"><input component="$UI/system/components/justep/input/input" class="form-control input-sm x-edit" xid="input2" bind-ref='$model.orgData.ref("CLASS_NAME")'></input></div>
   <div class="col-xs-2" xid="col23"><label class="control-label" xid="controlLabel3"><![CDATA[编码]]></label></div>
   <div class="col-xs-4" xid="col24"><input component="$UI/system/components/justep/input/input" class="form-control input-sm x-edit" xid="input3" bind-ref='$model.orgData.ref("CLASS_CODE")'></input></div></div>
  
  <div class="form-group" xid="formGroup6">
   <div class="col-xs-2" xid="col32"><label class="control-label" xid="controlLabel6"><![CDATA[排序号]]></label></div>
   <div class="col-xs-4" xid="col30"><input component="$UI/system/components/justep/input/input" class="form-control input-sm x-edit" xid="input4" bind-ref='$model.orgData.ref("SORT_NO")'></input></div>
   <div class="col-xs-2" xid="col29"><label class="control-label" xid="controlLabel7"><![CDATA[操作人]]></label></div>
   <div class="col-xs-4" xid="col31"><input component="$UI/system/components/justep/input/input" class="form-control input-sm x-edit" xid="input7" bind-ref='$model.orgData.ref("MODIFY_OPERATOR")'></input></div></div>
  <div class="form-group" xid="formGroup7">
   <div class="col-xs-2" xid="col36"><label class="control-label" xid="controlLabel8"><![CDATA[新增时间]]></label></div>
   <div class="col-xs-4" xid="col34"><input component="$UI/system/components/justep/input/input" class="form-control input-sm x-edit" xid="input8" bind-ref='$model.orgData.ref("MODIFY_TIME")'></input></div>
   <div class="col-xs-2" xid="col33"><label class="control-label" xid="controlLabel9"><![CDATA[拼音码]]></label></div>
   <div class="col-xs-4" xid="col35"><input component="$UI/system/components/justep/input/input" class="form-control input-sm x-edit" xid="input9" bind-ref='$model.orgData.ref("SPELL_CODE")'></input></div></div><div class="form-group" xid="formGroup5">
   <div class="col-xs-2" xid="col25"><label class="control-label" xid="controlLabel5"><![CDATA[备注]]></label></div>
   <div class="col-xs-4" xid="col27"><input component="$UI/system/components/justep/input/input" class="form-control" xid="input10" bind-ref='$model.orgData.ref("REMARK")' style="width:150px;"></input></div></div>
  </div></div>  
    <div class="x-panel-bottom" xid="bottom1">
      <a component="$UI/system/components/justep/button/button" class="btn btn-link btn-only-label x-dialog-button" label="取消" xid="cancelBtn" onClick='{"operation":"windowReceiver.windowCancel"}'>
   <i xid="i1"></i>
   <span xid="span1">取消</span></a>
  <a component="$UI/system/components/justep/button/button" class="btn btn-primary btn-only-label x-dialog-button" label="确定" xid="okBtn" bind-disable="$model.openMode.get() == 'view'">
   <i xid="i2"></i>
   <span xid="span2">确定</span></a></div>
  </div>
</div>



define(function(require) {
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        var OrgKinds = require("$UI/system/service/org/orgKinds");
        var Grid = require("$UI/system/components/justep/grid/grid");
        var biz = require('$UI/system/lib/biz');

        var Model = function() {
                this.callParent();
                this.orgKinds = new OrgKinds(this.getContext());

                this.openMode = justep.Bind.observable("view");
        };

        Model.prototype.windowReceiverReceive = function(event) {
                var orgData = this.comp("orgData");
                this._params = event.data;
                this.openMode.set(this._params.openMode || "view");
                if (this._params.openMode == "new") {
                        orgData.clear();
                        orgData.newData();
                        orgData.setValue("UPPER_CODE", this._params.parentID);
                        orgData.setValue("PARENT_NAME", this._params.parentName);
                }
                else{
                        orgData.setFilter("filter1", "Base_class_dict='" + event.data.parentID + "'");
                        orgData.refreshData();
                }
        };

        Model.prototype.okBtnClick = function(event) {
                $this = this;
                var orgData = this.comp("orgData");
                var row = orgData.getCurrentRow();
                var  className = orgData.getValue("CLASS_NAME", row);
                var  classCode = orgData.getValue("CLASS_CODE", row);
                var  upCode = orgData.getValue("UPPER_CODE", row);
                var params = new biz.Request.ActionParam();
                params.setString('className', className);
                params.setString('classCode', classCode);
                params.setString('upCode', upCode);
                biz.Request.sendBizRequest({
                        dataType : "application/json",
                        context : this.getContext(),
                        action : 'unikType',
                        parameters : params,
                        callback : function(result) {
                                if (result.state) {
                                        if (result.response == false) {
                                                if (orgData.saveData()) {
                                                        if ($this._params.openMode == "new") {
                                                                $this._params.orgID = orgData.getRowID();
                                                        }
                                                        $this.comp("windowReceiver").windowEnsure(
                                                                        $this._params);
                                                }
                                        } else {
                                                justep.Util.hint("字典类别或者字典代码已经存在,请更改!");
                                        }
                                }
                                else{
                                        throw new Error("调用失败");
                                }
                        }
                });
        };

        return Model;
});


对话框代码
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-9-5 15:49:18 | 显示全部楼层
你的对话框中的data不是树形的啊?
data.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

36

主题

137

帖子

157

积分

初级会员

Rank: 2

积分
157
QQ
 楼主| 发表于 2016-9-6 09:19:35 | 显示全部楼层
jishuang 发表于 2016-9-5 15:49
你的对话框中的data不是树形的啊?

我在对话框添加了下面几个属性,打开对话框后就出现问题了(TypeError: Cannot read property 'parent' of undefined)




WNVKSCJ76ZO{{QUE%`(1JB6.png {4]B494OS]H887~UI%()MYO.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 10:35 , Processed in 0.114239 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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