Compare commits

...

28 Commits

Author SHA1 Message Date
ecfbeb3afa fixbug 2025-08-08 19:22:33 +09:00
dev
1ece377457 Merge pull request 'update code' (#51) from dev-luannv24-screen36-32-31-26-17-15 into dev
Reviewed-on: #51
2025-08-08 11:35:28 +09:00
335f93e6cf resovel conflix 2025-08-08 11:30:10 +09:00
dev
9979f32f8c Merge pull request 'dev-trungvq7-0729' (#50) from dev-trungvq7-0729 into dev
Reviewed-on: #50
2025-08-08 10:25:21 +09:00
71394443ac update code 2025-08-07 19:04:13 +09:00
dev
d8c5bd5323 Merge branch 'dev' of http://218.237.212.51:30003/gitadmin/sk_fems_ui into dev-trungvq7-0729 2025-08-07 18:54:21 +09:00
dev
c9bc9d3186 Merge 0729 2025-08-07 18:54:14 +09:00
dev
a06d2e553d Merge pull request 'dev-dungtv-0807' (#49) from dev-dungtv-0807 into dev
Reviewed-on: #49
2025-08-07 18:43:05 +09:00
dev
6a894df6ec Merge pull request 'add dark mode for editor' (#47) from dev-manhph1-figbug into dev
Reviewed-on: #47
2025-08-07 18:15:02 +09:00
dev
e194557753 Merge pull request 'dev-dungtv-0807' (#48) from dev-dungtv-0807 into dev
Reviewed-on: #48
2025-08-07 17:46:32 +09:00
d0572dc07c fixbug grid 2025-08-07 15:26:53 +07:00
ea4910db79 fix bugs screen 10, 20 2025-08-07 15:18:06 +07:00
c636db83bd fix bug screen 8 bug-32 2025-08-07 13:57:24 +07:00
6871d6034d fix bugs screen 20.1~20.4 2025-08-07 13:50:37 +07:00
dev
1352223416 Merge pull request 'Fix checkboxes in form' (#46) from dev-nghiantt-fix-bugs into dev
Reviewed-on: #46
2025-08-07 15:42:38 +09:00
439079eee8 Fix checkboxes in form 2025-08-07 12:49:14 +09:00
dev
93dd46c225 Merge pull request 'fixbugs screen 10' (#45) from dev-dungtv-0807 into dev
Reviewed-on: #45
2025-08-07 12:45:25 +09:00
537a16fbc7 fixbugs screen 10 2025-08-07 10:40:23 +07:00
dev
6f6f19349f Merge pull request 'fix bug 07/08/25' (#44) from dev-manhph1-figbug into dev
Reviewed-on: #44
2025-08-07 12:23:53 +09:00
dev
19a634e3a5 Merge pull request 'dev-luannv24-s2s17s15-fixbug' (#41) from dev-luannv24-s2s17s15-fixbug into dev
Reviewed-on: #41
2025-08-07 11:42:33 +09:00
dev
e4331ad79f Merge pull request 'fix bug screen 10' (#42) from dev-dungtv-0807 into dev
Reviewed-on: #42
2025-08-07 11:37:15 +09:00
8c7a8d5b29 resolve commit code 2025-08-07 09:36:18 +07:00
140f73814f update 2025-08-07 11:29:24 +09:00
b53ce8bd83 refactor code 2025-08-07 11:27:51 +09:00
8bb0d56a80 Merge branch 'dev' of http://218.237.212.51:30003/gitadmin/sk_fems_ui into dev-luannv24-s2s17s15-fixbug 2025-08-07 11:23:58 +09:00
f80bfc5c71 fix bug screen 10 2025-08-07 08:37:59 +07:00
56607d0770 update code 2025-08-06 19:08:06 +09:00
2cf00c0880 update code fixbug 2025-08-06 19:02:19 +09:00
37 changed files with 290 additions and 170 deletions

View File

@ -486,6 +486,10 @@ a {
border-bottom: 1px solid map-deep-get($config, #{$theme}, "v-header-border");
}
.custom-chart{
border: 1px solid map-deep-get($config, #{$theme}, "v-chart-border");
}
.btn-header {
background-color: map-deep-get($config, #{$theme}, "v-btn-header-background");
border:1px solid map-deep-get($config, #{$theme}, "v-btn-header-border");

View File

@ -66,6 +66,12 @@
}
}
.custom-action-btn{
height: 24px;
width: 24px;
font-size: 12px;
}
.v-btn {
background-color: map-deep-get($config,
#{$theme},
@ -131,6 +137,12 @@
color:map-deep-get($config, #{$theme}, "ant-btn-default-color");
}
&.ant-btn-popup-default {
background:map-deep-get($config, #{$theme}, "ant-btn-popup-bg");
color:map-deep-get($config, #{$theme}, "ant-btn-popup-color");
border: 1px solid map-deep-get($config, #{$theme}, "ant-btn-popup-border");
}
&.ant-btn-danger {
&.ant-btn-background-ghost {
color:map-deep-get($config, #{$theme}, "ant-btn-danger-color");

View File

@ -50,6 +50,7 @@
}
}
.v-input__custom {
.v-input__slot {
@ -149,6 +150,11 @@
.v-input {
margin-top: 0 !important;
padding-top: 0 !important;
&.v-text-field--outlined {
fieldset {
top: -4px
}
}
}
.v-input__append-inner {
@ -241,9 +247,16 @@ input[type="checkbox"] {
.v-application.#{$theme}-mode {
.ant-checkbox-wrapper {
.ant-checkbox {
.ant-checkbox-inner {
background-color: map-deep-get($config, #{$theme}, "ant-checkbox-bg"); // background for unchecked checkbox
border-color: map-deep-get($config, #{$theme}, "ant-checkbox-border");
}
}
.ant-checkbox-checked {
.ant-checkbox-inner {
background: map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
background: map-deep-get($config, #{$theme}, "ant-btn-primary-bg"); // background for checked checkbox
border-color:map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
color:map-deep-get($config, #{$theme}, "ant-btn-primary-color");
@ -442,7 +455,7 @@ input[type="checkbox"] {
transform: none;
&.mdi:before {
font-size: 16px;
font-size: 20px;
}
@if $theme ==dark {

View File

@ -19,6 +19,13 @@
border-color: currentColor;
// border-color: map-deep-get($config, #{$theme}, "tui-datepicker-border-color");
&:hover {
border-color: map-deep-get($config, #{$theme}, "v-input-fieldset-hover-color" ) !important;
}
&:has(.v-input--is-focused){
border-width: 2px;
}
&.datepicker-large {
height: 40px;
}

View File

@ -110,11 +110,11 @@ $config: (
tui-grid-border-horziontal-color: #212224,
tui-grid-border-vertical-color: #FFFFFF0F,
tui-grid-cell-backgroundColor: #212224,
tui-grid-cell-color: #FFFFFFA6,
tui-grid-cell-insert-color: #13636c,
tui-grid-cell-color: #FFFFFFD9,
tui-grid-cell-insert-color: #2B2111,
tui-grid-cell-selected-color: #0A224F,
tui-grid-cell-modify-color: #13636c,
tui-grid-cell-removed-color: #f6637b,
tui-grid-cell-removed-color: #2A1215,
tui-grid-cell-disabled-color: rgb(170, 170, 170),
tui-grid-cell-hover-backgroundColor: #2d4571,
v-tabs-items-border-color: #FFFFFF0F,
@ -175,7 +175,13 @@ $config: (
btn-header-select-color:#FFFFFFD9,
subtitle-tab: #FFFFFFA6,
v-header-border: #424242,
v-chart-border: #424242,
v-sidebar-border: #303030,
ant-checkbox-bg: #212224,
ant-checkbox-border: #424242,
ant-btn-popup-bg: #212224,
ant-btn-popup-color: #FFFFFFD9,
ant-btn-popup-border: #424242,
),
light: (w-g5: $--color-gray_555,
g5-w: $--color-white,
@ -314,6 +320,12 @@ $config: (
btn-header-select-bg:#FFFFFF,
subtitle-tab: #000000A6,
v-header-border: #D9D9D9,
v-chart-border: #D9D9D9,
v-sidebar-border: #F0F0F0,
ant-checkbox-bg: #FFFFFF,
ant-checkbox-border: #D9D9D9,
ant-btn-popup-bg: #FFFFFF,
ant-btn-popup-color: #000000E0,
ant-btn-popup-border: #D9D9D9,
),
);

View File

@ -61,7 +61,8 @@ export default {
isDarkMode: 'isDarkMode',
chartOption(state) {
var dark_Col = [
'#01AE6A',
'#79B100',
// '#01AE6A',
'#FFB046',
'#F6637B',
'#944FE9',
@ -194,7 +195,8 @@ export default {
var lightCol_dashReadplcStatus = ['#3cc380', '#ffb13b', '#f98694'];
var light_Col = [
'#3CC380',
'#3BAD43',
// '#3CC380',
'#FFB13B',
'#F98694',
'#CF74E5',

View File

@ -1,14 +1,12 @@
<template>
<v-row class="search-box" align="center" no-gutters>
<v-col v-if="label" :cols="labelCols">
<v-col v-if="label" :cols="labelCols" >
<label for="" class="search-box-label">
<v-icon v-if="iconShow" small :class="['mr-1', required ? 'icon-orange' : 'icon-blue']">$icoBulletPoint</v-icon>
{{ label }}
</label>
</v-col>
<v-col :cols="label ? textCols : ''">
<a-checkbox v-model="chkValue" :disabled="disabledFlag" :readonly="readonly || false"
:required="required || false" @change="modifyValue">
</a-checkbox>
@ -63,6 +61,10 @@ export default {
require: false,
default: true
},
labelClass: {
type: String,
require: false,
},
},
data() {
return {

View File

@ -426,7 +426,7 @@ export default {
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/datepicker.scss";
// @import "@/assets/scss/datepicker.scss";
::v-deep {
.tui-timepicker-row {

View File

@ -9,7 +9,6 @@
@dblclick="dblClick"
@mouseover="mouseoverEvent"
@mouseout="mouseoutEvent"
@mousedown="onMousedown"
@focusChange="focusChangeEvt"
/>
</template>
@ -268,13 +267,7 @@ export default {
}
});
},
onMousedown(evt) {
this.handleSelectedRow(evt);
},
focusChangeEvt(e) {
this.handleSelectedRow(e);
},
handleSelectedRow(e) {
// console.log('focusChangeEvt1...')
if (this.preventFocusChangeEvent(e)) {
// console.log('prevent focusChangeEvt')
@ -297,7 +290,6 @@ export default {
startEditing(e) {
// console.log('startEditing1...')
if (this.preventFocusChangeEvent(e)) {
// console.log('prevent startEditing')
return;
}
@ -309,7 +301,6 @@ export default {
// console.log('startEditing2...')
if (this.editorGrid && e.rowKey >= 0) {
this.editorStartKey = e.rowKey;
// console.log("E::", this.gridInstance.invoke("getRow", e.rowKey));
this.gridInstance.invoke('startEditing', e.rowKey, e.columnName);
this.$emit(
'getRowsData',

View File

@ -2,9 +2,9 @@
<div class="d-flex justify-center align-center"
:class="directionBtn === 'vertically'?'flex-row':'flex-column'"
style="gap: 12px">
<a-button @click="btnActionsFnc('removeRightToLeft')" type="primary" ghost :icon="icons.remove" >
<a-button @click="btnActionsFnc('removeRightToLeft')" type="primary" ghost :icon="icons.remove" class="custom-action-btn">
</a-button>
<a-button @click="btnActionsFnc('addLeftToRight')" type="primary" ghost :icon="icons.add">
<a-button @click="btnActionsFnc('addLeftToRight')" type="primary" ghost :icon="icons.add" class="custom-action-btn">
</a-button>
</div>
</template>

View File

@ -10,7 +10,7 @@ export default {
size: {
type: String,
require: false,
default: "middle", // small, middle, large
default: "default", // small, default, large
}
},
methods: {

View File

@ -12,15 +12,26 @@
</label>
</v-col>
<v-col :cols="item.label ? 7 : ''" >
<v-checkbox
<!-- <v-checkbox
v-model="chkValue"
:disabled="disabledFlag"
:readonly="item.readonly || false"
:required="item.required || false"
:false-value="false"
:color="isDarkMode ? '#fff' : '#1890ff'"
@change="modifyValue"
></v-checkbox>
:color="isDarkMode ? '#1668DC' : '#1890ff'"
@change="modifyValue"
class="small-checkbox"
></v-checkbox> -->
<a-checkbox
v-model="chkValue"
:disabled="disabledFlag"
:readonly="item.readonly || false"
:required="item.required || false"
:false-value="false"
:color="isDarkMode ? '#1668DC' : '#1890ff'"
@change="modifyValue"
>
</a-checkbox>
</v-col>
</v-row>
</template>
@ -141,7 +152,7 @@ export default {
modifyValue(e) {
const dt = {
columnName: this.item.valueNm,
value: e,
value: e.target.checked,
};
this.$emit('gridEditingFinish', dt);
},

View File

@ -75,8 +75,8 @@
<v-card-actions class="pb-4">
<v-spacer></v-spacer>
<!-- <v-btn color="primary" dark @click="setUpdate()">확인</v-btn> -->
<div class="pr-3">
<a-button @click="close()" class="btn-default">삭제</a-button>
<div class="d-flex" style="gap: 8px">
<a-button @click="close()" class="ant-btn-popup-default">닫기</a-button>
<a-button type="primary" @click="setUpdate()" class="v-btn-add-text">
확인
</a-button>

View File

@ -37,6 +37,7 @@
:itemList="selectValueList01"
:label="'대상월'"
@update:propsValue="selectValue01 = $event"
customClass="select-large"
/>
</v-col>
<v-col :cols="5.5" class="mr-2">
@ -49,9 +50,10 @@
:itemList="selectValueList02"
:label="'전년대비절감율'"
@update:propsValue="selectValue02 = $event"
customClass="select-large"
/>
</v-col>
<a-button color="primary" dark @click="search()" icon="clock-circle" >
<a-button class="ant-btn-popup-default" color="primary" dark @click="search()" icon="check-circle" size="large">
<!-- <template #icon>
<ClockCircleOutlined />
</template> -->
@ -65,13 +67,10 @@
<!-- <div id="chartParent" ref="chartParent" style="height: 100px"> -->
<div :style="'height: calc(50vh)'">
<div class="d-flex align-center justify-space-between pa-4" style="height: 10%">
<v-card-title class="pa-0 custom-title-4">사용량 계획</v-card-title>
</div>
<!-- <div id="chartParent" ref="chartParent" :style="'height: 80%'"> -->
<div id="chartParent" ref="chartParent" style="height: 70%">
<div id="chartParent" ref="chartParent" style="height: 100%" class="px-6">
<component
class="w100 h100"
class="w100 h100 py-7 custom-chart"
:is="loadChart ? 'Chart' : null"
:parentPrgmId="parentPrgmId"
:modalId="modalId"
@ -130,9 +129,8 @@
/>
</div> -->
<v-divider></v-divider>
<v-card-actions class="pa-5 d-flex align-center justify-end">
<a-button color="primary" type="default" class="mr-2" dark @click="closePop()">취소</a-button>
<a-button color="primary" class="mr-2 ant-btn-popup-default" dark @click="closePop()">취소</a-button>
<a-button color="primary" type="primary" dark @click="setUpdate()">확정</a-button>
</v-card-actions>
</v-card>
@ -533,7 +531,7 @@ export default {
seriesData = data.map(item => ({
name: item.gubun == '2PLAN' ? '계획' : '전년실적',
type: item.gubun == '2PLAN' ? 'line' : 'bar',
data: targetMonthList.map(obj => item[obj] || null)
data: targetMonthList.map(obj => item[obj] || null),
// data: targetMonthList.map(obj => item[obj] || 0)
}));
this.nowSeriesData = seriesData;
@ -558,7 +556,6 @@ export default {
series: seriesData,
tooltip: tooltipData
};
// console.log('option', option);
await this.$nextTick(() => {
});
@ -601,7 +598,6 @@ export default {
sData2 = nowSeriesData.filter(item => {
return item.name == '계획';
})[0]['data'];
// console.log('sData1', sData);
if(targetMonth.includes('qty')){
targetMonth = parseInt(targetMonth.slice(-2));
}
@ -610,13 +606,11 @@ export default {
sData2[i] = sData[i] * targetRatio;
}
}
// console.log('sData2', sData2);
seriesData = nowSeriesData.map(item => ({
...item,
data: item.name == '계획' ? sData2 : item.data
}));
// console.log('seriesData', seriesData);
await this.$nextTick(() => {
});
@ -643,4 +637,4 @@ let modifyEnrgUsePlanModalDataKey =
modifyEnrgUsePlanChart: Utility.defaultChartOption(true)
};
// 전력량 요금(원/kWh)
</script>
</script>

View File

@ -10,7 +10,10 @@
<v-col :cols="textCols">
<v-text-field readonly v-model="selectValue" append-icon="" :class="['v-input__custom', customClass]"
@click="dialogOpenCloseEvent(dialog)" outlined :hide-details="true" :required="required || false"
:disabled="disabled || false"><template v-slot:append>
:disabled="disabled || false"
:placeholder="placeholder"
>
<template v-slot:append>
<!-- Custom SVG icon -->
<v-icon>$icoSearch</v-icon>
</template>

View File

@ -81,6 +81,10 @@ export default {
type: String,
require: false,
},
required: {
type: Boolean,
default: false
},
},
data() {
return {};

View File

@ -21,6 +21,7 @@
outlined
append-icon=""
:class="['v-select__custom', customClass]"
:menu-props="{ top: false, offsetY: true }"
><template v-slot:append>
<v-icon>$icoChevronDown</v-icon>
</template></v-select>

View File

@ -1,7 +1,10 @@
<template>
<div>
<div class="d-flex justify-space-between align-center" style="min-height: 80px;">
<span class="txt custom-subtitle-tab">Data Set TAG 연결 정보</span>
<div class="d-flex justify-space-between align-center pb-5" >
<!-- <span class="txt custom-title-4">Data Set TAG 연결 정보</span> -->
<v-card-title class="pa-0">
Data Set TAG 연결 정보
</v-card-title>
<Buttons :parentPrgmId="parentPrgmId" :bindingData="gridName" :detailList="detailDataSetTagList"
:btnActionsFnc="btnActions" />
</div>
@ -14,22 +17,20 @@
@gridEditingFinish="gridEditingFinish" />
</div>
<div ref="formParent" style="min-height: 100px;" class="w100 h100">
<v-row ref="contents" class="w100">
<v-col :cols="6">
<div ref="formParent" class="h100">
<v-row align="end" ref="contents" class="">
<v-col>
<component :is="'Datepicker'" :parentPrgmId="parentPrgmId" :label="'검색기간'" :labelCols="12" :textCols="12" />
</v-col>
<v-col :cols="4">
<v-col >
<component :is="'selectCodeList'" :parentPrgmId="parentPrgmId" :label="'주기'" dataKey="mdlDataTerm"
:sendParam="{ commGrpCd: 'MDL_DATA_TERM', useFg: '1' }" :addAll="false" :labelCols="12" :textCols="12" :iconShow="true" />
</v-col>
<v-col class="text-right align-self-end">
<a-button @click="jamoviProcClickEvent('view1')" type="primary" :ripple="false" class="mr-1">데이터 분석</a-button>
</v-row>
<v-row align="center" no-gutters class="searchFilter mt-2">
<v-col class="d-flex justify-end">
<a-button @click="jamoviProcClickEvent('view1')" type="primary" :ripple="false" class="mb-1">데이터 분석</a-button>
</v-col>
<!-- <v-card class="searchFilter w100">
<v-row align="center" no-gutters>
</v-row>
</v-card> -->
</v-row>
</div>
</div>
@ -156,7 +157,7 @@ export default {
{
header: '모델 Data 구분',
name: 'mdlDataTypeCd',
align: 'center',
align: 'left',
width: 120,
formatter({ value }) {
var retVal = '';
@ -173,7 +174,7 @@ export default {
{
header: '사용여부',
name: 'useFg',
align: 'center',
align: 'left',
width: 100,
formatter({ value }) {
value = value === true ? '1' : '0';
@ -189,7 +190,7 @@ export default {
// }
// }
},
{ header: '비고', name: 'rmrk', align: 'center' },
{ header: '비고', name: 'rmrk', align: 'left' },
];
this.setGridColumn({

View File

@ -11,7 +11,7 @@
:btnActionsFnc="btnActions"
/>
</div>
<div ref="gridParent" style="height: calc(100vh - 760px);">
<div ref="gridParent" style="height: calc(100vh - 700px);">
<component
:ref="gridName"
:is="loadGrid ? 'Grid' : null"
@ -21,7 +21,7 @@
:innerTabGridInfo="innerTabGridInfo"
/>
</div>
<div>
<div style="height: 60vh;" class="mt-5">
<component
:is="'Form'"
:bindingData="gridName"
@ -503,3 +503,10 @@ const myDetail = [
},
];
</script>
<style lang="scss" scoped>
::v-deep{
.tui-grid-layer-state{
top: 40px !important;
}
}
</style>

View File

@ -1,7 +1,9 @@
<template>
<div>
<div class="d-flex justify-space-between align-center my-5" >
<span class="txt custom-subtitle-tab">설비 추가 정보</span>
<div class="d-flex justify-space-between align-center mb-5" >
<v-card-title class="txt custom-title-4 pa-0">
설비 추가 정보
</v-card-title>
<Buttons
:parentPrgmId="parentPrgmId"
:bindingData="gridName"
@ -120,10 +122,10 @@ export default {
bodyHeight: gridHeight,
minBodyHeight: gridHeight,
header: {
height: 28,
height: 38,
},
rowHeight: 29,
minRowHeight: 29,
// rowHeight: 39,
// minRowHeight: 29,
selectionUnit: 'row',
editingEvent: 'click',
};
@ -263,11 +265,12 @@ export default {
}
return retVal;
},
minWidth: 230,
},
{
header: 'Data 구분',
name: 'addInfoDataKind',
align: 'center',
align: 'left',
formatter({ value }) {
let retVal = '';
const newValue = addInfoDataKindList.filter(
@ -278,6 +281,7 @@ export default {
}
return retVal;
},
minWidth: 330,
},
{
header: '숫자 값',
@ -308,6 +312,7 @@ export default {
// console.log('test :', test);
return data.row.addInfoDataKind;
},
minWidth: 330,
},
//{ header: "추가 정보 값", name: "addInfoVal", align: "center" , editor: "text",
//},
@ -414,3 +419,4 @@ const dataPathDataExample = getPathDataExample({
type: '사용', note: '-'
});
</script>
<style lang="scss" scoped> </style>

View File

@ -1,7 +1,10 @@
<template>
<div>
<div class="d-flex justify-space-between align-center my-5" >
<span class="txt custom-subtitle-tab">설비 상수 정보</span>
<div class="d-flex justify-space-between align-center mb-5" >
<!-- <span class="txt custom-subtitle-tab">설비 상수 정보</span> -->
<v-card-title class="txt custom-title-4 pa-0">
설비 상수 정보
</v-card-title>
<Buttons :parentPrgmId="parentPrgmId" :bindingData="gridName" :btnActionsFnc="btnActions" />
</div>
<div ref="gridParent" style="min-height: calc(100vh - 800px);">
@ -160,11 +163,11 @@ export default {
{ header: '회사 ID', name: 'comId', hidden: true },
{ header: '설비 번호', name: 'eqpmId', hidden: true },
// { header: '대상항목', name: 'objId', align: 'center', hidden: true},
{ header: '물리량 ID', name: 'pysclQtyId', align: 'left' },
{ header: '물리량 명', name: 'pysclQtyNm', align: 'left' },
{ header: '물리량값', name: 'pysclQtyVal', align: 'left' },
{ header: '물리량 ID', name: 'pysclQtyId', align: 'left', minWidth: 230, },
{ header: '물리량 명', name: 'pysclQtyNm', align: 'left', minWidth: 230, },
{ header: '물리량값', name: 'pysclQtyVal', align: 'left', minWidth: 230, },
// { header: '대상항목', name: 'objNm', align: 'left'},
{ header: '대상항목', name: 'objId', align: 'left' },
{ header: '대상항목', name: 'objId', align: 'left', minWidth: 230, },
{
header: '에너지원 명',
name: 'ercId',
@ -386,7 +389,7 @@ const myEqpmConstDetail = [
required: true,
openMode: 'CONST',
cols: 6,
class: 'py-3 pl-4',
class: 'pt-3 pb-1 pl-4',
eqpmGrpDisableFlag: true,
// eqpmGrpId:'',
labelCols: 12,
@ -406,7 +409,7 @@ const myEqpmConstDetail = [
disabled: true,
readonly: true,
cols: 6,
class: 'py-3 pt-1 pl-4',
class: 'pb-3 pt-0 pl-4',
align: 'right',
// class: 'py-2 d-none',
labelCols: 12,
@ -441,3 +444,11 @@ const dataPathDataExample = getPathDataExample({
field2: '2222',
});
</script>
<style lang="scss" scoped>
::v-deep {
.tui-grid-layer-state {
top: 40px !important;
}
}
</style>

View File

@ -1,7 +1,10 @@
<template>
<div>
<div class="d-flex justify-space-between align-center my-5" >
<span class="txt custom-subtitle-tab">설비 입출력 정보</span>
<div class="d-flex justify-space-between align-center mb-5" >
<!-- <span class="txt custom-subtitle-tab">설비 입출력 정보</span> -->
<v-card-title class="txt custom-title-4 pa-0">
설비 입출력 정보
</v-card-title>
<Buttons
:parentPrgmId="parentPrgmId"
:bindingData="gridName"
@ -226,6 +229,7 @@ export default {
return retVal;
},
minWidth: 150,
},
{
header: '대상 유형',
@ -242,9 +246,10 @@ export default {
return retVal;
},
minWidth: 150,
},
{ header: '물리량', name: 'pysclQtyId', align: 'left', hidden: true },
{ header: '물리량', name: 'pysclQtyNm', align: 'left' },
{ header: '물리량', name: 'pysclQtyNm', align: 'left', minWidth: 150, },
{
header: '물리량값',
name: 'pysclQtyVal',
@ -269,6 +274,7 @@ export default {
);
return newValue[0].commCdNm;
},
minWidth: 100,
},
{ header: '분배율', name: 'distRt', align: 'right' },
{ header: '등록 사용자', name: 'regUserNo', hidden: true },

View File

@ -1,8 +1,8 @@
<template>
<div>
<div
class="d-flex justify-space-between align-center"
style="height: 80px;"
class="d-flex justify-space-between mb-3 pr-4"
style="height: 45px;"
>
<span class="txt custom-subtitle-tab">검침 대상 추가 정보</span>
<Buttons
@ -102,7 +102,7 @@ export default {
this.gridInit();
},
gridInit() {
const gridHeight = this.$refs.gridParent.offsetHeight - 30;
const gridHeight = this.$refs.gridParent.offsetHeight - 31;
const myOptions = {
columnOptions: {
@ -113,8 +113,8 @@ export default {
header: {
height: 28,
},
rowHeight: 29,
minRowHeight: 29,
rowHeight: 36,
minRowHeight: 36,
selectionUnit: 'row',
editingEvent: 'click',
};
@ -143,7 +143,6 @@ export default {
class CustomRenderer {
constructor(props) {
//const { min, max } = props.columnInfo.renderer.options;
//console.log('props: %o', props);
const el = document.createElement('input');
if (
@ -215,15 +214,12 @@ export default {
}
$(el).addClass('tui-grid-content-text');
}
// console.log('props: %o', props);
// console.log('el: %o', el);
this.el = el;
this.render(props);
}
change(ev) {
//console.log('props: %o', ev);
if (ev.target.checked) {
ev.target.value = 1;
} else {
@ -245,7 +241,6 @@ export default {
} else {
this.el.value = String(props.value);
}
//console.log('props: %o', props);
}
mounted() {
@ -275,7 +270,7 @@ export default {
{
header: 'Data 구분',
name: 'addInfoDataKind',
align: 'center',
align: 'left',
formatter({ value }) {
let retVal = '';
const newValue = addInfoDataKindList.filter(
@ -323,8 +318,6 @@ export default {
},
//{ header: "추가 정보 값", name: "addInfoVal", align: "center" , editor: "text",
// formatter({ value, row , column}) {
// console.log("addInfoVal row : ", row);
// console.log("addInfoVal state : ", column);
// if(row.addInfoDataKind === "NUM"){
// column.align = "right";
// }else{
@ -447,3 +440,15 @@ export default {
},
};
</script>
<style lang="scss" scoped >
::v-deep {
.tui-grid-layer-state {
top: 40px !important;
}
.tui-grid-cell-content-editor {
height: 36px !important;
}
}
</style>

View File

@ -1,5 +1,6 @@
<template>
<div class="l-layout">
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -205,12 +206,12 @@ export default {
const _this = this;
const myColumns = [
{ header: '역할ID', name: 'roleId', align: 'center' },
{ header: '역할ID', name: 'roleId', align: 'left' },
{ header: '역할명', name: 'roleNm' },
{
header: '사용여부',
name: 'useFg',
align: 'center',
align: 'left',
formatter({ value }) {
value = value === true ? '1' : '0';
const newValue = _this.pageData.useFgList.filter(
@ -431,7 +432,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
value: { '1': true, '0': false },
required: true,
},
@ -444,7 +445,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
},
// {
// type: "InputText",
@ -463,7 +464,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
placeholder: '시스템 자동입력',
},
{
@ -475,7 +476,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
placeholder: '시스템 자동입력',
},
{
@ -487,7 +488,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
placeholder: '시스템 자동입력',
},
{
@ -499,7 +500,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
placeholder: '시스템 자동입력',
},
];

View File

@ -1,6 +1,7 @@
<template>
<div class="l-layout">
<!-- 조회조견 -->
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -12,8 +13,8 @@
:parentPrgmId="myPrgmId"
:sendParam="{ comId }"
customClass="select-large"
labelCols="12"
textCols="12"
:labelCols="12"
:textCols="12"
/>
<!-- <component
:is="'selectCodeList'"
@ -922,7 +923,7 @@ const unAsgnRoleByUserColumns = [
</label>`;
}
},
{ header: '역할ID', name: 'roleId', align: 'center' },
{ header: '역할ID', name: 'roleId', align: 'left' },
{ header: '역할명', name: 'roleNm' },
{ header: '적용시작일', name: 'aplyStartDt', hidden: true },
{ header: '적용종료일', name: 'aplyEndDt', hidden: true },

View File

@ -1,6 +1,7 @@
<template>
<div class="l-layout">
<!-- 조회조견 -->
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -218,14 +219,14 @@ export default {
const _this = this;
const myColumns = [
{ header: 'No.', name: 'batchLogSeq', align: 'center', width: 100 },
{ header: '배치ID', name: 'batchId', align: 'center', width: 100 },
{ header: 'No.', name: 'batchLogSeq', align: 'right', width: 100 },
{ header: '배치ID', name: 'batchId', align: 'right', width: 100 },
{ header: '배치명', name: 'batchNm', align: 'left', width: 150 },
{ header: '실행 일자', name: 'execDt', align: 'center', width: 80 },
{ header: '실행 일자', name: 'execDt', align: 'right', width: 80 },
{
header: '실행 결과',
name: 'execRsltCd',
align: 'center',
align: 'left',
width: 80,
formatter({ value }) {
let retVal = '';
@ -242,7 +243,7 @@ export default {
{
header: '배치 시작 일시',
name: 'batchStrtDttm',
align: 'center',
align: 'left',
width: 160,
},
{

View File

@ -250,7 +250,6 @@ export default {
{
header: '요일',
name: 'dtNm',
align: 'center',
formatter({ value }) {
return value + '요일';
},
@ -258,7 +257,6 @@ export default {
{
header: '구분',
name: 'hldyFg',
align: 'center',
essential: true,
formatter({ value }) {
return value == 1 ? '휴일' : '평일';

View File

@ -1,5 +1,6 @@
<template>
<div class="l-layout">
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">

View File

@ -1,5 +1,6 @@
<template>
<div ref="mainDiv" class="l-layout">
<CommonPageTitle/>
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -12,7 +13,6 @@
dataKey="searchAddGrp"
:sendParam="{ useFg: '1' }"
:addAll="true"
:iconShow="true"
customClass="select-large"
/>
</v-col>
@ -22,7 +22,6 @@
label="추가 정보명"
valueNm="addInfoNm"
:searchOption="true"
:iconShow="true"
customClass="input-large"
/>
</v-col>
@ -289,7 +288,7 @@ export default {
header: 'Data 형식',
name: 'addInfoDataKind',
minWidth: 85,
align: 'center',
align: 'left',
formatter({ value }) {
let retVal = '';
const newValue = _this.pageData.addInfoDataKindList.filter(
@ -306,7 +305,7 @@ export default {
header: '사용여부',
name: 'useFg',
minWidth: 85,
align: 'center',
align: 'left',
formatter({ value }) {
let retVal = '';
value = value === true ? '1' : '0';
@ -336,8 +335,7 @@ export default {
this.search();
},
async search() {
//process
this.loadGrid = true;
this.loadGrid = false;
await this.getRowGridData();
await this.setPageData({
isFind: false,
@ -547,7 +545,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
required: true,
},
{
@ -559,7 +557,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
list: 'addInfoDataKindList',
itemText: 'commCdNm',
itemValue: 'commCd',
@ -574,7 +572,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2 d-flex align-items-center',
value: { '1': true, '0': false },
required: true,
},
@ -587,7 +585,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
placeholder: '시스템 자동입력',
},
{
@ -599,7 +597,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
placeholder: '시스템 자동입력',
},
{
@ -611,7 +609,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
placeholder: '시스템 자동입력',
},
{
@ -623,8 +621,11 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
placeholder: '시스템 자동입력',
},
];
</script>
<style lang="scss">
@import '@/assets/scss/common.scss';
</style>

View File

@ -840,7 +840,7 @@ export default {
{ header: "주의", name: "careStndVal", align: "right", width: 40 },
{ header: "경고", name: "warnStndVal", align: "right", width: 40 },
{ header: "가이드", name: "totVal", align: "right", width: 40 },
{ header: "알람 내용", name: "alrmMsg", align: "left" },
{ header: "알람 내용", name: "alrmMsg", align: "left", resizable: false },
{ header: "설비종류", name: "eqpmKindId", align: "left", hidden: true },
{ header: "설비종류", name: "eqpmKindNm", align: "left", hidden: true },
];

View File

@ -1,9 +1,10 @@
<template>
<div class="l-layout">
<CommonPageTitle/>
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
<v-row align="center" no-gutters>
<v-row align="end" no-gutters>
<v-col :cols="2.5">
<component
:is="'selectCodeList'"
@ -12,6 +13,7 @@
dataKey="searchLocKind"
:sendParam="{ commGrpCd: 'EM_LOC_KIND', useFg: '1' }"
:addAll="true"
customClass="select-large"
/>
</v-col>
<v-col :cols="2.5">
@ -22,6 +24,7 @@
dataKey="searchEccKind"
:sendParam="{ commGrpCd: 'EM_ECC_KIND', useFg: '1' }"
:addAll="true"
customClass="select-large"
/>
</v-col>
<!-- 사업장 -->
@ -42,6 +45,7 @@
dataKey="useFg"
:sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }"
:addAll="true"
customClass="select-large"
/>
</v-col>
<v-col :cols="2.5">
@ -49,9 +53,10 @@
:parentPrgmId="myPrgmId"
label="공정명"
valueNm="eccNm"
:labelCols="2"
:textCols="9"
:labelCols="12"
:textCols="12"
:searchOption="true"
customClass="input-large"
/>
</v-col>
<v-col class="text-right">
@ -59,7 +64,14 @@
</v-col>
</v-row>
<v-row align="center" no-gutters>
<div style="display: none">
<component
:is="'SelectBlocMstr'"
ref="SelectBlocMstr"
:parentPrgmId="myPrgmId"
customClass="select-large"
/>
</div>
</v-row>
</v-card>
</v-col>
@ -91,9 +103,9 @@
</div>
</v-card>
</v-col>
<v-col :cols="7" class="h100">
<v-col :cols="7" style="min-height:75vh;">
<v-card class="pb-5">
<v-card-title class="custom-title-4" style="min-height:76px;"
<v-card-title class="custom-title-4" style="min-height:65px;"
>공정 상세
</v-card-title>
<div class="px-5" style="height:calc(100% - 76px)">
@ -465,7 +477,7 @@ export default {
header: '사용 여부',
name: 'useFg',
width: gridWidth * 0.18,
align: 'center',
align: 'left',
formatter({ value }) {
value = value === true ? '1' : '0';
const newValue = _this.pageData.useFgList.filter(
@ -915,7 +927,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'pb-0 mb-0 pr-4',
class: 'pb-0 mb-0 pr-4 mt-2',
disableContent: true,
},
{
@ -926,7 +938,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 mb-0 pb-0 pl-4',
class: 'py-2 mb-0 pb-0 pl-4 mt-2',
list: 'locKindList',
itemText: 'commCdNm',
itemValue: 'commCd',
@ -938,13 +950,13 @@ const myDetail = [
valueNm: 'upEccNm',
readonly: true,
cols: 6,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
},
{
// 공백 처리
type: 'Label',
cols: 6,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
disabled: false,
labelCols: 12,
textCols: 12,
@ -958,7 +970,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
list: 'eccKindList',
itemText: 'commCdNm',
itemValue: 'commCd',
@ -973,7 +985,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
inputType: 'number',
iconShow: true
// onkeydown : "if(this.value > 100) this.value = 100;if(this.value < 0) this.value = 0;if(this.value == '') this.value = 0;"
@ -986,7 +998,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
list: 'blocIdList',
itemText: 'blocNm',
itemValue: 'blocId',
@ -1000,7 +1012,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
value: { '1': true, '0': false },
iconShow: true,
required: true,
@ -1011,7 +1023,7 @@ const myDetail = [
valueNm: 'eccFg',
disabled: false,
cols: 6,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
iconShow: true,
value: { '1': true, '0': false },
},

View File

@ -365,7 +365,7 @@ export default {
header: '사업장',
name: 'blocId',
width: 100,
align: 'center',
align: 'left',
hidden: true,
formatter({ value }) {
let retVal = '';

View File

@ -1,5 +1,6 @@
<template>
<div ref="mainDiv" class="l-layout">
<CommonPageTitle />
<v-row ref="searchFilter">
<v-col :cols="12">
<v-card class="searchFilter">
@ -49,7 +50,7 @@
<v-col :cols="5" class="h100">
<v-card class="pb-5">
<div class="d-flex align-center justify-space-between pa-5">
<v-card-title class="pa-0 custom-title-4-new"
<v-card-title class="pa-0 custom-title-4"
>검침 대상 정보</v-card-title
>
<Buttons
@ -74,7 +75,7 @@
</v-col>
<v-col :cols="7" class="h100">
<v-card class="pb-5">
<v-card-title class="custom-title-4-new" style="min-height:76px;"
<v-card-title class="custom-title-4-new" style="min-height:65px;"
>검침대상 상세
</v-card-title>
<div class="px-5" style="height:calc(100% - 76px)">
@ -314,7 +315,7 @@ export default {
header: '검침 대상 ID',
name: 'readObjId',
width: 130,
align: 'center',
align: 'left',
},
{
header: '검침 대상 명',
@ -384,7 +385,7 @@ export default {
{
header: '사용여부',
name: 'useFg',
align: 'center',
align: 'left',
width: 100,
formatter({ value }) {
value = value === true ? '1' : '0';
@ -853,6 +854,17 @@ const myDetail = [
},
];
</script>
<style lang="scss">
<style lang="scss" scoped>
@import '@/assets/scss/common.scss';
</style>
::v-deep {
.tui-grid-layer-state {
top: 40px !important;
}
.tui-grid-layer-selection,
.tui-grid-cell-content-editor{
height: 36px !important;
}
}
</style>

View File

@ -53,7 +53,8 @@
</v-col>
<v-col :cols="7" >
<v-card class="pb-5">
<v-card-title class="custom-title-4" style="min-height:76px;">Data Set 상세
<v-card-title class="custom-title-4 pb-0 mb-2" >
Data Set 상세
</v-card-title>
<div class="px-5" style="min-height:calc(100% - 76px)">
<v-tabs v-model="tab">
@ -284,13 +285,13 @@ export default {
header: '모델링 DataSet ID',
name: 'dataSetId',
align: 'left',
width: 180,
minWidth: 200,
},
{
header: 'DataSet 명',
name: 'dataSetNm',
align: 'left',
width: 200,
minWidth: 200,
},
{
header: '사업장',
@ -311,8 +312,8 @@ export default {
{
header: '사용 여부',
name: 'useFg',
width: 100,
align: 'center',
minWidth: 200,
align: 'left',
formatter({ value }) {
value = value === true ? '1' : '0';
const newValue = _this.pageData.useFgList.filter(
@ -321,7 +322,7 @@ export default {
return newValue[0].commCdNm;
},
},
{ header: '비고', name: 'rmrk', align: 'left' },
{ header: '비고', name: 'rmrk', align: 'left', minWidth: 100, },
];
this.setGridColumn({

View File

@ -62,20 +62,20 @@
<v-card-title class="pa-0">설비별 효율지표 Trend</v-card-title>
</v-col>
<v-col :cols="4" class="d-flex justify-space-end" >
<component
class="text-right mr-2"
ref="EqpmSelectPop"
label=""
placeholder="설비..."
is="EqpmSelectPop"
valueNm="eqpmId"
:textCols="12"
:parentPrgmId="myPrgmId"
:eqpmGrpDisabled="true"
:fabDisabled="true"
:iconShow="false"
:isMulti="true"
/>
<component
class="text-right mr-2"
ref="EqpmSelectPop"
label=""
placeholder="설비..."
is="EqpmSelectPop"
valueNm="eqpmId"
:textCols="12"
:parentPrgmId="myPrgmId"
:eqpmGrpDisabled="true"
:fabDisabled="true"
:iconShow="false"
:isMulti="true"
/>
<a-button @click="getEqpmData()" type="primary" >조회</a-button>
</v-col>
</v-row>

View File

@ -286,7 +286,7 @@ export default {
resizable: true,
},
header: {
height: 65,
height: 75,
complexColumns: myComplexColumns,
},
};

View File

@ -289,8 +289,8 @@ const Utility = () => {
header: {
height: 28,
},
rowHeight: 29,
minRowHeight: 29,
rowHeight: 37,
minRowHeight: 37,
columnOptions: {
resizable: true,
minWidth: 100,