박정하 박정하 2023-07-07
230707 박정하 캘린더 수정
@f39ec6b1f405b9d600e64765bef9906bba52931f
client/resources/css/main.css
--- client/resources/css/main.css
+++ client/resources/css/main.css
@@ -1167,6 +1167,10 @@
   height: 100px;
 }
 
+.senior-detail .gender {
+  gap: 2rem;
+}
+
 .senior-insert .gender {
   padding-left: 2rem;
   gap: 2rem;
@@ -1187,10 +1191,10 @@
   border: #d8d3c7 1px solid;
 }
 
-.senior-detail input[type='checkbox'],
+/* .senior-detail input[type='checkbox'],
 .senior-detail input[type='checkbox']:checked {
   width: 10%;
-}
+} */
 
 .senior-edit th {
   font-size: 1.8rem
@@ -1599,4 +1603,17 @@
 .table-size-fix {
   max-height: 220px;
   overflow-y: auto;
+}
+
+.radio-tab {
+  gap: 2rem;
+}
+
+.radio-tab .flex-start {
+  padding-right: 2rem;
+  gap: 2rem;
+}
+
+.radio-tab .flex-start input {
+  width: auto;
 }
(No newline at end of file)
client/views/component/Modal_Guardian.jsx
--- client/views/component/Modal_Guardian.jsx
+++ client/views/component/Modal_Guardian.jsx
@@ -122,7 +122,8 @@
         } else {
           setIsPhoneCheck(false);
           guardianRef.current['gardian_phonenumber'].focus();
-          alert("보호자의 연락처가 아닙니다.");
+          let alertMsg = "해당 사람은 보호자가 아닙니다.\n(해당 사람은 보호 대상자이므로 보호자로 등록할 수 없습니다.)"
+          alert(alertMsg);
         }
       }
     }).catch((error) => {
@@ -470,8 +471,8 @@
                   </tr>
                 </table>
 
-                <div className="btn-wrap flex-center margin-bottom5">
-                  <button className={"btn-small gray-btn"} onClick={guardianNewInsert}>기존추가</button>
+                <div className="btn-wrap flex-center">
+                  <button className={"btn-small gray-btn"} onClick={guardianNewInsert}>추가</button>
                 </div>
               </>
             ) : (
@@ -612,7 +613,7 @@
                   </tr>
                 </table>
 
-                <div className="btn-wrap flex-center margin-bottom5">
+                <div className="btn-wrap flex-center">
                   {CommonUtil.isEmpty(guardian['guardian_id'])
                     ? <button className={"btn-small gray-btn"} onClick={guardianInsert}>추가</button>
                     : <>
client/views/pages/AppRoute.jsx
--- client/views/pages/AppRoute.jsx
+++ client/views/pages/AppRoute.jsx
@@ -398,13 +398,13 @@
       <PersonIcon sx={{ fontSize: 20, color: "#333333", marginRight: 1 }} />
     ),
   },
-  /* {
+  {
     title: "장비 사용 현황",
-    path: "/GovernmentEquipmentSelect",
+    path: "/AgencyEquipmentSelect",
     icon: (
       <SpeakerPhoneIcon sx={{ fontSize: 20, color: "#333333", marginRight: 1 }} />
     ),
-  }, */
+  },
   {
     title: "생활 복지 관리",
     path: "/Healthcare",
@@ -463,8 +463,8 @@
         element={<EquipmentRentalInsert />}
       ></Route>
       <Route
-        path="/GovernmentEquipmentSelect"
-        element={<GovernmentEquipmentSelect />}
+        path="/AgencyEquipmentSelect"
+        element={<AgencyEquipmentSelect />}
       ></Route>
       <Route
         path="/QandASelect"
client/views/pages/equipment/GovernmentEquipmentSelect.jsx
--- client/views/pages/equipment/GovernmentEquipmentSelect.jsx
+++ client/views/pages/equipment/GovernmentEquipmentSelect.jsx
@@ -579,8 +579,8 @@
               <th>시리얼넘버</th>
               <th>입고일자</th>
               <th>장비상태</th>
-              <th>기관</th>
-              <th>장비대여</th>
+              <th>대여기관</th>
+              {/* <th>장비대여</th> */}
               <th>관리</th>
             </tr>
           </thead>
@@ -594,9 +594,9 @@
                   <td data-label="입고일자">{item['equipment_stock_date']}</td>
                   <td data-label="장비상태">{equipmentStates[item['equipment_state']]}</td>
                   <td data-label="기관">{item['agency_name'] != null ? item['agency_name'] : '없음'}</td>
-                  <td cata-label="장비대여">
+                  {/* <td cata-label="장비대여">
                     <button className={"btn-small gray-btn"} onClick={() => modalRentalOpen(item)}>장비 배포</button>
-                  </td>
+                  </td> */}
                   <td data-label="관리">
                     <button className={"btn-small gray-btn"} onClick={() => modalEquipmentOpen(item)}>정보 수정</button>
                   </td>
@@ -766,7 +766,7 @@
                   </tr>
                   : null}
                 <tr>
-                  <th>시행기관 선택</th>
+                  <th>대여기관 선택</th>
                   {/* <td>
                     {orgListOfHierarchy.map((item, idx) => {
                       return (
@@ -795,7 +795,7 @@
                       console.log('e.target.value : ', e.target.value);
                       equipmentValueChange('agency_id', e.target.value);
                     }}>
-                      <option value="">시행기관을 선택해주세요.</option>
+                      <option value="">대여기관을 선택해주세요.</option>
                       {orgListOfHierarchy && orgListOfHierarchy[0] && orgListOfHierarchy[0]['agencyList'] != undefined ?
                         orgListOfHierarchy[0]['agencyList'].map((item2, idx2) => {
                           return (
client/views/pages/healthcare/HealthcareSelectOne.jsx
--- client/views/pages/healthcare/HealthcareSelectOne.jsx
+++ client/views/pages/healthcare/HealthcareSelectOne.jsx
@@ -382,29 +382,29 @@
         })
       }
     })
-    if (clickDayMedication.length > 0) {
-      return (
-        <>
-          <tr>
-            <th rowSpan={2}>복약량</th>
-            {seniorMedicationList.map((item, idx) => {
-              return (
-                <th>
-                  {item == 'DAWN' ? '식전' : item == 'MORNING' ? '아침' : item == 'AFTERNOON' ? '점심' : item == 'NIGHT' ? '저녁' : item == 'MIDNIGHT' ? '취침' : null}
-                </th>
-              )
-            })}
-          </tr>
-          <tr>
-            {clickDayMedication.map((item) => {
+    return (
+      <>
+        <tr>
+          <th rowSpan={2}>복약량</th>
+          {seniorMedicationList.map((item, idx) => {
+            return (
+              <th>
+                {item == 'DAWN' ? '식전' : item == 'MORNING' ? '아침' : item == 'AFTERNOON' ? '점심' : item == 'NIGHT' ? '저녁' : item == 'MIDNIGHT' ? '취침' : null}
+              </th>
+            )
+          })}
+        </tr>
+        <tr>
+          {clickDayMedication.length > 0 ? (
+            clickDayMedication.map((item) => {
               return (
                 <td>{item}</td>
               )
-            })}
-          </tr>
-        </>
-      )
-    }
+            })
+          ) : <td colSpan={seniorMedicationList.length}>정보가 없습니다.</td>}
+        </tr>
+      </>
+    )
   }
 
   const DateTemperature = () => {
@@ -423,25 +423,52 @@
       }
     })
 
-    if (clickDayTemperature.length > 0) {
-      return (
-        <>
-          <tr>
-            <th rowSpan={2}>온도</th>
-            <th>02:00</th>
-            <th>10:00</th>
-            <th>12:00</th>
-            <th>23:00</th>
-          </tr>
-          <tr>
-            <td>{clickDayTemperature[0]}</td>
-            <td>{clickDayTemperature[1]}</td>
-            <td>{clickDayTemperature[2]}</td>
-            <td>{clickDayTemperature[3]}</td>
-          </tr>
-        </>
-      )
+    return (
+      <>
+        <tr>
+          <th rowSpan={2}>온도</th>
+          <th>02:00</th>
+          <th>10:00</th>
+          <th>14:00</th>
+          <th>23:00</th>
+        </tr>
+        <tr>
+          {clickDayTemperature.length > 0 ? (
+            <>
+              <td>{clickDayTemperature[0]}</td>
+              <td>{clickDayTemperature[1]}</td>
+              <td>{clickDayTemperature[2]}</td>
+              <td>{clickDayTemperature[3]}</td>
+            </>
+          ) : <td colSpan={4}>정보가 없습니다.</td>}
+        </tr>
+      </>
+    )
+  }
+
+  const DateBattery = () => {
+    var clcickDayBattery = '정보가 없습니다.';
+    var cellLength = 4;
+    if (seniorMedicationList.length == 5) {
+      cellLength = 5;
     }
+
+    seniorBatteryListByDay.map((item, idx) => {
+      if (item['battery_date'] == visitDate) {
+        clcickDayBattery = item['battery_power_data'];
+      } else {
+        return
+      }
+    })
+
+    return (
+      <tr>
+        <th>배터리</th>
+        <td colSpan={cellLength}>
+          {clcickDayBattery}
+        </td>
+      </tr>
+    )
   }
 
   React.useEffect(() => {
@@ -482,18 +509,7 @@
               <tbody>
                 <DateMedication />
                 <DateTemperature />
-                {seniorBatteryListByDay.map((item, idx) => {
-                  return (
-                    item['battery_date'] == visitDate ? (
-                      <tr>
-                        <th>배터리</th>
-                        <td colSpan={5}>
-                          {item['battery_power_data']}
-                        </td>
-                      </tr>
-                    ) : null
-                  )
-                })}
+                <DateBattery />
               </tbody>
             </table>
 
@@ -555,7 +571,26 @@
                     </>}
                 </div>
               </>
-            ) : null}
+            ) : (
+              <>
+                <table className="flex70 margin-bottom">{/* questionnaire-table */}
+                  <tbody>
+                    <tr>
+                      <th>방문날짜</th>
+                      <td rowSpan={3}>
+                        정보가 없습니다.
+                      </td>
+                    </tr>
+                    <tr>
+                      <th>방문목적</th>
+                    </tr>
+                    <tr>
+                      <th>방문 상세 사유</th>
+                    </tr>
+                  </tbody>
+                </table>
+              </>
+            )}
           </div>
         </Modal>
       </main>
client/views/pages/login/Login.jsx
--- client/views/pages/login/Login.jsx
+++ client/views/pages/login/Login.jsx
@@ -82,13 +82,13 @@
                 btnName={"로그인"}
                 onClick={login}
               />
-              <div className="flex-center btn-bottom">
+              {/* <div className="flex-center btn-bottom">
                 <Button
                   className={"join-btn"}
                   btnName={"회원가입"}
                   onClick={() => { navigate('/Join') }}
                 />
-              </div>
+              </div> */}
             </div>
           </div>
         </div>
client/views/pages/main/Main_guardian.jsx
--- client/views/pages/main/Main_guardian.jsx
+++ client/views/pages/main/Main_guardian.jsx
@@ -206,6 +206,25 @@
     });
   };
 
+  //특정 대상자의 일별 배터리 목록
+  const [seniorBatteryListByDay, setSeniorBatteryListByDay] = React.useState([]);
+  //특정 대상자의 일별 배터리 목록 조회
+  const seniorBatterySelectListByDay = (seniorNum) => {
+    fetch("/user/seniorBatterySelectListByDay.json", {
+      method: "POST",
+      headers: {
+        'Content-Type': 'application/json; charset=UTF-8'
+      },
+      body: JSON.stringify(seniorNum),
+    }).then((response) => response.json()).then((data) => {
+      console.log("seniorBatteryListByDay data : ", data);
+      setSeniorBatteryListByDay(data);
+      console.log("seniorBatteryListByDay : ", seniorBatteryListByDay);
+    }).catch((error) => {
+      console.log('seniorBatterySelectListByDay() /user/seniorBatterySelectListByDay.json error : ', error);
+    });
+  };
+
   //방문 기록 정보
   const [visitRecordList, setVisitRecordList] = React.useState({});
   const visitRecordInit = {
@@ -257,6 +276,7 @@
     openModal();
   }
 
+
   const DateMedication = () => {
     var clickDayMedication = [];
     medicationData.map((item, idx) => {
@@ -266,30 +286,29 @@
         })
       }
     })
-    if (clickDayMedication.length > 0) {
-      return (
-        <>
-          <tr>
-            <th></th>
-            {seniorMedicationList.map((item, idx) => {
-              return (
-                <th>
-                  {item == 'DAWN' ? '식전' : item == 'MORNING' ? '아침' : item == 'AFTERNOON' ? '점심' : item == 'NIGHT' ? '저녁' : item == 'MIDNIGHT' ? '취침' : null}
-                </th>
-              )
-            })}
-          </tr>
-          <tr>
-            <th>복약량</th>
-            {clickDayMedication.map((item) => {
+    return (
+      <>
+        <tr>
+          <th rowSpan={2}>복약량</th>
+          {seniorMedicationList.map((item, idx) => {
+            return (
+              <th>
+                {item == 'DAWN' ? '식전' : item == 'MORNING' ? '아침' : item == 'AFTERNOON' ? '점심' : item == 'NIGHT' ? '저녁' : item == 'MIDNIGHT' ? '취침' : null}
+              </th>
+            )
+          })}
+        </tr>
+        <tr>
+          {clickDayMedication.length > 0 ? (
+            clickDayMedication.map((item) => {
               return (
                 <td>{item}</td>
               )
-            })}
-          </tr>
-        </>
-      )
-    }
+            })
+          ) : <td colSpan={seniorMedicationList.length}>정보가 없습니다.</td>}
+        </tr>
+      </>
+    )
   }
 
   const DateTemperature = () => {
@@ -308,26 +327,52 @@
       }
     })
 
