Compare commits

...

9 Commits

23 changed files with 787 additions and 768 deletions

View File

@ -444,6 +444,10 @@ a {
.v-application.#{$theme}-mode {
min-width: 1000px;
.icon-datepicker-color {
color: map-deep-get($config, #{$theme}, "icon-datepicker-color");
}
.head-logo {
gap: 8px;
}

View File

@ -66,6 +66,10 @@
}
}
}
.v-icon {
color: map-deep-get($config, #{$theme}, "v-icon-chevron-down") !important;
}
}
.v-input__custom {

View File

@ -183,7 +183,8 @@ $config: (
ant-btn-popup-color: #FFFFFFD9,
ant-btn-popup-border: #424242,
paging-background: #212224,
paging-text: #FFFFFFD9
paging-text: #FFFFFFD9,
icon-datepicker-color: #FFFFFF73,
),
light: (w-g5: $--color-gray_555,
g5-w: $--color-white,
@ -330,6 +331,7 @@ $config: (
ant-btn-popup-color: #000000E0,
ant-btn-popup-border: #D9D9D9,
paging-background: #FFFFFF,
paging-text: #000000E0
paging-text: #000000E0,
icon-datepicker-color: #00000073,
),
);

View File

@ -61,10 +61,6 @@ export default {
require: false,
default: true
},
labelClass: {
type: String,
require: false,
},
},
data() {
return {

View File

@ -19,8 +19,11 @@
readonly
outlined
>
<template #append >
<!-- <template #append >
<v-icon size="20" v-show="!isRange">$icoCalendar</v-icon>
</template> -->
<template v-slot:append>
<a-icon class="v-icon" type="calendar" style="width: 14px; height: 14px;" />
</template>
<template #append-outer>
<div ref="startpicker-container" id="startpicker-container"></div>

View File

@ -158,7 +158,7 @@ export default {
}, 500);
},
},
created() {},
created() { },
async mounted() {
// console.log(this.dataPath);
if (this.gridName) {
@ -166,9 +166,9 @@ export default {
this.scrollBody = document
.getElementsByClassName('tui-grid-rside-area')
[
document.getElementsByClassName('tui-grid-rside-area').length - 1
].getElementsByClassName('tui-grid-body-area')[0];
[
document.getElementsByClassName('tui-grid-rside-area').length - 1
].getElementsByClassName('tui-grid-body-area')[0];
this.scrollBody.addEventListener('scroll', e => {
this.gridScrollTop = e.target.scrollTop;
@ -344,14 +344,14 @@ export default {
'row-removed',
);
}
await this.gridInstance.invoke(
e.rowEditingFg != undefined ? 'setValue' : this.editorGrid ? 'finishEditing' : 'setValue',
rowIdxKey,
columnName,
value,
);
if (isBaseRow) {
const isSameData = await this.compareData(editingData);
@ -606,18 +606,20 @@ export default {
list.map(item => this.gridInstance.invoke('check', item));
},
refreshLayout() {
// console.log("---------DEBUG---refreshLayout: ");
this.gridInstance.invoke('refreshLayout');
setTimeout(() => {
this.gridInstance.invoke('refreshLayout');
}, 150);
// this.gridInstance.invoke('refreshLayout');
},
refreshGrid(){
refreshGrid() {
// console.log("refreshLayout",this.$refs['tuigrid' + this.gridName])
var store = this.$refs['tuigrid' + this.gridName].gridInstance.store;
var containerEl = this.$refs['tuigrid' + this.gridName].$el;
// var containerEl = document.querySelector('.tui-grid-container')
var parentEl = containerEl.parentElement;
var store = this.$refs['tuigrid' + this.gridName].gridInstance.store;
var containerEl = this.$refs['tuigrid' + this.gridName].$el;
// var containerEl = document.querySelector('.tui-grid-container')
var parentEl = containerEl.parentElement;
// console.log("---------DEBUG---containerEl: ",containerEl);
// console.log('---------DEBUG---parentEl: ', parentEl)
// console.log('---------DEBUG---parentEl: ', parentEl)
// function refreshLayout(store, containerEl, parentEl) {
var dimension = store.dimension;
var autoWidth = dimension.autoWidth, fitToParentHeight = dimension.fitToParentHeight;
@ -636,35 +638,35 @@ export default {
// console.log("parentEl.clientHeight" , parentEl.clientHeight)
// console.log("clientHeight : ",clientHeight);
if (parentEl && parentEl.clientHeight !== clientHeight) {
var _b = getComputedStyle(parentEl), paddingTop = _b.paddingTop, paddingBottom = _b.paddingBottom;
this.setHeight(store, parentEl.clientHeight - (parseFloat(paddingTop) + parseFloat(paddingBottom)));
var _b = getComputedStyle(parentEl), paddingTop = _b.paddingTop, paddingBottom = _b.paddingBottom;
this.setHeight(store, parentEl.clientHeight - (parseFloat(paddingTop) + parseFloat(paddingBottom)));
}
// }
// }
},
setOffsetTop(store, offsetTop) {
setOffsetTop(store, offsetTop) {
// console.log("---------DEBUG---setOffsetTop: ");
store.dimension.offsetTop = offsetTop;
},
setWidth(_a, width, autoWidth) {
store.dimension.offsetTop = offsetTop;
},
setWidth(_a, width, autoWidth) {
// console.log("---------DEBUG---setWidth: ");
var dimension = _a.dimension;
dimension.autoWidth = autoWidth;
dimension.width = width;
},
setHeaderHeight(store, height) {
var dimension = _a.dimension;
dimension.autoWidth = autoWidth;
dimension.width = width;
},
setHeaderHeight(store, height) {
// console.log("---------DEBUG---setHeaderHeight: ");
store.dimension.headerHeight = height;
},
setOffsetLeft(store, offsetLeft) {
store.dimension.headerHeight = height;
},
setOffsetLeft(store, offsetLeft) {
// console.log("---------DEBUG---setOffsetLeft: ");
store.dimension.offsetLeft = offsetLeft;
},
setHeight(_a,height){
store.dimension.offsetLeft = offsetLeft;
},
setHeight(_a, height) {
// console.log("---------DEBUG---setHeight: ");
var dimension = _a.dimension;
var headerHeight = dimension.headerHeight, summaryHeight = dimension.summaryHeight, tableBorderWidth = dimension.tableBorderWidth;
dimension.bodyHeight = height - headerHeight - summaryHeight - tableBorderWidth;
},
var dimension = _a.dimension;
var headerHeight = dimension.headerHeight, summaryHeight = dimension.summaryHeight, tableBorderWidth = dimension.tableBorderWidth;
dimension.bodyHeight = height - headerHeight - summaryHeight - tableBorderWidth;
},
sendSelectedRowData(eventRowKey) {
if (this.selectedRowDataWatchFlag) {
var rowKey =

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" class="custom-action-btn">
<a-button @click="directionBtn === 'vertically' ? btnActionsFnc('removeRightToLeft') : btnActionsFnc('addLeftToRight')" type="primary" ghost :icon="directionBtn === 'vertically'? icons.remove :icons.add " class="custom-action-btn">
</a-button>
<a-button @click="btnActionsFnc('addLeftToRight')" type="primary" ghost :icon="icons.add" class="custom-action-btn">
<a-button @click="directionBtn === 'vertically' ? btnActionsFnc('removeRightToLeft') :btnActionsFnc('removeRightToLeft')" type="primary" ghost :icon="directionBtn === 'vertically'? icons.add :icons.remove" class="custom-action-btn">
</a-button>
</div>
</template>

View File

@ -0,0 +1,46 @@
// Sankey chart options
export function getSankeyChartOption({ isDarkMode = false, data = [], links = [] }) {
const chartOption = {
backgroundColor: '#FFFFFF',
series: [
{
data,
links,
layoutIterations: 0,
type: 'sankey',
left: 25.0,
top: 20.0,
right: 120,
bottom: 50.0,
nodeGap: 10,
nodeAlign: 'left',
lineStyle: {
color: 'source',
curveness: 0.5,
},
// nodeWidth:10,
// triggerEvent: true,
itemStyle: {
//color: '#1f77b4',
//borderColor: '#1f77b4'
},
label: {
color: isDarkMode
? '#FFFFFFD9'
: '#000000E0',
// fontFamily: 'Arial',
fontSize: 14,
},
},
],
tooltip: {
trigger: 'item',
},
};
return chartOption;
}
export default getSankeyChartOption;

View File

@ -3,12 +3,13 @@
<v-col v-if="item.label" :cols="item.labelCols !== undefined ? item.labelCols : item.cols == 12 ? 2 : 4">
<label for="" class="search-box-label">
<v-icon
x-small
:color="item.required ? '#fb8200' : 'primary'"
class="mr-1"
>mdi-record-circle</v-icon
v-if="item.iconShow"
small
:class="['mr-1', item.required ? 'icon-orange' : 'icon-blue']"
>$icoBulletPoint</v-icon
>
{{ item.label }}
<span v-if="item.essential">*</span>
</label>
<!-- <label for="" class="search-box-label ft-size_14 ft-clr_g-c">
{{ item.label }}
@ -39,12 +40,12 @@
</template>
</v-col>
<v-dialog v-model="dialog" scrollable width="540px">
<v-dialog v-model="dialog" scrollable width="504px">
<v-card style="height: 100%">
<v-card-title>
<span class="custom-title-4">비밀번호 {{ isPassword }}</span>
<v-card-title class="px-4">
<span class="custom-title-4" style="padding-left: 1px;">비밀번호 {{ isPassword }}</span>
</v-card-title>
<v-card-text class="pb-4">
<v-card-text class="pb-4 px-3">
<v-col>
<label for="" class="search-box-label">
{{ isPassword }} 비밀번호를 입력하세요

View File

@ -404,8 +404,8 @@ export default {
rowHeight: 'auto',
};
if (this.isMulti) {
// myOptions['rowHeaders'] = [{ type: 'checkbox' }];
// myOptions['rowHeight'] = 'auto';
myOptions['rowHeaders'] = [{ type: 'checkbox' }];
myOptions['rowHeight'] = 'auto';
}
@ -523,12 +523,11 @@ export default {
this.loadGrid = true;
// this.$nextTick(() => {
// if (this.isMulti) {
// this.getChecked();
// }
// });
this.$nextTick(() => {
if (this.isMulti) {
this.getChecked();
}
});
},
setUpdate() {
if (this.isMulti) {

View File

@ -1,5 +1,5 @@
<template>
<v-row class="search-box no-gutters" align="center">
<v-row class="search-box" align="center">
<v-col :cols="option.labelCols" class="py-0">
<label for="" class="search-box-label">
<v-icon v-if="item.iconShow" small

View File

@ -4,7 +4,7 @@
class="d-flex justify-space-between align-center"
style="height: 80px;"
>
<span class="txt custom-title-4-new">공정 추가 정보</span>
<span class="txt custom-subtitle-tab">공정 추가 정보</span>
<Buttons
:parentPrgmId="parentPrgmId"
:bindingData="gridName"

View File

@ -11,7 +11,7 @@
:btnActionsFnc="btnActions"
/>
</div>
<div ref="gridParent" style="height: calc(100vh - 700px);">
<div ref="gridParent" style="height: calc(90vh - 700px);">
<component
:ref="gridName"
:is="loadGrid ? 'Grid' : null"
@ -21,7 +21,7 @@
:innerTabGridInfo="innerTabGridInfo"
/>
</div>
<div style="height: 60vh;" class="mt-5">
<div style="height: 25vh;" class="mt-5">
<component
:is="'Form'"
:bindingData="gridName"
@ -98,17 +98,19 @@ export default {
watch: {
selectedObjId(val) {
if (val === 'TAG') {
this.detailList[2].class = 'py-2 d-none';
this.detailList[3].class = 'py-2 d-none';
this.detailList[4].class = 'py-2';
this.detailList[5].class = 'py-2';
this.detailList[1].class = 'd-none';
this.detailList[2].class = 'd-block pl-4';
this.detailList[3].class = 'd-block';
} else {
// }else if(val==="READ_PLC"){
this.detailList[5].class = 'py-2 d-none';
this.detailList[4].class = 'py-2 d-none';
this.detailList[3].class = 'py-2';
this.detailList[2].class = 'py-2';
this.detailList[3].class = 'd-block';
this.detailList[2].class = 'd-none';
this.detailList[1].class = 'd-block pl-4';
}
this.detailList[4].class = 'pl-4 mt-2';
console.log(val)
console.log(this.detailList)
},
},
created() {},
@ -188,6 +190,7 @@ export default {
{ header: '대상 명', name: 'objNm', width: 300, align: 'left' },
{
header: '에너지원 명',
width: 150,
name: 'ercId',
align: 'left',
formatter({ value }) {
@ -204,8 +207,9 @@ export default {
},
{
header: '대상 유형',
width: 150,
name: 'objKind',
align: 'center',
align: 'left',
formatter({ value }) {
var retVal = '';
@ -221,7 +225,8 @@ export default {
{
header: '투입 생산 유형',
name: 'inProdKind',
align: 'center',
width: 150,
align: 'left',
formatter({ value }) {
var retVal = '';
@ -237,7 +242,8 @@ export default {
{
header: '계산 여부',
name: 'calcFg',
align: 'center',
width: 150,
align: 'left',
formatter({ value }) {
value = value === true ? '1' : '0';
const newValue = _this.pageData.useFgList.filter(
@ -247,7 +253,7 @@ export default {
// return value === true ? "사용" : "사용안함";
},
},
{ header: '분배율(1~100)', name: 'distRt', align: 'right' },
{ header: '분배율(1~100)', name: 'distRt', align: 'right', width: 150 },
{ header: '사업장', name: 'blocId', align: 'center', hidden: true },
{ header: '등록 사용자', name: 'regUserNo', hidden: true },
{ header: '등록 일자', name: 'regDttm', hidden: true },
@ -374,7 +380,7 @@ const myDetail = [
label: '대상 유형',
disabled: false,
cols: 6,
class: 'py-2 pr-4',
class: 'pr-4',
list: 'emMapDivList',
valueNm: 'objKind',
itemText: 'commCdNm',
@ -391,7 +397,7 @@ const myDetail = [
valueNm: 'objId',
disabled: false,
cols: 6,
class: 'pt-2 pb-0 mb-0 pl-4',
class: 'pl-4 py-2',
required: true,
bindNm: 'objNm',
labelCols: 12,
@ -400,24 +406,6 @@ const myDetail = [
noText: true,
iconShow: true,
},
{
// 공백 처리
type: 'Label',
cols: 6,
class: 'py-2 pr-4',
disabled: false,
},
{
type: 'InputText',
valueNm: 'objNm',
readonly: true,
disabled: true,
cols: 6,
class: 'pl-4',
labelCols: 12,
textCols: 12,
iconShow: true,
},
{
type: 'EvtObjPop',
labelContent: '대상 항목',
@ -428,16 +416,23 @@ const myDetail = [
disabled: true,
required: true,
cols: 6,
class: 'd-none pr-4',
class: 'd-none pr-4 py-2',
disableContent: true,
labelCols: 12,
textCols: 12,
iconShow: true,
},
{
// 공백 처리
type: 'Label',
cols: 6,
class: 'py-2 pr-4',
disabled: false,
},
{
type: 'InputText',
cols: 6,
class: 'd-none pt-0 pl-4',
class: 'pt-0 pl-4 mt-2 py-2',
valueNm: 'objNm',
readonly: true,
disabled: true,
@ -450,7 +445,7 @@ const myDetail = [
label: '에너지원',
disabled: false,
cols: 6,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
list: 'ercNmList',
valueNm: 'ercId',
itemText: 'text',
@ -465,7 +460,7 @@ const myDetail = [
label: '투입생산유형',
disabled: false,
cols: 6,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
list: 'cmInoutList',
valueNm: 'inProdKind',
itemText: 'commCdNm',
@ -478,7 +473,7 @@ const myDetail = [
{
type: 'CheckBox',
cols: 6,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
label: '계산 여부',
valueNm: 'calcFg',
disabled: false,
@ -495,7 +490,7 @@ const myDetail = [
valueNm: 'distRt',
readonly: false,
cols: 6,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
required: true,
labelCols: 12,
textCols: 12,

View File

@ -332,7 +332,7 @@ const myReadPlcTagDetail = [
valueNm2: 'tagNm',
disabled: true,
cols: 6,
class: 'pr-4 pb-2 py-2',
class: 'pr-4 pb-2 py-2 mt-2',
required: true,
labelCols: 12,
textCols: 12,
@ -345,7 +345,7 @@ const myReadPlcTagDetail = [
valueNm: 'ercId',
disabled: false,
cols: 6,
class: 'pl-4 pb-2 py-3',
class: 'pl-4 pb-2 py-3 mt-2',
list: 'ercNmList',
itemText: 'text',
itemValue: 'value',
@ -360,7 +360,7 @@ const myReadPlcTagDetail = [
readonly: true,
cols: 6,
textCols: 12,
class: 'pt-1 py-3 pr-4',
class: 'pt-1 py-3 pr-4 mt-2',
required: true,
},
{
@ -372,7 +372,7 @@ const myReadPlcTagDetail = [
valueNm: 'distRt',
disabled: false,
cols: 6,
class: 'py-3 pr-4',
class: 'py-3 pr-4 mt-2',
inputType: 'number',
min: 1,
max: 100,
@ -387,7 +387,7 @@ const myReadPlcTagDetail = [
valueNm: 'reprTagFg',
disabled: false,
cols: 6,
class: 'py-3 pl-4',
class: 'py-3 pl-4 mt-2',
value: { '1': true, '0': false },
required: true,
labelCols: 12,
@ -401,7 +401,7 @@ const myReadPlcTagDetail = [
valueNm: 'useFg',
disabled: false,
cols: 6,
class: 'py-3 pr-4',
class: 'py-3 pr-4 mt-2',
value: { '1': true, '0': false },
required: true,
labelCols: 12,
@ -414,7 +414,7 @@ const myReadPlcTagDetail = [
valueNm: 'rmrk',
disabled: false,
cols: 6,
class: 'py-3 pl-4',
class: 'py-3 pl-4 mt-2',
inputType: 'string',
labelCols: 12,
textCols: 12,

View File

@ -90,7 +90,7 @@
<!-- 사용자 정보 -->
<v-col :cols="7" class="h100">
<v-card class="pb-5 h100">
<v-card-title class="custom-title-4">사용자 정보</v-card-title>
<v-card-title class="custom-title-4 pb-0">사용자 정보</v-card-title>
<div class="px-5" :style="{ height: 'calc(100% - 62.5px)' }">
<v-tabs v-model="tab">
<v-tab
@ -971,7 +971,7 @@ const myDetail = blocCdList => {
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
iconShow: true,
required: false,
placeholder: '시스템 자동입력',
@ -983,7 +983,7 @@ const myDetail = blocCdList => {
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
iconShow: true,
required: true,
},
@ -996,8 +996,7 @@ const myDetail = blocCdList => {
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-4',
iconShow: true,
class: 'py-2 pr-4 mt-2',
required: true,
},
{
@ -1007,7 +1006,7 @@ const myDetail = blocCdList => {
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
iconShow: true,
required: true,
},
@ -1018,7 +1017,7 @@ const myDetail = blocCdList => {
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
iconShow: true,
list: blocCdList.map(item => ({
text: item.blocNm,
@ -1033,7 +1032,7 @@ const myDetail = blocCdList => {
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
iconShow: true,
},
{
@ -1044,7 +1043,7 @@ const myDetail = blocCdList => {
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
iconShow: true,
placeholder: '시스템 자동입력',
},
@ -1056,7 +1055,7 @@ const myDetail = blocCdList => {
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
iconShow: true,
placeholder: '시스템 자동입력',
},
@ -1068,7 +1067,7 @@ const myDetail = blocCdList => {
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-4',
class: 'py-2 pr-4 mt-2',
iconShow: true,
placeholder: '시스템 자동입력',
},
@ -1080,7 +1079,7 @@ const myDetail = blocCdList => {
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pl-4',
class: 'py-2 pl-4 mt-2',
iconShow: true,
placeholder: '시스템 자동입력',
},

View File

@ -49,7 +49,7 @@
<v-col :cols="12" class="mt-5 pb-4">
<v-card-title class="custom-title-6 pa-0">{{ viewActionData.title }}</v-card-title>
</v-col>
<v-col :cols="12" style="min-height: 30vh;" class="pa-0 custom-view">
<v-col :cols="12" style="min-height: 50vh;" class="pa-0 custom-view">
<v-card class="pa-3" style="overflow-y:auto;">
<viewer v-if="viewActionData.viewerFlag" ref="tuiViewer" height="inherit"
:initialValue="viewActionData.content" theme="white"

View File

@ -105,7 +105,7 @@
</v-col>
<v-col :cols="7" style="min-height:75vh;">
<v-card class="pb-5">
<v-card-title class="custom-title-4" style="min-height:65px;"
<v-card-title class="custom-title-4 pb-0" style="min-height:65px;"
>공정 상세
</v-card-title>
<div class="px-5" style="height:calc(100% - 76px)">
@ -901,7 +901,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pl-4',
class: 'py-2 px-4',
required: true,
iconShow: true
},
@ -938,7 +938,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 mb-0 pb-0 pl-4 mt-2',
class: 'py-2 mb-0 pb-0 px-4 mt-2',
list: 'locKindList',
itemText: 'commCdNm',
itemValue: 'commCd',
@ -956,7 +956,7 @@ const myDetail = [
// 공백 처리
type: 'Label',
cols: 6,
class: 'py-2 pl-4 mt-2',
class: 'py-2 px-4 mt-2',
disabled: false,
labelCols: 12,
textCols: 12,
@ -985,7 +985,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pl-4 mt-2',
class: 'py-2 px-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;"
@ -1012,7 +1012,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pl-4 mt-2',
class: 'py-2 px-4 mt-2',
value: { '1': true, '0': false },
iconShow: true,
required: true,

View File

@ -75,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:65px;"
<v-card-title class="custom-title-4-new pb-0" style="min-height:65px;"
>검침대상 상세
</v-card-title>
<div class="px-5" style="height:calc(100% - 76px)">
@ -742,7 +742,7 @@ const myDetail = [
labelCols: 12,
textCols: 12,
iconShow: true,
class: 'py-2 pr-2',
class: 'py-2 pr-2 mt-2',
required: false,
placeholder: '시스템 자동입력',
},
@ -754,7 +754,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2',
class: 'py-2 mt-2',
required: true,
iconShow: true,
},
@ -766,7 +766,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-2',
class: 'py-2 pr-2 mt-2',
list: 'readObjKindDetailList',
itemText: 'commCdNm',
itemValue: 'commCd',
@ -781,7 +781,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2',
class: 'py-2 mt-2',
list: 'readObjGrpList',
itemText: 'commCdNm',
itemValue: 'commCd',
@ -796,7 +796,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-2',
class: 'py-2 pr-2 mt-2',
iconShow: true,
inputType: 'number',
},
@ -808,7 +808,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2',
class: 'py-2 mt-2',
iconShow: true,
inputType: 'number',
},
@ -820,7 +820,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-2',
class: 'py-2 pr-2 mt-2',
iconShow: true,
inputType: 'number',
},
@ -832,7 +832,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2',
class: 'py-2 mt-2',
list: 'unitCdList',
itemText: 'commCdNm',
itemValue: 'commCd',
@ -847,7 +847,7 @@ const myDetail = [
cols: 6,
labelCols: 12,
textCols: 12,
class: 'py-2 pr-2',
class: 'py-2 pr-2 mt-2',
value: { '1': true, '0': false },
iconShow: true,
required: true,

View File

@ -33,7 +33,7 @@
</v-col>
<v-col :cols="6" class="text-right">
<!-- 조회버튼 -->
<BtnSearch style="margin-top: 20px" size="large" @click="search" />
<BtnSearch style="margin-top: 25px" size="large" @click="search" />
</v-col>
</v-row>
</v-card>

View File

@ -14,9 +14,9 @@
<!-- 대상일 -->
<component :is="'Datepicker'" :parentPrgmId="myPrgmId" :label="'대상일'" :labelCols="3" customClass="datepicker-large" />
</v-col>
<v-col :cols="4" class="text-right">
<BtnSearch @click="search" size="large" />
<v-col :cols="6" class="text-right">
<!-- 조회버튼 -->
<BtnSearch @click="search" size="large" />
</v-col>
</v-row>
</v-card>
@ -47,8 +47,13 @@
</v-row>
<div class="px-5" style="height: 80%">
<div ref="chartParent" class="w100 h100">
<component :ref="chartName" class="w100 h100" :is="loadChart ? 'Chart' : null" :parentPrgmId="myPrgmId"
:chartName="chartName" />
<component
:ref="chartName"
class="w100 h100"
:is="loadChart ? 'Chart' : null"
:parentPrgmId="myPrgmId"
:chartName="chartName"
/>
</div>
</div>
</v-card>
@ -68,6 +73,8 @@ import SelectBox from '@/components/common/select/SelectBox';
import DateUtility from '~/plugins/dateUtility';
import Chart from '~/components/common/Chart';
import getSankeyChartOption from "~/components/common/chartoptions/sankeyChart";
let myTitle;
let myPrgmId;
@ -101,6 +108,8 @@ export default {
selectValue01: null,
loadChart: false,
chartName: 'sankeyChart',
sankeyChartData: [],
sankeyChartLinks: []
};
},
computed: {
@ -148,6 +157,16 @@ export default {
});
}
},
isDarkMode(newVal) {
this.setChartOption({
chartKey: this.chartName,
value: getSankeyChartOption({
isDarkMode: newVal,
data: this.sankeyChartData,
links: this.sankeyChartLinks
})
});
},
},
async beforeCreate() {
myPrgmId = this.$route.query.prgmId;
@ -159,9 +178,6 @@ export default {
},
async created() { },
async mounted() {
// this.initTest();
// return;
this.init();
// document.querySelector('.icon_arrow').style.width = document.querySelector('.iconArrowCols').clientWidth-20 + "px";
},
@ -176,10 +192,8 @@ export default {
...mapActions({
getCodeList: 'modules/search/getCodeList',
}),
initTest() {
const randomNumber = n => Math.floor(Math.random() * n) + 1;
initTestChart() {
const randomNumber = n => Math.floor(Math.random() * n) + 1;
const makeData = [
{ name: 'A' },
{ name: 'B' },
@ -205,45 +219,13 @@ export default {
]);
}
const chartOption = {
backgroundColor: '#FFFFFF',
series: [
{
layoutIterations: 0,
type: 'sankey',
left: 25.0,
top: 20.0,
right: 120,
bottom: 50.0,
// nodeWidth:10,
nodeGap: 10,
nodeAlign: 'left',
data: makeData,
links: makeLinks,
lineStyle: {
color: 'source',
curveness: 0.5,
},
// triggerEvent: true,
itemStyle: {
//color: '#1f77b4',
//borderColor: '#1f77b4'
},
label: {
color: this.isDarkMode
? 'rgba(250,250,250,0.7)'
: 'rgba(0,0,0,0.7)',
fontFamily: 'Arial',
fontSize: 12,
},
},
],
tooltip: {
trigger: 'item',
},
};
this.sankeyChartData = makeData;
this.sankeyChartLinks = makeLinks;
const chartOption = getSankeyChartOption({
isDarkMode: this.isDarkMode,
data: makeData,
links: makeLinks
});
this.setChartOption({ chartKey: this.chartName, value: chartOption });
this.$nextTick(() => {
this.loadChart = true;
@ -254,7 +236,11 @@ export default {
this.setFromDt();
},
async search() {
await this.getChartData();
try{
await this.getChartData();
}catch(err){
this.initTestChart();
}
this.setPageData({
isFind: false,
});
@ -458,43 +444,13 @@ export default {
};
}
const chartOption = {
backgroundColor: '#FFFFFF',
series: [
{
layoutIterations: 0,
type: 'sankey',
left: 25.0,
top: 20.0,
right: 120,
bottom: 50.0,
// nodeWidth:10,
nodeGap: 10,
nodeAlign: 'left',
data: makeData,
links: makeLinks,
lineStyle: {
color: 'source',
curveness: 0.5,
},
// triggerEvent: true,
itemStyle: {
//color: '#1f77b4',
//borderColor: '#1f77b4'
},
label: {
color: this.isDarkMode
? 'rgba(250,250,250,0.7)'
: 'rgba(0,0,0,0.7)',
fontFamily: 'Arial',
fontSize: 12,
},
},
],
tooltip: {
trigger: 'item',
},
};
this.sankeyChartData = makeData;
this.sankeyChartLinks = makeLinks;
const chartOption = getSankeyChartOption({
isDarkMode: this.isDarkMode,
data: makeData,
links: makeLinks
});
this.setChartOption({ chartKey: this.chartName, value: chartOption });

File diff suppressed because it is too large Load Diff

View File

@ -304,7 +304,7 @@ export default {
$(elDiv).addClass('tui-grid-cell-content d-flex justify-space-between');
const el2 = document.createElement('button');
$(el2).addClass('edit-btn blue--text');
el2.innerText = '편집하다';
el2.innerText = '수정';
elDiv.appendChild(el2);
this.el = elDiv;
@ -415,7 +415,7 @@ export default {
{
header: '구분',
name: 'gubun',
width: 80,
width: 200,
align: 'left',
// hidden: true,
formatter({ value }) {
@ -447,7 +447,7 @@ export default {
myColumns.push({
header: i.toString() + '월',
name: qty,
width: 73,
width: 80,
align: 'right',
editor: 'text',
formatter: this.numberFormatter,

View File

@ -201,7 +201,6 @@ export default {
gridName: "grid01",
enrgUseMainIdxDesc: [],
itemsPerPage: 10,
itemsPerPageArray: [10, 20, 30],
limit: 10,
page: 1,
@ -433,6 +432,9 @@ export default {
name: "eqpmGrpNm",
align: "left",
width: 200,
},
{ header: "eqpmId", name: "eqpmId", hidden: true },
{ header: "설비명", name: "eqpmNm", align: "left", width: 200,
// Render custom button to switch page instead of double click on row
renderer: {
type: CustomButton,
@ -465,8 +467,6 @@ export default {
},
},
},
{ header: "eqpmId", name: "eqpmId", hidden: true },
{ header: "설비명", name: "eqpmNm", align: "left", width: 200 },
{
header: "계획량",
name: "planVal",