thkim 2025-11-06 14:32:10 +09:00
commit 427aeddfd2
2 changed files with 30 additions and 37 deletions

View File

@ -190,11 +190,11 @@
<choose>
<!-- 프로젝트명 정렬 -->
<when test="sortField == 'projectName' and sortDir == 'asc'">
T.PROJECT_NAME ASC, DATETIME ASC, OB.MODIFY_CALL_DATE ASC
T.PROJECT_NAME ASC, T.DATETIME ASC, OB.MODIFY_CALL_DATE ASC
</when>
<!-- 프로젝트명 역순 정렬 -->
<when test="sortField == 'projectName' and sortDir == 'desc'">
T.PROJECT_NAME DESC, DATETIME ASC, OB.MODIFY_CALL_DATE ASC
T.PROJECT_NAME DESC, T.DATETIME ASC, OB.MODIFY_CALL_DATE ASC
</when>
<!-- 공급자 정렬 -->
@ -241,6 +241,18 @@
<when test="sortField == 'modifyCallDate' and sortDir == 'desc'">
OB.MODIFY_CALL_DATE DESC NULLS LAST
</when>
<!-- 처리상태 정렬 -->
<when test="sortField == 'stateName' and sortDir == 'asc'">
DECODE(T.STATE, '1', 1, '2', 2, '3', 3, '5', 4) ASC, OB.MODIFY_CALL_DATE ASC, T.DATETIME ASC, OC.DATETIME ASC
</when>
<!-- 처리상태 역순 정렬 -->
<when test="sortField == 'stateName' and sortDir == 'desc'">
DECODE(T.STATE, '5', 1, '3', 2, '2', 3, '1', 4) ASC, OB.MODIFY_CALL_DATE ASC, T.DATETIME ASC, OC.DATETIME ASC
</when>
<!-- [등록] 역순 정렬 -->
<when test="sortField == 'ins' and sortDir == 'asc'">
DECODE(T.STATE, '3', 1, '1', 2, '2', 3, '5', 4) ASC, OB.MODIFY_CALL_DATE ASC, T.DATETIME ASC, OC.DATETIME ASC
</when>
</choose>
<![CDATA[
) AS RN

View File

@ -400,34 +400,6 @@ function reloadGrid() {
schema: {
data: "items", // 서버에서 실제 데이터 Array key
total: "total", // 서버에서 전체 개수 key,
model: {
fields: {
rn: { type: "number" }, // 순번
classCode: { type: "string" },
projectCode: { type: "string" },
reportType: { type: "string" },
reportTypeName: { type: "string" },
projectName: { type: "string" },
userid: { type: "string" },
userName: { type: "string" },
state: { type: "string" },
stateName: { type: "string" },
checkuserid: { type: "string" },
datetime: { type: "string" }, // "YYYY-MM-DD HH:mm:ss" 형식
regFinDate: { type: "string" },
modifyCallDate: { type: "string" },
modifyFinDate: { type: "string" },
checkstart: { type: "string" },
checkok: { type: "string" },
ins: { type: "string" },
authins: { type: "string" },
map: { type: "string" },
modifycall: { type: "string" },
cursor: { type: "string" },
histSeq: { type: "number" },
expertFile: { type: "string" }
}
}
},
serverPaging: true,
serverSorting: true,
@ -495,7 +467,7 @@ function reloadGrid() {
return url
}
},
{ field: "stateName", width: 100, title: "처리상태", sortable: false, template: "<div class='td-data'>#: stateName #</div>" },
{ field: "stateName", width: 100, title: "처리상태", template: "<div class='td-data'>#: stateName #</div>" },
{
field: "checkstart",
width: 80,
@ -512,7 +484,7 @@ function reloadGrid() {
{
field: "ins",
width: 60, title: "등록",
sortable: false,
sortable: { allowUnsort: true, initialDirection: "asc" },
template: "<div class='td-data'>#= insBtnTemplate(data.reportType, data.projectCode, data.checkuserid, data.expertFile, data.ins) #</div>"
},
{
@ -570,11 +542,20 @@ function reloadGrid() {
},
dataBound: onDataBound,
// 🔹 정렬 이벤트 추가
sort: function(e) {
var grid = this;
// 정렬 변경 시 첫 페이지로 이동
grid.dataSource.page(1);
},
sort: function(e) {
var grid = this;
var sort = e.sort && e.sort[0] ? e.sort[0] : e.sort;
if (sort && sort.field === "ins" && sort.dir === "desc") {
e.preventDefault(); // DESC 금지
this.dataSource.sort([]); // 전체 정렬 해제
return;
}
// 정렬 변경 시 첫 페이지로 이동
grid.dataSource.page(1);
}
});
}