Files

240 lines
11 KiB
HTML
Raw Permalink Normal View History

2026-06-04 14:15:12 +08:00
<style>
.split-ticket-form .panel {
border-color: #e8ecf1;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
margin-bottom: 16px;
}
.split-ticket-form .panel-heading {
background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
border-bottom: 1px solid #e2e8f0;
color: #334155;
font-weight: 600;
font-size: 13px;
padding: 10px 16px;
}
.split-ticket-form .panel-body {
padding: 18px 20px 8px;
}
.split-ticket-form .form-group {
margin-bottom: 16px;
}
.split-ticket-form .control-label {
color: #475569;
font-weight: 500;
font-size: 13px;
margin-bottom: 6px;
padding-top: 0;
text-align: left;
width: 100%;
display: block;
}
.split-ticket-form .control-label .text-danger {
margin-left: 2px;
font-weight: 700;
}
.split-ticket-form .form-control {
border-radius: 4px;
border-color: #cbd5e1;
box-shadow: none;
width: 100%;
}
.split-ticket-form .form-control:focus {
border-color: #3b82f6;
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15);
}
/* 单列整行 */
.split-ticket-form .st-grid-1 {
margin-bottom: 4px;
}
/* 双列:PC 端 column-gap 控制列间距(不依赖 Bootstrap col padding */
.split-ticket-form .st-grid-2 {
display: grid;
grid-template-columns: 1fr;
column-gap: 0;
row-gap: 0;
margin-bottom: 4px;
width: 100%;
}
@media (min-width: 768px) {
.split-ticket-form .st-grid-2 {
grid-template-columns: 1fr 1fr;
column-gap: 36px;
}
}
.split-ticket-form .st-grid-cell {
min-width: 0;
}
@media (max-width: 767px) {
.split-ticket-form .st-grid-2 {
row-gap: 0;
}
.split-ticket-form .st-grid-2 .st-grid-cell + .st-grid-cell .form-group {
margin-top: 0;
}
}
/* 底部按钮区(兼容 layer 弹窗 footer 迁移) */
.split-ticket-form > .layer-footer {
margin: 12px 0 0;
padding: 16px 20px;
border-top: 1px solid #e2e8f0;
background: #f8fafc;
clear: both;
}
.split-ticket-form > .layer-footer > .control-label {
display: none !important;
}
.split-ticket-form > .layer-footer > div[class*="col-"] {
width: 100%;
max-width: 100%;
flex: none;
float: none;
text-align: center;
padding: 0;
}
.split-ticket-form > .layer-footer .btn {
min-width: 100px;
margin: 0 12px;
padding: 8px 24px;
font-size: 14px;
border-radius: 4px;
}
.split-ticket-form > .layer-footer .btn-primary {
background-color: #3b82f6;
border-color: #2563eb;
}
.split-ticket-form > .layer-footer .btn-primary:hover,
.split-ticket-form > .layer-footer .btn-primary:focus {
background-color: #2563eb;
border-color: #1d4ed8;
}
.split-ticket-form > .layer-footer .btn-default {
background-color: #fff;
border-color: #cbd5e1;
color: #475569;
}
.split-ticket-form > .layer-footer .btn-default:hover {
background-color: #f1f5f9;
border-color: #94a3b8;
}
</style>
<div class="panel panel-default">
<div class="panel-heading">{:__('Section basic')}</div>
<div class="panel-body">
<div class="st-grid-2">
<div class="st-grid-cell">
<div class="form-group">
<label for="c-ticket_type" class="control-label">{:__('Ticket_type')}<span class="text-danger">*</span></label>
<select id="c-ticket_type" name="row[ticket_type]" class="form-control selectpicker" data-rule="required" data-none-selected-text="请选择" title="请选择">
<option value="">请选择</option>
{foreach name="ticketTypeList" item="vo" key="key"}
<option value="{$key|htmlentities}" {if isset($row) && $row.ticket_type==$key}selected{/if}>{$vo|htmlentities}</option>
{/foreach}
</select>
</div>
</div>
<div class="st-grid-cell">
<div class="form-group">
<label for="c-ticket_name" class="control-label">{:__('Ticket_name')}<span class="text-danger">*</span></label>
<input id="c-ticket_name" data-rule="required" class="form-control" name="row[ticket_name]" type="text" value="{$row.ticket_name|default=''|htmlentities}" maxlength="100">
</div>
</div>
</div>
<div class="st-grid-1">
<div class="form-group">
<label for="c-ticket_url" class="control-label">{:__('Ticket_url')}<span class="text-danger">*</span></label>
<input id="c-ticket_url" data-rule="required" class="form-control" name="row[ticket_url]" type="text" value="{$row.ticket_url|default=''|htmlentities}" maxlength="1000" placeholder="https://">
</div>
</div>
<div class="st-grid-1">
<div class="form-group">
<label for="c-ticket_total" class="control-label">{:__('Ticket_total')}<span class="text-danger">*</span></label>
<input id="c-ticket_total" data-rule="required" class="form-control" name="row[ticket_total]" type="number" min="0" step="1" value="{$row.ticket_total|default='0'|htmlentities}">
</div>
</div>
<div class="st-grid-2">
<div class="st-grid-cell">
<div class="form-group">
<label for="c-split_link_id" class="control-label">{:__('Split_link_id')}<span class="text-danger">*</span></label>
<select id="c-split_link_id" name="row[split_link_id]" class="form-control selectpicker" data-live-search="true" data-rule="required" data-none-selected-text="请选择" title="请选择">
<option value="">请选择</option>
{foreach name="splitLinkList" item="link"}
<option value="{$link.id|htmlentities}" {if isset($row) && $row.split_link_id==$link.id}selected{/if}>{$link.label|htmlentities}</option>
{/foreach}
</select>
</div>
</div>
<div class="st-grid-cell">
<div class="form-group">
<label for="c-number_type" class="control-label">{:__('Number_type')}<span class="text-danger">*</span></label>
<select id="c-number_type" name="row[number_type]" class="form-control selectpicker" data-rule="required">
{foreach name="numberTypeList" item="vo" key="key"}
<option value="{$key|htmlentities}" {if isset($row) && $row.number_type==$key}selected{elseif !isset($row) && $key=='whatsapp'/}selected{/if}>{$vo|htmlentities}</option>
{/foreach}
</select>
</div>
</div>
</div>
<div class="st-grid-1 split-number-type-custom {if !isset($row) || $row.number_type!='custom'}hide{/if}">
<div class="form-group">
<label for="c-number_type_custom" class="control-label">{:__('Number_type_custom')}<span class="text-danger split-required-star">*</span></label>
<input id="c-number_type_custom" class="form-control" name="row[number_type_custom]" type="text" value="{$row.number_type_custom|default=''|htmlentities}" maxlength="50">
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">{:__('Section time rule')}</div>
<div class="panel-body">
<div class="st-grid-2">
<div class="st-grid-cell">
<div class="form-group">
<label for="c-start_time" class="control-label">{:__('Start_time')}<span class="text-danger">*</span></label>
<input id="c-start_time" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[start_time]" type="text" value="{$row.start_time|default=''|htmlentities}">
</div>
</div>
<div class="st-grid-cell">
<div class="form-group">
<label for="c-end_time" class="control-label">{:__('End_time')}<span class="text-danger">*</span></label>
<input id="c-end_time" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[end_time]" type="text" value="{$row.end_time|default=''|htmlentities}">
</div>
</div>
</div>
<div class="st-grid-2">
<div class="st-grid-cell">
<div class="form-group">
<label for="c-order_limit" class="control-label">{:__('Order_limit')}<span class="text-danger">*</span></label>
<input id="c-order_limit" data-rule="required;integer;range(0~)" class="form-control" name="row[order_limit]" type="number" min="0" step="1" value="{$row.order_limit|default='0'|htmlentities}">
</div>
</div>
<div class="st-grid-cell">
<div class="form-group">
<label for="c-assign_ratio" class="control-label">{:__('Assign_ratio')}<span class="text-danger">*</span></label>
<input id="c-assign_ratio" data-rule="required;integer;range(0~)" class="form-control" name="row[assign_ratio]" type="number" min="0" step="1" value="{$row.assign_ratio|default='0'|htmlentities}">
</div>
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">{:__('Section account')}</div>
<div class="panel-body">
<div class="st-grid-2">
<div class="st-grid-cell">
<div class="form-group">
<label for="c-account" class="control-label">{:__('Account')}</label>
<input id="c-account" class="form-control" name="row[account]" type="text" value="{$row.account|default=''|htmlentities}" maxlength="50">
</div>
</div>
<div class="st-grid-cell">
<div class="form-group">
<label for="c-password" class="control-label">{:__('Password')}</label>
<input id="c-password" class="form-control" name="row[password]" type="text" value="{$row.password|default=''|htmlentities}" maxlength="50">
</div>
</div>
</div>
</div>
</div>