-    if (clickDayTemperature.length > 0) {
-      return (
-        <>
-          <tr>
-            <th></th>
-            <th>02:00</th>
-            <th>10:00</th>
-            <th>12:00</th>
-            <th>23:00</th>
-          </tr>
-          <tr>
-            <th>온도</th>
-            <td>{clickDayTemperature[0]}</td>
-            <td>{clickDayTemperature[1]}</td>
-            <td>{clickDayTemperature[2]}</td>
-            <td>{clickDayTemperature[3]}</td>
-          </tr>
-        </>
-      )
+    return (
+      <>
+        <tr>
+          <th rowSpan={2}>온도</th>
+          <th>02:00</th>
+          <th>10:00</th>
+          <th>14:00</th>
+          <th>23:00</th>
+        </tr>
+        <tr>
+          {clickDayTemperature.length > 0 ? (
+            <>
+              <td>{clickDayTemperature[0]}</td>
+              <td>{clickDayTemperature[1]}</td>
+              <td>{clickDayTemperature[2]}</td>
+              <td>{clickDayTemperature[3]}</td>
+            </>
+          ) : <td colSpan={4}>정보가 없습니다.</td>}
+        </tr>
+      </>
+    )
+  }
+
+  const DateBattery = () => {
+    var clcickDayBattery = '정보가 없습니다.';
+    var cellLength = 4;
+    if (seniorMedicationList.length == 5) {
+      cellLength = 5;
     }
+
+    seniorBatteryListByDay.map((item, idx) => {
+      if (item['battery_date'] == visitDate) {
+        clcickDayBattery = item['battery_power_data'];
+      } else {
+        return
+      }
+    })
+
+    return (
+      <tr>
+        <th>배터리</th>
+        <td colSpan={cellLength}>
+          {clcickDayBattery}
+        </td>
+      </tr>
+    )
   }
 
   React.useEffect(() => {
@@ -377,10 +422,7 @@
               <tbody>
                 <DateMedication />
                 <DateTemperature />
-                <tr>
-                  <th>배터리</th>
-                  <td colSpan={5}>30%</td>
-                </tr>
+                <DateBattery />
               </tbody>
             </table>
 
@@ -434,7 +476,26 @@
                   </tr>
                 </tbody>
               </table>
-            ) : null}
+            ) : (
+              <>
+                <table className="flex70 margin-bottom">{/* questionnaire-table */}
+                  <tbody>
+                    <tr>
+                      <th>방문날짜</th>
+                      <td rowSpan={3}>
+                        정보가 없습니다.
+                      </td>
+                    </tr>
+                    <tr>
+                      <th>방문목적</th>
+                    </tr>
+                    <tr>
+                      <th>방문 상세 사유</th>
+                    </tr>
+                  </tbody>
+                </table>
+              </>
+            )}
           </div>
         </Modal>
       </main>
client/views/pages/senior_management/SeniorEdit.jsx
--- client/views/pages/senior_management/SeniorEdit.jsx
+++ client/views/pages/senior_management/SeniorEdit.jsx
@@ -4,7 +4,7 @@
 import SubTitle from "../../component/SubTitle.jsx";
 
 import CommonUtil from "../../../resources/js/CommonUtil.js";
-import {JUSO_API_KEY, JUSO_CORRD_API_KEY} from "../../../../Global.js";
+import { JUSO_API_KEY, JUSO_CORRD_API_KEY } from "../../../../Global.js";
 
 import proj4 from "proj4";
 
@@ -14,7 +14,7 @@
 
   /**** 기본 조회 데이터 (시작) ****/
   //전역 변수 저장 객체
-  const state = useSelector((state) => {return state});
+  const state = useSelector((state) => { return state });
 
   //기관 계층 구조 목록
   const [orgListOfHierarchy, setOrgListOfHierarchy] = React.useState([]);
@@ -25,7 +25,7 @@
       headers: {
         'Content-Type': 'application/json; charset=UTF-8'
       },
-      body: JSON.stringify({'government_id': state.loginUser['government_id']}),
+      body: JSON.stringify({ 'government_id': state.loginUser['government_id'] }),
     }).then((response) => response.json()).then((data) => {
       console.log("기관(관리, 시행) 계층 구조 목록 조회 : ", data);
       setOrgListOfHierarchy(data);
@@ -246,11 +246,11 @@
     }
     // console.log("check done");
     let url = 'https://business.juso.go.kr/addrlink/addrLinkApi.do'
-      url += `?currentPage=${CommonUtil.isEmpty(currentPage) ? 1 : currentPage}`
-      url += '&countPerPage=10'
-      url += '&resultType=json'
-      url += `&keyword=${senior['user_address']}`
-      url += `&confmKey=${JUSO_API_KEY}`;
+    url += `?currentPage=${CommonUtil.isEmpty(currentPage) ? 1 : currentPage}`
+    url += '&countPerPage=10'
+    url += '&resultType=json'
+    url += `&keyword=${senior['user_address']}`
+    url += `&confmKey=${JUSO_API_KEY}`;
     fetch(url, {
       method: "GET",
     }).then((response) => response.json()).then((data) => {
@@ -275,13 +275,13 @@
     console.log("check senior : ", senior);
     const vm = this;
     let url = 'https://business.juso.go.kr/addrlink/addrCoordApi.do'
-      url += `?admCd=${senior['adm_cd']}`
-      url += `&rnMgtSn=${senior['rn_mgt_sn']}`
-      url += `&udrtYn=${senior['udrt_yn']}`
-      url += `&buldMnnm=${senior['buld_mnnm']}`
-      url += `&buldSlno=${senior['buld_slno']}`
-      url += '&resultType=json'
-      url += `&confmKey=${JUSO_CORRD_API_KEY}`;
+    url += `?admCd=${senior['adm_cd']}`
+    url += `&rnMgtSn=${senior['rn_mgt_sn']}`
+    url += `&udrtYn=${senior['udrt_yn']}`
+    url += `&buldMnnm=${senior['buld_mnnm']}`
+    url += `&buldSlno=${senior['buld_slno']}`
+    url += '&resultType=json'
+    url += `&confmKey=${JUSO_CORRD_API_KEY}`;
     fetch(url, {
       method: "GET",
     }).then((response) => response.json()).then((data) => {
@@ -292,7 +292,7 @@
         let wgs84Point = proj4(grs80, wgs84).forward(grs80Point);
         senior['x'] = wgs84Point[0];
         senior['y'] = wgs84Point[1];
-        setSenior({...senior});
+        setSenior({ ...senior });
       }
     }).catch((error) => {
       console.log('jusoSearch() : ', error);
@@ -316,78 +316,82 @@
           <SubTitle explanation={"수정페이지"} className="margin-bottom" />
           <table className="margin-bottom2 senior-detail">
             <tr>
-              <th><span style={{color : "red"}}>*</span>관리기관</th>
+              <th><span style={{ color: "red" }}>*</span>관리기관</th>
               <td>
-                <select onChange={(e) => {seniorGovernmentIdChange(e.target.value)}}
+                <select onChange={(e) => { seniorGovernmentIdChange(e.target.value) }}
                   ref={el => seniorRef.current['government_id'] = el}>
                   <option value={''} selected={senior['government_id'] == null}>관리기관선택</option>
-                  {orgListOfHierarchy.map((item, idx) => { return (
-                    <option key={idx} value={item['government_id']} selected={senior['government_id'] == item['government_id']}>
-                      {item['government_name']}
-                    </option>
-                  )})}
+                  {orgListOfHierarchy.map((item, idx) => {
+                    return (
+                      <option key={idx} value={item['government_id']} selected={senior['government_id'] == item['government_id']}>
+                        {item['government_name']}
+                      </option>
+                    )
+                  })}
                 </select>
               </td>
-              <th><span style={{color : "red"}}>*</span>시행기관</th>
+              <th><span style={{ color: "red" }}>*</span>시행기관</th>
               <td>
-                <select onChange={(e) => {seniorAgencyIdChange(e.target.value)}}
+                <select onChange={(e) => { seniorAgencyIdChange(e.target.value) }}
                   ref={el => seniorRef.current['agency_id'] = el}>
                   <option value={''} selected={senior['agency_id'] == null}>시행기관선택</option>
-                  {getAgencyList().map((item, idx) => { return (
-                    <option key={idx} value={item['agency_id']} selected={senior['agency_id'] == item['agency_id']}>
-                      {item['agency_name']}
-                    </option>
-                  )})}
+                  {getAgencyList().map((item, idx) => {
+                    return (
+                      <option key={idx} value={item['agency_id']} selected={senior['agency_id'] == item['agency_id']}>
+                        {item['agency_name']}
+                      </option>
+                    )
+                  })}
                 </select>
               </td>
             </tr>
             <tr>
-              <th><span style={{color : "red"}}>*</span>이름</th>
+              <th><span style={{ color: "red" }}>*</span>이름</th>
               <td>
                 <input type="text"
                   value={senior['user_name']}
-                  onChange={(e) => {seniorValueChange('user_name', e.target.value)}}
+                  onChange={(e) => { seniorValueChange('user_name', e.target.value) }}
                   ref={el => seniorRef.current['user_name'] = el}
                 />
               </td>
-              <th><span style={{color : "red"}}>*</span>성별</th>
+              <th><span style={{ color: "red" }}>*</span>성별</th>
               <td className="">
                 <div className="gender flex-start">
-                  <div className="flex-start">
+                  <div className="flex-start m-r">
                     <input type="radio" id="user_gender_m" name="user_gender" value="남" checked={senior['user_gender'] == '남'}
-                      onChange={(e) => {e.target.checked ? seniorValueChange('user_gender', e.target.value) : null}}
+                      onChange={(e) => { e.target.checked ? seniorValueChange('user_gender', e.target.value) : null }}
                       ref={el => seniorRef.current['user_gender']['m'] = el}
-                      />
+                    />
                     <label for="user_gender_m">남</label>
                   </div>
                   <div className="flex-start">
                     <input type="radio" id="user_gender_f" name="user_gender" value="여" checked={senior['user_gender'] == '여'}
-                      onChange={(e) => {e.target.checked ? seniorValueChange('user_gender', e.target.value) : null}}
+                      onChange={(e) => { e.target.checked ? seniorValueChange('user_gender', e.target.value) : null }}
                       ref={el => seniorRef.current['user_gender']['f'] = el}
-                      />
+                    />
                     <label for="user_gender_f">여</label>
                   </div>
                 </div >
               </td>
             </tr>
             <tr>
-              <th><span style={{color : "red"}}>*</span>생년월일</th>
+              <th><span style={{ color: "red" }}>*</span>생년월일</th>
               <td>
                 <div className="flex">
                   <input type='date'
                     value={senior['user_birth']}
-                    onChange={(e) => {seniorValueChange('user_birth', e.target.value)}}
+                    onChange={(e) => { seniorValueChange('user_birth', e.target.value) }}
                     ref={el => seniorRef.current['user_birth'] = el}
                   />
                 </div>
               </td>
             </tr>
             <tr>
-              <th><span style={{color : "red"}}>*</span>연락처</th>
+              <th><span style={{ color: "red" }}>*</span>연락처</th>
               <td colSpan={3}>
                 <input type="number" maxLength="11" disabled
                   value={senior['user_phonenumber']}
-                  onChange={(e) => {seniorValueChange('user_phonenumber', e.target.value)}}
+                  onChange={(e) => { seniorValueChange('user_phonenumber', e.target.value) }}
                   ref={el => seniorRef.current['user_phonenumber'] = el}
                 />
               </td>
@@ -404,85 +408,89 @@
               </td>
             </tr> */}
             <tr>
-              <th><span style={{color : "red"}}>*</span>주소</th>
+              <th><span style={{ color: "red" }}>*</span>주소</th>
               <td colSpan={3}>
                 <div>
-                  <input type="text" style={{width: 'calc(100% - 160px)'}}
+                  <input type="text" style={{ width: 'calc(100% - 160px)' }}
                     value={senior['user_address']} disabled={CommonUtil.isEmpty(senior['zip_no']) == false}
-                    onChange={(e) => {seniorValueChange('user_address', e.target.value)}}
-                    onKeyUp={(e) => {e.key == 'Enter' ? jusoSearch() : null}}
+                    onChange={(e) => { seniorValueChange('user_address', e.target.value) }}
+                    onKeyUp={(e) => { e.key == 'Enter' ? jusoSearch() : null }}
                     ref={el => seniorRef.current['user_address'] = el}
                   />
                   {CommonUtil.isEmpty(senior['zip_no'])
-                    ? <button className={"red-btn btn-large"} onClick={() => {jusoSearch()}}>주소검색</button>
-                    : <button className={"gray-btn btn-large"} onClick={() => {seniorValueChange('zip_no', null)}}>다시검색</button>
+                    ? <button className={"red-btn btn-large"} onClick={() => { jusoSearch() }}>주소검색</button>
+                    : <button className={"gray-btn btn-large"} onClick={() => { seniorValueChange('zip_no', null) }}>다시검색</button>
                   }
                 </div>
                 {CommonUtil.isEmpty(jusoList.juso) == false && CommonUtil.isEmpty(senior['zip_no']) ?
-                <div>
-                  <ul className="list-box" style={{width: '100%'}}>
-                    {CommonUtil.isEmpty(jusoList.juso) == false ? jusoList.juso.map((item, idx) => {return (
-                    <li className={senior['zip_no'] == item['zipNo'] ? 'active' : null} onClick={() => {
-                      senior['zip_no'] = item['zipNo']; senior['adm_cd'] = item['admCd'];
-                      senior['rn_mgt_sn'] = item['rnMgtSn']; senior['bd_mgt_sn'] = item['bdMgtSn'];
-                      senior['siNsi_nmm'] = item['siNm']; senior['sgg_nm'] = item['sggNm'];
-                      senior['emd_nm'] = item['emdNm']; senior['li_nm'] = item['liNm'];
-                      senior['rn'] = item['rn']; senior['emd_no'] = item['emdNo'];
-                      senior['hemd_nm'] = item['hemdNm']; senior['road_addr'] = item['roadAddr'];
-                      senior['buld_mnnm'] = item['buldMnnm']; senior['buld_slno'] = item['buldSlno'];
-                      senior['user_address'] = item['roadAddr'];
+                  <div>
+                    <ul className="list-box" style={{ width: '100%' }}>
+                      {CommonUtil.isEmpty(jusoList.juso) == false ? jusoList.juso.map((item, idx) => {
+                        return (
+                          <li className={senior['zip_no'] == item['zipNo'] ? 'active' : null} onClick={() => {
+                            senior['zip_no'] = item['zipNo']; senior['adm_cd'] = item['admCd'];
+                            senior['rn_mgt_sn'] = item['rnMgtSn']; senior['bd_mgt_sn'] = item['bdMgtSn'];
+                            senior['siNsi_nmm'] = item['siNm']; senior['sgg_nm'] = item['sggNm'];
+                            senior['emd_nm'] = item['emdNm']; senior['li_nm'] = item['liNm'];
+                            senior['rn'] = item['rn']; senior['emd_no'] = item['emdNo'];
+                            senior['hemd_nm'] = item['hemdNm']; senior['road_addr'] = item['roadAddr'];
+                            senior['buld_mnnm'] = item['buldMnnm']; senior['buld_slno'] = item['buldSlno'];
+                            senior['user_address'] = item['roadAddr'];
 
-                      if (CommonUtil.isEmpty(item['udrtYn'])) {
-                        senior['udrt_yn'] = null;
-                      } else {
-                        if (item['udrtYn'] == 1 || item['udrtYn'] == true || item['udrtYn'] == '1'|| item['udrtYn'].toLowerCase() == 'true') {
-                          senior['udrt_yn'] = true;
-                        } else {
-                          senior['udrt_yn'] = false;
-                        }
-                      }
+                            if (CommonUtil.isEmpty(item['udrtYn'])) {
+                              senior['udrt_yn'] = null;
+                            } else {
+                              if (item['udrtYn'] == 1 || item['udrtYn'] == true || item['udrtYn'] == '1' || item['udrtYn'].toLowerCase() == 'true') {
+                                senior['udrt_yn'] = true;
+                              } else {
+                                senior['udrt_yn'] = false;
+                              }
+                            }
 
-                      setSenior({...senior}); coordSearch();
-                    }}>
-                      <span style={{fontWeight: 600}}>[지번]</span> {item['jibunAddr']}
-                      <br/>
-                      <span style={{fontWeight: 600}}>[도로명]</span> {item['roadAddr']}
-                    </li>
-                    )}): null}
-                  </ul>
-                </div>
-                : null}
+                            setSenior({ ...senior }); coordSearch();
+                          }}>
+                            <span style={{ fontWeight: 600 }}>[지번]</span> {item['jibunAddr']}
+                            <br />
+                            <span style={{ fontWeight: 600 }}>[도로명]</span> {item['roadAddr']}
+                          </li>
+                        )
+                      }) : null}
+                    </ul>
+                  </div>
+                  : null}
               </td>
             </tr>
-            
+
             <tr>
               <th>필요 복약</th>
               <td className="medicationTime-td">
                 <div className="flex">
-                  {medicationTimeCodeList.map((item, idx) => { return (
-                    <span key={idx}>
-                      <input type="checkbox"
-                        name="medicationTimeCodeList"
-                        id={item['medication_time_code']}
-                        value={item['medication_time_code']}
-                        onChange={(e) => {seniorMedicationChange(e.target.value, e.target.checked)}}
-                        checked={senior['seniorMedicationList'].indexOf(item['medication_time_code']) > -1}/>
-                      <label for={item['medication_time_code']}>{item['medication_time_code_name']}</label>
-                    </span>
-                  )})}
+                  {medicationTimeCodeList.map((item, idx) => {
+                    return (
+                      <span key={idx}>
+                        <input type="checkbox"
+                          name="medicationTimeCodeList"
+                          id={item['medication_time_code']}
+                          value={item['medication_time_code']}
+                          onChange={(e) => { seniorMedicationChange(e.target.value, e.target.checked) }}
+                          checked={senior['seniorMedicationList'].indexOf(item['medication_time_code']) > -1} />
+                        <label for={item['medication_time_code']}>{item['medication_time_code_name']}</label>
+                      </span>
+                    )
+                  })}
                 </div>
               </td>
             </tr>
             <tr>
               <th>복용중인 약</th>
               <td colSpan={3}>
-                <textarea className="medicine" cols="30" rows="2" value={senior['medication_pill']} onChange={(e) => {seniorValueChange('medication_pill', e.target.value)}} />
+                <textarea className="medicine" cols="30" rows="2" value={senior['medication_pill']} onChange={(e) => { seniorValueChange('medication_pill', e.target.value) }} />
               </td>
             </tr>
             <tr>
               <th>비고</th>
               <td colSpan={3}>
-                <textarea className="note" cols="30" rows="2" value={senior['senior_note']} onChange={(e) => {seniorValueChange('senior_note', e.target.value)}} />
+                <textarea className="note" cols="30" rows="2" value={senior['senior_note']} onChange={(e) => { seniorValueChange('senior_note', e.target.value) }} />
               </td>
             </tr>
 
client/views/pages/senior_management/SeniorSelectOne.jsx
--- client/views/pages/senior_management/SeniorSelectOne.jsx
+++ client/views/pages/senior_management/SeniorSelectOne.jsx
@@ -189,7 +189,7 @@
   const deliveryEquipmentSelectList = (currentPage) => {
     deliveryEquipmentSearch.currentPage = CommonUtil.isEmpty(currentPage) ? 1 : currentPage;
     setDeliveryEquipmentSearch({ ...deliveryEquipmentSearch });
-    
+
     console.log(">>", senior['agency_id'])
     deliveryEquipmentSearch.agency_id = senior['agency_id'];
 
@@ -202,6 +202,7 @@
     }).then((response) => response.json()).then((data) => {
       console.log('deliveryEquipmentSelectList response : ', data);
       setDeliveryEquipment(data);
+      rentalCheck();
     }).catch((error) => {
       console.log('deliveryEquipmentSelectList error : ', error);
     });
@@ -437,6 +438,24 @@
     }
   }
 
