This commit is contained in:
myname 2025-01-24 15:19:32 +09:00
commit 16a5b6381b
13 changed files with 282 additions and 82 deletions

View File

@ -716,6 +716,8 @@ public class EgovMainController {
params.put("pageStart", 0);
params.put("perPageNum", 5);
params.put("searchMa", "N");
params.put("selectPage", "dashboard");
params.put("sql", "trublreqstmngAdministPagingList");
return JSPUtil.fixNull(bservice.list(params));
@ -730,6 +732,7 @@ public class EgovMainController {
params = JSPUtil.makeRequestParams(request, session, true);
params.put("pageStart", 0);
params.put("perPageNum", 5);
params.put("selectPage", "dashboard");
params.put("sql", "trublprocessmngTrublprocessmngPagingList");
return JSPUtil.fixNull(bservice.list(params));

View File

@ -300,6 +300,14 @@ public class BaseController {
params.put("sql", pageFolder + ".selectCfrnctrnsfer");
params.put("selectCfrnctrnsfer", JSPUtil.fixNull(bservice.select(params)));
}
//열람 여부 등록
if(pageFolder.equals("trublreqstmng")) {
params.put("viewType", "case");
params.put("sql", pageFolder + ".caseViewStatusInsert");
JSPUtil.fixNull(bservice.insert(params));
}
}else if("TP_RCEPTEDIT".equals(type)){
//사건마스터
@ -357,6 +365,13 @@ public class BaseController {
//내부결제 첨부파일 조회
params.put("sql", pageFolder+".selectGWFileList");
params.put("selectGWFileList", JSPUtil.fixNull(bservice.list(params)));
//열람 여부 등록
if(pageFolder.equals("trublprocessmng") || pageFolder.equals("trublend")) {
params.put("viewType", "case");
params.put("sql", pageFolder + ".caseViewStatusInsert");
JSPUtil.fixNull(bservice.insert(params));
}
}else if("MASTER_DELETE".equals(type)){
//내부결제 첨부파일 조회

View File

@ -39,4 +39,5 @@ public interface MediationDao {
public Map<String, Object> selectCaseComment(Map<String,Object> paramMap);
public void asSignUpdate(Map<String,Object> paramMap);
public void deptConfirmUpdate(Map<String,Object> paramMap);
public Map<String, Object> selectApplInfo(Map<String,Object> paramMap);
}

View File

@ -188,4 +188,9 @@ public class MediationDaoImpl implements MediationDao {
public void deptConfirmUpdate(Map<String, Object> paramMap) {
sqlSession.update("mediation.deptConfirmUpdate", paramMap);
}
@Override
public Map<String, Object> selectApplInfo(Map<String, Object> paramMap) {
return sqlSession.selectOne("mediation.selectApplInfo", paramMap);
}
}

View File

@ -147,9 +147,13 @@ public class MediationService {
public void asSignUpdate(Map<String, Object> paramMap) {
this.dao.asSignUpdate(paramMap);
}
}
public void deptConfirmUpdate(Map<String, Object> paramMap) {
public void deptConfirmUpdate(Map<String, Object> paramMap) {
this.dao.deptConfirmUpdate(paramMap);
}
}
public Map<String,Object> selectApplInfo(Map<String, Object> paramMap){
return dao.selectApplInfo(paramMap);
}
}

View File

@ -4973,5 +4973,38 @@ public class WebMediationController {
mavjson.addAllObjects(params);
return mavjson;
}
@RequestMapping(value = "/web/user/mediation/case/selectApplInfoAjax.do")
public ModelAndView selectApplInfoAjax(ModelMap map
, @RequestParam Map<String,Object> paramMap) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String rceptNo = (String) paramMap.get("rceptNo");
System.out.println(rceptNo);
Map<String, Object> result = service.selectApplInfo(paramMap);
// 휴대폰 번호 분리
String tel = (String) result.get("tel");
String tellNum[] = tel.split("-");
result.put("rcePh1", tellNum[0]);
result.put("rcePh2", tellNum[1]);
result.put("rcePh3", tellNum[2]);
// 팩스번호 분리
String fax = (String) result.get("fax");
String faxNum[] = fax.split("-");
result.put("rceFax1", faxNum[0]);
result.put("rceFax2", faxNum[1]);
result.put("rceFax3", faxNum[2]);
modelAndView.addObject("result", result);
return modelAndView;
}
}

