form_table.html 24.8 KB
Newer Older
D
devil 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
<div class="am-scrollable-horizontal am-table-scrollable-horizontal am-margin-top-sm">
    <table class="am-table am-table-striped am-table-hover am-table-bordered am-text-nowrap form-table-data-list">
        <thead>
            <tr>
                {{foreach $form_table['form'] as $t}}
                    {{if !isset($t['is_list']) or $t['is_list'] eq 1}}
                        <!-- 1. 上下居中 -->
                        <!-- 2. 格子大小 -->
                        <!-- 3. 内容位置居(左|中|右) -->
                        <!-- 4. 格子是否固定(left|right 左|右) -->
                        <th class="
                            {{if !isset($t['is_middle']) or $t['is_middle'] eq 1}}am-text-middle {{/if}}
                            {{if !empty($t['grid_size'])}}am-grid-{{$t.grid_size}} {{/if}}
                            {{if !empty($t['align'])}}am-text-{{$t.align}} {{/if}}
                            {{if !empty($t['fixed'])}}am-grid-fixed-{{$t.fixed}} {{/if}}
                            {{if !empty($t['view_type']) and $t['view_type'] eq 'operate'}}am-operate-grid {{/if}}
                        "
                        style="
                            {{if !empty($t['width'])}}
                                min-width: {{$t.width}}px;
                            {{/if}}
                        "
                        >
                            {{switch $t.view_type}}
                                {{case checkbox}}
                                    <button type="button" class="am-btn am-btn-secondary am-radius am-btn-xs form-table-operate-checkbox-submit" data-value="{{if isset($t['is_checked']) and $t['is_checked'] eq 1}}1{{else /}}0{{/if}}" data-checked-text="{{$t.checked_text}}" data-not-checked-text="{{$t.not_checked_text}}" {{if empty($data_list)}}disabled{{/if}}>{{if isset($t['is_checked']) and $t['is_checked'] eq 1}}{{$t.checked_text}}{{else /}}{{$t.not_checked_text}}{{/if}}</button>
                                {{/case}}
                                {{default /}}
                                    {{if isset($t['label'])}}{{$t.label}}{{/if}}
                            {{/switch}}
                        </th>
                    {{/if}}
                {{/foreach}}
            </tr>

            <!-- search -->
            {{if isset($form_table['base']['is_search']) and $form_table['base']['is_search'] eq 1}}
                <tr class="form-table-search">
                    {{foreach $form_table['form'] as $k=>$t}}
                        {{if !isset($t['is_list']) or $t['is_list'] eq 1}}
                            <td class="
                                {{if !isset($t['is_middle']) or $t['is_middle'] eq 1}}am-text-middle {{/if}}
                                {{if !empty($t['grid_size'])}}am-grid-{{$t.grid_size}} {{/if}}
                                {{if !empty($t['align'])}}am-text-{{$t.align}} {{/if}}
                                {{if !empty($t['fixed'])}}am-grid-fixed-{{$t.fixed}} {{/if}}
                                {{if !empty($t['view_type']) and $t['view_type'] eq 'operate'}}am-operate-grid {{/if}}
                            "
                            style="
                                {{if !empty($t['width'])}}
                                    min-width: {{$t.width}}px;
                                {{/if}}
                            "
                            >
                                {{if !empty($t['search_config']) and !empty($t['search_config']['form_type']) and !empty($t['search_config']['form_name'])}}
                                    {{switch $t.search_config.form_type}}
                                        {{case input}}
                                            <!-- 输入 -->
                                            <input type="text" class="am-form-field am-radius" autocomplete="off" name="{{$t.form_key}}" value="{{if !empty($form_params) and isset($form_params[$t['form_key']])}}{{$form_params[$t['form_key']]}}{{/if}}" placeholder="{{if isset($t['search_config']['placeholder'])}}{{$t.search_config.placeholder}}{{/if}}" />
                                        {{/case}}
                                        {{case select}}
                                            <!-- 选择 -->
                                            <select name="{{$t.form_key}}" class="chosen-select am-text-left" data-placeholder="{{if isset($t['search_config']['placeholder'])}}{{$t.search_config.placeholder}}{{/if}}" {{if isset($t['search_config']['is_multiple']) and $t['search_config']['is_multiple'] eq 1}}multiple{{/if}}>
                                                {{if isset($t['search_config']['is_seat_select']) and $t['search_config']['is_seat_select'] eq 1 and (!isset($t['search_config']['is_multiple']) or $t['search_config']['is_multiple'] neq 1)}}
                                                    <option value="{{if isset($t['search_config']['seat_select_value'])}}{{$t.search_config.seat_select_value}}{{/if}}">
                                                        {{if empty($t['search_config']['seat_select_text'])}}{{if empty($t['search_config']['placeholder'])}}请选择{{if !empty($t['label'])}}{{$t.label}}{{/if}}{{else /}}{{$t.search_config.placeholder}}{{/if}}{{else /}}{{$t.search_config.seat_select_text}}{{/if}}
                                                    </option>
                                                {{/if}}
                                                {{if !empty($t['search_config']['data']) and is_array($t['search_config']['data'])}}
                                                    {{foreach $t['search_config']['data'] as $v}}
                                                        <option value="{{if isset($t['search_config']['data_key']) and isset($v[$t['search_config']['data_key']])}}{{$v[$t['search_config']['data_key']]}}{{/if}}" {{if !empty($form_params) and isset($form_params[$t['form_key']]) and is_array($form_params[$t['form_key']]) and isset($t['search_config']['data_key']) and  in_array($v[$t['search_config']['data_key']], $form_params[$t['form_key']])}}selected{{/if}}>
                                                            {{if isset($t['search_config']['data_name']) and isset($v[$t['search_config']['data_name']])}}
                                                                {{$v[$t['search_config']['data_name']]}}
                                                            {{/if}}
                                                        </option>
                                                    {{/foreach}}
                                                {{/if}}
                                            </select>
                                        {{/case}}
                                        {{case section}}
                                            <!-- 区间 -->
                                            <div class="form-table-search-section">
                                                <input type="number" class="am-form-field am-radius am-inline-block" autocomplete="off" name="{{$t.form_key}}_min" value="{{if !empty($form_params) and isset($form_params[$t['form_key'].'_min'])}}{{$form_params[$t['form_key'].'_min']}}{{/if}}" {{if isset($t['search_config']['is_point']) and $t['search_config']['is_point'] eq 1}}step="0.01"{{/if}} min="0" placeholder="{{if isset($t['search_config']['placeholder_min'])}}{{$t.search_config.placeholder_min}}{{/if}}" />
                                                <span>-</span>
                                                <input type="number" class="am-form-field am-radius am-inline-block" autocomplete="off" name="{{$t.form_key}}_max" value="{{if !empty($form_params) and isset($form_params[$t['form_key'].'_max'])}}{{$form_params[$t['form_key'].'_max']}}{{/if}}" {{if isset($t['search_config']['is_point']) and $t['search_config']['is_point'] eq 1}}step="0.01"{{/if}} min="0" placeholder="{{if isset($t['search_config']['placeholder_max'])}}{{$t.search_config.placeholder_max}}{{/if}}" />
                                            </div>
                                        {{/case}}
                                        {{case datetime}}
                                            <div class="form-table-search-section form-table-search-time">
                                                <input type="text" autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate" id="form-table-search-time-start-{{$t.form_key}}" name="{{$t.form_key}}_start" value="{{if !empty($form_params) and isset($form_params[$t['form_key'].'_start'])}}{{$form_params[$t['form_key'].'_start']}}{{/if}}" placeholder="{{if isset($t['search_config']['placeholder_start'])}}{{$t.search_config.placeholder_start}}{{/if}}" value="" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd H:mm:ss',maxDate:'#F{$dp.$D(\'form-table-search-time-end-{{$t.form_key}}\');}'})" autocomplete="off" />
                                                <span>-</span>
                                                <input type="text" autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate" id="form-table-search-time-end-{{$t.form_key}}" name="{{$t.form_key}}_end" value="{{if !empty($form_params) and isset($form_params[$t['form_key'].'_end'])}}{{$form_params[$t['form_key'].'_end']}}{{/if}}" placeholder="{{if isset($t['search_config']['placeholder_end'])}}{{$t.search_config.placeholder_end}}{{/if}}" value="" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd H:mm:ss',minDate:'#F{$dp.$D(\'form-table-search-time-start-{{$t.form_key}}\');}'})" autocomplete="off" />
                                            </div>
                                        {{/case}}
                                        {{case date}}
                                            <div class="form-table-search-section form-table-search-time">
                                                <input type="text" autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate" id="form-table-search-time-start-{{$t.form_key}}" name="{{$t.form_key}}_start" value="{{if !empty($form_params) and isset($form_params[$t['form_key'].'_start'])}}{{$form_params[$t['form_key'].'_start']}}{{/if}}" placeholder="{{if isset($t['search_config']['placeholder_start'])}}{{$t.search_config.placeholder_start}}{{/if}}" value="" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd',maxDate:'#F{$dp.$D(\'form-table-search-time-end-{{$t.form_key}}\',{d:-1});}'})" autocomplete="off" />
                                                <span>-</span>
                                                <input type="text" autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate" id="form-table-search-time-end-{{$t.form_key}}" name="{{$t.form_key}}_end" value="{{if !empty($form_params) and isset($form_params[$t['form_key'].'_end'])}}{{$form_params[$t['form_key'].'_end']}}{{/if}}" placeholder="{{if isset($t['search_config']['placeholder_end'])}}{{$t.search_config.placeholder_end}}{{/if}}" value="" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'form-table-search-time-start-{{$t.form_key}}\',{d:+1});}'})" autocomplete="off" />
                                            </div>
                                        {{/case}}
                                        {{case module}}
                                            <!-- 从模块加载自定义模块数据 -->
                                            {{if !empty($t['search_config']['template'])}}
                                                {{if isset($t['search_config']['data'])}}
                                                    {{:ModuleInclude($t['search_config']['template'], ['data'=>$t['search_config']['data'], 'form_name_key'=>$t['form_key'], 'params'=>isset($form_params) ? $form_params : []])}}
                                                {{else /}}
                                                    {{:ModuleInclude($t['search_config']['template'], ['data'=>[], 'form_name_key'=>$t['form_key'], 'params'=>isset($form_params) ? $form_params : []])}}
                                                {{/if}}
                                            {{/if}}
                                        {{/case}}
                                    {{/switch}}
                                {{/if}}
                            </td>
                        {{/if}}
                    {{/foreach}}
                </tr>
            {{/if}}
        </thead>
        <tbody>
            {{if !empty($data_list) and !empty($form_table['base']['key_field'])}}
                <!-- 处理数据数量小于默认数量 -->
                {{for start="0" end="count($data_list)"}}
                    <!-- 1. tr 主键id名称 -->
                    <!-- 2. 是否黄色选中class -->
                    <tr
                        {{if isset($data_list[$i][$form_table['base']['key_field']])}}
                            id="data-list-{{$data_list[$i][$form_table['base']['key_field']]}}"
                        {{/if}}
                        {{if !empty($form_table['base']['status_field']) and isset($data_list[$i][$form_table['base']['status_field']]) and $data_list[$i][$form_table['base']['status_field']] eq 0}}
                            class="am-active"
                        {{/if}}
                    >
                        {{foreach $form_table['form'] as $t}}
                            {{if !isset($t['is_list']) or $t['is_list'] eq 1}}
                                <!-- 1. 上下居中 -->
                                <!-- 2. 格子大小 -->
                                <!-- 3. 内容位置居(左|中|右) -->
                                <!-- 4. 格子是否固定(left|right 左|右) -->
                                <!-- 5. 是否操作列 -->
                                <td class="am-nowrap-initial
                                    {{if !isset($t['is_middle']) or $t['is_middle'] eq 1}}am-text-middle {{/if}}
                                    {{if !empty($t['grid_size'])}}am-grid-{{$t.grid_size}} {{/if}}
                                    {{if !empty($t['align'])}}am-text-{{$t.align}} {{/if}}
                                    {{if !empty($t['fixed'])}}am-grid-fixed-{{$t.fixed}} {{/if}}
                                    {{if !empty($t['view_type']) and $t['view_type'] eq 'operate'}}am-operate-grid {{/if}}
                                "
                                style="
                                    {{if !empty($t['width'])}}
                                        min-width: {{$t.width}}px;
                                    {{/if}}
                                "
                                >
                                    {{if isset($data_list[$i]) and !empty($t['view_type']) and !empty($t['view_key'])}}
                                        <!-- 数据匹配 -->
                                        {{switch $t.view_type}}
                                            {{case field}}
                                                <!-- 前后固定拼接的值 前面 -->
                                                {{if isset($t['view_join_first'])}}
                                                    <span>{{$t.view_join_first}}</span>
                                                {{/if}}

                                                <!-- 如果字段为数组则处理多个字段拼接数据 -->
                                                {{if is_array($t['view_key'])}}
                                                    {{foreach $t['view_key'] as $fk=>$fv}}
                                                        {{if isset($data_list[$i][$fv])}}
                                                            {{$data_list[$i][$fv]}}
                                                            <!-- 多个字段拼接数据的的拼接字符 -->
                                                            {{if isset($t['view_key_join']) and $fk lt count($t['view_key'])-1}}
                                                                {{$t.view_key_join|raw}}
                                                            {{/if}}
                                                        {{/if}}
                                                    {{/foreach}}
                                                {{else /}}