+  const [isRental, setIsRental] = React.useState("false");
+  const rentalCheck = () => {
+    let count = 0;
+
+    equipmentBySenior.map((item, idx) => {
+      if (CommonUtil.isEmpty(item['rental_start_date']) == false && CommonUtil.isEmpty(item['rental_end_date']) == true) {
+        count++;
+      } else {
+        return
+      }
+    })
+
+    if (count > 0) {
+      setIsRental(true);
+    } else {
+      setIsRental(false);
+    }
+  }
 
   React.useEffect(() => {
     seniorSelectOne();
@@ -455,7 +474,7 @@
   React.useEffect(() => {
     if (CommonUtil.isEmpty(deliveryEquipmentSearch['agency_id']) && CommonUtil.isEmpty(senior['agency_id']) == false) {
       deliveryEquipmentSearch['agency_id'] = senior['agency_id'];
-      setDeliveryEquipmentSearch({...deliveryEquipmentSearch});
+      setDeliveryEquipmentSearch({ ...deliveryEquipmentSearch });
       deliveryEquipmentSelectList(1);
     };
   }, [senior])
@@ -737,7 +756,9 @@
 
 
         <SubTitle explanation={"대상자의 장비"} className="margin-bottom display-inline-block" />
-        <button className={"btn-small gray-btn display-inline-block float-right"} onClick={modalRentalOpen}>장비 추가</button>
+        {!isRental ? (
+          <button className={"btn-small gray-btn display-inline-block float-right"} onClick={modalRentalOpen}>장비 추가</button>
+        ) : null}
         <div className="margin-bottom5">
           <table className={"senior-user protector-user"}>
             <thead>
 
client/views/pages/user_management/230707_backup_UserSelect.jsx (added)
+++ client/views/pages/user_management/230707_backup_UserSelect.jsx
@@ -0,0 +1,861 @@
+import React from "react";
+import { useNavigate, useLocation } from "react-router";
+import { useSelector } from "react-redux";
+
+import ContentTitle from "../../component/ContentTitle.jsx";
+import SubTitle from "../../component/SubTitle.jsx";
+import Modal_SeniorInsert from "../../component/Modal_SeniorInsert.jsx";
+import Modal_Guardian from "../../component/Modal_Guardian.jsx";
+import Pagination from "../../component/Pagination.jsx";
+import House from "../../../resources/files/icon/house.png";
+import Arrow from "../../../resources/files/icon/arrow.png";
+
+import CommonUtil from "../../../resources/js/CommonUtil.js";
+
+export default function UserAuthoriySelect() {
+  const navigate = useNavigate();
+  const location = useLocation();
+
+  //전역 변수 저장 객체
+  const state = useSelector((state) => { return state });
+  const defaultGovernmentId = CommonUtil.isEmpty(state.loginUser) ? null : state.loginUser['government_id'];
+
+  //활성화 탭 (시스템 업무 역할별)
+  const [tabActiveByRoleType, setTabActiveByRoleType] = React.useState('ROLE_AGENCY');
+
+  //보호자 모달 오픈 여부
+  const [modalGuardianIsOpen, setModalGuardianIsOpen] = React.useState(false);
+  //보호자 모달 오픈
+  const modalGuardianOpen = () => {
+    setModalGuardianIsOpen(true);
+  };
+  //보호자 모달 닫기
+  const modalGuardianClose = () => {
+    setModalGuardianIsOpen(false);
+  };
+
+  //대상자(시니어) 등록 모달 오픈 여부
+  const [modalSeniorInsertIsOpen, setModalSeniorInsertIsOpen] = React.useState(false);
+  //대상자(시니어) 등록 모달 오픈
+  const modalSeniorInsertOpen = () => {
+    setModalSeniorInsertIsOpen(true);
+  };
+  //대상자(시니어) 등록 모달 닫기
+  const modalSeniorInsertClose = () => {
+    setModalSeniorInsertIsOpen(false);
+  };
+
+  //기관 계층 구조 목록
+  const [orgListOfHierarchy, setOrgListOfHierarchy] = React.useState([]);
+  //기관(관리, 시행) 계층 구조 목록 조회
+  const orgSelectListOfHierarchy = () => {
+    fetch("/org/orgSelectListOfHierarchy.json", {
+      method: "POST",
+      headers: {
+        'Content-Type': 'application/json; charset=UTF-8'
+      },
+      body: JSON.stringify({ 'government_id': defaultGovernmentId }),
+    }).then((response) => response.json()).then((data) => {
+      console.log("기관(관리, 시행) 계층 구조 목록 조회 : ", data);
+      setOrgListOfHierarchy(data);
+    }).catch((error) => {
+      console.log('orgSelectListOfHierarchy() /org/orgSelectListOfHierarchy.json error : ', error);
+    });
+  };
+
+
+
+  //검색 변수 (초기화값)
+  const [userSearch, setUserSearch] = React.useState({
+    'government_id': state.loginUser['government_id'],
+    'agency_id': state.loginUser['agency_id'],
+    'authority': null,
+
+    'searchType': null,
+    'searchText': null,
+    'currentPage': 1,
+    'perPage': 10,
+  });
+
+  //대상자(시니어) 목록 및 페이징 정보
+  userSearch['authority'] = 'ROLE_SENIOR';
+  const [senior, setSenior] = React.useState({ userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch)) });
+  const seniorSearchChange = (targetKey, value) => {
+    let newSenior = JSON.parse(JSON.stringify(senior));
+    newSenior.search[targetKey] = value;
+    setSenior(newSenior);
+  }
+  const seniorSelectListEnter = (key) => {
+    if (key == 'Enter') {
+      seniorSelectList();
+    } else {
+      return;
+    }
+  }
+  //대상자(시니어) 목록 조회
+  const seniorSelectList = (currentPage) => {
+    senior.search.currentPage = CommonUtil.isEmpty(currentPage) ? 1 : currentPage;
+
+    fetch("/user/userSelectList.json", {
+      method: "POST",
+      headers: {
+        'Content-Type': 'application/json; charset=UTF-8'
+      },
+      body: JSON.stringify(senior.search),
+    }).then((response) => response.json()).then((data) => {
+      data.search = senior.search;
+      console.log("대상자(시니어) 목록 조회 : ", data);
+      setSenior(data);
+    }).catch((error) => {
+      console.log('seniorSelectList() /user/userSelectList.json error : ', error);
+    });
+  }
+
+  //시행기관 담당자 목록 및 페이징 정보
+  userSearch['authority'] = 'ROLE_AGENCY';
+  const [agent, setAgent] = React.useState({ userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch)) });
+  const agentSearchChange = (targetKey, value) => {
+    let newAgent = JSON.parse(JSON.stringify(agent));
+    newAgent.search[targetKey] = value;
+    setAgent(newAgent);
+  }
+  const agentSelectListEnter = (key) => {
+    if (key == 'Enter') {
+      agentSelectList();
+    } else {
+      return;
+    }
+  }
+  //시행기관 담당자 목록 조회
+  const agentSelectList = (currentPage) => {
+    agent.search.currentPage = CommonUtil.isEmpty(currentPage) ? 1 : currentPage;
+
+    fetch("/user/userSelectList.json", {
+      method: "POST",
+      headers: {
+        'Content-Type': 'application/json; charset=UTF-8'
+      },
+      body: JSON.stringify(agent.search),
+    }).then((response) => response.json()).then((data) => {
+      data.search = agent.search;
+      console.log("시행기관 담당자 목록 조회 : ", data);
+      setAgent(data);
+    }).catch((error) => {
+      console.log('agentSelectList() /user/userSelectList.json error : ', error);
+    });
+  }
+
+  //시행기관 관리자 목록 및 페이징 정보
+  userSearch['authority'] = 'ROLE_AGENCYADMIN';
+  const [agentAdmin, setAgentAdmin] = React.useState({ userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch)) });
+  const agentAdminSearchChange = (targetKey, value) => {
+    let newAgent = JSON.parse(JSON.stringify(agentAdmin));
+    newAgent.search[targetKey] = value;
+    setAgentAdmin(newAgent);
+  }
+  const agentAdminSelectListEnter = (key) => {
+    if (key == 'Enter') {
+      agentAdminSelectList();
+    } else {
+      return;
+    }
+  }
+  //시행기관 관리자 목록 조회
+  const agentAdminSelectList = (currentPage) => {
+    agentAdmin.search.currentPage = CommonUtil.isEmpty(currentPage) ? 1 : currentPage;
+
+    fetch("/user/userSelectList.json", {
+      method: "POST",
+      headers: {
+        'Content-Type': 'application/json; charset=UTF-8'
+      },
+      body: JSON.stringify(agentAdmin.search),
+    }).then((response) => response.json()).then((data) => {
+      data.search = agentAdmin.search;
+      console.log("시행기관 관리자 목록 조회 : ", data);
+      setAgentAdmin(data);
+    }).catch((error) => {
+      console.log('agentSelectList() /user/userSelectList.json error : ', error);
+    });
+  }
+
+  //관리기관 관리자 목록 및 페이징 정보
+  userSearch['authority'] = 'ROLE_GOVERNMENT';
+  const [government, setGovernment] = React.useState({ userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch)) });
+  const governmentSearchChange = (targetKey, value) => {
+    let newGovernment = JSON.parse(JSON.stringify(government));
+    newGovernment.search[targetKey] = value;
+    setGovernment(newGovernment);
+  }
+  const governmentSelectListEnter = (key) => {
+    if (key == 'Enter') {
+      governmentSelectList();
+    } else {
+      return;
+    }
+  }
+  //관리기관 담당자 목록 조회
+  const governmentSelectList = (currentPage) => {
+    government.search.currentPage = CommonUtil.isEmpty(currentPage) ? 1 : currentPage;
+
+    fetch("/user/userSelectList.json", {
+      method: "POST",
+      headers: {
+        'Content-Type': 'application/json; charset=UTF-8'
+      },
+      body: JSON.stringify(government.search),
+    }).then((response) => response.json()).then((data) => {
+      data.search = government.search;
+      console.log("관리기관 담당자 목록 조회 : ", data);
+      setGovernment(data);
+    }).catch((error) => {
+      console.log('governmentSelectList() /user/userSelectList.json error : ', error);
+    });
+  }
+
+  //시스템 관리자 목록 및 페이징 정보
+  userSearch['authority'] = 'ROLE_ADMIN';
+  const [admin, setAdmin] = React.useState({ userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch)) });
+  const adminSearchChange = (targetKey, value) => {
+    let newAdmin = JSON.parse(JSON.stringify(admin));
+    newAdmin.search[targetKey] = value;
+    setAdmin(newAdmin);
+  }
+  const adminSelectListEnter = (key) => {
+    if (key == 'Enter') {
+      adminSelectList();
+    } else {
+      return;
+    }
+  }
+  //시스템 관리자 목록 조회
+  const adminSelectList = (currentPage) => {
+    admin.search.currentPage = CommonUtil.isEmpty(currentPage) ? 1 : currentPage;
+
+    fetch("/user/userSelectList.json", {
+      method: "POST",
+      headers: {
+        'Content-Type': 'application/json; charset=UTF-8'
+      },
+      body: JSON.stringify(admin.search),
+    }).then((response) => response.json()).then((data) => {
+      data.search = admin.search;
+      console.log("시스템 관리자 목록 조회 : ", data);
+      setAdmin(data);
+    }).catch((error) => {
+      console.log('adminSelectList() /user/userSelectList.json error : ', error);
+    });
+  }
+
+
+  //올잇메디 선택
+  const adminChange = () => {
+    const newUserSearch = JSON.parse(JSON.stringify(userSearch));
+    newUserSearch['government_id'] = null;
+    newUserSearch['agency_id'] = null;
+    setUserSearch(newUserSearch);
+
+    senior.search['government_id'] = null;
+    senior.search['agency_id'] = null;
+    seniorSelectList();
+    agent.search['government_id'] = null;
+    agent.search['agency_id'] = null;
+    agentSelectList();
+    agent.search['government_id'] = null;
+    agent.search['agency_id'] = null;
+    agentAdminSelectList();
+    if (state.loginUser['authority'] == 'ROLE_ADMIN' || state.loginUser['authority'] == 'ROLE_GOVERNMENT') {
+      government.search['government_id'] = null;
+      government.search['agency_id'] = null;
+      governmentSelectList();
+    }
+  }
+
+  //관리 기관 선택
+  const governmentChange = (government_id) => {
+    const newUserSearch = JSON.parse(JSON.stringify(userSearch));
+    newUserSearch['government_id'] = government_id;
+    newUserSearch['agency_id'] = null;
+    setUserSearch(newUserSearch);
+
+    senior.search['government_id'] = government_id;
+    senior.search['agency_id'] = null;
+    seniorSelectList();
+    agent.search['government_id'] = government_id;
+    agent.search['agency_id'] = null;
+    agentSelectList();
+    agent.search['government_id'] = government_id;
+    agent.search['agency_id'] = null;
+    agentAdminSelectList();
+    if (state.loginUser['authority'] == 'ROLE_ADMIN' || state.loginUser['authority'] == 'ROLE_GOVERNMENT') {
+      government.search['government_id'] = government_id;
+      government.search['agency_id'] = null;
+      governmentSelectList();
+    }
+  }
+
+  //시행 기관 선택
+  const agencyChange = (government_id, agency_id) => {
+    const newUserSearch = JSON.parse(JSON.stringify(userSearch));
+    newUserSearch['government_id'] = government_id;
+    newUserSearch['agency_id'] = agency_id;
+    setUserSearch(newUserSearch);
+
+    senior.search['government_id'] = government_id;
+    senior.search['agency_id'] = agency_id;
+    console.log('senior.search : ', senior.search);
+    seniorSelectList();
+    agent.search['government_id'] = government_id;
+    agent.search['agency_id'] = agency_id;
+    agentSelectList();
+    agent.search['government_id'] = government_id;
+    agent.search['agency_id'] = agency_id;
+    agentAdminSelectList();
+  }
+
+
+
+  //사용자 등록 페이지 이동
+  const join = () => {
+    navigate("/Join", {
+      state: {
+        'government_id': userSearch['government_id'],
+        'agency_id': userSearch['agency_id'],
+        'authority': tabActiveByRoleType,
+      }
+    });
+  }
+
+  //가입승인
+  const userUpdate = (user, callback) => {
+    user['is_accept'] = true;
+
+    fetch("/user/userUpdate.json", {
+      method: "POST",
+      headers: {
+        'Content-Type': 'application/json; charset=UTF-8'
+      },
+      body: JSON.stringify(user),
+    }).then((response) => response.json()).then((data) => {
+      console.log("시니어 등록 결과(건수) : ", data);
+      if (data > 0) {
+        callback();
+        alert("승인완료");
+      } else {
+        alert("승인에 실패하였습니다. 관리자에게 문의바랍니다.");
+      }
+    }).catch((error) => {
+      console.log('userUpdate() /user/userUpdate.json error : ', error);
+    });
+  }
+
+
+  //Mounted
+  React.useEffect(() => {
+    orgSelectListOfHierarchy();
+
+    if (CommonUtil.isEmpty(location.state) == false) {
+      const param = location.state;
+      if (CommonUtil.isEmpty(param['tabActiveByRoleType']) == false) {
+        setTabActiveByRoleType(param['tabActiveByRoleType']);
+      }
+      governmentChange(param['government_id']);
+      agencyChange(param['government_id'], param['agency_id']);
+    } else {
+      seniorSelectList();
+      agentSelectList();
+      agentAdminSelectList();
+      if (state.loginUser['authority'] == 'ROLE_ADMIN' || state.loginUser['authority'] == 'ROLE_GOVERNMENT') {
+        governmentSelectList();
+      }
+    }
+
+    if (state.loginUser['authority'] == 'ROLE_ADMIN') {
+      adminSelectList();
+    }
+  }, []);
+
+
+  return (
+    <main>
+      <Modal_Guardian open={modalGuardianIsOpen} close={modalGuardianClose} />
+      <Modal_SeniorInsert
+        open={modalSeniorInsertIsOpen}
+        close={modalSeniorInsertClose}
+        seniorInsertCallback={() => { seniorSelectList(); modalSeniorInsertClose(); }}
+        defaultAgencyId={userSearch['agency_id']}
+        defaultGovernmentId={userSearch['government_id']}
+      />
+
+      {/* <ContentTitle explanation={"사용자 관리"} /> */}
+      <div className="content-wrap">
+        <div className="flex-align-start userauthoriylist gap5" style={{ height: "calc(100% - 61px)" }}>
+          <div className="left" style={{ height: "100%", }}>
+            <div style={{ height: "100%" }}>
+              <SubTitle
+                explanation={"기관 리스트"}
+                className="margin-bottom"
+              />
+              {/* 카테고리 디자인 필요 (a.active 클래스 필요) */}
+              <div style={{ fontSize: '16px' }} className="category">
+                {state.loginUser['authority'] == 'ROLE_ADMIN' ?
+                  <a onClick={adminChange}
+                    className={userSearch['government_id'] == null && userSearch['agency_id'] == null ? "active" : ""}>
+                    올잇메디
+                  </a>
+                  : null}
+                <ul style={{ marginLeft: '15px' }}>
+                  {orgListOfHierarchy.map((item, idx) => {
+                    return (
+                      <li style={{ margin: '10px 0px' }} key={idx}>
+                        <span style={{ marginRight: '5px' }}><img src={House} alt="" /></span>
+                        <a onClick={() => { governmentChange(item['government_id']) }}
+                          className={item['government_id'] == userSearch['government_id'] ? "active" : ""}>
+                          {item['government_name']}
+                        </a>
+                        {item['agencyList'] != undefined && item['agencyList'] != null ?
+                          <ul style={{ marginLeft: '15px' }}>
+                            {item['agencyList'].map((item2, idx2) => {
+                              return (
+                                <li style={{ margin: '10px 0px' }} key={idx2}>
+                                  <span style={{ marginRight: '5px' }}><img src={Arrow} alt="" /></span>
+                                  <a onClick={() => { agencyChange(item['government_id'], item2['agency_id']) }}
+                                    className={item2['agency_id'] == userSearch['agency_id'] ? "active" : ""}>
+                                    {item2['agency_name']}
+                                  </a>
+                                </li>
+                              )
+                            })}
+                          </ul>
+                          : null
+                        }
+                      </li>
+                    )
+                  })}
+                </ul>
+              </div>
+              {/* 카테고리 디자인 필요 */}
+            </div>
+          </div>
+          <div className="right" style={{ height: "100%", }}>
+            <div style={{ height: "100%" }}>
+              <SubTitle explanation={`사용자 리스트`} className="margin-bottom" />
+              <div className="tab-container">
+
+                {/* 탭 제목 */}
+                <ul className="tab-menu flex-end" >
+                  {/* <li onClick={() => setTabActiveByRoleType('ROLE_SENIOR')} className={tabActiveByRoleType == 'ROLE_SENIOR' ? "active" : null}>대상자(어르신) ({senior.userListCount})</li> */}
+                  <li onClick={() => setTabActiveByRoleType('ROLE_AGENCY')} className={tabActiveByRoleType == 'ROLE_AGENCY' ? "active" : null}>생활보호사 ({agent.userListCount})</li>
+                  {state.loginUser['authority'] == 'ROLE_ADMIN' || state.loginUser['authority'] == 'ROLE_AGENCYADMIN' || state.loginUser['authority'] == 'ROLE_GOVERNMENT' ?
+                    <li onClick={() => setTabActiveByRoleType('ROLE_AGENCYADMIN')} className={tabActiveByRoleType == 'ROLE_AGENCYADMIN' ? "active" : null}>센터 관리자 ({agentAdmin.userListCount})</li>
+                    : null}
+                  {state.loginUser['authority'] == 'ROLE_ADMIN' || state.loginUser['authority'] == 'ROLE_GOVERNMENT' ?
+                    <li onClick={() => setTabActiveByRoleType('ROLE_GOVERNMENT')} className={tabActiveByRoleType == 'ROLE_GOVERNMENT' ? "active" : null}>기관 관리자 ({government.userListCount})</li>
+                    : null}
+                  {state.loginUser['authority'] == 'ROLE_ADMIN' ?
+                    <li onClick={() => setTabActiveByRoleType('ROLE_ADMIN')} className={tabActiveByRoleType == 'ROLE_ADMIN' ? "active" : null}>시스템 관리자 ({admin.userListCount})</li>
+                    : null}
+                </ul>
+
+                {/* 탭 내용 */}
+                <div className="content-wrap userlist">
+                  {{
+                    /* 대상자(시니어) (시작) */
+                    ROLE_SENIOR: (
+                      <ul className="tab-content">
+                        <div>
+                          <div className="search-management flex-start margin-bottom2">
+                            <select id="searchType1" style={{ maxWidth: 'fit-content' }} onChange={(e) => { seniorSearchChange("searchType", e.target.value) }}>
+                              <option value="" selected={senior.search.searchText == ""}>전체</option>
+                              <option value="user_name" selected={senior.search.searchText == "user_name"}>이름</option>
+                              <option value="user_phonenumber" selected={senior.search.searchText == "user_phonenumber"}>연락처</option>
+                              <option value="user_id" selected={senior.search.searchText == "user_id"}>아이디</option>
+                            </select>
+                            <input type="text" id="searchText1"
+                              value={senior.search.searchText}
+                              onChange={(e) => { seniorSearchChange("searchText", e.target.value) }}
+                              onKeyUp={(e) => { seniorSelectListEnter(e.key) }}
+                            />
+                            <button className={"btn-small gray-btn"} onClick={() => { seniorSelectList() }}>검색</button>
+                          </div>
+
+                          <div className="btn-wrap flex margin-bottom">
+                            <SubTitle explanation={"대상자 클릭 시 상세페이지로 이동합니다."} />
+                            {/* <button className={"btn-small gray-btn"} onClick={() => modalSeniorInsertOpen()}>등록</button> */}
+                          </div>
+
+                          <table className={"protector-user"}>
+                            <thead>
+                              <tr>
+                                <th>No</th>
+                                <th>소속기관명</th>
+                                <th>이름</th>
+                                <th>생년월일</th>
+                                <th>성별</th>
+                                <th>연락처</th>
+                                <th>주소</th>
+                              </tr>
+                            </thead>
+                            <tbody>
+                              {senior.userList.map((item, idx) => {
+                                return (
+                                  <tr key={idx} onClick={() => {
+                                    navigate("/SeniorSelectOne", {
+                                      state: {
+                                        'senior_id': item['user_id'],
+                                        'agency_id': item['agency_id'],
+                                        'government_id': item['government_id']
+                                      }
+                                    })
+                                  }}>
+                                    <td data-label="No">{senior.userListCount - idx - (senior.search.currentPage - 1) * senior.search.perPage}</td>
+                                    <td data-label="No">{item['agency_name']}</td>
+                                    <td data-label="소속기관명">{item['user_name']}</td>
+                                    <td data-label="생년월일">{item['user_birth']}</td>
+                                    <td data-label="성별">{item['user_gender']}</td>
+                                    <td data-label="연락처">{item['user_phonenumber']}</td>
+                                    <td data-label="주소">{item['user_address']}</td>
+                                  </tr>
+                                )
+                              })}
+                              {senior.userList == null || senior.userList.length == 0 ?
+                                <tr>
+                                  <td colSpan={7}>조회된 데이터가 없습니다</td>
+                                </tr>
+                                : null}
+                            </tbody>
+                          </table>
+                          <Pagination
+                            currentPage={senior.search.currentPage}
+                            perPage={senior.search.perPage}
+                            totalCount={senior.userListCount}
+                            maxRange={5}
+                            click={seniorSelectList}
+                          />
+                        </div>
+                      </ul>
+                    ),
+                    /* 대상자(시니어) (종료) */
+
+                    /* 시행기관(복지사, 간호사) 사용자 (시작) */
+                    ROLE_AGENCY: (
+                      <ul className="tab-content">
+                        <div>
+
+                          <div className="search-management flex-start margin-bottom2">
+                            <select id="searchType2" style={{ maxWidth: 'fit-content' }} onChange={(e) => { agentSearchChange("searchType", e.target.value) }}>
+                              <option value="" selected={agent.search.searchText == ""}>전체</option>
+                              <option value="user_name" selected={agent.search.searchText == "user_name"}>이름</option>
+                              <option value="user_phonenumber" selected={agent.search.searchText == "user_phonenumber"}>연락처</option>
+                              <option value="user_id" selected={agent.search.searchText == "user_id"}>아이디</option>
+                            </select>
+                            <input id="searchText2" type="text"
+                              value={agent.search.searchText}
+                              onChange={(e) => { agentSearchChange("searchText", e.target.value) }}
+                              onKeyUp={(e) => { agentSelectListEnter(e.key) }}
+                            />
+                            <button className={"btn-small gray-btn"} onClick={() => { agentSelectList() }}>검색</button>
+                          </div>
+
+                          <div className="radio-tab btn-wrap flex-end margin-bottom">
+                            <div className="flex-start">
+                              <div>
+                                <input type="radio" name="viewType" id="useTrue" />
+                                <label htmlFor="useTrue">활성화</label>
+                              </div>
+                              <div>
+                                <input type="radio" name="viewType" id="useFalse" />
+                                <label htmlFor="useFalse">미활성화</label>
+                              </div>
+                            </div>
+                            <button className={"btn-small gray-btn"} onClick={join}>등록</button>
+                          </div>
+
+                          <table className={"senior-user protector-user"}>
+                            <thead>
+                              <tr>
+                                <th>No</th>
+                                <th>관리기관명</th>
+                                <th>소속기관명</th>
+                                <th>이름</th>
+                                <th>연락처</th>
+                                <th>이메일</th>
+                                <th>가입승인</th>
+                                <th>상세보기</th>
+                              </tr>
+                            </thead>
+                            <tbody>
+                              {agent.userList.map((item, idx) => {
+                                return (
+                                  <tr key={idx}>
+                                    <td data-label="No">{agent.userListCount - idx - (agent.search.currentPage - 1) * agent.search.perPage}</td>
+                                    <td data-label="관리기관명">{item['government_name']}</td>
+                                    <td data-label="소속기관명">{item['agency_name']}</td>
+                                    <td data-label="이름">{item['user_name']}</td>
+                                    <td data-label="연락처">{item['user_phonenumber']}</td>
+                                    <td data-label="이메일">{item['user_email']}</td>
+                                    <td data-label="가입승인">
+                                      {item['is_accept'] ? "승인완료" :
+                                        <button className={"btn-small red-btn"} onClick={() => { userUpdate(item, agentSelectList) }}>가입승인</button>
+                                      }
+                                    </td>
+                                    <td data-label="상세보기">
+                                      <button className={"btn-small lightgray-btn"} onClick={() => { navigate("/AgentSelectOne", { state: { 'agent_id': item['user_id'] } }) }}>상세 페이지 이동</button>
+                                    </td>
+                                  </tr>
+                                )
+                              })}
+                              {agent.userList == null || agent.userList.length == 0 ?
+                                <tr>
+                                  <td colSpan={8}>조회된 데이터가 없습니다</td>
+                                </tr>
+                                : null}
+                            </tbody>
+                          </table>
+                          <Pagination
+                            currentPage={agent.search.currentPage}
+                            perPage={agent.search.perPage}
+                            totalCount={agent.userListCount}
+                            maxRange={5}
+                            click={agentSelectList}
+                          />
+                        </div>
+                      </ul>
+                    ),
+                    /* 시행기관(복지사, 간호사) 사용자 (종료) */
+
+                    /* 시행기관(복지사, 간호사) 관리자 (시작) */
+                    ROLE_AGENCYADMIN: (
+                      <ul className="tab-content">
+                        <div>
+
+                          <div className="search-management flex-start margin-bottom2">
+                            <select id="searchType2" style={{ maxWidth: 'fit-content' }} onChange={(e) => { agentAdminSearchChange("searchType", e.target.value) }}>
+                              <option value="" selected={agentAdmin.search.searchText == ""}>전체</option>
+                              <option value="user_name" selected={agentAdmin.search.searchText == "user_name"}>이름</option>
+                              <option value="user_phonenumber" selected={agentAdmin.search.searchText == "user_phonenumber"}>연락처</option>
+                              <option value="user_id" selected={agentAdmin.search.searchText == "user_id"}>아이디</option>
+                            </select>
+                            <input id="searchText2" type="text"
+                              value={agentAdmin.search.searchText}
+                              onChange={(e) => { agentAdminSearchChange("searchText", e.target.value) }}
+                              onKeyUp={(e) => { agentAdminSelectListEnter(e.key) }}
+                            />
+                            <button className={"btn-small gray-btn"} onClick={() => { agentAdminSelectList() }}>검색</button>
+                          </div>
+
+                          <div className="btn-wrap flex-end margin-bottom">
+                            <button className={"btn-small gray-btn"} onClick={join}>등록</button>
+                          </div>
+
+                          <table className={"senior-user protector-user"}>
+                            <thead>
+                              <tr>
+                                <th>No</th>
+                                <th>관리기관명</th>
+                                <th>소속기관명</th>
+                                <th>이름</th>
+                                <th>연락처</th>
+                                <th>이메일</th>
+                                <th>가입승인</th>
+                                <th>상세보기</th>
+                              </tr>
+                            </thead>
+                            <tbody>
+                              {agentAdmin.userList.map((item, idx) => {
+                                return (
+                                  <tr key={idx}>
+                                    <td data-label="No">{agentAdmin.userListCount - idx - (agentAdmin.search.currentPage - 1) * agentAdmin.search.perPage}</td>
+                                    <td data-label="관리기관명">{item['government_name']}</td>
+                                    <td data-label="소속기관명">{item['agency_name']}</td>
+                                    <td data-label="이름">{item['user_name']}</td>
+                                    <td data-label="연락처">{item['user_phonenumber']}</td>
+                                    <td data-label="이메일">{item['user_email']}</td>
+                                    <td data-label="가입승인">
+                                      {item['is_accept'] ? "승인완료" :
+                                        <button className={"btn-small red-btn"} onClick={() => { userUpdate(item, agentAdminSelectList) }}>가입승인</button>
+                                      }
+                                    </td>
+                                    <td data-label="상세보기">
+                                      <button className={"btn-small lightgray-btn"} onClick={() => { navigate("/AgentSelectOne", { state: { 'agent_id': item['user_id'] } }) }}>상세 페이지 이동</button>
+                                    </td>
+                                  </tr>
+                                )
+                              })}
+                              {agentAdmin.userList == null || agentAdmin.userList.length == 0 ?
+                                <tr>
+                                  <td colSpan={8}>조회된 데이터가 없습니다</td>
+                                </tr>
+                                : null}
+                            </tbody>
+                          </table>
+                          <Pagination
+                            currentPage={agentAdmin.search.currentPage}
+                            perPage={agentAdmin.search.perPage}
+                            totalCount={agentAdmin.userListCount}
+                            maxRange={5}
+                            click={agentAdminSelectList}
+                          />
+                        </div>
+                      </ul>
+                    ),
+                    /* 시행기관(복지사, 간호사) 관리자 (종료) */
+
+                    /* 관리기관(지자체, 병원) 사용자 (시작) */
+                    ROLE_GOVERNMENT: (
+                      <ul className="tab-content">
+                        <div>
+
+                          <div className="search-management flex-start margin-bottom2">
+                            <select style={{ maxWidth: 'fit-content' }} onChange={(e) => { governmentSearchChange("searchType", e.target.value) }}>
+                              <option value="" selected={government.search.searchText == ""}>전체</option>
+                              <option value="user_name" selected={government.search.searchText == "user_name"}>이름</option>
+                              <option value="user_phonenumber" selected={government.search.searchText == "user_phonenumber"}>연락처</option>
+                              <option value="user_id" selected={government.search.searchText == "user_id"}>아이디</option>
+                            </select>
+                            <input type="text"
+                              value={government.search.searchText}
+                              onChange={(e) => { governmentSearchChange("searchText", e.target.value) }}
+                              onKeyUp={(e) => { governmentSelectListEnter(e.key) }}
+                            />
+                            <button className={"btn-small gray-btn"} onClick={() => { governmentSelectList() }}>검색</button>
+                          </div>
+
+                          <div className="btn-wrap flex-end margin-bottom">
+                            <button className={"btn-small gray-btn"} onClick={join}>등록</button>
+                          </div>
+
+                          <table className={"senior-user protector-user"}>
+                            <thead>
+                              <tr>
+                                <th>No</th>
+                                <th>소속기관명</th>
+                                <th>이름</th>
+                                <th>연락처</th>
+                                <th>이메일</th>
+                                <th>가입승인</th>
+                                <th>관리</th>
+                              </tr>
+                            </thead>
+                            <tbody>
+                              {government.userList.map((item, idx) => {
+                                return (
+                                  <tr key={idx}>
+                                    <td data-label="No">{government.userListCount - idx - (government.search.currentPage - 1) * government.search.perPage}</td>
+                                    <td data-label="소속기관명">{item['government_name']}</td>
+                                    <td data-label="이름">{item['user_name']}</td>
+                                    <td data-label="연락처">{item['user_phonenumber']}</td>
+                                    <td data-label="이메일">{item['user_email']}</td>
+                                    <td data-label="가입승인">
+                                      {item['is_accept'] ? "승인완료" :
+                                        <button className={"btn-small red-btn"} onClick={() => { userUpdate(item, governmentSelectList) }}>가입승인</button>
+                                      }
+                                    </td>
+                                    <td data-label="관리">
+                                      <button className={"btn-small lightgray-btn"} onClick={() => { navigate("/UserEdit", { state: { 'user_id': item['user_id'] } }) }}>정보 수정</button>
+                                    </td>
+                                  </tr>
+                                )
+                              })}
+                              {government.userList == null || government.userList.length == 0 ?
+                                <tr>
+                                  <td colSpan={7}>조회된 데이터가 없습니다</td>
+                                </tr>
+                                : null}
+                            </tbody>
+                          </table>
+                          <Pagination
+                            currentPage={government.search.currentPage}
+                            perPage={government.search.perPage}
+                            totalCount={government.userListCount}
+                            maxRange={5}
+                            click={governmentSelectList}
+                          />
+                        </div>
+                      </ul>
+                    ),
+                    /* 관리기관(지자체, 병원) 사용자 (종료) */
+
+                    /* 시스템 관리자 (시작) */
+                    ROLE_ADMIN: (
+                      <ul className="tab-content">
+                        <div>
+
+                          <div className="search-management flex-start margin-bottom2">
+                            <select style={{ maxWidth: 'fit-content' }} onChange={(e) => { adminSearchChange("searchType", e.target.value) }}>
+                              <option value="" selected={admin.search.searchText == ""}>전체</option>
+                              <option value="user_name" selected={admin.search.searchText == "user_name"}>이름</option>
+                              <option value="user_phonenumber" selected={admin.search.searchText == "user_phonenumber"}>연락처</option>
+                              <option value="user_id" selected={admin.search.searchText == "user_id"}>아이디</option>
+                            </select>
+                            <input type="text"
+                              value={admin.search.searchText}
+                              onChange={(e) => { adminSearchChange("searchText", e.target.value) }}
+                              onKeyUp={(e) => { adminSelectListEnter(e.key) }}
+                            />
+                            <button className={"btn-small gray-btn"} onClick={() => { adminSelectList() }}>검색</button>
+                          </div>
+
+                          <div className="btn-wrap flex-end margin-bottom">
+                            <button className={"btn-small gray-btn"} onClick={join}>등록</button>
+                          </div>
+
+                          <table className={"senior-user protector-user"}>
+                            <thead>
+                              <tr>
+                                <th>No</th>
+                                <th>이름</th>
+                                <th>연락처</th>
+                                <th>이메일</th>
+                                <th>가입승인</th>
+                                <th>관리</th>
+                              </tr>
+                            </thead>
+                            <tbody>
+                              {admin.userList.map((item, idx) => {
+                                return (
+                                  <tr key={idx}>
+                                    <td data-label="No">{admin.userListCount - idx - (admin.search.currentPage - 1) * admin.search.perPage}</td>
+                                    <td data-label="이름">{item['user_name']}</td>
+                                    <td data-label="연락처">{item['user_phonenumber']}</td>
+                                    <td data-label="이메일">{item['user_email']}</td>
+                                    <td data-label="가입승인">
+                                      {item['is_accept'] ? "승인완료" :
+                                        <button className={"btn-small red-btn"} onClick={() => { userUpdate(item, adminSelectList) }}>가입승인</button>
+                                      }
+                                    </td>
+                                    <td data-label="관리">
+                                      <button className={"btn-small lightgray-btn"} onClick={() => { navigate("/UserEdit", { state: { 'user_id': item['user_id'] } }) }}>정보 수정</button>
+                                    </td>
+                                  </tr>
+                                )
+                              })}
+                              {admin.userList == null || admin.userList.length == 0 ?
+                                <tr>
+                                  <td colSpan={6}>조회된 데이터가 없습니다</td>
+                                </tr>
+                                : null}
+                            </tbody>
+                          </table>
+                          <Pagination
+                            currentPage={admin.search.currentPage}
+                            perPage={admin.search.perPage}
+                            totalCount={admin.userListCount}
+                            maxRange={5}
+                            click={adminSelectList}
+                          />
+                        </div>
+                      </ul>
+                    )
+                    /* 시스템 관리자 (종료) */
+                  }[tabActiveByRoleType]}
+                </div>
+
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </main>
+  );
+}
client/views/pages/user_management/AgentSelectOne.jsx
--- client/views/pages/user_management/AgentSelectOne.jsx
+++ client/views/pages/user_management/AgentSelectOne.jsx
@@ -57,7 +57,7 @@
   };
 
   //생활보호사의 대상자 목록