View File

@ -1435,4 +1435,31 @@
TIMHDER_ASSIGN_DT = SYSDATE
WHERE RCEPT_NO = #{rceptNo}
</update>
<!-- 신청인 -->
<select id="selectApplInfo" parameterType="egovMap" resultType="egovMap">
SELECT
RCEPT_NO
, SEQ_NO
, APPLCNT_COMPANY
, COMPANY_CEO
, COMPANY_GUBUN
, ZIP
, ADDR1
, ADDR2
, ROAD_ADDR1
, ROAD_ADDR2
, TEL
, FAX
, EMAIL
, BIZR_NO
, CPR_NO
, FILE_NO
FROM
C_APPLCNT
WHERE 1=1
AND RCEPT_NO = #{rceptNo}
AND ROWNUM =1
ORDER BY SEQ_NO
</select>
</mapper>

View File

@ -862,4 +862,20 @@
AND RESULT IS NOT NULL
)
</select>
<insert id="caseViewStatusInsert" parameterType="hashMap" useGeneratedKeys="false">
INSERT INTO UNP_VIEW_STATUS (VIEW_ID, VIEW_TYPE, VIEW_TARGET, MEMBER_ID, FRST_REGIST_PNTTM)
SELECT
UNP_VIEW_STATUS_SEQ.NEXTVAL,
#{viewType},
#{rceptNo},
#{memberId},
SYSDATE
FROM dual
WHERE NOT EXISTS(
SELECT 1
FROM UNP_VIEW_STATUS
WHERE VIEW_TYPE = #{viewType} AND VIEW_TARGET = #{rceptNo} AND MEMBER_ID = #{memberId}
)
</insert>
</mapper>

View File