D
devil 已提交
174
                                                    <!-- 是否存在数据 key -->
D
devil 已提交
175 176
                                                    {{if isset($data_list[$i][$t['view_key']])}}
                                                        <!-- 是否指定数据转换 -->
D
devil 已提交
177 178 179 180 181 182 183 184 185 186 187 188
                                                        {{if !empty($t['view_data']) and is_array($t['view_data'])}}
                                                            <!-- 不存在数组中则不显示 -->
                                                            {{if isset($t['view_data'][$data_list[$i][$t['view_key']]])}}
                                                                <!-- 是否指定二维数组key取值 -->
                                                                {{if !empty($t['view_data_key'])}}
                                                                    {{if isset($t['view_data'][$data_list[$i][$t['view_key']]][$t['view_data_key']])}}
                                                                        {{$t['view_data'][$data_list[$i][$t['view_key']]][$t['view_data_key']]}}
                                                                    {{/if}}
                                                                {{else /}}
                                                                    {{$t['view_data'][$data_list[$i][$t['view_key']]]}}
                                                                {{/if}}
                                                            {{/if}}
D
devil 已提交
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206

                                                        <!-- 直接展示数据 -->
                                                        {{else /}}
                                                            {{$data_list[$i][$t['view_key']]|raw}}
                                                        {{/if}}
                                                    {{/if}}
                                                {{/if}}
                                                <!-- 前后固定拼接的值 后面 -->
                                                {{if isset($t['view_join_last'])}}
                                                    <span>{{$t.view_join_last}}</span>
                                                {{/if}}
                                            {{/case}}
                                            {{case module}}
                                                <!-- 从模块加载自定义模块数据 -->
                                                {{:ModuleInclude($t['view_key'], $data_list[$i], isset($params) ? $params : [])}}
                                            {{/case}}
                                            {{case status}}
                                                <!-- 数据状态操作按钮组件 -->
