Update: (步骤备份)完善字典
This commit is contained in:
@@ -18,7 +18,12 @@ def authorize(power: str, log: bool = False):
|
||||
def wrapper(*args, **kwargs):
|
||||
# 定义管理员的id为1
|
||||
if current_user.username == current_app.config.get("SUPERADMIN"):
|
||||
|
||||
if log:
|
||||
admin_log(request=request, is_access=True)
|
||||
|
||||
return func(*args, **kwargs)
|
||||
|
||||
if not power in session.get('permissions'):
|
||||
if log:
|
||||
admin_log(request=request, is_access=False)
|
||||
@@ -26,8 +31,10 @@ def authorize(power: str, log: bool = False):
|
||||
abort(403)
|
||||
else:
|
||||
return jsonify(success=False, msg="权限不足!")
|
||||
|
||||
if log:
|
||||
admin_log(request=request, is_access=True)
|
||||
|
||||
return func(*args, **kwargs)
|
||||
|
||||
return wrapper
|
||||
|
||||
@@ -33,6 +33,7 @@ def dict_type_data():
|
||||
dict_all = DictType.query.filter(mf.get_filter(DictType)).layui_paginate()
|
||||
count = dict_all.total
|
||||
data = curd.model_to_dicts(schema=DictTypeOutSchema, data=dict_all.items)
|
||||
|
||||
return table_api(data=data, count=count)
|
||||
|
||||
|
||||
@@ -46,13 +47,24 @@ def dict_type_add():
|
||||
@authorize("system:dict:add", log=True)
|
||||
def dict_type_save():
|
||||
req_json = request.get_json(force=True)
|
||||
description = str_escape(req_json.get("description"))
|
||||
enable = str_escape(req_json.get("enable"))
|
||||
type_code = str_escape(req_json.get("typeCode"))
|
||||
if type_code is None:
|
||||
return fail_api(msg="标识必须填写")
|
||||
type_name = str_escape(req_json.get("typeName"))
|
||||
d = DictType(type_name=type_name, type_code=type_code, enable=enable, description=description)
|
||||
|
||||
data = {
|
||||
'type_name': str_escape(req_json.get("typeName")),
|
||||
'type_code': str_escape(req_json.get("typeCode")),
|
||||
'enable': str_escape(req_json.get("enable")),
|
||||
'description': str_escape(req_json.get("description"))
|
||||
}
|
||||
|
||||
description = data['description']
|
||||
del data['description']
|
||||
|
||||
if not all(data.values()):
|
||||
return fail_api(msg="参数提供不足")
|
||||
|
||||
if description is not None:
|
||||
data['description'] = description
|
||||
|
||||
d = DictType(**data)
|
||||
db.session.add(d)
|
||||
db.session.commit()
|
||||
if d.id is None:
|
||||
@@ -75,16 +87,26 @@ def dict_type_edit():
|
||||
def dict_type_update():
|
||||
req_json = request.get_json(force=True)
|
||||
id = str_escape(req_json.get("id"))
|
||||
description = str_escape(req_json.get("description"))
|
||||
enable = str_escape(req_json.get("enable"))
|
||||
type_code = str_escape(req_json.get("typeCode"))
|
||||
type_name = str_escape(req_json.get("typeName"))
|
||||
DictType.query.filter_by(id=id).update({
|
||||
"description": description,
|
||||
"enable": enable,
|
||||
"type_code": type_code,
|
||||
"type_name": type_name
|
||||
})
|
||||
|
||||
data = {
|
||||
"description": str_escape(req_json.get("description")),
|
||||
"enable": str_escape(req_json.get("enable")),
|
||||
"type_code": str_escape(req_json.get("typeCode")),
|
||||
"type_name": str_escape(req_json.get("typeName"))
|
||||
}
|
||||
|
||||
if id is None:
|
||||
return fail_api(msg="字典类型不存在")
|
||||
|
||||
description = data['description']
|
||||
del data['description']
|
||||
|
||||
if not all(data.values()):
|
||||
return fail_api(msg="参数提供不足")
|
||||
|
||||
data['description'] = description
|
||||
|
||||
DictType.query.filter_by(id=id).update(data)
|
||||
db.session.commit()
|
||||
return success_api(msg="更新成功")
|
||||
|
||||
@@ -94,11 +116,11 @@ def dict_type_update():
|
||||
@authorize("system:dict:edit", log=True)
|
||||
def dict_type_enable():
|
||||
_id = request.get_json(force=True).get('id')
|
||||
if id:
|
||||
res = curd.enable_status(DictType,_id)
|
||||
if _id:
|
||||
res = curd.enable_status(DictType, _id)
|
||||
if not res:
|
||||
return fail_api(msg="出错啦")
|
||||
return success_api("启动成功")
|
||||
return success_api("启用成功")
|
||||
return fail_api(msg="数据错误")
|
||||
|
||||
|
||||
@@ -107,8 +129,8 @@ def dict_type_enable():
|
||||
@authorize("system:dict:edit", log=True)
|
||||
def dict_type_dis_enable():
|
||||
_id = request.get_json(force=True).get('id')
|
||||
if id:
|
||||
res = curd.disable_status(DictType,_id)
|
||||
if _id:
|
||||
res = curd.disable_status(DictType, _id)
|
||||
if not res:
|
||||
return fail_api(msg="出错啦")
|
||||
return success_api("禁用成功")
|
||||
@@ -119,9 +141,15 @@ def dict_type_dis_enable():
|
||||
@bp.delete('/dictType/remove/<int:_id>')
|
||||
@authorize("system:dict:remove", log=True)
|
||||
def dict_type_delete(_id):
|
||||
res = curd.delete_one_by_id(DictType,_id)
|
||||
DictData.query.filter_by(
|
||||
type_code=DictType.query.filter_by(id=_id).first().type_code
|
||||
).all()
|
||||
res = DictType.query.filter_by(id=_id).delete()
|
||||
|
||||
if not res:
|
||||
return fail_api(msg="删除失败")
|
||||
|
||||
db.session.commit()
|
||||
return success_api(msg="删除成功")
|
||||
|
||||
|
||||
@@ -148,11 +176,13 @@ def dict_data_add():
|
||||
@authorize("system:dict:add", log=True)
|
||||
def dict_data_save():
|
||||
req_json = request.get_json(force=True)
|
||||
|
||||
data_label = str_escape(req_json.get("dataLabel"))
|
||||
data_value = str_escape(req_json.get("dataValue"))
|
||||
enable = str_escape(req_json.get("enable"))
|
||||
remark = str_escape(req_json.get("remark"))
|
||||
type_code = str_escape(req_json.get("typeCode"))
|
||||
|
||||
d = DictData(data_label=data_label, data_value=data_value, enable=enable, remark=remark, type_code=type_code)
|
||||
db.session.add(d)
|
||||
db.session.commit()
|
||||
@@ -213,7 +243,7 @@ def dict_data_disenable():
|
||||
return fail_api(msg="数据错误")
|
||||
|
||||
|
||||
# 删除字典类型
|
||||
# 删除字典数据
|
||||
@bp.delete('dictData/remove/<int:id>')
|
||||
@authorize("system:dict:remove", log=True)
|
||||
def dict_data_delete(id):
|
||||
@@ -221,3 +251,40 @@ def dict_data_delete(id):
|
||||
if not res:
|
||||
return fail_api(msg="删除失败")
|
||||
return success_api(msg="删除成功")
|
||||
|
||||
|
||||
# 批量删除字典
|
||||
@bp.delete('dictData/batchRemoveDictType')
|
||||
@authorize("system:dict:remove", log=True)
|
||||
def dict_type_batch_remove():
|
||||
ids = request.form.getlist('ids[]')
|
||||
|
||||
for _id in ids:
|
||||
DictData.query.filter_by(
|
||||
type_code=DictType.query.filter_by(id=_id).first().type_code
|
||||
).all()
|
||||
|
||||
res = DictType.query.filter_by(id=_id).delete()
|
||||
|
||||
if res == 0:
|
||||
db.session.rollback()
|
||||
return fail_api(msg="删除失败,请重试")
|
||||
|
||||
db.session.commit()
|
||||
return success_api(msg="删除成功")
|
||||
|
||||
|
||||
# 批量删除字典数据
|
||||
@bp.delete('dictData/batchRemoveDictData')
|
||||
@authorize("system:dict:remove", log=True)
|
||||
def dict_data_batch_remove():
|
||||
ids = request.form.getlist('ids[]')
|
||||
print(ids)
|
||||
for _id in ids:
|
||||
res = curd.delete_one_by_id(model=DictData, id=_id)
|
||||
if not res:
|
||||
db.session.rollback()
|
||||
return fail_api(msg="删除失败,请重试")
|
||||
|
||||
db.session.commit()
|
||||
return success_api(msg="删除成功")
|
||||
|
||||
@@ -22,8 +22,8 @@ def index():
|
||||
def login_log():
|
||||
# orm查询
|
||||
# 使用分页获取data需要.items
|
||||
log = AdminLog.query.filter(
|
||||
AdminLog.url != '/passport/login'
|
||||
log = AdminLog.query.filter_by(
|
||||
url='/system/passport/login'
|
||||
).order_by(desc(AdminLog.create_time)).layui_paginate()
|
||||
count = log.total
|
||||
return table_api(data=model_to_dicts(schema=LogOutSchema, data=log.items), count=count)
|
||||
@@ -35,8 +35,8 @@ def login_log():
|
||||
def operate_log():
|
||||
# orm查询
|
||||
# 使用分页获取data需要.items
|
||||
log = AdminLog.query.filter_by(
|
||||
url='/passport/login'
|
||||
log = AdminLog.query.filter(
|
||||
AdminLog.url != '/system/passport/login'
|
||||
).order_by(
|
||||
desc(AdminLog.create_time)).layui_paginate()
|
||||
count = log.total
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
.pear-container {
|
||||
background-color: whitesmoke;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
|
||||
.pear-card {
|
||||
width: 100%;
|
||||
@@ -28,6 +25,16 @@
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.pear-admin-dark .pear-card2 {
|
||||
width: 100%;
|
||||
height: 90px;
|
||||
background-color: #353537;
|
||||
display: inline-block;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.pear-card2 i {
|
||||
font-size: 30px;
|
||||
height: 90px;
|
||||
@@ -185,3 +192,14 @@
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.pear-admin-dark .progress-ring .progress-text {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
color: #cfcfcf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -383,7 +383,8 @@ layui.define(['jquery', 'element', 'dropdown'], function (exports) {
|
||||
*/
|
||||
tabPage.prototype.refresh = function (time) {
|
||||
|
||||
var $iframe = $(".layui-tab[lay-filter='" + this.option.elem + "'] .layui-tab-content .layui-show > div[data-frameid], iframe[data-frameid]");
|
||||
var $iframe = $(".layui-tab[lay-filter='" + this.option.elem + "'] .layui-tab-content .layui-show > div[data-frameid], " +
|
||||
".layui-tab[lay-filter='" + this.option.elem + "'] .layui-tab-content .layui-show > iframe[data-frameid]");
|
||||
var $iframeLoad;
|
||||
|
||||
if (time != false && time != 0) {
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">负责人</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{{ dept.leader }}" name="leader" lay-verify="required" autocomplete="off"
|
||||
<input type="text" value="{{ dept.leader }}" name="leader" lay-verify="required"
|
||||
autocomplete="off"
|
||||
placeholder="请输入负责人"
|
||||
class="layui-input">
|
||||
</div>
|
||||
@@ -34,7 +35,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">邮箱</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{{ dept.email }}" name="email" lay-verify="required" autocomplete="off"
|
||||
<input type="text" value="{{ dept.email }}" name="email" lay-verify="required"
|
||||
autocomplete="off"
|
||||
placeholder="请输入邮箱"
|
||||
class="layui-input">
|
||||
</div>
|
||||
@@ -42,7 +44,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">联系方式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{{ dept.phone }}" name="phone" lay-verify="required" autocomplete="off"
|
||||
<input type="text" value="{{ dept.phone }}" name="phone" lay-verify="required"
|
||||
autocomplete="off"
|
||||
placeholder="请输入联系方式"
|
||||
class="layui-input">
|
||||
</div>
|
||||
@@ -70,11 +73,7 @@
|
||||
<label class="layui-form-label">地址</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea placeholder="请输入详细地址" name="address"
|
||||
class="layui-textarea">
|
||||
{% if dept.address %}
|
||||
{{ dept.address }}
|
||||
{% endif %}
|
||||
</textarea>
|
||||
class="layui-textarea">{% if dept.address %}{{ dept.address }}{% endif %}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -96,31 +95,31 @@
|
||||
</form>
|
||||
{% include 'system/common/footer.html' %}
|
||||
<script>
|
||||
layui.use(['form', 'jquery'], function () {
|
||||
let form = layui.form
|
||||
let $ = layui.jquery
|
||||
layui.use(['form', 'jquery'], function () {
|
||||
let form = layui.form
|
||||
let $ = layui.jquery
|
||||
|
||||
form.on('submit(dept-update)', function (data) {
|
||||
$.ajax({
|
||||
url: '/system/dept/update',
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'put',
|
||||
success: function (result) {
|
||||
if (result.success) {
|
||||
layer.msg(result.msg, { icon: 1, time: 1000 }, function () {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name))//关闭当前页
|
||||
parent.render()
|
||||
form.on('submit(dept-update)', function (data) {
|
||||
$.ajax({
|
||||
url: '/system/dept/update',
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'put',
|
||||
success: function (result) {
|
||||
if (result.success) {
|
||||
layer.msg(result.msg, {icon: 1, time: 1000}, function () {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name))//关闭当前页
|
||||
parent.render()
|
||||
})
|
||||
} else {
|
||||
layer.msg(result.msg, {icon: 2, time: 1000})
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
layer.msg(result.msg, { icon: 2, time: 1000 })
|
||||
}
|
||||
}
|
||||
})
|
||||
return false
|
||||
return false
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<script>
|
||||
</script>
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="typeName" lay-verify="title" autocomplete="off" placeholder="请输入名称"
|
||||
<input type="text" name="typeName" lay-verify="required" autocomplete="off" placeholder="请输入名称"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标识</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="typeCode" lay-verify="title" autocomplete="off" placeholder="请输入标识"
|
||||
<input type="text" name="typeCode" lay-verify="required" autocomplete="off" placeholder="请输入标识"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
@@ -41,12 +41,12 @@
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit=""
|
||||
<button type="submit" class="layui-btn layui-btn-sm" lay-submit=""
|
||||
lay-filter="dict-type-save">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-sm">
|
||||
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{{ type_code }}" readonly="readonly" name="typeCode"
|
||||
lay-verify="title"
|
||||
autocomplete="off" placeholder="请输入标题" class="layui-input">
|
||||
autocomplete="off" placeholder="请输入标识" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
@@ -49,12 +49,12 @@
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit=""
|
||||
<button type="submit" class="layui-btn layui-btn-sm" lay-submit=""
|
||||
lay-filter="dict-data-save">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-sm">
|
||||
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
|
||||
@@ -19,21 +19,21 @@
|
||||
<label class="layui-form-label">标签</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{{ dict_data.data_label }}" name="dataLabel" lay-verify="title"
|
||||
autocomplete="off" placeholder="请输入标题" class="layui-input">
|
||||
autocomplete="off" placeholder="请输入标签" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{{ dict_data.data_value }}" name="dataValue" lay-verify="title"
|
||||
autocomplete="off" placeholder="请输入标题" class="layui-input">
|
||||
autocomplete="off" placeholder="请输入值" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标识</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{{ dict_data.type_code }}" readonly="readonly" name="typeCode"
|
||||
lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
|
||||
lay-verify="title" autocomplete="off" placeholder="请输入标识" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
@@ -49,7 +49,8 @@
|
||||
<label class="layui-form-label">描述</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea placeholder="请输入描述" name="remark"
|
||||
class="layui-textarea">{{ dict_data.remark }}</textarea>
|
||||
class="layui-textarea"
|
||||
>{% if dict_data.remark %}{{ dict_data.remark }}{% endif %}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -57,12 +58,12 @@
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit=""
|
||||
<button type="submit" class="layui-btn layui-btn-sm" lay-submit=""
|
||||
lay-filter="dict-data-save">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-sm">
|
||||
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
@@ -71,31 +72,31 @@
|
||||
</form>
|
||||
{% include 'system/common/footer.html' %}
|
||||
<script>
|
||||
layui.use(['form', 'jquery'], function () {
|
||||
let form = layui.form
|
||||
let $ = layui.jquery
|
||||
layui.use(['form', 'jquery'], function () {
|
||||
let form = layui.form
|
||||
let $ = layui.jquery
|
||||
|
||||
form.on('submit(dict-data-save)', function (data) {
|
||||
$.ajax({
|
||||
url: '/system/dict/dictData/update',
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'put',
|
||||
success: function (result) {
|
||||
if (result.success) {
|
||||
layer.msg(result.msg, { icon: 1, time: 1000 }, function () {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name))//关闭当前页
|
||||
parent.layui.table.reload('dict-data-table')
|
||||
form.on('submit(dict-data-save)', function (data) {
|
||||
$.ajax({
|
||||
url: '/system/dict/dictData/update',
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'put',
|
||||
success: function (result) {
|
||||
if (result.success) {
|
||||
layer.msg(result.msg, {icon: 1, time: 1000}, function () {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name))//关闭当前页
|
||||
parent.layui.table.reload('dict-data-table')
|
||||
})
|
||||
} else {
|
||||
layer.msg(result.msg, {icon: 2, time: 1000})
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
layer.msg(result.msg, { icon: 2, time: 1000 })
|
||||
}
|
||||
}
|
||||
})
|
||||
return false
|
||||
return false
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<script>
|
||||
</script>
|
||||
|
||||
@@ -12,22 +12,22 @@
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">编号</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{{ dict_type.id }}" name="id" lay-verify="title" autocomplete="off"
|
||||
<input type="text" value="{{ dict_type.id }}" name="id" lay-verify="required" autocomplete="off"
|
||||
placeholder="请输入标题" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{{ dict_type.type_name }}" name="typeName" lay-verify="title"
|
||||
autocomplete="off" placeholder="请输入标题" class="layui-input">
|
||||
<input type="text" value="{{ dict_type.type_name }}" name="typeName" lay-verify="required"
|
||||
autocomplete="off" placeholder="请输入名称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标识</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{{ dict_type.type_code }}" readonly name="typeCode"
|
||||
lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
|
||||
lay-verify="required" autocomplete="off" placeholder="请输入标识" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
@@ -42,8 +42,11 @@
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">描述</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea placeholder="请输入描述" name="description"
|
||||
class="layui-textarea">{{ dict_type.description }}</textarea>
|
||||
<textarea
|
||||
placeholder="请输入描述"
|
||||
name="description"
|
||||
class="layui-textarea"
|
||||
>{% if dict_type.description %}{{ dict_type.description }}{% endif %}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -51,12 +54,12 @@
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit=""
|
||||
<button type="submit" class="layui-btn layui-btn-primary layui-btn-sm" lay-submit=""
|
||||
lay-filter="dict-type-update">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-sm">
|
||||
<button type="reset" class="layui-btn layui-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
@@ -65,31 +68,31 @@
|
||||
</form>
|
||||
{% include 'system/common/footer.html' %}
|
||||
<script>
|
||||
layui.use(['form', 'jquery'], function () {
|
||||
let form = layui.form
|
||||
let $ = layui.jquery
|
||||
layui.use(['form', 'jquery'], function () {
|
||||
let form = layui.form
|
||||
let $ = layui.jquery
|
||||
|
||||
form.on('submit(dict-type-update)', function (data) {
|
||||
$.ajax({
|
||||
url: '/system/dict/dictType/update',
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'put',
|
||||
success: function (result) {
|
||||
if (result.success) {
|
||||
layer.msg(result.msg, { icon: 1, time: 1000 }, function () {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name))//关闭当前页
|
||||
parent.layui.table.reload('dict-type-table')
|
||||
form.on('submit(dict-type-update)', function (data) {
|
||||
$.ajax({
|
||||
url: '/system/dict/dictType/update',
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'put',
|
||||
success: function (result) {
|
||||
if (result.success) {
|
||||
layer.msg(result.msg, {icon: 1, time: 1000}, function () {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name))//关闭当前页
|
||||
parent.layui.table.reload('dict-type-table')
|
||||
})
|
||||
} else {
|
||||
layer.msg(result.msg, {icon: 2, time: 1000})
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
layer.msg(result.msg, { icon: 2, time: 1000 })
|
||||
}
|
||||
}
|
||||
})
|
||||
return false
|
||||
return false
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<script>
|
||||
</script>
|
||||
|
||||
+371
-272
@@ -10,16 +10,17 @@
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" action="">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-item" style="margin-bottom: unset;">
|
||||
<label class="layui-form-label">字典名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="typeName" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="dict-type-query">
|
||||
<button class="layui-btn layui-btn-md layui-btn-primary" lay-submit
|
||||
lay-filter="dict-type-query">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
查询
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-md">
|
||||
<button type="reset" class="layui-btn layui-btn-md">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
@@ -38,29 +39,32 @@
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<svg class="empty" style="margin-top: 50px;margin-left: 220px;margin-bottom: 80px;" width="184"
|
||||
height="152" viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" fillRule="evenodd">
|
||||
<g transform="translate(24 31.67)">
|
||||
<ellipse fillOpacity=".8" fill="#F5F5F7" cx="67.797" cy="106.89" rx="67.797"
|
||||
ry="12.668"></ellipse>
|
||||
<path d="M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z"
|
||||
fill="#AEB8C2"></path>
|
||||
<path d="M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z"
|
||||
fill="url(#linearGradient-1)" transform="translate(13.56)"></path>
|
||||
<path d="M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z"
|
||||
fill="#F5F5F7"></path>
|
||||
<path d="M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z"
|
||||
<div style="text-align: center;">
|
||||
<svg class="empty" width="184"
|
||||
height="152" viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" fillRule="evenodd">
|
||||
<g transform="translate(24 31.67)">
|
||||
<ellipse fillOpacity=".8" fill="#F5F5F7" cx="67.797" cy="106.89" rx="67.797"
|
||||
ry="12.668"></ellipse>
|
||||
<path d="M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z"
|
||||
fill="#AEB8C2"></path>
|
||||
<path d="M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z"
|
||||
fill="url(#linearGradient-1)" transform="translate(13.56)"></path>
|
||||
<path d="M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z"
|
||||
fill="#F5F5F7"></path>
|
||||
<path d="M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z"
|
||||
fill="#DCE0E6"></path>
|
||||
</g>
|
||||
<path d="M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z"
|
||||
fill="#DCE0E6"></path>
|
||||
<g transform="translate(149.65 15.383)" fill="#FFF">
|
||||
<ellipse cx="20.654" cy="3.167" rx="2.849" ry="2.815"></ellipse>
|
||||
<path d="M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"></path>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z"
|
||||
fill="#DCE0E6"></path>
|
||||
<g transform="translate(149.65 15.383)" fill="#FFF">
|
||||
<ellipse cx="20.654" cy="3.167" rx="2.849" ry="2.815"></ellipse>
|
||||
<path d="M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<table id="dict-data-table" lay-filter="dict-data-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -69,48 +73,51 @@
|
||||
|
||||
</body>
|
||||
<script type="text/html" id="dict-type-toolbar">
|
||||
<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
|
||||
<button class="layui-btn layui-btn-primary layui-btn-sm" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
<button class="pear-btn pear-btn-md" lay-event="batchRemove">
|
||||
<button class="layui-btn layui-btn-sm" lay-event="batchRemove">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="dict-type-bar">
|
||||
<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit">
|
||||
<i class="layui-icon layui-icon-edit"></i>
|
||||
<button class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">
|
||||
<i class="layui-icon layui-icon-edit"> 编辑</i>
|
||||
</button>
|
||||
<button class="pear-btn pear-btn-warming pear-btn-sm" lay-event="details">
|
||||
<i class="layui-icon layui-icon-transfer"></i>
|
||||
<button class="layui-btn layui-btn-warming layui-btn-xs" lay-event="details">
|
||||
<i class="layui-icon layui-icon-transfer"> 关联</i>
|
||||
</button>
|
||||
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">
|
||||
<i class="layui-icon layui-icon-delete"> 删除</i>
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="dict-type-enable">
|
||||
<input type="checkbox" value="{{ "{{ d.id }}" }}" lay-skin="switch" lay-text="启用|禁用" lay-filter="dict-type-enable"
|
||||
<input type="checkbox" value="{{ "{{ d.id }}" }}" lay-skin="switch" lay-text="启用|禁用"
|
||||
lay-filter="dict-type-enable"
|
||||
{{ "{{# if(d.enable==1){ }} checked {{# } }}" }}>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="dict-data-toolbar">
|
||||
<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
|
||||
<button class="layui-btn layui-btn-primary layui-btn-sm" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
<button class="pear-btn pear-btn-md" lay-event="batchRemove">
|
||||
<button class="layui-btn layui-btn-sm" lay-event="batchRemove">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="dict-data-bar">
|
||||
<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>
|
||||
<button class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">
|
||||
<i class="layui-icon layui-icon-edit"> 编辑</i>
|
||||
</button>
|
||||
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i class="layui-icon layui-icon-delete"></i>
|
||||
<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">
|
||||
<i class="layui-icon layui-icon-delete"> 删除</i>
|
||||
</button>
|
||||
</script>
|
||||
|
||||
@@ -121,254 +128,346 @@
|
||||
</script>
|
||||
{% include 'system/common/footer.html' %}
|
||||
<script>
|
||||
layui.use(['table', 'form', 'jquery', 'popup'], function () {
|
||||
let table = layui.table
|
||||
let form = layui.form
|
||||
let $ = layui.jquery
|
||||
let popup = layui.popup
|
||||
layui.use(['table', 'form', 'jquery', 'popup'], function () {
|
||||
let table = layui.table
|
||||
let form = layui.form
|
||||
let $ = layui.jquery
|
||||
let popup = layui.popup
|
||||
|
||||
let typeCode
|
||||
let typeCode
|
||||
|
||||
let cols = [
|
||||
[
|
||||
{ type: 'checkbox' },
|
||||
{ title: '字典名称', field: 'typeName', align: 'center', width: 120 },
|
||||
{ title: '描述', field: 'description', align: 'center' },
|
||||
{ title: '字典状态', field: 'enable', align: 'center', templet: '#dict-type-enable' },
|
||||
{ title: '操作', toolbar: '#dict-type-bar', align: 'center', width: 180 }
|
||||
]
|
||||
]
|
||||
let cols = [
|
||||
[
|
||||
{type: 'checkbox'},
|
||||
{title: '字典名称', field: 'typeName', align: 'center', width: 120},
|
||||
{title: '描述', field: 'description', align: 'center'},
|
||||
{title: '字典状态', field: 'enable', align: 'center', templet: '#dict-type-enable', width: 100},
|
||||
{title: '操作', toolbar: '#dict-type-bar', align: 'center', width: 250}
|
||||
]
|
||||
]
|
||||
|
||||
let dataCols = [
|
||||
[
|
||||
{ type: 'checkbox' },
|
||||
{ title: '标签', field: 'dataLabel', align: 'center', width: 120 },
|
||||
{ title: '对应值', field: 'dataValue', align: 'center' },
|
||||
{ title: '状态', field: 'enable', align: 'center', templet: '#dict-data-enable' },
|
||||
{ title: '操作', toolbar: '#dict-data-bar', align: 'center', width: 180 }
|
||||
]
|
||||
]
|
||||
let dataCols = [
|
||||
[
|
||||
{type: 'checkbox'},
|
||||
{title: '标签', field: 'dataLabel', align: 'center', width: 120},
|
||||
{title: '对应值', field: 'dataValue', align: 'center'},
|
||||
{title: '状态', field: 'enable', align: 'center', templet: '#dict-data-enable'},
|
||||
{title: '操作', toolbar: '#dict-data-bar', align: 'center', width: 180}
|
||||
]
|
||||
]
|
||||
|
||||
table.render({
|
||||
elem: '#dict-type-table',
|
||||
url: '/system/dict/dictType/data',
|
||||
page: true,
|
||||
cols: cols,
|
||||
skin: 'line',
|
||||
height: 'full-148',
|
||||
toolbar: '#dict-type-toolbar',
|
||||
defaultToolbar: [{
|
||||
layEvent: 'refresh',
|
||||
icon: 'layui-icon-refresh',
|
||||
}, 'filter', 'print', 'exports']
|
||||
})
|
||||
table.render({
|
||||
elem: '#dict-type-table',
|
||||
url: '/system/dict/dictType/data',
|
||||
page: true,
|
||||
cols: cols,
|
||||
skin: 'line',
|
||||
height: 'full-148',
|
||||
toolbar: '#dict-type-toolbar',
|
||||
defaultToolbar: [{
|
||||
layEvent: 'refresh',
|
||||
icon: 'layui-icon-refresh',
|
||||
}, 'filter', 'print', 'exports']
|
||||
})
|
||||
|
||||
window.renderData = function (code) {
|
||||
typeCode = code
|
||||
$('.empty').hide()
|
||||
table.render({
|
||||
elem: '#dict-data-table',
|
||||
url: '/system/dict/dictData/data?typeCode=' + typeCode,
|
||||
page: true,
|
||||
height: 'full-148',
|
||||
cols: dataCols,
|
||||
skin: 'line',
|
||||
toolbar: '#dict-data-toolbar'
|
||||
})
|
||||
}
|
||||
|
||||
table.on('tool(dict-type-table)', function (obj) {
|
||||
if (obj.event === 'remove') {
|
||||
window.removeType(obj)
|
||||
} else if (obj.event === 'edit') {
|
||||
window.editType(obj)
|
||||
} else if (obj.event === 'details') {
|
||||
window.renderData(obj.data['typeCode'])
|
||||
}
|
||||
})
|
||||
|
||||
table.on('toolbar(dict-type-table)', function (obj) {
|
||||
if (obj.event === 'add') {
|
||||
window.addType()
|
||||
} else if (obj.event === 'refresh') {
|
||||
window.refreshType()
|
||||
}
|
||||
})
|
||||
|
||||
form.on('submit(dict-type-query)', function (data) {
|
||||
table.reload('dict-type-table', { where: data.field })
|
||||
return false
|
||||
})
|
||||
|
||||
form.on('switch(dict-type-enable)', function (obj) {
|
||||
let operate
|
||||
if (obj.elem.checked) {
|
||||
operate = 'enable'
|
||||
} else {
|
||||
operate = 'disable'
|
||||
}
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/system/dict/dictType/' + operate,
|
||||
data: JSON.stringify({ id: this.value }),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'put',
|
||||
success: function (result) {
|
||||
layer.close(loading)
|
||||
if (result.success) {
|
||||
popup.success(result.msg)
|
||||
} else {
|
||||
popup.failure(result.msg)
|
||||
}
|
||||
window.renderData = function (code) {
|
||||
typeCode = code
|
||||
$('.empty').hide()
|
||||
table.render({
|
||||
elem: '#dict-data-table',
|
||||
url: '/system/dict/dictData/data?typeCode=' + typeCode,
|
||||
page: true,
|
||||
height: 'full-148',
|
||||
cols: dataCols,
|
||||
skin: 'line',
|
||||
toolbar: '#dict-data-toolbar'
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
window.addType = function () {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '新增',
|
||||
shade: 0.1,
|
||||
area: ['500px', '400px'],
|
||||
content: '/system/dict/dictType/add'
|
||||
})
|
||||
}
|
||||
table.on('tool(dict-type-table)', function (obj) {
|
||||
if (obj.event === 'remove') {
|
||||
window.removeType(obj)
|
||||
} else if (obj.event === 'edit') {
|
||||
window.editType(obj)
|
||||
} else if (obj.event === 'details') {
|
||||
window.renderData(obj.data['typeCode'])
|
||||
}
|
||||
})
|
||||
|
||||
window.editType = function (obj) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '修改',
|
||||
shade: 0.1,
|
||||
area: ['500px', '400px'],
|
||||
content: '/system/dict/dictType/edit?dictTypeId=' + obj.data['id']
|
||||
})
|
||||
}
|
||||
table.on('toolbar(dict-type-table)', function (obj) {
|
||||
if (obj.event === 'add') {
|
||||
window.addType()
|
||||
} else if (obj.event === 'refresh') {
|
||||
window.refreshType()
|
||||
} else if (obj.event === 'batchRemove') {
|
||||
window.batchRemoveDictType(obj)
|
||||
}
|
||||
})
|
||||
|
||||
window.removeType = function (obj) {
|
||||
layer.confirm('确定要删除该字典分类', { icon: 3, title: '提示' }, function (index) {
|
||||
layer.close(index)
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/system/dict/dictType/remove/' + obj.data['id'],
|
||||
dataType: 'json',
|
||||
type: 'delete',
|
||||
success: function (result) {
|
||||
layer.close(loading)
|
||||
if (result.success) {
|
||||
popup.success(result.msg, function () {
|
||||
if (typeCode === obj.data['typeCode']) {
|
||||
$('[lay-id=\'dict-data-table\']').remove()
|
||||
$('.empty').show()
|
||||
form.on('submit(dict-type-query)', function (data) {
|
||||
table.reload('dict-type-table', {where: data.field})
|
||||
return false
|
||||
})
|
||||
|
||||
form.on('switch(dict-type-enable)', function (obj) {
|
||||
let operate
|
||||
if (obj.elem.checked) {
|
||||
operate = 'enable'
|
||||
} else {
|
||||
operate = 'disable'
|
||||
}
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/system/dict/dictType/' + operate,
|
||||
data: JSON.stringify({id: this.value}),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'put',
|
||||
success: function (result) {
|
||||
layer.close(loading)
|
||||
if (result.success) {
|
||||
popup.success(result.msg)
|
||||
} else {
|
||||
popup.failure(result.msg)
|
||||
}
|
||||
}
|
||||
obj.del()
|
||||
})
|
||||
} else {
|
||||
popup.failure(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
window.refreshType = function () {
|
||||
table.reload('dict-type-table')
|
||||
}
|
||||
|
||||
window.addData = function () {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '新增',
|
||||
shade: 0.1,
|
||||
area: ['500px', '450px'],
|
||||
content: '/system/dict/dictData/add?typeCode=' + typeCode
|
||||
})
|
||||
}
|
||||
|
||||
window.editData = function (obj) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '修改',
|
||||
shade: 0.1,
|
||||
area: ['500px', '450px'],
|
||||
content: '/system/dict/dictData/edit?dataId=' + obj.data['dataId']
|
||||
})
|
||||
}
|
||||
|
||||
window.removeData = function (obj) {
|
||||
layer.confirm('确定要删除该字典值', { icon: 3, title: '提示' }, function (index) {
|
||||
layer.close(index)
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/system/dict/dictData/remove/' + obj.data['dataId'],
|
||||
dataType: 'json',
|
||||
type: 'delete',
|
||||
success: function (result) {
|
||||
layer.close(loading)
|
||||
if (result.success) {
|
||||
popup.success(result.msg, function () {
|
||||
obj.del()
|
||||
})
|
||||
} else {
|
||||
popup.failure(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
table.on('tool(dict-data-table)', function (obj) {
|
||||
if (obj.event === 'remove') {
|
||||
window.removeData(obj)
|
||||
} else if (obj.event === 'edit') {
|
||||
window.editData(obj)
|
||||
} else if (obj.event === 'details') {
|
||||
window.details(obj)
|
||||
}
|
||||
})
|
||||
|
||||
table.on('toolbar(dict-data-table)', function (obj) {
|
||||
if (obj.event === 'add') {
|
||||
window.addData()
|
||||
} else if (obj.event === 'refresh') {
|
||||
window.refreshData()
|
||||
}
|
||||
})
|
||||
|
||||
form.on('submit(dict-data-query)', function (data) {
|
||||
data.field.typeCode = typeCode
|
||||
table.reload('dict-data-table', { where: data.field })
|
||||
return false
|
||||
})
|
||||
|
||||
form.on('switch(dict-data-enable)', function (obj) {
|
||||
let operate
|
||||
if (obj.elem.checked) {
|
||||
operate = 'enable'
|
||||
} else {
|
||||
operate = 'disable'
|
||||
}
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/system/dict/dictData/' + operate,
|
||||
data: JSON.stringify({ dataId: this.value }),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'put',
|
||||
success: function (result) {
|
||||
layer.close(loading)
|
||||
if (result.success) {
|
||||
popup.success(result.msg)
|
||||
} else {
|
||||
popup.failure(result.msg)
|
||||
}
|
||||
window.addType = function () {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '新增',
|
||||
shade: 0.1,
|
||||
area: ['500px', '400px'],
|
||||
content: '/system/dict/dictType/add'
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
window.refreshData = function () {
|
||||
table.reload('dict-data-table')
|
||||
}
|
||||
})
|
||||
window.editType = function (obj) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '修改',
|
||||
shade: 0.1,
|
||||
area: ['500px', '400px'],
|
||||
content: '/system/dict/dictType/edit?dictTypeId=' + obj.data['id']
|
||||
})
|
||||
}
|
||||
|
||||
window.removeType = function (obj) {
|
||||
layer.confirm('确定要删除该字典分类?字典值会一并删除!', {icon: 3, title: '提示'}, function (index) {
|
||||
layer.close(index)
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/system/dict/dictType/remove/' + obj.data['id'],
|
||||
dataType: 'json',
|
||||
type: 'delete',
|
||||
success: function (result) {
|
||||
layer.close(loading)
|
||||
if (result.success) {
|
||||
popup.success(result.msg, function () {
|
||||
if (typeCode === obj.data['typeCode']) {
|
||||
$('div[lay-table-id="dict-data-table"]').remove()
|
||||
$('.empty').show()
|
||||
}
|
||||
obj.del()
|
||||
})
|
||||
} else {
|
||||
popup.failure(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
window.refreshType = function () {
|
||||
table.reload('dict-type-table')
|
||||
}
|
||||
|
||||
window.addData = function () {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '新增',
|
||||
shade: 0.1,
|
||||
area: ['500px', '450px'],
|
||||
content: '/system/dict/dictData/add?typeCode=' + typeCode
|
||||
})
|
||||
}
|
||||
|
||||
window.editData = function (obj) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '修改',
|
||||
shade: 0.1,
|
||||
area: ['500px', '450px'],
|
||||
content: '/system/dict/dictData/edit?dataId=' + obj.data['dataId']
|
||||
})
|
||||
}
|
||||
|
||||
window.removeData = function (obj) {
|
||||
layer.confirm('确定要删除该字典值?', {icon: 3, title: '提示'}, function (index) {
|
||||
layer.close(index)
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/system/dict/dictData/remove/' + obj.data['dataId'],
|
||||
dataType: 'json',
|
||||
type: 'delete',
|
||||
success: function (result) {
|
||||
layer.close(loading)
|
||||
if (result.success) {
|
||||
popup.success(result.msg, function () {
|
||||
obj.del()
|
||||
})
|
||||
} else {
|
||||
popup.failure(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
table.on('tool(dict-data-table)', function (obj) {
|
||||
if (obj.event === 'remove') {
|
||||
window.removeData(obj)
|
||||
} else if (obj.event === 'edit') {
|
||||
window.editData(obj)
|
||||
} else if (obj.event === 'details') {
|
||||
window.details(obj)
|
||||
}
|
||||
})
|
||||
|
||||
table.on('toolbar(dict-data-table)', function (obj) {
|
||||
if (obj.event === 'add') {
|
||||
window.addData()
|
||||
} else if (obj.event === 'refresh') {
|
||||
window.refreshData()
|
||||
} else if (obj.event === 'batchRemove') {
|
||||
window.batchRemoveDictData(obj)
|
||||
}
|
||||
})
|
||||
|
||||
form.on('submit(dict-data-query)', function (data) {
|
||||
data.field.typeCode = typeCode
|
||||
table.reload('dict-data-table', {where: data.field})
|
||||
return false
|
||||
})
|
||||
|
||||
form.on('switch(dict-data-enable)', function (obj) {
|
||||
let operate
|
||||
if (obj.elem.checked) {
|
||||
operate = 'enable'
|
||||
} else {
|
||||
operate = 'disable'
|
||||
}
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/system/dict/dictData/' + operate,
|
||||
data: JSON.stringify({dataId: this.value}),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'put',
|
||||
success: function (result) {
|
||||
layer.close(loading)
|
||||
if (result.success) {
|
||||
popup.success(result.msg)
|
||||
} else {
|
||||
popup.failure(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
window.refreshData = function () {
|
||||
table.reload('dict-data-table')
|
||||
}
|
||||
|
||||
window.batchRemoveDictType = function (obj) {
|
||||
let data = table.checkStatus(obj.config.id).data
|
||||
if (data.length === 0) {
|
||||
layer.msg('未选中数据', {
|
||||
icon: 3,
|
||||
time: 1000
|
||||
})
|
||||
return false
|
||||
}
|
||||
|
||||
var ids = []
|
||||
var hasCheck = table.checkStatus('dict-type-table')
|
||||
var hasCheckData = hasCheck.data
|
||||
if (hasCheckData.length > 0) {
|
||||
$.each(hasCheckData, function (index, element) {
|
||||
ids.push(element.id)
|
||||
})
|
||||
}
|
||||
layer.confirm('确定要删除选中权限?', {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function (index) {
|
||||
layer.close(index)
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/system/dict/dictData/batchRemoveDictType',
|
||||
data: {ids: ids},
|
||||
dataType: 'json',
|
||||
type: 'delete',
|
||||
success: function (result) {
|
||||
layer.close(loading)
|
||||
if (result.success) {
|
||||
popup.success(result.msg, function () {
|
||||
table.reload('dict-type-table');
|
||||
})
|
||||
} else {
|
||||
popup.failure(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
window.batchRemoveDictData = function (obj) {
|
||||
let data = table.checkStatus(obj.config.id).data
|
||||
if (data.length === 0) {
|
||||
layer.msg('未选中数据', {
|
||||
icon: 3,
|
||||
time: 1000
|
||||
})
|
||||
return false
|
||||
}
|
||||
|
||||
var ids = []
|
||||
var hasCheck = table.checkStatus('dict-data-table')
|
||||
var hasCheckData = hasCheck.data
|
||||
if (hasCheckData.length > 0) {
|
||||
$.each(hasCheckData, function (index, element) {
|
||||
ids.push(element.dataId)
|
||||
})
|
||||
}
|
||||
|
||||
layer.confirm('确定要删除选中权限?', {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function (index) {
|
||||
layer.close(index)
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/system/dict/dictData/batchRemoveDictData',
|
||||
data: {ids: ids},
|
||||
dataType: 'json',
|
||||
type: 'delete',
|
||||
success: function (result) {
|
||||
layer.close(loading)
|
||||
if (result.success) {
|
||||
popup.success(result.msg, function () {
|
||||
table.reload('dict-data-table');
|
||||
})
|
||||
} else {
|
||||
popup.failure(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
</script>
|
||||
</html>
|
||||
@@ -12,7 +12,7 @@
|
||||
<div class="layui-col-md6" id="host-info-card">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
主机信息
|
||||
主机监控
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row layui-col-space10">
|
||||
@@ -95,7 +95,7 @@
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">主机信息</div>
|
||||
<div class="layui-card-body">
|
||||
<table class="layui-table" lay-skin="line">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>属性</th>
|
||||
@@ -244,7 +244,6 @@
|
||||
})
|
||||
|
||||
|
||||
let bgColor = "#fff";
|
||||
let color = [
|
||||
"#0090FF",
|
||||
"#36CE9E",
|
||||
@@ -269,7 +268,7 @@
|
||||
let echartData = [];
|
||||
|
||||
var option = {
|
||||
backgroundColor: bgColor,
|
||||
backgroundColor: 'transparent',
|
||||
color: color,
|
||||
legend: {
|
||||
right: 10,
|
||||
@@ -286,6 +285,7 @@
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
backgroundColor: 'transparent',
|
||||
top: 100,
|
||||
containLabel: true
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user