Browse Source

식별장치 - 사용자의 기체가 아니더라도 식별장치 등록 가능

ctrlDraw
junh_eee(이준희) 2 years ago
parent
commit
ec1b3dfcfe
  1. 10
      src/components/basis/dron/BasisDronTab.js
  2. 8
      src/components/basis/dron/BasisIdntform.js
  3. 15
      src/containers/basis/dron/BasisDronDetailContainer.js
  4. 41
      src/containers/basis/dron/BasisIdntfContainer.js
  5. 1
      src/modules/basis/dron/models/basisDronModel.ts

10
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}
/>
</TabPane>
<TabPane tabId='2'>
<BasisIdntfContainer
id={props.id}
isDisabled={isDisabled}
setIsDisabled={setIsDisabled}
isMyGroup={isMyGroup}
setIsMyGroup={setIsMyGroup}
/>
</TabPane>
</TabContent>

8
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 })}
>
<X size={14} className='mr-50' />
<span>삭제</span>
@ -173,7 +175,7 @@ export const BasisIdntfForm = props => {
color='primary'
size='sm'
onClick={props.addData}
disabled={props.isDisabled}
// disabled={props.isDisabled}
>
+ 추가
</Button.Ripple>
@ -182,7 +184,7 @@ export const BasisIdntfForm = props => {
color='primary'
size='sm'
onClick={props.handlerSave}
disabled={props.isDisabled}
// disabled={props.isDisabled}
>
저장
</Button.Ripple>

15
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);

41
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}
/>
<ErrorModal modal={modal} setModal={setModal} />
</Col>

1
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 = {

Loading…
Cancel
Save