D
devil 已提交
207
                                                {{if !empty($t['key_field']) and !empty($t['post_url']) and !empty($data_list[$i][$t['key_field']])}}
D
devil 已提交
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247
                                                    <a href="javascript:;"
                                                        class="am-icon-btn am-icon-check submit-state {{if $data_list[$i][$t['view_key']] eq 1}}am-success{{else /}}am-default{{/if}}"
                                                        data-url="{{$t.post_url}}"
                                                        data-id="{{if isset($data_list[$i][$t['key_field']])}}{{$data_list[$i][$t['key_field']]}}{{/if}}"
                                                        data-state="{{$data_list[$i][$t['view_key']]}}"
                                                        data-field="{{$t.view_key}}"
                                                        data-is-update-status="{{if isset($t['is_form_su'])}}{{$t.is_form_su}}{{else /}}0{{/if}}"
                                                    ></a>
                                                {{/if}}
                                            {{/case}}
                                            {{case operate}}
                                                <!-- 是否操作列 -->
                                                <!-- 模块数据 -->
                                                {{:ModuleInclude($t['view_key'], $data_list[$i])}}

                                                <!-- 列表操作钩子 -->
                                                {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
                                                    <div class="plugins-tag">
                                                        <span>{{$hook_name_form_list_operate}}</span>
                                                    </div>
                                                {{/if}}
                                                {{php}}
                                                    $hook_data = Hook::listen($hook_name_form_list_operate, [
                                                        'hook_name'     => $hook_name_form_list_operate,
                                                        'is_backend'    => true,
                                                        'id'            => isset($data_list[$i][$form_table['base']['key_field']]) ? $data_list[$i][$form_table['base']['key_field']] : 0,
                                                        'data'          => $data_list[$i],
                                                    ]);
                                                    if(!empty($hook_data) && is_array($hook_data))
                                                    {
                                                        foreach($hook_data as $hook)
                                                        {
                                                            if(is_string($hook) || is_int($hook))
                                                            {
                                                                echo htmlspecialchars_decode($hook);
                                                            }
                                                        }
                                                    }
                                                {{/php}}
                                            {{/case}}
D
devil 已提交
248 249 250 251 252 253 254 255 256
                                            {{case radio}}
                                                {{if isset($data_list[$i][$form_table['base']['key_field']])}}
                                                    <div class="form-table-operate-radio">
                                                        <label class="am-radio am-secondary am-radio-inline">
                                                            <input type="radio" name="{{$t.view_key}}" value="{{$data_list[$i][$form_table['base']['key_field']]}}" {{if isset($t['is_checked']) and $t['is_checked'] eq 1}}checked{{/if}} data-am-ucheck />
                                                        </label>
                                                    </div>
                                                {{/if}}
                                            {{/case}}
D
devil 已提交
257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
                                            {{case checkbox}}
                                                {{if isset($data_list[$i][$form_table['base']['key_field']])}}
                                                    <!-- 是否配置指定数据不显示控件 -->
                                                    {{if empty($t['not_show_data']) or empty($t['not_show_key']) or !in_array($data_list[$i][$form_table['base']['key_field']], $t['not_show_data'])}}
                                                        <div class="form-table-operate-checkbox">
                                                            <label class="am-checkbox am-secondary am-checkbox-inline">
                                                                <input type="checkbox" name="{{$t.view_key}}" value="{{$data_list[$i][$form_table['base']['key_field']]}}" {{if isset($t['is_checked']) and $t['is_checked'] eq 1}}checked{{/if}} data-am-ucheck />
                                                            </label>
                                                        </div>
                                                    {{/if}}
                                                {{/if}}
                                            {{/case}}
                                        {{/switch}}
                                    {{/if}}
                                </td>
                            {{/if}}
                        {{/foreach}}
                    </tr>
                {{/for}}
            {{/if}}
        </tbody>
    </table>
    {{if empty($data_list)}}
        <div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
    {{/if}}
</div>