diff --git a/src/components/basis/dron/BasisDronTab.js b/src/components/basis/dron/BasisDronTab.js
index f69029f..094e75c 100644
--- a/src/components/basis/dron/BasisDronTab.js
+++ b/src/components/basis/dron/BasisDronTab.js
@@ -17,8 +17,10 @@ import { BasisIdntfContainer } from '../../../containers/basis/dron/BasisIdntfCo
export const BasisDronTab = props => {
const [activeTab, setActiveTab] = useState('1');
- //본인이 등록한 기체가 아니면 true
+ //내가 등록한 기체인가
const [isDisabled, setIsDisabled] = useState(false);
+ //내가 소속된 그룹의 기체인가
+ const [isMyGroup, setIsMyGroup] = useState(false);
const toggle = tab => {
if (activeTab !== tab) setActiveTab(tab);
@@ -60,13 +62,15 @@ export const BasisDronTab = props => {
id={props.id}
isDisabled={isDisabled}
setIsDisabled={setIsDisabled}
+ isMyGroup={isMyGroup}
+ setIsMyGroup={setIsMyGroup}
/>
diff --git a/src/components/basis/dron/BasisIdntform.js b/src/components/basis/dron/BasisIdntform.js
index 0f485d8..651a207 100644
--- a/src/components/basis/dron/BasisIdntform.js
+++ b/src/components/basis/dron/BasisIdntform.js
@@ -153,7 +153,9 @@ export const BasisIdntfForm = props => {
)
}
outline
- disabled={props.isDisabled}
+ {...(props.data[i].disabled !== undefined
+ ? { disabled: false }
+ : { disabled: true })}
>
삭제
@@ -173,7 +175,7 @@ export const BasisIdntfForm = props => {
color='primary'
size='sm'
onClick={props.addData}
- disabled={props.isDisabled}
+ // disabled={props.isDisabled}
>
+ 추가
@@ -182,7 +184,7 @@ export const BasisIdntfForm = props => {
color='primary'
size='sm'
onClick={props.handlerSave}
- disabled={props.isDisabled}
+ // disabled={props.isDisabled}
>
저장
diff --git a/src/containers/basis/dron/BasisDronDetailContainer.js b/src/containers/basis/dron/BasisDronDetailContainer.js
index e2ecb91..c651d3e 100644
--- a/src/containers/basis/dron/BasisDronDetailContainer.js
+++ b/src/containers/basis/dron/BasisDronDetailContainer.js
@@ -12,6 +12,7 @@ import * as Actions from '../../../modules/basis/dron/actions/basisDronAction';
import { dronAPI } from '../../../modules/basis/dron/apis/basisDronApi';
export const BasisDronDetailContainer = props => {
+ const { joinList, groupList } = useSelector(state => state.groupState);
const { detail, selectData } = useSelector(state => state.dronState);
const history = useHistory();
const { user } = useSelector(state => state.authState);
@@ -125,11 +126,25 @@ export const BasisDronDetailContainer = props => {
if (user?.authId === 'SUPER') {
props.setIsDisabled(false);
} else if (user?.authId === 'ADMIN' || user?.authId === 'USER') {
+ //내가 등록한 기체인지
if (detail?.createUserId != '') {
if (detail?.createUserId != user?.userId) {
props.setIsDisabled(true);
}
}
+
+ //내가 속한 그룹의 기체인지
+ if (groupList) {
+ groupList?.filter(prev => {
+ if (prev?.myGroupAuthCd) {
+ if (prev?.groupId === detail?.groupId) {
+ props.setIsMyGroup(true);
+ }
+ }
+ });
+ } else if (joinList) {
+ props.setIsMyGroup(true);
+ }
}
} else {
props.setIsDisabled(false);
diff --git a/src/containers/basis/dron/BasisIdntfContainer.js b/src/containers/basis/dron/BasisIdntfContainer.js
index 1332edb..ab074f8 100644
--- a/src/containers/basis/dron/BasisIdntfContainer.js
+++ b/src/containers/basis/dron/BasisIdntfContainer.js
@@ -28,6 +28,9 @@ export const BasisIdntfContainer = props => {
const [idntDataList, setIdntfDataList] = useState([]);
+ //내가 등록한 식별장치 목록
+ const [myIdntf, setMyIdntf] = useState([]);
+
useEffect(() => {
if (props.id) {
handlerSearch();
@@ -40,7 +43,37 @@ export const BasisIdntfContainer = props => {
listIdntf?.map(item => {
newArr.push({ ...item });
});
- setIdntfDataList(listIdntf);
+
+ //내가 등록한 식별장치 목록
+ if (user?.authId === 'SUPER') {
+ // setIsDisabled(false);
+ } else if (user?.authId === 'ADMIN') {
+ if (props.isMyGroup) {
+ if (newArr.length > 0) {
+ newArr.filter(prev => {
+ if (user?.cstmrSno === prev.cstmrSno) {
+ prev.disabled = false;
+ setMyIdntf(r => [...r, prev]);
+ }
+ });
+ }
+ // else {
+ // console.log('식별장치 없음');
+ // }
+ }
+ } else if (user?.authId === 'USER') {
+ if (newArr.length > 0) {
+ newArr.filter(prev => {
+ if (user?.cstmrSno === prev.cstmrSno) {
+ prev.disabled = false;
+ setMyIdntf(r => [...r, prev]);
+ }
+ });
+ }
+ }
+
+ // setIdntfDataList(listIdntf);
+ setIdntfDataList(newArr);
}, [listIdntf]);
useEffect(() => {
@@ -54,7 +87,8 @@ export const BasisIdntfContainer = props => {
if (detail?.createUserId != user?.userId) {
props.setIsDisabled(true);
}
- } if (user.authId === 'SUPER') {
+ }
+ if (user.authId === 'SUPER') {
props.setIsDisabled(false);
}
}, [detail]);
@@ -197,7 +231,8 @@ export const BasisIdntfContainer = props => {
deletaData={deletaData}
handlerSave={handlerCreate}
handlerDelete={handlerDelete}
- isDisabled={props.isDisabled}
+ // isDisabled={props.isDisabled}
+ myIdntf={myIdntf}
/>
diff --git a/src/modules/basis/dron/models/basisDronModel.ts b/src/modules/basis/dron/models/basisDronModel.ts
index c211987..7dc5895 100644
--- a/src/modules/basis/dron/models/basisDronModel.ts
+++ b/src/modules/basis/dron/models/basisDronModel.ts
@@ -56,6 +56,7 @@ export interface IdntfData {
isSave: boolean;
updateDt: Date;
createDt: Date;
+ cstmrSno: number;
}
export const initDron = {