@ -262,7 +262,6 @@
</if>
</if>
</where>
ORDER BY AA.CASE_NO DESC
) AAAAA
@ -517,7 +516,7 @@
AND RESULT IS NOT null)
</if>
<if test='memberPosition neq "0915000000"'>
<!-- <if test='memberPosition neq "0915000000"'> -->
<choose>
<when test="memberPosition eq '0910000000' or memberPosition eq '0903000000' or (memberPosition eq '0913000000' and memberDept eq '1010000000')">
@ -526,7 +525,7 @@
AND A.CASE_EXAMINER = #{memberId}
AND C.TIMHDER_ASSIGN = #{memberDept}
</when>
<when test="memberPosition eq '0911000000'">
<when test="memberPosition eq '0911000000' or memberPosition eq '0915000000'">
AND A.CASE_EXAMINER NOT IN(#{memberId})
AND C.TIMHDER_ASSIGN = #{memberDept}
</when>
@ -534,7 +533,7 @@
AND C.TIMHDER_ASSIGN = 'N'
</otherwise>
</choose>
</if>
<!-- </if> -->
<if test="searchVal != null and searchVal != ''">
<choose>
<when test="searchType == 'caseNoSearch'">AND A.CASE_NO LIKE '%' || #{searchVal} || '%' </when>
@ -559,7 +558,6 @@
</if>
</if>
</where>
ORDER BY A.CASE_NO DESC
) AAAAA
)
<if test="searchType == 'process'">
@ -567,6 +565,12 @@
TERM_CHECK = #{searchVal}
</where>
</if>
<if test='selectPage eq "dashboard"'>
ORDER BY CASE_NO ASC
</if>
<if test='selectPage neq "dashboard"'>
ORDER BY CASE_NO DESC
</if>
<include refid="bottom2"/>
</select>
@ -707,7 +711,7 @@
AND RESULT IS NOT null)
</if>
<if test='memberPosition neq "0915000000"'>
<!-- <if test='memberPosition neq "0915000000"'> -->
<choose>
<when test="memberPosition eq '0910000000' or memberPosition eq '0903000000' or (memberPosition eq '0913000000' and memberDept eq '1010000000')">
@ -716,7 +720,7 @@
AND A.CASE_EXAMINER = #{memberId}
AND C.TIMHDER_ASSIGN = #{memberDept}
</when>
<when test="memberPosition eq '0911000000'">
<when test="memberPosition eq '0911000000' or memberPosition eq '0915000000'">
AND A.CASE_EXAMINER NOT IN(#{memberId})
AND C.TIMHDER_ASSIGN = #{memberDept}
</when>
@ -724,7 +728,7 @@
AND C.TIMHDER_ASSIGN = 'N'
</otherwise>
</choose>
</if>
<!-- </if> -->
<if test="searchVal != null and searchVal != ''">
<choose>
<when test="searchType == 'caseNoSearch'">AND A.CASE_NO LIKE '%' || #{searchVal} || '%' </when>
@ -2917,4 +2921,20 @@
DEL_YN = 'Y'
WHERE CASE_NO = #{caseNo}
</update>
<insert id="caseViewStatusInsert" parameterType="hashMap" useGeneratedKeys="false">
INSERT INTO UNP_VIEW_STATUS (VIEW_ID, VIEW_TYPE, VIEW_TARGET, MEMBER_ID, FRST_REGIST_PNTTM)
SELECT
UNP_VIEW_STATUS_SEQ.NEXTVAL,
#{viewType},
#{rceptNo},
#{memberId},
SYSDATE
FROM dual
WHERE NOT EXISTS(
SELECT 1
FROM UNP_VIEW_STATUS
WHERE VIEW_TYPE = #{viewType} AND VIEW_TARGET = #{rceptNo} AND MEMBER_ID = #{memberId}
)
</insert>
</mapper>

View File

@ -32,14 +32,22 @@
(SELECT MEMBER_NAME FROM T_MEMBER WHERE MEMBER_ID = A.EXAMINER_ASSIGN) AS MEMBER_NAME,
DEL_GUBUN,
(SELECT CODE_NAME FROM C_CODE WHERE CODE_IDXS = A.DOC_GUBUN) AS DOC_GUBUN,
A.CASE_DATE AS CASE_DATE
A.CASE_DATE AS CASE_DATE,
CASE
WHEN B.VIEW_TARGET IS NOT NULL THEN 'Y'
ELSE 'N'
END AS VIEW_STATUS
FROM C_RCEPTMST A
LEFT JOIN UNP_VIEW_STATUS B
ON A.RCEPT_NO = B.VIEW_TARGET
AND B.MEMBER_ID = #{memberId}
AND B.VIEW_TYPE = 'case'
<where>
REQUEST_CHECK = '1602000000'
AND (DEL_GUBUN = 'N' OR DEL_GUBUN = 'R')
AND RCEPT_NO IS NOT NULL
<choose>
<when test='memberDept eq "1030000000" and memberPosition neq "0911000000"'>
<when test='memberDept eq "1030000000" and memberPosition neq "0911000000"'><!-- 유통팀 팀장아닌 -->
<choose>
<when test='searchMa == "Y"'>
AND STATE = '0302000000'
@ -61,7 +69,7 @@
</otherwise>
</choose>
</when>
<when test='memberDept eq "1010000000"'>
<when test='memberDept eq "1010000000"'><!-- 민원상담센터 -->
<choose>
<when test='searchMa == "Y"'>
AND STATE = '0302000000'
@ -93,7 +101,7 @@
AND TIMHDER_ASSIGN_DT IS NULL
AND EXAMINER_ASSIGN IS NULL
</when> -->
<when test='memberDept eq "1001000000" and memberPosition eq "0903000000"'>
<when test='memberDept eq "1001000000" and memberPosition eq "0903000000"'><!-- 공정거래조정원 부원장 -->
<choose>
<when test='searchMa == "Y"'>
AND STATE = '0302000000'
@ -115,7 +123,7 @@
</otherwise>
</choose>
</when>
<when test='memberDept eq "1003000000" and memberPosition eq "0910000000"'><!-- 실장 -->
<when test='memberDept eq "1003000000" and memberPosition eq "0910000000"'><!-- 분쟁조정실 실장 -->
AND STATE = '0302000000'
AND PRESIDENT_ASSIGN IS NOT NULL
AND PRESIDENT_ASSIGN_DT IS NOT NULL
@ -145,6 +153,10 @@
</when>
</choose>
<if test="selectPage eq 'dashboard' and memberPosition eq '0912000000'"> <!-- 조사관 대시보드 - 자기 사건만 조회 -->
AND EXAMINER_ASSIGN = #{memberId}
</if>
<if test="searchVal != null and searchVal != ''">
<choose>
<when test="searchType == 'companyCeo'">AND A.RCEPT_NO IN (SELECT RCEPT_NO FROM C_APPLCNT WHERE APPLCNT_COMPANY LIKE '%' || #{searchVal} || '%')</when>
@ -1867,4 +1879,20 @@
#{applyEtc}
)
</insert>
<insert id="caseViewStatusInsert" parameterType="hashMap" useGeneratedKeys="false">
INSERT INTO UNP_VIEW_STATUS (VIEW_ID, VIEW_TYPE, VIEW_TARGET, MEMBER_ID, FRST_REGIST_PNTTM)
SELECT
UNP_VIEW_STATUS_SEQ.NEXTVAL,
#{viewType},
#{rceptNo},
#{memberId},
SYSDATE
FROM dual
WHERE NOT EXISTS(
SELECT 1
FROM UNP_VIEW_STATUS
WHERE VIEW_TYPE = #{viewType} AND VIEW_TARGET = #{rceptNo} AND MEMBER_ID = #{memberId}
)
</insert>
</mapper>

View File

@ -222,6 +222,42 @@
$("#rceAddr2").val("");
$("#rceRoadAddr1").val("");
$("#rceRoadAddr2").val("");
}else if(funcType == "applcnt"){
var rceptNo = $("#rceptNo").val();
$.ajax({
url: "/web/user/mediation/case/selectApplInfoAjax.do"
, type: 'POST'
, data:{ "rceptNo" : rceptNo}
, dataType:'json'
, async: false
, success: function(returnData) {
var returnData = returnData.result;
$("#rcePersonCharge").val(returnData.companyCeo);
$("#rceTel").val("");
// 휴대폰 번호
$("#rcePh1").val(returnData.rcePh1);
$("#rcePh2").val(returnData.rcePh2);
$("#rcePh3").val(returnData.rcePh3);
// 팩스번호
$("#rceFax1").val(returnData.rceFax1);
$("#rceFax2").val(returnData.rceFax2);
$("#rceFax3").val(returnData.rceFax3);
$("#rceEmail").val(returnData.email);
$("#rceZip").val(returnData.zip);
$("#rceAddr1").val();
$("#rceAddr2").val();
$("#rceRoadAddr1").val(returnData.roadAddr1);
$("#rceRoadAddr2").val(returnData.roadAddr2);
}
, error: function(error) {
alert("error");
}
});
}
}
@ -1465,7 +1501,10 @@
<input type="radio" id="62" class="radio" checked="checked" name="62" onclick="managerInsert('nsame');"><label for="62">새로입력</label>
</li>
<li>
<input type="radio" id="equal" class="radio" name="62" onclick="managerInsert('same');"><label for="equal">대표자와 동일</label>
<input type="radio" id="equal" class="radio" name="62" onclick="managerInsert('same');"><label for="equal">대리인과 동일</label>
</li>
<li>
<input type="radio" id="applcnt" class="radio" name="62" onclick="managerInsert('applcnt');"><label for="applcnt">대표자와 동일</label>
</li>
</ul>
</div>

