merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정

This commit is contained in:
jilee4unity
2026-05-28 23:34:06 +09:00
7250 changed files with 570509 additions and 25 deletions

View File

@@ -0,0 +1,136 @@
.timepicker {
position: absolute;
z-index: 1000;
float: left;
width: 160px;
padding-bottom: 5px;
margin: 2px 0 0 0;
list-style: none;
font-size: 14px;
text-align: center;
background-color: #fff;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 4px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
background-clip: padding-box;
}
.timepicker:before,
.timepicker:after {
content: '';
border-top: 0;
display: inline-block;
position: absolute;
}
.timepicker .icon-up {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MjMyRjZENzU1NjIxMUU3OTkwMjhDMDYyNDEwRUNBQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MjMyRjZEODU1NjIxMUU3OTkwMjhDMDYyNDEwRUNBQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjUyMzJGNkQ1NTU2MjExRTc5OTAyOEMwNjI0MTBFQ0FBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjUyMzJGNkQ2NTU2MjExRTc5OTAyOEMwNjI0MTBFQ0FBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+GdMqPQAAAZdJREFUeNrUmMlKxEAQhlsE8eQSFyTxWTx5Vhx1xn3XkydvvoMgCOJV8CUUd8UFL+rFN/AV3B39GybQBDNWdTpJpeCDQKqT+ajqJaNUulEG52Af9KuCxiKogp8a76BSNIkVQ8DkE4wXXcKUmZAusRxppzg+JFdmiSAQlRkruoTZZhVJElVLkbAyucssJJQQsTTPO5IwK1POY7P7Jv7AQ3AnUYbTTlqiGXSDB0abjUqSOAItxlhfigxnThxHJGxkdJuNuJaYY8yJkxiJMALwyKiMM5lZpkQr4ZkBozJvYDhLiVPQxni2z5Qp2UrMgC/ii86YEraVGeK+YDoDCRuZV47MFKOd9Gdsu4N56DNlBikS1EpcAM/hyhi4kuFIXDqqRDR6k8pMMiU8lV74jH3mBQyEA0uCJGzaTMv06UFPxAFXoCPDEzZHRh9O1TNRwlPZB/U4c6+TN/9JugadOX6FUmTWdGIT2ItJuAVdAv4XqCezDRrDRH2xG0m4ESJRb2ne+iuxAazXJs5GSvtE0ugBO+AArJo3fgUYAKf2/v/Eyp9gAAAAAElFTkSuQmCC);
}
.timepicker .icon-down {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MzU2NEE0ODU1NjIxMUU3ODcxRUQxRjVDQkRBMzYxNSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MzU2NEE0OTU1NjIxMUU3ODcxRUQxRjVDQkRBMzYxNSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzNTY0QTQ2NTU2MjExRTc4NzFFRDFGNUNCREEzNjE1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYzNTY0QTQ3NTU2MjExRTc4NzFFRDFGNUNCREEzNjE1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NuD5CwAAAaNJREFUeNrUmMlKxEAQhlsE8aSOG5LxWTx5Vhx1dNz3kydvvoMgCOJV8CUUd8UFL44X38BXcBl1xr9gGjSYpCtJd2oKPphDpdPfVHV3EqX+xjo4AnugT8mLHNgCx2ATNP2XtANqvyiDfkESPeDON8d90KwT6MeuL0HzBPJCJO4D5ngAWihpIyBBikw3uI2Y4zYlPkYkZSnTCW4M5vei6gunZkDZsUyXoQTxTBcMgFdhMlSJa8M5fYGCvnCIIUNt5gmSmPYPMAzeGJWxsTXnmBIzQQNxZfIpV+IqDYm4Ml5Klbg0vOe3iYSOEYeV6QAXjErMcm9AMu+WZbgSc3H/rQJTxmNKnDPaaT5p/45aqEw7OHMpoWMMfDDOmTCZNqbEQtp7PMlUErYZSZwajlEFi7ZO3XFGZfwyJHHCkFiy/RzElekFrYyHUycSOoqMNntgSNCaWHb9rsCRyXxNRMUEo83EtFOYTCWhxIqULxwk8xlTRIyEjskYlREnoaNkKEPttKqEx5RBm62pBolSiEzDSARtzdUsDru0YhAc1l9jizZv9CPAACzc/v9R+XQaAAAAAElFTkSuQmCC);
}
.timepicker .icon-up,
.timepicker .icon-down {
display: inline-block;
width: 55px;
height: 38px;
background-position: center center;
background-repeat: no-repeat;
background-size: 45%;
opacity: .4;
cursor: pointer;
}
.timepicker .icon-up:hover,
.timepicker .icon-down:hover {
opacity: .7;
}
.timepicker:before {
top: -7px;
left: 6px;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid rgba(0, 0, 0, 0.15);
border-bottom-color: rgba(0, 0, 0, 0.2);
}
.timepicker:after {
top: -6px;
left: 7px;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #fff;
}
.timepicker .title {
padding: 10px 0 5px 0;
color: #888;
width: 100%;
cursor: default;
}
.timepicker .cell-2 {
float: left;
width: 20%;
min-height: 14px;
cursor: default;
}
.timepicker .cell-4 {
width: 40%;
float: left;
}
.timepicker .handle,
.timepicker .text {
position: relative;
}
.timepicker .chose-all {
position: relative;
margin: 0 10px 0 10px;
}
.timepicker .chose-all .text {
font: bold 18px/22px arial, sans-serif;
}
.timepicker a {
color: #aaa;
text-decoration: none;
}
.timepicker .text {
color: #666;
}
.timepicker .text a {
color: #444;
}
.timepicker .text a:active,
.timepicker .text a:focus,
.timepicker .text a:hover {
color: #222;
}
.timepicker ul {
list-style: none;
padding: 0;
margin: 0 5px;
}
.timepicker li.cell-2 {
padding: 3px 0;
cursor: pointer;
}
.timepicker li.cell-2:hover {
background: #ccc;
color: #555;
}