-  const [seniorByAgent, setSeniorByAgent] = React.useState({seniorListByAgent: [], seniorListCountByAgent: 0});
+  const [seniorByAgent, setSeniorByAgent] = React.useState({ seniorListByAgent: [], seniorListCountByAgent: 0 });
   //생활보호사의 선택한 대상자 정보
   const [senior, setSenior] = React.useState({});
   //생활보호사의 대상자 목록 조회
@@ -142,7 +142,7 @@
       <Modal_SeniorInsert
         open={modalSeniorInsertIsOpen}
         close={modalSeniorInsertClose}
-        seniorInsertCallback={() => {seniorSelectListByAgent(); modalSeniorInsertClose();}}
+        seniorInsertCallback={() => { seniorSelectListByAgent(); modalSeniorInsertClose(); }}
         defaultAgentId={agent['agent_id']}
         defaultAgencyId={agent['agency_id']}
         defaultGovernmentId={agent['government_id']}
@@ -157,23 +157,23 @@
                 <th>관리기관</th>
                 <td>
                   <span>{agent['government_name']}</span>
-                </td>             
+                </td>
               </tr>
 
               <tr>
                 <th>시행기관</th>
                 <td>
                   <span>{agent['agency_name']}</span>
-                </td>              
+                </td>
               </tr>
 
               <tr>
                 <th>이름(아이디)</th>
                 <td>
                   <span>{agent['user_name']}({agent['user_id']})</span>
