• ThinkPHP关于模板的一些嵌套、IF判断使用


    前言,现在有一组数据(涉及到3个数据表,order订单表,order_process办理流程表,process_status流程描述表),根据当前订单,展示相应信息

    1.办理流程部分数据:

    image

    2.流程状态部分数据:

    image

    3.期望达到效果如下:

    image


    这里就需要用到几个部分的技巧结合

    一般的循环嵌套使用
    <volist name="list" id="vo">
        <volist name="vo['sub']" id="sub">
            {$sub.name}
        </volist>
    </volist>
    

    其中第二个volist的name属性,也可以写作name="vo.sub"

    IF判断使用

    常用的判断中,不允许使用<,>,=之类的符号,改为:

    标签 含义
    eq或者equal 等于
    neq或者notequal 不等于
    gt 大于
    egt 大于等于
    lt 小于
    elt 小于等于
    heq 恒等于
    nheq 不恒等于
    1. <eq name="name" value="value">value</eq>
    

    比较标签中的变量可以支持对象的属性或者数组,甚至可以是系统变量,例如: 当vo对象的属性(或者数组,或者自动判断)等于5就输出

    2 .<eq name="vo.name" value="5">
       {$vo.name}
       </eq>
    
    3.  <!-- 附加说明 判断数组大小-->
        <if condition="count($vo['additional']) gt 1">
            附加说明:
            <else /> other Framework
        </if>
    
    4.  <!-- 附加说明 判断数组大小-->
        <if condition="strlen($vo['additional']['0']) gt 1">
            附加说明:
            <else /> other Framework
        </if>
    

    参考php

    public function orderDetail($id, $userId) {
            $param['id'] = $id;
            $order = M('reorder')->where($param)->find();
            //0.更新订单被查看的信息:查看人、查看时间
            $watch['userId'] = $userId;
            $watch['posttime2'] = time();
            M('reorder')->where($param)->save($watch);
    
            //获取当前项目的默认办理流程
            $where['projectid'] = $order['projectid'];
            $immiprogram = M('reimmiprogram')->where($where)->find();
            $orderStatus = M('reorderstatus')->where($where)->find();
            $orderStatus['status'] = explode('|',$orderStatus['status']);
    
            //查找已经完成的办理流程
            $param_process['orderid'] = $order['orderid'];
            $param_process['isfinish'] = 'true';
            $status1 = M('reorderprocess')->where($param_process)->order('posttime')->select();
            //根据当前订单状态,分割orderStatus
            $param_process['isfinish'] = 'false';
            $status2 = M('reorderprocess')->where($param_process)->order('posttime')->select();
           //$this->ajaxJSON($status2);
            //判断附加说明,是否含分隔符
            foreach ($status1 as $key => &$value) {
                $value['additional'] = explode("|",$value['additional']);
            }
    
            foreach ($status2 as $key => &$item) {
                $item['additional'] = explode("|",$item['additional']);
            }
            //$this->ajaxJSON($status1);
    
            $status3 = array();
            $least = count($status1)+count($status2);
            foreach ($orderStatus['status'] as $key => $value) {
                //当前正在办理的事项
                if($key > $least){
                    array_push($status3,$value);
                }
            }
            //查找最新的流程附加信息
            $param_newest['orderid'] = $order['orderid'];
            $process_newest = M('reorderprocess')->where($param_newest)->order('posttime desc')->find();
    
            $counts = array();
            array_push($counts,0);
            array_push($counts,count($status1));
            array_push($counts,count($status1)+count($status2));
            $this->assign('order',$order);
            $this->assign('immiprogram',$immiprogram);
            $this->assign('orderStatus',$orderStatus);
            $this->assign('process_newest',$process_newest);
            $this->assign('status1',$status1);
            $this->assign('status2',$status2);
            $this->assign('status3',$status3);
            $this->assign('counts',$counts);
    
            $this->display();
        }
    

    参考json数据status1

    [
        {
            "id": "135",
            "orderid": "2017YH1001",
            "status": "签约",
            "isfinish": "true",
            "additional": [
                "客户上门拜访签约的"
            ],
            "posttime": "1491321600",
            "recorder": "Candy",
            "checkinfo": "true",
            "update_time": "2017-05-10 14:37:08",
            "create_time": "2017-04-05 00:00:00"
        },
        {
            "id": "136",
            "orderid": "2017YH1001",
            "status": "缴纳服务费",
            "isfinish": "true",
            "additional": [
                ""
            ],
            "posttime": "1491321600",
            "recorder": "Candy",
            "checkinfo": "true",
            "update_time": "2017-04-05 00:00:00",
            "create_time": "2017-04-05 00:00:00"
        },
        {
            "id": "137",
            "orderid": "2017YH1001",
            "status": "提交移民信息表",
            "isfinish": "true",
            "additional": [
                ""
            ],
            "posttime": "1491408000",
            "recorder": "Candy",
            "checkinfo": "true",
            "update_time": "2017-04-06 00:00:00",
            "create_time": "2017-04-06 00:00:00"
        },
        {
            "id": "138",
            "orderid": "2017YH1001",
            "status": "收集材料",
            "isfinish": "true",
            "additional": [
                ""
            ],
            "posttime": "1491408000",
            "recorder": "Candy",
            "checkinfo": "true",
            "update_time": "2017-04-06 00:00:00",
            "create_time": "2017-04-06 00:00:00"
        },
        {
            "id": "139",
            "orderid": "2017YH1001",
            "status": "材料制作",
            "isfinish": "true",
            "additional": [
                ""
            ],
            "posttime": "1491408000",
            "recorder": "Candy",
            "checkinfo": "true",
            "update_time": "2017-04-06 00:00:00",
            "create_time": "2017-04-06 00:00:00"
        },
        {
            "id": "149",
            "orderid": "2017YH1001",
            "status": "递交申请",
            "isfinish": "true",
            "additional": [
                ""
            ],
            "posttime": "1491753600",
            "recorder": "Candy",
            "checkinfo": "true",
            "update_time": "2017-04-10 00:00:00",
            "create_time": "2017-04-10 00:00:00"
        },
        {
            "id": "150",
            "orderid": "2017YH1001",
            "status": "获得档案编号",
            "isfinish": "true",
            "additional": [
                ""
            ],
            "posttime": "1492012800",
            "recorder": "Candy",
            "checkinfo": "true",
            "update_time": "2017-04-13 00:00:00",
            "create_time": "2017-04-13 00:00:00"
        },
        {
            "id": "151",
            "orderid": "2017YH1001",
            "status": "已补件到香港入境处",
            "isfinish": "true",
            "additional": [
                "2017.02.27 补录资料",
                "2017.03.24 补录资料 "
            ],
            "posttime": "1493827200",
            "recorder": "Candy",
            "checkinfo": "true",
            "update_time": "2017-05-10 13:45:48",
            "create_time": "2017-05-04 00:00:00"
        },
        {
            "id": "152",
            "orderid": "2017YH1001",
            "status": "已补入资料",
            "isfinish": "true",
            "additional": [
                ""
            ],
            "posttime": "1494432000",
            "recorder": "Candy",
            "checkinfo": "true",
            "update_time": "2017-05-11 00:00:00",
            "create_time": "2017-05-11 00:00:00"
        },
        {
            "id": "153",
            "orderid": "2017YH1001",
            "status": "获得原则性批准信",
            "isfinish": "true",
            "additional": [
                ""
            ],
            "posttime": "1502208000",
            "recorder": "Candy",
            "checkinfo": "true",
            "update_time": "2017-05-10 14:43:03",
            "create_time": "2017-08-09 00:00:00"
        }
    ]
    

    参考html

    <li class="descriptionDetailList">
        <ul class="descriptionUl1">
            <volist name="status1" id="vo">
                <li class="clearfix">
                    <h5 class="finishedH5">{$counts['0']+$key+1}</h5>
                    <div class="finishedSchedule">
                        <p>{$vo.status}</p>
                        <span>完成时间:{$vo.posttime|date="Y-m-d",###}</span>
                        <!-- 附加说明 判断数组大小-->
                        <if condition="strlen($vo['additional']['0']) gt 1">
                            <p><span>附加说明:</span></p>
                            <else />
                        </if>
                        <volist name="vo.additional" id="vo2">
                             <span>{$vo2}</span> <br/>
                        </volist>
                    </div>
                    <span class="finished">【完成】</span>
                </li>
            </volist>
    
            <volist name="status2" id="vo">
                <li class="clearfix">
                    <h5 class="underwayH5">{$counts['1']+$key+1}</h5>
                    <div class="underwaySchedule">
                        <p>{$vo.status}</p>
                        <span>进行中......</span>
                        <!-- 附加说明 判断数组大小-->
                        <if condition="strlen($vo['additional']['0']) gt 1">
                            <p><span>附加说明:</span></p>
                            <else />
                        </if>
                        <volist name="vo.additional" id="vo2">
                            <span>{$vo2}</span> <br/>
                        </volist>
                    </div>
                    <span class="underway">【详情】</span>
                </li>
            </volist>
    
            <volist name="status3" id="vo">
                <li class="clearfix">
                    <h5 class="beforeH5">{$counts['2']+$key+1}</h5>
                    <div class="beforeSchedule">
                        <p>{$vo}</p>
                        <span>未开始</span>
                    </div>
                    <span class="before">......</span>
                </li>
            </volist>
    
        </ul>
    </li>
    
  • 相关阅读:
    元素显示v-show
    条件渲染v-if
    v-bind:class
    Class绑定v-bind:class
    设定计算属性setter
    观察属性$watch
    计算属性computed
    过滤器filters
    jk_proxy实现apache+tomcat负载均衡
    (WPF)Storyboard
  • 原文地址:https://www.cnblogs.com/chq3272991/p/6835673.html
Copyright © 2020-2023  润新知