Пример #1
0
 /**
  * 生成查看页面组件
  * @Title: createSingleShowControl
  * @Description: todo(这里用一句话描述这个方法的作用) 
  * @param array $data	数据库中存储属性值
  * @return string	|mixed|string	最终组件html代码  
  * @author quqiang 
  * @date 2015年5月15日 上午11:45:32 
  * @throws
  */
 protected function createSingleShowControl($data)
 {
     if (is_array($data)) {
         $tempHtml = '';
         // 组件使用皮肤
         $cls = '';
         // 可见内容
         $show = '';
         // 配置项的模板内容
         $tpl = '';
         $eachControlData = self::parse($data, false);
         // 取得组件类型
         $category = $eachControlData[$this->default['category']['key']];
         // 取得显示样式
         /**
          * 取得显示样式
          * 1:取出显示样式默认模板
          * 2:取得宽度值,从DB或配置中
          * 3:替换得到最终值
          */
         // 1:
         $cls = $this->controlsConfig[$category]['controllcls']['value'];
         // 2:
         $width = $eachControlData[$this->controlsConfig[$category]['width']['key']] ? $eachControlData[$this->controlsConfig[$category]['width']['key']] : $this->controlsConfig[$category]['width']['value'];
         // 3:
         $cls = parameReplace('#width#', $width, $cls);
         $tpl = $this->controls[$category]['showhtml'];
         $id = $eachControlData[$this->controlsConfig[$category]['primary']['key']];
         // 获取显示数据配置项,
         $dataSouceObj = M('mis_system_design_setting');
         if (!$id) {
             $msg = '属性ID未知';
             throw new NullDataExcetion($msg);
         }
         $settingSql = "SELECT \n  datasouce.`actionname`,\n  datasouce.`functionname` \nFROM\n  `mis_system_design_setting` AS setting \n  LEFT JOIN `mis_system_desing_datasource` AS datasouce \n    ON setting.`datasouceid` = datasouce.`id` \nWHERE setting.`masid` = {$id} ";
         $dataSouceData = $dataSouceObj->query($settingSql);
         $dataSouceHtml = '';
         foreach ($dataSouceData as $key => $val) {
             $dataSouceHtml .= '{:A(\'' . $val['actionname'] . '\')->' . $val['functionname'] . '()}';
         }
         $dataSouceHtml = $dataSouceHtml ? $dataSouceHtml : '没有配置显示数据';
         // 解析可见内容
         $show = parameReplace('$title', $eachControlData[$this->controlsConfig[$category]['title']['key']], $tpl);
         $show = parameReplace('$content', $dataSouceHtml, $show);
         $show = parameReplace('__URL__', __URL__, $show);
         $eachControlData['showdisplay'] = '{:A(\'' . $val['actionname'] . '\')->getConfig()}';
         // 转译点位符
         $show = preg_replace_callback('/\\#+(\\w+)\\#/', function ($vo) use($eachControlData) {
             $ret = '';
             if ($vo[1]) {
                 $ret = $eachControlData[$vo[1]];
             }
             return $ret;
         }, $show);
         // $tag
         $tag = $this->tagIndentity . '=' . $eachControlData[$this->default['primary']['key']];
         $show = parameReplace('$cls', $cls, $show);
         $show = parameReplace('$tag', $tag, $show);
         return $show;
     } else {
         return '';
     }
 }
    /**
     * @Title: getControl
     * @Description: todo(将组件属性生成组件实际html代码)
     *
     * @param array $controllProperty
     *        	组件信息
     * @param boolean $isedit
     *        	是否是编辑,默认flase:新增
     * @param boolean $isreturnvalue
     *        	是否直接显示值
     * @param boolean $special
     * @author quqiang
     *         @date 2014-8-21 上午10:12:43
     * @throws
     *
     */
    private function getControl($controllProperty, $isedit = false, $isreturnvalue = false, $special = true)
    {
        // 重新取得当前文件的list配置文件
        if ($this->nodeName) {
            $path = DConfig_PATH . "/Models/" . $this->nodeName . "/list.inc.php";
            $detailList = (require $path);
            $this->datalist = $detailList;
        }
        // print_r($this->datalist);
        // if($_POST['nodename']=='MisAutoPvb'){
        // print_r($detailList);
        // }
        if (!is_array($controllProperty)) {
            return '';
        }
        $property = $this->getProperty($controllProperty['catalog']);
        if ($controllProperty[$property['checkfunc']['name']]) {
            $chtml = $controllProperty[$property['checkfunc']['name']];
        }
        $readonly = 0;
        $readonlyStr = '';
        $islockHtml = '<div class="display_none {$classNodeSettingArr[\'' . $controllProperty[$property['fields']['name']] . '\']}">$viewval</div>';
        if (!$controllProperty[$property['islock']['name']]) {
            $chtml .= " readonly";
            $readonly = 1;
            $readonlyStr = "readonly=\"readonly\" ";
        }
        $html = '';
        if ($controllProperty['catalog'] == 'tablabel') {
            $prefTag = "\t\t\t<label class=\"label_new\">" . $controllProperty[$property['title']['name']] . "</label>\r\n\t\t\t\t\t\t\t\t";
        } else {
            $prefTag = "\t\t\t<label class=\"label_new\">{\$fields[\"" . $controllProperty[$property['fields']['name']] . "\"]}:</label>\r\n\t\t\t\t\t\t\t\t";
        }
        $org = '';
        if ($controllProperty[$property['org']['name']]) {
            $org = $controllProperty[$property['org']['name']];
        }
        $required = '';
        // 必填验证
        if ($controllProperty[$property['requiredfield']['name']]) {
            $required = 'required';
        }
        $dropback = "dropback=\"{$controllProperty[$property['dropback']['name']]}\"";
        $chtml = $required . ' ' . $chtml;
        // 读取当前list.inc.php文件
        switch ($controllProperty['catalog']) {
            case 'text':
                // 绑定事件
                $tagEvent = $controllProperty[$property['tagevent']['name']];
                // 获取事件名
                $calculate = $controllProperty[$property['calculate']['name']];
                // 获取事件名
                $tagEventSytr = '';
                if ($tagEvent) {
                    $tagEventSytr = 'on' . ucwords($tagEvent) . '="' . $this->nodeName . '_' . $controllProperty[$property['fields']['name']] . '_' . $tagEvent . '(this);"';
                }
                $tagEventSytr = $dropback . ' ' . $tagEventSytr;
                $valStr = '';
                $unitChangeStr = '';
                if ($isedit) {
                    $unitl = $controllProperty[$property['unitl']['name']];
                    $unitls = $controllProperty[$property['unitls']['name']];
                    if ($unitl && $unitls) {
                        $unitChangeStr = "|unitExchange=###,{$unitl},{$unitls},2";
                    }
                    $valStr = "{\$vo['{$controllProperty[$property['fields']['name']]}']{$unitChangeStr}}";
                }
                if (!$isreturnvalue) {
                    $unitlsStr = '';
                    $unitlsPanelStart = '';
                    $unitlsPanelEnd = '';
                    $unitlsCls = '';
                    $uFStr = '';
                    $defaultCls = 'input_new ';
                    if ($controllProperty[$property['unitls']['name']]) {
                        $unitlsPanelStart = "<div class=\"tml-input-unit\">";
                        $unitlsPanelEnd = '</div>';
                        $unitlsStr = "<span class=\"icon_elm icon_unit\" title=\"{$this->untils[$controllProperty[$property['unitls']['name']]]}\">{$this->untils[$controllProperty[$property['unitls']['name']]]}</span>";
                        // $unitlsCls=' unitlpase ';
                        $defaultCls .= ' half_angle_input';
                        // $uFStr=" unitl=\"{$controllProperty[$property['unitls']['name']]}\" ";
                    }
                    $unitlsCls .= $defaultCls;
                    // checkfor 属性设置
                    // checkfor 当 $controllProperty[$property['checkfortable']['name']] 指定了表名,
                    // $controllProperty[$property['checkforshow']['name']] 显示字段
                    // $controllProperty[$property['checkforbindd']['name']] 绑定真实值
                    // 单换算功能 不能与checkfor功能同用,原因为:checkfor会生成hidden标签,单们换算也会生成hidden无法赋值。
                    /*
                     * if($controllProperty[$property['unitls']['name']]){
                     * $html="\r\n\t\t\t\t\t{$prefTag}<input $tagEventSytr type=\"text\" {$readonlyStr} unitl=\"{$controllProperty[$property['unitls']['name']]}\" name=\"".
                     * $controllProperty[$property['fields']['name']]."\" class=\"input_new {$org} {$unitlsCls} unitlpase {$chtml}\" value=\"".($isedit?"{\$vo['".
                     * $controllProperty[$property['fields']['name']]."']}":'')."\">";
                     * }else{ 单位与checkfor 不共用
                     */
                    if ($controllProperty[$property['checkfortable']['name']]) {
                        $insert = $controllProperty[$property['checkforbindd']['name']] ? htmlspecialchars("insert=\"" . $controllProperty[$property['checkforbindd']['name']] . "\"") : '';
                        // 隐藏域绑定字段名
                        $show = $controllProperty[$property['checkforshow']['name']] ? htmlspecialchars("show=\"" . $controllProperty[$property['checkforshow']['name']] . "\"") : '';
                        // 显示字段名
                        $table = $controllProperty[$property['checkfortable']['name']] ? htmlspecialchars("checkfor=\"" . $controllProperty[$property['checkfortable']['name']] . "\"") : '';
                        // checkfor查询表
                        $orderby = $controllProperty[$property['checkfororderby']['name']] ? htmlspecialchars("order=\"" . $controllProperty[$property['checkfororderby']['name']] . "\"") : '';
                        // 排序条件
                        $iswrite = $controllProperty[$property['checkforiswrite']['name']] ? htmlspecialchars("iswrite=\"" . $controllProperty[$property['checkforiswrite']['name']] . "\"") : '';
                        // 是否清除未找到内容
                        $fileds = $controllProperty[$property['checkfororfields']['name']] ? htmlspecialchars("fields=\"array(" . $controllProperty[$property['checkfororfields']['name']] . ");\"") : '';
                        // 查看字段
                        $map = $controllProperty[$property['checkformap']['name']] ? htmlspecialchars("newconditions=\"" . $controllProperty[$property['checkformap']['name']] . "\"") : '';
                        // 过滤条件
                        $org = '';
                        // 时当前文本框 没得name属性,
                        if ($controllProperty[$property['checkforbindd']['name']]) {
                            $iswrite = '';
                            $hiden = "<input type=\"hidden\" {$uFStr} name=\"" . $controllProperty[$property['fields']['name']] . "\" value=\"" . ($isedit ? "{\$vo['" . $controllProperty[$property['fields']['name']] . "']}" : '') . "\">";
                            $viewval = $isedit ? "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='{$controllProperty[$property['checkforbindd']['name']]}','{$controllProperty[$property['checkforshow']['name']]}','{$controllProperty[$property['checkfortable']['name']]}'}" : '';
                            $html = "\r\n\t\t\t\t\t{$prefTag}{$hiden}\r\n<input {$tagEventSytr} type=\"text\" {$readonlyStr}  class=\"{$org} input_new {$unitlsCls} checkByInput {$chtml}\" \r\n" . "{$table} \r\n" . "{$insert} \r\n" . "{$show} \r\n" . "{$map} \r\n" . "{$orderby} \r\n" . "{$fileds} \r\n" . "{$iswrite} autocomplete=\"on\" value=\"" . $viewval . "\">";
                            // id:{$controllProperty[$property['checkforbindd']['name']]}
                            $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                        } else {
                            $viewval = $valStr;
                            $html = "\r\n\t\t\t\t\t{$prefTag}<input {$uFStr} {$tagEventSytr} type=\"text\" {$readonlyStr} name=\"" . $controllProperty[$property['fields']['name']] . "\" class=\"{$org} {$unitlsCls} input_new {$chtml}\" value=\"" . $viewval . "\">";
                            $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                        }
                    } else {
                        $viewval = $valStr;
                        $html = "\r\n\t\t\t\t\t{$prefTag}<input {$uFStr} {$tagEventSytr} type=\"text\" {$readonlyStr} name=\"" . $controllProperty[$property['fields']['name']] . "\" class=\"{$org} {$unitlsCls} input_new {$chtml}\" value=\"" . $valStr . "\">";
                        $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                    }
                    // }
                } else {
                    /* 查看页面单位转换 */
                    $unitChangeStr = '';
                    $unitl = $controllProperty[$property['unitl']['name']];
                    $unitls = $controllProperty[$property['unitls']['name']];
                    if ($unitl && $unitls) {
                        $unitChangeStr = "|unitExchange=###,{$unitl},{$unitls},3";
                    }
                    $valStr = "{\$vo['{$controllProperty[$property['fields']['name']]}']{$unitChangeStr}}";
                    /**
                     * **************
                     */
                    if ($controllProperty[$property['checkfortable']['name']]) {
                        if ($controllProperty[$property['checkforbindd']['name']]) {
                            // id : {$controllProperty[$property['checkforbindd']['name']]}
                            $viewval = '';
                            $html = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='{$controllProperty[$property['checkforbindd']['name']]}','{$controllProperty[$property['checkforshow']['name']]}','{$controllProperty[$property['checkfortable']['name']]}'}";
                        } else {
                            $viewval = '';
                            $html = $valStr;
                            // "{\$vo['".$controllProperty[$property['fields']['name']]."']}";
                        }
                    } else {
                        $viewval = '';
                        $html = $valStr;
                        // "{\$vo['".$controllProperty[$property['fields']['name']]."']}";
                    }
                    // $viewval= '';
                    // $islockHtml='';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html = $unitlsPanelStart . htmlspecialchars_decode($html) . $unitlsStr . $unitlsPanelEnd . $islockHtml;
                break;
            case 'password':
                if (!$isreturnvalue) {
                    $viewval = $isedit ? "{\$vo['" . $controllProperty[$property['fields']['name']] . "']}" : '';
                    $html = "<input type=\"password\" class=\" input_new\" name=\"" . $controllProperty[$property['fields']['name']] . "\" value=\"" . $viewval . "\" />";
                    $html = $prefTag . $html;
                } else {
                    $viewval = '********';
                    $html = $viewval;
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'hiddens':
                if (!$isreturnvalue) {
                    $viewval = $isedit ? "{\$vo['" . $controllProperty[$property['fields']['name']] . "']}" : '';
                    $html = "<input type=\"hidden\" class=\"{$org} input_new\" name=\"" . $controllProperty[$property['fields']['name']] . "\" value=\"" . $viewval . "\" />";
                } else {
                    $func = "";
                    foreach ($detailList as $dkey => $dval) {
                        if ($dval['name'] == $controllProperty[$property['fields']['name']]) {
                            if ($dval['func']) {
                                $func .= $dval['func'][0][0];
                                if ($dval['func'][0][0] = "getFieldBy") {
                                    $func .= "=";
                                }
                            }
                            if ($dval['funcdata']) {
                                $func .= "'" . $dval['funcdata'][0][0][1];
                                if ($dval['funcdata'][0][0][2]) {
                                    $func .= "','" . $dval['funcdata'][0][0][2] . "','" . $dval['funcdata'][0][0][3] . "'}";
                                } else {
                                    $func .= "'}";
                                }
                            }
                        }
                    }
                    if ($func) {
                        $viewval = '';
                        $html = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|" . $func;
                    } else {
                        $viewval = '';
                        $html = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']}";
                    }
                    // $viewval = '';
                    // $islockHtml='';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'tablabel':
                // $html="\r\n\t\t\t\t\t{$prefTag}\r\n<input class=\"{$org} nbm_tablabel\" value=\"\" type=\"text\" readonly=\"readonly\" disabled=\"disabled\" />";
                // $html="\r\n\t\t\t\t\t{$prefTag}\r\n<input class=\"{$org} nbm_tablabel input_new \" value=\"\" type=\"text\" readonly=\"readonly\" disabled=\"disabled\" />";
                $html = "\r\n\t\t\t\t\t{$prefTag}\r\n<input class=\"{$org}  input_new nbm_tablabel\" value=\"\" type=\"text\" readonly=\"readonly\" disabled=\"disabled\" />";
                if ($isreturnvalue) {
                    // $viewval='';
                    // $islockHtml = '';
                }
                $viewval = '';
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'subtitles':
                $html = "\r\n\t\t\t\t\t";
                $style = "style=\"";
                if ($controllProperty[$property['aligntype']['name']]) {
                    $style .= "text-align:" . $controllProperty[$property['aligntype']['name']] . ";";
                } else {
                    $style .= "text-align:{$property['aligntype']['default']};";
                }
                if ($controllProperty[$property['backgroundcolor']['name']]) {
                    $style .= "background:#" . $controllProperty[$property['backgroundcolor']['name']] . ";";
                } else {
                    $style .= "background:#{$property['backgroundcolor']['default']};";
                }
                if ($controllProperty[$property['fontcolor']['name']]) {
                    $style .= "color:#" . $controllProperty[$property['fontcolor']['name']] . ";";
                } else {
                    $style .= "color:#{$property['fontcolor']['default']};";
                }
                if ($controllProperty[$property['fontsize']['name']]) {
                    $style .= "font-size:" . $controllProperty[$property['fontsize']['name']] . "px;";
                } else {
                    $style .= "font-size:{$property['fontsize']['default']}px;";
                }
                if ($controllProperty[$property['fontheight']['name']]) {
                    $style .= "line-height:" . $controllProperty[$property['fontheight']['name']] . "px;";
                } else {
                    $style .= "line-height:{$property['fontheight']['default']}px;";
                }
                if ($controllProperty[$property['fontweight']['name']]) {
                    $style .= "font-weight:" . $controllProperty[$property['fontweight']['name']] . ";";
                } else {
                    $style .= "font-weight:{$property['fontweight']['default']};";
                }
                $style .= "\"";
                $viewval = $controllProperty[$property['title']['name']];
                $html .= "<div class=\"fieldset_legend_toggle side-catalog-text side-catalog-firstanchor\" {$style}>" . "{$viewval}" . "</div>";
                if ($isreturnvalue) {
                    // $viewval='';
                    // $islockHtml = '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'fiexdtext':
                $html = "\r\n\t\t\t\t\t";
                $style = "style=\"";
                if ($controllProperty[$property['aligntype']['name']]) {
                    $style .= "text-align:" . $controllProperty[$property['aligntype']['name']] . ";";
                } else {
                    $style .= "text-align:{$property['aligntype']['default']};";
                }
                if ($controllProperty[$property['backgroundcolor']['name']]) {
                    $style .= "background:#" . $controllProperty[$property['backgroundcolor']['name']] . ";";
                } else {
                    $style .= "background:#{$property['backgroundcolor']['default']};";
                }
                if ($controllProperty[$property['fontcolor']['name']]) {
                    $style .= "color:#" . $controllProperty[$property['fontcolor']['name']] . ";";
                } else {
                    $style .= "color:#{$property['fontcolor']['default']};";
                }
                if ($controllProperty[$property['fontsize']['name']]) {
                    $style .= "font-size:" . $controllProperty[$property['fontsize']['name']] . "px;";
                } else {
                    $style .= "font-size:{$property['fontsize']['default']}px;";
                }
                if ($controllProperty[$property['fontheight']['name']]) {
                    $style .= "line-height:" . $controllProperty[$property['fontheight']['name']] . "px;";
                } else {
                    $style .= "line-height:{$property['fontheight']['default']}px;";
                }
                /*
                 * 高度影响 页面显示效果
                 * if($controllProperty[$property['contentheight']['name']]){
                 * $style .="height:".$controllProperty[$property['contentheight']['name']]."px;";
                 * }else{
                 * $style .="height:12px;";
                 * }
                 */
                if ($controllProperty[$property['fontweight']['name']]) {
                    $style .= "font-weight:" . $controllProperty[$property['fontweight']['name']] . ";";
                } else {
                    $style .= "font-weight:{$property['fontweight']['default']};";
                }
                // $style .="background:#".$controllProperty[$property['backgroundcolor']['name']]?$controllProperty[$property['backgroundcolor']['name']]:"fff".";";
                // $style .="color:#".$controllProperty[$property['fontcolor']['name']]?$controllProperty[$property['fontcolor']['name']]:'333'.";";
                // $style .="font-size:".$controllProperty[$property['fontsize']['name']]?$controllProperty[$property['fontsize']['name']]:'12' ."px;";
                // $style .="line-height:".$controllProperty[$property['fontheight']['name']]?$controllProperty[$property['fontheight']['name']]:'12'."px;";
                // $style .="height:".$controllProperty[$property['contentheight']['name']]?$controllProperty[$property['contentheight']['name']]:'12'."px;";
                // $style .="font-weight:".$controllProperty[$property['fontweight']['name']]?$controllProperty[$property['fontweight']['name']]:"400".";\"";
                // "border:1px solid #d8d8d8;".
                $style .= "\"";
                // tml-form-text
                $viewval = $controllProperty[$property['title']['name']];
                $html .= "<span class=\"block\" {$style}>{$viewval}</span>";
                if ($isreturnvalue) {
                    // $viewval='';
                    // $islockHtml = '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'select':
                // 是否只读
                $readonly = $controllProperty[$property['islock']['name']];
                // 绑定的事件
                $targevent = $controllProperty[$property['tagevent']['name']];
                // 数据字段名
                $filedName = $controllProperty[$property['fields']['name']];
                // 组件标题
                $filedTitle = $controllProperty[$property['title']['name']];
                // 默认选中项的值
                $defaultcheckitem = $controllProperty[$property['defaultcheckitem']['name']];
                // 外部传入首选项的值
                $defaultval = $controllProperty[$property['defaultval']['name']];
                // 外部传入首选项的显示文本
                $defaulttext = $controllProperty[$property['defaulttext']['name']];
                // Action名称
                $ActionName = $this->nodeName;
                // 直接显示内容的控制阀
                $isshowresoult = $controllProperty[$property['isshowresoult']['name']];
                // 下拉返回唯一标识
                $dropbackkey = $controllProperty[$property['dropbackkey']['name']];
                $conditions = '';
                // 数据来源方式:table|selectlist
                if ($controllProperty[$property['showoption']['name']]) {
                    $type = 'selectlist';
                    $key = $controllProperty[$property['showoption']['name']];
                } else {
                    if ($controllProperty[$property['subimporttableobj']['name']] || $controllProperty[$property['treedtable']['name']]) {
                        $conditions = $controllProperty[$property['conditions']['name']];
                        $type = 'table';
                        if ($controllProperty[$property['subimporttableobj']['name']]) {
                            // 查询表名
                            $tableName = $controllProperty[$property['subimporttableobj']['name']];
                            // 值字段名
                            $tableVal = $controllProperty[$property['subimporttablefield2obj']['name']];
                            // 显示字段名
                            $tableText = $controllProperty[$property['subimporttablefieldobj']['name']];
                        } elseif ($controllProperty[$property['treedtable']['name']]) {
                            // 查询表名
                            $tableName = $controllProperty[$property['treedtable']['name']];
                            // 值字段名
                            $tableVal = $controllProperty[$property['treevaluefield']['name']];
                            // 显示字段名
                            $tableText = $controllProperty[$property['treeshowfield']['name']];
                            $parentid = $controllProperty[$property['treeparentfield']['name']];
                            // 是否末级操作
                            $mulit = $controllProperty[$property['mulit']['name']];
                            // 是否多选
                            $isnextend = $controllProperty[$property['isnextend']['name']];
                            // 树形-下拉高度
                            $treeheight = $controllProperty[$property['treeheight']['name']];
                            // 树形-下拉宽度
                            $treewidth = $controllProperty[$property['treewidth']['name']];
                            // 树形-是否对话框模式
                            $treedialog = $controllProperty[$property['isdialog']['name']] ? true : false;
                        }
                    }
                }
                // 组件外样式
                $content_cls = "col_" . $controllProperty[$property['titlepercent']['name']] . "_" . $controllProperty[$property['contentpercent']['name']] . " form_group_lay field_" . $controllProperty[$property['fields']['name']];
                $paramArr = '';
                if ($isedit) {
                    $paramArr .= "array(\$vo['{$controllProperty[$property['fields']['name']]}']";
                } else {
                    $paramArr .= "array(''";
                }
                // 拼接class 属性
                $cls = $chtml . ' ' . $org;
                // 拼接组件配置参数
                $subassembly = '';
                $subassembly .= "array('readonly'=>'{$readonly}','targevent'=>'{$targevent}','actionName'=>'{$ActionName}','names'=>'{$filedName}','defaultcheckitem'=>'{$defaultcheckitem}','defaultval'=>'{$defaultval}','defaulttext'=>'{$defaulttext}','table'=>'{$tableName}', 'id'=>'{$tableVal}','name'=>'{$tableText}','conditions'=>'{$conditions}','parentid'=>'{$parentid}','mulit'=>'{$mulit}','isnextend'=>'{$isnextend}','treeheight'=>'{$treeheight}','treewidth'=>'{$treewidth}','treedialog'=>'{$treedialog}','key'=>'{$key}','isedit'=>'{$isedit}','showtype'=>'{$isshowresoult}','dropbackkey'=>'{$dropbackkey}')";
                $param = '';
                $param .= "{$paramArr},array('{$cls}',array('type'=>'{$type}',{$subassembly})))";
                if (!$isreturnvalue) {
                    $viewval = '';
                    $html = "\r\n\t\t\t\t\t{$prefTag}";
                    if ($isedit) {
                        if ($readonly) {
                            $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowSelect',{$param})}";
                        } else {
                            $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowSelect',{$param})}";
                        }
                    } else {
                        $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowSelect',{$param})}";
                    }
                    if ($controllProperty[$property['subimporttableobj']['name']]) {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='" . "{$controllProperty[$property['subimporttablefield2obj']['name']]}'" . ",'{$controllProperty[$property['subimporttablefieldobj']['name']]}'," . "'{$controllProperty[$property['subimporttableobj']['name']]}'}";
                        // 普通表数据
                        // $html=$viewval;
                    } elseif ($controllProperty[$property['treedtable']['name']]) {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='" . "{$controllProperty[$property['treevaluefield']['name']]}'" . ",'{$controllProperty[$property['treeshowfield']['name']]}'," . "'{$controllProperty[$property['treedtable']['name']]}'}";
                        // 树形数据
                        // $html=$viewval;
                    } else {
                        $viewval = "{\$vo['{$controllProperty[$property['fields']['name']]}']|getSelectlistValue='{$controllProperty[$property['showoption']['name']]}'}";
                        // selectlist数据
                        // $html=$viewval;
                    }
                } else {
                    if ($controllProperty[$property['subimporttableobj']['name']]) {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='" . "{$controllProperty[$property['subimporttablefield2obj']['name']]}'" . ",'{$controllProperty[$property['subimporttablefieldobj']['name']]}'," . "'{$controllProperty[$property['subimporttableobj']['name']]}'}";
                        // 普通表数据
                        $html = $viewval;
                    } elseif ($controllProperty[$property['treedtable']['name']]) {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='" . "{$controllProperty[$property['treevaluefield']['name']]}'" . ",'{$controllProperty[$property['treeshowfield']['name']]}'," . "'{$controllProperty[$property['treedtable']['name']]}'}";
                        // 树形数据
                        $html = $viewval;
                    } else {
                        $viewval = "{\$vo['{$controllProperty[$property['fields']['name']]}']|getSelectlistValue='{$controllProperty[$property['showoption']['name']]}'}";
                        // selectlist数据
                        $html = $viewval;
                    }
                    // $viewval='';
                    // $islockHtml = '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'checkbox':
                $checked = "";
                $tagEvent = $controllProperty[$property['tagevent']['name']];
                // 获取事件名
                $conditions = '';
                $tagEventSytr = '';
                if ($tagEvent) {
                    $tagEventSytr = 'on' . ucwords($tagEvent) . '="' . $this->nodeName . '_' . $controllProperty[$property['fields']['name']] . '_' . $tagEvent . '(this)"';
                }
                $html = "\r\n\t\t\t\t\t{$prefTag}";
                if (!$isreturnvalue) {
                    $viewval = '';
                    if ($controllProperty[$property['subimporttableobj']['name']]) {
                        $conditions = $controllProperty[$property['conditions']['name']];
                        $html .= "{:getControllbyHtml('table',array('type'=>'checkbox','names'=>'{$controllProperty[$property['fields']['name']]}[]','targevent'=>'{$tagEventSytr}','table'=>'{$controllProperty[$property['subimporttableobj']['name']]}','id'=>'{$controllProperty[$property['subimporttablefield2obj']['name']]}','name'=>'{$controllProperty[$property['subimporttablefieldobj']['name']]}','conditions'=>'{$conditions}','selected'=>\$vo['{$controllProperty[$property['fields']['name']]}']))}";
                    } else {
                        $html .= "{:getControllbyHtml('selectlist',array('type'=>'checkbox','names'=>'{$controllProperty[$property['fields']['name']]}[]','targevent'=>'{$tagEventSytr}','key'=>'{$controllProperty[$property['showoption']['name']]}','selected'=>\$vo['{$controllProperty[$property['fields']['name']]}']))}";
                    }
                } else {
                    if ($controllProperty[$property['subimporttableobj']['name']]) {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|excelTplidTonameAppend=" . "'{$controllProperty[$property['subimporttablefield2obj']['name']]}'," . "'{$controllProperty[$property['subimporttablefieldobj']['name']]}'" . ",'{$controllProperty[$property['subimporttableobj']['name']]}'}";
                        $html = $viewval;
                    } else {
                        $viewval = "{\$vo['{$controllProperty[$property['fields']['name']]}']|getSelectlistByName='{$controllProperty[$property['showoption']['name']]}'}";
                        $html = $viewval;
                    }
                    $viewval = '';
                    $islockHtml = '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'radio':
                $checked = "";
                $conditions = '';
                $tagEvent = $controllProperty[$property['tagevent']['name']];
                // 获取事件名
                $tagEventSytr = '';
                if ($tagEvent) {
                    $tagEventSytr = 'on' . ucwords($tagEvent) . '="' . $this->nodeName . '_' . $controllProperty[$property['fields']['name']] . '_' . $tagEvent . '(this)"';
                }
                if (!$isreturnvalue) {
                    $html = "\r\n\t\t\t\t\t{$prefTag}";
                    if ($controllProperty[$property['subimporttableobj']['name']]) {
                        $conditions = $controllProperty[$property['conditions']['name']];
                        $html .= "{:getControllbyHtml('table',array('type'=>'radio','targevent'=>'{$tagEventSytr}','names'=>'{$controllProperty[$property['fields']['name']]}','table'=>'{$controllProperty[$property['subimporttableobj']['name']]}','id'=>'{$controllProperty[$property['subimporttablefield2obj']['name']]}','name'=>'{$controllProperty[$property['subimporttablefieldobj']['name']]}','conditions'=>'{$conditions}','selected'=>\$vo['{$controllProperty[$property['fields']['name']]}']))}";
                    } else {
                        $html .= "{:getControllbyHtml('selectlist',array('type'=>'radio','targevent'=>'{$tagEventSytr}','names'=>'{$controllProperty[$property['fields']['name']]}','key'=>'{$controllProperty[$property['showoption']['name']]}','selected'=>\$vo['{$controllProperty[$property['fields']['name']]}']))}";
                    }
                } else {
                    if ($controllProperty[$property['subimporttableobj']['name']]) {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='" . "{$controllProperty[$property['subimporttablefield2obj']['name']]}'" . ",'{$controllProperty[$property['subimporttablefieldobj']['name']]}'," . "'{$controllProperty[$property['subimporttableobj']['name']]}'}";
                        $html = $viewval;
                    } else {
                        $viewval = "{\$vo['{$controllProperty[$property['fields']['name']]}']|getSelectlistValue='{$controllProperty[$property['showoption']['name']]}'}";
                        $html = $viewval;
                    }
                    // $islockHtml = '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'textarea':
                $html = '';
                $richBoxCls = '';
                if ($controllProperty[$property['isrichbox']['name']]) {
                    $richBoxCls = 'ueditor';
                }
                if (!$isreturnvalue) {
                    $rows = 4;
                    $cols = 100;
                    if ($controllProperty[$property['rows']['name']]) {
                        $rows = $controllProperty[$property['rows']['name']];
                    }
                    if ($controllProperty[$property['cols']['name']]) {
                        $cols = $controllProperty[$property['cols']['name']];
                    }
                    $viewval = $isedit ? "{\$vo['" . $controllProperty[$property['fields']['name']] . "']}" : '';
                    $val = "";
                    if ($viewval) {
                        $textareahtml = "<if condition=\"\$vo['" . $controllProperty[$property['fields']['name']] . "']\">{\$vo['" . $controllProperty[$property['fields']['name']] . "']}<else/>" . $controllProperty[$property['defaultval']['name']] . "</if>";
                    } else {
                        $textareahtml = "";
                    }
                    $html = "\r\n\t\t\t\t\t{$prefTag}<textarea  {$readonlyStr} cols=\"{$cols}\" rows=\"{$rows}\" class=\"{$chtml} text_area {$richBoxCls} {$org}\" name=\"" . $controllProperty[$property['fields']['name']] . "\">" . $textareahtml . "</textarea>";
                    // .$islockHtml;
                } else {
                    if ($controllProperty[$property['isrichbox']['name']]) {
                        $viewval = "{\$vo['{$controllProperty[$property['fields']['name']]}']|richtext2str}";
                    } else {
                        $viewval = "{\$vo['{$controllProperty[$property['fields']['name']]}']}";
                    }
                    $html = $viewval;
                    // $islockHtml = '';
                    // $viewval = '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                if ($controllProperty[$property['isrichbox']['name']]) {
                    $islockHtml = '';
                }
                $html .= $islockHtml;
                break;
            case 'date':
                $style = "";
                $format = '';
                $format1 = '';
                $formatSouce = '';
                if ($controllProperty[$property['format']['name']]) {
                    $formatSouce = $controllProperty[$property['format']['name']];
                } else {
                    $formatSouce = $property['format']['default'];
                }
                if ($formatSouce) {
                    $temp = '';
                    $temp = explode('@', $formatSouce);
                    $format = "format=\"{dateFmt:'" . $temp[0] . "'}\"";
                    if ($temp[1]) {
                        $format1 = "='{$temp[1]}'";
                    }
                }
                if (!$isreturnvalue) {
                    // 直接显示内容的控制阀
                    $isshowresoult = $controllProperty[$property['isshowresoult']['name']];
                    $dateControllCls = '';
                    $dateJsEventTag = ' Wdate js-wdate';
                    $a = 'js-inputCheckDate';
                    // 只读
                    if (!$controllProperty[$property['islock']['name']]) {
                        $a = '';
                        $dateJsEventTag = '';
                        $dateControllCls = $chtml;
                    }
                    if ($isedit) {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|transtime{$format1}}";
                        $html = "\r\n\t\t\t\t\t{$prefTag}";
                        if ($isshowresoult) {
                            $html .= "\r\n\t\t\t\t\t<span class=\"input_new\">{$viewval}</span>";
                        } else {
                            $html .= "\r\n\t\t\t\t\t<div  class=\"tml-input-calendar\">\r\n\t\t\t\t\t<input type=\"text\" name=\"" . $controllProperty[$property['fields']['name']] . "\" class=\"{$required} {$org} input_new half_angle_input {$dateJsEventTag} input_left {$dateControllCls}\" {$format}  {$readonlyStr} value=\"{$viewval}\"/>";
                            $html .= "\r\n\t\t\t\t\t<a href=\"javascript:;\" class=\"icon_elm icon-calendar {$a} \"></a>";
                            $html .= "\r\n\t\t\t\t</div>";
                        }
                    } else {
                        $viewval = '';
                        $html = "\r\n\t\t\t\t\t{$prefTag}";
                        if ($isshowresoult) {
                            $html .= "\r\n\t\t\t\t\t<span class=\"input_new\">{$viewval}</span>";
                        } else {
                            $html .= "\r\n\t\t\t\t\t<div  class=\"tml-input-calendar\">\r\n\t\t\t\t\t<input type=\"text\" name=\"" . $controllProperty[$property['fields']['name']] . "\" class=\"{$required} {$org} input_new half_angle_input {$dateJsEventTag} input_left {$dateControllCls}\" {$format} {$readonlyStr} value=\"{$viewval}\"/>";
                            $html .= "\r\n\t\t\t\t\t<a href=\"javascript:;\" class=\"icon_elm icon-calendar {$a} \"></a>";
                        }
                        $html .= "\r\n\t\t\t\t</div>";
                    }
                } else {
                    $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|transtime{$format1}}";
                    $html = $viewval;
                    // $islockHtml = '';
                    // $viewval= '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'checkfor':
                break;
            case 'lookup':
                $html = '';
                if (!$isreturnvalue) {
                    $lookupchoice = $controllProperty[$property['lookupchoice']['name']];
                    $lookupObj = D('LookupObj');
                    $lookupDetail = $lookupObj->GetLookupDetail($lookupchoice);
                    $model = $lookupDetail['mode'];
                    $orgchar = $lookupDetail['filed'] ? $lookupDetail['filed'] : 'name';
                    $orgval = $lookupDetail['val'] ? $lookupDetail['val'] : 'id';
                    if (1 == $lookupDetail['viewtype'] && $orgval != $orgchar) {
                        $configObj = D('MisSystemDataviewMasView');
                        $viewConfig = $configObj->getViewConf($lookupDetail['viewname']);
                        $searchField = $viewConfig[$orgval]['searchField'];
                        $orderModelArr = explode('.', $searchField);
                        if ($orderModelArr[0] && $searchField) {
                            $tempModel = D($orderModelArr[0]);
                        }
                    } else {
                        $tempModel = D($model);
                    }
                    // 当lookup配置中的存储值与显示一致时不需要做值转换。nbmxkj@20150608 1610
                    $viewval = $isedit ? $orgval == $orgchar ? "{\$vo['" . $controllProperty[$property['fields']['name']] . "']}" : "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='{$orgval}','{$orgchar}','{$tempModel->getTableName()}'}" : '';
                    $html = "\r\n\t\t\t\t\t\t{$prefTag}";
                } else {
                    $func = "";
                    // 处理子表及主表的lookup值转换 , modify by nbmxkj at 20150127 20
                    // *****注意:func 与 funcdata 数组项一定要个数对应。****
                    foreach ($this->datalist as $dkey => $dval) {
                        if ($dval['name'] == $controllProperty[$property['fields']['name']]) {
                            $count = count($dval['func'][0]);
                            if ($dval['func']) {
                                $func .= $dval['func'][0][$count - 1];
                                // if($dval['func'][0][0]="getFieldBy"){
                                $func .= "=";
                                // }
                            }
                            if ($dval['funcdata']) {
                                $func .= "'" . $dval['funcdata'][0][$count - 1][1];
                                if ($dval['funcdata'][0][$count - 1][1]) {
                                    $func .= "','" . $dval['funcdata'][0][$count - 1][2] . "','" . $dval['funcdata'][0][$count - 1][3] . "'}";
                                } else {
                                    $func .= "'}";
                                }
                            }
                        }
                    }
                    if ($func) {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|" . $func;
                    } else {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']}";
                    }
                }
                $html .= "\r\n\t\t\t\t\t\t\t\t{:W('Lookup',array('1',\$vo,'{$controllProperty[$property['id']['name']]}','{$isedit}','{$isreturnvalue}'))}";
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= "\r\n\t\t\t\t\t\t\t\t" . $islockHtml;
                break;
            case 'lookupsuper':
                if (!$isreturnvalue) {
                    // 获取lookup key值 动态加载lookup配置
                    $lookupchoice = $controllProperty[$property['lookupchoice']['name']];
                    $lookupObj = D('LookupObj');
                    $lookupDetail = $lookupObj->GetLookupDetail($lookupchoice);
                    $model = $lookupDetail['mode'];
                    $urls = $lookupDetail['url'];
                    $lookupgroup = $controllProperty[$property['lookupgroup']['name']];
                    $orgchar = $lookupDetail['filed'] ? $lookupDetail['filed'] : 'name';
                    $orgval = $lookupDetail['val'] ? $lookupDetail['val'] : 'id';
                    $orgLookuoVal = $controllProperty[$property['org1']['name']];
                    // 显示绑定
                    $orgLookupText = $controllProperty[$property['org']['name']];
                    // 值绑定
                    $title = "{\$fields[\"" . $controllProperty[$property['fields']['name']] . "\"]}";
                    $view = '';
                    if ($lookupDetail['viewname']) {
                        $view = '&viewname=' . $lookupDetail['viewname'];
                    }
                    if ($lookupDetail['dt']) {
                        $dtcon = '&lookuptodatatable=2';
                    }
                    $conditions = '';
                    $checkformodel = $lookupDetail['checkformodel'];
                    // checkfor的org显示字段
                    $checkfororgchar = $detailList['field'] ? $detailList['field'] : $orgchar;
                    // lookup的org值字段
                    // lookup的值反写
                    $textCounterCheck = '';
                    // 显示文本的反写 text
                    $valCounterCheck = '';
                    // 值的反写 value
                    // lporder 从外部lookup中取值字段
                    // lpkey 当前lookup的key
                    // lpfor 往哪个东西里写值
                    // lpself 当前项的字段名称
                    if ($orgLookuoVal) {
                        unset($temp);
                        $temp = explode('.', $orgLookuoVal);
                        $valCounterCheck = "callback=\"lookup_counter_check\" lpkey=\"{$lookupchoice}\" lpfor=\"{$lookupgroup}.{$orgchar}\" lpself=\"{$orgval}\" lporder=\"{$temp[1]}\"";
                    }
                    if ($orgLookupText) {
                        unset($temp);
                        $temp = explode('.', $orgLookupText);
                        $textCounterCheck = "callback=\"lookup_counter_check\" lpkey=\"{$lookupchoice}\" lpfor=\"{$lookupgroup}.{$orgval}\" lpself=\"{$orgchar}\" lporder=\"{$temp[1]}\"";
                    }
                    // checkfor的列表显示字段
                    $checkfororgshowfield = $detailList['checkfororgshowfield'] ? $detailList['checkfororgshowfield'] : '';
                    // $urls = $controllProperty[$property['geturls']['name']];
                    // $lookupgroup = $controllProperty[$property['lookupgroup']['name']];
                    // $filedback = $controllProperty[$property['filedback']['name']];
                    // $model = $controllProperty[$property['model']['name']];
                    // $checkformodel = $controllProperty[$property['checkformodel']['name']];
                    // $orgchar = $controllProperty[$property['lookuporg']['name']]?$controllProperty[$property['lookuporg']['name']]:'name';
                    // $orgval = $controllProperty[$property['lookuporgval']['name']]?$controllProperty[$property['lookuporgval']['name']]:'id';
                    // checkfor的org显示字段
                    // $checkfororgchar = $controllProperty[$property['checkfororg']['name']]?$controllProperty[$property['checkfororg']['name']]:$orgchar;
                    // checkfororfields
                    // checkfor显示字段
                    // $checkfororgshowfield = $controllProperty[$property['checkfororgshowfield']['name']]?$controllProperty[$property['checkfororgshowfield']['name']]:'';
                    // $conditions = $controllProperty[$property['conditions']['name']]; // auditState,3;status,1;ischange,0
                    // $title = "{\$fields[\"".$controllProperty[$property['fields']['name']]."\"]}";
                    $val = '';
                    $tempModel = D($model);
                    $html = "\r\n\t\t\t\t\t\t{$prefTag}<div class=\"tml-input-lookupSuper\">";
                    if ($readonly) {
                        // checkfor 文本框 $checkfororgchar
                        $html .= "\r\n\t\t\t\t\t\t<input type=\"text\" class=\"{$lookupgroup}.{$checkfororgchar} {$chtml} lookupSuper_input input_new half_angle_input\" autocomplete=\"off\" readonly=\"readonly\"  value=\"" . ($isedit ? "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='{$orgval}','{$orgchar}','{$tempModel->getTableName()}'}" : '') . "\" />";
                    } else {
                        // $html .="\r\n\t\t\t\t\t\t<input type=\"text\" class=\"{$lookupgroup}.{$checkfororgchar} {$chtml} \" autocomplete=\"off\" value=\"".($isedit?"{\$vo['".$controllProperty[$property['fields']['name']]."']|getFieldBy='{$orgval}','{$orgchar}','{$tempModel->getTableName()}'}":'')."\" />";
                        if ($checkfororgshowfield) {
                            $fileds = "array(" . $checkfororgshowfield . ");";
                        } else {
                            $fileds = '';
                        }
                        $html .= "\r\n\t\t\t\t\t\t<input type=\"text\" " . "autocomplete=\"off\" " . "checkfor=\"{$checkformodel}\" " . "insert=\"{$orgval}\" " . "show=\"{$checkfororgchar}\" " . "name=\"{$checkfororgchar}\" " . "newconditions=\"{$conditions}\" " . "fields=\"{$fileds}\" " . "other " . "value=\"" . ($isedit ? "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='id','{$orgchar}','{$tempModel->getTableName()}'}" : '') . "\" " . "class=\"{$lookupgroup}.{$checkfororgchar} checkByInput lookupSuper_input input_new half_angle_input {$chtml}\">";
                    }
                    // checkfor 文本框的隐藏域
                    $html .= "\r\n\t\t\t\t\t\t<input type=\"hidden\" class=\"{$lookupgroup}.{$orgval}\" name=\"" . $controllProperty[$property['fields']['name']] . "\" value=\"{\$vo['" . $controllProperty[$property['fields']['name']] . "']}\" />";
                    if ($readonly) {
                        // 只读情况
                        $viewval = $isedit ? "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='{$orgval}','{$orgchar}','{$tempModel->getTableName()}'}" : '';
                        // lookup 触发按钮
                        $html .= "\r\n\t\t\t\t\t\t<a class=\"icon_elm mid_icon_elm icon-plus\"></a>";
                        // looup 默认显示框
                        $html .= "<input type=\"text\" readonly=\"readonly\" class=\"{$lookupgroup}.{$orgchar} input_new square_input readonly valid\"\tcheck_key=\"othername\" name=\"{$lookupgroup}{$orgchar}\" value=\"" . $viewval . "\">";
                        // 清空 lookup 按钮
                        $html .= "\r\n\t\t\t\t\t\t<a title=\"清空信息\" class=\"icon_elm icon-trash\"  href=\"javascript:void(0);\"></a>";
                    } else {
                        $viewval = $isedit ? "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|getFieldBy='{$orgval}','{$orgchar}','{$tempModel->getTableName()}'}" : '';
                        // lookup 触发按钮
                        $html .= "\r\n\t\t\t\t\t\t<a class=\"icon_elm mid_icon_elm icon-plus\" param=\"lookupchioce={$lookupchioce}&newconditions={$conditions}{$view}{$dtcon}\" href=\"__URL__/{$urls}\" lookupGroup=\"{$lookupgroup}\" ></a>";
                        // $title
                        // looup 默认显示框
                        $html .= "<input type=\"text\" readonly=\"readonly\" class=\"{$lookupgroup}.{$orgchar} textInput input_new square_input readonly valid\"\tcheck_key=\"{$orgchar}\" name=\"{$lookupgroup}{$orgchar}\" value=\"" . $viewval . "\">";
                        // 清空 lookup 按钮
                        // $html .="\r\n\t\t\t\t\t\t<a title=\"清空信息\" class=\"input-addon input-addon-recycle\" href=\"javascript:void(0);\" onclick=\"clearInput('{$checkfororgchar},{$controllProperty[$property['fields']['name']]},{$lookupgroup}{$orgchar}');\"></a>";
                        $html .= "\r\n\t\t\t\t\t\t<a title=\"清空信息\" class=\"icon_elm icon-trash\"  href=\"javascript:void(0);\" onclick=\"clearOrg('{$lookupgroup}');\"></a>";
                    }
                    $html .= "\r\n\t\t\t\t\t\t</div>";
                } else {
                    // $html="{\$vo['".$controllProperty[$property['fields']['name']]."']}";
                    $func = "";
                    // 处理子表及主表的lookup值转换 , modify by nbmxkj at 20150127 20
                    // *****注意:func 与 funcdata 数组项一定要个数对应。****
                    foreach ($this->datalist as $dkey => $dval) {
                        if ($dval['name'] == $controllProperty[$property['fields']['name']]) {
                            $count = count($dval['func'][0]);
                            if ($dval['func']) {
                                $func .= $dval['func'][0][$count - 1];
                                // if($dval['func'][0][0]="getFieldBy"){
                                $func .= "=";
                                // }
                            }
                            if ($dval['funcdata']) {
                                $func .= "'" . $dval['funcdata'][0][$count - 1][1];
                                if ($dval['funcdata'][0][$count - 1][1]) {
                                    $func .= "','" . $dval['funcdata'][0][$count - 1][2] . "','" . $dval['funcdata'][0][$count - 1][3] . "'}";
                                } else {
                                    $func .= "'}";
                                }
                            }
                        }
                    }
                    if ($func) {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']|" . $func;
                        $html = $viewval;
                    } else {
                        $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']}";
                        $html = $viewval;
                    }
                    // $viewval='';
                    // $islockHtml = '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'upload':
                // 数据字段名
                $filedName = $controllProperty[$property['fields']['name']];
                // 组件标题
                $filedTitle = $controllProperty[$property['title']['name']];
                // 上传数量
                $uploadNum = $controllProperty[$property['uploadnum']['name']];
                // 上传类型
                $uploadType = $controllProperty[$property['uploadtype']['name']];
                $param = 'array("0"=>$uploadarry["' . $filedName . '"],"1"=>' . $filedName . ',"2"=>$fields[' . $filedName . '],"3"=>"' . $uploadNum . '","4"=>"' . $uploadType . '")';
                $viewval = '';
                if (!$isreturnvalue) {
                    if ($isedit) {
                        if ($readonly) {
                            $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowUpload',{$param})}";
                        } else {
                            $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowUpload',{$param})}";
                        }
                    } else {
                        $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowUpload',{$param})}";
                    }
                } else {
                    $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowUploadView',{$param})}";
                    // $islockHtml = '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'userselect':
                $viewval = '';
                if (!$isreturnvalue) {
                    if ($isedit) {
                        if ($readonly) {
                            $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowUserSelect',\$attarry)}" . $islockHtml;
                        } else {
                            $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowUserSelect',\$attarry)}" . $islockHtml;
                        }
                    } else {
                        $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowUserSelect')}";
                    }
                } else {
                    // 视图模式
                    // $islockHtml = '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'areainfo':
                $viewval = '';
                // 数据字段名
                $filedName = $controllProperty[$property['fields']['name']];
                // 组件标题
                $filedTitle = $controllProperty[$property['title']['name']];
                // 组件外样式
                $content_cls = "col_" . $controllProperty[$property['titlepercent']['name']] . "_" . $controllProperty[$property['contentpercent']['name']] . " form_group_lay field_" . $controllProperty[$property['fields']['name']];
                $param = 'array("0"=>$areainfoarry["' . $filedName . '"],"1"=>' . $filedName . ',"2"=>$fields[' . $filedName . '],"3"=>"' . $content_cls . '","5"=>"' . $required . '")';
                $viewval = "{\$vo['" . $controllProperty[$property['fields']['name']] . "']}";
                if (!$isreturnvalue) {
                    if ($isedit) {
                        if ($readonly) {
                            $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowArea',{$param})}" . $islockHtml;
                        } else {
                            $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowArea',{$param})}" . $islockHtml;
                        }
                    } else {
                        $html .= "\r\n\t\t\t\t\t\t\t\t{:W('ShowArea',{$param})}";
                    }
                } else {
                    $html = $viewval;
                    // $viewval='';
                    // $islockHtml = '';
                }
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            case 'datatable':
                $viewval = '';
                $titles = <<<EOF
\t
\t\t\t\t<if condition="\$fields['{$controllProperty[$property['fields']['name']]}']">
\t\t\t\t<div class="into_table_title">{\$fields["{$controllProperty[$property['fields']['name']]}"]}</div>
\t\t\t\t</if>
EOF;
                /* 获取字段信息 */
                $filedTag = $property['fieldlist']['name'];
                // 获取配置信息中的标识名称
                // 获取所有节点
                $configPath = $controllProperty;
                $controlName = $controlTag = $controllProperty[$property['fields']['name']];
                // 组件唯一标识 datatable8,......
                $tableName = $this->tableName . '_sub_' . $controlTag;
                $namses = "datatable[#index#][{$controlName}]";
                if ($configPath) {
                    $innerTableFieldInfo = $configPath[$filedTag];
                    // 获取到内嵌表字段设置信息
                }
                $innerTableFieldInfoObj = json_decode(htmlspecialchars_decode($innerTableFieldInfo), true);
                // 得到字段信息json对象数据
                usort($innerTableFieldInfoObj, function ($a, $b) {
                    $al = $a['fieldsort'];
                    $bl = $b['fieldsort'];
                    if ($al == $bl) {
                        return 0;
                    }
                    return $al < $bl ? -1 : 1;
                });
                $innerTableFieldInfoObj = json_decode(json_encode($innerTableFieldInfoObj));
                // 修改及展示 页面组件列表
                $showandeditfieldlist = '';
                $filedList = "";
                $filedList .= "<th style='width:40px;' template_key=\"serial\" >";
                $filedList .= "\t\t\t\t序号";
                $filedList .= "\t\t\t</th>";
                $count = 0;
                $nameKey = '';
                foreach ($innerTableFieldInfoObj as $key => $val) {
                    if ($val->fieldshow == 1) {
                        // 0 允许编辑, 1:不可编辑
                        $isDatatableEdit = intval($val->isedit) ? false : true;
                        $editStatusConfig = '';
                        if (!$isDatatableEdit) {
                            $editStatusConfig = 'is_readonly=true';
                        }
                        $dt_readonly = "";
                        $class_readonly = "";
                        $int_readonly = 1;
                        if ($editStatusConfig) {
                            // 内嵌表控件不可编辑
                            $dt_readonly = "readonly='readonly'";
                            $class_readonly = "readonly";
                            $int_readonly = 0;
                        }
                        $nameKey = "template_controll={$val->fieldname}";
                        switch ($val->fieldshowtype) {
                            case 'text':
                                //查询公式
                                $misDynamicFormDatatableModel = M('mis_dynamic_form_datatable');
                                $datatablemap['id'] = $val->fieldid;
                                $datatableList = $misDynamicFormDatatableModel->where($datatablemap)->find();
                                $validdigit = $datatableList['validdigit'] ? $datatableList['validdigit'] : 2;
                                $fieldname = $datatableList['fieldname'];
                                $calculate = $datatableList['calculate'];
                                $subassembly = $datatableList['subassembly'];
                                $subassemblyArr = explode(',', $subassembly);
                                $formulaType = $datatableList['type'];
                                $formulaJindu = $datatableList['jindu'];
                                //替换id
                                $inputString = "";
                                $FormulArr = array();
                                foreach ($subassemblyArr as $sk => $sval) {
                                    $propertymap['id'] = $sval;
                                    $properyList = $misDynamicFormDatatableModel->where($propertymap)->find();
                                    $name = $properyList['fieldname'];
                                    $FormulArr[$sval] = $name;
                                }
                                // @todo
                                $calculateString = preg_replace_callback('/(\\[(.*?)\\])+/', function ($callbackParame) use($FormulArr) {
                                    return '[' . $FormulArr[$callbackParame[2]] . ']';
                                }, $calculate);
                                $config = '';
                                $orgConfigVal = '';
                                $dataConfig = '';
                                if ($val->fieldshowtypeconfig) {
                                    $config = unserialize(base64_decode($val->fieldshowtypeconfig));
                                }
                                $curCls = '';
                                if (is_array($config)) {
                                    // 将组件属性转换为html代码
                                    $dataConfig = $config['parame'];
                                    // 获取select的配置项
                                    if (!$controllProperty['ganshe_datatable'] && $config['required']) {
                                        $curCls .= ' required ';
                                    }
                                    if ($config['checktype']) {
                                        $curCls .= $config['checktype'];
                                    }
                                }
                                $orgSet = '';
                                if (is_array($dataConfig)) {
                                    $orgConfigVal = $dataConfig[0];
                                    if ($orgConfigVal) {
                                        $orgSet = $orgConfigVal;
                                    }
                                }
                                $untilsCls = '';
                                $unit = $config['baseuntils'];
                                // 基础单位
                                $untils = $config['untils'];
                                // 显示单位
                                $tempData = '';
                                $template_data = '';
                                $orgshowfield = '';
                                logs('org set ::' . $orgSet);
                                if ($orgSet) {
                                    $orgshowfield = str_replace('org', "org{\$key}", $orgSet);
                                    $temp = explode('.', $orgSet);
                                    if (is_array($temp)) {
                                        $template_data['bindlookupname'] = $temp[0];
                                        $template_data['upclass'] = $temp[1];
                                    }
                                }
                                if ($untils && $unit) {
                                    $template_data['unitl'] = $config['untils'];
                                    $template_data['unitlname'] = urlencode(iconv("UTF-8", "UTF-8//IGNORE", $config['untilschar']));
                                }
                                // 添加统计功能
                                // is_stats="true" 统计控制
                                //
                                $stats_num = 'stats_num=\\"2\\"';
                                // 统计时的小数有效位数
                                $is_stats = '';
                                // 统计状态
                                $edit_count_str = '';
                                // 编辑时统计数据
                                $edit_count_cls = '';
                                // 统计的标识样式
                                $y_num = "";
                                if ($datatableList['calculate']) {
                                    $edit_calculate_cls = ' calc ';
                                    // 计算样式
                                    $template_data['formula'] = $calculateString;
                                    $template_data['stats_num'] = $validdigit;
                                    $template_data['formulaType'] = $formulaType;
                                    $template_data['formulaJindu'] = $formulaJindu;
                                }
                                if ($val->fieldcount == 1) {
                                    $is_stats = ' is_stats="true" ';
                                    $edit_count_str = " y_num=\"{\$item[{$val->fieldname}]|unitExchange=###,{$unit},{$untils},2}\"";
                                    $edit_count_cls = ' into_table_tj_input ';
                                    $stats_num = $datatableList['stats_num'] ? "stats_num=\"{$datatableList['stats_num']}\"" : $stats_num;
                                    //"stats_num=\"{$config['stats_num']}\""; // 指定有效位数。
                                    if ($unit && $untils) {
                                        $y_num = "y_num='{\$item[{$val->fieldname}]|unitExchange=###,{$unit},{$untils},2}'";
                                    } else {
                                        $y_num = "y_num='{\$item[{$val->fieldname}]}'";
                                    }
                                }
                                if (is_array($template_data)) {
                                    $tempData = "template_data='" . _urldecode(json_encode($template_data)) . "'";
                                }
                                if ($untils && $unit) {
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t<td>";
                                    $showandeditfieldlist .= <<<EOF
\t\t\t
\t\t\t\t\t\t\t\t\t<div class="list_group_lay" style="display: none;">
\t\t\t\t\t\t\t\t\t\t<div class="list_public_lay">
\t\t\t\t\t\t\t\t\t\t\t<input type="text" {$y_num} {$dt_readonly} class="{$class_readonly} {$orgshowfield} {$edit_calculate_cls}  {$edit_count_cls} {$curCls} list_unit_input list_public_input" {$edit_count_str} disabled="disabled" name="#hide#datatable[#index#][{$controlTag}][{$val->fieldname}]" value="{\$item[{$val->fieldname}]|unitExchange=###,{$unit},{$untils},2}">
\t\t\t\t\t\t\t\t\t\t\t<span class="list_icon_elm_unit" title="{$config['untilschar']}">{$config['untilschar']}
\t\t\t\t\t\t\t\t\t\t\t</span>
\t\t\t\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t\t\t<span class="datatable_show_val">{\$item[{$val->fieldname}]|unitExchange=###,{$unit},{$untils},3}</span>
EOF;
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t</td>";
                                } else {
                                    $showandeditfieldlist .= <<<EOF
\t\t\t\t\t\t\t\t\t\t\t<td>
\t\t\t\t\t\t\t\t\t\t\t<div class="list_group_lay" style="display: none;">
\t\t\t\t\t\t\t\t\t\t\t<input type="text" {$dt_readonly} {$y_num} class="list_input {$class_readonly} {$edit_calculate_cls}  {$untilsCls} {$orgshowfield} {$edit_count_cls} {$curCls}" disabled="disabled" name="#hide#datatable[#index#][{$controlTag}][{$val->fieldname}]" {$untils} value="{\$item[{$val->fieldname}]}" />
\t\t\t\t\t\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t\t\t\t\t\t<span class="datatable_show_val">{\$item[{$val->fieldname}]}</span>
\t\t\t\t\t\t\t\t\t\t\t\t</td>
EOF;
                                }
                                // 统计绑定表头文本框字段
                                $bindhz = "";
                                if ($val->countassignment && $val->fieldcount) {
                                    $bindhz = "bindhz=\"{$val->countassignment}\"";
                                }
                                $filedList .= "\r\n<th {$bindhz} style=\"width:{$val->colwidth}px;min-width:{$val->colwidth}px;min-width:{$val->colwidth}px;\" template_key=\"input\" template_name=\"{$namses}[{$val->fieldname}]\" {$tempData} {$stats_num}";
                                $filedList .= "\r\n{$is_stats} {$editStatusConfig}\ttemplate_class=\"{$untilsCls} {$curCls}\" {$nameKey}>";
                                // unitlpase
                                $filedList .= "\r\n{$val->fieldtitle}";
                                $filedList .= "\r\n</th>";
                                // logs($filedList);
                                break;
                            case 'select':
                                unset($template_data);
                                /*
                                 * template_key="select"
                                 * template_data='[{"value":1,"name":"第一人"},{"value":2,"name":"第二人"}]'
                                 * template_class="code"
                                 */
                                $config = '';
                                if ($val->fieldshowtypeconfig) {
                                    $config = unserialize(base64_decode($val->fieldshowtypeconfig));
                                }
                                $curCls = '';
                                if (is_array($config)) {
                                    // 将组件属性转换为html代码
                                    $lookupConfig = $config['datasouceparame'];
                                    // 获取select的配置项
                                    $lookuptolookupconfig = $config['lookto'];
                                    $dateConfig = $config['parame'];
                                    // 获取select的配置项
                                    if (!$controllProperty['ganshe_datatable'] && $config['required']) {
                                        $curCls .= ' required ';
                                    }
                                    if ($config['checktype']) {
                                        $curCls .= $config['checktype'];
                                    }
                                }
                                // 下拉组件org效果
                                $orgSet = '';
                                if (is_array($dateConfig)) {
                                    $orgConfigVal = $dateConfig['org'];
                                    if ($orgConfigVal) {
                                        $orgSet = $orgConfigVal;
                                    }
                                }
                                if ($orgSet) {
                                    $orgshowfield = str_replace('org', "org{\$key}", $orgSet);
                                    $temp = explode('.', $orgSet);
                                    if (is_array($temp)) {
                                        $template_data['bindlookupname'] = $temp[0];
                                        $template_data['upclass'] = $temp[1];
                                    }
                                }
                                $dateOrgConfig = '';
                                // 对现有DB数据编辑时的 org 属性解析。
                                $orgshowfield = '';
                                if ($orgSet) {
                                    $orgshowfield = str_replace('org', "org{\$key}", $orgSet);
                                    $temp = explode('.', $orgSet);
                                    if (is_array($temp)) {
                                        $template_data['lookupname'] = $temp[0];
                                        $template_data['name'] = $temp[1];
                                    }
                                    $dateOrgConfig = 'bindlookup=\'' . json_encode($template_data) . '\'';
                                }
                                $dataSouceArr = '';
                                $getControllbyHtmlStr = "";
                                if ($lookuptolookupconfig[0]) {
                                    // 如果有lookup带回
                                    $l = array();
                                    foreach ($innerTableFieldInfoObj as $k => $v) {
                                        if ($k == $lookuptolookupconfig[0]) {
                                            $l = unserialize(base64_decode($v->fieldshowtypeconfig));
                                        }
                                    }
                                    $lookmodel = D("LookupObj");
                                    $lookuplist = $lookmodel->GetLookupDetail($l['parame'][0]);
                                    // $lookupParame['lpkey'] = reset($lookupConfig);//$l['parame'][0];
                                    $lookupParame['lporder'] = $l[$lookuptolookupconfig[1]];
                                    // $lookupobjmodel = D("lookupObj");
                                    // $c = reset($lookupConfig);
                                    // $lookuplist = $lookupobjmodel->GetLookupDetail($c);
                                    // $lookupParame['lpfor'] = $lookuplist['val'];
                                    // $lookupParame['lpself'] = $lookuplist['field'];
                                    // lporder 从外部lookup中取值字段
                                    // lpkey 当前lookup的key ?
                                    // lpfor 往哪个东西里写值
                                    // lpself 当前项的字段名称
                                }
                                $template_key = "select";
                                if ($config['datasouce'] == 0) {
                                    // 数据源为 select list
                                    $selectInc = $lookupConfig[0];
                                    // lookup时
                                    if ($lookupParame['lporder']) {
                                        $selectInc = $lookupParame['lporder'];
                                    }
                                    $getControllbyHtmlStr = '{:getControllbyHtml("selectlist",array("type"=>"select","key"=>"' . $selectInc . '"))}';
                                    if ($selectInc) {
                                        $selectlistData = $this->getSelectList($selectInc);
                                        if (is_array($selectlistData[$selectInc])) {
                                            foreach ($selectlistData[$selectInc] as $selk => $selv) {
                                                $temp['value'] = urlencode(iconv("UTF-8", "UTF-8//IGNORE", $selk));
                                                $temp['name'] = urlencode(iconv("UTF-8", "UTF-8//IGNORE", $selv));
                                                $dataSouceArr[] = $temp;
                                            }
                                        }
                                        $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t<td><div style='display: none;' class='list_group_lay'>";
                                        $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<select class=\"list_select2 {$class_readonly} {$orgshowfield} {$curCls} \" data-placeholder=\"没有可用数据\"";
                                        $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t name=\"#hide#datatable[#index#][{$controlTag}][{$val->fieldname}]\">";
                                        $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t{:getControllbyHtml('selectlist',array('type'=>'select','names'=>\"datatable[\$key][{$controlTag}][{$val->fieldname}]\",'key'=>'{$selectInc}','selected'=>\$item['{$val->fieldname}']))}";
                                        $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t</select></div><span class='datatable_show_val'>{:getControllbyHtml('selectlist',array('type'=>'select','names'=>\"datatable[\$key][{$controlTag}][{$val->fieldname}]\",'key'=>'{$selectInc}','selected'=>\$item['{$val->fieldname}'],'showtype'=>1))}</span>";
                                        $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t</td>";
                                    }
                                } else {
                                    // 数据源为 table
                                    if ($lookupConfig[0] && $lookupConfig[1] && $lookupConfig[2]) {
                                        if ($lookupConfig['treeparentfield']) {
                                            $template_key = "selecttree";
                                            // 设置为树形结构
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t<td>";
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<div style='display: none;' class='list_group_lay'>";
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t{:W('ShowSelectDT',array(\$item['{$val->fieldname}'], array(' {$curCls} ',array('type'=>'table',array('readonly'=>'1','targevent'=>'','actionName'=>'{$this->nodeName}','names'=>\"#hide#datatable[#index#][{$controlTag}][{$val->fieldname}]\",'defaultcheckitem'=>'','defaultval'=>'','defaulttext'=>'','table'=>'{$lookupConfig[0]}', 'id'=>'{$lookupConfig[2]}','name'=>'{$lookupConfig[1]}','conditions'=>'','parentid'=>'{$lookupConfig['treeparentfield']}','mulit'=>'{$lookupConfig['mulit']}','isnextend'=>'{$lookupConfig['isnextend']}','treeheight'=>'{$lookupConfig['treeheight']}','treewidth'=>'{$lookupConfig['treewidth']}','key'=>'','isedit'=>'{$int_readonly}','showtype'=>'0','namesappend'=>'{$val->fieldname}#index#')))))}";
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t</div><span class='datatable_show_val'>{:getControllbyHtml('table',array('type'=>'select','names'=>\"datatable[\$key][{$controlTag}][{$val->fieldname}]\",'table'=>{$lookupConfig[0]},'id'=>'{$lookupConfig[2]}','name'=>'{$lookupConfig[1]}','selected'=>\$item['{$val->fieldname}'],'showtype'=>1))}</span>";
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t</td>";
                                            $chkStyle = "radio";
                                            if ($lookupConfig["mulit"] == 1) {
                                                $chkStyle = "checkbox";
                                            }
                                            $isnextend = $lookupConfig['isnextend'] == 1 ? 1 : 0;
                                            $dataSouceArr = '{"treeconfig":' . '{"expandAll":false,' . '"checkEnable":true,' . '"chkStyle":"' . $chkStyle . '",' . '"radioType":"all",' . '"onClick":"S_NodeClick",' . '"onCheck":"S_NodeCheck"},' . '"treeheight":"' . $lookupConfig['treeheight'] . '",' . '"treewidth":"' . $lookupConfig['treewidth'] . '",' . '"treedata":<?php ' . 'echo getControllbyHtml(' . '"table",' . 'array("type"=>"select",' . '"table"=>"' . $lookupConfig[0] . '",' . '"id"=>"' . $lookupConfig[2] . '",' . '"name"=>"' . $lookupConfig[1] . '",' . '"showtype"=>"1",' . '"comboxtree"=>"1",' . '"parentid"=>"' . $lookupConfig['treeparentfield'] . '",' . '"isnextend"=>' . $isnextend . ')); ' . '?>}';
                                        } else {
                                            $obj = M($lookupConfig[0]);
                                            $data = $obj->field("{$lookupConfig[1]} , {$lookupConfig['2']}")->select();
                                            $getControllbyHtmlStr = '{:getControllbyHtml("table",array("type"=>"select","table"=>"' . $lookupConfig[0] . '","id"=>"' . $lookupConfig[2] . '","name"=>"' . $lookupConfig[1] . '"))}';
                                            if ($data) {
                                                foreach ($data as $dk => $dv) {
                                                    $temp['value'] = urlencode(iconv("UTF-8", "UTF-8//IGNORE", $dv[$lookupConfig[2]]));
                                                    $temp['name'] = urlencode(iconv("UTF-8", "UTF-8//IGNORE", $dv[$lookupConfig[1]]));
                                                    $dataSouceArr[] = $temp;
                                                }
                                            }
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t<td>";
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<div style='display: none;' class='list_group_lay'><select class=\"list_select2 {$class_readonly} {$orgshowfield} {$curCls} \" data-placeholder=\"没有可用数据\"";
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t name=\"#hide#datatable[#index#][{$controlTag}][{$val->fieldname}]\">";
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t{:getControllbyHtml('table',array('type'=>'select','names'=>\"datatable[\$key][{$controlTag}][{$val->fieldname}]\",'table'=>'{$lookupConfig[0]}','id'=>'{$lookupConfig[2]}','name'=>'{$lookupConfig[1]}','selected'=>\$item['{$val->fieldname}']))}";
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t</select></div><span class='datatable_show_val'>{:getControllbyHtml('table',array('type'=>'select','names'=>\"datatable[\$key][{$controlTag}][{$val->fieldname}]\",'table'=>'{$lookupConfig[0]}','id'=>'{$lookupConfig[2]}','name'=>'{$lookupConfig[1]}','selected'=>\$item['{$val->fieldname}'],'showtype'=>1))}</span>";
                                            $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t</td>";
                                        }
                                    }
                                }
                                if (empty($getControllbyHtmlStr) && is_array($dataSouceArr)) {
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t<td>";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<div style='display: none;' class='list_group_lay'><select class=\"list_select2 {$class_readonly} {$orgshowfield} {$curCls} \" data-placeholder=\"没有可用数据\"";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t name=\"#hide#datatable[#index#][{$controlTag}][{$val->fieldname}]\">";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t{:getControllbyHtml('table',array('type'=>'select','names'=>\"datatable[\$key][{$controlTag}][{$val->fieldname}]\",'table'=>'{$lookupConfig[0]}','id'=>'{$lookupConfig[2]}','name'=>'{$lookupConfig[1]}','selected'=>\$item['{$val->fieldname}']))}";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t</select></div><span class='datatable_show_val'>{:getControllbyHtml('table',array('type'=>'select','names'=>\"datatable[\$key][{$controlTag}][{$val->fieldname}]\",'table'=>'{$lookupConfig[0]}','id'=>'{$lookupConfig[2]}','name'=>'{$lookupConfig[1]}','selected'=>\$item['{$val->fieldname}'],'showtype'=>1))}</span>";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t</td>";
                                }
                                $template_data = $dataSouceArr;
                                if (is_array($dataSouceArr)) {
                                    $template_data = urldecode(json_encode($dataSouceArr));
                                }
                                // select绑定表头下拉框字段
                                $bindGroup = "";
                                if ($config["selectassignment"]) {
                                    $bindGroup = "bindGroup=\"{$config['selectassignment']}\"";
                                }
                                $filedList .= "\r\n\t\t\t<th {$bindGroup} style=\"width:{$val->colwidth}px;min-width:{$val->colwidth}px;min-width:{$val->colwidth}px;\" template_key='{$template_key}' template_name=\"{$namses}[{$val->fieldname}]\"  {$dateOrgConfig}";
                                $filedList .= "\r\n\t\t\ttemplate_data='{$template_data}' {$editStatusConfig}";
                                $filedList .= "\r\n\t\t\ttemplate_html='{$getControllbyHtmlStr}'";
                                $filedList .= "\r\n\t\t\ttemplate_class=\" {$curCls} \"  {$nameKey}>";
                                $filedList .= "\r\n\t\t\t\t{$val->fieldtitle}";
                                $filedList .= "\r\n\t\t\t</th>";
                                break;
                            case 'date':
                                $config = '';
                                if ($val->fieldshowtypeconfig) {
                                    $config = unserialize(base64_decode($val->fieldshowtypeconfig));
                                }
                                $curCls = '';
                                if (is_array($config)) {
                                    // 将组件属性转换为html代码
                                    $dateConfig = $config['parame'];
                                    // 获取select的配置项
                                    if (!$controllProperty['ganshe_datatable'] && $config['required']) {
                                        $curCls .= ' required ';
                                    }
                                    if ($config['checktype']) {
                                        $curCls .= $config['checktype'];
                                    }
                                }
                                $format = $dateConfig['0'] ? $dateConfig['0'] : 'yyyy-MM-dd';
                                $format1 = '';
                                switch ($format) {
                                    case 'yyyy-MM-dd':
                                        $format1 = "='Y-m-d'";
                                        break;
                                    case 'yyyy-MM-dd HH:mm':
                                        $format1 = "='Y-m-d H:i'";
                                        break;
                                    case 'yyyy-MM':
                                        $format1 = "='Y-m'";
                                        break;
                                    case 'MM-dd':
                                        $format1 = "='m-d'";
                                        break;
                                    case 'yyyy':
                                        $format1 = "='Y'";
                                        break;
                                    case 'MM':
                                        $format1 = "='m'";
                                        break;
                                    case 'dd':
                                        $format1 = "='d'";
                                        break;
                                    case 'HH:mm':
                                        $format1 = "='H:i'";
                                        break;
                                    default:
                                        break;
                                }
                                // 日期组件org效果
                                $orgSet = '';
                                if (is_array($dateConfig)) {
                                    $orgConfigVal = $dateConfig['org'];
                                    if ($orgConfigVal) {
                                        $orgSet = $orgConfigVal;
                                    }
                                }
                                $dateOrgConfig = '';
                                // 对现有DB数据编辑时的 org 属性解析。
                                $orgshowfield = '';
                                if ($orgSet) {
                                    unset($template_data);
                                    $orgshowfield = str_replace('org', "org{\$key}", $orgSet);
                                    $temp = explode('.', $orgSet);
                                    if (is_array($temp)) {
                                        $template_data['lookupname'] = $temp[0];
                                        $template_data['name'] = $temp[1];
                                    }
                                    $dateOrgConfig = 'bindlookup=' . json_encode($template_data);
                                }
                                //
                                $filedList .= "\r\n\t\t\t<th style=\"width:{$val->colwidth}px;min-width:{$val->colwidth}px;min-width:{$val->colwidth}px;\" template_key=\"date\" template_name=\"{$namses}[{$val->fieldname}]\" {$dateOrgConfig} ";
                                $filedList .= "\r\n\t\t\ttemplate_data='{\"format\":\"{$format}\"}' {$editStatusConfig}";
                                $filedList .= "\r\n\t\t\ttemplate_class=\" {$curCls} \"  {$nameKey}>";
                                $filedList .= "\r\n\t\t\t\t{$val->fieldtitle}";
                                $filedList .= "\r\n\t\t\t</th>";
                                $showandeditfieldlist .= <<<EOF
\t
\t\t\t\t\t\t\t\t\t\t\t\t<td>
\t\t\t\t\t\t\t\t\t\t\t\t<div class="list_group_lay" style='display: none;'>
\t\t\t\t\t\t\t\t\t\t\t\t<input type="text" {$dt_readonly} disabled="disabled" name="#hide#datatable[#index#][{$controlTag}][{$val->fieldname}]" class="Wdate js-wdate list_input {$orgshowfield} {$class_readonly}  {$curCls} " format="{dateFmt:'{$format}'}" value="{\$item.{$val->fieldname}|transTime{$format1}}">
\t\t\t\t\t\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t\t\t\t\t\t<span class='datatable_show_val'>{\$item.{$val->fieldname}|transTime{$format1}}</span>
\t\t\t\t\t\t\t\t\t\t\t\t</td>
EOF;
                                break;
                            case 'uploadfilenew':
                                $config = '';
                                if ($val->fieldshowtypeconfig) {
                                    $config = unserialize(base64_decode($val->fieldshowtypeconfig));
                                }
                                $filedList .= "\r\n\t\t\t<th style=\"width:{$val->colwidth}px;min-width:{$val->colwidth}px;min-width:{$val->colwidth}px;\" template_key=\"uploadfilenew\" template_name=\"{$namses}[{$val->fieldname}]\" ";
                                $filedList .= "\r\n\t\t\ttemplate_data='{\"url\":\"__URL__/DT_uploadnew\"}' {$editStatusConfig} ";
                                $filedList .= "\r\n\t\t\ttemplate_class=\"\"  {$nameKey}>";
                                $filedList .= "\r\n\t\t\t\t{$val->fieldtitle}";
                                $filedList .= "\r\n\t\t\t</th>";
                                $uploadFileType = '';
                                if ($isreturnvalue || $editStatusConfig) {
                                    $uploadFileType = 'rel_type="view"';
                                }
                                $fileattlist = $this->getDTAttachedRecordList($tableid, $tablename = '', $subid = 0, $fieldname);
                                $tableModelname = createRealModelName($tableName);
                                $showandeditfieldlist .= <<<EOF
\t\t\t\t\t\t\t<td>
\t\t\t\t\t\t\t<div class="list_group_lay">
\t\t\t\t\t\t\t<div class="js_privyIndex">
\t\t\t\t\t\t\t<a
\t\t\t\t\t\t\ttitle="附件管理"
\t\t\t\t\t\t\tclass="tml_task_btn"
\t\t\t\t\t\t\tstyle="padding:3px 10px;"
\t\t\t\t\t\t\thref="javascript:;"
\t\t\t\t\t\t\tid="DT_upload_{$val->fieldname}#index#"
\t\t\t\t\t\t\trel_index="#index#"
\t\t\t\t\t\t\trel_url="__URL__/DT_uploadnew"
\t\t\t\t\t\t\trel_subid="{\$item['id']}"
\t\t\t\t\t\t\trel_fieldname = "{$val->fieldname}"
\t\t\t\t\t\t\trel_tablename = "{$tableModelname}"
\t\t\t\t\t\t\trel_tableid = "{\$vo['id']}"
\t\t\t\t\t\t\t\t\t\t\t{$uploadFileType}
\t\t\t\t\t\t\t\t\t\t\trel_name="datatable[#index#][{$controlTag}][{$val->fieldname}]"
\t\t\t\t\t\t\t\t\t\t\t\tonclick="DTopenFile(this)">
\t\t\t\t\t\t\t\t\t\t\t\t\t\t附件管理(<span class="attached_count">{\$item.id|getDTCount=\$vo['id'],'{$tableModelname}',###,'{$val->fieldname}'}</span>)
\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a></div></div>
\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
EOF;
                                break;
                            case 'lookup':
                                $lookupParame = '';
                                $config = '';
                                $parme = '';
                                $lookupurl = '';
                                $callbackFileds = '';
                                $modelName = '';
                                $conditionsStr = '';
                                $showFiled = '';
                                $valField = '';
                                $lookupConfig = '';
                                $orgval = '';
                                $appendCondtionStr = '';
                                $appendCondtionArr = array();
                                if ($val->fieldshowtypeconfig) {
                                    $config = unserialize(base64_decode($val->fieldshowtypeconfig));
                                }
                                $curCls = '';
                                if (is_array($config)) {
                                    // 将组件属性转换为html代码
                                    $lookupConfig = $config['parame'];
                                    // 获取lookup等特殊组件的配置项
                                    $lookuptolookupconfig = $config['ltol'];
                                    if (!$controllProperty['ganshe_datatable'] && $config['required']) {
                                        $curCls .= ' required ';
                                    }
                                    if ($config['checktype']) {
                                        $curCls .= $config['checktype'];
                                    }
                                }
                                $dataTableEventControll = $config['fieldname'];
                                if ($lookupConfig[0]) {
                                    // 用户配置了lookup前置对象
                                    // 获取指定项的lookup配置内容
                                    $lookupConfigData = $this->lookuoconfig(false, true);
                                    $lookupConfigData = $lookupConfigData[reset($lookupConfig)];
                                    // fields 带回字段列表
                                    // url 请求地址
                                    // mode 处理Model
                                    // filed 显示字段
                                    // val 值字段
                                    // condition 过滤条件
                                    $lookupurl = '__URL__/' . $lookupConfigData['url'];
                                    // 请求地址
                                    $callbackFileds = "{$lookupConfigData['fields']}";
                                    // 带回字段列表
                                    $modelName = "{$lookupConfigData['mode']}";
                                    // 处理Model
                                    $lookupConfigData['filed'] = $lookupConfigData['filed'] ? $lookupConfigData['filed'] : 'name';
                                    $showFiled = "{$lookupConfigData['filed']}";
                                    // 显示字段
                                    $lookupConfigData['val'] = $lookupConfigData['val'] ? $lookupConfigData['val'] : "id";
                                    $valField = "{$lookupConfigData['val']}";
                                    // 值字段
                                    if (1 == $lookupConfigData['viewtype']) {
                                        $configObj = D('MisSystemDataviewMasView');
                                        $viewConfig = $configObj->getViewConf($lookupConfigData['viewname']);
                                        $searchField = $viewConfig[$valField]['searchField'];
                                        $orderModelArr = explode('.', $searchField);
                                        if ($orderModelArr[0] && $searchField) {
                                            $tempModel = D($orderModelArr[0]);
                                        }
                                    } else {
                                        $tempModel = D($lookupConfigData['mode']);
                                    }
                                    $modelName = $tempModel->getTableName();
                                    // throw new NullDataExcetion(var_dump($modelName));
                                    $conditionsStr = '';
                                    // $lookupConfigData['condition'] ? preg_replace("/'/", '&#39;', $lookupConfigData['condition']).' and ' : '';
                                    // $parme[]="field={$lookupConfigData['fields']}";
                                    // $parme[]="model={$lookupConfigData['mode']}";
                                    // //////////////////////////////////////////////////////////////////////////////////////
                                    // lookup附加条件处理
                                    $appendCondtion = '';
                                    $sysFieldFmt = '';
                                    $sysFieldList = '';
                                    $formFiledList = '';
                                    $fd = '';
                                    $formFiledListArr = '';
                                    $formFiledFmt = '';
                                    $appendCondtionArr = '';
                                    $appendCondtionStr = '';
                                    // iscontrollchange
                                    // {:getAppendCondition($vo,'wenbenkuang,createtime')}
                                    $appendCondtion = $config['dateconditions'];
                                    // 附加条件设置信息
                                    logs($dataTableEventControll . '::::' . arr2string($appendCondtion), 'fffffffffffffffffffff');
                                    if ($appendCondtion) {
                                        $appendCondtion = unserialize(base64_decode($appendCondtion));
                                        // proexp 表单字段列表
                                        // sysexp 系统字段列表
                                        $formFiledList = $appendCondtion['proexp'];
                                        $sysFieldList = $appendCondtion['sysexp'];
                                        // $formFiledFmt=array();
                                        // $sysFieldFmt = array();
                                        $sysFieldFmt = unserialize($sysFieldList) or array();
                                        // 获取真实的表单字段名。
                                        if ($formFiledList) {
                                            $formFiledListArr = unserialize($formFiledList) or array();
                                            if (is_array($formFiledListArr) && count($formFiledListArr)) {
                                                $formFiledKey = array_keys($formFiledListArr);
                                                $properModel = M('mis_dynamic_form_propery');
                                                $properMap['id'] = array('in', $formFiledKey);
                                                $fd = $properModel->where($properMap)->field('fieldname,id')->select();
                                                if ($fd) {
                                                    foreach ($fd as $k => $v) {
                                                        // $fieldArr[] = $v['fieldname'];
                                                        if ($formFiledListArr[$v['id']] == -1) {
                                                            $formFiledFmt[$v['fieldname']] = $v['fieldname'];
                                                        } else {
                                                            $formFiledFmt[$v['fieldname']] = $formFiledListArr[$v['id']];
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        if (is_array($sysFieldFmt) && is_array($formFiledFmt)) {
                                            $appendCondtionArr = array_merge($sysFieldFmt, $formFiledFmt);
                                        } elseif (is_array($sysFieldFmt) && !is_array($formFiledFmt)) {
                                            $appendCondtionArr = $sysFieldFmt;
                                        } elseif (!is_array($sysFieldFmt) && is_array($formFiledFmt)) {
                                            $appendCondtionArr = $formFiledFmt;
                                        } else {
                                            $appendCondtionArr = array();
                                        }
                                        $appendCondtionStr = arr2string($appendCondtionArr);
                                        $appendCondtionStr = "<?php echo getAppendCondition(\$vo,{$appendCondtionStr}) ?>";
                                    }
                                    $parme[] = "lookupchoice=" . reset($lookupConfig) . '&type=dt';
                                    $parme[] = "newconditions={$conditionsStr}{$appendCondtionStr}";
                                    // getAppendCondition
                                    if ($lookuptolookupconfig[0]) {
                                        // 如果有lookup带回lookup
                                        $ll = array();
                                        // lporder 从外部lookup中取值字段
                                        $lookupParame1['lporder'] = "ORG" . $lookuptolookupconfig[0];
                                        // lpkey 当前lookup的key
                                        $lookupParame1['lpkey'] = reset($lookupConfig);
                                        // lporder 从外部lookup中取值字段
                                        // lpkey 当前lookup的key ?
                                        // lpfor 往哪个东西里写值
                                        // lpself 当前项的字段名称
                                    }
                                }
                                $orgval = $lookupConfig[1];
                                // ? $lookupConfig[1] : 'org_'.$val->fieldname.rand(1, 100);
                                $onEditParame = '';
                                $paramStr = '';
                                if (is_array($parme)) {
                                    $paramStr = join('&', $parme);
                                    $onEditParame = join('&', $parme);
                                }
                                // 拼接lookup参数
                                $lookupParame['upclass'] = $showFiled;
                                $lookupParame['callback'] = 'lookup_counter_check';
                                //'lookupDataToCell';
                                $lookupParame['param'] = $paramStr;
                                $lookupParame['condition'] = array_flip($appendCondtionArr);
                                // $appendCondtionArr;//
                                $lookupParame['lookupname'] = $orgval;
                                $lookupParame['href'] = $lookupurl;
                                $lookupParame['hidden_data'] = array(array('upclass' => $valField, 'name' => "{$namses}[{$val->fieldname}]"));
                                // 回写 lookup中指定的值字段名。当前字段名。lookup->lookup
                                if ($lookuptolookupconfig[0]) {
                                    $lookupParame['bindlookupname'] = 'org' . $lookuptolookupconfig[0];
                                    $lookupParame['lporder'] = $lookuptolookupconfig[1];
                                    //$lookupParame1 ['lporder'];
                                    $lookupParame['lpkey'] = $lookupParame1['lpkey'];
                                    $lookupParame['hidden_data'] = array(array('upclass' => $valField, 'name' => "{$namses}[{$val->fieldname}]", "lporder" => $lookuptolookupconfig[1]));
                                }
                                $filedList .= "\r\n\t\t\t<th style=\"width:{$val->colwidth}px;min-width:{$val->colwidth}px;min-width:{$val->colwidth}px;\" template_key=\"lookup\" \r\n ";
                                $filedList .= "\r\n \t\t\ttemplate_name=\"\" \r\n ";
                                $filedList .= "\r\n\t\ttemplate_data='" . urldecode(json_encode($lookupParame)) . "' {$editStatusConfig} \r\n";
                                $filedList .= "\r\n\t\t\ttemplate_class=\" {$curCls} \"  {$nameKey}>";
                                $filedList .= "\r\n\t\t\t\t{$val->fieldtitle}";
                                $filedList .= "\r\n\t\t\t</th>";
                                // org 没设定哦。
                                $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t<td>";
                                $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<div class='list_group_lay' style='display: none;'><div class=\"list_public_lay\">";
                                $lookupvaluechange = '';
                                if ($valField && $showFiled && $modelName) {
                                    $lookupvaluechange = "{\$item.{$val->fieldname}|getFieldBy='{$valField}','{$showFiled}','{$modelName}'}";
                                } else {
                                    $lookupvaluechange = "{\$item.{$val->fieldname}}";
                                }
                                if ($editStatusConfig) {
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"text\" callback=\"\" class=\"list_public_input list_lookup_input readonly org{\$key}{$val->fieldname}.{$showFiled} \" readonly=\"readonly\" value=\"{$lookupvaluechange}\">";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"hidden\" class=\"org{\$key}{$val->fieldname}.{$valField} {$curCls}\" disabled=\"disabled\" name=\"#hide#datatable[#index#][{$controlTag}][{$val->fieldname}]\" value=\"{\$item.{$val->fieldname}}\">";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<a class=\"list_icon_elm list_mid_icon_elm icon-plus\"></a>";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<a title=\"清空信息\" class=\"list_icon_elm icon-trash\" href=\"javascript:void(0);\"></a>";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t</div></div>";
                                } else {
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"text\" callback=\"\" class=\"list_public_input list_lookup_input readonly org{\$key}{$val->fieldname}.{$showFiled} \" readonly=\"readonly\" value=\"{$lookupvaluechange}\">";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"hidden\" class=\"org{\$key}{$val->fieldname}.{$valField} {$curCls}\" disabled=\"disabled\" name=\"#hide#datatable[#index#][{$controlTag}][{$val->fieldname}]\" value=\"{\$item.{$val->fieldname}}\">";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<a class=\"list_icon_elm list_mid_icon_elm icon-plus\" param=\"{$onEditParame}\" href=\"{$lookupurl}\" lookupgroup=\"org{\$key}{$val->fieldname}\" autocomplete=\"off\"></a>";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<a title=\"清空信息\" class=\"list_icon_elm icon-trash\" href=\"javascript:void(0);\" onclick=\"clearOrg('org{\$key}{$val->fieldname}');\"></a>";
                                    $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t</div></div>";
                                }
                                $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t\t<span class='datatable_show_val'>{$lookupvaluechange}</span>";
                                $showandeditfieldlist .= "\r\n\t\t\t\t\t\t\t\t\t\t</td>";
                                break;
                        }
                        $count++;
                    }
                }
                // logs($count);
                // table 组件的操作类型设置@20141211 nbmxkj
                $tableoprate = '';
                $container = '';
                $containerend = '';
                $oprateItem = '';
                $dataTableModelName = createRealModelName($tableName);
                $tableOprateTitle = <<<EOF
\t\t\t\t<th style='width:90px;' template_data='{"table":"{$controlName}","post_table":"{$tableName}","post_url":"__URL__/onesave","del_url":"__URL__/delsubinfo/delmodel/{$dataTableModelName}"}' template_key="action">操作</th>
EOF;
                $tableOprateContent = <<<EOF
\t
\t\t\t\t<td {$oprateItem}>
\t\t\t\t\t\t<input type="hidden" name="#hide#datatable[#index#][{$controlTag}][id]" value="{\$item.id}" />
\t\t\t\t\t\t<button title="删除" type="button" class="into_table_new_trash_tr into_table_btn itb_del" del_url="__URL__/delsubinfo/delmodel/{$dataTableModelName}" del_id="{\$item.id}" del_table="{$tableName}"  nbmonclick="del_sub_info('{$this->nodeName}','{$tableName}',{\$item.id},this)">
\t\t\t\t\t\t<span class="icon-remove"></span></button>
\t\t\t\t\t\t<button post_id="{\$item.id}" post_url="__URL__/onesave" post_id="{\$item.id}" post_table="{$tableName}" rel_type="edit" class="save_row_btn" type="button" title="编辑"><span class="icon-pencil"></span></button>
\t\t\t\t\t</td>
EOF;
                if ($isreturnvalue) {
                    $tableoprate = 'view';
                    $tableOprateContent = '';
                    $tableOprateTitle = '';
                    // $container='<div class="temp_cell_right">';
                    // $containerend='</div>';
                    $oprateItem = 'style="display:none"';
                } else {
                    if ($isedit) {
                        $tableoprate = 'edit';
                    } else {
                        $tableoprate = 'add';
                    }
                }
                $datatableID = 'dt_' . $controlName . rand_string() . '_' . $tableoprate;
                $orgTag = $controllProperty[$property['org']['name']];
                // 获取数据表格的数据带回绑定标识
                $dataTableCallBackFunc = 'nbm_datatable_callback';
                $datatableLookupInsertDataTag = '';
                if ($orgTag) {
                    // 取得组件记录的ID值。
                    $propertyid = $controllProperty[$property['id']['name']];
                    // 从这个表中得到对应关系 。 `mis_dynamic_form_indatatable`
                    // datafieldname:当前这个数据表格的字段名。
                    // datainfieldname:这个是 带回数据表格中取值的字段名。
                    // 允许组合方式:{datafieldname:datainfieldname},
                    // datafieldname: a, b , c ,d
                    // datainfieldname: e , f ,g ,h
                    // {a:e},{b:e},{c:e}
                    // 在需要回绑表时将数据的key带回数据的表名)查询出来。即当前表关联信息中记录的表
                    $relationData = $controllProperty[$property['dtlookup']['name']];
                    $relationData = unserialize(base64_decode($relationData));
                    $relationDataTableName = key($relationData);
                    $relation = reset($relationData);
                    $relation = $relation['list'];
                    $relation = json_encode($relation);
                    // dtkey: 从哪个表中的得数据。
                    // dtid:当前这个数据表格的ID值
                    // dtrelation:字段对应关系
                    $datatableLookupInsertDataTag = <<<EOF
\t\t\t\t\t\t\t
\t\t\t\t\t\t<input style="display:none;" type="text" value="datatableinsert" class="{$orgTag}.datatable_data" dtrelation='{$relation}' dtkey="{$relationDataTableName}" dtid="{$datatableID}" callback="{$dataTableCallBackFunc}" />
EOF;
                }
                $temp = <<<EOF
\t
\t\t\t\t\t\t\t\t\t\t\t\t{$container}
\t\t\t\t\t\t\t\t\t\t\t\t<div class="into_table_lay">
\t\t\t\t\t\t\t\t\t\t\t\t{$datatableLookupInsertDataTag}
\t\t\t\t\t\t\t\t\t\t\t\t{$titles}
\t\t\t\t\t\t\t\t\t\t\t\t<table class="into_table_new nbm_data_table" table_data='{"formModel":"{$this->nodeName}","datatableModel":"{$dataTableModelName}","importUrl":"__APP__/MisImportExcel/misimportexceladd"}' id="{$datatableID}" table_type="{$tableoprate}">
\t\t\t\t\t\t\t\t\t\t\t\t<thead>
\t\t\t\t\t\t\t\t\t\t\t\t<tr class="thead_tr">
\t\t\t\t\t\t\t\t\t\t\t\t{$filedList}
\t\t\t\t\t\t\t\t\t\t\t\t{$tableOprateTitle}
\t\t\t\t\t\t\t\t\t\t\t\t</tr>
\t\t\t\t\t\t\t\t\t\t\t\t</thead>
\t\t\t\t\t\t\t\t\t\t\t\t<tbody cellpadding="0" cellspacing="1">
EOF;
                /**
                 * *************现有数据的修改展示*****************************
                 */
                $temp .= <<<EOF
\t
\t\t\t\t\t\t\t\t\t\t\t\t{~\$key=0;}
\t\t\t\t\t\t\t\t\t\t\t\t<volist name="innerTabelObj{$controlTag}Data" id="item">
\t\t\t\t\t\t\t\t\t\t\t\t<tr>
\t\t\t\t\t\t\t\t\t\t\t\t<td>
\t\t\t\t\t\t\t\t\t\t\t\t<span class="serial_number">
\t\t\t\t\t\t\t\t\t\t\t\t{\$key+1}
\t\t\t\t\t\t\t\t\t\t\t\t</span>
\t\t\t\t\t\t\t\t\t\t\t\t</td>
\t\t\t\t\t\t\t\t\t\t\t\t<!-- 现有数据 -->
\t\t\t\t\t\t\t\t\t\t\t\t{$showandeditfieldlist}
\t\t\t\t\t\t\t\t\t\t\t\t{$tableOprateContent}
\t\t\t\t\t\t\t\t\t\t\t\t</tr>
\t\t\t\t\t\t\t\t\t\t\t\t{~\$key++}
\t\t\t\t\t\t\t\t\t\t\t\t</volist>
EOF;
                /**
                 * *****************现有数据呈现end*************************
                 */
                $temp .= "\t</tbody>";
                /*
                 * $temp .="	<tfoot>";
                 * $temp .="		<tr>";
                 * $temp .="			<td colspan=\"".($count+2)."\">";
                 * $temp .="				<span class=\"right\">";
                 * $temp .="					<input class=\"add_col_input\" type=\"text\" />";
                 * $temp .="					<a class=\"add_col_btn\" href=\"#\">";
                 * $temp .="						新增行";
                 * $temp .="					</a>";
                 * $temp .="				</span>";
                 * $temp .="			</td>";
                 * $temp .="		</tr>";
                 * $temp .="	</tfoot>";
                 */
                $temp .= "</table></div>{$containerend}";
                $html = $temp;
                $islockHtml = parameReplace('$viewval', $viewval, $islockHtml);
                $html .= $islockHtml;
                break;
            default:
                $html = '';
        }
        return $html;
    }