Merge pull request 'dev-trungvq7-0729' (#40) from dev-trungvq7-0729 into dev

Reviewed-on: #40
This commit is contained in:
dev
2025-08-07 10:58:23 +09:00
8 changed files with 121 additions and 99 deletions

View File

@ -860,7 +860,7 @@ a {
);
.day-label {
color: map-deep-get($config, #{$theme}, "non-activate");
color: map-deep-get($config, #{$theme}, "card-text-title-color");
}
}
}

View File

@ -56,6 +56,12 @@
font-weight: 400;
}
th[data-column-name="_checked"] {
padding-left: 0;
}
}
.tui-grid-table{
@ -63,6 +69,13 @@
.tui-grid-cell-has-input .tui-grid-cell-content {
padding: 8px;
}
th[data-column-name="_checked"] {
&.tui-grid-cell-header {
padding-left: 0;
}
}
}
.treeGrid {

View File

@ -230,6 +230,10 @@
}
}
input[type="checkbox"] {
width: 16px;
height: 16px
}
@each $theme in dark, light {
@include theme($theme);
@ -242,6 +246,7 @@
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");
}
@ -403,6 +408,13 @@
"v-input-textarea-border"
);
}
input[type="checkbox"] {
accent-color: map-deep-get($config,
#{$theme},
"ant-btn-primary-bg"
);
}
}
.v-radio {

View File

@ -119,8 +119,7 @@
/>
</div> -->
<v-card-actions>
<v-spacer></v-spacer>
<v-card-actions class="px-6 py-4 d-flex align-center justify-end">
<a-button color="primary" type="primary" @click="closePop()">확인</a-button>
</v-card-actions>
</v-card>
@ -275,7 +274,12 @@ export default {
// const gridHeight = this.$refs.gridParent.offsetHeight - 30;
const myOptions = {
rowHeaders: ['rowNum'],
rowHeaders: [
{
type: 'rowNum',
align: 'right',
},
],
columnOptions: {
resizable: true,
minWidth: 100
@ -319,19 +323,19 @@ export default {
header: '주의',
width: 100,
name: 'careStndVal',
align: 'center'
align: 'right'
},
{
header: '경고',
width: 100,
name: 'warnStndVal',
align: 'center'
align: 'right'
},
{
header: '가이드값',
width: 100,
name: 'totVal',
align: 'center'
align: 'right'
},
{
header: '알람내용',

View File

@ -8,47 +8,35 @@
</label>
</v-col>
<v-col :cols="textCols">
<v-text-field
readonly
v-model="selectValue"
append-icon="mdi-magnify"
:class="['v-input__custom', customClass]"
@click="dialogOpenCloseEvent(dialog)"
outlined
:hide-details="true"
:required="required || false"
:disabled="disabled || false"
:placeholder="placeholder"
>
<template v-slot:append>
<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>
<!-- Custom SVG icon -->
<v-icon>$icoSearch</v-icon>
</template>
</v-text-field>
</v-col>
<v-dialog ref="popModal" v-model="dialog" width="800" scrollable>
<v-card style="height: 90vh;">
<v-dialog ref="popModal" v-model="dialog" width="800" content-class="custom-dialog" scrollable>
<v-card style="height: 100%;">
<v-card-title class="px-5 py-4 d-flex align-center justify-space-between">
<span class="custom-title-4">설비 선택</span>
<a-button icon="close" type="text" @click="dialogOpenCloseEvent(dialog)"></a-button>
</v-card-title>
<div class="pa-2 pt-0">
<div class="px-5 pt-2">
<!-- <v-card class="searchFilter">
</v-card> -->
<v-row align="end" class="searchFilter">
<v-col>
<v-row align="end">
<v-col :cols="3.5">
<!-- 설비그룹 -->
<component :is="'SelectBox'" :propsValue="selectValue01" :itemList="selectValueList01"
:label="'설비그룹'" :disabled="eqpmGrpDisabled"
@update:propsValue="selectValue01 = $event" :labelCols="12" :textCols="12"
:iconShow="true" />
:label="'설비그룹'" :disabled="eqpmGrpDisabled" @update:propsValue="selectValue01 = $event"
:labelCols="12" :textCols="12" :iconShow="true" />
</v-col>
<v-col>
<!-- FAB -->
<component :is="'SelectBoxMulti'" :propsValue="selectValue02"
:itemList="selectValueList02" :label="'FAB'" :labelCols="12" :multiple="true"
:disabled="fabDisabled" @update:propsValue="selectValue02 = $event" :textCols="12"
:iconShow="true" />
<component :is="'SelectBoxMulti'" :propsValue="selectValue02" :itemList="selectValueList02"
:label="'FAB'" :labelCols="12" :multiple="true" :disabled="fabDisabled"
@update:propsValue="selectValue02 = $event" :textCols="12" :iconShow="true" />
</v-col>
<v-col >
<v-row>
@ -59,9 +47,8 @@
</label>
</v-col>
<v-col :cols="12" class="pt-0">
<v-text-field append-icon="" class="v-input__custom" outlined
:hide-details="true" v-model="searchWord" @keyup.enter="search"><template
v-slot:append>
<v-text-field append-icon="" class="v-input__custom" outlined :hide-details="true"
v-model="searchWord" @keyup.enter="search"><template v-slot:append>
<!-- Custom SVG icon -->
<v-icon>$icoSearch</v-icon>
@ -70,7 +57,11 @@
</v-row>
</v-col>
<a-button icon="search" type="primary" @click="search()" class="mb-1 mr-2">조회</a-button>
<v-col :cols="2" class="last-col mr-2">
<a-button icon="search" :ripple="false" type="primary" @click="search()"
class="search-button">조회</a-button>
</v-col>
</v-row>
<!-- <v-row align="center" no-gutters style="margin-top: 14px;">
@ -91,13 +82,13 @@
</v-row> -->
</div>
<v-card-text class="px-2 w100">
<div ref="modalGridParent" style="height: 450px;" class="h100 w100">
<div class="pa-5" style="height:calc(100% - 30px)">
<div ref="modalGridParent" class="h100 w100">
<component :ref="gridName" :is="loadGrid ? 'Grid' : null"
:dataPath="searchParam.eqpmSelectPopData.eqpmSelectPop" :gridName="gridName"
:parentPrgmId="parentPrgmId" @getRowsData="getRowData" />
</div>
</v-card-text>
</div>
<v-card-actions class="px-6 py-4 d-flex align-center justify-end">
<a-button :ripple="false" @click="dialogOpenCloseEvent(dialog)" class="mr-2">닫기</a-button>
@ -270,7 +261,7 @@ export default {
},
chkDialog() {
if (this.isMulti) {
this.$store.state.pageData[this.parentPrgmId][this.modalDataKey][this.myModalKey][this.gridName].option.rowHeaders = [{ type: 'checkbox' }];
this.$store.state.pageData[this.parentPrgmId][this.modalDataKey][this.myModalKey][this.gridName].option.rowHeaders = [{ type: 'checkbox', width: 72 }];
} else {
this.$store.state.pageData[this.parentPrgmId][this.modalDataKey][this.myModalKey][this.gridName].option.rowHeaders = [];
}
@ -437,18 +428,15 @@ export default {
{
header: 'FAB',
name: 'fabNm',
align: 'center'
},
{
header: '설비ID',
name: 'eqpmId',
align: 'center',
name: 'eqpmId'
// hidden:true
},
{
header: '설비명',
name: 'eqpmNm',
align: 'center'
name: 'eqpmNm'
},
{
header: 'eccId',
@ -532,11 +520,11 @@ export default {
this.loadGrid = true;
this.$nextTick(() => {
if (this.isMulti) {
this.getChecked();
}
});
// this.$nextTick(() => {
// if (this.isMulti) {
// this.getChecked();
// }
// });
},
setUpdate() {
@ -588,3 +576,16 @@ var eqpmSelectPop = {
}
</script>
<style lang="scss" scoped>
::v-deep {
.last-col {
flex-basis: content;
}
.v-dialog {
overflow-y: hidden;
}
}
</style>

View File

@ -332,7 +332,7 @@ const myReadPlcTagDetail = [
valueNm2: 'tagNm',
disabled: true,
cols: 6,
class: 'pr-4 pb-2 py-3',
class: 'pr-4 pb-2 py-2',
required: true,
labelCols: 12,
textCols: 12,
@ -345,7 +345,7 @@ const myReadPlcTagDetail = [
valueNm: 'ercId',
disabled: false,
cols: 6,
class: 'pl-4 py-3',
class: 'pl-4 pb-2 py-3',
list: 'ercNmList',
itemText: 'text',
itemValue: 'value',

View File

@ -15,25 +15,15 @@
:customClass="'input-large'" />
</v-col>
<v-col :cols="2.5">
<component
:is="'selectCodeList'"
:parentPrgmId="myPrgmId"
:label="'배치 실행 구분'"
<component :is="'selectCodeList'" :parentPrgmId="myPrgmId" :label="'배치 실행 구분'"
:dataKey="'searchBatchExecTp'"
:sendParam="{ commGrpCd: 'CO_BATCH_EXEC_TP', useFg: '1' }"
:addAll="true"
:customClass="'select-large'"
/>
:sendParam="{ commGrpCd: 'CO_BATCH_EXEC_TP', useFg: '1' }" :addAll="true"
:customClass="'select-large'" />
</v-col>
<v-col :cols="2.5" class="pr-4">
<component
:is="'selectCodeList'"
:parentPrgmId="myPrgmId"
:label="'사용여부'"
:dataKey="'searchUseFg'"
:sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }"
:customClass="'select-large'"
/>
<component :is="'selectCodeList'" :parentPrgmId="myPrgmId" :label="'사용여부'"
:dataKey="'searchUseFg'" :sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }"
:customClass="'select-large'" />
</v-col>
<BtnSearch size="large" class="mr-2" />
@ -42,9 +32,9 @@
</v-col>
</v-row>
<v-row ref="contents" class="mt-4">
<v-row ref="contents" class="mt-4 h100">
<!-- 배치 리스트 -->
<v-col :cols="6" class="h100 pr-2">
<v-col :cols="6" class="pr-2">
<v-card class="pb-5">
<div class="d-flex align-center justify-space-between pa-4">
<!-- <v-card-title>
@ -56,7 +46,7 @@
:btnActionsFnc="btnActions" />
</div>
<div class="px-4">
<div ref="gridParent" class="h100 w100">
<div ref="gridParent" class="h100 w100" style="height:calc(100% - 70px)">
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :parentPrgmId="myPrgmId"
:gridName="gridName" @getRowsData="getRowData" />
</div>
@ -65,7 +55,7 @@
</v-card>
</v-col>
<!-- 배치 상세 -->
<v-col :cols="6" class="h100 pl-3">
<v-col :cols="6" class="pl-3">
<v-card class="pd-y-20 h100">
<v-card-title class="d-flex justify-space-between align-end pa-4">
<span class="tit ft-size_20 ft-weight_600">배치 상세</span>
@ -82,14 +72,17 @@
<v-card style="height: 100%">
<v-card-title class="v-card__title d-flex align-center justify-space-between">
<span class="custom-title-4">DB 프로시져 파라메터 설정</span>
<div>
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridNameParam"
:btnActionsFnc="btnActionsParam" />
</div>
<a-button icon="close" type="text" @click="dialog = false"></a-button>
</v-card-title>
<div class="pa-5">
<v-row align="center" no-gutters>
<v-col cols="12" class="text-right"> </v-col>
<v-row align="end" no-gutters>
<v-col cols="12" class="d-flex justify-end">
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridNameParam"
:btnActionsFnc="btnActionsParam" />
</v-col>
</v-row>
</div>
<v-card-text style="height: 300px;">
@ -101,10 +94,9 @@
</div>
</div>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="primary" dark @click="setParamChangeData()">확인</v-btn>
<v-btn color="primary" dark @click="dialog = false">닫기</v-btn>
<v-card-actions class="px-6 py-4 d-flex align-center justify-end">
<a-button :ripple="false" @click="dialog = false" class="mr-2">닫기</a-button>
<a-button :ripple="false" type="primary" @click="setParamChangeData()">확인</a-button>
</v-card-actions>
</v-card>
</v-dialog>
@ -156,7 +148,7 @@ export default {
myPrgmId: myPrgmId,
loadGrid: false,
gridName: 'rowGrid',
// rowGridOrigin: [],
detailList: myDetail,
@ -261,7 +253,7 @@ export default {
const _this = this;
const myColumns = [
{ header: '배치ID', name: 'batchId', align: 'center', width: 100 },
{ header: '배치ID', name: 'batchId', align: 'right', width: 100 },
{ header: '배치명', name: 'batchNm', minWidth: 200 },
{
header: '배치 실행 구분',
@ -283,7 +275,6 @@ export default {
{
header: '사용여부',
name: 'useFg',
align: 'center',
width: 145,
formatter({ value }) {
let retVal = '';
@ -556,7 +547,7 @@ export default {
}
},
gridParamInit() {
const gridHeight = this.$refs.gridParent.offsetHeight - 36;
const myOptions = {
columnOptions: {
@ -567,6 +558,10 @@ export default {
selectionUnit: 'row',
editingEvent: 'click',
scrollX: false,
header: {
height: 37,
},
rowHeight: 37,
};
this.setGridOption({
gridKey: this.gridNameParam,
@ -592,7 +587,6 @@ export default {
{
header: 'MODE',
name: 'mode',
align: 'center',
formatter({ value }) {
return value == ('OUT' || 'out') ? 'OUT' : 'IN';
},
@ -642,7 +636,7 @@ export default {
},
getRowParamData() {
this.paramLoadGrid = false;
// let res = [];
let res = [];
// /* this.pageData.paramStrData 처리 */
// // console.log("this.pageData.paramStrData : ", JSON.parse(this.pageData.paramStrData));
@ -717,7 +711,6 @@ export default {
},
inputClick(event, item, valueNm) {
if (valueNm == 'refVal1') {
this.dialog = true;
const rowIdxKey = this.$refs[this.gridName].gridInstance.invoke(
'getFocusedCell',
).rowKey;

View File

@ -67,14 +67,8 @@
</div>
<div class="px-4" style="height:calc(100% - 76px)">
<div ref="gridParent" class="w100 h100">
<component
:ref="gridName"
:is="loadGrid ? 'Grid' : null"
:gridName="gridName"
:parentPrgmId="myPrgmId"
:columnClickEventFlag="true"
@columnClick="columnClick"
/>
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
:parentPrgmId="myPrgmId" :columnClickEventFlag="true" @columnClick="columnClick" />
</div>
</div>
</v-card>
@ -552,7 +546,12 @@ export default {
columnOptions: {
resizable: true,
},
rowHeaders: ['rowNum'],
rowHeaders: [
{
type: 'rowNum',
align: 'right',
},
],
header: {
height: 37,
},
@ -642,7 +641,7 @@ export default {
{
header: '평가',
name: 'okFg',
align: 'center',
align: 'left',
width: 80,
},
{