合并:新增原材料应付页面
This commit is contained in:
parent
274513598a
commit
fa9444bbbe
@ -191,10 +191,11 @@ return [
|
||||
],
|
||||
[
|
||||
'slug' => 'lamination-factory-payables',
|
||||
'title' => '原材-压贴厂应付',
|
||||
'title' => '原材料-压贴厂应付',
|
||||
'icon' => 'factory',
|
||||
'pages' => [
|
||||
['slug' => 'lamination-prices', 'title' => '压贴费价格'],
|
||||
['slug' => 'finished-board-prices', 'title' => '成品板价格'],
|
||||
['slug' => 'lamination-fees', 'title' => '压贴费'],
|
||||
['slug' => 'finished-board-freight', 'title' => '成品板运费'],
|
||||
['slug' => 'paper-stock-in', 'title' => '入库纸张'],
|
||||
@ -203,6 +204,7 @@ return [
|
||||
['slug' => 'raw-board-freight', 'title' => '素板运费'],
|
||||
['slug' => 'invoice-tax-points', 'title' => '发票(税点)'],
|
||||
['slug' => 'factory-compensation', 'title' => '赔付明细(压贴厂)'],
|
||||
['slug' => 'factory-payables-details', 'title' => '压贴厂应付明细表'],
|
||||
['slug' => 'factory-payables-report', 'title' => '压贴厂应付表'],
|
||||
],
|
||||
],
|
||||
|
||||
@ -0,0 +1,175 @@
|
||||
<style>
|
||||
.edge-banding-page {
|
||||
color: #1f2937;
|
||||
}
|
||||
|
||||
.edge-banding-toolbar {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-end;
|
||||
gap: 0.75rem;
|
||||
margin-bottom: 1rem;
|
||||
padding: 1rem;
|
||||
border: 1px solid #e5e7eb;
|
||||
border-radius: 0.75rem;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.edge-banding-field {
|
||||
display: flex;
|
||||
min-width: 9rem;
|
||||
flex-direction: column;
|
||||
gap: 0.35rem;
|
||||
}
|
||||
|
||||
.edge-banding-field label {
|
||||
color: #6b7280;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.edge-banding-field input,
|
||||
.edge-banding-field select {
|
||||
height: 2.25rem;
|
||||
min-width: 9rem;
|
||||
padding: 0 0.65rem;
|
||||
border: 1px solid #d1d5db;
|
||||
border-radius: 0.375rem;
|
||||
background: #ffffff;
|
||||
color: #374151;
|
||||
font-size: 0.8125rem;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.edge-banding-field input:focus,
|
||||
.edge-banding-field select:focus {
|
||||
border-color: #6366f1;
|
||||
box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.12);
|
||||
}
|
||||
|
||||
.edge-banding-table-card {
|
||||
overflow: hidden;
|
||||
border: 1px solid #e5e7eb;
|
||||
border-radius: 0.75rem;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.edge-banding-table-scroll {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.edge-banding-table {
|
||||
width: 100%;
|
||||
min-width: 68rem;
|
||||
border-collapse: collapse;
|
||||
font-size: 0.8125rem;
|
||||
}
|
||||
|
||||
.edge-banding-table--details {
|
||||
min-width: 128rem;
|
||||
}
|
||||
|
||||
.edge-banding-table th,
|
||||
.edge-banding-table td {
|
||||
height: 2.75rem;
|
||||
padding: 0.55rem 0.7rem;
|
||||
border-right: 1px solid #e5e7eb;
|
||||
border-bottom: 1px solid #e5e7eb;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.edge-banding-table th:last-child,
|
||||
.edge-banding-table td:last-child {
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.edge-banding-table thead th {
|
||||
background: #f4f6fa;
|
||||
color: #374151;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.edge-banding-table tbody tr:hover {
|
||||
background: #f9fafb;
|
||||
}
|
||||
|
||||
.edge-banding-table .is-number {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.edge-banding-table .is-empty td {
|
||||
height: 8rem;
|
||||
color: #9ca3af;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.edge-banding-table--compensation thead th:last-child {
|
||||
background: #fff200;
|
||||
color: #111827;
|
||||
}
|
||||
|
||||
.edge-banding-table--payables {
|
||||
min-width: 82rem;
|
||||
}
|
||||
|
||||
.edge-banding-table--payables thead th,
|
||||
.edge-banding-table--payables tfoot td {
|
||||
border-color: #064b2a;
|
||||
background: #08ad4f;
|
||||
color: #062b19;
|
||||
text-align: center;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.edge-banding-table--payables thead tr:first-child th {
|
||||
height: 3.25rem;
|
||||
font-size: 1.2rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.edge-banding-table--payables tbody td {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.edge-banding-table--payables tbody td:nth-child(2) {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.edge-banding-table--payables tfoot td {
|
||||
font-weight: 700;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.edge-banding-table--payables tfoot td:first-child,
|
||||
.edge-banding-table--payables tfoot td:last-child {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.edge-banding-pagination {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
padding: 0.75rem 1rem;
|
||||
color: #6b7280;
|
||||
font-size: 0.8125rem;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.edge-banding-toolbar {
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.edge-banding-field,
|
||||
.edge-banding-field input,
|
||||
.edge-banding-field select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.edge-banding-pagination {
|
||||
align-items: flex-start;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,57 @@
|
||||
<div class="edge-banding-page">
|
||||
@include('business.pages.edge-banding-materials._styles')
|
||||
|
||||
<div class="edge-banding-toolbar" aria-label="封边条赔偿筛选">
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-compensation-order">单号</label>
|
||||
<input id="edge-compensation-order" type="text" placeholder="请输入单号">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-compensation-arrival-factory">到货厂商</label>
|
||||
<input id="edge-compensation-arrival-factory" type="text" placeholder="请输入到货厂商">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-compensation-date">创建日期</label>
|
||||
<input id="edge-compensation-date" type="date">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-compensation-raw-name">原料名称</label>
|
||||
<input id="edge-compensation-raw-name" type="text" placeholder="请输入原料名称">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-compensation-delivery-factory">送货厂商</label>
|
||||
<input id="edge-compensation-delivery-factory" type="text" placeholder="请输入送货厂商">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="edge-banding-table-card">
|
||||
<div class="edge-banding-table-scroll">
|
||||
<table class="edge-banding-table edge-banding-table--compensation">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>单号</th>
|
||||
<th>到货厂商</th>
|
||||
<th>创建日期</th>
|
||||
<th>原料名称</th>
|
||||
<th class="is-number">申领米数</th>
|
||||
<th class="is-number">已出库米数</th>
|
||||
<th>最新出库日期</th>
|
||||
<th>送货厂商</th>
|
||||
<th>事由</th>
|
||||
<th class="is-number">超时天数</th>
|
||||
<th class="is-number">违约金</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="is-empty">
|
||||
<td colspan="11">暂无数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="edge-banding-pagination">
|
||||
<span>共 0 条记录</span>
|
||||
<span>第 1 / 1 页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,81 @@
|
||||
<div class="edge-banding-page">
|
||||
@include('business.pages.edge-banding-materials._styles')
|
||||
|
||||
<div class="edge-banding-toolbar" aria-label="封边条明细筛选">
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-details-in-date">入库日期</label>
|
||||
<input id="edge-details-in-date" type="date">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-details-production-code">原料生产编号</label>
|
||||
<input id="edge-details-production-code" type="text" placeholder="请输入生产编号">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-details-raw-name">原料名称</label>
|
||||
<input id="edge-details-raw-name" type="text" placeholder="请输入原料名称">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-details-return-flag">退货标识</label>
|
||||
<select id="edge-details-return-flag">
|
||||
<option>全部</option>
|
||||
<option>正常出库</option>
|
||||
<option>退货</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-details-out-factory">出库厂商</label>
|
||||
<input id="edge-details-out-factory" type="text" placeholder="请输入出库厂商">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-details-arrival-factory">到货厂商</label>
|
||||
<input id="edge-details-arrival-factory" type="text" placeholder="请输入到货厂商">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-details-out-number">出库单号</label>
|
||||
<input id="edge-details-out-number" type="text" placeholder="请输入出库单号">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="edge-banding-table-card">
|
||||
<div class="edge-banding-table-scroll">
|
||||
<table class="edge-banding-table edge-banding-table--details">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>入库日期</th>
|
||||
<th>原料生产编号</th>
|
||||
<th>原料名称</th>
|
||||
<th class="is-number">出库数量</th>
|
||||
<th>单位</th>
|
||||
<th>退货标识</th>
|
||||
<th>出库厂商</th>
|
||||
<th>到货厂商</th>
|
||||
<th>批次日期</th>
|
||||
<th>出库单号</th>
|
||||
<th>出库备注</th>
|
||||
<th>申领单号</th>
|
||||
<th>单号类型</th>
|
||||
<th>送货单号</th>
|
||||
<th class="is-number">实收数量</th>
|
||||
<th class="is-number">对账金额</th>
|
||||
<th class="is-number">运费</th>
|
||||
<th class="is-number">封边条厂单价</th>
|
||||
<th class="is-number">应付金额</th>
|
||||
<th class="is-number">家具厂单价</th>
|
||||
<th class="is-number">家具厂金额</th>
|
||||
<th class="is-number">价格差</th>
|
||||
<th class="is-number">利润</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="is-empty">
|
||||
<td colspan="23">暂无数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="edge-banding-pagination">
|
||||
<span>共 0 条记录</span>
|
||||
<span>第 1 / 1 页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,78 @@
|
||||
<div class="edge-banding-page">
|
||||
@include('business.pages.edge-banding-materials._styles')
|
||||
|
||||
<div class="edge-banding-toolbar" aria-label="封边条应付筛选">
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-payables-period">应付月份</label>
|
||||
<input id="edge-payables-period" type="month" value="2026-06">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-payables-supplier">供货单位</label>
|
||||
<input id="edge-payables-supplier" type="text" placeholder="请输入供货单位">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="edge-banding-table-card">
|
||||
<div class="edge-banding-table-scroll">
|
||||
<table class="edge-banding-table edge-banding-table--payables">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="13">2026年公司应付封边条厂6月份货款</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">序号</th>
|
||||
<th rowspan="2">供货单位</th>
|
||||
<th rowspan="2">月初未付</th>
|
||||
<th>加</th>
|
||||
<th>加</th>
|
||||
<th>减</th>
|
||||
<th>加</th>
|
||||
<th aria-hidden="true"></th>
|
||||
<th aria-hidden="true"></th>
|
||||
<th>单位:元</th>
|
||||
<th aria-hidden="true"></th>
|
||||
<th aria-hidden="true"></th>
|
||||
<th rowspan="2">备注</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>货款</th>
|
||||
<th>代垫付运费</th>
|
||||
<th>赔付</th>
|
||||
<th>封边条厂家回款</th>
|
||||
<th>应付金额</th>
|
||||
<th>已付金额</th>
|
||||
<th>实际打款金额</th>
|
||||
<th>对私打款</th>
|
||||
<th>对公打款</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="is-empty">
|
||||
<td colspan="13">暂无数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td>合计</td>
|
||||
<td></td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>全部对公</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
<div class="edge-banding-pagination">
|
||||
<span>共 0 条记录</span>
|
||||
<span>第 1 / 1 页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,65 @@
|
||||
<div class="edge-banding-page">
|
||||
@include('business.pages.edge-banding-materials._styles')
|
||||
|
||||
<div class="edge-banding-toolbar" aria-label="封边条价格筛选">
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-price-type">价格类型</label>
|
||||
<select id="edge-price-type">
|
||||
<option>全部价格</option>
|
||||
<option>封边条厂价格</option>
|
||||
<option>家具厂价格</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-price-raw-name">原料名称</label>
|
||||
<input id="edge-price-raw-name" type="text" placeholder="请输入原料名称">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-price-raw-code">原料编号</label>
|
||||
<input id="edge-price-raw-code" type="text" placeholder="请输入原料编号">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-price-production-code">生产编号</label>
|
||||
<input id="edge-price-production-code" type="text" placeholder="请输入生产编号">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-price-target-factory">目标厂商</label>
|
||||
<input id="edge-price-target-factory" type="text" placeholder="请输入目标厂商">
|
||||
</div>
|
||||
<div class="edge-banding-field">
|
||||
<label for="edge-price-factory-type">厂商类型</label>
|
||||
<select id="edge-price-factory-type">
|
||||
<option>全部厂商</option>
|
||||
<option>封边条厂</option>
|
||||
<option>家具厂</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="edge-banding-table-card">
|
||||
<div class="edge-banding-table-scroll">
|
||||
<table class="edge-banding-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>价格类型</th>
|
||||
<th>原料名称</th>
|
||||
<th>原料编号</th>
|
||||
<th>生产编号</th>
|
||||
<th class="is-number">最新价格</th>
|
||||
<th>目标厂商</th>
|
||||
<th>厂商类型</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="is-empty">
|
||||
<td colspan="7">暂无数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="edge-banding-pagination">
|
||||
<span>共 0 条记录</span>
|
||||
<span>第 1 / 1 页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,47 @@
|
||||
<div class="lamination-page" id="{{ $laminationPageId }}">
|
||||
@include('business.pages.lamination-factory-payables._styles')
|
||||
|
||||
<div class="lamination-toolbar" aria-label="{{ $laminationToolbarLabel }}">
|
||||
@foreach ($laminationFilters as $filter)
|
||||
<div class="lamination-field">
|
||||
<label for="{{ $filter['id'] }}">{{ $filter['label'] }}</label>
|
||||
@if (($filter['type'] ?? 'text') === 'select')
|
||||
<select id="{{ $filter['id'] }}">
|
||||
@foreach ($filter['options'] as $option)
|
||||
<option>{{ $option }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@else
|
||||
<input
|
||||
id="{{ $filter['id'] }}"
|
||||
type="{{ $filter['type'] ?? 'text' }}"
|
||||
@if (!empty($filter['placeholder'])) placeholder="{{ $filter['placeholder'] }}" @endif
|
||||
>
|
||||
@endif
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<div class="lamination-table-card">
|
||||
<div class="lamination-table-scroll">
|
||||
<table class="lamination-table {{ $laminationTableModifier ?? '' }}">
|
||||
<thead>
|
||||
<tr>
|
||||
@foreach ($laminationColumns as $column)
|
||||
<th @class(['is-number' => !empty($column['numeric'])])>{{ $column['label'] }}</th>
|
||||
@endforeach
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="is-empty">
|
||||
<td colspan="{{ count($laminationColumns) }}">暂无数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="lamination-pagination">
|
||||
<span>共 0 条记录</span>
|
||||
<span>第 1 / 1 页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,190 @@
|
||||
<style>
|
||||
.lamination-page {
|
||||
color: #1f2937;
|
||||
}
|
||||
|
||||
.lamination-toolbar {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-end;
|
||||
gap: 0.75rem;
|
||||
margin-bottom: 1rem;
|
||||
padding: 1rem;
|
||||
border: 1px solid #e5e7eb;
|
||||
border-radius: 0.75rem;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.lamination-field {
|
||||
display: flex;
|
||||
min-width: 9rem;
|
||||
flex-direction: column;
|
||||
gap: 0.35rem;
|
||||
}
|
||||
|
||||
.lamination-field label {
|
||||
color: #6b7280;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.lamination-field input,
|
||||
.lamination-field select {
|
||||
height: 2.25rem;
|
||||
min-width: 9rem;
|
||||
padding: 0 0.65rem;
|
||||
border: 1px solid #d1d5db;
|
||||
border-radius: 0.375rem;
|
||||
background: #ffffff;
|
||||
color: #374151;
|
||||
font-size: 0.8125rem;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.lamination-field input:focus,
|
||||
.lamination-field select:focus {
|
||||
border-color: #6366f1;
|
||||
box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.12);
|
||||
}
|
||||
|
||||
.lamination-table-card {
|
||||
overflow: hidden;
|
||||
border: 1px solid #e5e7eb;
|
||||
border-radius: 0.75rem;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.lamination-table-scroll {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.lamination-table {
|
||||
width: 100%;
|
||||
min-width: 56rem;
|
||||
border-collapse: collapse;
|
||||
font-size: 0.8125rem;
|
||||
}
|
||||
|
||||
.lamination-table--medium {
|
||||
min-width: 76rem;
|
||||
}
|
||||
|
||||
.lamination-table--wide {
|
||||
min-width: 122rem;
|
||||
}
|
||||
|
||||
.lamination-table th,
|
||||
.lamination-table td {
|
||||
height: 2.75rem;
|
||||
padding: 0.55rem 0.7rem;
|
||||
border-right: 1px solid #e5e7eb;
|
||||
border-bottom: 1px solid #e5e7eb;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.lamination-table th:last-child,
|
||||
.lamination-table td:last-child {
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.lamination-table thead th {
|
||||
background: #f4f6fa;
|
||||
color: #374151;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.lamination-table tbody tr:hover {
|
||||
background: #f9fafb;
|
||||
}
|
||||
|
||||
.lamination-table .is-number {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.lamination-table .is-empty td {
|
||||
height: 8rem;
|
||||
color: #9ca3af;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.lamination-table--accent-first thead th:first-child {
|
||||
background: #7ddbd4;
|
||||
color: #123b38;
|
||||
}
|
||||
|
||||
.lamination-table--green-header thead th {
|
||||
background: #98d84e;
|
||||
color: #163300;
|
||||
}
|
||||
|
||||
.lamination-table--blue-header thead th {
|
||||
background: #3c379f;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.lamination-table--payables {
|
||||
min-width: 116rem;
|
||||
}
|
||||
|
||||
.lamination-table--payables thead th {
|
||||
border-color: #064b2a;
|
||||
background: #08ad4f;
|
||||
color: #062b19;
|
||||
text-align: center;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.lamination-table--payables thead tr:first-child th {
|
||||
height: 3.25rem;
|
||||
font-size: 1.2rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.lamination-table--payables tbody td {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.lamination-table--payables tbody td:nth-child(2) {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.lamination-table--payables tfoot td {
|
||||
border-color: #087ea4;
|
||||
background: #12afe0;
|
||||
color: #073b4c;
|
||||
font-weight: 700;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.lamination-table--payables tfoot td:nth-child(2) {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.lamination-pagination {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
padding: 0.75rem 1rem;
|
||||
color: #6b7280;
|
||||
font-size: 0.8125rem;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.lamination-toolbar {
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.lamination-field,
|
||||
.lamination-field input,
|
||||
.lamination-field select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.lamination-pagination {
|
||||
align-items: flex-start;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,13 @@
|
||||
@php
|
||||
$laminationPageId = 'factory-compensation-page';
|
||||
$laminationToolbarLabel = '压贴厂赔付筛选';
|
||||
$laminationFilters = [
|
||||
['id' => 'factory-compensation-name', 'label' => '厂家', 'placeholder' => '请输入厂家'],
|
||||
['id' => 'factory-compensation-reason', 'label' => '事由', 'placeholder' => '请输入事由'],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '厂家'], ['label' => '事由'], ['label' => '补款金额', 'numeric' => true],
|
||||
['label' => '来源金额', 'numeric' => true],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
@ -0,0 +1,24 @@
|
||||
@php
|
||||
$laminationPageId = 'factory-payables-details-page';
|
||||
$laminationToolbarLabel = '压贴厂应付明细筛选';
|
||||
$laminationTableModifier = 'lamination-table--wide';
|
||||
$laminationFilters = [
|
||||
['id' => 'payables-details-date', 'label' => '入库日期', 'type' => 'date'],
|
||||
['id' => 'payables-details-lamination-factory', 'label' => '压贴厂', 'placeholder' => '请输入压贴厂'],
|
||||
['id' => 'payables-details-furniture-factory', 'label' => '家具厂', 'placeholder' => '请输入家具厂'],
|
||||
['id' => 'payables-details-spec', 'label' => '规格', 'placeholder' => '请输入规格'],
|
||||
['id' => 'payables-details-material', 'label' => '原料名称', 'placeholder' => '请输入原料名称'],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '入库日期'], ['label' => '压贴厂'], ['label' => '家具厂'], ['label' => '规格'],
|
||||
['label' => '原料名称'], ['label' => '单位'], ['label' => '实收数量', 'numeric' => true],
|
||||
['label' => '单价', 'numeric' => true], ['label' => '金额', 'numeric' => true], ['label' => '出库备注'],
|
||||
['label' => '纸张1单价', 'numeric' => true], ['label' => '纸张2单价', 'numeric' => true],
|
||||
['label' => '纸张合计', 'numeric' => true], ['label' => '压贴费', 'numeric' => true],
|
||||
['label' => '压贴费合计', 'numeric' => true], ['label' => '垫付纸运费', 'numeric' => true],
|
||||
['label' => '垫付纸运费合计', 'numeric' => true], ['label' => '素板', 'numeric' => true],
|
||||
['label' => '素板金额', 'numeric' => true], ['label' => '成品板运费', 'numeric' => true],
|
||||
['label' => '成品板运费合计', 'numeric' => true],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
@ -0,0 +1,81 @@
|
||||
<div class="lamination-page">
|
||||
@include('business.pages.lamination-factory-payables._styles')
|
||||
|
||||
<div class="lamination-toolbar" aria-label="压贴厂应付表筛选">
|
||||
<div class="lamination-field">
|
||||
<label for="factory-payables-period">应付月份</label>
|
||||
<input id="factory-payables-period" type="month" value="2026-05">
|
||||
</div>
|
||||
<div class="lamination-field">
|
||||
<label for="factory-payables-supplier">供货单位</label>
|
||||
<input id="factory-payables-supplier" type="text" placeholder="请输入供货单位">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="lamination-table-card">
|
||||
<div class="lamination-table-scroll">
|
||||
<table class="lamination-table lamination-table--payables">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="19">2026年公司应付压贴厂5月份货款</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">序号</th>
|
||||
<th rowspan="2">供货单位</th>
|
||||
<th rowspan="2">月初未付</th>
|
||||
<th>加</th>
|
||||
<th>加</th>
|
||||
<th>加</th>
|
||||
<th>加</th>
|
||||
<th>加</th>
|
||||
<th>加</th>
|
||||
<th>减</th>
|
||||
<th>减</th>
|
||||
<th>加</th>
|
||||
<th>加</th>
|
||||
<th aria-hidden="true"></th>
|
||||
<th aria-hidden="true"></th>
|
||||
<th>单位:元</th>
|
||||
<th aria-hidden="true"></th>
|
||||
<th aria-hidden="true"></th>
|
||||
<th rowspan="2">备注</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>出库纸张金额</th>
|
||||
<th>压贴费金额</th>
|
||||
<th>代垫付运费</th>
|
||||
<th>垫付纸运费</th>
|
||||
<th>素板</th>
|
||||
<th>成品板运费</th>
|
||||
<th>入库纸张金额</th>
|
||||
<th>赔付</th>
|
||||
<th>压贴厂回款</th>
|
||||
<th>其他补款</th>
|
||||
<th>应付金额</th>
|
||||
<th>已付金额</th>
|
||||
<th>实际打款金额</th>
|
||||
<th>对公打款</th>
|
||||
<th>对私打款</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="is-empty">
|
||||
<td colspan="19">暂无数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>合计</td>
|
||||
<td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td>
|
||||
<td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
<div class="lamination-pagination">
|
||||
<span>共 0 条记录</span>
|
||||
<span>第 1 / 1 页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,15 @@
|
||||
@php
|
||||
$laminationPageId = 'factory-raw-boards-page';
|
||||
$laminationToolbarLabel = '压贴厂素板筛选';
|
||||
$laminationTableModifier = 'lamination-table--accent-first';
|
||||
$laminationFilters = [
|
||||
['id' => 'factory-board-material', 'label' => '原料名称', 'placeholder' => '请输入原料名称'],
|
||||
['id' => 'factory-board-order-type', 'label' => '单号类型', 'type' => 'select', 'options' => ['全部类型', '申领单', '补料单']],
|
||||
['id' => 'factory-board-claim-number', 'label' => '申领单号', 'placeholder' => '请输入申领单号'],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '原料名称'], ['label' => '纸张1', 'numeric' => true], ['label' => '纸张2', 'numeric' => true],
|
||||
['label' => '纸张合计', 'numeric' => true], ['label' => '单号类型'], ['label' => '申领单号'],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
@ -0,0 +1,17 @@
|
||||
@php
|
||||
$laminationPageId = 'finished-board-freight-page';
|
||||
$laminationToolbarLabel = '成品板运费筛选';
|
||||
$laminationTableModifier = 'lamination-table--accent-first';
|
||||
$laminationFilters = [
|
||||
['id' => 'finished-freight-material', 'label' => '原料名称', 'placeholder' => '请输入原料名称'],
|
||||
['id' => 'finished-freight-spec', 'label' => '成品板规格', 'placeholder' => '请输入成品板规格'],
|
||||
['id' => 'finished-freight-order-type', 'label' => '单号类型', 'type' => 'select', 'options' => ['全部类型', '申领单', '补料单']],
|
||||
['id' => 'finished-freight-claim-number', 'label' => '申领单号', 'placeholder' => '请输入申领单号'],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '原料名称'], ['label' => '成品板规格'], ['label' => '数量', 'numeric' => true],
|
||||
['label' => '单价', 'numeric' => true], ['label' => '金额', 'numeric' => true],
|
||||
['label' => '单号类型'], ['label' => '申领单号'],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
@ -0,0 +1,17 @@
|
||||
@php
|
||||
$laminationPageId = 'finished-board-prices-page';
|
||||
$laminationToolbarLabel = '成品板价格筛选';
|
||||
$laminationFilters = [
|
||||
['id' => 'finished-price-type', 'label' => '价格类型', 'type' => 'select', 'options' => ['全部价格', '采购价格', '结算价格']],
|
||||
['id' => 'finished-price-material', 'label' => '原料名称', 'placeholder' => '请输入原料名称'],
|
||||
['id' => 'finished-price-material-code', 'label' => '原料编号', 'placeholder' => '请输入原料编号'],
|
||||
['id' => 'finished-price-production-code', 'label' => '生产编号', 'placeholder' => '请输入生产编号'],
|
||||
['id' => 'finished-price-target-factory', 'label' => '目标厂商', 'placeholder' => '请输入目标厂商'],
|
||||
['id' => 'finished-price-factory-type', 'label' => '厂商类型', 'type' => 'select', 'options' => ['全部厂商', '压贴厂', '家具厂']],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '价格类型'], ['label' => '原料名称'], ['label' => '原料编号'], ['label' => '生产编号'],
|
||||
['label' => '最新价格', 'numeric' => true], ['label' => '目标厂商'], ['label' => '厂商类型'],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
@ -0,0 +1,20 @@
|
||||
@php
|
||||
$laminationPageId = 'invoice-tax-points-page';
|
||||
$laminationToolbarLabel = '发票税点筛选';
|
||||
$laminationTableModifier = 'lamination-table--medium lamination-table--blue-header';
|
||||
$laminationFilters = [
|
||||
['id' => 'tax-point-date', 'label' => '入库日期', 'type' => 'date'],
|
||||
['id' => 'tax-point-arrival-factory', 'label' => '到货厂商', 'placeholder' => '请输入到货厂商'],
|
||||
['id' => 'tax-point-out-factory', 'label' => '出库厂商', 'placeholder' => '请输入出库厂商'],
|
||||
['id' => 'tax-point-material', 'label' => '原料名称', 'placeholder' => '请输入原料名称'],
|
||||
['id' => 'tax-point-order-type', 'label' => '单号类型', 'type' => 'select', 'options' => ['全部类型', '申领单', '补料单']],
|
||||
['id' => 'tax-point-claim-number', 'label' => '申领单号', 'placeholder' => '请输入申领单号'],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '入库日期'], ['label' => '到货厂商'], ['label' => '出库厂商'], ['label' => '原料名称'],
|
||||
['label' => '单号类型'], ['label' => '实收数量', 'numeric' => true], ['label' => '单价', 'numeric' => true],
|
||||
['label' => '对账金额', 'numeric' => true], ['label' => '备注'], ['label' => '运费', 'numeric' => true],
|
||||
['label' => '申领单号'],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
@ -0,0 +1,15 @@
|
||||
@php
|
||||
$laminationPageId = 'lamination-fees-page';
|
||||
$laminationToolbarLabel = '压贴费筛选';
|
||||
$laminationTableModifier = 'lamination-table--accent-first';
|
||||
$laminationFilters = [
|
||||
['id' => 'lamination-fee-material', 'label' => '原料名称', 'placeholder' => '请输入原料名称'],
|
||||
['id' => 'lamination-fee-order-type', 'label' => '单号类型', 'type' => 'select', 'options' => ['全部类型', '申领单', '补料单']],
|
||||
['id' => 'lamination-fee-claim-number', 'label' => '申领单号', 'placeholder' => '请输入申领单号'],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '原料名称'], ['label' => '数量', 'numeric' => true], ['label' => '单价', 'numeric' => true],
|
||||
['label' => '金额', 'numeric' => true], ['label' => '单号类型'], ['label' => '申领单号'],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
@ -0,0 +1,18 @@
|
||||
@php
|
||||
$laminationPageId = 'lamination-prices-page';
|
||||
$laminationToolbarLabel = '压贴费价格筛选';
|
||||
$laminationFilters = [
|
||||
['id' => 'lamination-price-type', 'label' => '价格类型', 'type' => 'select', 'options' => ['全部价格', '标准价格', '临时价格']],
|
||||
['id' => 'lamination-price-material', 'label' => '原料名称', 'placeholder' => '请输入原料名称'],
|
||||
['id' => 'lamination-price-material-code', 'label' => '原料编码', 'placeholder' => '请输入原料编码'],
|
||||
['id' => 'lamination-price-production-code', 'label' => '生产编号', 'placeholder' => '请输入生产编号'],
|
||||
['id' => 'lamination-price-target-factory', 'label' => '目标厂商', 'placeholder' => '请输入目标厂商'],
|
||||
['id' => 'lamination-price-factory-type', 'label' => '厂商类型', 'type' => 'select', 'options' => ['全部厂商', '压贴厂', '家具厂']],
|
||||
['id' => 'lamination-price-date', 'label' => '执行日期', 'type' => 'date'],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '价格类型'], ['label' => '原料名称'], ['label' => '原料编码'], ['label' => '生产编号'],
|
||||
['label' => '价格', 'numeric' => true], ['label' => '目标厂商'], ['label' => '厂商类型'], ['label' => '执行日期'],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
@ -0,0 +1,13 @@
|
||||
@php
|
||||
$laminationPageId = 'paper-stock-in-page';
|
||||
$laminationToolbarLabel = '入库纸张筛选';
|
||||
$laminationFilters = [
|
||||
['id' => 'paper-in-lamination-factory', 'label' => '压贴厂', 'placeholder' => '请输入压贴厂'],
|
||||
['id' => 'paper-in-furniture-factory', 'label' => '家具厂', 'placeholder' => '请输入家具厂'],
|
||||
['id' => 'paper-in-spec', 'label' => '规格', 'placeholder' => '请输入规格'],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '压贴厂'], ['label' => '家具厂'], ['label' => '规格'], ['label' => '价格', 'numeric' => true],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
@ -0,0 +1,18 @@
|
||||
@php
|
||||
$laminationPageId = 'paper-stock-out-page';
|
||||
$laminationToolbarLabel = '出库纸张筛选';
|
||||
$laminationTableModifier = 'lamination-table--green-header';
|
||||
$laminationFilters = [
|
||||
['id' => 'paper-out-date', 'label' => '入库日期', 'type' => 'date'],
|
||||
['id' => 'paper-out-factory', 'label' => '出库厂商', 'placeholder' => '请输入出库厂商'],
|
||||
['id' => 'paper-out-arrival-factory', 'label' => '到货厂商', 'placeholder' => '请输入到货厂商'],
|
||||
['id' => 'paper-out-material', 'label' => '原料名称', 'placeholder' => '请输入原料名称'],
|
||||
['id' => 'paper-out-claim-number', 'label' => '申领单号', 'placeholder' => '请输入申领单号'],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '入库日期'], ['label' => '出库厂商'], ['label' => '到货厂商'], ['label' => '原料名称'],
|
||||
['label' => '实收数量', 'numeric' => true], ['label' => '压贴厂单价', 'numeric' => true],
|
||||
['label' => '压贴厂金额', 'numeric' => true], ['label' => '申领单号'],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
@ -0,0 +1,17 @@
|
||||
@php
|
||||
$laminationPageId = 'raw-board-freight-page';
|
||||
$laminationToolbarLabel = '素板运费筛选';
|
||||
$laminationTableModifier = 'lamination-table--accent-first';
|
||||
$laminationFilters = [
|
||||
['id' => 'raw-board-freight-material', 'label' => '原料名称', 'placeholder' => '请输入原料名称'],
|
||||
['id' => 'raw-board-freight-spec', 'label' => '素板规格', 'placeholder' => '请输入素板规格'],
|
||||
['id' => 'raw-board-freight-order-type', 'label' => '单号类型', 'type' => 'select', 'options' => ['全部类型', '申领单', '补料单']],
|
||||
['id' => 'raw-board-freight-claim-number', 'label' => '申领单号', 'placeholder' => '请输入申领单号'],
|
||||
];
|
||||
$laminationColumns = [
|
||||
['label' => '原料名称'], ['label' => '素板规格'], ['label' => '数量', 'numeric' => true],
|
||||
['label' => '单价', 'numeric' => true], ['label' => '金额', 'numeric' => true],
|
||||
['label' => '单号类型'], ['label' => '申领单号'],
|
||||
];
|
||||
@endphp
|
||||
@include('business.pages.lamination-factory-payables._standard-page')
|
||||
177
resources/views/business/pages/paper-materials/_styles.blade.php
Normal file
177
resources/views/business/pages/paper-materials/_styles.blade.php
Normal file
@ -0,0 +1,177 @@
|
||||
<style>
|
||||
.paper-material-page {
|
||||
color: #1f2937;
|
||||
}
|
||||
|
||||
.paper-material-toolbar {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-end;
|
||||
gap: 0.75rem;
|
||||
margin-bottom: 1rem;
|
||||
padding: 1rem;
|
||||
border: 1px solid #e5e7eb;
|
||||
border-radius: 0.75rem;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.paper-material-field {
|
||||
display: flex;
|
||||
min-width: 9rem;
|
||||
flex-direction: column;
|
||||
gap: 0.35rem;
|
||||
}
|
||||
|
||||
.paper-material-field label {
|
||||
color: #6b7280;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.paper-material-field input,
|
||||
.paper-material-field select {
|
||||
height: 2.25rem;
|
||||
min-width: 9rem;
|
||||
padding: 0 0.65rem;
|
||||
border: 1px solid #d1d5db;
|
||||
border-radius: 0.375rem;
|
||||
background: #ffffff;
|
||||
color: #374151;
|
||||
font-size: 0.8125rem;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.paper-material-field input:focus,
|
||||
.paper-material-field select:focus {
|
||||
border-color: #6366f1;
|
||||
box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.12);
|
||||
}
|
||||
|
||||
.paper-material-table-card {
|
||||
overflow: hidden;
|
||||
border: 1px solid #e5e7eb;
|
||||
border-radius: 0.75rem;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.paper-material-table-scroll {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.paper-material-table {
|
||||
width: 100%;
|
||||
min-width: 68rem;
|
||||
border-collapse: collapse;
|
||||
font-size: 0.8125rem;
|
||||
}
|
||||
|
||||
.paper-material-table th,
|
||||
.paper-material-table td {
|
||||
height: 2.75rem;
|
||||
padding: 0.55rem 0.7rem;
|
||||
border-right: 1px solid #e5e7eb;
|
||||
border-bottom: 1px solid #e5e7eb;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.paper-material-table th:last-child,
|
||||
.paper-material-table td:last-child {
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.paper-material-table thead th {
|
||||
background: #f4f6fa;
|
||||
color: #374151;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.paper-material-table tbody tr:hover {
|
||||
background: #f9fafb;
|
||||
}
|
||||
|
||||
.paper-material-table .is-number {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.paper-material-table .is-empty td {
|
||||
height: 8rem;
|
||||
color: #9ca3af;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.paper-material-table--penalty thead th:last-child {
|
||||
background: #fff200;
|
||||
color: #111827;
|
||||
}
|
||||
|
||||
.paper-material-table--payables {
|
||||
min-width: 76rem;
|
||||
}
|
||||
|
||||
.paper-material-table--payables thead th {
|
||||
border-color: #064b2a;
|
||||
background: #08ad4f;
|
||||
color: #062b19;
|
||||
text-align: center;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.paper-material-table--payables thead tr:first-child th {
|
||||
height: 3.25rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.paper-material-table--payables thead tr:first-child th:first-child {
|
||||
font-size: 1.2rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.paper-material-table--payables tbody td {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.paper-material-table--payables tbody td:nth-child(2),
|
||||
.paper-material-table--payables tfoot td:nth-child(2) {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.paper-material-table--payables tfoot td {
|
||||
border-color: #087ea4;
|
||||
background: #12afe0;
|
||||
color: #073b4c;
|
||||
font-weight: 700;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.paper-material-table--payables tfoot td:first-child {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.paper-material-pagination {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
padding: 0.75rem 1rem;
|
||||
color: #6b7280;
|
||||
font-size: 0.8125rem;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.paper-material-toolbar {
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.paper-material-field,
|
||||
.paper-material-field input,
|
||||
.paper-material-field select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.paper-material-pagination {
|
||||
align-items: flex-start;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,59 @@
|
||||
<div class="paper-material-page">
|
||||
@include('business.pages.paper-materials._styles')
|
||||
|
||||
<div class="paper-material-toolbar" aria-label="入库纸张筛选">
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-details-out-date">出库日期</label>
|
||||
<input id="paper-details-out-date" type="date">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-details-in-date">入库日期</label>
|
||||
<input id="paper-details-in-date" type="date">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-details-out-factory">出库厂商</label>
|
||||
<input id="paper-details-out-factory" type="text" placeholder="请输入出库厂商">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-details-arrival-factory">到货厂商</label>
|
||||
<input id="paper-details-arrival-factory" type="text" placeholder="请输入到货厂商">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-details-raw-name">原料名称</label>
|
||||
<input id="paper-details-raw-name" type="text" placeholder="请输入原料名称">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="paper-material-table-card">
|
||||
<div class="paper-material-table-scroll">
|
||||
<table class="paper-material-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>出库日期</th>
|
||||
<th>入库日期</th>
|
||||
<th>出库厂商</th>
|
||||
<th>到货厂商</th>
|
||||
<th>原料名称</th>
|
||||
<th class="is-number">实收数量</th>
|
||||
<th class="is-number">纸厂单价</th>
|
||||
<th class="is-number">应付金额</th>
|
||||
<th class="is-number">压贴厂单价</th>
|
||||
<th class="is-number">压贴厂金额</th>
|
||||
<th class="is-number">价格差</th>
|
||||
<th class="is-number">利润</th>
|
||||
<th>申领单号</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="is-empty">
|
||||
<td colspan="13">暂无数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="paper-material-pagination">
|
||||
<span>共 0 条记录</span>
|
||||
<span>第 1 / 1 页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,73 @@
|
||||
<div class="paper-material-page">
|
||||
@include('business.pages.paper-materials._styles')
|
||||
|
||||
<div class="paper-material-toolbar" aria-label="纸厂应付筛选">
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-payables-period">应付月份</label>
|
||||
<input id="paper-payables-period" type="month" value="2026-06">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-payables-supplier">供货单位</label>
|
||||
<input id="paper-payables-supplier" type="text" placeholder="请输入供货单位">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="paper-material-table-card">
|
||||
<div class="paper-material-table-scroll">
|
||||
<table class="paper-material-table paper-material-table--payables">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="12">2026年公司应付纸厂6月份货款</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">序号</th>
|
||||
<th rowspan="2">供货单位</th>
|
||||
<th rowspan="2">月初未付</th>
|
||||
<th>本月采购金额</th>
|
||||
<th>加</th>
|
||||
<th>减</th>
|
||||
<th>加</th>
|
||||
<th>加</th>
|
||||
<th>单位:元</th>
|
||||
<th rowspan="2">对私打款</th>
|
||||
<th rowspan="2">对公打款</th>
|
||||
<th rowspan="2">备注</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>货款金额</th>
|
||||
<th>应付金额</th>
|
||||
<th>赔付</th>
|
||||
<th>垫纸运费</th>
|
||||
<th>纸加工票点</th>
|
||||
<th>实际应付金额</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="is-empty">
|
||||
<td colspan="12">暂无数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>合计</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
<div class="paper-material-pagination">
|
||||
<span>共 0 条记录</span>
|
||||
<span>第 1 / 1 页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,65 @@
|
||||
<div class="paper-material-page">
|
||||
@include('business.pages.paper-materials._styles')
|
||||
|
||||
<div class="paper-material-toolbar" aria-label="纸张价格筛选">
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-price-type">价格类型</label>
|
||||
<select id="paper-price-type">
|
||||
<option>全部价格</option>
|
||||
<option>纸厂价格</option>
|
||||
<option>压贴厂价格</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-raw-name">原料名称</label>
|
||||
<input id="paper-raw-name" type="text" placeholder="请输入原料名称">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-raw-code">原料编号</label>
|
||||
<input id="paper-raw-code" type="text" placeholder="请输入原料编号">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-production-code">生产编号</label>
|
||||
<input id="paper-production-code" type="text" placeholder="请输入生产编号">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-target-factory">目标厂商</label>
|
||||
<input id="paper-target-factory" type="text" placeholder="请输入目标厂商">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-factory-type">厂商类型</label>
|
||||
<select id="paper-factory-type">
|
||||
<option>全部厂商</option>
|
||||
<option>纸厂</option>
|
||||
<option>压贴厂</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="paper-material-table-card">
|
||||
<div class="paper-material-table-scroll">
|
||||
<table class="paper-material-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>价格类型</th>
|
||||
<th>原料名称</th>
|
||||
<th>原料编号</th>
|
||||
<th>生产编号</th>
|
||||
<th class="is-number">最新价格</th>
|
||||
<th>目标厂商</th>
|
||||
<th>厂商类型</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="is-empty">
|
||||
<td colspan="7">暂无数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="paper-material-pagination">
|
||||
<span>共 0 条记录</span>
|
||||
<span>第 1 / 1 页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,56 @@
|
||||
<div class="paper-material-page">
|
||||
@include('business.pages.paper-materials._styles')
|
||||
|
||||
<div class="paper-material-toolbar" aria-label="赔付明细筛选">
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-penalty-order">单号</label>
|
||||
<input id="paper-penalty-order" type="text" placeholder="请输入单号">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-penalty-arrival-factory">到货厂商</label>
|
||||
<input id="paper-penalty-arrival-factory" type="text" placeholder="请输入到货厂商">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-penalty-date">创建日期</label>
|
||||
<input id="paper-penalty-date" type="date">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-penalty-raw-name">原料名称</label>
|
||||
<input id="paper-penalty-raw-name" type="text" placeholder="请输入原料名称">
|
||||
</div>
|
||||
<div class="paper-material-field">
|
||||
<label for="paper-penalty-delivery-factory">送货厂商</label>
|
||||
<input id="paper-penalty-delivery-factory" type="text" placeholder="请输入送货厂商">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="paper-material-table-card">
|
||||
<div class="paper-material-table-scroll">
|
||||
<table class="paper-material-table paper-material-table--penalty">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>单号</th>
|
||||
<th>到货厂商</th>
|
||||
<th>创建日期</th>
|
||||
<th>原料名称</th>
|
||||
<th class="is-number">申领数量</th>
|
||||
<th class="is-number">超时天数</th>
|
||||
<th>事由</th>
|
||||
<th class="is-number">已出库数量</th>
|
||||
<th>送货厂商</th>
|
||||
<th class="is-number">违约金</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="is-empty">
|
||||
<td colspan="10">暂无数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="paper-material-pagination">
|
||||
<span>共 0 条记录</span>
|
||||
<span>第 1 / 1 页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -71,6 +71,10 @@
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
[v-cloak] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (min-width: 1280px) {
|
||||
#main-body > .container {
|
||||
margin-left: 2.5rem;
|
||||
@ -104,10 +108,28 @@
|
||||
</nav>
|
||||
@endif
|
||||
|
||||
@if ($page && !empty($content) && !empty($content['view']))
|
||||
@php
|
||||
$pageView = null;
|
||||
|
||||
if ($page) {
|
||||
$viewName = 'business.pages.' . $section['slug'] . '.' . $page['slug'];
|
||||
|
||||
if ($tabs->isNotEmpty()) {
|
||||
$viewName .= '.' . ($activeTab['slug'] ?? '');
|
||||
}
|
||||
|
||||
if (view()->exists($viewName)) {
|
||||
$pageView = $viewName;
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
|
||||
@if (!empty($content) && !empty($content['view']))
|
||||
<section class="business-content-section" aria-label="{{ $activeTab['title'] ?? ($page['title'] ?? $section['title']) }}">
|
||||
@include($content['view'], $content)
|
||||
</section>
|
||||
@elseif ($pageView)
|
||||
@include($pageView)
|
||||
@else
|
||||
<section class="business-blank-page" aria-label="{{ $activeTab['title'] ?? ($page['title'] ?? $section['title']) }}"></section>
|
||||
@endif
|
||||
|
||||
112
tests/Feature/Business/PagesTest.php
Normal file
112
tests/Feature/Business/PagesTest.php
Normal file
@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature\Business;
|
||||
|
||||
use App\Models\Auth\Permission;
|
||||
use Tests\Feature\FeatureTestCase;
|
||||
|
||||
class PagesTest extends FeatureTestCase
|
||||
{
|
||||
public function testSupplierPayablesPageRendersItsSpecificContent()
|
||||
{
|
||||
$this->user->attachPermission(
|
||||
Permission::where('name', 'read-admin-panel')->firstOrFail()
|
||||
);
|
||||
|
||||
$this->loginAs()
|
||||
->get(route('business.pages.show', [
|
||||
'section' => 'supplier-payables',
|
||||
'page' => 'payment-reconciliation',
|
||||
]))
|
||||
->assertOk()
|
||||
->assertSee('id="goods-reconciliation-app"', false)
|
||||
->assertSee('public/js/ecommerce-finance/goods-reconciliations.min.js', false)
|
||||
->assertDontSee('class="business-blank-page"', false);
|
||||
}
|
||||
|
||||
public function testPaperMaterialPagesRenderAsSeparateTables()
|
||||
{
|
||||
$this->user->attachPermission(
|
||||
Permission::where('name', 'read-admin-panel')->firstOrFail()
|
||||
);
|
||||
|
||||
$pages = [
|
||||
'paper-prices' => '价格类型',
|
||||
'paper-details' => '压贴厂金额',
|
||||
'penalty-details' => '违约金',
|
||||
'paper-factory-payables' => '2026年公司应付纸厂6月份货款',
|
||||
];
|
||||
|
||||
foreach ($pages as $page => $expectedHeader) {
|
||||
$this->loginAs()
|
||||
->get(route('business.pages.show', [
|
||||
'section' => 'paper-materials',
|
||||
'page' => $page,
|
||||
]))
|
||||
->assertOk()
|
||||
->assertSee($expectedHeader)
|
||||
->assertSee('class="paper-material-table', false)
|
||||
->assertDontSee('class="business-blank-page"', false);
|
||||
}
|
||||
}
|
||||
|
||||
public function testEdgeBandingMaterialPagesRenderAsSeparateTables()
|
||||
{
|
||||
$this->user->attachPermission(
|
||||
Permission::where('name', 'read-admin-panel')->firstOrFail()
|
||||
);
|
||||
|
||||
$pages = [
|
||||
'edge-banding-prices' => '价格类型',
|
||||
'details' => '封边条厂单价',
|
||||
'compensation' => '最新出库日期',
|
||||
'edge-banding-payables' => '2026年公司应付封边条厂6月份货款',
|
||||
];
|
||||
|
||||
foreach ($pages as $page => $expectedHeader) {
|
||||
$this->loginAs()
|
||||
->get(route('business.pages.show', [
|
||||
'section' => 'edge-banding-materials',
|
||||
'page' => $page,
|
||||
]))
|
||||
->assertOk()
|
||||
->assertSee($expectedHeader)
|
||||
->assertSee('class="edge-banding-table', false)
|
||||
->assertDontSee('class="business-blank-page"', false);
|
||||
}
|
||||
}
|
||||
|
||||
public function testLaminationFactoryPayablePagesRenderAsSeparateTables()
|
||||
{
|
||||
$this->user->attachPermission(
|
||||
Permission::where('name', 'read-admin-panel')->firstOrFail()
|
||||
);
|
||||
|
||||
$pages = [
|
||||
'lamination-prices' => '执行日期',
|
||||
'finished-board-prices' => '最新价格',
|
||||
'lamination-fees' => '单号类型',
|
||||
'finished-board-freight' => '成品板规格',
|
||||
'paper-stock-in' => '家具厂',
|
||||
'paper-stock-out' => '压贴厂金额',
|
||||
'factory-raw-boards' => '纸张合计',
|
||||
'raw-board-freight' => '素板规格',
|
||||
'invoice-tax-points' => '对账金额',
|
||||
'factory-compensation' => '来源金额',
|
||||
'factory-payables-details' => '成品板运费合计',
|
||||
'factory-payables-report' => '2026年公司应付压贴厂5月份货款',
|
||||
];
|
||||
|
||||
foreach ($pages as $page => $expectedHeader) {
|
||||
$this->loginAs()
|
||||
->get(route('business.pages.show', [
|
||||
'section' => 'lamination-factory-payables',
|
||||
'page' => $page,
|
||||
]))
|
||||
->assertOk()
|
||||
->assertSee($expectedHeader)
|
||||
->assertSee('class="lamination-table', false)
|
||||
->assertDontSee('class="business-blank-page"', false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user