修改bug

beetlsql3-dev
姚丹ab 2 years ago
parent 7225e4bae7
commit c3af16f714

@ -422,7 +422,7 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
layer.msg('排课标题未填写!!', {icon: 5}); layer.msg('排课标题未填写!!', {icon: 5});
return; return;
} }
console.log($.isEmpty(teacherOpenCourseId))
if ($.isEmpty(teacherOpenCourseId)) { if ($.isEmpty(teacherOpenCourseId)) {
layer.msg('开课未选!!', {icon: 5}); layer.msg('开课未选!!', {icon: 5});
return; return;

@ -1,48 +1,61 @@
layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) { layui.define(['form', 'laydate', 'table', 'laytpl'], function (exports) {
var form = layui.form; var form = layui.form;
var laydate = layui.laydate; var laydate = layui.laydate;
var table = layui.table; var table = layui.table;
var laytpl = layui.laytpl; var laytpl = layui.laytpl;
var teacherOpenCourseScheduleSessionTable = null; var teacherOpenCourseScheduleSessionTable = null;
var view ={ var view = {
init:function(){ init: function () {
var that = this var that = this
this.initTable(); this.initTable();
this.initSearchForm(); this.initSearchForm();
this.initToolBar(); this.initToolBar();
window.dataReload = function(){ window.dataReload = function () {
Lib.doSearchForm($("#searchForm"),teacherOpenCourseScheduleSessionTable) Lib.doSearchForm($("#searchForm"), teacherOpenCourseScheduleSessionTable)
that.initToolBar(); that.initToolBar();
} }
}, },
initTable:function(){ initTable: function () {
var sx_ = localStorage.getItem("teacherOpenCourseScheduleSessionTable_field_"+Common.userInfoId); //筛选值显示、隐藏缓存 var sx_ = localStorage.getItem("teacherOpenCourseScheduleSessionTable_field_" + Common.userInfoId); //筛选值显示、隐藏缓存
if($.isEmpty(sx_)){sx_ = {};}else {sx_ = JSON.parse(sx_);} if ($.isEmpty(sx_)) {
sx_ = {};
} else {
sx_ = JSON.parse(sx_);
}
teacherOpenCourseScheduleSessionTable = table.render({ teacherOpenCourseScheduleSessionTable = table.render({
elem : '#teacherOpenCourseScheduleSessionTable', elem: '#teacherOpenCourseScheduleSessionTable',
height : Lib.getTableHeight(1), height: Lib.getTableHeight(1),
cellMinWidth: 100, cellMinWidth: 100,
method : 'post', method: 'post',
// url : Common.ctxPath + '/jlw/teacherOpenCourseScheduleSession/list.json' // 数据接口 // url : Common.ctxPath + '/jlw/teacherOpenCourseScheduleSession/list.json' // 数据接口
url : Common.ctxPath + '/jlw/teacherOpenCourseScheduleSession/listGroup.json' // 数据接口 url: Common.ctxPath + '/jlw/teacherOpenCourseScheduleSession/listGroup.json' // 数据接口
,page : Lib.tablePage // 开启分页 , page: Lib.tablePage // 开启分页
/*,toolbar: '#toolbar_teacherOpenCourseScheduleSession' //自定义头部左侧工具栏 /*,toolbar: '#toolbar_teacherOpenCourseScheduleSession' //自定义头部左侧工具栏
,defaultToolbar: ['filter', 'print', 'exports'] //头部右侧工具栏*/ ,defaultToolbar: ['filter', 'print', 'exports'] //头部右侧工具栏*/
,limit : 10, , limit: 10,
cols : [ [ // 表头 cols: [[ // 表头
{ {
field: 'scheduleSessionTitle', field: 'scheduleSessionTitle',
title: '排课标题', title: '排课标题',
align: "center", align: "center",
hideField: false, hideField: false,
hide:$.isEmpty(sx_['scheduleSessionTitle'])?false:sx_['scheduleSessionTitle'], hide: $.isEmpty(sx_['scheduleSessionTitle']) ? false : sx_['scheduleSessionTitle'],
}, },
{ {
field: 'teacherOpenCourseIdText', field: 'teacherOpenCourseIdText',
title: '开课名称', title: '开课名称',
align: "center", align: "center",
hideField: false, hideField: false,
hide:$.isEmpty(sx_['teacherOpenCourseIdText'])?false:sx_['teacherOpenCourseIdText'], hide: $.isEmpty(sx_['teacherOpenCourseIdText']) ? false : sx_['teacherOpenCourseIdText'],
templet: function (d) {
var value;
if ($.isEmpty(d.teacherOpenCourseIdText)) {
value = d.courseInfoIdText;
}else {
value = d.teacherOpenCourseIdText;
}
return value;
}
}, },
{ {
field: 'teacherIdText', field: 'teacherIdText',
@ -68,7 +81,7 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
align: "center", align: "center",
hideField: false, hideField: false,
hide: $.isEmpty(sx_['look']) ? false : sx_['look'], hide: $.isEmpty(sx_['look']) ? false : sx_['look'],
templet:function (d) { templet: function (d) {
return "<a class='layui-table-link' lay-event='look'>查看</a>" return "<a class='layui-table-link' lay-event='look'>查看</a>"
} }
}, },
@ -101,13 +114,18 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
align: "center", align: "center",
hideField: false, hideField: false,
hide: $.isEmpty(sx_['teacherOpenCourseScheduleSessionStatusText']) ? false : sx_['teacherOpenCourseScheduleSessionStatusText'], hide: $.isEmpty(sx_['teacherOpenCourseScheduleSessionStatusText']) ? false : sx_['teacherOpenCourseScheduleSessionStatusText'],
templet:function (d) { templet: function (d) {
var css = d.teacherOpenCourseScheduleSessionStatus == 2 ? "textType2" : 'textType'; var css = d.teacherOpenCourseScheduleSessionStatus == 2 ? "textType2" : 'textType';
return '<span class="' + css + '">' +d.teacherOpenCourseScheduleSessionStatusText + '</span>' return '<span class="' + css + '">' + d.teacherOpenCourseScheduleSessionStatusText + '</span>'
} }
}, },
{ {
field : 'userId',title : '操作',align:"center",width:200,fixed:'right', templet: function (d) { field: 'userId',
title: '操作',
align: "center",
width: 200,
fixed: 'right',
templet: function (d) {
var htm = '<a class="layui-table-link" lay-event="edit">编辑</a>'; var htm = '<a class="layui-table-link" lay-event="edit">编辑</a>';
htm += '<a class="layui-table-link" lay-event="enable">启用</a>'; htm += '<a class="layui-table-link" lay-event="enable">启用</a>';
htm += '<a class="layui-table-link" lay-event="disable">禁用</a>'; htm += '<a class="layui-table-link" lay-event="disable">禁用</a>';
@ -115,26 +133,26 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
return htm; return htm;
} }
} }
] ] ]]
}); });
table.on('checkbox(teacherOpenCourseScheduleSessionTable)', function(obj){ table.on('checkbox(teacherOpenCourseScheduleSessionTable)', function (obj) {
var teacherOpenCourseScheduleSession = obj.data; var teacherOpenCourseScheduleSession = obj.data;
if(obj.checked){ if (obj.checked) {
//按钮逻辑Lib.buttonEnable() //按钮逻辑Lib.buttonEnable()
}else{ } else {
} }
}) })
}, },
initSearchForm:function(){ initSearchForm: function () {
//Lib.initSearchForm( $("#searchForm"),teacherOpenCourseScheduleSessionTable,form); //Lib.initSearchForm( $("#searchForm"),teacherOpenCourseScheduleSessionTable,form);
var btn = $("#searchFormSearch"); var btn = $("#searchFormSearch");
btn.on('click', function () { btn.on('click', function () {
var data = $("#searchForm").serializeJson(); var data = $("#searchForm").serializeJson();
data.courseType = $("#searchForm select[name='teacherOpenCourseId']").find("option:selected").attr("status")||""; data.courseType = $("#searchForm select[name='teacherOpenCourseId']").find("option:selected").attr("status") || "";
console.log(data.courseType) console.log(data.courseType)
teacherOpenCourseScheduleSessionTable.reload({ teacherOpenCourseScheduleSessionTable.reload({
where: data, where: data,
@ -145,22 +163,22 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
}); });
}, },
initToolBar:function(){ initToolBar: function () {
toolbar = { toolbar = {
add: function () { add: function () {
var url = "/jlw/teacherOpenCourseScheduleSession/add.do"; var url = "/jlw/teacherOpenCourseScheduleSession/add.do";
Common.openDlg(url,"排课管理>新增排课"); Common.openDlg(url, "排课管理>新增排课");
}, },
edit: function () { edit: function () {
var data = Common.getOneFromTable(table,"teacherOpenCourseScheduleSessionTable"); var data = Common.getOneFromTable(table, "teacherOpenCourseScheduleSessionTable");
if(data==null){ if (data == null) {
return ; return;
} }
var url = "/jlw/teacherOpenCourseScheduleSession/add.do?teacherOpenCourseScheduleSessionId="+data.teacherOpenCourseScheduleSessionId; var url = "/jlw/teacherOpenCourseScheduleSession/add.do?teacherOpenCourseScheduleSessionId=" + data.teacherOpenCourseScheduleSessionId;
Common.openDlg(url,"排课管理>编辑排课"); Common.openDlg(url, "排课管理>编辑排课");
}, },
del: function () { del: function () {
layui.use(['del'], function(){ layui.use(['del'], function () {
var delView = layui.del var delView = layui.del
delView.delBatch(); delView.delBatch();
}); });
@ -176,7 +194,7 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
}, },
} }
//触发事件 //触发事件
$('.ext-toolbar').on('click', function() { $('.ext-toolbar').on('click', function () {
var type = $(this).data('type'); var type = $(this).data('type');
toolbar[type] ? toolbar[type].call(this) : ''; toolbar[type] ? toolbar[type].call(this) : '';
}); });
@ -184,28 +202,31 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
}, initTableTool: table.on('tool(teacherOpenCourseScheduleSessionTable)', function (obj) { }, initTableTool: table.on('tool(teacherOpenCourseScheduleSessionTable)', function (obj) {
var data = obj.data; var data = obj.data;
if (obj.event === 'edit') { if (obj.event === 'edit') {
var url = "/jlw/teacherOpenCourseScheduleSession/add.do?teacherOpenCourseScheduleSessionId="+data.teacherOpenCourseScheduleSessionId; var url = "/jlw/teacherOpenCourseScheduleSession/add.do?teacherOpenCourseScheduleSessionId=" + data.teacherOpenCourseScheduleSessionId;
Common.openDlg(url,"排课管理>编辑排课"); Common.openDlg(url, "排课管理>编辑排课");
}else if(obj.event === "del"){ } else if (obj.event === "del") {
layer.confirm('是否确定删除该信息?', function (index) { layer.confirm('是否确定删除该信息?', function (index) {
var ret = Common.postAjax("/jlw/teacherOpenCourseScheduleSession/delete.json",{ids:data.teacherOpenCourseScheduleSessionId}); var ret = Common.postAjax("/jlw/teacherOpenCourseScheduleSession/delete.json", {ids: data.teacherOpenCourseScheduleSessionId});
layer.msg(ret.code == 0?"删除成功!":ret.msg, { layer.msg(ret.code == 0 ? "删除成功!" : ret.msg, {
offset: ['50%'], offset: ['50%'],
icon: ret.code == 0?1:2, icon: ret.code == 0 ? 1 : 2,
time: 1500 //2秒关闭如果不配置默认是3秒 time: 1500 //2秒关闭如果不配置默认是3秒
},function (){ }, function () {
if(ret.code == 0){ if (ret.code == 0) {
Lib.tableRefresh(); Lib.tableRefresh();
} }
}); });
}); });
}else if(obj.event == 'look'){ } else if (obj.event == 'look') {
lookInfoDate(data); lookInfoDate(data);
} else if (obj.event == "enable") { } else if (obj.event == "enable") {
layer.confirm('是否确定启用该信息?', function (index) { layer.confirm('是否确定启用该信息?', function (index) {
var ret = Common.postAjax("/jlw/teacherOpenCourseScheduleSession/edit.json", var ret = Common.postAjax("/jlw/teacherOpenCourseScheduleSession/edit.json",
{teacherOpenCourseScheduleSessionId: data.teacherOpenCourseScheduleSessionId,teacherOpenCourseScheduleSessionStatus:1}); {
teacherOpenCourseScheduleSessionId: data.teacherOpenCourseScheduleSessionId,
teacherOpenCourseScheduleSessionStatus: 1
});
layer.msg(ret.code == 0 ? "启用成功!" : ret.msg, { layer.msg(ret.code == 0 ? "启用成功!" : ret.msg, {
offset: ['50%'], offset: ['50%'],
icon: ret.code == 0 ? 1 : 2, icon: ret.code == 0 ? 1 : 2,
@ -219,7 +240,10 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
} else if (obj.event == "disable") { } else if (obj.event == "disable") {
layer.confirm('是否确定禁用该信息?', function (index) { layer.confirm('是否确定禁用该信息?', function (index) {
var ret = Common.postAjax("/jlw/teacherOpenCourseScheduleSession/edit.json", var ret = Common.postAjax("/jlw/teacherOpenCourseScheduleSession/edit.json",
{teacherOpenCourseScheduleSessionId: data.teacherOpenCourseScheduleSessionId,teacherOpenCourseScheduleSessionStatus:2}); {
teacherOpenCourseScheduleSessionId: data.teacherOpenCourseScheduleSessionId,
teacherOpenCourseScheduleSessionStatus: 2
});
layer.msg(ret.code == 0 ? "禁用成功!" : ret.msg, { layer.msg(ret.code == 0 ? "禁用成功!" : ret.msg, {
offset: ['50%'], offset: ['50%'],
icon: ret.code == 0 ? 1 : 2, icon: ret.code == 0 ? 1 : 2,
@ -233,24 +257,26 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
} }
}) })
}; };
exports('index',view); exports('index', view);
function lookInfoDate(data) { function lookInfoDate(data) {
layer.open({ layer.open({
type: 1, type: 1,
title: '查看', title: '查看',
btnAlign: 'c', btnAlign: 'c',
closeBtn:true, closeBtn: true,
shadeClose:true, shadeClose: true,
area: ['750px', '250px'], area: ['750px', '250px'],
content: '<div id="lookInfoDate_view"></div>', content: '<div id="lookInfoDate_view"></div>',
success: function (layero, index) { success: function (layero, index) {
var getTpl = lookInfoDate_demo.innerHTML var getTpl = lookInfoDate_demo.innerHTML
,view = document.getElementById('lookInfoDate_view'); , view = document.getElementById('lookInfoDate_view');
laytpl(getTpl).render(data, function(html){ laytpl(getTpl).render(data, function (html) {
view.innerHTML = html; view.innerHTML = html;
}); });
}, },
yes: function (index) {}, yes: function (index) {
},
btn2: function (index, layero) { btn2: function (index, layero) {
layer.close(index); layer.close(index);
} }

@ -2,7 +2,7 @@
<link rel="stylesheet" type="text/css" href="${ctxPath}/css/plugin.css?v=${jsVer}" media="all"/> <link rel="stylesheet" type="text/css" href="${ctxPath}/css/plugin.css?v=${jsVer}" media="all"/>
<form class="layui-form" id="addForm"> <form class="layui-form" id="addForm">
<div style="margin-left: 95px;"> <div style="margin-left: 95px;">
<layui:submitButtons id="addButton" buttonType="" /> <layui:submitButtons id="addButton" buttonType=""/>
</div> </div>
<!--isSignRole.get()!'' :1admin+管理员 2:uniAdmin学院管理员 3:teacher 4student--> <!--isSignRole.get()!'' :1admin+管理员 2:uniAdmin学院管理员 3:teacher 4student-->
<!--#if(isSignRole.get()!''== 2){ --> <!--#if(isSignRole.get()!''== 2){ -->
@ -12,8 +12,10 @@
<label class="layui-form-label"><span class="req">*</span>所属院校:</label> <label class="layui-form-label"><span class="req">*</span>所属院校:</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" value="${universitiesCollegesInfo.universitiesCollegesName}" <input type="text" value="${universitiesCollegesInfo.universitiesCollegesName}"
class="layui-input" data-value="${universitiesCollegesInfo.universitiesCollegesId}" disabled="disabled" style="background-color: #e7e7e7"> class="layui-input" data-value="${universitiesCollegesInfo.universitiesCollegesId}"
<input type="hidden" name="universitiesCollegesId" value="${universitiesCollegesInfo.universitiesCollegesId}" disabled="disabled" style="background-color: #e7e7e7">
<input type="hidden" name="universitiesCollegesId"
value="${universitiesCollegesInfo.universitiesCollegesId}"
class="layui-input"> class="layui-input">
</div> </div>
</div> </div>
@ -41,7 +43,8 @@
<div class="layui-input-inline"> <div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' value="${schoolClass.universitiesCollegesId}" <layui:simpleDictSelect style='layui-input-inline' value="${schoolClass.universitiesCollegesId}"
type="universities_colleges.universities_colleges_name.universities_colleges_status=1" type="universities_colleges.universities_colleges_name.universities_colleges_status=1"
id="universitiesCollegesId" name="universitiesCollegesId" layFilter="select_universitiesColleges" lay-verify="required"/> id="universitiesCollegesId" name="universitiesCollegesId"
layFilter="select_universitiesColleges" lay-verify="required"/>
</div> </div>
</div> </div>
</div> </div>
@ -54,7 +57,8 @@
<layui:simpleDictSelect style='layui-input-inline' <layui:simpleDictSelect style='layui-input-inline'
type="university_faculty.university_faculty_name.university_faculty_status=1,universities_colleges_id=${schoolClass.universitiesCollegesId!''}" type="university_faculty.university_faculty_name.university_faculty_status=1,universities_colleges_id=${schoolClass.universitiesCollegesId!''}"
id="universityFacultyId" name="universityFacultyId" id="universityFacultyId" name="universityFacultyId"
value="${schoolClass.universityFacultyId!''}" layFilter="select_universityFacultyIds" value="${schoolClass.universityFacultyId!''}"
layFilter="select_universityFacultyIds"
lay-verify="required"/> lay-verify="required"/>
</div> </div>
</div> </div>
@ -77,35 +81,37 @@
<!--<button type="button" class="layui-btn layui-btn-sm rightUniversitySystemAdd bg_button">去添加</button>--> <!--<button type="button" class="layui-btn layui-btn-sm rightUniversitySystemAdd bg_button">去添加</button>-->
</div> </div>
</div> </div>
<!-- <div class="layui-row">--> <!-- <div class="layui-row">-->
<!-- <div class="layui-form-item">--> <!-- <div class="layui-form-item">-->
<!-- <div class="layui-inline">--> <!-- <div class="layui-inline">-->
<!-- <label class="layui-form-label"><span class="req">*</span>班级编号:</label>--> <!-- <label class="layui-form-label"><span class="req">*</span>班级编号:</label>-->
<!-- <div class="layui-input-inline">--> <!-- <div class="layui-input-inline">-->
<!-- <input type="text" name="classSn" value="${schoolClass.classSn}" class="layui-input" lay-verify="required">--> <!-- <input type="text" name="classSn" value="${schoolClass.classSn}" class="layui-input" lay-verify="required">-->
<!-- </div>--> <!-- </div>-->
<!-- </div>--> <!-- </div>-->
<!-- </div>--> <!-- </div>-->
<!-- </div>--> <!-- </div>-->
<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label"><span class="req">*</span>班级名称:</label> <label class="layui-form-label"><span class="req">*</span>班级名称:</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="className" value="${schoolClass.className}" class="layui-input" lay-verify="required" <input type="text" name="className" value="${schoolClass.className}" class="layui-input"
onkeyup="this.value=this.value.replace(/|:|-/g,'')" onafterpaste="this.value=this.value.replace(/|:|-/g,'')"> lay-verify="required"
onkeyup="this.value=this.value.replace(/|:|-/g,'')"
onafterpaste="this.value=this.value.replace(/|:|-/g,'')">
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<input type="hidden" name="classId" value="${schoolClass.classId}" /> <input type="hidden" name="classId" value="${schoolClass.classId}"/>
<input type="hidden" name="isSignRole" value="${isSignRole.get()!''}" /> <input type="hidden" name="isSignRole" value="${isSignRole.get()!''}"/>
</form> </form>
<!--#} --> <!--#} -->
<script> <script>
layui.use(['add'], function(){ layui.use(['add'], function () {
var schoolClassAdd = layui.add var schoolClassAdd = layui.add
schoolClassAdd.init(); schoolClassAdd.init();
}); });
</script> </script>

@ -20,7 +20,7 @@
</div> </div>
</div> </div>
</div> </div>
<!--<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label"><span class="req">*</span>所属院系:</label> <label class="layui-form-label"><span class="req">*</span>所属院系:</label>
@ -33,7 +33,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="layui-row"> <!-- <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label"><span class="req">*</span>所属专业:</label> <label class="layui-form-label"><span class="req">*</span>所属专业:</label>
@ -45,7 +45,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>--> </div>-->
<!--#}else if(isSignRole.get()!''== 1){ --> <!--#}else if(isSignRole.get()!''== 1){ -->
<div class="layui-row"> <div class="layui-row">
@ -63,21 +63,21 @@
<button type="button" class="layui-btn layui-btn-sm rightOffAdd bg_button">去添加</button> <button type="button" class="layui-btn layui-btn-sm rightOffAdd bg_button">去添加</button>
</div> </div>
</div> </div>
<!--#} -->
<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label"><span class="req">*</span>所属院系:</label> <label class="layui-form-label"><span class="req">*</span>所属院系:</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<layui:simpleDictSelect style='layui-input-inline' value="${teacher.universityFacultyId}" <layui:simpleDictSelect style='layui-input-inline' value="${teacher.universityFacultyId}"
type="university_faculty.university_faculty_name.university_faculty_status=1,universities_colleges_id=${teacher.universitiesCollegesId}" type="university_faculty.university_faculty_name.university_faculty_status=1,universities_colleges_id=${teacher.universitiesCollegesId},${user.get().isAdmin ? '1=1' : 'find_in_set(org_id, ' + user.get().orgId + ')'}"
id="universityFacultyId" name="universityFacultyId" id="universityFacultyId" name="universityFacultyId"
layFilter="select_universityFacultyIds"/> layFilter="select_universityFacultyIds"/>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!--#} -->
<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
@ -92,7 +92,6 @@
</div> </div>
</div> </div>
<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">

Loading…
Cancel
Save