Merge branch 'dev' of http://218.237.212.51:30003/gitadmin/sk_fems_ui into dev-trungvq7-0729
This commit is contained in:
@ -22,8 +22,7 @@
|
||||
customClass="input-large"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="6" class="text-right">
|
||||
<!-- <v-btn @click="test = !test">WWW</v-btn> -->
|
||||
<v-col class="text-right d-flex justify-end align-end mr-3">
|
||||
<BtnSearch size="large" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
@ -31,8 +30,8 @@
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-row ref="contents" style="height: 100vh;">
|
||||
<v-col cols="12" lg="2" class="h100">
|
||||
<v-row ref="contents" >
|
||||
<v-col cols="12" lg="2" >
|
||||
<v-card>
|
||||
<v-card-title>
|
||||
<span class="custom-title-4">역할 리스트</span>
|
||||
@ -53,7 +52,7 @@
|
||||
</div>
|
||||
</v-card>
|
||||
</v-col>
|
||||
<v-col cols="12" lg="10" class="h100">
|
||||
<v-col cols="12" lg="10" >
|
||||
<v-card>
|
||||
<v-card-title>
|
||||
<span class="custom-title-4">역할 메뉴별 권한</span>
|
||||
@ -70,7 +69,7 @@
|
||||
:style="{ minHeight: '36px' }"
|
||||
>[미배정]메뉴리스트</span
|
||||
>
|
||||
<div class="px-5" style="height:calc(100% - 64px)">
|
||||
<div class="px-0 mt-2" style="height:calc(100% - 64px)">
|
||||
<div
|
||||
ref="treeGridParent"
|
||||
class="w100 h100"
|
||||
@ -113,7 +112,7 @@
|
||||
/>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<div class="px-5" style="height:calc(100% - 64px)">
|
||||
<div class="px-0 mt-2" style="height:calc(100% - 64px)">
|
||||
<div
|
||||
ref="treeGridParent2"
|
||||
class="w100 h100"
|
||||
@ -403,6 +402,17 @@ export default {
|
||||
];
|
||||
|
||||
const myTreeColumns = [
|
||||
{
|
||||
header: '',
|
||||
name: '',
|
||||
align: 'center',
|
||||
width: 30,
|
||||
formatter: (props) => {
|
||||
return `<label class="custom-radio">
|
||||
<span class="radio-mark"></span>
|
||||
</label>`;
|
||||
}
|
||||
},
|
||||
{
|
||||
header: '메뉴명',
|
||||
name: 'menuNm',
|
||||
@ -415,6 +425,17 @@ export default {
|
||||
},
|
||||
];
|
||||
const myTreeColumns2 = [
|
||||
{
|
||||
header: '',
|
||||
name: '',
|
||||
align: 'center',
|
||||
width: 30,
|
||||
formatter: (props) => {
|
||||
return `<label class="custom-radio">
|
||||
<span class="radio-mark"></span>
|
||||
</label>`;
|
||||
}
|
||||
},
|
||||
{ header: '역할ID', name: 'roleId', hidden: true },
|
||||
{ header: '메뉴ID', name: 'menuId', hidden: true },
|
||||
{ header: '메뉴명', name: 'menuNm', minWidth: '235' },
|
||||
|
@ -67,7 +67,6 @@
|
||||
:gridName="gridName"
|
||||
:parentPrgmId="myPrgmId"
|
||||
@getRowsData="getRowData"
|
||||
:dataPath="dataPathMock"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@ -132,22 +131,8 @@ export default {
|
||||
return {
|
||||
myPrgmId: myPrgmId,
|
||||
gridName: 'rowGrid',
|
||||
loadGrid: true,
|
||||
loadGrid: false,
|
||||
detailList: myDetail,
|
||||
dataPathMock : {
|
||||
rowGrid: {
|
||||
column: [
|
||||
{ header: '추가 정보 그룹', name: 'addGrpId', align: 'left' },
|
||||
{ header: '추가 정보 ID', name: 'addInfoId', align: 'left' },
|
||||
{ header: '추가 정보 명', name: 'addInfoNm', align: 'left' },
|
||||
{ header: 'Data 형식', name: 'addInfoDataKind', align: 'center' },
|
||||
{ header: '사용여부', name: 'useFg', align: 'center' },
|
||||
],
|
||||
data: dataMockExample,
|
||||
defaultRow: dataMockExample,
|
||||
option: {},
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -518,43 +503,4 @@ const myDetail = [
|
||||
placeholder: '시스템 자동입력',
|
||||
},
|
||||
];
|
||||
|
||||
const dataMockExample = [
|
||||
{
|
||||
addGrpId: 'GRP001',
|
||||
addInfoId: 'INFO001',
|
||||
addInfoNm: '온도 센서',
|
||||
addInfoDataKind: 'DATA01',
|
||||
useFg: true,
|
||||
},
|
||||
{
|
||||
addGrpId: 'GRP002',
|
||||
addInfoId: 'INFO002',
|
||||
addInfoNm: '압력 센서',
|
||||
addInfoDataKind: 'DATA02',
|
||||
useFg: false,
|
||||
},
|
||||
{
|
||||
addGrpId: 'GRP003',
|
||||
addInfoId: 'INFO003',
|
||||
addInfoNm: '압력 센서',
|
||||
addInfoDataKind: 'DATA03',
|
||||
useFg: false,
|
||||
},
|
||||
{
|
||||
addGrpId: 'GRP004',
|
||||
addInfoId: 'INFO004',
|
||||
addInfoNm: '압력 센서',
|
||||
addInfoDataKind: 'DATA04',
|
||||
useFg: false,
|
||||
},
|
||||
{
|
||||
addGrpId: 'GRP005',
|
||||
addInfoId: 'INFO005',
|
||||
addInfoNm: '압력 센서',
|
||||
addInfoDataKind: 'DATA05',
|
||||
useFg: false,
|
||||
},
|
||||
];
|
||||
|
||||
</script>
|
||||
|
@ -4,28 +4,24 @@
|
||||
<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="2">
|
||||
<InputText
|
||||
:parentPrgmId="myPrgmId"
|
||||
label="배치ID"
|
||||
valueNm="batchId"
|
||||
:searchOption="true"
|
||||
:iconShow="true"
|
||||
customClass="input-large"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="2.5">
|
||||
<v-col :cols="2">
|
||||
<InputText
|
||||
:parentPrgmId="myPrgmId"
|
||||
label="배치명"
|
||||
valueNm="batchNm"
|
||||
:searchOption="true"
|
||||
:iconShow="true"
|
||||
customClass="input-large"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="2.5">
|
||||
<v-col :cols="2">
|
||||
<component
|
||||
:is="'selectCodeList'"
|
||||
:parentPrgmId="myPrgmId"
|
||||
@ -33,21 +29,19 @@
|
||||
:dataKey="'execRsltCd'"
|
||||
:sendParam="{ commGrpCd: 'CO_BATCH_EXEC_RSLT', useFg: '1' }"
|
||||
:addAll="true"
|
||||
:iconShow="true"
|
||||
customClass="select-large"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="2.5">
|
||||
<v-col :cols="2">
|
||||
<component
|
||||
:is="'Datepicker'"
|
||||
:parentPrgmId="myPrgmId"
|
||||
:label="'조회기간'"
|
||||
:customClass="'input-large'"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="2" class="text-right d-flex align-end justify-end ga-1" style="gap: 4px">
|
||||
<BtnSearch size="large" />
|
||||
<BtnExcelDownload :parentPrgmId="myPrgmId" :gridName="gridName" size="large" />
|
||||
<v-spacer></v-spacer>
|
||||
<v-col :cols="4" class="text-right">
|
||||
<BtnSearch />
|
||||
<BtnExcelDownload :parentPrgmId="myPrgmId" :gridName="gridName" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-card>
|
||||
@ -63,11 +57,10 @@
|
||||
<div ref="gridParent" class="px-5 h100">
|
||||
<component
|
||||
:ref="gridName"
|
||||
:is=" 'Grid' "
|
||||
:is="loadGrid ? 'Grid' : null"
|
||||
:parentPrgmId="myPrgmId"
|
||||
:gridName="gridName"
|
||||
@getRowsData="getRowData"
|
||||
:dataPath="dataPathMock"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@ -140,56 +133,10 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
myPrgmId: myPrgmId,
|
||||
loadGrid: true,
|
||||
loadGrid: false,
|
||||
gridName: 'rowGrid',
|
||||
// rowGridOrigin: [],
|
||||
detailList: myDetail,
|
||||
dataPathMock : {
|
||||
'rowGrid': {
|
||||
column: [
|
||||
{ header: 'No.', name: 'batchLogSeq', align: 'center', width: 100 },
|
||||
{ header: '배치ID', name: 'batchId', align: 'center', width: 100 },
|
||||
{ header: '배치명', name: 'batchNm', align: 'left', width: 150 },
|
||||
{ header: '실행 일자', name: 'execDt', align: 'center', width: 80 },
|
||||
{
|
||||
header: '실행 결과',
|
||||
name: 'execRsltCd',
|
||||
align: 'center',
|
||||
width: 80,
|
||||
// formatter({ value }) {
|
||||
// let retVal = '';
|
||||
// const newValue = _this.pageData.execRsltCdList.filter(
|
||||
// item => item.commCd == value,
|
||||
// );
|
||||
// if (newValue.length > 0) {
|
||||
// retVal = newValue[0].commCdNm;
|
||||
// }
|
||||
// return retVal;
|
||||
// },
|
||||
}, // "1": 프로그램, "2": 팝업
|
||||
{ header: '실행 로그', name: 'execLogCont', minWidth: 150 },
|
||||
{
|
||||
header: '배치 시작 일시',
|
||||
name: 'batchStrtDttm',
|
||||
align: 'center',
|
||||
width: 160,
|
||||
},
|
||||
{
|
||||
header: '배치 종료 일시',
|
||||
name: 'batchEndDttm',
|
||||
align: 'center',
|
||||
width: 160,
|
||||
},
|
||||
{ header: '등록자NO', name: 'regUserNo', width: 120 },
|
||||
{ header: '등록일시', name: 'regDttm', align: 'center', width: 160 },
|
||||
{ header: '수정자NO', name: 'procUserNo', width: 120 },
|
||||
{ header: '수정일시', name: 'procDttm', align: 'center', width: 160 },
|
||||
],
|
||||
data: dataMockExample,
|
||||
defaultRow: dataMockExample,
|
||||
option: {},
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -248,14 +195,6 @@ export default {
|
||||
init() {
|
||||
// this.layoutInit();
|
||||
this.gridInit();
|
||||
|
||||
// _this.pageData = {
|
||||
// execRsltCdList: [
|
||||
// { commCd: '1', commCdNm: '성공' },
|
||||
// { commCd: '2', commCdNm: '실패' },
|
||||
// ],
|
||||
// };
|
||||
|
||||
},
|
||||
// layoutInit() {
|
||||
// const searchFilterHeight = this.$refs.searchFilter.offsetHeight;
|
||||
@ -368,13 +307,10 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
// async getRowData(data) {
|
||||
async getRowData() {
|
||||
console.log("something")
|
||||
async getRowData(data) {
|
||||
this.setPageData({
|
||||
// rowGridSelectKey: data.rowKey,
|
||||
rowGridSelectKey: 1,
|
||||
rowGridSelectData: fakeRowData,
|
||||
rowGridSelectKey: data.rowKey,
|
||||
rowGridSelectData: data,
|
||||
});
|
||||
},
|
||||
compareData(type, newDt) {
|
||||
@ -481,86 +417,16 @@ const defaultData = {
|
||||
},
|
||||
};
|
||||
|
||||
const dataMockExample = [
|
||||
{
|
||||
batchLogSeq: 1,
|
||||
batchId: 'BATCH001',
|
||||
batchNm: '일일 데이터 백업',
|
||||
execDt: '2025-07-15',
|
||||
execRsltCd: '1', // sẽ được formatter thành "성공" hoặc tương tự
|
||||
execLogCont: '백업 완료. 오류 없음.',
|
||||
batchStrtDttm: '2025-07-15 01:00:00',
|
||||
batchEndDttm: '2025-07-15 01:30:00',
|
||||
regUserNo: 'admin01',
|
||||
regDttm: '2025-07-15 01:00:00',
|
||||
procUserNo: 'admin02',
|
||||
procDttm: '2025-07-15 01:35:00',
|
||||
},
|
||||
{
|
||||
batchLogSeq: 2,
|
||||
batchId: 'BATCH002',
|
||||
batchNm: '월간 리포트 생성',
|
||||
execDt: '2025-07-01',
|
||||
execRsltCd: '2',
|
||||
execLogCont: '리포트 생성 중 오류 발생: 파일 접근 실패.',
|
||||
batchStrtDttm: '2025-07-01 03:00:00',
|
||||
batchEndDttm: '2025-07-01 03:10:00',
|
||||
regUserNo: 'reportUser',
|
||||
regDttm: '2025-07-01 03:00:00',
|
||||
procUserNo: 'admin03',
|
||||
procDttm: '2025-07-01 03:15:00',
|
||||
},
|
||||
{
|
||||
batchLogSeq: 3,
|
||||
batchId: 'BATCH003',
|
||||
batchNm: '사용자 통계 갱신',
|
||||
execDt: '2025-07-14',
|
||||
execRsltCd: '1',
|
||||
execLogCont: '통계 갱신 완료.',
|
||||
batchStrtDttm: '2025-07-14 23:00:00',
|
||||
batchEndDttm: '2025-07-14 23:20:00',
|
||||
regUserNo: 'statUser',
|
||||
regDttm: '2025-07-14 23:00:00',
|
||||
procUserNo: 'admin01',
|
||||
procDttm: '2025-07-14 23:25:00',
|
||||
},
|
||||
];
|
||||
|
||||
const fakeRowData = {
|
||||
rowKey: 1,
|
||||
batchLogSeq: 1,
|
||||
batchId: 'BATCH001',
|
||||
batchNm: '일일 데이터 백업',
|
||||
execDt: '2025-07-15',
|
||||
execRsltCd: '1',
|
||||
execLogCont: JSON.stringify({
|
||||
session: {
|
||||
userNo: 'admin01',
|
||||
userNm: '관리자',
|
||||
comId: 'SKCC',
|
||||
locale: 'ko_KR',
|
||||
},
|
||||
batch: {
|
||||
comId: 'SKCC',
|
||||
totStdDt: '20230110',
|
||||
},
|
||||
}),
|
||||
batchStrtDttm: '2025-07-15 01:00:00',
|
||||
batchEndDttm: '2025-07-15 01:30:00',
|
||||
regUserNo: 'admin01',
|
||||
regDttm: '2025-07-15 01:00:00',
|
||||
procUserNo: 'admin02',
|
||||
procDttm: '2025-07-15 01:35:00',
|
||||
};
|
||||
|
||||
|
||||
const myDetail = [
|
||||
{
|
||||
type: 'TextArea',
|
||||
valueNm: 'execLogCont',
|
||||
readonly: true,
|
||||
cols: 12,
|
||||
class: 'py-2 transparent',
|
||||
class: 'py-2',
|
||||
},
|
||||
];
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import '@/assets/scss/common.scss';
|
||||
</style>
|
||||
|
@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div class="l-layout">
|
||||
<CommonPageTitle />
|
||||
<!-- 리스트 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'list'" class="h1001">
|
||||
<v-card class="" >
|
||||
@ -14,10 +15,10 @@
|
||||
<!-- <v-btn @click="listPageButtonGroupClickEvent('delete')" :ripple="false">삭제</v-btn> -->
|
||||
</div>
|
||||
</v-col>
|
||||
<v-col :cols="12" ref="contents" class="mt-5">
|
||||
<div ref="gridParent" class="h100 px-50">
|
||||
<component :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||
ref="noticeMngGrid" @getRowsData="getRowData" :dataPath="dataPathMock" />
|
||||
<v-col :cols="12" ref="contents" class="mt-5" style="min-height: calc(100% - 76px);">
|
||||
<div ref="gridParent" class="px-50" style="min-height: 70vh;">
|
||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||
@getRowsData="getRowData" />
|
||||
</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@ -26,7 +27,7 @@
|
||||
</div>
|
||||
<!-- 리스트 페이지 끝 -->
|
||||
<!-- 상세보기 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'view'" class="h1001">
|
||||
<div v-if="pageActionFlag == 'view'" >
|
||||
<v-card>
|
||||
<v-row class="pa-5">
|
||||
<v-col :cols="12" class="d-flex align-center justify-space-between ">
|
||||
@ -44,25 +45,25 @@
|
||||
<a-button @click="viewPageButtonGroupClickEvent('delete')" type="danger" ghost icon="delete">삭제</a-button>
|
||||
</div>
|
||||
</v-col>
|
||||
<v-col :cols="12">
|
||||
<p class="custom-title-3 mb-2"> 제목 </p>
|
||||
<v-text-field v-model="viewActionData.title" class="v-input__custom" hide-details :readonly="true">
|
||||
</v-text-field>
|
||||
<v-col :cols="12" class="mt-5">
|
||||
<v-card-title class="custom-title-6 pa-0">{{ viewActionData.title }}</v-card-title>
|
||||
</v-col>
|
||||
<v-col :cols="12" style="min-height:calc(90vh - 218px);" class="pa-5">
|
||||
<v-col :cols="12" style="min-height: 30vh;" class="pa-0">
|
||||
<viewer v-if="viewActionData.viewerFlag" ref="tuiViewer" height="inherit"
|
||||
:initialValue="viewActionData.content" theme="white"
|
||||
:class="isDarkMode ? 'theme--white' : 'theme--black'" />
|
||||
:class="[isDarkMode ? 'theme--white' : 'theme--black', 'custom-view pa-3']" />
|
||||
</v-col>
|
||||
<v-col :cols="6">
|
||||
<p class="custom-title-3 mb-2">파일목록</p>
|
||||
<v-col :cols="6" class="mt-5">
|
||||
<v-card-title class="custom-title-7 pa-0">
|
||||
파일목록
|
||||
</v-card-title>
|
||||
<div v-for="fileData in viewActionData.fileData"
|
||||
:key="fileData.apndFileId"
|
||||
class="file-item">
|
||||
<a @click.prevent="downloadFile(fileData)">
|
||||
<div class="d-flex justify-space-between search-box-label">
|
||||
<div class="d-flex justify-start search-box-label">
|
||||
<v-icon>mdi-paperclip</v-icon>
|
||||
<span class="file-item-name">{{ fileData.apndFileNm + '.' + fileData.apndFileExt }}</span>
|
||||
<span class="file-item-name ml-2">{{ fileData.apndFileNm + '.' + fileData.apndFileExt }}</span>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
@ -72,28 +73,24 @@
|
||||
</div>
|
||||
<!-- 상세보기 페이지 끝 -->
|
||||
<!-- 작성 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'write'" class="h1001">
|
||||
<div v-if="pageActionFlag == 'write'" >
|
||||
<v-card>
|
||||
<div class="pa-5">
|
||||
<v-row class="pa-50">
|
||||
<v-col :cols="12" class="">
|
||||
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="custom-title-4-new mt-4">
|
||||
<p class="custom-title-3 mb-2">제목</p>
|
||||
<v-col :cols="12" class="mt-4">
|
||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
||||
<v-text-field v-model="writeActionData.title" class="v-input__custom" hide-details outlined>
|
||||
</v-text-field>
|
||||
</v-col>
|
||||
<v-col :cols="12" style="min-height: calc(90vh - 270px);">
|
||||
<v-col :cols="12" style="min-height: calc(100vh - 450px);">
|
||||
<editor ref="tuiEditor" height="100%" initialEditType="wysiwyg" />
|
||||
</v-col>
|
||||
|
||||
<v-col :cols="12" class="mt-2">
|
||||
<p class="custom-title-3 mb-2">
|
||||
파일첨부
|
||||
</p>
|
||||
</v-col>
|
||||
<v-col :cols="6">
|
||||
<v-col :cols="6" class="mt-5">
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="writeActionData.fileData">
|
||||
<div
|
||||
v-for="(fileData, index) in writeActionData.fileData"
|
||||
@ -129,25 +126,23 @@
|
||||
</div>
|
||||
<!-- 작성 페이지 끝 -->
|
||||
<!-- 답글 작성 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'reply'" class="h1001">
|
||||
<div v-if="pageActionFlag == 'reply'" >
|
||||
<v-card class="pa-5">
|
||||
<v-row align="center" class="mt-0">
|
||||
<v-col :cols="12" class="">
|
||||
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
|
||||
</v-col>
|
||||
<v-col :cols="12">
|
||||
<p class="custom-title-3 mb-2">제목</p>
|
||||
<v-text-field v-model="replyActionData.title" class="v-input__custom" placeholder="제목" outlined
|
||||
<v-col :cols="12" class="mt-4">
|
||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
||||
<v-text-field v-model="replyActionData.title" class="v-input__custom" outlined
|
||||
hide-details>
|
||||
</v-text-field>
|
||||
</v-col>
|
||||
<v-col :cols="12" style="height: calc(100vh - 270px);" class="mt-2">
|
||||
<editor ref="tuiReplyEditor" height="100%" initialEditType="wysiwyg" />
|
||||
</v-col>
|
||||
<v-col :cols="6" class="mt-4">
|
||||
<p class="custom-title-3 mb-2">
|
||||
파일첨부
|
||||
</p>
|
||||
<v-col :cols="6" class="mt-5">
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="replyActionData.fileData">
|
||||
<div
|
||||
v-for="(fileData, index) in replyActionData.fileData"
|
||||
@ -175,7 +170,7 @@
|
||||
</div>
|
||||
<!-- 답글 작성 페이지 끝 -->
|
||||
<!-- 수정 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'update'" class="h1001">
|
||||
<div v-if="pageActionFlag == 'update'" >
|
||||
<v-card>
|
||||
<div class="pa-5">
|
||||
<v-row align="center" no-gutters>
|
||||
@ -183,16 +178,16 @@
|
||||
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
|
||||
</v-col>
|
||||
<v-col :cols="12" class="mt-4">
|
||||
<p class="custom-title-3 mb-2">제목</p>
|
||||
<v-text-field v-model="updateActionData.title" class="v-input__custom" placeholder="" hide-details outlined>
|
||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
||||
<v-text-field v-model="updateActionData.title" class="v-input__custom" hide-details outlined>
|
||||
</v-text-field>
|
||||
</v-col>
|
||||
<v-col :cols="12" style="height: calc(90vh - 270px);" class="mt-4" >
|
||||
<editor ref="tuiUpdateEditor" height="100%" initialEditType="wysiwyg"
|
||||
:initialValue="updateActionData.content" />
|
||||
</v-col>
|
||||
<v-col :cols="6">
|
||||
<p class="pa-0 mb-2 custom-title-4-new-1">파일첨부</p>
|
||||
<v-col :cols="6" class="mt-5">
|
||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||
<div class="" v-if="updateActionData.fileData">
|
||||
<div
|
||||
v-for="(fileData, index) in updateActionData.fileData"
|
||||
@ -266,7 +261,8 @@ export default {
|
||||
myPrgmId: myPrgmId,
|
||||
//comId: "SEMPIO",
|
||||
//comId: this.userInfo.comId,
|
||||
comId: this.$store.state.userInfo.comId,
|
||||
// comId: this.$store.state.userInfo.comId,
|
||||
|
||||
bordNo: null,
|
||||
pageActionFlag: 'list',
|
||||
gridName: 'noticeMngGrid',
|
||||
@ -402,7 +398,6 @@ export default {
|
||||
this.getGridData();
|
||||
},
|
||||
gridInit() {
|
||||
this.loadGrid = false;
|
||||
const gridHeight = this.$refs.contents.offsetHeight - 76;
|
||||
|
||||
const myOptions = {};
|
||||
@ -466,13 +461,6 @@ export default {
|
||||
gridKey: this.gridName,
|
||||
value: columnList,
|
||||
});
|
||||
|
||||
// -----------------------TEST------------------
|
||||
this.dataPathMock[this.gridName] = {
|
||||
column: columnList,
|
||||
data: dataPathDataExample,
|
||||
}
|
||||
// -----------------------END TEST--------------
|
||||
this.getGridData();
|
||||
},
|
||||
async getGridData() {
|
||||
@ -481,23 +469,13 @@ export default {
|
||||
};
|
||||
|
||||
this.loadGrid = false;
|
||||
let res = null;
|
||||
try {
|
||||
res = await this.postApiReturn({
|
||||
apiKey: 'selectPostList',
|
||||
resKey: 'postData',
|
||||
sendParam: params,
|
||||
});
|
||||
}
|
||||
catch (err) { }
|
||||
finally {
|
||||
// -----Test mock data-------------
|
||||
if (null === res) {
|
||||
res = dataPathDataExample;
|
||||
}
|
||||
// -----End test
|
||||
}
|
||||
|
||||
const res = await this.postApiReturn({
|
||||
apiKey: 'selectPostList',
|
||||
resKey: 'postData',
|
||||
sendParam: params,
|
||||
});
|
||||
|
||||
this.setGridData({
|
||||
gridKey: this.gridName,
|
||||
value: res,
|
||||
@ -1068,4 +1046,19 @@ const dataPathDataExample = getPathDataExample({
|
||||
color: #1677FF;
|
||||
}
|
||||
}
|
||||
::v-deep {
|
||||
.v-input__slot {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
.custom-view {
|
||||
border: 1px solid;
|
||||
border-radius: 6px;
|
||||
height: 100%;
|
||||
@each $theme in dark, light {
|
||||
@include theme($theme);
|
||||
border-color: map-deep-get($config, #{$theme}, "v-input-textarea-border");;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -37,7 +37,7 @@
|
||||
|
||||
<v-row ref="contents">
|
||||
<!-- 프로그램 리스트 -->
|
||||
<v-col :cols="5" class="h100">
|
||||
<v-col :cols="5" >
|
||||
<v-card class="pb-5">
|
||||
<div class="d-flex align-center justify-space-between pa-5">
|
||||
<v-card-title class="pa-0">프로그램 리스트</v-card-title>
|
||||
@ -50,7 +50,7 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div style="min-height:calc(100% - 70px)">
|
||||
<div style="min-height: 60vh">
|
||||
<div ref="gridParent" class="px-5 h100">
|
||||
<component
|
||||
:ref="gridName"
|
||||
@ -65,7 +65,7 @@
|
||||
</v-card>
|
||||
</v-col>
|
||||
<!-- 프로그램 상세 -->
|
||||
<v-col :cols="7" class="h100">
|
||||
<v-col :cols="7" >
|
||||
<v-card class="pb-5">
|
||||
<div class="d-flex align-center justify-space-between pa-5">
|
||||
<v-card-title class="pa-0">프로그램 상세</v-card-title>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="l-layout">
|
||||
<common-page-title />
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter" class="mt-2">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="l-layout">
|
||||
<common-page-title />
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter" class="mt-2">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div ref="mainDiv" class="l-layout">
|
||||
<common-page-title />
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter" class="mt-2">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
|
@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div class="l-layout">
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
@ -34,23 +35,23 @@
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row ref="contents">
|
||||
<v-col :cols="5" class="h100">
|
||||
<v-col :cols="5" >
|
||||
<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">설비 정보</v-card-title>
|
||||
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :detailList="detailList"
|
||||
:btnActionsFnc="btnActions" />
|
||||
</div>
|
||||
<div class="px-5" style="min-height:calc(100% - 76px)">
|
||||
<div ref="gridParent" class="w100 h100">
|
||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||
@getRowsData="getRowData" @sendSelectedRowStatInfo="getSelectedRowStatInfo"
|
||||
:selectedRowDataWatchFlag="true" :preventFocusChangeEventFlag="false" :dataPath="dataPathMock" />
|
||||
</div>
|
||||
<div ref="gridParent" class="px-5" style="min-height:60vh;">
|
||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||
@getRowsData="getRowData" @sendSelectedRowStatInfo="getSelectedRowStatInfo"
|
||||
:selectedRowDataWatchFlag="true" :preventFocusChangeEventFlag="false" />
|
||||
<!-- <div ref="gridParent" class="w100 h100">
|
||||
</div> -->
|
||||
</div>
|
||||
</v-card>
|
||||
</v-col>
|
||||
<v-col :cols="7" class="h100">
|
||||
<v-col :cols="7" >
|
||||
<v-card class="pb-5">
|
||||
<v-card-title class="custom-title-4" style="min-height:76px;">설비 상세</v-card-title>
|
||||
<div class="px-5" style="min-height:calc(100% - 76px)">
|
||||
@ -287,7 +288,7 @@ export default {
|
||||
blocId: this.userInfo.blocId,
|
||||
},
|
||||
});
|
||||
console.log('res : ', res);
|
||||
// console.log('res : ', res);
|
||||
res.map(item => {
|
||||
const it = { text: item.ercNm, value: item.ercId };
|
||||
ercList.push(it);
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div ref="mainDiv" class="l-layout">
|
||||
<common-page-title />
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter" class="mt-2">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div ref="mainDiv" class="l-layout">
|
||||
<common-page-title />
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter" class="mt-2">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
|
@ -28,7 +28,7 @@
|
||||
customClass="select-large"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col :cols="3">
|
||||
<v-col :cols="3">
|
||||
<InputText
|
||||
:parentPrgmId="myPrgmId"
|
||||
label="검침대상명"
|
||||
@ -69,7 +69,6 @@
|
||||
@getRowsData="getRowData"
|
||||
@sendSelectedRowStatInfo="getSelectedRowStatInfo"
|
||||
:selectedRowDataWatchFlag="true"
|
||||
:dataPath="dataPathMock"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@ -81,7 +80,7 @@
|
||||
>검침대상 상세
|
||||
</v-card-title>
|
||||
<div class="px-5" style="height:calc(100% - 76px)">
|
||||
<v-tabs v-model="tab" >
|
||||
<v-tabs v-model="tab">
|
||||
<v-tab
|
||||
v-for="item in items"
|
||||
:key="item.id"
|
||||
@ -188,26 +187,8 @@ export default {
|
||||
return {
|
||||
myPrgmId: myPrgmId,
|
||||
gridName: 'rowGrid',
|
||||
loadGrid: true,
|
||||
loadGrid: false,
|
||||
tab: null,
|
||||
dataPathMock: {
|
||||
"rowGrid": {
|
||||
column: [
|
||||
{ header: '검침 대상 ID', name: 'readObjId', align: 'left' },
|
||||
{ header: '검침 대상 명', name: 'readObjNm', align: 'left' },
|
||||
{ header: '검침 대상 유형', name: 'readObjKind', align: 'left' },
|
||||
{ header: '그룹', name: 'grpCd', align: 'left' },
|
||||
{ header: 'TJ 환산계수', name: 'tjCvrtCoef', align: 'right' },
|
||||
{ header: 'TOE 환산계수', name: 'toeCvrtCoef', align: 'right' },
|
||||
{ header: 'CO2 환산계수', name: 'co2CvrtCoef', align: 'right' },
|
||||
{ header: '단위', name: 'unitCd', align: 'left' },
|
||||
{ header: '사용 여부', name: 'useFg', align: 'center' },
|
||||
],
|
||||
data: dataPathDataExample,
|
||||
defaultRow: dataPathDataExample,
|
||||
option: {}
|
||||
}
|
||||
},
|
||||
items: [
|
||||
{
|
||||
name: '검침 대상 정보',
|
||||
@ -724,8 +705,8 @@ const defaultData = {
|
||||
},
|
||||
buttonAuth: {
|
||||
add: true,
|
||||
save: true,
|
||||
remove: true,
|
||||
save: true,
|
||||
excel: false,
|
||||
},
|
||||
},
|
||||
@ -873,40 +854,7 @@ const myDetail = [
|
||||
required: true,
|
||||
},
|
||||
];
|
||||
const dataPathDataExample = [
|
||||
{
|
||||
readObjId: 'OBJ001',
|
||||
readObjNm: '서울 본사',
|
||||
readObjKind: 'TYPE01',
|
||||
grpCd: 'GRP01',
|
||||
tjCvrtCoef: 1.25,
|
||||
toeCvrtCoef: 0.85,
|
||||
co2CvrtCoef: 2.1,
|
||||
unitCd: 'kWh',
|
||||
useFg: '1',
|
||||
},
|
||||
{
|
||||
readObjId: 'OBJ002',
|
||||
readObjNm: '부산 지사',
|
||||
readObjKind: 'TYPE02',
|
||||
grpCd: 'GRP02',
|
||||
tjCvrtCoef: 1.10,
|
||||
toeCvrtCoef: 0.90,
|
||||
co2CvrtCoef: 1.8,
|
||||
unitCd: 'MJ',
|
||||
useFg: '0',
|
||||
},
|
||||
{
|
||||
readObjId: 'OBJ003',
|
||||
readObjNm: '대전 공장',
|
||||
readObjKind: 'TYPE03',
|
||||
grpCd: 'GRP01',
|
||||
tjCvrtCoef: 1.30,
|
||||
toeCvrtCoef: 0.95,
|
||||
co2CvrtCoef: 2.3,
|
||||
unitCd: 'GJ',
|
||||
useFg: '1',
|
||||
}
|
||||
];
|
||||
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import '@/assets/scss/common.scss';
|
||||
</style>
|
||||
|
@ -1,11 +1,6 @@
|
||||
<template>
|
||||
<div class="l-layout">
|
||||
<!-- <h2 class="title">
|
||||
<v-icon small color="primary" class="mr-1">mdi-circle</v-icon>
|
||||
계량 데이터 마감 관리
|
||||
</h2> -->
|
||||
<PageTitle text="계량 데이터 마감 관리" />
|
||||
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter">
|
||||
<!-- 조회조견 -->
|
||||
<v-col :cols="12">
|
||||
@ -75,8 +70,8 @@
|
||||
</v-row>
|
||||
<v-row ref="contents">
|
||||
<!-- 일일검침정보 목록-->
|
||||
<v-col :cols="12" class="h100">
|
||||
<v-card class="pb-5">
|
||||
<v-col :cols="12">
|
||||
<v-card class="pb-5 w100">
|
||||
<div class="d-flex align-center justify-space-between pa-5">
|
||||
<v-card-title class="custom-title-4 pa-0">일일검침정보</v-card-title>
|
||||
<div class="d-flex align-center">
|
||||
@ -91,20 +86,18 @@
|
||||
type="primary"
|
||||
:ripple="false"
|
||||
@click="saveReadResultCloseMng('N')"
|
||||
>일마감</a-button
|
||||
>
|
||||
일마감
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-5" style="min-height: calc(100% - 76px)">
|
||||
<div ref="gridParent" class="h100 w100">
|
||||
<div ref="gridParent" class="px-5 w100" style="min-height: 60vh">
|
||||
<component
|
||||
:is="loadGrid ? 'Grid' : null"
|
||||
:ref="gridName"
|
||||
:parentPrgmId="myPrgmId"
|
||||
:gridName="gridName"
|
||||
:dataPath="dataPathMock"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</v-card>
|
||||
</v-col>
|
||||
@ -123,7 +116,6 @@ import selectCodeList from "@/components/common/select/selectCodeList";
|
||||
import SelectMttList from "@/components/common/select/SelectMttList";
|
||||
import Datepicker from "~/components/common/Datepicker";
|
||||
import BtnExcelDownload from "~/components/common/button/BtnExcelDownload";
|
||||
import PageTitle from "~/components/common/PageTitle";
|
||||
|
||||
let myTitle;
|
||||
// const myPrgmId = "PRG0018";
|
||||
@ -151,13 +143,12 @@ export default {
|
||||
Datepicker,
|
||||
Search,
|
||||
Grid,
|
||||
PageTitle,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
myPrgmId: myPrgmId,
|
||||
gridName: "rowGrid",
|
||||
loadGrid: true,
|
||||
loadGrid: false,
|
||||
dataPathMock: {
|
||||
rowGrid: {
|
||||
column: [
|
||||
@ -260,7 +251,6 @@ export default {
|
||||
gridKey: this.gridName,
|
||||
value: myColumns,
|
||||
});
|
||||
this.loadGrid = true;
|
||||
},
|
||||
async search() {
|
||||
await this.getRowGridData();
|
||||
@ -288,8 +278,12 @@ export default {
|
||||
mgnf: item.mgnf || 0,
|
||||
})),
|
||||
});
|
||||
// console.log('--------------DEBUG-----res-------', res);
|
||||
}
|
||||
this.setPageData({ isFind: false });
|
||||
this.$nextTick(() => {
|
||||
this.loadGrid = true;
|
||||
})
|
||||
},
|
||||
//전월 or 일 마감--------------------------------------------------------------------------------------------
|
||||
async saveReadResultCloseMng(mnthYn) {
|
||||
|
@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div class="l-layout">
|
||||
<CommonPageTitle />
|
||||
<!-- Dataset 페이지 시작 -->
|
||||
<div v-if="pageActionFlag == 'list'" class="h100">
|
||||
<v-row ref="searchFilter">
|
||||
@ -34,23 +35,23 @@
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row ref="contents">
|
||||
<v-col :cols="5" class="h100">
|
||||
<v-col :cols="5" >
|
||||
<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">Data Set 리스트</v-card-title>
|
||||
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :detailList="detailList"
|
||||
:btnActionsFnc="btnActions" />
|
||||
</div>
|
||||
<div class="px-5" style="min-height:calc(100% - 76px)">
|
||||
<div ref="gridParent" class="w100 h100">
|
||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||
@getRowsData="getRowData" @sendSelectedRowStatInfo="getSelectedRowStatInfo"
|
||||
:selectedRowDataWatchFlag="true" />
|
||||
</div>
|
||||
<div ref="gridParent" class="px-5" style="min-height: 60vh">
|
||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||
@getRowsData="getRowData" @sendSelectedRowStatInfo="getSelectedRowStatInfo"
|
||||
:selectedRowDataWatchFlag="true" />
|
||||
<!-- <div ref="gridParent" class="w100 h100">
|
||||
</div> -->
|
||||
</div>
|
||||
</v-card>
|
||||
</v-col>
|
||||
<v-col :cols="7" class="h100">
|
||||
<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>
|
||||
|
@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div class="l-layout">
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
@ -158,8 +159,8 @@ export default {
|
||||
},
|
||||
async created() { },
|
||||
async mounted() {
|
||||
this.initTest();
|
||||
return;
|
||||
// this.initTest();
|
||||
// return;
|
||||
|
||||
this.init();
|
||||
// document.querySelector('.icon_arrow').style.width = document.querySelector('.iconArrowCols').clientWidth-20 + "px";
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="l-layout">
|
||||
<PageTitle text="효율성 지표 보고서" />
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
@ -98,7 +98,6 @@ import Chart from '~/components/common/Chart';
|
||||
import EqpmSelectPop from '~/components/common/modal/EqpmSelectPop';
|
||||
import DateUtility from '~/plugins/dateUtility';
|
||||
import XLSX from 'xlsx';
|
||||
import PageTitle from "~/components/common/PageTitle";
|
||||
|
||||
let myTitle;
|
||||
let myPrgmId;
|
||||
@ -130,7 +129,6 @@ export default {
|
||||
EqpmSelectPop,
|
||||
DateUtility,
|
||||
XLSX,
|
||||
PageTitle,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div ref="mainDiv" class="l-layout">
|
||||
<CommonPageTitle />
|
||||
<v-row ref="searchFilter">
|
||||
<v-col :cols="12">
|
||||
<v-card class="searchFilter">
|
||||
@ -9,20 +10,20 @@
|
||||
</v-col>
|
||||
<v-col :cols="2.5">
|
||||
<component :is="'SelectBox'" ref="SelectBox1" :propsValue="selectValue01" :itemList="selectValueList01"
|
||||
:label="'FAB'" @update:propsValue="selectValue01 = $event" :iconShow="false" />
|
||||
:label="'FAB'" @update:propsValue="selectValue01 = $event" :iconShow="false" customClass="select-large" />
|
||||
</v-col>
|
||||
<v-col :cols="2.5">
|
||||
<component :is="'SelectBox'" ref="SelectBox2" :propsValue="selectValue02" :itemList="selectValueList02"
|
||||
:label="'설비종류'" @update:propsValue="selectValue02 = $event" :iconShow="false" />
|
||||
:label="'설비종류'" @update:propsValue="selectValue02 = $event" :iconShow="false" customClass="select-large"/>
|
||||
</v-col>
|
||||
<v-col :cols="2.5">
|
||||
<component :is="'SelectBox'" ref="SelectBox3" :propsValue="selectValue03" :itemList="selectValueList03"
|
||||
:label="'설비그룹'" @update:propsValue="selectValue03 = $event" :iconShow="false" />
|
||||
:label="'설비그룹'" @update:propsValue="selectValue03 = $event" :iconShow="false" customClass="select-large" />
|
||||
</v-col>
|
||||
|
||||
<BtnSearch @click="search" />
|
||||
<v-col>
|
||||
</v-col>
|
||||
<BtnSearch size="large" @click="search" />
|
||||
<!-- <v-col>
|
||||
</v-col> -->
|
||||
<component ref="EnrgUsePlanModiPop" :is="'EnrgUsePlanModiPop'" :label="'test'" :parentPrgmId="myPrgmId"
|
||||
@gridEditingFinish="gridEditingFinish" />
|
||||
</v-row>
|
||||
@ -30,18 +31,15 @@
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row ref="contents">
|
||||
<v-col :cols="12" style="height: 100%">
|
||||
<v-card class="pb-5 h100">
|
||||
<v-col :cols="12" >
|
||||
<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>
|
||||
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :btnActionsFnc="btnActions" />
|
||||
</div>
|
||||
<div class="h100 px-5" style="height:calc(100% - 70px)">
|
||||
<div ref="gridParent" class="w100 h100">
|
||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||
:editorGrid="true" @getRowsData="getRowData" :dataPath="dataPathMock" />
|
||||
|
||||
</div>
|
||||
<div ref="gridParent" class="px-5" style="min-height: 60vh;">
|
||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||
:editorGrid="true" @getRowsData="getRowData" />
|
||||
</div>
|
||||
</v-card>
|
||||
</v-col>
|
||||
@ -171,8 +169,8 @@ export default {
|
||||
created() { },
|
||||
async mounted() {
|
||||
// -------
|
||||
this.initTest();
|
||||
return;
|
||||
// this.initTest();
|
||||
// return;
|
||||
// ========End test===========
|
||||
await this.init();
|
||||
this.initedFlag = true;
|
||||
@ -420,53 +418,25 @@ export default {
|
||||
|
||||
class CustumButton {
|
||||
constructor(props) {
|
||||
// v-btn v-btn--is-elevated v-btn--has-bg theme--dark v-size--default
|
||||
const el = document.createElement('button');
|
||||
const { grid, rowKey, columnInfo } = props;
|
||||
|
||||
$(el).addClass('tui-grid-cell-content');
|
||||
// $(el).css('text-align', 'center');
|
||||
el.classList.add('v-btn');
|
||||
// el.style.width = '80%';
|
||||
// el.style.height = '80%';
|
||||
// el.style.boxShadow = '0px 0px 0px 2px #cbced6';
|
||||
// el.style.background = 'linear-gradient(to bottom, #242940 5%, #476e9e 100%)';
|
||||
// el.style.backgroundColor = '#144985';
|
||||
el.style.borderRadius = '7px';
|
||||
el.style.border = '1px solid #4e6096';
|
||||
// el.style.display = 'inline-block';
|
||||
// el.style.cursor = 'pointer';
|
||||
el.style.color = '#ffffff';
|
||||
// el.style.fontFamily = 'Arial';
|
||||
el.style.padding = '6% 3%';
|
||||
const gridData = grid.store.data.rawData;
|
||||
const value = gridData[rowKey][columnInfo.name];
|
||||
|
||||
// el.style.textDecoration = 'none';
|
||||
// el.style.textShadow = '0px 1px 0px #283966';
|
||||
|
||||
el.innerText = columnInfo.renderer.options.value;
|
||||
this.el = el;
|
||||
this.disabled = columnInfo.renderer.options.disabled || false;
|
||||
const elDiv = document.createElement('div');
|
||||
elDiv.innerHTML = `<span>${value}</span>`;
|
||||
$(elDiv).addClass('tui-grid-cell-content d-flex justify-space-between');
|
||||
const el2 = document.createElement('button');
|
||||
$(el2).addClass('edit-btn blue--text');
|
||||
el2.innerText = 'Edit';
|
||||
elDiv.appendChild(el2);
|
||||
|
||||
this.el = elDiv;
|
||||
|
||||
if (!this.disabled) {
|
||||
// hover 기능 구현
|
||||
this.el.addEventListener('mouseover', function (event) {
|
||||
// console.log('darkModeFg', _this.darkModeFg);
|
||||
// console.log('event',event.fromElement);
|
||||
// console.log('event',document.defaultView.getComputedStyle(el).getPropertyValue('background-color'));
|
||||
// rgb(85, 130, 220) // light
|
||||
// el.style.backgroundColor = '#26578F'; // rgb(20, 73, 133) // dark
|
||||
// let btnColor = _this.darkModeFg? {mouseOver: '#26578F', mouseOut: '#144985'} : {mouseOver: 'rgb(85, 130, 220)', mouseOut: 'rgb(71, 119, 217)'};
|
||||
// el.style.backgroundColor = btnColor['mouseOver'];
|
||||
});
|
||||
this.el.addEventListener('mouseout', function (event) {
|
||||
// rgb(71, 119, 217) // light
|
||||
// el.style.backgroundColor = '#144985'; // dark
|
||||
// console.log('event',event.fromElement);
|
||||
// let btnColor = _this.darkModeFg? {mouseOver: '#26578F', mouseOut: '#144985'} : {mouseOver: 'rgb(85, 130, 220)', mouseOut: 'rgb(71, 119, 217)'};
|
||||
// el.style.backgroundColor = btnColor['mouseOut'];
|
||||
});
|
||||
// click 이벤트
|
||||
this.el.addEventListener('click', function (event) {
|
||||
el2.addEventListener('click', function (event) {
|
||||
let gridData = grid.store.data.rawData;
|
||||
let rowNum = gridData[rowKey].rowNum;
|
||||
let selectedGridData = gridData.filter(item => {
|
||||
@ -537,18 +507,25 @@ export default {
|
||||
minWidth: 200,
|
||||
align: 'left',
|
||||
// hidden: true,
|
||||
formatter: ({ value, row }) => {
|
||||
return `
|
||||
<span>${value}</span>
|
||||
<button class="edit-btn" data-row='${JSON.stringify(row)}'>Edit</button>
|
||||
`;
|
||||
}
|
||||
// formatter: ({ value, row }) => {
|
||||
// return `
|
||||
// <span>${value}</span>
|
||||
// <button class="edit-btn" data-row='${JSON.stringify(row)}'>Edit</button>
|
||||
// `;
|
||||
// }
|
||||
renderer: {
|
||||
type: CustumButton,
|
||||
options: {
|
||||
value: '계획수정',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
header: '',
|
||||
name: 'btnCol',
|
||||
width: 70,
|
||||
align: 'center',
|
||||
hidden: true,
|
||||
renderer: {
|
||||
type: CustumButton,
|
||||
options: {
|
||||
|
Reference in New Issue
Block a user