fixbug ui 20 21

This commit is contained in:
Vu Trung Kien/(Vu Trung Kien)/현장대리인/SK
2025-07-31 16:18:33 +09:00
parent f9643f46a0
commit 34d5a1eeb7
8 changed files with 142 additions and 124 deletions

View File

@ -9,7 +9,7 @@
</label>
</v-col>
<v-col :cols="label ? textCols : ''">
<div class="datepicker-container">
<div :class="['datepicker-container', customClass]" >
<v-text-field
id="startpicker"
ref="startpicker"
@ -79,6 +79,10 @@ export default {
require: false,
default: 8,
},
customClass: {
type: String,
require: false,
},
},
data() {
return {

View File

@ -107,8 +107,7 @@ export default {
header: {
height: 38,
},
rowHeight: 22,
minRowHeight: 22,
selectionUnit: 'row',
editingEvent: 'click',
};
@ -269,7 +268,7 @@ export default {
{
header: 'Data 구분',
name: 'addInfoDataKind',
align: 'center',
align: 'left',
formatter({ value }) {
let retVal = '';
const newValue = addInfoDataKindList.filter(

View File

@ -359,7 +359,7 @@ const myDetail = [
label: '설비종류 ID',
valueNm: 'eqpmKindId',
cols: 6,
class: 'py-2 pr-4',
class: 'py-2 pr-4 pt-1',
iconShow: true,
required: false,
readonly: true,
@ -373,7 +373,7 @@ const myDetail = [
valueNm: 'eqpmKindNm',
disabled: false,
cols: 6,
class: 'py-2 pl-4',
class: 'py-2 pl-4 pt-1',
iconShow: true,
required: true,
labelCols: 12,

View File

@ -461,7 +461,7 @@ const myDetail = [
valueNm: 'eqpmGrpId',
disabled: true,
cols: 6,
class: 'py-2 pr-4',
class: 'py-2 pr-4 pt-1',
required: false,
iconShow: true,
labelCols: 12,
@ -474,7 +474,7 @@ const myDetail = [
valueNm: 'eqpmGrpNm',
disabled: false,
cols: 6,
class: 'py-2 pl-4',
class: 'py-2 pl-4 pt-1',
required: true,
iconShow: true,
labelCols: 12,

View File

@ -16,7 +16,8 @@
</v-col>
<v-col :cols="3">
<!-- 대상일 -->
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'조회기간'" :textCols="12" />
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'조회기간'" :textCols="12"
customClass="datepicker-large" />
</v-col>
<v-col :cols="3" class="d-flex align-end justify-end text-right">
<BtnExcelDownload class="mr-1" :parentPrgmId="myPrgmId" :gridName="gridName" type="primary"
@ -391,6 +392,7 @@ export default {
resKey: 'pastRslPageTotal',
sendParam: sendParams
});
this.totalCount = res2[0].totalcount;
this.setGridData({

View File

@ -1,61 +1,43 @@
<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-col :cols="3">
<!-- 사업장 -->
<component
:is="'SelectBlocMstr'"
ref="SelectBlocMstr"
:parentPrgmId="myPrgmId"
/>
<component :is="'SelectBlocMstr'" ref="SelectBlocMstr" :parentPrgmId="myPrgmId"
:textCols="12" customClass="select-large" />
</v-col>
<v-col :cols="3">
<component
:is="'selectCodeList'"
:parentPrgmId="myPrgmId"
:label="'측정 Data 유형'"
dataKey="searchReadDataType"
:sendParam="{ commGrpCd: 'EM_READ_DATA_TYPE', useFg: '1' }"
:addAll="true"
/>
<component :is="'selectCodeList'" :parentPrgmId="myPrgmId" :label="'측정 Data 유형'"
dataKey="searchReadDataType" :sendParam="{ commGrpCd: 'EM_READ_DATA_TYPE', useFg: '1' }"
:addAll="true" :textCols="12" customClass="select-large" />
</v-col>
<v-col :cols="3">
<component
:is="'SelectReadObj'"
:parentPrgmId="myPrgmId"
:label="'측정대상'"
dataKey="searchReadObj"
:sendParam="{ useFg: '1' }"
:addAll="true"
/>
</v-col>
<v-col :cols="3" class="text-right">
<BtnSearch @click="search" />
<component :is="'SelectReadObj'" :parentPrgmId="myPrgmId" :label="'측정대상'"
dataKey="searchReadObj" :sendParam="{ useFg: '1' }" :labelCols="12" :textCols="12"
:addAll="true" customClass="select-large" />
</v-col>
</v-row>
<v-row align="center" no-gutters>
<v-row align="end" no-gutters>
<v-col :cols="3">
<component
:is="'selectCodeList'"
:parentPrgmId="myPrgmId"
:label="'사용여부'"
dataKey="useFg"
:sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }"
:addAll="true"
/>
<component :is="'selectCodeList'" :parentPrgmId="myPrgmId" :label="'사용여부'" dataKey="useFg"
:sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }" :addAll="true" :textCols="12"
customClass="select-large" />
</v-col>
<v-col :cols="6">
<InputText
:parentPrgmId="myPrgmId"
label="TAG명"
valueNm="tagNm"
:labelCols="2"
:textCols="9"
:searchOption="true"
/>
<v-col :cols="3">
<InputText :parentPrgmId="myPrgmId" label="TAG ID" valueNm="tagId" :labelCols="12"
:textCols="12" :searchOption="true" customClass="input-large" />
</v-col>
<v-col :cols="3">
<InputText :parentPrgmId="myPrgmId" label="TAG명" valueNm="tagNm" :labelCols="12"
:textCols="12" :searchOption="true" customClass="input-large" />
</v-col>
<v-col :cols="3" class="d-flex align-end justify-end text-right">
<BtnSearch @click="search" size="large" />
</v-col>
</v-row>
</v-card>
@ -66,63 +48,33 @@
<v-card class="pb-5">
<v-card-title class="d-flex justify-space-between align-end">
<span class="tit ft-size_20 ft-weight_600">TAG 정보</span>
<Buttons
:parentPrgmId="myPrgmId"
:bindingData="gridName"
:detailList="detailList"
:btnActionsFnc="btnActions"
/>
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :detailList="detailList"
:btnActionsFnc="btnActions" />
</v-card-title>
<v-card-actions>
<div
ref="gridParent"
class="w100"
style="height: calc(100vh - 360px)"
>
<component
:ref="gridName"
:is="loadGrid ? 'Grid' : null"
:gridName="gridName"
:parentPrgmId="myPrgmId"
@getRowsData="getRowData"
@sendSelectedRowStatInfo="getSelectedRowStatInfo"
:selectedRowDataWatchFlag="true"
/>
<div ref="gridParent" class="w100" style="height: calc(100vh - 400px)">
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
:parentPrgmId="myPrgmId" @getRowsData="getRowData"
@sendSelectedRowStatInfo="getSelectedRowStatInfo" :selectedRowDataWatchFlag="true" />
</div>
</v-card-actions>
</v-card>
</v-col>
<v-col :cols="7" class="h100">
<v-col :cols="7" class="">
<v-card class="pb-5">
<v-card-title>TAG 상세</v-card-title>
<div class="px-5" style="height:calc(100% - 70px)">
<v-tabs v-model="tab">
<v-tab
v-for="item in items"
:key="item.id"
:disabled="item.disabledFlag"
>
<v-tab v-for="item in items" :key="item.id" :disabled="item.disabledFlag">
{{ item.name }}
</v-tab>
</v-tabs>
<v-tabs-items
v-model="tab"
style="height: calc(100% - 65px);"
class="py-6"
>
<v-tabs-items v-model="tab" style="height: calc(100% - 65px);" class="py-6">
<v-tab-item v-for="(item, idx) in items" :key="item.id">
<component
v-if="item.id == 'tagBaseInfoTab'"
:is="'Form'"
:parentPrgmId="myPrgmId"
:detailList="detailList"
@gridEditingFinish="gridEditingFinish"
/>
<TagAddInfoTab
v-if="item.id == 'tagAddInfoTab'"
:parentPrgmId="myPrgmId"
:innerTabGridInfo="{ tab, idx }"
/>
<component v-if="item.id == 'tagBaseInfoTab'" :is="'Form'" :parentPrgmId="myPrgmId"
:detailList="detailList" @gridEditingFinish="gridEditingFinish" />
<TagAddInfoTab v-if="item.id == 'tagAddInfoTab'" :parentPrgmId="myPrgmId"
:innerTabGridInfo="{ tab, idx }" />
</v-tab-item>
</v-tabs-items>
</div>
@ -134,6 +86,7 @@
<script>
import { mapState, mapMutations, mapActions } from 'vuex';
import mixinGlobal from '@/mixin/global.js';
import { resize } from '@/mixin/resize.js';
import BtnSearch from '~/components/common/button/BtnSearch';
import Buttons from '~/components/common/button/Buttons';
import SelectBlocMstr from '@/components/common/select/SelectBlocMstr';
@ -149,7 +102,7 @@ let myTitle;
// const myPrgmId = "PRG0051";
let myPrgmId;
export default {
mixins: [mixinGlobal],
mixins: [mixinGlobal, resize],
async asyncData(context) {
const myState = context.store.state;
// context.store.commit("setActiveMenuInfo", myState.menuData[myPrgmId]);
@ -219,15 +172,19 @@ export default {
},
chkBlocId() {
this.setPageData({ isFind: true });
// this.search();
},
chkReadDataType() {
this.setPageData({ isFind: true });
// this.search();
},
chkReadObj() {
this.setPageData({ isFind: true });
// this.search();
},
chkUseFg() {
this.setPageData({ isFind: true });
// this.search();
},
},
async beforeCreate() {
@ -297,12 +254,16 @@ export default {
this.gridInit();
},
gridInit() {
const gridHeight = this.$refs.gridParent.offsetHeight - 30;
const gridHeight = this.$refs.gridParent.offsetHeight - 16;
const myOptions = {
columnOptions: {
resizable: true,
},
scrollX: true,
header: {
height: 38,
},
};
this.setGridOption({
gridKey: this.gridName,
@ -316,21 +277,21 @@ export default {
header: 'TAG ID',
name: 'tagId',
width: 'auto',
minWidth: 280,
minWidth: 340,
align: 'left',
},
{
header: 'TAG 명',
name: 'tagNm',
width: 'auto',
minWidth: 140,
minWidth: 220,
align: 'left',
},
{
header: '측정 값 유형',
name: 'readDataTypeCd',
width: 100,
align: 'center',
width: 90,
align: 'left',
formatter({ value }) {
let retVal = '';
const newValue = _this.pageData.readDataTypeCdList.filter(
@ -346,7 +307,7 @@ export default {
header: '측정대상',
name: 'readObjId',
width: 100,
align: 'center',
align: 'left',
formatter({ value }) {
let retVal = '';
const newValue = _this.pageData.readObjList.filter(
@ -363,7 +324,7 @@ export default {
header: '단위',
name: 'unitCd',
width: 80,
align: 'center',
align: 'left',
formatter({ value }) {
let retVal = '';
const newValue = _this.pageData.unitCdList.filter(
@ -493,6 +454,7 @@ export default {
readObjId: this.pageData.searchReadObj,
useFg: this.pageData.useFg,
tagNmLike: this.pageData.tagNm,
tagIdLike: this.pageData.tagId,
},
});
} else {
@ -751,7 +713,8 @@ export default {
});
this.$nextTick(() => {
this.setPageData({ isFind: true });
// this.setPageData({ isFind: true });
this.search();
});
}
} else {
@ -818,6 +781,7 @@ function isValidAlrmVal(obj) {
const defaultData = {
/* 검색옵션 */
tagId: '',
tagNm: '',
blocId: '',
blocMstrList: [],
@ -907,30 +871,39 @@ const myDetail = [
label: 'TAG ID',
valueNm: 'tagId',
disabled: false,
iconShow: true,
cols: 6,
class: 'py-2',
class: 'py-2 pr-4',
required: false,
labelCols: 12,
textCols: 12,
},
{
type: 'InputText',
label: 'TAG 명',
valueNm: 'tagNm',
disabled: false,
iconShow: true,
cols: 6,
class: 'py-2',
class: 'py-2 pl-4',
required: false,
labelCols: 12,
textCols: 12,
},
{
type: 'SelectBox',
label: '측정 값 유형',
valueNm: 'readDataTypeCd',
disabled: false,
iconShow: true,
cols: 6,
class: 'py-2',
class: 'py-2 pr-4 pt-5',
list: 'readDataTypeCdList',
itemText: 'commCdNm',
itemValue: 'commCd',
required: true,
labelCols: 12,
textCols: 12,
},
{
type: 'SelectBox',
@ -938,11 +911,14 @@ const myDetail = [
valueNm: 'readObjId',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pl-4 pt-5',
list: 'readObjList',
itemText: 'readObjNm',
itemValue: 'readObjId',
required: true,
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'InputText',
@ -950,8 +926,11 @@ const myDetail = [
valueNm: 'mgnf',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pr-4 pt-5',
required: true,
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'SelectBox',
@ -959,10 +938,13 @@ const myDetail = [
valueNm: 'unitCd',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pl-4 pt-5',
list: 'unitCdList',
itemText: 'commCdNm',
itemValue: 'commCd',
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'InputText',
@ -970,7 +952,10 @@ const myDetail = [
valueNm: 'rangMin',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pr-4 pt-5',
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'InputText',
@ -978,7 +963,10 @@ const myDetail = [
valueNm: 'rangMax',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pl-4 pt-5',
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'InputText',
@ -986,7 +974,10 @@ const myDetail = [
valueNm: 'alrmHihi',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pr-4 pt-5',
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'InputText',
@ -994,7 +985,10 @@ const myDetail = [
valueNm: 'alrmHi',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pl-4 pt-5',
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'InputText',
@ -1002,7 +996,10 @@ const myDetail = [
valueNm: 'alrmLo',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pr-4 pt-5',
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'InputText',
@ -1010,7 +1007,10 @@ const myDetail = [
valueNm: 'alrmLolo',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pl-4 pt-5',
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'CheckBox',
@ -1018,8 +1018,11 @@ const myDetail = [
valueNm: 'totFg',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pr-4 pt-5',
value: { '1': true, '0': false },
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'CheckBox',
@ -1027,9 +1030,12 @@ const myDetail = [
valueNm: 'useFg',
disabled: false,
cols: 6,
class: 'py-2',
class: 'py-2 pl-4 pt-5',
value: { '1': true, '0': false },
required: false,
iconShow: true,
labelCols: 12,
textCols: 12,
},
{
type: 'SelectBox',

View File

@ -69,7 +69,7 @@
</div>
</v-card>
</v-col>
<v-col :cols="7" class="h100">
<v-col :cols="7" class="">
<v-card class="pb-5">
<v-card-title>TAG 상세</v-card-title>
<div class="px-5" style="height:calc(100% - 70px)">

View File

@ -253,8 +253,9 @@ export class NewCustomRenderer {
} else {
el.type = 'text';
$(el).addClass('tui-grid-cell-content');
$(el).addClass('tui-grid-cell-content w100');
$(el).css('text-align', 'center');
$(el).css('border', '0');
}
this.render(props);
if(!this.disabled){
@ -314,6 +315,8 @@ export class NewCustomEditor {
this.rowKey = rowKey;
this.columnInfo = columnInfo;
this.grid = grid;
const divEl = document.createElement('div');
$(divEl).css('text-align', 'center');
const el = document.createElement('input');
if (
props.grid.store.data.rawData[props.rowKey].addInfoDataKind == 'FG'
@ -364,15 +367,19 @@ export class NewCustomEditor {
$(el).addClass('tui-grid-content-text');
}
divEl.append(el);
// console.log('props: %o', props);
// console.log('el: %o', el);
this.el = el;
this.divEl = divEl;
this.render(props);
}
getElement() {
return this.el;
return this.divEl;
}
getValue() {
@ -389,9 +396,9 @@ export class NewCustomEditor {
}
mounted() {
if (this.el.type == 'checkbox') {
$(this.el.parentElement).css('text-align', 'center');
}
// if (this.el.type == 'checkbox') {
// $(this.el.parentElement).css('text-align', 'center');
// }
this.el.select();
}
}