-                </td>           
+                </td>
               </tr>
-              
+
               <tr>
                 <th>연락처</th>
                 <td>
@@ -185,22 +185,20 @@
                 <th>이메일</th>
                 <td>
                   <span>{agent['user_email']}</span>
-                </td>         
+                </td>
               </tr>
 
               <tr>
-                <th>가입승인관리</th>
+                <th>계정활성화여부</th>
                 <td>
-                  {agent['is_accept'] ? <span>승인완료</span> : 
-                    <button className={"btn-small red-btn"} onClick={userUpdate}>가입승인</button>
-                  }
-                </td>         
+                  <span>{agent['user_use'] ? '활성화' : '비활성화'}</span>
+                </td>
               </tr>
-              
+
             </tbody>
           </table>
           <div className="btn-wrap flex-center">
-            <button className={"btn-large gray-btn"} onClick={() => {navigate("/UserEdit", {state: {'user_id': agent['user_id']}})}}>수정</button>
+            <button className={"btn-large gray-btn"} onClick={() => { navigate("/UserEdit", { state: { 'user_id': agent['user_id'] } }) }}>수정</button>
             <button className={"btn-large red-btn"} onClick={() => alert("삭제할 수 없습니다.")}>삭제</button>
           </div>
         </div>
@@ -225,33 +223,35 @@
               </tr>
             </thead>
             <tbody>
