Update 0408

This commit is contained in:
dev
2025-08-04 19:39:58 +09:00
parent 056d1a1e17
commit 8f7f5c598d
13 changed files with 112 additions and 205 deletions

View File

@ -92,24 +92,23 @@
background: map-deep-get($config, #{$theme}, "basic-button-background");
}
.searchFilter{
.searchFilter {
.search-button {
height: 40px;
color: map-deep-get($config, #{$theme}, "search-btn-color");
}
}
.v-dialog {
.ant-btn-icon-only {
color: map-deep-get(
$config,
color: map-deep-get($config,
#{$theme},
"icon-color"
);
}
}
.ant-btn {
.ant-btn {
&.ant-btn-outlined {
color:map-deep-get($config, #{$theme}, "ant-btn-default-color");
@ -121,7 +120,8 @@
background: map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
border-color:map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
color:map-deep-get($config, #{$theme}, "ant-btn-primary-color");
&.ant-btn-background-ghost{
&.ant-btn-background-ghost {
color:map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
}
}
@ -142,6 +142,7 @@
&.expand-btn {
.v-icon {
color: map-deep-get($config, #{$theme}, "basic-button-color");
svg {
fill: map-deep-get($config, #{$theme}, "basic-button-color");
}
@ -152,15 +153,17 @@
}
.v-application {
.ant-btn {
.ant-btn {
border-radius: 6px;
&.ant-btn-lg {
border-radius: 8px;
}
&.ant-btn-default {
border:none !important
border: none !important
}
}
}
@ -171,15 +174,16 @@
border: none;
width: 16px;
height: 16px;
background:none;
background: none;
}
}
.ant-btn {
.ant-btn {
&.expand-btn {
.v-icon {
span {
span {
&.v-icon {
margin-right: 8px;
}
}
}
}
}

View File

@ -470,6 +470,7 @@
}
&-tree-button-expand {
z-index: 9999;
.tui-grid-btn-tree {
i {
width: 16px;
@ -488,6 +489,7 @@
}
&-tree-button-collapse {
z-index: 9999;
.tui-grid-btn-tree {
i {
width: 16px;

View File

@ -1,6 +1,6 @@
.v-select__custom {
padding: 0.125rem;
&.v-text-field.v-text-field--solo:not(.v-text-field--solo-flat)>.v-input__control>.v-input__slot {
box-shadow: none;
}
@ -175,11 +175,13 @@
margin: 5px;
font-size: 16px;
}
.custom-radio input[type="radio"] {
position: absolute;
opacity: 0;
cursor: pointer;
}
/* Custom radio appearance */
.radio-mark {
position: absolute;
@ -222,11 +224,31 @@
color: #424242 !important;
}
.ant-checkbox {
.ant-checkbox-inner {
border-radius: 4px
}
}
@each $theme in dark, light {
@include theme($theme);
.v-application.#{$theme}-mode {
.ant-checkbox-wrapper {
.ant-checkbox-checked {
.ant-checkbox-inner {
background: map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
border-color:map-deep-get($config, #{$theme}, "ant-btn-primary-bg");
color:map-deep-get($config, #{$theme}, "ant-btn-primary-color");
&.ant-checkbox-inner::after {
border-color: map-deep-get($config, #{$theme}, "ant-btn-primary-color");
}
}
}
}
.v-input-popup__custom {
.v-input__slot {
padding-left: 12px;
@ -239,17 +261,18 @@
}
.v-textarea {
.v-input__slot{
.v-input__slot {
border: map-deep-get($config,
#{$theme},
"v-input-textarea-border"
);
#{$theme},
"v-input-textarea-border"
);
fieldset {
background-color: map-deep-get($config,
#{$theme},
"v-input-textarea-bg"
);
}
}
}
@ -404,6 +427,12 @@
.v-input--checkbox {
.v-icon {
transform: none;
&.mdi:before {
font-size: 16px;
}
@if $theme ==dark {
color: rgba(255, 255, 255, 0.6);
}
@ -414,6 +443,9 @@
}
}
.v-textarea {
textarea {
padding: 10px;

View File

@ -2,26 +2,17 @@
<v-row class="search-box" align="center" no-gutters>
<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
>
<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 : ''">
<v-checkbox
v-model="chkValue"
:disabled="disabledFlag"
:readonly="readonly || false"
:required="required || false"
:false-value="false"
:color="isDarkMode ? '#fff' : '#1890ff'"
@change="modifyValue"
></v-checkbox>
<a-checkbox v-model="chkValue" :disabled="disabledFlag" :readonly="readonly || false"
:required="required || false" @change="modifyValue">
</a-checkbox>
</v-col>
</v-row>
</template>
@ -68,10 +59,10 @@ export default {
default: 7,
},
iconShow: {
type: Boolean,
require: false,
default: true
},
type: Boolean,
require: false,
default: true
},
},
data() {
return {
@ -103,7 +94,8 @@ export default {
methods: {
...mapMutations({ setPageData: "setPageData" }),
modifyValue(e) {
return this.setPageData({ [this.valueNm]: e });
const isChecked = e.target.checked;
return this.setPageData({ [this.valueNm]: isChecked });
},
},
};

View File

@ -69,55 +69,6 @@ export default {
return {
loadGrid: false,
gridName: 'effcInfoGrid',
// "effcInfoGrid": {
// data:
// [
// {
// "eqpmKindId": "펌프",
// "eqpmGrpId": "냉각수 시스템",
// "totMethNm": "평균값"
// },
// {
// "eqpmKindId": "모터",
// "eqpmGrpId": "공기압 시스템",
// "totMethNm": "최대값"
// },
// {
// "eqpmKindId": "밸브",
// "eqpmGrpId": "스팀 공급",
// "totMethNm": "합계"
// },
// {
// "eqpmKindId": "센서",
// "eqpmGrpId": "온도 제어",
// "totMethNm": "최소값"
// },
// {
// "eqpmKindId": "컴프레서",
// "eqpmGrpId": "에어 시스템",
// "totMethNm": "중앙값"
// }
// ]
// ,
// column: [
// {
// header: '대상설비종류',
// name: 'eqpmKindId',
// },
// {
// header: '대상설비그룹',
// name: 'eqpmGrpId',
// },
// { header: '집계방법', name: 'totMethNm', align: 'center' },
// ]
// }
// },
itemList: [],
tagTpList: [],
// detailList: myDetail,
@ -388,10 +339,10 @@ export default {
},
// bodyHeight: gridHeight,
// minBodyHeight: gridHeight,
// header: {
// height: 28,
// },
// rowHeight: 29,
header: {
height: 37,
},
rowHeight: 37,
// minRowHeight: 29,
// selectionUnit: 'row',
// editingEvent: 'click',
@ -436,7 +387,6 @@ export default {
header: '물리량ID',
name: 'pysclQtyId',
width: 200,
align: 'center',
hidden: true,
},
{ header: '물리량', name: 'pysclQtyCd', hidden: true, minWidth: 200 },
@ -445,7 +395,7 @@ export default {
{ header: '가이드지표', name: 'gdIdxId', hidden: true },
{ header: '가이드지표명', name: 'gdIdxNm', hidden: true },
{ header: '집계방법', name: 'totMeth', hidden: true },
{ header: '집계방법', name: 'totMethNm', align: 'center' },
{ header: '집계방법', name: 'totMethNm',},
];
if (this.selectValue01 == 'PYSCL') {

View File

@ -200,7 +200,6 @@ export default {
{
header: 'Data 구분',
name: 'addInfoDataKind',
align: 'center',
formatter({ value }) {
let retVal = '';
const newValue = addInfoDataKindList.filter(

View File

@ -7,7 +7,7 @@
</div>
<div ref="gridParent" style="height: calc((100vh - 520px) /2);">
<Grid :ref="gridName" :gridName="gridName" :parentPrgmId="parentPrgmId" @getRowsData="getRowData"
<Grid :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="parentPrgmId" @getRowsData="getRowData"
:innerTabGridInfo="innerTabGridInfo" />
</div>
<div ref="formParent" style="height: calc((100vh - 400px) /2);">
@ -101,9 +101,9 @@ export default {
// bodyHeight: gridHeight,
// minBodyHeight: gridHeight,
header: {
height: 28,
height: 37,
},
// rowHeight: 29,
rowHeight: 37,
// minRowHeight: 29,
selectionUnit: 'row',
editingEvent: 'click',
@ -124,13 +124,12 @@ export default {
const myColumns = [
{ header: '회사 ID', name: 'comId', hidden: true },
{ header: '검침개소 번호', name: 'readPlcId', hidden: true },
{ header: '대상 검침개소 번호', name: 'objReadPlcId', align: 'center' },
{ header: '대상 검침개소 번호', name: 'objReadPlcId'},
{ header: '대상 검침개소명', name: 'objReadPlcNm', align: 'left' },
{ header: '분배율(1~100)', name: 'distRt', align: 'right' },
{
header: '가감유형',
name: 'ddctKind',
align: 'center',
formatter({ value }) {
let retVal = '';
const newValue = ddctKindList.filter(item => item.value == value);

View File

@ -153,7 +153,6 @@ export default {
{
header: '에너지원',
name: 'ercId',
align: 'center',
width: 100,
formatter({ value }) {
let retVal = '';
@ -182,7 +181,6 @@ export default {
{
header: '대표 TAG 여부',
name: 'reprTagFg',
align: 'center',
width: 100,
// renderer: {
// type: CustumChecbox,
@ -198,7 +196,6 @@ export default {
{
header: '사용여부',
name: 'useFg',
align: 'center',
width: 100,
formatter({ value }) {
value = value === true ? '1' : '0';
@ -214,7 +211,7 @@ export default {
// }
// }
},
{ header: '비고', name: 'rmrk', align: 'left', width: 100 },
{ header: '비고', name: 'rmrk', width: 100 },
{ header: '등록 사용자', name: 'regUserNo', hidden: true },
{ header: '등록 일자', name: 'regDttm', hidden: true },
{ header: '수정 사용자', name: 'procUserNo', hidden: true },

View File

@ -18,7 +18,7 @@
</v-col>
</v-row>
<v-row ref="contents" class="pt-2">
<v-col :cols="5" style="height:100%" class="pr-2">
<v-col :cols="5" class="pr-2">
<v-card class="pb-5">
<div class="d-flex align-center justify-space-between pa-4">
<v-card-title class="pa-0 custom-title-4">효율지표 리스트</v-card-title>
@ -33,11 +33,11 @@
</div>
</v-card>
</v-col>
<v-col :cols="7" style="height:100%" class="pl-2">
<v-col :cols="7" class="pl-2">
<v-card class="pb-5">
<v-card-title class="custom-title-4 pa-4 pb-2">효율지표 상세
</v-card-title>
<div class="px-4" style="height:calc(100% - 76px)">
<div class="px-4" >
<v-tabs v-model="tab">
<v-tab v-for="item in items" :key="item.id" :disabled="(item.id == 'EffcIdxAddInfoTab'
? isInfoTabDisabled
@ -162,7 +162,7 @@ import EffcIdxAddInfoTab from '@/components/pages/ems/EffcIdxInfo/EffcIdxAddInfo
import Grid from '~/components/common/Grid';
import Utility from '~/plugins/utility';
import SelectBox from '@/components/common/select/SelectBox';
import CheckBox from '~/components/common/checkbox/CheckBox';
import CheckBox from '~/components/common/CheckBox';
import EqpmCalcPop from '~/components/common/modal/EqpmCalcPop';
import TextArea from '@/components/common/form/TextArea';
@ -214,64 +214,6 @@ export default {
},
],
loadGrid: false,
// "effcIdxGrid": {
// data: [
// {
// "effcIdxId": "E001",
// "effcIdxNm": "에너지 소비 효율",
// "effcKind": "환경"
// },
// {
// "effcIdxId": "E002",
// "effcIdxNm": "작업 시간 대비 생산량",
// "effcKind": "생산성"
// },
// {
// "effcIdxId": "E003",
// "effcIdxNm": "장비 가동률",
// "effcKind": "운영"
// },
// {
// "effcIdxId": "E004",
// "effcIdxNm": "불량률",
// "effcKind": "품질"
// },
// {
// "effcIdxId": "E005",
// "effcIdxNm": "재고 회전율",
// "effcKind": "물류"
// }
// ]
// ,
// column: [
// {
// header: '효율지표 ID',
// name: 'effcIdxId',
// align: 'center',
// // hidden:true
// },
// {
// header: '효율지표명',
// name: 'effcIdxNm',
// align: 'left',
// minWidth: 150,
// // hidden:true
// },
// {
// header: '효율지표종류',
// name: 'effcKind',
// align: 'left',
// // hidden: true,
// },
// // { header: '등록 사용자', name: 'regUserNo', hidden: true },
// // { header: '등록 일자', name: 'regDttm', hidden: true },
// // { header: '수정 사용자', name: 'procUserNo', hidden: true },
// // { header: '수정 일자', name: 'procDttm', hidden: true },
// ],
// }
// },
initFlag: false,
selectValueList01: [],
selectValueList02: [],
@ -919,7 +861,6 @@ export default {
{
header: '효율지표 ID',
name: 'effcIdxId',
align: 'center',
// hidden:true
},
{

View File

@ -342,7 +342,6 @@ export default {
header: '개소 종류',
name: 'plcKind',
minWidth: 100,
align: 'center',
formatter({ value }) {
let retVal = '';
const newValue = _this.pageData.plcKindList.filter(
@ -392,7 +391,6 @@ export default {
header: '사용 여부',
name: 'useFg',
minWidth: 100,
align: 'center',
formatter({ value }) {
value = value === true ? '1' : '0';
const newValue = _this.pageData.useFgList.filter(

View File

@ -980,7 +980,7 @@ export default {
var columnList = [
{ header: '회사 ID', name: 'comId', hidden: true },
{ header: '물리량 ID', name: 'pysclQtyId', hidden: true },
{ header: '순번', name: 'argSeq', editor: 'text' },
{ header: '순번', name: 'argSeq', editor: 'text', align: 'right' },
{ header: '물리량 ID', name: 'argPysclQtyId' },
{
header: '설비그룹',

View File

@ -9,7 +9,7 @@
<component :is="'SelectBox'" ref="SelectBox1" :propsValue="selectValue01"
:itemList="selectValueList01" :label="'설비종류'" :iconShow="true"
@update:propsValue="selectValue01 = $event" :labelCols="12" :textCols="12"
:customClass="'select-large'" />
:customClass="'select-large'" />
</v-col>
<v-col :cols="3">
<component :is="'SelectBox'" ref="SelectBox2" :propsValue="selectValue02"
@ -19,10 +19,11 @@
</v-col>
<v-col :cols="3">
<InputText :parentPrgmId="myPrgmId" label="가이드명" :textCols="12" valueNm="gdIdxNm"
:searchOption="true" :iconShow="true" :labelCols="12" :customClass="'input-large'"/>
:searchOption="true" :iconShow="true" :labelCols="12" :customClass="'input-large'" />
</v-col>
<v-col :cols="3" class="text-right">
<a-button icon="search" type="primary" @click="search()" class="search-button" size="large">조회</a-button>
<a-button icon="search" type="primary" @click="search()" class="search-button"
size="large">조회</a-button>
</v-col>
</v-row>
</v-card>
@ -38,13 +39,13 @@
:btnActionsFnc="btnActions" />
</div>
<div class="h100 px-4" style="height:calc(100% - 70px)">
<div ref="gridParent" style="height: 30%">
<div ref="gridParent" style="height: 26%">
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
:parentPrgmId="myPrgmId" @getRowsData="getRowData" :dataPath="dataPathExample" />
</div>
<div class="d-flex py-4 mt-4" >
<div class="d-flex py-4 mt-4">
<component :is="'Form'" :parentPrgmId="myPrgmId" :detailList="detailList"
@gridEditingFinish="gridEditingFinish" />
@gridEditingFinish="gridEditingFinish" />
</div>
</div>
@ -326,14 +327,12 @@ export default {
header: 'COM ID',
name: 'comId',
width: 100,
aling: 'center',
hidden: true,
},
{
header: '가이드',
name: 'gdIdxId',
width: 100,
align: 'center',
},
{
header: '가이드명',
@ -345,7 +344,6 @@ export default {
header: '설비그룹ID',
name: 'eqpmGrpId',
width: 100,
align: 'center',
// hidden: true,
formatter({ value }) {
let retVal = '';
@ -362,7 +360,6 @@ export default {
header: '상위집계방법',
name: 'upTotMeth',
width: 100,
align: 'center',
// hidden: true,
formatter({ value }) {
let retVal = '';
@ -524,7 +521,7 @@ export default {
async getRowGridData() {
this.loadGrid = false;
let res = [];
res = await this.postApiReturn({
apiKey: 'selectEqpmGdIdxDataList',
resKey: 'eqpmGdIdxDataList',
@ -1122,14 +1119,7 @@ const myDetail = [
required: true,
iconShow: true
},
// {
// // 공백 처리
// type: 'Label',
// cols: 3,
// class: 'py-2',
// // label: "* '주의기준값' 또는 '경고기준값' 중 하나는 필수로 입력해 주세요.",
// disabled: false,
// },
// {
// type: 'CheckBox',
// label: '설비기준적용',
@ -1195,7 +1185,8 @@ const myDetail = [
// required: true,
labelCols: 12,
textCols: 12,
iconShow: true
iconShow: true,
inputType: 'number',
},
// {
// // 공백 처리
@ -1243,7 +1234,15 @@ const myDetail = [
{
// 공백 처리
type: 'Label',
cols: 9,
cols: 3,
class: 'py-2',
// label: "* '주의기준값' 또는 '경고기준값' 중 하나는 필수로 입력해 주세요.",
disabled: false,
},
{
// 공백 처리
type: 'Label',
cols: 6,
class: 'py-3',
// label: "* '주의기준값' 또는 '경고기준값' 중 하나는 필수로 입력해 주세요.",
disabled: false,
@ -1442,9 +1441,3 @@ const myDetail = [
},
];
</script>
<style lang="scss" scoped>
.searchFilter {
border-radius: 6px;
box-shadow: none;
}
</style>

View File

@ -33,11 +33,11 @@
<v-row ref="contents" class="mt-3">
<v-col :cols="12" style="height: 100%">
<!-- <v-card class="py-5"> -->
<v-card style="height: 60%">
<v-card style="height: auto;">
<div class="d-flex align-center justify-space-between pa-4">
<v-card-title class="pa-0 custom-title-4">가이드 정보</v-card-title>
</div>
<div class="d-flex align-end justify-space-between px-4 py-2">
<div class="d-flex align-end justify-space-between px-4 py-2 pb-4">
<v-row :cols="12" class="align-end">
<!-- 가이드 설비그룹 라인 시작 -->
<v-col :cols="3" class="pa-2">
@ -116,9 +116,9 @@
</v-card>
<v-row style="height: 40%" class="mt-3">
<v-col :cols="6" style="height: 100%" class="pr-2">
<v-card class="pb-5">
<v-row class="mt-3" >
<v-col :cols="6" class="pr-2">
<v-card >
<div class="d-flex align-center justify-space-between pa-4">
<v-card-title class="pa-0 custom-title-4 ">설비상세 리스트</v-card-title>
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :btnActionsFnc="btnActions" />
@ -132,8 +132,8 @@
</div>
</v-card>
</v-col>
<v-col :cols="6" style="height: 100%" class="pl-2">
<v-card class="pb-5">
<v-col :cols="6" class="pl-2">
<v-card >
<div class="d-flex align-center justify-space-between pa-4">
<v-card-title class="pa-0 custom-title-4">설비가이드 기준 정보</v-card-title>
</div>