提交 d54c3439 编写于 作者: L lsh

新增商品分类和系统消息功能

上级 d9252f0a
#(token)
<input type="hidden" name="id" value="#(goodsCategory.id??)">
<div class="row">
<div class="col-1"></div>
<div class="col">
<div class="input-group mb-3">
<span class="input-group-text">商品分类名称<span class="text-danger">*</span></span>
<input type="text" maxlength="30" class="form-control" name="name" id="goodsCategory_name" placeholder="请输入商品分类名称" value="#(goodsCategory.name??)">
</div>
</div>
<div class="col-1"></div>
</div>
<div class="row">
<div class="col-1"></div>
<div class="col">
<div class="input-group mb-3">
<span class="input-group-text">父级分类</span>
<select class="form-select search-input" name="parent_id" id="goodsCategory_parent_id">
<option value="0" #if(goodsCategory && goodsCategory.parent_id == 0) selected #end>顶级分类</option>
#for(x : topList)
#if(parent_id)
#@goodsCategoryOptions(parent_id, x, "")
#else
#@goodsCategoryOptions(goodsCategory.parent_id??0, x, "")
#end
#end
</select>
</div>
</div>
<div class="col-1"></div>
</div>
<div class="row">
<div class="col-1"></div>
<div class="col">
<div class="input-group mb-3">
<span class="input-group-text">备注</span>
<input type="text" class="form-control" name="remark" placeholder="请输入备注" value="#(goodsCategory.remark??)">
</div>
</div>
<div class="col-1"></div>
</div>
<script type="application/javascript">
goodsCategory.formChecking = function() {
if($.trim($("#goodsCategory_name").val()) == '') {
beekit.tips('商品分类名称不能为空!', '#goodsCategory_name');
$("#goodsCategory_name").focus();
return false;
}
if($.trim($("#goodsCategory_name").val()).length > 30) {
beekit.tips('商品分类名称不能过长!', '#goodsCategory_name');
$("#goodsCategory_name").focus();
return false;
}
return true;
};
</script>
\ No newline at end of file
<script type="application/javascript">
if(typeof(goodsCategory) == "undefined") {
goodsCategory = {};
}
</script>
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered ">
<div class="modal-content">
<div class="modal-header">
<h6 class="modal-title">新增商品分类</h6>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="goodsCategory-add-form" onsubmit="goodsCategory.create();return false;">
#include("_form.html")
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" aria-label="Close">关闭</button>
<button type="button" class="btn btn-primary" onclick="goodsCategory.create();">保存</button>
</div>
</div>
</div>
<script type="application/javascript">
$(function() {
// 初始化bootstrap相关组件
common.initBootstrap();
formInput.listenkeyUp("#goodsCategory-add-form");
setTimeout(function() {
$("#goodsCategory_name").focus();
}, 200);
});
goodsCategory.create = function() {
var result = goodsCategory.formChecking();
if(!result) {
return;
}
beekit.ajaxPost("/goods/goods/category/create", $("#goodsCategory-add-form").serialize(), function(ret) {
beekit.msg(ret);
if (ret.state == "ok") {
if('#(sourcePage)' == 'supplierFormPage') {
beekit.modalChildClose();
beekit.ajaxFill("/goods/goods/category/optionList", {}, "#supplierInfo_supplier_category_id");
} else {
beekit.modalClose();
goodsCategory.list(ret.targetId);
}
}
});
};
</script>
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered ">
<div class="modal-content">
<div class="modal-header">
<h6 class="modal-title">编辑商品分类</h6>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="goodsCategory-edit-form" onsubmit="goodsCategory.update();return false;">
#include("_form.html")
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" aria-label="Close">关闭</button>
<button type="button" class="btn btn-primary" onclick="goodsCategory.update();">保存</button>
</div>
</div>
</div>
<script type="application/javascript">
$(function() {
// 初始化bootstrap相关组件
common.initBootstrap();
formInput.listenkeyUp("#goodsCategory-edit-form");
});
goodsCategory.update = function() {
var result = goodsCategory.formChecking();
if(!result) {
return;
}
beekit.ajaxPost("/goods/goods/category/update", $("#goodsCategory-edit-form").serialize(), function(ret) {
beekit.msg(ret);
if (ret.state == "ok") {
beekit.modalClose();
goodsCategory.list(#(goodsCategory.id));
}
});
};
</script>
<div class="card mb-2">
<div class="card-body search-form">
<form id="goodsCategory-search-form">
<input type="hidden" id="goodsCategory_pageNumber" name="pageNumber" value="1">
<div class="row align-items-center">
<div class="col">
#if(session.hasOper(Permissions.goods_goods_category_create))
<button type="button" class="btn btn-sm btn-primary" onclick="goodsCategory.add(0);">
<i class="bi bi-plus-circle"></i>新增商品分类
</button>
#end
</div>
</div>
</form>
</div>
</div>
<div id="data-list-goodsCategory">
</div>
<script type="application/javascript">
var goodsCategory = {};
$(function() {
// 初始化bootstrap相关组件
common.initBootstrap();
// 加载列表
goodsCategory.list();
});
goodsCategory.list = function(targetId) {
$("#goodsCategory_pageNumber").val(1);
beekit.ajaxFillPage("/goods/goods/category/list", "#goodsCategory-search-form", "#data-list-goodsCategory", "goodsCategory-data-"+targetId);
};
goodsCategory.add = function(parentId) {
beekit.modal("/goods/goods/category/add?parent_id="+parentId);
};
</script>
<table class="table table-hover table-bordered bg-white">
<thead>
<tr class="table-header">
<th>商品分类名称</th>
<th>备注</th>
<th style="width: 20%">操作</th>
</tr>
</thead>
<tbody class="table-row">
#for (x : topList)
#@goodsCategoryTable(x, "")
#end
</tbody>
</table>
#define goodsCategoryTable(category, level)
<tr id="goodsCategory-data-#(category.id)">
<td class="fw-bold text-secondary" style="text-align: left; padding-left: 30px">
#(level)
#if(category.parent_id != 0)
└─
#end
&nbsp;#(category.name)</td>
<td>#(category.remark??)</td>
<td>
#if(session.hasOper(Permissions.goods_goods_category_create))
<button type="button" class="btn btn-sm sm-more btn-outline-primary" onclick="goodsCategory.add(#(category.id));">新增子类</button>
#end
#if(session.hasOper(Permissions.goods_goods_category_update))
<button type="button" class="btn btn-sm sm-more btn-outline-primary" onclick="goodsCategory.edit(#(category.id));">修改</button>
#end
#if(session.hasOper(Permissions.goods_goods_category_delete))
<button type="button" class="btn btn-sm sm-more btn-outline-danger" onclick="goodsCategory.delete(#(category.id));">删除</button>
#end
</td>
</tr>
#set(childList = category.childList)
#if(childList.size() <= 0)
#return
#end
#if(level == "")
#set(level = level+"&nbsp;&nbsp;&nbsp;&nbsp;")
#else
#set(level = level+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;")
#end
#for(child : childList)
#@goodsCategoryTable(child, level)
#end
#end
<script type="application/javascript">
$(function() {
// 初始化bootstrap相关组件
common.initBootstrap();
// 滚动表头处理
common.tableFixedWidth();
common.tableFixed();
$(".main").scroll(function() {
common.tableFixed();
});
});
goodsCategory.edit = function(id) {
beekit.modal("/goods/goods/category/edit?id="+id);
};
goodsCategory.delete = function(id) {
beekit.focusColor("goodsCategory-data-"+id);
beekit.confirmByUrl("/goods/goods/category/delete", {"id":id}, "确认要删除此商品分类吗?", function(ret) {
beekit.msg(ret);
goodsCategory.list(id);
});
};
</script>
#for(x : page.list)
<option value="#(x.id)">#(x.name)</option>
#end
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered modal-lg">
<div class="modal-content" style="height:500px;max-height:500px;">
<form id="msgNotice-search-form">
<input type="hidden" id="msgNotice_pageNumber" name="pageNumber">
<div class="modal-header">
<div class="row" style="width:100%">
<div class="col-3"><h6 class="modal-title">消息中心</h6></div>
<div class="col text-center">
<div class="btn-group" role="group" aria-label="Basic radio toggle button group">
<input type="radio" class="btn-check" name="read_flag" id="msgNotice_wait_read_msg" autocomplete="off" checked value="false">
<label class="btn btn-outline-primary" for="msgNotice_wait_read_msg">未读</label>
<input type="radio" class="btn-check" name="read_flag" id="msgNotice_finish_read_msg" autocomplete="off" value="true">
<label class="btn btn-outline-primary" for="msgNotice_finish_read_msg">已读</label>
<input type="radio" class="btn-check" name="read_flag" id="msgNotice_all_msg" autocomplete="off" value="">
<label class="btn btn-outline-primary" for="msgNotice_all_msg">全部</label>
</div>
</div>
<div class="col-3 text-end">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
</div>
</div>
</form>
<div class="modal-body" style="min-height:300px;">
<div class="row mt-3" id="msgNotice-data-list"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" aria-label="Close">关闭</button>
</div>
</div>
</div>
<script type="application/javascript">
var msgNotice = {};
$(function() {
msgNotice.list();
$("#msgNotice-search-form input[name=read_flag]").on("click", function(evt) {
msgNotice.list();
});
});
msgNotice.list = function() {
beekit.ajaxFillPage("/msg/notice/list", "#msgNotice-search-form", "#msgNotice-data-list");
}
</script>
\ No newline at end of file
#if(page.totalRow <=0)
<h6 style="text-align: center; padding: 30px 0; ">暂无消息通知!</h6>
#else
<table class="table">
<thead class="table-light">
<tr>
<th scope="col-2">级别</th>
<th scope="col-2">类型</th>
<th scope="col-6">标题</th>
<th scope="col-2">时间</th>
</tr>
</thead>
<tbody style="text-align: center;">
#for (x : page.getList())
#set(msgNotice = x.msgNotice)
<tr>
<td>
#if(msgNotice.msg_level == MsgLevelEnum.important.value)
<span class="badge bg-warning">重要</span>
#elseif(msgNotice.msg_level == MsgLevelEnum.urgent.value)
<span class="badge bg-danger">紧急</span>
#else
<span class="badge bg-secondary">普通</span>
#end
</td>
<td>#(msgNotice.msgTypeName)</td>
<td #if(!x.read_flag) class="fw-bold" #end >
<a href="javascript:void(0);" onclick="msgNotice.show(this,#(x.id));" class="text-black">
#(msgNotice.title??)
</a>
</td>
<td>#date(x.created_at, "yyyy-MM-dd HH:mm:ss")</td>
</tr>
#end
</tbody>
</table>
<div class="row">
<div class="col">
<div class="float-end">
#@paginate(page.pageNumber, page.totalPage, "")
</div>
</div>
</div>
#end
<script type="application/javascript">
$(function() {
// 初始化bootstrap相关组件
common.initBootstrap();
$("#msgNotice_pageNumber").val(#(page.pageNumber));
});
msgNotice.show = function(_this, id) {
beekit.modalChild('/msg/notice/show?id='+id);
$(_this).parent().removeClass('fw-bold');
};
</script>
\ No newline at end of file
#set(msgNotice=msg.msgNotice)
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered modal-lg">
<div class="modal-content" style="height:500px;max-height:500px;">
<div class="modal-header">
<h6 class="modal-title">#(msgNotice.msgTypeName)</h6>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body" style="min-height: 300px;">
<div class="row">
<div class="col text-center">
<h6>
#if(msgNotice.msg_level == 1) <span class="badge bg-warning">重要</span> #elseif(msgNotice.msg_level == 2) <span class="badge bg-danger">紧急</span> #end <strong>#(msgNotice.title??)</strong>
</h6>
<span class="text-secondary">#date(msg.created_at, "yyyy-MM-dd HH:mm:ss") </span>
</div>
</div>
<hr class="row-hr" />
<div class="row mt-3" style="margin-left: 1rem; margin-right: 1rem;">#(msgNotice.content??)</div>
</div>
<div class="modal-footer">
#if(msgNotice.data_type == MsgDataTypeEnum.sale_order_audit.value)
<button type="button" class="btn btn-primary" onclick="dashboard.linkTab('/sale/sale/order');">去处理</button>
#elseif(msgNotice.data_type == MsgDataTypeEnum.purchase_order_audit.value)
<button type="button" class="btn btn-primary" onclick="dashboard.linkTab('/inventory/purchase/order');">去处理</button>
#elseif(msgNotice.data_type == MsgDataTypeEnum.purchase_order.value)
<button type="button" class="btn btn-primary" onclick="dashboard.linkTab('/inventory/purchase/order');">去处理</button>
#elseif(msgNotice.data_type == MsgDataTypeEnum.recepit_order_audit.value)
<button type="button" class="btn btn-primary" onclick="dashboard.linkTab('/fund/book/receiptOrder');">去处理</button>
#elseif(msgNotice.data_type == MsgDataTypeEnum.pay_order_audit.value)
<button type="button" class="btn btn-primary" onclick="dashboard.linkTab('/fund/book/payOrder');">去处理</button>
#elseif(msgNotice.data_type == MsgDataTypeEnum.income_order_audit.value)
<button type="button" class="btn btn-primary" onclick="dashboard.linkTab('/fund/flow/income');">去处理</button>
#elseif(msgNotice.data_type == MsgDataTypeEnum.expenses_order_audit.value)
<button type="button" class="btn btn-primary" onclick="dashboard.linkTab('/fund/flow/expenses');">去处理</button>
#elseif(msgNotice.data_type == MsgDataTypeEnum.purchase_reject_order_audit.value)
<button type="button" class="btn btn-primary" onclick="dashboard.linkTab('/inventory/purchase/rejectOrder');">去处理</button>
#elseif(msgNotice.data_type == MsgDataTypeEnum.sale_reject_order_audit.value)
<button type="button" class="btn btn-primary" onclick="dashboard.linkTab('/sale/sale/rejectOrder');">去处理</button>
#end
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" aria-label="Close" id="msgNotice_show_close">关闭</button>
</div>
</div>
</div>
<script type="application/javascript">
$(function() {
setTimeout(function() {
$("#msgNotice_show_close").focus();
}, 200);
});
</script>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册