-              {seniorByAgent.seniorListByAgent.map((item, idx) => { return (
-                <tr key={idx}>
-                  <td>{idx + 1}</td>
-                  {/* <td>{item['government_name']}</td>
+              {seniorByAgent.seniorListByAgent.map((item, idx) => {
+                return (
+                  <tr key={idx}>
+                    <td>{idx + 1}</td>
+                    {/* <td>{item['government_name']}</td>
                   <td>{item['agency_name']}</td> */}
-                  <td>{item['user_name']}</td>
-                  <td>{item['user_phonenumber']}</td>
-                  <td>{item['user_birth']}</td>
-                  <td>{item['user_gender']}</td>
-                  <td>{item['agent_match_state'] ? <span className="green">케어중</span> : <span className="grey">케어완료</span>}</td>
-                  <td>{item['agent_match_start_date']}</td>
-                  <td>
-                    {item['agent_match_state'] ?
-                     <button className={"btn-small red-btn"} onClick={() => {agentSeniorDelete(item)}}>케어종료</button>
-                     : item['agent_match_end_date']
-                    }
-                  </td>
-                  <td>
-                    <button className={"btn-small lightgray-btn"} onClick={() => {navigate("/SeniorSelectOne", {state: {'senior_id': item['user_id']}})}}>상세 페이지 이동</button>
-                  </td>
-                </tr>
-              )})}
+                    <td>{item['user_name']}</td>
+                    <td>{item['user_phonenumber']}</td>
+                    <td>{item['user_birth']}</td>
+                    <td>{item['user_gender']}</td>
+                    <td>{item['agent_match_state'] ? <span className="green">케어중</span> : <span className="grey">케어완료</span>}</td>
+                    <td>{item['agent_match_start_date']}</td>
+                    <td>
+                      {item['agent_match_state'] ?
+                        <button className={"btn-small red-btn"} onClick={() => { agentSeniorDelete(item) }}>케어종료</button>
+                        : item['agent_match_end_date']
+                      }
+                    </td>
+                    <td>
+                      <button className={"btn-small lightgray-btn"} onClick={() => { navigate("/SeniorSelectOne", { state: { 'senior_id': item['user_id'] } }) }}>상세 페이지 이동</button>
+                    </td>
+                  </tr>
+                )
+              })}
               {seniorByAgent.seniorListByAgent == null || seniorByAgent.seniorListByAgent.length == 0 ?
                 <tr>
                   <td colSpan={9}>조회된 데이터가 없습니다</td>
                 </tr>
-              : null}
+                : null}
             </tbody>
           </table>
         </div>
client/views/pages/user_management/UserSelect.jsx
--- client/views/pages/user_management/UserSelect.jsx
+++ client/views/pages/user_management/UserSelect.jsx
@@ -17,7 +17,7 @@
   const location = useLocation();
 
   //전역 변수 저장 객체
-  const state = useSelector((state) => {return state});
+  const state = useSelector((state) => { return state });
   const defaultGovernmentId = CommonUtil.isEmpty(state.loginUser) ? null : state.loginUser['government_id'];
 
   //활성화 탭 (시스템 업무 역할별)
@@ -54,7 +54,7 @@
       headers: {
         'Content-Type': 'application/json; charset=UTF-8'
       },
