update code

This commit is contained in:
Nguyen Van Luan/(Nguyen Van Luan)/현장대리인/SK
2025-07-31 15:57:07 +09:00
parent e6e1703942
commit 3c249aa476
5 changed files with 72 additions and 232 deletions

View File

@ -474,7 +474,7 @@ a {
.header {
background-color: map-deep-get($config, #{$theme}, "header-backgroud");
border-color: #D3D6EA;
border-bottom: 1px solid map-deep-get($config, #{$theme}, "v-header-border");
}
.btn-header {
@ -488,6 +488,7 @@ a {
.menu-container {
height:calc(100vh - 60px);
overflow-y: auto;
border-right: 1px solid map-deep-get($config, #{$theme}, "v-sidebar-border") ;
}
}

View File

@ -172,6 +172,8 @@ $config: (
btn-header-select-bg: #1F1F1F,
btn-header-select-color:#FFFFFFD9,
subtitle-tab: #FFFFFFA6,
v-header-border: #424242,
v-sidebar-border: #303030,
),
light: (w-g5: $--color-gray_555,
g5-w: $--color-white,
@ -308,5 +310,7 @@ $config: (
btn-header-select-color:#1F1F1F,
btn-header-select-bg:#FFFFFF,
subtitle-tab: #000000A6,
v-header-border: #D9D9D9,
v-sidebar-border: #F0F0F0,
),
);

View File

@ -1,9 +1,9 @@
<template>
<div class="d-flex flex-column justify-center align-center">
<div class="d-flex flex-row justify-center align-center" style="gap: 12px">
<!--<v-btn icon tile :ripple="false" @click="btnActionsFnc('addLeftToRight')">
<v-icon>mdi-chevron-right</v-icon>
</v-btn> -->
<a-button @click="btnActionsFnc('addLeftToRight')" type="primary" ghost icon="right" >
<a-button @click="btnActionsFnc('addLeftToRight')" type="primary" ghost icon="up" >
</a-button>
<!--<v-btn
@ -15,7 +15,7 @@
>
<v-icon>mdi-chevron-left</v-icon>
</v-btn> -->
<a-button class="mt-2" @click="btnActionsFnc('removeRightToLeft')" type="primary" ghost icon="left">
<a-button @click="btnActionsFnc('removeRightToLeft')" type="primary" ghost icon="down">
</a-button>
</div>
</template>

View File

@ -127,13 +127,13 @@
<!-- 역할수정 -->
<template v-else-if="item.id == 'AsgnRoleByUser'">
<v-col :cols="3" class="h100">
<v-col :cols="12">
<v-card-title
class="pa-0 custom-subtitle-tab"
style="min-height:36px;"
>역할리스트</v-card-title
>
<div style="height:calc(100% - 36px)" class="py-5">
<div class="py-5">
<component
class="w100"
:is="loadGridTab2 ? 'Grid' : null"
@ -145,7 +145,7 @@
/>
</div>
</v-col>
<v-col :cols="1" class="d-flex justify-center">
<v-col :cols="12" class="d-flex justify-center">
<ActionButtons
:parentPrgmId="myPrgmId"
:leftGridName="gridName2"
@ -153,7 +153,7 @@
:btnActionsFnc="dualGridBtnActions"
/>
</v-col>
<v-col :cols="8" class="h100">
<v-col :cols="12" class="h100">
<div class="d-flex align-center justify-space-between">
<v-card-title class="pa-0 custom-subtitle-tab">
사용자 역할</v-card-title
@ -894,6 +894,7 @@ const defaultData = {
};
const myColumns = [
{ header: '사용자No', name: 'userNo', align: 'center', hidden: true },
{ header: '사용자명', name: 'userNm' },
{ header: '사용자ID', name: 'userLoginId' },
@ -909,6 +910,17 @@ const myColumns = [
];
const unAsgnRoleByUserColumns = [
{
header: '',
name: '',
align: 'center',
width: 50,
formatter: (props) => {
return `<label class="custom-radio">
<span class="radio-mark"></span>
</label>`;
}
},
{ header: '역할ID', name: 'roleId', align: 'center' },
{ header: '역할명', name: 'roleNm' },
{ header: '적용시작일', name: 'aplyStartDt', hidden: true },
@ -918,6 +930,7 @@ const unAsgnRoleByUserColumns = [
];
const asgnRoleByUserColumns = [
{ header: '역할ID', name: 'roleId', align: 'center' },
{ header: '역할명', name: 'roleNm' },
{
@ -931,7 +944,19 @@ const asgnRoleByUserColumns = [
{ header: 'comId', name: 'comId', hidden: true },
];
const asgnMenuByUserColumns = [{ header: '메뉴명', name: 'menuNm' }];
const asgnMenuByUserColumns = [
{
header: '',
name: '',
align: 'center',
width: 50,
formatter: (props) => {
return `<label class="custom-radio">
<span class="radio-mark"></span>
</label>`;
}
},
{ header: '메뉴명', name: 'menuNm' }];
const myDetail = blocCdList => {
return [

View File

@ -3,8 +3,8 @@
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
<v-row align="end" no-gutters>
<v-col :cols="2.5">
<v-row align="center" no-gutters>
<v-col :cols="3">
<component
:is="'selectCodeList'"
:parentPrgmId="myPrgmId"
@ -12,11 +12,9 @@
dataKey="searchLocKind"
:sendParam="{ commGrpCd: 'EM_LOC_KIND', useFg: '1' }"
:addAll="true"
:iconShow="true"
customClass="select-large"
/>
</v-col>
<v-col :cols="2.5">
<v-col :cols="3">
<component
:is="'selectCodeList'"
:parentPrgmId="myPrgmId"
@ -24,12 +22,10 @@
dataKey="searchEccKind"
:sendParam="{ commGrpCd: 'EM_ECC_KIND', useFg: '1' }"
:addAll="true"
:iconShow="true"
customClass="select-large"
/>
</v-col>
<!-- <v-col :cols="3">
사업장
<v-col :cols="3">
<!-- 사업장 -->
<div style="visibility:hidden">
<component
:is="'SelectBlocMstr'"
@ -37,8 +33,13 @@
:parentPrgmId="myPrgmId"
/>
</div>
</v-col> -->
<v-col :cols="2.5">
</v-col>
<v-col :cols="3" class="text-right">
<BtnSearch @click="search" />
</v-col>
</v-row>
<v-row align="center" no-gutters>
<v-col :cols="3">
<component
:is="'selectCodeList'"
:parentPrgmId="myPrgmId"
@ -46,23 +47,18 @@
dataKey="useFg"
:sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }"
:addAll="true"
:iconShow="true"
customClass="select-large"
/>
</v-col>
<v-col :cols="2.5">
<v-col :cols="6">
<InputText
:parentPrgmId="myPrgmId"
label="공정명"
valueNm="eccNm"
:labelCols="12"
:textCols="12"
:labelCols="2"
:textCols="9"
:searchOption="true"
:iconShow="true"
customClass="input-large"
/>
</v-col>
<BtnSearch @click="search" size="large" />
</v-row>
</v-card>
</v-col>
@ -79,17 +75,16 @@
:btnActionsFnc="btnActions"
/>
</div>
<div class="px-5" style="min-height:calc(100% - 76px)">
<div ref="gridParent" class="w100 h100 pb-2">
<div class="px-5" style="height:calc(100% - 76px)">
<div ref="gridParent" class="w100 h100">
<component
:ref="gridName"
:is="loadGrid ? 'Grid' : null"
:is="loadGrid ? 'Grid' : null"
:gridName="gridName"
:parentPrgmId="myPrgmId"
@getRowsData="getRowData"
@sendSelectedRowStatInfo="getSelectedRowStatInfo"
:selectedRowDataWatchFlag="true"
:dataPath="dataPathMock"
/>
</div>
</div>
@ -196,15 +191,13 @@ export default {
gridName: 'rowGrid',
loadGrid: false,
tab: null,
selectedRowKey: null,
// rowSelectionStatus: {},
dataPathMock : { },
items: [
{ name: '공정 정보', id: 'eccBaseInfoTab', disabledFlag: false },
{ name: '공정 추가 정보', id: 'eccAddInfoTab', disabledFlag: false },
{ name: '공정 연결 정보', id: 'eccIaoTab', disabledFlag: false },
],
detailList: myDetail,
loadGrid: false,
};
},
computed: {
@ -320,23 +313,11 @@ export default {
},
mounted() {
this.init();
this.$nextTick(() => {
// const checkbox = document.getElementById('headerCheckbox');
// if (checkbox) {
// checkbox.addEventListener('change', this.handleHeaderCheckboxChange);
// }
});
},
beforeDestroy() {
this.chkOpenTabList({ key: 'destroy', prgmId: myPrgmId });
},
methods: {
handleHeaderCheckboxChange(event) {
const checked = event.target.checked;
this.dataPathMock.rowGrid.data.forEach(row => {
row.selected = checked;
});},
...mapMutations({
setPageData: 'setPageData',
}),
@ -351,41 +332,7 @@ export default {
blocId: this.userInfo.blocId,
});
},
gridInitTest() {
const rowGrid = {
column: [
{
header: '',
name: '',
align: 'center',
width: 50,
formatter: (props) => {
return `<label class="custom-radio">
<span class="radio-mark"></span>
</label>`;
}
},
{ header: '공정 정보', name: 'eccNm', align: 'left' },
{ header: '현재 상태', name: 'status', align: 'center' },
{ header: '공정 유형', name: 'eccKind', align: 'left' },
{ header: '사용 여부', name: 'useFg', align: 'center' },
],
data: dataMockExample,
defaultRow: dataMockExample,
option: {
...gridOptions,
},
}
this.dataPathMock = {rowGrid};
this.$nextTick(() => {
this.loadGrid = true;
});
},
gridInit() {
// Test
this.gridInitTest(); return;
// End test
const gridHeight = this.$refs.gridParent.offsetHeight - 30;
const gridWidth = this.$refs.gridParent.offsetWidth;
@ -404,6 +351,17 @@ export default {
const _this = this;
const myColumns = [
{
header: '',
name: '',
align: 'center',
width: 50,
formatter: (props) => {
return `<label class="custom-radio">
<span class="radio-mark"></span>
</label>`;
}
},
{ header: '회사 ID', name: 'comId', hidden: true },
{
header: '공정 명',
@ -598,16 +556,6 @@ export default {
});
},
async getRowData(data) {
//Progess and fake radio
// const rowKey = data.rowKey;
// this.selectedRowKey = rowKey;
// Object.keys(this.rowSelectionStatus).forEach(key => {
// this.$set(this.rowSelectionStatus, key, false);
// });
// this.$set(this.rowSelectionStatus, rowKey, true);
this.setEccAddInfo(data);
this.setEccIao(data);
this.setGridSelectData({
@ -623,9 +571,6 @@ export default {
rowGridSelectKey: data.rowKey,
rowGridSelectData: Object.assign({}, data),
});
//fake radio need recheck
// this.$refs[this.gridName]?.repaint?.();
},
async setEccAddInfo(data) {
this.setPageData({
@ -1070,142 +1015,7 @@ const myDetail = [
value: { '1': true, '0': false },
},
];
const dataMockExample = [
{
eccId: 'ECC000001',
eccNm: 'EGP_HVAC_LT_CH001',
status: '운영중',
eccKind: '공정',
useFg: '1',
_children: [
{
eccId: 'ECC000002',
eccNm: 'B01',
status: '대기',
eccKind: '공정',
useFg: '1',
_children: [
{
eccId: 'ECC000005',
eccNm: 'B01-1',
status: '운영중',
eccKind: '공정',
useFg: '1',
_children: [
{
eccId: 'ECC000009',
eccNm: 'B01-1-1',
status: '운영중',
eccKind: '공정',
useFg: '1'
},
{
eccId: 'ECC0000010',
eccNm: 'B01-1-2',
status: '운영중',
eccKind: '공정',
useFg: '1'
},
{
eccId: 'ECC0000011',
eccNm: 'B01-1-3',
status: '운영중',
eccKind: '공정',
useFg: '1'
},
]
},
{
eccId: 'ECC000006',
eccNm: 'B01-2',
status: '점검중',
eccKind: '공정',
useFg: '0',
_children: [
{
eccId: 'ECC0000013',
eccNm: 'B01-2-1',
status: '운영중',
eccKind: '공정',
useFg: '1'
},
{
eccId: 'ECC0000014',
eccNm: 'B01-1-2',
status: '운영중',
eccKind: '공정',
useFg: '1'
},
{
eccId: 'ECC0000015',
eccNm: 'B01-1-3',
status: '운영중',
eccKind: '공정',
useFg: '1'
},
]
},
{
eccId: 'ECC000007',
eccNm: 'B01-3',
status: '운영중',
eccKind: '공정',
useFg: '1',
_children: [
{
eccId: 'ECC000009',
eccNm: 'B01-3-1',
status: '운영중',
eccKind: '공정',
useFg: '1'
},
{
eccId: 'ECC0000010',
eccNm: 'B01-3-2',
status: '운영중',
eccKind: '공정',
useFg: '1'
},
{
eccId: 'ECC0000011',
eccNm: 'B01-3-3',
status: '운영중',
eccKind: '공정',
useFg: '1'
},
]
},
],
},
{
eccId: 'ECC000003',
eccNm: 'B02',
status: '운영중',
eccKind: '공정',
useFg: '1',
},
{
eccId: 'ECC000004',
eccNm: 'B03',
status: '점검중',
eccKind: '공정',
useFg: '0',
},
],
},
];
const gridOptions = {
treeColumnOptions: {
name: 'eccNm', // Showing tree table
useIcon: false, // Not using icon
indentWidth: 10,// spacing when showing children
},
header: {
height: 40,
},
rowHeight: 35,
showCheckbox: false,
};
</script>
<style lang="scss">
@import '@/assets/scss/common.scss';
</style>