View File

@ -103,21 +103,25 @@
<div class="box_wrap">
<div class="box width3">
<div class="title">
<h2>최근 접수사건 <span>(미배정)</span></h2>
<h2>최근 접수사건 <span><c:if test="${params.memberPosition == SeedConstants.TIMJANG }">(미배정)</c:if></span></h2>
<button type="button" class="btn_plus" onclick="location.href='/gtm/case/trublreqstmng/administList/AdministPagingList.do'"><i></i></button>
</div>
<ul class="box_list">
<ul class="box_list recent">
<c:forEach var="rceptList" items="${rceptList}" varStatus="sts">
<li>
<c:set var="newClass" value="new"/>
<c:if test="${rceptList.viewStatus eq 'Y'}">
<c:set var="newClass" value=""/>
</c:if>
<c:choose>
<c:when test="${(params.searchMa != 'Y' && (params.memberDept == SeedConstants.YUTONG || params.memberDept == SeedConstants.HANGUK)) && params.memberPosition != SeedConstants.TIMJANG}">
<a href="javascript:goPage('rceptEdit','${rceptList.rceptNo}', '${rceptList.delGubun}');" >
<a href="javascript:goPage('rceptEdit','${rceptList.rceptNo}', '${rceptList.delGubun}');" class="${newClass}" >
</c:when>
<c:otherwise>
<a href="javascript:goPage('rceptView','${rceptList.rceptNo}', '${rceptList.delGubun}');" >
<a href="javascript:goPage('rceptView','${rceptList.rceptNo}', '${rceptList.delGubun}');" class="${newClass}" >
</c:otherwise>
</c:choose>
<span class="list_title">· ${rceptList.rceptNo}</span>
<span class="list_title">${rceptList.rceptNo}</span>
<span class="list_writer">${rceptList.applcntCompany}</span>
<span class="list_date">${rceptList.regDt}</span>
</a>
@ -137,7 +141,8 @@
<a href="javascript:void(0);" onclick="goPage('TP_RCEPTEDIT', '${caseList.caseNo}', '')">
<span class="list_title">· <c:out value="${caseList.caseNo}"/></span>
<span class="list_writer">
<c:set var="ceoName" value=""/>
<!-- 250124 신청인 > 조사관으로 변경 -->
<%-- <c:set var="ceoName" value=""/>
<c:choose>
<c:when test='${caseList.companyGubun eq "1301000000" && caseList.companyCeo ne null && caseList.companyCeo ne ""}'>
<c:set var="ceoName" value="${caseList.companyCeo}"/>
@ -155,7 +160,8 @@
<c:if test='${fn:length(ceoName)>13}'>
<c:set var="ceoName" value="${fn:substring(ceoName, 0, 13)}.."/>
</c:if>
<c:out value="${ceoName}"/>
<c:out value="${ceoName}"/> --%>
<c:out value="${caseList.caseExaminerNm}"/>
</span>
<span class="list_date">${caseList.caseDate}</span>
</a>