-      body: JSON.stringify({'government_id': defaultGovernmentId}),
+      body: JSON.stringify({ 'government_id': defaultGovernmentId }),
     }).then((response) => response.json()).then((data) => {
       console.log("기관(관리, 시행) 계층 구조 목록 조회 : ", data);
       setOrgListOfHierarchy(data);
@@ -64,7 +64,8 @@
   };
 
 
-
+  // user_state
+  const [isViewType, setIsViewType] = React.useState(true);
   //검색 변수 (초기화값)
   const [userSearch, setUserSearch] = React.useState({
     'government_id': state.loginUser['government_id'],
@@ -79,7 +80,7 @@
 
   //대상자(시니어) 목록 및 페이징 정보
   userSearch['authority'] = 'ROLE_SENIOR';
-  const [senior, setSenior] = React.useState({userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch))});
+  const [senior, setSenior] = React.useState({ userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch)) });
   const seniorSearchChange = (targetKey, value) => {
     let newSenior = JSON.parse(JSON.stringify(senior));
     newSenior.search[targetKey] = value;
@@ -113,7 +114,7 @@
 
   //시행기관 담당자 목록 및 페이징 정보
   userSearch['authority'] = 'ROLE_AGENCY';
-  const [agent, setAgent] = React.useState({userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch))});
+  const [agent, setAgent] = React.useState({ userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch)) });
   const agentSearchChange = (targetKey, value) => {
     let newAgent = JSON.parse(JSON.stringify(agent));
     newAgent.search[targetKey] = value;
@@ -147,7 +148,7 @@
 
   //시행기관 관리자 목록 및 페이징 정보
   userSearch['authority'] = 'ROLE_AGENCYADMIN';
-  const [agentAdmin, setAgentAdmin] = React.useState({userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch))});
+  const [agentAdmin, setAgentAdmin] = React.useState({ userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch)) });
   const agentAdminSearchChange = (targetKey, value) => {
     let newAgent = JSON.parse(JSON.stringify(agentAdmin));
     newAgent.search[targetKey] = value;
@@ -181,7 +182,7 @@
 
   //관리기관 관리자 목록 및 페이징 정보
   userSearch['authority'] = 'ROLE_GOVERNMENT';
-  const [government, setGovernment] = React.useState({userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch))});
+  const [government, setGovernment] = React.useState({ userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch)) });
   const governmentSearchChange = (targetKey, value) => {
     let newGovernment = JSON.parse(JSON.stringify(government));
     newGovernment.search[targetKey] = value;
@@ -215,7 +216,7 @@
 
   //시스템 관리자 목록 및 페이징 정보
   userSearch['authority'] = 'ROLE_ADMIN';
-  const [admin, setAdmin] = React.useState({userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch))});
+  const [admin, setAdmin] = React.useState({ userList: [], userListCount: 0, search: JSON.parse(JSON.stringify(userSearch)) });
   const adminSearchChange = (targetKey, value) => {
     let newAdmin = JSON.parse(JSON.stringify(admin));
     newAdmin.search[targetKey] = value;
@@ -286,7 +287,7 @@
     agentSelectList();
     agent.search['government_id'] = government_id;
     agent.search['agency_id'] = null;
-    agentADminSelectList();
+    agentAdminSelectList();
     if (state.loginUser['authority'] == 'ROLE_ADMIN' || state.loginUser['authority'] == 'ROLE_GOVERNMENT') {
       government.search['government_id'] = government_id;
       government.search['agency_id'] = null;
@@ -312,16 +313,18 @@
     agent.search['agency_id'] = agency_id;
     agentAdminSelectList();
   }
-  
-  
+
+
 
   //사용자 등록 페이지 이동
   const join = () => {
-    navigate("/Join", {state: {
-      'government_id': userSearch['government_id'],
-      'agency_id': userSearch['agency_id'],
-      'authority': tabActiveByRoleType,
-    }});
+    navigate("/Join", {
+      state: {
+        'government_id': userSearch['government_id'],
+        'agency_id': userSearch['agency_id'],
+        'authority': tabActiveByRoleType,
+      }
+    });
   }
 
   //가입승인
@@ -351,7 +354,7 @@
   //Mounted
   React.useEffect(() => {
     orgSelectListOfHierarchy();
-    
+
     if (CommonUtil.isEmpty(location.state) == false) {
       const param = location.state;
       if (CommonUtil.isEmpty(param['tabActiveByRoleType']) == false) {
@@ -376,11 +379,11 @@
 
   return (
     <main>
-      <Modal_Guardian open={modalGuardianIsOpen} close={modalGuardianClose}/>
+      <Modal_Guardian open={modalGuardianIsOpen} close={modalGuardianClose} />
       <Modal_SeniorInsert
         open={modalSeniorInsertIsOpen}
         close={modalSeniorInsertClose}
-        seniorInsertCallback={() => {seniorSelectList(); modalSeniorInsertClose();}}
+        seniorInsertCallback={() => { seniorSelectList(); modalSeniorInsertClose(); }}
         defaultAgencyId={userSearch['agency_id']}
         defaultGovernmentId={userSearch['government_id']}
       />
@@ -395,37 +398,41 @@
                 className="margin-bottom"
               />
               {/* 카테고리 디자인 필요 (a.active 클래스 필요) */}
-              <div style={{fontSize: '16px'}} className="category">
+              <div style={{ fontSize: '16px' }} className="category">
                 {state.loginUser['authority'] == 'ROLE_ADMIN' ?
                   <a onClick={adminChange}
                     className={userSearch['government_id'] == null && userSearch['agency_id'] == null ? "active" : ""}>
                     올잇메디
                   </a>
-                : null}
-                <ul style={{marginLeft: '15px'}}>
-                  {orgListOfHierarchy.map((item, idx) => { return (
-                    <li style={{margin: '10px 0px'}} key={idx}>
-                      <span style={{marginRight: '5px'}}><img src={House} alt="" /></span>
-                      <a onClick={() => {governmentChange(item['government_id'])}}
-                         className={item['government_id'] == userSearch['government_id'] ? "active" : ""}>
-                        {item['government_name']}
-                      </a>
-                      {item['agencyList'] != undefined && item['agencyList'] != null ?
-                        <ul style={{marginLeft: '15px'}}>
-                          {item['agencyList'].map((item2, idx2) => { return (
-                            <li style={{margin: '10px 0px'}} key={idx2}>
-                              <span style={{marginRight: '5px'}}><img src={Arrow} alt="" /></span>
-                              <a onClick={() => {agencyChange(item['government_id'], item2['agency_id'])}}
-                                 className={item2['agency_id'] == userSearch['agency_id'] ? "active" : ""}>
-                                {item2['agency_name']}
-                              </a>
-                            </li>
-                          )})}
-                        </ul>
-                        : null
-                      }
-                    </li>
-                  )})}
+                  : null}
+                <ul style={{ marginLeft: '15px' }}>
+                  {orgListOfHierarchy.map((item, idx) => {
+                    return (
+                      <li style={{ margin: '10px 0px' }} key={idx}>
+                        <span style={{ marginRight: '5px' }}><img src={House} alt="" /></span>
+                        <a onClick={() => { governmentChange(item['government_id']) }}
+                          className={item['government_id'] == userSearch['government_id'] ? "active" : ""}>
+                          {item['government_name']}
+                        </a>
+                        {item['agencyList'] != undefined && item['agencyList'] != null ?
+                          <ul style={{ marginLeft: '15px' }}>
+                            {item['agencyList'].map((item2, idx2) => {
+                              return (
+                                <li style={{ margin: '10px 0px' }} key={idx2}>
+                                  <span style={{ marginRight: '5px' }}><img src={Arrow} alt="" /></span>
+                                  <a onClick={() => { agencyChange(item['government_id'], item2['agency_id']) }}
+                                    className={item2['agency_id'] == userSearch['agency_id'] ? "active" : ""}>
+                                    {item2['agency_name']}
+                                  </a>
+                                </li>
+                              )
+                            })}
+                          </ul>
+                          : null
+                        }
+                      </li>
+                    )
+                  })}
                 </ul>
               </div>
               {/* 카테고리 디자인 필요 */}
@@ -433,22 +440,22 @@
           </div>
           <div className="right" style={{ height: "100%", }}>
             <div style={{ height: "100%" }}>
-              <SubTitle explanation={`사용자 리스트`} className="margin-bottom"/>
+              <SubTitle explanation={`사용자 리스트`} className="margin-bottom" />
               <div className="tab-container">
 
                 {/* 탭 제목 */}
                 <ul className="tab-menu flex-end" >
                   {/* <li onClick={() => setTabActiveByRoleType('ROLE_SENIOR')} className={tabActiveByRoleType == 'ROLE_SENIOR' ? "active" : null}>대상자(어르신) ({senior.userListCount})</li> */}
                   <li onClick={() => setTabActiveByRoleType('ROLE_AGENCY')} className={tabActiveByRoleType == 'ROLE_AGENCY' ? "active" : null}>생활보호사 ({agent.userListCount})</li>
-                  {state.loginUser['authority'] == 'ROLE_ADMIN' || state.loginUser['authority'] == 'ROLE_AGENCYADMIN' || state.loginUser['authority'] == 'ROLE_GOVERNMENT'  ?
+                  {state.loginUser['authority'] == 'ROLE_ADMIN' || state.loginUser['authority'] == 'ROLE_AGENCYADMIN' || state.loginUser['authority'] == 'ROLE_GOVERNMENT' ?
                     <li onClick={() => setTabActiveByRoleType('ROLE_AGENCYADMIN')} className={tabActiveByRoleType == 'ROLE_AGENCYADMIN' ? "active" : null}>센터 관리자 ({agentAdmin.userListCount})</li>
-                  : null}
-                  {state.loginUser['authority'] == 'ROLE_ADMIN' || state.loginUser['authority'] == 'ROLE_GOVERNMENT'  ?
+                    : null}
+                  {state.loginUser['authority'] == 'ROLE_ADMIN' || state.loginUser['authority'] == 'ROLE_GOVERNMENT' ?
                     <li onClick={() => setTabActiveByRoleType('ROLE_GOVERNMENT')} className={tabActiveByRoleType == 'ROLE_GOVERNMENT' ? "active" : null}>기관 관리자 ({government.userListCount})</li>
-                  : null}
+                    : null}
                   {state.loginUser['authority'] == 'ROLE_ADMIN' ?
                     <li onClick={() => setTabActiveByRoleType('ROLE_ADMIN')} className={tabActiveByRoleType == 'ROLE_ADMIN' ? "active" : null}>시스템 관리자 ({admin.userListCount})</li>
-                  : null}
+                    : null}
                 </ul>
 
                 {/* 탭 내용 */}
@@ -459,7 +466,7 @@
                       <ul className="tab-content">
                         <div>
                           <div className="search-management flex-start margin-bottom2">
-                            <select id="searchType1" style={{maxWidth: 'fit-content'}} onChange={(e) => {seniorSearchChange("searchType", e.target.value)}}>
+                            <select id="searchType1" style={{ maxWidth: 'fit-content' }} onChange={(e) => { seniorSearchChange("searchType", e.target.value) }}>
                               <option value="" selected={senior.search.searchText == ""}>전체</option>
                               <option value="user_name" selected={senior.search.searchText == "user_name"}>이름</option>
                               <option value="user_phonenumber" selected={senior.search.searchText == "user_phonenumber"}>연락처</option>
@@ -467,10 +474,10 @@
                             </select>
                             <input type="text" id="searchText1"
                               value={senior.search.searchText}
-                              onChange={(e) => {seniorSearchChange("searchText", e.target.value)}}
-                              onKeyUp={(e) => {seniorSelectListEnter(e.key)}}
+                              onChange={(e) => { seniorSearchChange("searchText", e.target.value) }}
+                              onKeyUp={(e) => { seniorSelectListEnter(e.key) }}
                             />
-                            <button className={"btn-small gray-btn"} onClick={() => {seniorSelectList()}}>검색</button>
+                            <button className={"btn-small gray-btn"} onClick={() => { seniorSelectList() }}>검색</button>
                           </div>
 
                           <div className="btn-wrap flex margin-bottom">
@@ -491,28 +498,32 @@
                               </tr>
                             </thead>
                             <tbody>
-                              {senior.userList.map((item, idx) => { return (
-                                <tr key={idx} onClick={() => {navigate("/SeniorSelectOne", {
-                                  state: {
-                                    'senior_id': item['user_id'],
-                                    'agency_id': item['agency_id'],
-												            'government_id': item['government_id']
-                                  }
-                                })}}>
-                                  <td data-label="No">{senior.userListCount - idx - (senior.search.currentPage - 1) * senior.search.perPage}</td>
-                                  <td data-label="No">{item['agency_name']}</td>
-                                  <td data-label="소속기관명">{item['user_name']}</td>
-                                  <td data-label="생년월일">{item['user_birth']}</td>
-                                  <td data-label="성별">{item['user_gender']}</td>
-                                  <td data-label="연락처">{item['user_phonenumber']}</td>
-                                  <td data-label="주소">{item['user_address']}</td>
-                                </tr>
-                              )})}
+                              {senior.userList.map((item, idx) => {
+                                return (
+                                  <tr key={idx} onClick={() => {
+                                    navigate("/SeniorSelectOne", {
+                                      state: {
+                                        'senior_id': item['user_id'],
+                                        'agency_id': item['agency_id'],
+                                        'government_id': item['government_id']
+                                      }
+                                    })
+                                  }}>
+                                    <td data-label="No">{senior.userListCount - idx - (senior.search.currentPage - 1) * senior.search.perPage}</td>
+                                    <td data-label="No">{item['agency_name']}</td>
+                                    <td data-label="소속기관명">{item['user_name']}</td>
+                                    <td data-label="생년월일">{item['user_birth']}</td>
+                                    <td data-label="성별">{item['user_gender']}</td>
+                                    <td data-label="연락처">{item['user_phonenumber']}</td>
+                                    <td data-label="주소">{item['user_address']}</td>
+                                  </tr>
+                                )
+                              })}
                               {senior.userList == null || senior.userList.length == 0 ?
                                 <tr>
                                   <td colSpan={7}>조회된 데이터가 없습니다</td>
-                                </tr>  
-                              : null}
+                                </tr>
+                                : null}
                             </tbody>
                           </table>
                           <Pagination
@@ -533,21 +544,35 @@
                         <div>
 
                           <div className="search-management flex-start margin-bottom2">
-                            <select id="searchType2"  style={{maxWidth: 'fit-content'}} onChange={(e) => {agentSearchChange("searchType", e.target.value)}}>
+                            <select id="searchType2" style={{ maxWidth: 'fit-content' }} onChange={(e) => { agentSearchChange("searchType", e.target.value) }}>
                               <option value="" selected={agent.search.searchText == ""}>전체</option>
                               <option value="user_name" selected={agent.search.searchText == "user_name"}>이름</option>
                               <option value="user_phonenumber" selected={agent.search.searchText == "user_phonenumber"}>연락처</option>
                               <option value="user_id" selected={agent.search.searchText == "user_id"}>아이디</option>
                             </select>
-                            <input id="searchText2"  type="text"
+                            <input id="searchText2" type="text"
                               value={agent.search.searchText}
-                              onChange={(e) => {agentSearchChange("searchText", e.target.value)}}
-                              onKeyUp={(e) => {agentSelectListEnter(e.key)}}
+                              onChange={(e) => { agentSearchChange("searchText", e.target.value) }}
+                              onKeyUp={(e) => { agentSelectListEnter(e.key) }}
                             />
-                            <button className={"btn-small gray-btn"} onClick={() => {agentSelectList()}}>검색</button>
+                            <button className={"btn-small gray-btn"} onClick={() => { agentSelectList() }}>검색</button>
                           </div>
 
-                          <div className="btn-wrap flex-end margin-bottom">
+                          <div className="radio-tab btn-wrap flex-end margin-bottom">
+                            <div className="flex-start">
+                              <div>
+                                <input type="radio" name="viewType" id="useTrue"
+                                  checked={isViewType}
+                                  onChange={(e) => { e.target.checked ? setIsViewType(true) : null }} />
+                                <label htmlFor="useTrue">활성화</label>
+                              </div>
+                              <div>
+                                <input type="radio" name="viewType" id="useFalse"
+                                  checked={!isViewType}
+                                  onChange={(e) => { e.target.checked ? setIsViewType(false) : null }} />
+                                <label htmlFor="useFalse">미활성화</label>
+                              </div>
+                            </div>
                             <button className={"btn-small gray-btn"} onClick={join}>등록</button>
                           </div>
 
@@ -565,29 +590,31 @@
                               </tr>
                             </thead>
                             <tbody>
-                              {agent.userList.map((item, idx) => { return (
-                                <tr key={idx}>
-                                  <td data-label="No">{agent.userListCount - idx - (agent.search.currentPage - 1) * agent.search.perPage}</td>
-                                  <td data-label="관리기관명">{item['government_name']}</td>
-                                  <td data-label="소속기관명">{item['agency_name']}</td>
-                                  <td data-label="이름">{item['user_name']}</td>
-                                  <td data-label="연락처">{item['user_phonenumber']}</td>
-                                  <td data-label="이메일">{item['user_email']}</td>
-                                  <td data-label="가입승인">
-                                    {item['is_accept'] ? "승인완료" : 
-                                      <button className={"btn-small red-btn"} onClick={() => {userUpdate(item, agentSelectList)}}>가입승인</button>
-                                    }
-                                  </td>
-                                  <td data-label="상세보기">
-                                    <button className={"btn-small lightgray-btn"} onClick={() => {navigate("/AgentSelectOne", {state: {'agent_id': item['user_id']}})}}>상세 페이지 이동</button>
-                                  </td>
-                                </tr>
-                              )})}
+                              {agent.userList.map((item, idx) => {
+                                return (
+                                  <tr key={idx}>
+                                    <td data-label="No">{agent.userListCount - idx - (agent.search.currentPage - 1) * agent.search.perPage}</td>
+                                    <td data-label="관리기관명">{item['government_name']}</td>
+                                    <td data-label="소속기관명">{item['agency_name']}</td>
+                                    <td data-label="이름">{item['user_name']}</td>
+                                    <td data-label="연락처">{item['user_phonenumber']}</td>
+                                    <td data-label="이메일">{item['user_email']}</td>
+                                    <td data-label="가입승인">
+                                      {item['is_accept'] ? "승인완료" :
+                                        <button className={"btn-small red-btn"} onClick={() => { userUpdate(item, agentSelectList) }}>가입승인</button>
+                                      }
+                                    </td>
+                                    <td data-label="상세보기">
+                                      <button className={"btn-small lightgray-btn"} onClick={() => { navigate("/AgentSelectOne", { state: { 'agent_id': item['user_id'] } }) }}>상세 페이지 이동</button>
+                                    </td>
+                                  </tr>
+                                )
+                              })}
                               {agent.userList == null || agent.userList.length == 0 ?
                                 <tr>
                                   <td colSpan={8}>조회된 데이터가 없습니다</td>
                                 </tr>
-                              : null}
+                                : null}
                             </tbody>
                           </table>
                           <Pagination
@@ -608,21 +635,35 @@
                         <div>
 
                           <div className="search-management flex-start margin-bottom2">
-                            <select id="searchType2"  style={{maxWidth: 'fit-content'}} onChange={(e) => {agentAdminSearchChange("searchType", e.target.value)}}>
+                            <select id="searchType2" style={{ maxWidth: 'fit-content' }} onChange={(e) => { agentAdminSearchChange("searchType", e.target.value) }}>
                               <option value="" selected={agentAdmin.search.searchText == ""}>전체</option>
                               <option value="user_name" selected={agentAdmin.search.searchText == "user_name"}>이름</option>
                               <option value="user_phonenumber" selected={agentAdmin.search.searchText == "user_phonenumber"}>연락처</option>
                               <option value="user_id" selected={agentAdmin.search.searchText == "user_id"}>아이디</option>
                             </select>
-                            <input id="searchText2"  type="text"
+                            <input id="searchText2" type="text"
                               value={agentAdmin.search.searchText}
-                              onChange={(e) => {agentAdminSearchChange("searchText", e.target.value)}}
-                              onKeyUp={(e) => {agentAdminSelectListEnter(e.key)}}
+                              onChange={(e) => { agentAdminSearchChange("searchText", e.target.value) }}
+                              onKeyUp={(e) => { agentAdminSelectListEnter(e.key) }}
                             />
-                            <button className={"btn-small gray-btn"} onClick={() => {agentAdminSelectList()}}>검색</button>
+                            <button className={"btn-small gray-btn"} onClick={() => { agentAdminSelectList() }}>검색</button>
                           </div>
 
-                          <div className="btn-wrap flex-end margin-bottom">
+                          <div className="radio-tab btn-wrap flex-end margin-bottom">
+                            <div className="flex-start">
+                              <div>
+                                <input type="radio" name="viewType" id="useTrue"
+                                  checked={isViewType}
+                                  onChange={(e) => { e.target.checked ? setIsViewType(true) : null }} />
+                                <label htmlFor="useTrue">활성화</label>
+                              </div>
+                              <div>
+                                <input type="radio" name="viewType" id="useFalse"
+                                  checked={!isViewType}
+                                  onChange={(e) => { e.target.checked ? setIsViewType(false) : null }} />
+                                <label htmlFor="useFalse">미활성화</label>
+                              </div>
+                            </div>
                             <button className={"btn-small gray-btn"} onClick={join}>등록</button>
                           </div>
 
@@ -640,29 +681,31 @@
                               </tr>
                             </thead>
                             <tbody>
-                              {agentAdmin.userList.map((item, idx) => { return (
-                                <tr key={idx}>
-                                  <td data-label="No">{agentAdmin.userListCount - idx - (agentAdmin.search.currentPage - 1) * agentAdmin.search.perPage}</td>
-                                  <td data-label="관리기관명">{item['government_name']}</td>
-                                  <td data-label="소속기관명">{item['agency_name']}</td>
-                                  <td data-label="이름">{item['user_name']}</td>
-                                  <td data-label="연락처">{item['user_phonenumber']}</td>
-                                  <td data-label="이메일">{item['user_email']}</td>
-                                  <td data-label="가입승인">
-                                    {item['is_accept'] ? "승인완료" : 
-                                      <button className={"btn-small red-btn"} onClick={() => {userUpdate(item, agentAdminSelectList)}}>가입승인</button>
-                                    }
-                                  </td>
-                                  <td data-label="상세보기">
-                                    <button className={"btn-small lightgray-btn"} onClick={() => {navigate("/AgentSelectOne", {state: {'agent_id': item['user_id']}})}}>상세 페이지 이동</button>
-                                  </td>
-                                </tr>
-                              )})}
+                              {agentAdmin.userList.map((item, idx) => {
+                                return (
+                                  <tr key={idx}>
+                                    <td data-label="No">{agentAdmin.userListCount - idx - (agentAdmin.search.currentPage - 1) * agentAdmin.search.perPage}</td>
+                                    <td data-label="관리기관명">{item['government_name']}</td>
+                                    <td data-label="소속기관명">{item['agency_name']}</td>
+                                    <td data-label="이름">{item['user_name']}</td>
+                                    <td data-label="연락처">{item['user_phonenumber']}</td>
+                                    <td data-label="이메일">{item['user_email']}</td>
+                                    <td data-label="가입승인">
+                                      {item['is_accept'] ? "승인완료" :
+                                        <button className={"btn-small red-btn"} onClick={() => { userUpdate(item, agentAdminSelectList) }}>가입승인</button>
+                                      }
+                                    </td>
+                                    <td data-label="상세보기">
+                                      <button className={"btn-small lightgray-btn"} onClick={() => { navigate("/AgentSelectOne", { state: { 'agent_id': item['user_id'] } }) }}>상세 페이지 이동</button>
+                                    </td>
+                                  </tr>
+                                )
+                              })}
                               {agentAdmin.userList == null || agentAdmin.userList.length == 0 ?
                                 <tr>
                                   <td colSpan={8}>조회된 데이터가 없습니다</td>
                                 </tr>
-                              : null}
+                                : null}
                             </tbody>
                           </table>
                           <Pagination
@@ -681,9 +724,9 @@
                     ROLE_GOVERNMENT: (
                       <ul className="tab-content">
                         <div>
-                          
+
                           <div className="search-management flex-start margin-bottom2">
-                            <select style={{maxWidth: 'fit-content'}} onChange={(e) => {governmentSearchChange("searchType", e.target.value)}}>
+                            <select style={{ maxWidth: 'fit-content' }} onChange={(e) => { governmentSearchChange("searchType", e.target.value) }}>
                               <option value="" selected={government.search.searchText == ""}>전체</option>
                               <option value="user_name" selected={government.search.searchText == "user_name"}>이름</option>
                               <option value="user_phonenumber" selected={government.search.searchText == "user_phonenumber"}>연락처</option>
@@ -691,13 +734,27 @@
                             </select>
                             <input type="text"
                               value={government.search.searchText}
-                              onChange={(e) => {governmentSearchChange("searchText", e.target.value)}}
-                              onKeyUp={(e) => {governmentSelectListEnter(e.key)}}
+                              onChange={(e) => { governmentSearchChange("searchText", e.target.value) }}
+                              onKeyUp={(e) => { governmentSelectListEnter(e.key) }}
                             />
-                            <button className={"btn-small gray-btn"} onClick={() => {governmentSelectList()}}>검색</button>
+                            <button className={"btn-small gray-btn"} onClick={() => { governmentSelectList() }}>검색</button>
                           </div>
 
-                          <div className="btn-wrap flex-end margin-bottom">
+                          <div className="radio-tab btn-wrap flex-end margin-bottom">
+                            <div className="flex-start">
+                              <div>
+                                <input type="radio" name="viewType" id="useTrue"
+                                  checked={isViewType}
+                                  onChange={(e) => { e.target.checked ? setIsViewType(true) : null }} />
+                                <label htmlFor="useTrue">활성화</label>
+                              </div>
+                              <div>
+                                <input type="radio" name="viewType" id="useFalse"
+                                  checked={!isViewType}
+                                  onChange={(e) => { e.target.checked ? setIsViewType(false) : null }} />
+                                <label htmlFor="useFalse">미활성화</label>
+                              </div>
+                            </div>
                             <button className={"btn-small gray-btn"} onClick={join}>등록</button>
                           </div>
 
@@ -714,28 +771,30 @@
                               </tr>
                             </thead>
                             <tbody>
-                              {government.userList.map((item, idx) => { return (
-                                <tr key={idx}>
-                                  <td data-label="No">{government.userListCount - idx - (government.search.currentPage - 1) * government.search.perPage}</td>
-                                  <td data-label="소속기관명">{item['government_name']}</td>
-                                  <td data-label="이름">{item['user_name']}</td>
-                                  <td data-label="연락처">{item['user_phonenumber']}</td>
-                                  <td data-label="이메일">{item['user_email']}</td>
-                                  <td data-label="가입승인">
-                                    {item['is_accept'] ? "승인완료" : 
-                                      <button className={"btn-small red-btn"} onClick={() => {userUpdate(item, governmentSelectList)}}>가입승인</button>
-                                    }
-                                  </td>
-                                  <td data-label="관리">
-                                    <button className={"btn-small lightgray-btn"} onClick={() => {navigate("/UserEdit", {state: {'user_id': item['user_id']}})}}>정보 수정</button>
-                                  </td>
-                                </tr>
-                              )})}
+                              {government.userList.map((item, idx) => {
+                                return (
+                                  <tr key={idx}>
+                                    <td data-label="No">{government.userListCount - idx - (government.search.currentPage - 1) * government.search.perPage}</td>
+                                    <td data-label="소속기관명">{item['government_name']}</td>
+                                    <td data-label="이름">{item['user_name']}</td>
+                                    <td data-label="연락처">{item['user_phonenumber']}</td>
+                                    <td data-label="이메일">{item['user_email']}</td>
+                                    <td data-label="가입승인">
+                                      {item['is_accept'] ? "승인완료" :
+                                        <button className={"btn-small red-btn"} onClick={() => { userUpdate(item, governmentSelectList) }}>가입승인</button>
+                                      }
+                                    </td>
+                                    <td data-label="관리">
+                                      <button className={"btn-small lightgray-btn"} onClick={() => { navigate("/UserEdit", { state: { 'user_id': item['user_id'] } }) }}>정보 수정</button>
+                                    </td>
+                                  </tr>
+                                )
+                              })}
                               {government.userList == null || government.userList.length == 0 ?
                                 <tr>
                                   <td colSpan={7}>조회된 데이터가 없습니다</td>
                                 </tr>
-                              : null}
+                                : null}
                             </tbody>
                           </table>
                           <Pagination
@@ -754,9 +813,9 @@
                     ROLE_ADMIN: (
                       <ul className="tab-content">
                         <div>
-                          
+
                           <div className="search-management flex-start margin-bottom2">
-                            <select style={{maxWidth: 'fit-content'}} onChange={(e) => {adminSearchChange("searchType", e.target.value)}}>
+                            <select style={{ maxWidth: 'fit-content' }} onChange={(e) => { adminSearchChange("searchType", e.target.value) }}>
                               <option value="" selected={admin.search.searchText == ""}>전체</option>
                               <option value="user_name" selected={admin.search.searchText == "user_name"}>이름</option>
                               <option value="user_phonenumber" selected={admin.search.searchText == "user_phonenumber"}>연락처</option>
@@ -764,13 +823,27 @@
                             </select>
                             <input type="text"
                               value={admin.search.searchText}
-                              onChange={(e) => {adminSearchChange("searchText", e.target.value)}}
-                              onKeyUp={(e) => {adminSelectListEnter(e.key)}}
+                              onChange={(e) => { adminSearchChange("searchText", e.target.value) }}
+                              onKeyUp={(e) => { adminSelectListEnter(e.key) }}
                             />
-                            <button className={"btn-small gray-btn"} onClick={() => {adminSelectList()}}>검색</button>
+                            <button className={"btn-small gray-btn"} onClick={() => { adminSelectList() }}>검색</button>
                           </div>
 
-                          <div className="btn-wrap flex-end margin-bottom">
+                          <div className="radio-tab btn-wrap flex-end margin-bottom">
+                            <div className="flex-start">
+                              <div>
+                                <input type="radio" name="viewType" id="useTrue"
+                                  checked={isViewType}
+                                  onChange={(e) => { e.target.checked ? setIsViewType(true) : null }} />
+                                <label htmlFor="useTrue">활성화</label>
+                              </div>
+                              <div>
+                                <input type="radio" name="viewType" id="useFalse"
+                                  checked={!isViewType}
+                                  onChange={(e) => { e.target.checked ? setIsViewType(false) : null }} />
+                                <label htmlFor="useFalse">미활성화</label>
+                              </div>
+                            </div>
                             <button className={"btn-small gray-btn"} onClick={join}>등록</button>
                           </div>
 
@@ -786,27 +859,29 @@
                               </tr>
                             </thead>
                             <tbody>
-                              {admin.userList.map((item, idx) => { return (
-                                <tr key={idx}>
-                                  <td data-label="No">{admin.userListCount - idx - (admin.search.currentPage - 1) * admin.search.perPage}</td>
-                                  <td data-label="이름">{item['user_name']}</td>
-                                  <td data-label="연락처">{item['user_phonenumber']}</td>
-                                  <td data-label="이메일">{item['user_email']}</td>
-                                  <td data-label="가입승인">
-                                    {item['is_accept'] ? "승인완료" : 
-                                      <button className={"btn-small red-btn"} onClick={() => {userUpdate(item, adminSelectList)}}>가입승인</button>
-                                    }
-                                  </td>
-                                  <td data-label="관리">
-                                    <button className={"btn-small lightgray-btn"} onClick={() => {navigate("/UserEdit", {state: {'user_id': item['user_id']}})}}>정보 수정</button>
-                                  </td>
-                                </tr>
-                              )})}
+                              {admin.userList.map((item, idx) => {
+                                return (
+                                  <tr key={idx}>
+                                    <td data-label="No">{admin.userListCount - idx - (admin.search.currentPage - 1) * admin.search.perPage}</td>
+                                    <td data-label="이름">{item['user_name']}</td>
+                                    <td data-label="연락처">{item['user_phonenumber']}</td>
+                                    <td data-label="이메일">{item['user_email']}</td>
+                                    <td data-label="가입승인">
+                                      {item['is_accept'] ? "승인완료" :
+                                        <button className={"btn-small red-btn"} onClick={() => { userUpdate(item, adminSelectList) }}>가입승인</button>
+                                      }
+                                    </td>
+                                    <td data-label="관리">
+                                      <button className={"btn-small lightgray-btn"} onClick={() => { navigate("/UserEdit", { state: { 'user_id': item['user_id'] } }) }}>정보 수정</button>
+                                    </td>
+                                  </tr>
+                                )
+                              })}
                               {admin.userList == null || admin.userList.length == 0 ?
                                 <tr>
                                   <td colSpan={6}>조회된 데이터가 없습니다</td>
                                 </tr>
-                              : null}
+                                : null}
                             </tbody>
                           </table>
                           <Pagination
Add a comment
List