354 lines
19 KiB
HTML
354 lines
19 KiB
HTML
<!doctype html>
|
|
<!--
|
|
* Tabler - Premium and Open Source dashboard template with responsive and high quality UI.
|
|
* @version 1.0.0-beta19
|
|
* @link https://tabler.io
|
|
* Copyright 2018-2023 The Tabler Authors
|
|
* Copyright 2018-2023 codecalm.net Paweł Kuna
|
|
* Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE)
|
|
-->
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/>
|
|
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
|
|
<title></title>
|
|
<!-- CSS files -->
|
|
<link th:href="@{/css/tabler.min.css}" rel="stylesheet"/>
|
|
<link th:href="@{/css/tabler-flags.min.css}" rel="stylesheet"/>
|
|
<link th:href="@{/css/tabler-payments.min.css}" rel="stylesheet"/>
|
|
<link th:href="@{/css/tabler-vendors.min.css}" rel="stylesheet"/>
|
|
|
|
|
|
</head>
|
|
<body>
|
|
|
|
<div class="page">
|
|
<!-- Sidebar -->
|
|
<aside class="navbar navbar-vertical navbar-expand-lg" data-bs-theme="dark">
|
|
<div class="container-fluid">
|
|
<div class="collapse navbar-collapse" id="sidebar-menu">
|
|
|
|
<div th:replace="fragments/menu :: menuList(${user.menuList})"></div>
|
|
</div>
|
|
</div>
|
|
|
|
</aside>
|
|
<!-- Navbar -->
|
|
<header class="navbar navbar-expand-md d-none d-lg-flex d-print-none">
|
|
<div class="container-xl" th:insert="fragments/header">
|
|
|
|
|
|
</div>
|
|
</header>
|
|
<div class="page-wrapper">
|
|
<div class="page-header d-print-none">
|
|
<div class="container-xl">
|
|
<div class="container-xl">
|
|
<div class="row g-2 align-items-center">
|
|
<div class="col">
|
|
<h2 class="page-title" th:text="${user.pageTitle}">
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Page body -->
|
|
<div class="page-body">
|
|
<div class="container-xl">
|
|
<div class="row row-cards">
|
|
<form name="searchForm" id="searchForm" th:action="@{/codeOption/list}">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
|
|
<div class="row g-2">
|
|
<div class="col"><select class="form-select" name="dictId">
|
|
<option value="">请选择码表类型</option>
|
|
|
|
<option th:each="opt : ${allDict}"
|
|
th:value="${opt.id}"
|
|
th:text="${opt.codeNameCn}"
|
|
th:selected="${opt.id} == ${data.searchForm.dictId}">
|
|
</select></div>
|
|
|
|
<div class="col-auto">
|
|
<a href="javascript:void(0)" class="btn btn-icon" aria-label="Button"
|
|
onclick="_resetPageNoSearch();return false;">
|
|
<!-- Download SVG icon from http://tabler-icons.io/i/search -->
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24"
|
|
height="24" viewBox="0 0 24 24" stroke-width="2"
|
|
stroke="currentColor" fill="none" stroke-linecap="round"
|
|
stroke-linejoin="round">
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
<path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"></path>
|
|
<path d="M21 21l-6 -6"></path>
|
|
</svg>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<input type="hidden" id="_currentPage" name="currentPage"
|
|
th:value="${data.searchForm.currentPage}"/>
|
|
|
|
</div>
|
|
.
|
|
<div class="card-body border-bottom py-3">
|
|
<div class="d-flex">
|
|
<div class="text-muted">
|
|
显示
|
|
<div class="mx-2 d-inline-block">
|
|
<input type="text" class="form-control form-control-sm"
|
|
th:value="${data.searchForm.pageSize}" size="3"
|
|
name="pageSize">
|
|
</div>
|
|
条
|
|
</div>
|
|
<div class="ms-auto text-muted">
|
|
<div class="col-md-auto ms-auto d-print-none">
|
|
<div class="btn-list">
|
|
|
|
<a href="#" class="btn btn-ghost-primary active "
|
|
onclick="common_add()">
|
|
<!-- Download SVG icon from http://tabler-icons.io/i/player-pause -->
|
|
|
|
添加
|
|
</a>
|
|
<a href="#" class="btn btn-ghost-danger active"
|
|
onclick="common_batchRemove();return false;">
|
|
<!-- Download SVG icon from http://tabler-icons.io/i/player-pause -->
|
|
|
|
批量删除
|
|
</a>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="table-responsive">
|
|
<table class="table card-table table-vcenter text-nowrap datatable">
|
|
<thead>
|
|
<tr>
|
|
<th class="w-1"><input class="form-check-input m-0 align-middle"
|
|
type="checkbox" onclick="checkBoxIdChanged(this)"></th>
|
|
<th class="w-1">No.
|
|
<!-- Download SVG icon from http://tabler-icons.io/i/chevron-up -->
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-sm icon-thick"
|
|
width="24" height="24" viewBox="0 0 24 24" stroke-width="2"
|
|
stroke="currentColor" fill="none" stroke-linecap="round"
|
|
stroke-linejoin="round">
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
|
<path d="M6 15l6 -6l6 6"/>
|
|
</svg>
|
|
</th>
|
|
<th>类别</th>
|
|
<th>项名</th>
|
|
<th>项值</th>
|
|
<th>顺序</th>
|
|
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody th:if="${data.totalCount>0}">
|
|
|
|
<tr th:each="item:${data.list}">
|
|
<td><input class="form-check-input m-0 align-middle" name="itemId"
|
|
th:value="${item.id}" type="checkbox"
|
|
aria-label="Select invoice"></td>
|
|
<td th:text="${item.seq}"></td>
|
|
<td th:text="${item.dictName}"></td>
|
|
<td th:text="${item.optionName}"></td>
|
|
<td th:text="${item.optionValue}"></td>
|
|
<td th:text="${item.optionOrder}"></td>
|
|
|
|
<td>
|
|
<a href="#" th:onclick="|common_edit(${item.id})|">编辑</a>
|
|
<a href="#" th:onclick="|common_delete(${item.id})|">删除</a>
|
|
<a href="#" th:onclick="|common_view(${item.id})|">详情</a>
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="card-footer d-flex align-items-center" th:if="${data.totalCount>0}">
|
|
<p class="m-0 text-muted"> 共 <span
|
|
th:text="${data.totalCount}"></span>条
|
|
记录</p>
|
|
<ul class="pagination m-0 ms-auto">
|
|
<li th:class="${data.isHasPrevious()}?'page-item':'page-item disabled'">
|
|
<a class="page-link" href="#" tabindex="-1" aria-disabled="true"
|
|
onclick="_pre()">
|
|
<!-- Download SVG icon from http://tabler-icons.io/i/chevron-left -->
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24"
|
|
height="24"
|
|
viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"
|
|
fill="none"
|
|
stroke-linecap="round" stroke-linejoin="round">
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
|
<path d="M15 6l-6 6l6 6"/>
|
|
</svg>
|
|
上一页
|
|
</a>
|
|
</li>
|
|
<li th:each="page:${#numbers.sequence(data.startDisplayPage,data.endDisplayPage)}"
|
|
th:class="${page} == ${data.currentPage}?'page-item active':'page-item'">
|
|
<a class="page-link" href="#" th:text="${page}"
|
|
th:onclick="|_setPage(${page})|"></a>
|
|
</li>
|
|
<li th:class="${data.isHasNext()}?'page-item':'page-item disabled'">
|
|
<a class="page-link" href="#" onclick="_next()">
|
|
下一页
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24"
|
|
height="24"
|
|
viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"
|
|
fill="none"
|
|
stroke-linecap="round" stroke-linejoin="round">
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
|
<path d="M9 6l6 6l-6 6"/>
|
|
</svg>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<footer class="footer footer-transparent d-print-none">
|
|
<div class="container-xl" th:insert="fragments/footer">
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script th:src="@{/js/tabler.min.js}" defer></script>
|
|
<script th:src="@{/js/common/common.js}"></script>
|
|
|
|
|
|
</body>
|
|
</html>
|
|
<div th:replace="fragments/dialog :: confirmationDialog"></div>
|
|
<div class="modal modal-blur fade" id="_addDialog" tabindex="-1" role="dialog" aria-hidden="true">
|
|
<div class="modal-dialog modal-full-width modal-dialog-centered" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title"></h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"
|
|
onclick="closeDialog('_addDialog')"></button>
|
|
</div>
|
|
|
|
<form name="entityForm" id="entityForm" th:action="@{/codeOption/save}" th:list="@{/codeOption/list}"
|
|
th:delete="@{/codeOption/remove}" th:batchDelete="@{/codeOption/batchRemove}"
|
|
th:view="@{/codeOption/view}" th:path="@{/codeOption/}">
|
|
<input type="hidden" name="id">
|
|
<div class="modal-body">
|
|
<div class="row row-cards">
|
|
<div class="card">
|
|
<div class="card-header"><h3 class="card-title">码表数据信息</h3></div>
|
|
<div class="card-body">
|
|
<div class="mb-3 row">
|
|
<label class="col-3 col-form-label required">所属码表</label>
|
|
<div class="col">
|
|
<select class="form-select" name="dictId">
|
|
<option th:each="opt : ${allDict}"
|
|
th:value="${opt.id}"
|
|
th:text="${opt.codeNameCn}"
|
|
th:selected="${opt.id} == ${data.searchForm.dictId}">
|
|
</select>
|
|
<div class="invalid-feedback" id="dictId_tip"></div>
|
|
</div>
|
|
</div>
|
|
<div class="mb-3 row">
|
|
<label class="col-3 col-form-label required">
|
|
项名</label>
|
|
<div class="col">
|
|
<input type="text" class="form-control" placeholder="选项名" name="optionName">
|
|
<div class="invalid-feedback" id="optionName_error_tip"></div>
|
|
</div>
|
|
</div>
|
|
<div class="mb-3 row">
|
|
<label class="col-3 col-form-label ">
|
|
项值</label>
|
|
<div class="col">
|
|
<input type="text" class="form-control" placeholder="选项值" name="optionValue">
|
|
<div class="invalid-feedback" id="optionValue_error_tip"></div>
|
|
</div>
|
|
</div>
|
|
<div class="mb-3 row">
|
|
<label class="col-3 col-form-label ">
|
|
顺序</label>
|
|
<div class="col">
|
|
<input type="number" class="form-control" placeholder="选项顺序"
|
|
name="optionOrder">
|
|
<div class="invalid-feedback" id="optionOrder_error_tip"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<div class="modal-footer">
|
|
<a href="#" class="btn btn-link link-secondary" onclick="closeDialog('_addDialog')">
|
|
取消
|
|
</a>
|
|
<a href="#" class="btn btn-primary ms-auto" data-bs-dismiss="modal" onclick="common_save()">
|
|
<!-- Download SVG icon from http://tabler-icons.io/i/plus -->
|
|
|
|
确定
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal modal-blur fade" id="detailDialog" tabindex="-1" role="dialog" aria-hidden="true">
|
|
<div class="modal-dialog modal-full-width modal-dialog-centered" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title"></h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"
|
|
onclick="closeDialog('detailDialog')"></button>
|
|
</div>
|
|
|
|
<div class="modal-body">
|
|
<div class="row row-cards">
|
|
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h3 class="card-title"></h3>
|
|
</div>
|
|
<div class="card-body" id="view-body-project">
|
|
<div class="datagrid">
|
|
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title" id="detail_dict_id_name">所属码表</div>
|
|
<div class="datagrid-content" id="detail_dictName_value"></div>
|
|
</div>
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title" id="detail_option_name_name">项名</div>
|
|
<div class="datagrid-content" id="detail_optionName_value"></div>
|
|
</div>
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title" id="detail_option_value_name">项值</div>
|
|
<div class="datagrid-content" id="detail_optionValue_value"></div>
|
|
</div>
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title" id="detail_option_order_name">顺序</div>
|
|
<div class="datagrid-content" id="detail_optionOrder_value"></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|