View File

@@ -0,0 +1,150 @@
var bstptid = "";
!(function (t, i) {
"function" == typeof define && define.amd
? define(["jquery"], i)
: "object" == typeof exports
? (module.exports = i(require("jquery")))
: (t.$ = i(t.jQuery));
})(this, function (t) {
"use strict";
var i = function (t) {
return t >= 10 ? t + "" : "0" + t;
},
e = /^[0-9]{1,2}:[0-9]{1,2}$/,
s = {},
n = function () {},
o = new Array(24)
.fill(null)
.map(function (t, e) {
var s = i(e);
return '<li class="cell-2 js-hour-cell" data-val="' + s + '">' + s + "</li>";
})
.join(""),
c = new Array(12)
.fill(null)
.map(function (t, e) {
var s = i(5 * e);
return '<li class="cell-2 js-minute-cell" data-val="' + s + '">' + s + "</li>";
})
.join(""),
l = t(
'<div class="timepicker">\t\t<div v-show class="title">시간을 선택하세요</div>\t\t\t<div class="chose-all">\t\t\t\t<div class="handle">\t\t\t\t\t<div class="cell-4"><a class="icon-up js-plus-houer"></a></div>\t\t\t\t\t<div class="cell-2"></div>\t\t\t\t\t<div class="cell-4"><a class="icon-up js-plus-minute"></a></div>\t\t\t\t</div>\t\t\t\t<div class="text">\t\t\t\t\t<div class="cell-4"><a class="js-hour-show"></a></div>\t\t\t\t\t<div class="cell-2">:</div>\t\t\t\t\t<div class="cell-4"><a class="js-minute-show" title="시간을 선택하세요"></a></div>\t\t\t\t</div>\t\t\t\t<div class="handle">\t\t\t\t\t<div class="cell-4"><a class="icon-down js-minus-houer"></a></div>\t\t\t\t\t<div class="cell-2"></div>\t\t\t\t\t<div class="cell-4"><a class="icon-down js-minus-minute"></a></div>\t\t\t\t</div>\t\t\t</div>\t\t\t<div class="chose-hour">\t\t\t\t<ul class="handle">' +
o +
'</ul>\t\t\t</div>\t\t\t<div class="chose-minute">\t\t\t\t<ul class="handle">' +
c +
"</ul>\t\t\t</div>\t\t</div>\t</div>"
);
return (
l.find("a").attr("href", "javascript:void(0);"),
(s.content = l),
(s.title = l.find(".title")),
(s.choseAll = l.find(".chose-all")),
(s.choseMinute = l.find(".chose-minute")),
(s.choseHour = l.find(".chose-hour")),
(s.hourShow = l.find(".js-hour-show")),
(s.minuteShow = l.find(".js-minute-show")),
(s.update = function () {
return (
bstptid.val(i(this.hour) + ":" + i(this.minute)),
this.minuteShow.text(i(this.minute)),
this.hourShow.text(i(this.hour)),
this.inputTarget.$timepickerUpdate(),
this
);
}),
(s.bindEvent = function () {
var t = this;
t.hasBind ||
((t.hasBind = !0),
this.content
.on("click", ".js-minus-minute", function () {
t.minute <= 0 ? (t.minute = 59) : t.minute--, t.update();
})
.on("click", ".js-plus-minute", function () {
t.minute >= 59 ? (t.minute = 0) : t.minute++, t.update();
})
.on("click", ".js-plus-houer", function () {
t.hour >= 23 ? (t.hour = 0) : t.hour++, t.update();
})
.on("click", ".js-minus-houer", function () {
t.hour <= 0 ? (t.hour = 23) : t.hour--, t.update();
})
.on("click", ".js-minute-cell", function () {
(t.minute = +this.getAttribute("data-val")),
t.update(),
t.choseMinute.hide(),
t.choseAll.show(),
t.title.text("시간을 선택하세요");
})
.on("click", ".js-hour-cell", function () {
(t.hour = +this.getAttribute("data-val")),
t.update(),
t.choseHour.hide(),
t.choseAll.show(),
t.title.text("시간을 선택하세요");
})
.on("click", function (t) {
t.stopPropagation();
}),
t.hourShow.on("click", function () {
t.choseAll.hide(), t.choseHour.show(), t.title.text("시간을 선택하세요");
}),
t.minuteShow.on("click", function () {
t.choseAll.hide(), t.choseMinute.show(), t.title.text("시간을 선택하세요");
}));
}),
(t.timepicker = s),
(t.fn.timepicker = function (i) {
var s,
o,
c = this,
l = t.timepicker,
u = t("html");
if (this[0].nodeName && "INPUT" === this[0].nodeName)
return (
(this.$timepickerUpdate = n),
this.off("click").on("click", function (i) {
var n = this.value;
bstptid = $(this);
e.test(n)
? ((n = n.split(":")), (s = +n[0]), (o = +n[1]))
: ((n = new Date()), (s = 0), (o = 0));
if ($(this).closest("table").length > 0) {
var pos = $(this).offset();
var h = pos.left + "px",
a = pos.top + this.offsetHeight + "px";
} else {
var h = this.offsetLeft + "px",
a = this.offsetTop + this.offsetHeight + "px";
}
(l.inputTarget = c),
l.content.appendTo(this.offsetParent).css({
left: h,
top: a,
}),
(l.hour = s),
(l.minute = o),
l.choseAll.show(),
l.choseHour.hide(),
l.choseMinute.hide(),
l.update(),
t.timepicker.bindEvent(),
i.stopPropagation(),
u.one("click", function () {
l.content.off().remove(), (l.hasBind = !1);
});
}),
this.off("keydown").on("keydown", function () {
return !1;
}),
(this.update = function (i) {
t.isFunction(i)
? (this.$timepickerUpdate = i)
: (this.$timepickerUpdate = n);
}),
this
);
}),
t
);
});