View File

@ -1,59 +1,62 @@
@charset "utf-8";
/* .wrap.main{min-height:100vh;} */
.main .contents{padding:0;width:100%;}
.main .box_wrap{display:flex;flex-wrap:wrap;gap:40px;}
.main .box{border:5px solid #f4f5fb;border-radius:10px;;}
.main .width3{width:calc((100% / 3) - 27px);}
.main .width2{width:calc((100% / 2) - 20px);}
.main .title{display:flex;height:50px;padding:0 25px;font-size:20px;font-weight:bold;color:#2b3db9;border-bottom:1px solid #f4f5f6;justify-content:space-between;align-items:center;}
.main .title span{font-size:18px;font-weight:400;}
.main .btn_plus{width:26px;height:26px;border:1px solid #d5d5d5;border-radius:5px;}
.main .btn_plus i{display:inline-block;width:100%;height:100%;background:url(/kofair_case_seed/adm/images/main/icon_plus.png) no-repeat center center;}
.main .box_list{display:flex;padding:20px 25px;flex-direction:column;gap:18px;}
.main .box_list a{display:flex;font-size:16px;font-weight:300;color:#666;gap:3px;transition:all 0.3s;}
.main .box_list a:hover{text-decoration:underline;text-underline-offset:3px;transition:all 0.3s;}
.main .box_list span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
.main .box_list .list_title{position:relative;width:calc(100% - 160px);font-weight:400;color:#222;}
.main .box_list .new .list_title::after{position:absolute;content:"N";display:inline-flex;width:16px;height:16px;font-size:10px;font-weight:bold;color:#fff;background:#e40000;border-radius:5px;justify-content:center;align-items:center;margin:4px 0 0 5px;}
.main .box_list .list_writer{width:60px;}
.main .box_list .list_date{width:100px;text-align:right;}
.main .quick_area{display:inline-flex;flex-wrap:wrap;border:0;gap:20px;}
.main .quick_area a{position:relative;width:calc((100% - 20px)/2);height:calc((100% - 20px)/2);padding:25px;color:#fff;border-radius:10px;transition:all 0.3s;}
.main .quick_area a::after{position:absolute;content:"";width:85px;height:85px;background:#fff;border-radius:100%;right:-6px;bottom:-17px;opacity:0.2;}
.main .quick_area a::before{position:absolute;content:"";width:85px;height:85px;}
.main .quick_area a.bg_7990c3::before{background:url(/kofair_case_seed/adm/images/main/icon_1.png) no-repeat center center;right:-4px;bottom:-14px;}
.main .quick_area a.bg_474b5e::before{background:url(/kofair_case_seed/adm/images/main/icon_2.png) no-repeat center center;right:-4px;bottom:-14px;}
.main .quick_area a.bg_171c70::before{background:url(/kofair_case_seed/adm/images/main/icon_3.png) no-repeat center center;right:-4px;bottom:-10px;}
.main .quick_area a.bg_04b5a5::before{background:url(/kofair_case_seed/adm/images/main/icon_4.png) no-repeat center center;right:-6px;bottom:-12px;}
.main .quick_area a:hover{transition:all 0.3s;}
.main .quick_area a.bg_7990c3:hover{box-shadow:0 0 9px rgba(121,144,195,0.5);}
.main .quick_area a.bg_474b5e:hover{box-shadow:0 0 9px rgba(71,75,94,0.5);}
.main .quick_area a.bg_171c70:hover{box-shadow:0 0 9px rgba(23,28,112,0.5);}
.main .quick_area a.bg_04b5a5:hover{box-shadow:0 0 9px rgba(4,181,165,0.5);}
.main .quick_area .bg_7990c3{background:#7990c3;}
.main .quick_area .bg_474b5e{background:#474b5e;}
.main .quick_area .bg_171c70{background:#171c70;}
.main .quick_area .bg_04b5a5{background:#04b5a5;}
.main .quick_area .quick_title{font-size:20px;font-weight:bold;}
.main .quick_area .baro_text{position:absolute;font-size:14px;left:25px;bottom:25px;}
.main .quick_area .baro_text i{display:inline-block;width:20px;height:11px;background:url(/kofair_case_seed/adm/images/main/icon_baro.png) no-repeat center center;}
@media screen and (max-width: 1600px){
.main .box_wrap{gap:30px;justify-content:space-between;}
.main .width3{width:calc((100% / 2) - 20px);}
.main .title{font-size:18px;}
.main .box_list a{font-size:15px;}
.main .quick_area{width:100%;justify-content:space-between;gap:20px 30px;}
.main .quick_area .quick_title{font-size:18px;}
.main .quick_area a{display:flex;width:calc((100%/2) - 20px);align-items:center;gap:12px;}
.main .quick_area .baro_text{position:initial;font-weight:300;margin:2px 0 0 0;opacity:0.6;}
@charset "utf-8";
/* .wrap.main{min-height:100vh;} */
.main .contents{padding:0;width:100%;}
.main .box_wrap{display:flex;flex-wrap:wrap;gap:40px;}
.main .box{border:5px solid #f4f5fb;border-radius:10px;;}
.main .width3{width:calc((100% / 3) - 27px);}
.main .width2{width:calc((100% / 2) - 20px);}
.main .title{display:flex;height:50px;padding:0 25px;font-size:20px;font-weight:bold;color:#2b3db9;border-bottom:1px solid #f4f5f6;justify-content:space-between;align-items:center;}
.main .title span{font-size:18px;font-weight:400;}
.main .btn_plus{width:26px;height:26px;border:1px solid #d5d5d5;border-radius:5px;}
.main .btn_plus i{display:inline-block;width:100%;height:100%;background:url(/kofair_case_seed/adm/images/main/icon_plus.png) no-repeat center center;}
.main .box_list{display:flex;padding:20px 25px;flex-direction:column;gap:18px;}
.main .box_list a{display:flex;font-size:16px;font-weight:300;color:#666;gap:3px;transition:all 0.3s;}
.main .box_list a:hover{text-decoration:underline;text-underline-offset:3px;transition:all 0.3s;}
.main .box_list span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
.main .box_list .list_title{position:relative;width:calc(100% - 160px);font-weight:400;color:#222;padding:}
.main .box_list.recent .list_title{padding:0 0 0 8px;}
.main .box_list.recent .new .list_title{padding:0 0 0 29px;}
.main .box_list.recent .list_title::before{position:absolute;content:"·";display:inline-flex;width:16px;height:16px;left:0;top:-1px;}
.main .box_list .new .list_title::after{position:absolute;content:"N";display:inline-flex;width:16px;height:16px;font-size:10px;font-weight:bold;color:#fff;background:#e40000;border-radius:5px;justify-content:center;align-items:center;margin:4px 0 0 5px;left:3px;}
.main .box_list .list_writer{width:60px;}
.main .box_list .list_date{width:100px;text-align:right;}
.main .quick_area{display:inline-flex;flex-wrap:wrap;border:0;gap:20px;}
.main .quick_area a{position:relative;width:calc((100% - 20px)/2);height:calc((100% - 20px)/2);padding:25px;color:#fff;border-radius:10px;transition:all 0.3s;}
.main .quick_area a::after{position:absolute;content:"";width:85px;height:85px;background:#fff;border-radius:100%;right:-6px;bottom:-17px;opacity:0.2;}
.main .quick_area a::before{position:absolute;content:"";width:85px;height:85px;}
.main .quick_area a.bg_7990c3::before{background:url(/kofair_case_seed/adm/images/main/icon_1.png) no-repeat center center;right:-4px;bottom:-14px;}
.main .quick_area a.bg_474b5e::before{background:url(/kofair_case_seed/adm/images/main/icon_2.png) no-repeat center center;right:-4px;bottom:-14px;}
.main .quick_area a.bg_171c70::before{background:url(/kofair_case_seed/adm/images/main/icon_3.png) no-repeat center center;right:-4px;bottom:-10px;}
.main .quick_area a.bg_04b5a5::before{background:url(/kofair_case_seed/adm/images/main/icon_4.png) no-repeat center center;right:-6px;bottom:-12px;}
.main .quick_area a:hover{transition:all 0.3s;}
.main .quick_area a.bg_7990c3:hover{box-shadow:0 0 9px rgba(121,144,195,0.5);}
.main .quick_area a.bg_474b5e:hover{box-shadow:0 0 9px rgba(71,75,94,0.5);}
.main .quick_area a.bg_171c70:hover{box-shadow:0 0 9px rgba(23,28,112,0.5);}
.main .quick_area a.bg_04b5a5:hover{box-shadow:0 0 9px rgba(4,181,165,0.5);}
.main .quick_area .bg_7990c3{background:#7990c3;}
.main .quick_area .bg_474b5e{background:#474b5e;}
.main .quick_area .bg_171c70{background:#171c70;}
.main .quick_area .bg_04b5a5{background:#04b5a5;}
.main .quick_area .quick_title{font-size:20px;font-weight:bold;}
.main .quick_area .baro_text{position:absolute;font-size:14px;left:25px;bottom:25px;}
.main .quick_area .baro_text i{display:inline-block;width:20px;height:11px;background:url(/kofair_case_seed/adm/images/main/icon_baro.png) no-repeat center center;}
@media screen and (max-width: 1600px){
.main .box_wrap{gap:30px;justify-content:space-between;}
.main .width3{width:calc((100% / 2) - 20px);}
.main .title{font-size:18px;}
.main .box_list a{font-size:15px;}
.main .quick_area{width:100%;justify-content:space-between;gap:20px 30px;}
.main .quick_area .quick_title{font-size:18px;}
.main .quick_area a{display:flex;width:calc((100%/2) - 20px);align-items:center;gap:12px;}
.main .quick_area .baro_text{position:initial;font-weight:300;margin:2px 0 0 0;opacity:0.6;}
}