From 74fd6eb7fb0322078f7946f51073f20e90231df1 Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期二, 01 四月 2025 11:54:00 +0800
Subject: [PATCH] #
---
src/main/webapp/views/resource/resource.html | 334 ++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 279 insertions(+), 55 deletions(-)
diff --git a/src/main/webapp/views/resource/resource.html b/src/main/webapp/views/resource/resource.html
index 55badcd..099bceb 100644
--- a/src/main/webapp/views/resource/resource.html
+++ b/src/main/webapp/views/resource/resource.html
@@ -7,79 +7,303 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
<link rel="stylesheet" href="../../static/css/cool.css" media="all">
<link rel="stylesheet" href="../../static/css/common.css" media="all">
+ <style>
+ #detail {
+ padding: 25px 30px 0 0;
+ }
+ .ew-tree-table-box {
+ height: 100%;
+ }
+ </style>
</head>
<body>
-<!-- 鎼滅储鏍� -->
-<div id="search-box" class="layui-form layui-card-header">
- <div class="layui-inline">
- <label class="layui-form-label">缂栥��銆�鍙凤細</label>
- <div class="layui-input-inline">
- <input class="layui-input" type="text" name="id" placeholder="璇疯緭鍏�" autocomplete="off">
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">鑿滃崟鍚嶇О锛�</label>
- <div class="layui-input-inline">
- <input name="name" class="layui-input" type="text" placeholder="鑿滃崟鍚嶇О" >
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">鑿滃崟绛夌骇锛�</label>
- <div class="layui-input-inline">
- <select name="level">
- <option value="" style="display: none"></option>
- <option value="1">涓�绾ц彍鍗�</option>
- <option value="2">浜岀骇鑿滃崟</option>
- <option value="3">涓夌骇鑿滃崟</option>
- </select>
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">鐖剁骇鑿滃崟锛�</label>
- <div class="layui-input-inline cool-auto-complete">
- <input id="resourceId" class="layui-input" name="resource_id" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
- <input id="resourceName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�" onfocus=this.blur()>
- <div class="cool-auto-complete-window">
- <input class="cool-auto-complete-window-input" data-key="resourceQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">
- <select class="cool-auto-complete-window-select" data-key="resourceQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
- </select>
- </div>
- </div>
- </div>
- <!-- 寰呮坊鍔� -->
- <div id="data-search-btn" class="layui-btn-container layui-form-item">
- <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
- <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+<!-- 姝f枃寮�濮� -->
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <!-- 鏁版嵁琛ㄦ牸 -->
+ <table id="resource"></table>
+ </div>
</div>
</div>
-<!-- 琛ㄦ牸 -->
-<table class="layui-hide" id="resource" lay-filter="resource"></table>
-<script type="text/html" id="toolbar">
- <div class="layui-btn-container">
- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
- <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
- <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
- </div>
-</script>
-
<script type="text/html" id="operate">
- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>
- <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-del" lay-event="del">鍒犻櫎</a>
</script>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form" style="margin: 0">
+ <input name="id" type="hidden">
+ <input name="uuid" type="hidden">
+ <input name="level" type="hidden">
+ <div class="layui-row">
+
+ <div class="layui-col-md6">
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">涓婄骇鑿滃崟</label>
+ <div class="layui-input-block">
+ <div id="resourceParentSel" class="ew-xmselect-tree"></div>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鑿滃崟缂栫爜</label>
+ <div class="layui-input-block">
+ <input name="code" placeholder="璇疯緭鍏ヨ彍鍗曠紪鐮�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">绫诲瀷</label>
+ <div class="layui-input-block">
+ <select name="level" lay-vertype="tips" lay-verify="required" required="">
+ <option value="">璇烽�夋嫨绫诲瀷</option>
+ <option value="1">涓�绾ц彍鍗�</option>
+ <option value="2">浜岀骇鑿滃崟</option>
+ <option value="3">鎸夐挳</option>
+ </select>
+ </div>
+ </div>
+
+ </div>
+
+ <div class="layui-col-md6">
+
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鑿滃崟鍚嶇О</label>
+ <div class="layui-input-block">
+ <input name="name" placeholder="璇疯緭鍏ヨ彍鍗曞悕绉�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">鎺掑簭</label>
+ <div class="layui-input-block">
+ <input name="sort" placeholder="璇疯緭鍏ユ帓搴�" class="layui-input" lay-verify="number">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鐘舵��</label>
+ <div class="layui-input-block">
+ <select name="status" lay-vertype="tips" lay-verify="required" required="">
+ <option value="">璇烽�夋嫨鐘舵��</option>
+ <option value="1">姝e父</option>
+ <option value="0">绂佺敤</option>
+ </select>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+<script type="text/html" id="typeTpl">
+ {{# if( d.level === 1 ){ }}
+ <span name="level" class="layui-badge layui-badge-green">鑿滃崟</span>
+ {{# } else if(d.level === 2){ }}
+ <span name="level" class="layui-badge layui-badge-green">鑿滃崟</span>
+ {{# } else if(d.level === 3){ }}
+ <span name="level" class="layui-badge layui-badge-gray">鎸夐挳</span>
+ {{# } }}
+</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/js/resource/resource.js" charset="utf-8"></script>
-<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+<script>
+ layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+ }).use(['form','treeTable', 'admin', 'xmSelect'], function() {
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var form = layui.form;
+ var admin = layui.admin;
+ var treeTable = layui.treeTable;
+ var xmSelect = layui.xmSelect;
+ var tbDataList = [];
+ var insTb = treeTable.render({
+ elem: '#resource',
+ url: baseUrl+'/resource/tree/auth',
+ headers: {token: localStorage.getItem('token')},
+ height: 'full-200',
+ toolbar: ['<p>',
+ '<button lay-event="add" class="layui-btn layui-btn-sm icon-btn"><i class="layui-icon"></i>娣诲姞</button> ',
+ '<button lay-event="del" class="layui-btn layui-btn-sm layui-btn-danger icon-btn"><i class="layui-icon"></i>鍒犻櫎</button>',
+ '</p>'].join(''),
+ tree: {
+ iconIndex: 2, // 鎶樺彔鍥炬爣鏄剧ず鍦ㄧ鍑犲垪
+ isPidData: true, // 鏄惁鏄痠d銆乸id褰㈠紡鏁版嵁
+ idName: 'id', // id瀛楁鍚嶇О
+ pidName: 'resourceId' // pid瀛楁鍚嶇О
+ },
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+ ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80, hide: true}
+ ,{field: 'name', align: 'left',title: '鑿滃崟鍚嶇О'}
+ ,{field: 'code', align: 'center',title: '鑿滃崟缂栫爜'}
+ // ,{field: 'resourceName', align: 'center',title: '鐖剁骇鑿滃崟'}
+ // ,{field: 'level$', align: 'center',title: '鑿滃崟绛夌骇'}
+ ,{field: 'type', align: 'center',title: '绫诲瀷', templet: '#typeTpl', width: 120}
+ ,{field: 'sort', align: 'center',title: '鎺掑簭'}
+ ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ done: function (data) {
+ $('.ew-tree-table-box').css('height', '100%');
+ // insTb.expandAll();
+ tbDataList = data;
+ limit();
+ }
+ });
+
+ /* 琛ㄦ牸澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
+ treeTable.on('toolbar(resource)', function (obj) {
+ if (obj.event === 'add') { // 娣诲姞
+ showEditModel();
+ } else if (obj.event === 'del') { // 鍒犻櫎
+ var checkRows = insTb.checkStatus();
+ if (checkRows.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ var ids = checkRows.map(function (d) {
+ if (!d.LAY_INDETERMINATE) {
+ return d.id;
+ } else {
+ return null;
+ }
+ });
+ doDel({ids: ids});
+ }
+ });
+
+ /* 琛ㄦ牸鎿嶄綔鍒楃偣鍑讳簨浠� */
+ treeTable.on('tool(resource)', function (obj) {
+ if (obj.event === 'edit') { // 淇敼
+ showEditModel(obj.data);
+ } else if (obj.event === 'del') { // 鍒犻櫎
+ doDel(obj);
+ }
+ });
+
+ /* 鏄剧ず琛ㄥ崟寮圭獥 */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '鏉冮檺',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ // 鍥炴樉琛ㄥ崟鏁版嵁
+ form.val('detail', mData);
+ // 琛ㄥ崟鎻愪氦浜嬩欢
+ form.on('submit(editSubmit)', function (data) {
+ data.field.resourceId = insXmSel.getValue('valueStr');
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/resource/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ insTb.refresh();
+ setTimeout(function () {
+ insTb.expand(data.field.resourceId);
+ }, 200)
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+
+ // 娓叉煋涓嬫媺鏍�
+ var insXmSel = xmSelect.render({
+ el: '#resourceParentSel',
+ height: '250px',
+ data: insTb.options.data,
+ initValue: mData&&mData.resourceId!=null ? [mData.resourceId] : [],
+ model: {label: {type: 'text'}},
+ prop: {
+ name: 'name',
+ value: 'id'
+ },
+ radio: true,
+ clickClose: true,
+ tree: {
+ show: true,
+ indent: 15,
+ strict: false,
+ expandedKeys: false
+ }
+ });
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function doDel(obj) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ var ids;
+ if (obj.data) {
+ ids = [];
+ ids[0] = obj.data.id;
+ } else {
+ ids = obj.ids;
+ }
+ $.ajax({
+ url: baseUrl+"/resource/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ insTb.refresh();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ });
+</script>
</body>
</html>
--
Gitblit v1.9.1