Compare commits
1 Commits
8cadade514
...
dev-luannv
Author | SHA1 | Date | |
---|---|---|---|
5735777bb1 |
@ -98,6 +98,12 @@
|
|||||||
@include theme($theme);
|
@include theme($theme);
|
||||||
|
|
||||||
.v-application.#{$theme}-mode {
|
.v-application.#{$theme}-mode {
|
||||||
|
.tui-grid-content-area{
|
||||||
|
.tui-grid-header-area{
|
||||||
|
height: auto !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.grid-title {
|
.grid-title {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
@ -308,13 +314,13 @@
|
|||||||
#{$theme},
|
#{$theme},
|
||||||
"tui-grid-cell-borderColor"
|
"tui-grid-cell-borderColor"
|
||||||
);
|
);
|
||||||
.tui-grid-cell-content {
|
// .tui-grid-cell-content {
|
||||||
border-right: 1px solid ;
|
// border-right: 1px solid ;
|
||||||
border-right-color: map-deep-get($config,
|
// border-right-color: map-deep-get($config,
|
||||||
#{$theme},
|
// #{$theme},
|
||||||
"tui-grid-cell-borderColor"
|
// "tui-grid-cell-borderColor"
|
||||||
);
|
// );
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,18 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="d-flex flex-column justify-center align-center" style="gap: 12px">
|
<div class="d-flex flex-row justify-center align-center" style="gap: 12px">
|
||||||
<a-button @click="btnActionsFnc('removeRightToLeft')" type="primary" ghost :icon="icons.remove" >
|
<a-button @click="btnActionsFnc('removeRightToLeft')" type="primary" ghost :icon="icons.remove" >
|
||||||
</a-button>
|
</a-button>
|
||||||
|
<a-button @click="btnActionsFnc('addLeftToRight')" type="primary" ghost :icon="icons.add">
|
||||||
<!--<v-btn
|
|
||||||
icon
|
|
||||||
tile
|
|
||||||
:ripple="false"
|
|
||||||
class="mt-2"
|
|
||||||
@click="btnActionsFnc('removeRightToLeft')"
|
|
||||||
>
|
|
||||||
<v-icon>mdi-chevron-left</v-icon>
|
|
||||||
</v-btn> -->
|
|
||||||
<a-button @click="btnActionsFnc('addLeftToRight')" type="primary" ghost icon="down">
|
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -35,8 +25,18 @@ export default {
|
|||||||
type: Function,
|
type: Function,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
directionBtn: {
|
||||||
|
type: String,
|
||||||
|
default: "horizontally" //horizontally, vertically.
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
icons() {
|
||||||
|
return this.directionBtn === "vertically"
|
||||||
|
? { remove: "up", add: "down" }
|
||||||
|
: { remove: "left", add: "right" };
|
||||||
|
},
|
||||||
},
|
},
|
||||||
computed: {},
|
|
||||||
data() {
|
data() {
|
||||||
return {};
|
return {};
|
||||||
},
|
},
|
||||||
|
@ -45,7 +45,7 @@ export default {
|
|||||||
size: {
|
size: {
|
||||||
type: String,
|
type: String,
|
||||||
require: false,
|
require: false,
|
||||||
default: "default", // small, middle, large
|
default: "default", // small, default, large
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -44,8 +44,7 @@
|
|||||||
<v-card-title>
|
<v-card-title>
|
||||||
<span class="custom-title-4">비밀번호 {{ isPassword }}</span>
|
<span class="custom-title-4">비밀번호 {{ isPassword }}</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<v-divider></v-divider>
|
<v-card-text class="pb-4">
|
||||||
<v-card-text>
|
|
||||||
<v-col>
|
<v-col>
|
||||||
<label for="" class="search-box-label">
|
<label for="" class="search-box-label">
|
||||||
{{ isPassword }}할 비밀번호를 입력하세요
|
{{ isPassword }}할 비밀번호를 입력하세요
|
||||||
@ -73,11 +72,10 @@
|
|||||||
></v-text-field>
|
></v-text-field>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
<v-divider></v-divider>
|
<v-card-actions class="pb-4">
|
||||||
<v-card-actions>
|
|
||||||
<v-spacer></v-spacer>
|
<v-spacer></v-spacer>
|
||||||
<!-- <v-btn color="primary" dark @click="setUpdate()">확인</v-btn> -->
|
<!-- <v-btn color="primary" dark @click="setUpdate()">확인</v-btn> -->
|
||||||
<div>
|
<div class="pr-3">
|
||||||
<a-button @click="close()" class="btn-default">삭제</a-button>
|
<a-button @click="close()" class="btn-default">삭제</a-button>
|
||||||
<a-button type="primary" @click="setUpdate()" class="v-btn-add-text">
|
<a-button type="primary" @click="setUpdate()" class="v-btn-add-text">
|
||||||
확인
|
확인
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
import { mapState, mapMutations, mapActions } from 'vuex';
|
import { mapState, mapMutations, mapActions } from 'vuex';
|
||||||
import Buttons from '~/components/common/button/Buttons';
|
import Buttons from '~/components/common/button/Buttons';
|
||||||
import Grid from '~/components/common/Grid';
|
import Grid from '~/components/common/Grid';
|
||||||
import { CustumChecbox } from '~/plugins/gridUtility';
|
import { CustomCheckbox } from '~/plugins/gridUtility';
|
||||||
import { CustomNumberEditor } from '~/plugins/gridUtility';
|
import { CustomNumberEditor } from '~/plugins/gridUtility';
|
||||||
import Form from '~/components/common/form/Form';
|
import Form from '~/components/common/form/Form';
|
||||||
import mixinGlobal from '@/mixin/global.js';
|
import mixinGlobal from '@/mixin/global.js';
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
import { mapState, mapMutations, mapActions } from 'vuex';
|
import { mapState, mapMutations, mapActions } from 'vuex';
|
||||||
import Buttons from '~/components/common/button/Buttons';
|
import Buttons from '~/components/common/button/Buttons';
|
||||||
import Grid from '~/components/common/Grid';
|
import Grid from '~/components/common/Grid';
|
||||||
import { CustumChecbox } from '~/plugins/gridUtility';
|
import { CustomCheckbox } from '~/plugins/gridUtility';
|
||||||
import { CustomNumberEditor } from '~/plugins/gridUtility';
|
import { CustomNumberEditor } from '~/plugins/gridUtility';
|
||||||
import Form from '~/components/common/form/Form';
|
import Form from '~/components/common/form/Form';
|
||||||
import mixinGlobal from '@/mixin/global.js';
|
import mixinGlobal from '@/mixin/global.js';
|
||||||
@ -185,7 +185,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 100,
|
width: 100,
|
||||||
// renderer: {
|
// renderer: {
|
||||||
// type: CustumChecbox,
|
// type: CustomCheckbox,
|
||||||
// options: {
|
// options: {
|
||||||
// onlyone: true,
|
// onlyone: true,
|
||||||
// // disabled: true
|
// // disabled: true
|
||||||
|
@ -5,12 +5,22 @@
|
|||||||
<v-card class="searchFilter">
|
<v-card class="searchFilter">
|
||||||
<v-row algin="end" no-gutters>
|
<v-row algin="end" no-gutters>
|
||||||
<v-col :cols="3">
|
<v-col :cols="3">
|
||||||
<InputText :parentPrgmId="myPrgmId" label="역할ID" valueNm="roleId" :searchOption="true"
|
<InputText
|
||||||
customClass="input-large" />
|
:parentPrgmId="myPrgmId"
|
||||||
|
label="역할ID"
|
||||||
|
valueNm="roleId"
|
||||||
|
:searchOption="true"
|
||||||
|
customClass="input-large"
|
||||||
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="3">
|
<v-col :cols="3">
|
||||||
<InputText :parentPrgmId="myPrgmId" label="역할명" valueNm="roleNm" :searchOption="true"
|
<InputText
|
||||||
customClass="input-large" />
|
:parentPrgmId="myPrgmId"
|
||||||
|
label="역할명"
|
||||||
|
valueNm="roleNm"
|
||||||
|
:searchOption="true"
|
||||||
|
customClass="input-large"
|
||||||
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col class="text-right d-flex justify-end align-end mr-3">
|
<v-col class="text-right d-flex justify-end align-end mr-3">
|
||||||
<BtnSearch size="large" />
|
<BtnSearch size="large" />
|
||||||
@ -20,55 +30,81 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
|
|
||||||
<v-row ref="contents">
|
<v-row ref="contents" >
|
||||||
<v-col cols="12" lg="3">
|
<v-col cols="12" lg="2" >
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-card-title>
|
<v-card-title>
|
||||||
<span class="custom-title-4">역할 리스트</span>
|
<span class="custom-title-4">역할 리스트</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<div ref="gridParent" class="px-5" style="height: 60vh;">
|
<div ref="gridParent" class="px-5" style="height: 60vh;">
|
||||||
<component :is="loadGrid ? 'Grid' : null" :ref="gridName + myPrgmId" :gridName="gridName"
|
<component
|
||||||
:parentPrgmId="myPrgmId" @getRowsData="getRowData" />
|
:is="loadGrid ? 'Grid' : null"
|
||||||
|
:ref="gridName + myPrgmId"
|
||||||
|
:gridName="gridName"
|
||||||
|
:parentPrgmId="myPrgmId"
|
||||||
|
@getRowsData="getRowData"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="12" lg="9">
|
<v-col cols="12" lg="10" >
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-card-title>
|
<v-card-title>
|
||||||
<span class="custom-title-4">역할 메뉴별 권한</span>
|
<span class="custom-title-4">역할 메뉴별 권한</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<v-row align="center" no-gutters :style="{ height: 'calc(100% - 62px)' }" class="px-5">
|
<v-row
|
||||||
<v-col class="h100" style="max-width: 400px;">
|
align="center"
|
||||||
<span class="body-1 font-weight-bold d-flex align-center"
|
no-gutters
|
||||||
:style="{ minHeight: '36px' }">[미배정]메뉴리스트</span>
|
:style="{ height: 'calc(100% - 62px)' }"
|
||||||
|
class="px-5"
|
||||||
|
>
|
||||||
|
<v-col :cols="4" class="h100">
|
||||||
|
<span
|
||||||
|
class="body-1 font-weight-bold d-flex align-center"
|
||||||
|
:style="{ minHeight: '36px' }"
|
||||||
|
>[미배정]메뉴리스트</span
|
||||||
|
>
|
||||||
<div ref="treeGridParent" class="px-0 mt-2" style="height: 60vh;">
|
<div ref="treeGridParent" class="px-0 mt-2" style="height: 60vh;">
|
||||||
<!-- <div
|
<!-- <div
|
||||||
ref="treeGridParent"
|
ref="treeGridParent"
|
||||||
class="w100 h100"
|
class="w100 h100"
|
||||||
>
|
>
|
||||||
</div> -->
|
</div> -->
|
||||||
<component :is="loadTreeGrid ? 'Grid' : null" :ref="gridName2 + myPrgmId"
|
<component
|
||||||
:gridName="gridName2" :parentPrgmId="myPrgmId" @getRowsData="getUnAsgnRowData" />
|
:is="loadTreeGrid ? 'Grid' : null"
|
||||||
|
:ref="gridName2 + myPrgmId"
|
||||||
|
:gridName="gridName2"
|
||||||
|
:parentPrgmId="myPrgmId"
|
||||||
|
@getRowsData="getUnAsgnRowData"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
<!-- <v-col :cols="1.5">
|
<v-col :cols="1">
|
||||||
<ActionButtons :parentPrgmId="myPrgmId" :leftGridName="gridName2" :rightGridName="gridName3"
|
<ActionButtons
|
||||||
:btnActionsFnc="dualGridBtnActions" />
|
:parentPrgmId="myPrgmId"
|
||||||
</v-col> -->
|
:leftGridName="gridName2"
|
||||||
<div class="px-2">
|
:rightGridName="gridName3"
|
||||||
<ActionButtons :parentPrgmId="myPrgmId" :leftGridName="gridName2" :rightGridName="gridName3"
|
:btnActionsFnc="dualGridBtnActions"
|
||||||
:btnActionsFnc="dualGridBtnActions" />
|
/>
|
||||||
</div>
|
</v-col>
|
||||||
<v-col :cols="7" class="h100">
|
<v-col :cols="7" class="h100">
|
||||||
<v-row justify="space-between" align="center" no-gutters class="px-5">
|
<v-row
|
||||||
|
justify="space-between"
|
||||||
|
align="center"
|
||||||
|
no-gutters
|
||||||
|
class="px-5"
|
||||||
|
>
|
||||||
<v-col :cols="11">
|
<v-col :cols="11">
|
||||||
<span class="body-1 font-weight-bold d-flex align-center"
|
<span class="body-1 font-weight-bold"
|
||||||
:style="{ minHeight: '36px' }">[배정]메뉴별권한 리스트</span>
|
>[배정]메뉴별권한 리스트</span
|
||||||
<!-- <span class="body-1 font-weight-bold">[배정]메뉴별권한 리스트</span> -->
|
>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="1" class="text-right">
|
<v-col :cols="1" class="text-right">
|
||||||
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName3"
|
<Buttons
|
||||||
:btnActionsFnc="btnActions" />
|
:parentPrgmId="myPrgmId"
|
||||||
|
:bindingData="gridName3"
|
||||||
|
:btnActionsFnc="btnActions"
|
||||||
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
<div ref="treeGridParent2" class="px-0 mt-2" style="height: 60vh;">
|
<div ref="treeGridParent2" class="px-0 mt-2" style="height: 60vh;">
|
||||||
@ -77,9 +113,14 @@
|
|||||||
class="w100 h100"
|
class="w100 h100"
|
||||||
>
|
>
|
||||||
</div> -->
|
</div> -->
|
||||||
<component :is="loadTreeGrid2 ? 'Grid' : null" :ref="gridName3 + myPrgmId"
|
<component
|
||||||
:gridName="gridName3" :parentPrgmId="myPrgmId" :editorGrid="true"
|
:is="loadTreeGrid2 ? 'Grid' : null"
|
||||||
@getRowsData="getAsgnRowData" />
|
:ref="gridName3 + myPrgmId"
|
||||||
|
:gridName="gridName3"
|
||||||
|
:parentPrgmId="myPrgmId"
|
||||||
|
:editorGrid="true"
|
||||||
|
@getRowsData="getAsgnRowData"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
@ -245,8 +286,8 @@ export default {
|
|||||||
async gridInit() {
|
async gridInit() {
|
||||||
//---------------------gridOption 설정 시작----------------------------
|
//---------------------gridOption 설정 시작----------------------------
|
||||||
const gridHeight = this.$refs.gridParent.offsetHeight - 30;
|
const gridHeight = this.$refs.gridParent.offsetHeight - 30;
|
||||||
const treeGridHeight = this.$refs.treeGridParent.offsetHeight - 50;
|
const treeGridHeight = this.$refs.treeGridParent.offsetHeight - 30;
|
||||||
const treeGridHeight2 = this.$refs.treeGridParent2.offsetHeight - 50;
|
const treeGridHeight2 = this.$refs.treeGridParent2.offsetHeight - 30;
|
||||||
// const gridHeight = this.$refs.contents.offsetHeight - 30;
|
// const gridHeight = this.$refs.contents.offsetHeight - 30;
|
||||||
|
|
||||||
const myOptions = {
|
const myOptions = {
|
||||||
@ -275,10 +316,8 @@ export default {
|
|||||||
treeColumnOptions: {
|
treeColumnOptions: {
|
||||||
name: 'menuNm',
|
name: 'menuNm',
|
||||||
},
|
},
|
||||||
rowHeight: 37,
|
scrollX: false,
|
||||||
minRowHeight: 37,
|
// scrollY: false,
|
||||||
scrollX: true,
|
|
||||||
scrollY: true,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.setGridOption({
|
this.setGridOption({
|
||||||
@ -303,14 +342,11 @@ export default {
|
|||||||
//---------------------gridOption 설정 끝----------------------------
|
//---------------------gridOption 설정 끝----------------------------
|
||||||
|
|
||||||
//---------------------gridName3의 체크박스 설정 시작----------------------------
|
//---------------------gridName3의 체크박스 설정 시작----------------------------
|
||||||
class CustumChecbox {
|
class CustomCheckbox {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
const el = document.createElement('input');
|
const el = document.createElement('input');
|
||||||
const { grid, rowKey, columnInfo } = props;
|
const { grid, rowKey, columnInfo } = props;
|
||||||
el.type = 'checkbox';
|
el.type = 'checkbox';
|
||||||
$(el).css('width', '16px');
|
|
||||||
$(el).css('height', '16px');
|
|
||||||
$(el).css('accent-color', '#1677FF');
|
|
||||||
el.value = props.value;
|
el.value = props.value;
|
||||||
this.el = el;
|
this.el = el;
|
||||||
|
|
||||||
@ -344,12 +380,12 @@ export default {
|
|||||||
const _this = this;
|
const _this = this;
|
||||||
|
|
||||||
const myColumns = [
|
const myColumns = [
|
||||||
{ header: '역할ID', name: 'roleId', align: 'left', minWidth: 70,width:120 },
|
{ header: '역할ID', name: 'roleId', align: 'center', minWidth: 70 },
|
||||||
{ header: '역할명', name: 'roleNm', minWidth: 70, align: 'left',width:120 },
|
{ header: '역할명', name: 'roleNm', minWidth: 70 },
|
||||||
{
|
{
|
||||||
header: '사용여부',
|
header: '사용여부',
|
||||||
name: 'useFg',
|
name: 'useFg',
|
||||||
align: 'left',
|
align: 'center',
|
||||||
minWidth: 84,
|
minWidth: 84,
|
||||||
formatter({ value }) {
|
formatter({ value }) {
|
||||||
const newValue = _this.pageData.useFgList.filter(
|
const newValue = _this.pageData.useFgList.filter(
|
||||||
@ -372,7 +408,6 @@ export default {
|
|||||||
{
|
{
|
||||||
header: '메뉴명',
|
header: '메뉴명',
|
||||||
name: 'menuNm',
|
name: 'menuNm',
|
||||||
maxWidth: 120,
|
|
||||||
validation: {
|
validation: {
|
||||||
dataType: 'string',
|
dataType: 'string',
|
||||||
validatorFn: (value, row) => {
|
validatorFn: (value, row) => {
|
||||||
@ -398,7 +433,7 @@ export default {
|
|||||||
name: 'useFg',
|
name: 'useFg',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
renderer: {
|
renderer: {
|
||||||
type: CustumChecbox,
|
type: CustomCheckbox,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -406,7 +441,7 @@ export default {
|
|||||||
name: 'authCd1',
|
name: 'authCd1',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
renderer: {
|
renderer: {
|
||||||
type: CustumChecbox,
|
type: CustomCheckbox,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -414,7 +449,7 @@ export default {
|
|||||||
name: 'authCd2',
|
name: 'authCd2',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
renderer: {
|
renderer: {
|
||||||
type: CustumChecbox,
|
type: CustomCheckbox,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -422,7 +457,7 @@ export default {
|
|||||||
name: 'authCd3',
|
name: 'authCd3',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
renderer: {
|
renderer: {
|
||||||
type: CustumChecbox,
|
type: CustomCheckbox,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -430,7 +465,7 @@ export default {
|
|||||||
name: 'authCd4',
|
name: 'authCd4',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
renderer: {
|
renderer: {
|
||||||
type: CustumChecbox,
|
type: CustomCheckbox,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -438,7 +473,7 @@ export default {
|
|||||||
name: 'authCd5',
|
name: 'authCd5',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
renderer: {
|
renderer: {
|
||||||
type: CustumChecbox,
|
type: CustomCheckbox,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -446,7 +481,7 @@ export default {
|
|||||||
name: 'authCd6',
|
name: 'authCd6',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
renderer: {
|
renderer: {
|
||||||
type: CustumChecbox,
|
type: CustomCheckbox,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
@ -151,6 +151,7 @@
|
|||||||
:leftGridName="gridName2"
|
:leftGridName="gridName2"
|
||||||
:rightGridName="gridName3"
|
:rightGridName="gridName3"
|
||||||
:btnActionsFnc="dualGridBtnActions"
|
:btnActionsFnc="dualGridBtnActions"
|
||||||
|
directionBtn="vertically"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="h100">
|
<v-col :cols="12" class="h100">
|
||||||
@ -981,7 +982,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pl-4',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
@ -1005,7 +1006,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pl-4',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
@ -1031,7 +1032,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pl-4',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1054,7 +1055,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pl-4',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
@ -1078,7 +1079,7 @@ const myDetail = blocCdList => {
|
|||||||
cols: 6,
|
cols: 6,
|
||||||
labelCols: 12,
|
labelCols: 12,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
class: 'py-2 pr-4',
|
class: 'py-2 pl-4',
|
||||||
iconShow: true,
|
iconShow: true,
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
},
|
},
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
<CommonPageTitle />
|
<CommonPageTitle />
|
||||||
<!-- 리스트 페이지 시작 -->
|
<!-- 리스트 페이지 시작 -->
|
||||||
<div v-if="pageActionFlag == 'list'" class="h1001">
|
<div v-if="pageActionFlag == 'list'" class="h1001">
|
||||||
<v-card class="">
|
<v-card class="" >
|
||||||
<div class="pa-5">
|
<div class="pa-5">
|
||||||
<v-row align="center" no-gutters>
|
<v-row align="center" no-gutters >
|
||||||
<v-col :cols="12" class="d-flex align-center justify-space-between">
|
<v-col :cols="12" class="d-flex align-center justify-space-between">
|
||||||
<v-card-title class="pa-0 custom-title-4">공지사항</v-card-title>
|
<v-card-title class="pa-0 custom-title-4">공지사항</v-card-title>
|
||||||
<div class="d-flex align-center">
|
<div class="d-flex align-center">
|
||||||
@ -17,8 +17,8 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" ref="contents" class="mt-5" style="min-height: calc(100% - 76px);">
|
<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;">
|
<div ref="gridParent" class="px-50" style="min-height: 70vh;">
|
||||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName" :parentPrgmId="myPrgmId"
|
||||||
:parentPrgmId="myPrgmId" @getRowsData="getRowData" />
|
@getRowsData="getRowData" />
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
@ -27,23 +27,22 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 리스트 페이지 끝 -->
|
<!-- 리스트 페이지 끝 -->
|
||||||
<!-- 상세보기 페이지 시작 -->
|
<!-- 상세보기 페이지 시작 -->
|
||||||
<div v-if="pageActionFlag == 'view'">
|
<div v-if="pageActionFlag == 'view'" >
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-row class="pa-5">
|
<v-row class="pa-5">
|
||||||
<v-col :cols="12" class="d-flex align-center justify-space-between ">
|
<v-col :cols="12" class="d-flex align-center justify-space-between ">
|
||||||
<v-card-title class="pa-0 custom-title-4">공지사항 보기</v-card-title>
|
<v-card-title class="pa-0 custom-title-4">공지사항</v-card-title>
|
||||||
<div class="d-flex align-center">
|
<div class="d-flex align-center">
|
||||||
<a-button @click="viewPageButtonGroupClickEvent('list')" type="primary" :ripple="false"
|
<a-button @click="viewPageButtonGroupClickEvent('list')" type="primary" :ripple="false" class="mr-1"
|
||||||
class="mr-1" icon="unordered-list">목록</a-button>
|
icon="unordered-list">목록</a-button>
|
||||||
<a-button @click="viewPageButtonGroupClickEvent('reply')" type="primary" :ripple="false"
|
<a-button @click="viewPageButtonGroupClickEvent('reply')" type="primary" :ripple="false" class="mr-1"
|
||||||
class="mr-1" icon="send-outlined">
|
icon="send-outlined">
|
||||||
<v-icon small :class="['mr-2']">$icoSend</v-icon>
|
<v-icon small :class="['mr-2']">$icoSend</v-icon>
|
||||||
답글
|
답글
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button @click="viewPageButtonGroupClickEvent('update')" type="primary" :ripple="false"
|
<a-button @click="viewPageButtonGroupClickEvent('update')" type="primary" :ripple="false" class="mr-1"
|
||||||
class="mr-1" icon="edit">수정</a-button>
|
icon="edit">수정</a-button>
|
||||||
<a-button @click="viewPageButtonGroupClickEvent('delete')" type="danger" ghost
|
<a-button @click="viewPageButtonGroupClickEvent('delete')" type="danger" ghost icon="delete">삭제</a-button>
|
||||||
icon="delete">삭제</a-button>
|
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="mt-5">
|
<v-col :cols="12" class="mt-5">
|
||||||
@ -58,12 +57,13 @@
|
|||||||
<v-card-title class="custom-title-7 pa-0">
|
<v-card-title class="custom-title-7 pa-0">
|
||||||
파일목록
|
파일목록
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<div v-for="fileData in viewActionData.fileData" :key="fileData.apndFileId" class="file-item">
|
<div v-for="fileData in viewActionData.fileData"
|
||||||
|
:key="fileData.apndFileId"
|
||||||
|
class="file-item">
|
||||||
<a @click.prevent="downloadFile(fileData)">
|
<a @click.prevent="downloadFile(fileData)">
|
||||||
<div class="d-flex justify-start search-box-label">
|
<div class="d-flex justify-start search-box-label">
|
||||||
<v-icon>mdi-paperclip</v-icon>
|
<v-icon>mdi-paperclip</v-icon>
|
||||||
<span class="file-item-name ml-2">{{ fileData.apndFileNm + '.' +
|
<span class="file-item-name ml-2">{{ fileData.apndFileNm + '.' + fileData.apndFileExt }}</span>
|
||||||
fileData.apndFileExt }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -73,12 +73,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 상세보기 페이지 끝 -->
|
<!-- 상세보기 페이지 끝 -->
|
||||||
<!-- 작성 페이지 시작 -->
|
<!-- 작성 페이지 시작 -->
|
||||||
<div v-if="pageActionFlag == 'write'">
|
<div v-if="pageActionFlag == 'write'" >
|
||||||
<v-card>
|
<v-card>
|
||||||
<div class="pa-5">
|
<div class="pa-5">
|
||||||
<v-row class="pa-50">
|
<v-row class="pa-50">
|
||||||
<v-col :cols="12" class="">
|
<v-col :cols="12" class="">
|
||||||
<v-card-title class="custom-title-4 pa-0">공지사항 작성</v-card-title>
|
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="mt-4">
|
<v-col :cols="12" class="mt-4">
|
||||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
||||||
@ -92,27 +92,33 @@
|
|||||||
<v-col :cols="6" class="mt-5">
|
<v-col :cols="6" class="mt-5">
|
||||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||||
<div class="" v-if="writeActionData.fileData">
|
<div class="" v-if="writeActionData.fileData">
|
||||||
<div v-for="(fileData, index) in writeActionData.fileData" :key="fileData.apndFileId"
|
<div
|
||||||
|
v-for="(fileData, index) in writeActionData.fileData"
|
||||||
|
:key="fileData.apndFileId"
|
||||||
class="file-item d-flex justify-space-between">
|
class="file-item d-flex justify-space-between">
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon>mdi-paperclip</v-icon>
|
<v-icon>mdi-paperclip</v-icon>
|
||||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-icon type="delete" class="v-icon pointer"
|
<a-icon type="delete" class="v-icon pointer" @click="writeActionData.fileData.splice(index, 1)" />
|
||||||
@click="writeActionData.업로드fileData.splice(index, 1)" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-button class="mt-2" icon="upload" @click="$refs.writeInputFile.$refs.input.click()">
|
<a-button class="mt-2" icon="upload" @click="$refs.writeInputFile.$refs.input.click()" >
|
||||||
업로드
|
업로드
|
||||||
</a-button>
|
</a-button>
|
||||||
<v-file-input ref="writeInputFile" v-model="writeActionData.fileData" multiple outlined
|
<v-file-input
|
||||||
hide-input class="d-none" prepend-icon="mdi-tray-arrow-up"></v-file-input>
|
ref="writeInputFile"
|
||||||
|
v-model="writeActionData.fileData"
|
||||||
|
multiple
|
||||||
|
outlined
|
||||||
|
hide-input
|
||||||
|
class="d-none"
|
||||||
|
prepend-icon="mdi-tray-arrow-up"
|
||||||
|
></v-file-input>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="text-right">
|
<v-col :cols="12" class="text-right">
|
||||||
<a-button @click="writePageButtonGroupClickEvent('cancel')" :ripple="false"
|
<a-button @click="writePageButtonGroupClickEvent('cancel')" :ripple="false" class="mr-2">취소</a-button>
|
||||||
class="mr-2">취소</a-button>
|
<a-button @click="writePageButtonGroupClickEvent('write')" :ripple="false" type="primary">등록</a-button>
|
||||||
<a-button @click="writePageButtonGroupClickEvent('write')" :ripple="false"
|
|
||||||
type="primary">등록</a-button>
|
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</div>
|
</div>
|
||||||
@ -120,7 +126,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 작성 페이지 끝 -->
|
<!-- 작성 페이지 끝 -->
|
||||||
<!-- 답글 작성 페이지 시작 -->
|
<!-- 답글 작성 페이지 시작 -->
|
||||||
<div v-if="pageActionFlag == 'reply'">
|
<div v-if="pageActionFlag == 'reply'" >
|
||||||
<v-card class="pa-5">
|
<v-card class="pa-5">
|
||||||
<v-row align="center" class="mt-0">
|
<v-row align="center" class="mt-0">
|
||||||
<v-col :cols="12" class="">
|
<v-col :cols="12" class="">
|
||||||
@ -128,7 +134,8 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="mt-4">
|
<v-col :cols="12" class="mt-4">
|
||||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
<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-model="replyActionData.title" class="v-input__custom" outlined
|
||||||
|
hide-details>
|
||||||
</v-text-field>
|
</v-text-field>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" style="height: calc(100vh - 270px);" class="mt-2">
|
<v-col :cols="12" style="height: calc(100vh - 270px);" class="mt-2">
|
||||||
@ -137,64 +144,63 @@
|
|||||||
<v-col :cols="6" class="mt-5">
|
<v-col :cols="6" class="mt-5">
|
||||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||||
<div class="" v-if="replyActionData.fileData">
|
<div class="" v-if="replyActionData.fileData">
|
||||||
<div v-for="(fileData, index) in replyActionData.fileData" :key="fileData.apndFileId"
|
<div
|
||||||
|
v-for="(fileData, index) in replyActionData.fileData"
|
||||||
|
:key="fileData.apndFileId"
|
||||||
class="file-item d-flex justify-space-between">
|
class="file-item d-flex justify-space-between">
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon>mdi-paperclip</v-icon>
|
<v-icon>mdi-paperclip</v-icon>
|
||||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-icon type="delete" class="v-icon pointer"
|
<a-icon type="delete" class="v-icon pointer" @click="replyActionData.fileData.splice(index, 1)" />
|
||||||
@click="replyActionData.fileData.splice(index, 1)" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-button class="mt-3" icon="upload" @click="$refs.replyInputFile.$refs.input.click()">
|
<a-button class="mt-3" icon="upload" @click="$refs.replyInputFile.$refs.input.click()" >
|
||||||
업로드
|
업로드
|
||||||
</a-button>
|
</a-button>
|
||||||
<v-file-input ref="replyInputFile" multiple show-size v-model="replyActionData.fileData"
|
<v-file-input ref="replyInputFile" multiple show-size v-model="replyActionData.fileData" hide-details="true" class="d-none">
|
||||||
hide-details="true" class="d-none">
|
|
||||||
</v-file-input>
|
</v-file-input>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="text-right">
|
<v-col :cols="12" class="text-right">
|
||||||
<a-button @click="replyPageButtonGroupClickEvent('cancel')" :ripple="false">취소</a-button>
|
<a-button @click="replyPageButtonGroupClickEvent('cancel')" :ripple="false">취소</a-button>
|
||||||
<a-button @click="replyPageButtonGroupClickEvent('reply')" :ripple="false"
|
<a-button @click="replyPageButtonGroupClickEvent('reply')" :ripple="false" type="primary">등록</a-button>
|
||||||
type="primary">등록</a-button>
|
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</v-card>
|
</v-card>
|
||||||
</div>
|
</div>
|
||||||
<!-- 답글 작성 페이지 끝 -->
|
<!-- 답글 작성 페이지 끝 -->
|
||||||
<!-- 수정 페이지 시작 -->
|
<!-- 수정 페이지 시작 -->
|
||||||
<div v-if="pageActionFlag == 'update'">
|
<div v-if="pageActionFlag == 'update'" >
|
||||||
<v-card>
|
<v-card>
|
||||||
<div class="pa-5">
|
<div class="pa-5">
|
||||||
<v-row align="center" no-gutters>
|
<v-row align="center" no-gutters>
|
||||||
<v-col :cols="12">
|
<v-col :cols="12">
|
||||||
<v-card-title class="custom-title-4 pa-0">공지사항 수정</v-card-title>
|
<v-card-title class="custom-title-4 pa-0">공지사항</v-card-title>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="mt-4">
|
<v-col :cols="12" class="mt-4">
|
||||||
<v-card-title class="custom-title-7 pa-0">제목</v-card-title>
|
<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
|
<v-text-field v-model="updateActionData.title" class="v-input__custom" hide-details outlined>
|
||||||
outlined>
|
|
||||||
</v-text-field>
|
</v-text-field>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" style="height: calc(90vh - 270px);" class="mt-4">
|
<v-col :cols="12" style="height: calc(90vh - 270px);" class="mt-4" >
|
||||||
<editor ref="tuiUpdateEditor" height="100%" initialEditType="wysiwyg"
|
<editor ref="tuiUpdateEditor" height="100%" initialEditType="wysiwyg"
|
||||||
:initialValue="updateActionData.content" />
|
:initialValue="updateActionData.content" />
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="6" class="mt-5">
|
<v-col :cols="6" class="mt-5">
|
||||||
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
<v-card-title class="custom-title-7 pa-0">파일첨부</v-card-title>
|
||||||
<div class="" v-if="updateActionData.fileData">
|
<div class="" v-if="updateActionData.fileData">
|
||||||
<div v-for="(fileData, index) in updateActionData.fileData" :key="fileData.apndFileId"
|
<div
|
||||||
|
v-for="(fileData, index) in updateActionData.fileData"
|
||||||
|
:key="fileData.apndFileId"
|
||||||
class="file-item d-flex justify-space-between">
|
class="file-item d-flex justify-space-between">
|
||||||
<div class="file-item-detail">
|
<div class="file-item-detail">
|
||||||
<v-icon>mdi-paperclip</v-icon>
|
<v-icon>mdi-paperclip</v-icon>
|
||||||
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
<span href="#" class="file-item-name">{{ fileData.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-icon type="delete" class="v-icon pointer"
|
<a-icon type="delete" class="v-icon pointer" @click="updateActionData.fileData.splice(index, 1)" />
|
||||||
@click="updateActionData.fileData.splice(index, 1)" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-button class="mt-2" icon="upload" @click="$refs.updateInputFile.$refs.input.click()">
|
<a-button class="mt-2" icon="upload" @click="$refs.updateInputFile.$refs.input.click()" >
|
||||||
업로드
|
업로드
|
||||||
</a-button>
|
</a-button>
|
||||||
<v-file-input ref="updateInputFile" multiple show-size v-model="updateActionData.fileData"
|
<v-file-input ref="updateInputFile" multiple show-size v-model="updateActionData.fileData"
|
||||||
@ -202,8 +208,8 @@
|
|||||||
</v-file-input>
|
</v-file-input>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="12" class="text-right">
|
<v-col :cols="12" class="text-right">
|
||||||
<a-button @click="updatePageButtonGroupClickEvent('cancel')">취소</a-button>
|
<a-button @click="updatePageButtonGroupClickEvent('cancel')" >취소</a-button>
|
||||||
<a-button @click="updatePageButtonGroupClickEvent('update')" type="primary">등록</a-button>
|
<a-button @click="updatePageButtonGroupClickEvent('update')" type="primary" >등록</a-button>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</div>
|
</div>
|
||||||
@ -289,6 +295,8 @@ export default {
|
|||||||
postGrpOrd: null,
|
postGrpOrd: null,
|
||||||
postOrgNo: null,
|
postOrgNo: null,
|
||||||
},
|
},
|
||||||
|
dataPathMock: {},
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -333,7 +341,7 @@ export default {
|
|||||||
chkOpenTabList: 'chkOpenTabList',
|
chkOpenTabList: 'chkOpenTabList',
|
||||||
getDomain: 'modules/list/getDomain',
|
getDomain: 'modules/list/getDomain',
|
||||||
}),
|
}),
|
||||||
onTest() {
|
onTest(){
|
||||||
console.log(this.writeActionData.fileData);
|
console.log(this.writeActionData.fileData);
|
||||||
},
|
},
|
||||||
async init() {
|
async init() {
|
||||||
@ -392,11 +400,7 @@ export default {
|
|||||||
gridInit() {
|
gridInit() {
|
||||||
const gridHeight = this.$refs.contents.offsetHeight - 76;
|
const gridHeight = this.$refs.contents.offsetHeight - 76;
|
||||||
|
|
||||||
const myOptions = {
|
const myOptions = {};
|
||||||
header: {
|
|
||||||
height: 38,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
this.setGridOption({
|
this.setGridOption({
|
||||||
gridKey: this.gridName,
|
gridKey: this.gridName,
|
||||||
value: Object.assign(Utility.defaultGridOption(gridHeight), myOptions),
|
value: Object.assign(Utility.defaultGridOption(gridHeight), myOptions),
|
||||||
@ -417,7 +421,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
},
|
},
|
||||||
{ header: '번호', name: 'postNo', width: 150, align: 'right' },
|
{ header: '번호', name: 'postNo', width: 150, align: 'center' },
|
||||||
{
|
{
|
||||||
header: '원글번호',
|
header: '원글번호',
|
||||||
name: 'postOrgNo',
|
name: 'postOrgNo',
|
||||||
@ -447,9 +451,9 @@ export default {
|
|||||||
hidden: true,
|
hidden: true,
|
||||||
},
|
},
|
||||||
{ header: '제목', name: 'title', align: 'left' },
|
{ header: '제목', name: 'title', align: 'left' },
|
||||||
{ header: '작성자', name: 'regUserNo', width: 250, align: 'right' },
|
{ header: '작성자', name: 'regUserNo', width: 250, align: 'center' },
|
||||||
{ header: '작성일', name: 'regDttm', width: 250, align: 'center' },
|
{ header: '작성일', name: 'regDttm', width: 250, align: 'center' },
|
||||||
{ header: '조회수', name: 'viewCnt', width: 150, align: 'right' },
|
{ header: '조회수', name: 'viewCnt', width: 150, align: 'center' },
|
||||||
// {header: "파일아이디", name:"apndFileUuid", width:150, align:"center"}, // 수정필요
|
// {header: "파일아이디", name:"apndFileUuid", width:150, align:"center"}, // 수정필요
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -1016,6 +1020,15 @@ const defaultData = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
import { getPathDataExample } from '@/const/const'
|
||||||
|
const dataPathDataExample = getPathDataExample({
|
||||||
|
postNo: '18',
|
||||||
|
title: '오픈공지',
|
||||||
|
regUserNo: '1',
|
||||||
|
regDttm: '2023-01-09 09:39:41',
|
||||||
|
viewCnt: '1'
|
||||||
|
}, 10);
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@ -1029,41 +1042,23 @@ const defaultData = {
|
|||||||
margin: 2px 0;
|
margin: 2px 0;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
background-color: #0000000A;
|
background-color: #0000000A;
|
||||||
|
.file-item-name{
|
||||||
.file-item-name {
|
|
||||||
color: #1677FF;
|
color: #1677FF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep {
|
::v-deep {
|
||||||
.v-input__slot {
|
.v-input__slot {
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.custom-view {
|
.custom-view {
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
@each $theme in dark, light {
|
@each $theme in dark, light {
|
||||||
@include theme($theme);
|
@include theme($theme);
|
||||||
border-color: map-deep-get($config, #{$theme}, "v-input-textarea-border");
|
border-color: map-deep-get($config, #{$theme}, "v-input-textarea-border");;
|
||||||
;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.toastui-editor-mode-switch {
|
|
||||||
font-family: Inter !important;
|
|
||||||
font-size: 1.0rem !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toastui-editor-mode-switch .tab-item.active {
|
|
||||||
color: #1677FF
|
|
||||||
}
|
|
||||||
|
|
||||||
.toastui-editor-mode-switch .tab-item {
|
|
||||||
color: #000000E0
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -7,15 +7,28 @@
|
|||||||
<v-card class="searchFilter">
|
<v-card class="searchFilter">
|
||||||
<v-row align="end" no-gutters>
|
<v-row align="end" no-gutters>
|
||||||
<v-col :cols="3">
|
<v-col :cols="3">
|
||||||
<component :is="'selectCodeList'" :parentPrgmId="myPrgmId" :label="'사용여부'"
|
<component
|
||||||
:dataKey="'selectUseFg'" :sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }"
|
:is="'selectCodeList'"
|
||||||
:addAll="true" customClass="select-large" />
|
:parentPrgmId="myPrgmId"
|
||||||
|
:label="'사용여부'"
|
||||||
|
:dataKey="'selectUseFg'"
|
||||||
|
:sendParam="{ commGrpCd: 'CO_USEFG', useFg: '1' }"
|
||||||
|
:addAll="true"
|
||||||
|
customClass="select-large"
|
||||||
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="3">
|
<v-col :cols="3">
|
||||||
<InputText :parentPrgmId="myPrgmId" label="프로그램명" valueNm="prgmNm" :searchOption="true"
|
<InputText
|
||||||
:labelCols="12" :textCols="12" customClass="input-large" />
|
:parentPrgmId="myPrgmId"
|
||||||
|
label="프로그램명"
|
||||||
|
valueNm="prgmNm"
|
||||||
|
:searchOption="true"
|
||||||
|
:labelCols="12"
|
||||||
|
:textCols="12"
|
||||||
|
customClass="input-large"
|
||||||
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="6" class="text-right">
|
<v-col :cols="5" class="text-right">
|
||||||
<BtnSearch size="large" />
|
<BtnSearch size="large" />
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
@ -25,32 +38,46 @@
|
|||||||
|
|
||||||
<v-row ref="contents">
|
<v-row ref="contents">
|
||||||
<!-- 프로그램 리스트 -->
|
<!-- 프로그램 리스트 -->
|
||||||
<v-col :cols="5">
|
<v-col :cols="5" >
|
||||||
<v-card class="pb-5">
|
<v-card class="pb-5">
|
||||||
<div class="d-flex align-center justify-space-between pa-5">
|
<div class="d-flex align-center justify-space-between pa-5">
|
||||||
<v-card-title class="pa-0">프로그램 리스트</v-card-title>
|
<v-card-title class="pa-0">프로그램 리스트</v-card-title>
|
||||||
<div>
|
<div>
|
||||||
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :detailList="detailList"
|
<Buttons
|
||||||
:btnActionsFnc="btnActions" />
|
:parentPrgmId="myPrgmId"
|
||||||
|
:bindingData="gridName"
|
||||||
|
:detailList="detailList"
|
||||||
|
:btnActionsFnc="btnActions"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ref="gridParent" style="height: 60vh">
|
<div ref="gridParent" style="height: 60vh">
|
||||||
<!-- <div ref="gridParent" class="px-5 h100">
|
<!-- <div ref="gridParent" class="px-5 h100">
|
||||||
</div> -->
|
</div> -->
|
||||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :parentPrgmId="myPrgmId"
|
<component
|
||||||
:gridName="gridName" @getRowsData="getRowData" />
|
:ref="gridName"
|
||||||
|
:is="loadGrid ? 'Grid' : null"
|
||||||
|
:parentPrgmId="myPrgmId"
|
||||||
|
:gridName="gridName"
|
||||||
|
@getRowsData="getRowData"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
<!-- 프로그램 상세 -->
|
<!-- 프로그램 상세 -->
|
||||||
<v-col :cols="7">
|
<v-col :cols="7" >
|
||||||
<v-card class="pb-5">
|
<v-card class="pb-5">
|
||||||
<div class="d-flex align-center justify-space-between pa-5">
|
<div class="d-flex align-center justify-space-between pa-5">
|
||||||
<v-card-title class="pa-0">프로그램 상세</v-card-title>
|
<v-card-title class="pa-0">프로그램 상세</v-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div class="px-5" style="min-height:calc(100% - 76px)">
|
<div class="px-5" style="min-height:calc(100% - 76px)">
|
||||||
<component :is="'Form'" :parentPrgmId="myPrgmId" :bindingData="gridName"
|
<component
|
||||||
:detailList="detailList" @gridEditingFinish="gridEditingFinish" />
|
:is="'Form'"
|
||||||
|
:parentPrgmId="myPrgmId"
|
||||||
|
:bindingData="gridName"
|
||||||
|
:detailList="detailList"
|
||||||
|
@gridEditingFinish="gridEditingFinish"
|
||||||
|
/>
|
||||||
<!-- <div class="w100">
|
<!-- <div class="w100">
|
||||||
</div> -->
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
@ -112,6 +139,8 @@ export default {
|
|||||||
{ header: '타임', name: 'field3', align: 'left' },
|
{ header: '타임', name: 'field3', align: 'left' },
|
||||||
{ header: '사용여부', name: 'field4', align: 'left' }
|
{ header: '사용여부', name: 'field4', align: 'left' }
|
||||||
],
|
],
|
||||||
|
data: dataPathDataExample,
|
||||||
|
defaultRow: dataPathDataExample,
|
||||||
option: {
|
option: {
|
||||||
scrollY: false,
|
scrollY: false,
|
||||||
scrollX: false,
|
scrollX: false,
|
||||||
@ -458,7 +487,7 @@ const myDetail = [
|
|||||||
valueNm: 'prgmTpCd',
|
valueNm: 'prgmTpCd',
|
||||||
essential: true,
|
essential: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pt-5',
|
class: 'py-2',
|
||||||
list: [
|
list: [
|
||||||
{ text: '프로그램', value: '1' },
|
{ text: '프로그램', value: '1' },
|
||||||
{ text: '팝업', value: '2' },
|
{ text: '팝업', value: '2' },
|
||||||
@ -473,11 +502,10 @@ const myDetail = [
|
|||||||
essential: true,
|
essential: true,
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pt-13',
|
class: 'py-2',
|
||||||
value: { '1': true, '0': false },
|
value: { '1': true, '0': false },
|
||||||
required: true,
|
required: true,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
labelCols:12,
|
|
||||||
iconShow: true
|
iconShow: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -486,7 +514,7 @@ const myDetail = [
|
|||||||
valueNm: 'url',
|
valueNm: 'url',
|
||||||
disabled: false,
|
disabled: false,
|
||||||
cols: 12,
|
cols: 12,
|
||||||
class: 'py-2 pt-4',
|
class: 'py-2',
|
||||||
required: true,
|
required: true,
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true
|
iconShow: true
|
||||||
@ -497,7 +525,7 @@ const myDetail = [
|
|||||||
valueNm: 'regUserNo',
|
valueNm: 'regUserNo',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pt-5',
|
class: 'py-2',
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true
|
iconShow: true
|
||||||
@ -508,7 +536,7 @@ const myDetail = [
|
|||||||
valueNm: 'regDttm',
|
valueNm: 'regDttm',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pt-5',
|
class: 'py-2',
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true
|
iconShow: true
|
||||||
@ -519,7 +547,7 @@ const myDetail = [
|
|||||||
valueNm: 'procUserNo',
|
valueNm: 'procUserNo',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pt-5',
|
class: 'py-2',
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true
|
iconShow: true
|
||||||
@ -530,10 +558,19 @@ const myDetail = [
|
|||||||
valueNm: 'procDttm',
|
valueNm: 'procDttm',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
cols: 6,
|
cols: 6,
|
||||||
class: 'py-2 pt-5',
|
class: 'py-2',
|
||||||
placeholder: '시스템 자동입력',
|
placeholder: '시스템 자동입력',
|
||||||
textCols: 12,
|
textCols: 12,
|
||||||
iconShow: true
|
iconShow: true
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
import { getPathDataExample } from '@/const/const'
|
||||||
|
const dataPathDataExample = getPathDataExample({
|
||||||
|
field1: 'PRG0001',
|
||||||
|
field2: '대시보드',
|
||||||
|
field3: '프로그램',
|
||||||
|
field4: '사용'
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<v-col :cols="12">
|
<v-col :cols="12">
|
||||||
<v-card class="searchFilter">
|
<v-card class="searchFilter">
|
||||||
<v-row align="center" no-gutters>
|
<v-row align="center" no-gutters>
|
||||||
<v-col :cols="3">
|
<v-col :cols="2.5">
|
||||||
<component
|
<component
|
||||||
:is="'selectCodeList'"
|
:is="'selectCodeList'"
|
||||||
:parentPrgmId="myPrgmId"
|
:parentPrgmId="myPrgmId"
|
||||||
@ -14,7 +14,7 @@
|
|||||||
:addAll="true"
|
:addAll="true"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="3">
|
<v-col :cols="2.5">
|
||||||
<component
|
<component
|
||||||
:is="'selectCodeList'"
|
:is="'selectCodeList'"
|
||||||
:parentPrgmId="myPrgmId"
|
:parentPrgmId="myPrgmId"
|
||||||
@ -24,8 +24,8 @@
|
|||||||
:addAll="true"
|
:addAll="true"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="3">
|
|
||||||
<!-- 사업장 -->
|
<!-- 사업장 -->
|
||||||
|
<!-- <v-col :cols="3">
|
||||||
<div style="visibility:hidden">
|
<div style="visibility:hidden">
|
||||||
<component
|
<component
|
||||||
:is="'SelectBlocMstr'"
|
:is="'SelectBlocMstr'"
|
||||||
@ -33,13 +33,8 @@
|
|||||||
:parentPrgmId="myPrgmId"
|
:parentPrgmId="myPrgmId"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col> -->
|
||||||
<v-col :cols="3" class="text-right">
|
<v-col :cols="2.5">
|
||||||
<BtnSearch @click="search" />
|
|
||||||
</v-col>
|
|
||||||
</v-row>
|
|
||||||
<v-row align="center" no-gutters>
|
|
||||||
<v-col :cols="3">
|
|
||||||
<component
|
<component
|
||||||
:is="'selectCodeList'"
|
:is="'selectCodeList'"
|
||||||
:parentPrgmId="myPrgmId"
|
:parentPrgmId="myPrgmId"
|
||||||
@ -49,7 +44,7 @@
|
|||||||
:addAll="true"
|
:addAll="true"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="6">
|
<v-col :cols="2.5">
|
||||||
<InputText
|
<InputText
|
||||||
:parentPrgmId="myPrgmId"
|
:parentPrgmId="myPrgmId"
|
||||||
label="공정명"
|
label="공정명"
|
||||||
@ -59,6 +54,12 @@
|
|||||||
:searchOption="true"
|
:searchOption="true"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
<v-col class="text-right">
|
||||||
|
<BtnSearch @click="search" />
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-row align="center" no-gutters>
|
||||||
|
|
||||||
</v-row>
|
</v-row>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
@ -167,7 +167,7 @@ export default {
|
|||||||
header: '설비종류ID',
|
header: '설비종류ID',
|
||||||
name: 'eqpmKindId',
|
name: 'eqpmKindId',
|
||||||
width: gridWidth * 0.5,
|
width: gridWidth * 0.5,
|
||||||
align: 'left',
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: '설비종류명',
|
header: '설비종류명',
|
||||||
|
@ -10,15 +10,15 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<component :is="'SelectBox'" ref="SelectBox1" :propsValue="selectValue01" :itemList="selectValueList01"
|
<component :is="'SelectBox'" ref="SelectBox1" :propsValue="selectValue01" :itemList="selectValueList01"
|
||||||
:label="'FAB'" @update:propsValue="selectValue01 = $event" :iconShow="false" customClass="select-large" />
|
:label="'FAB'" @update:propsValue="selectValue01 = $event" :iconShow="true" customClass="select-large" />
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<component :is="'SelectBox'" ref="SelectBox2" :propsValue="selectValue02" :itemList="selectValueList02"
|
<component :is="'SelectBox'" ref="SelectBox2" :propsValue="selectValue02" :itemList="selectValueList02"
|
||||||
:label="'설비종류'" @update:propsValue="selectValue02 = $event" :iconShow="false" customClass="select-large"/>
|
:label="'설비종류'" @update:propsValue="selectValue02 = $event" :iconShow="true" customClass="select-large"/>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col :cols="2.5">
|
<v-col :cols="2.5">
|
||||||
<component :is="'SelectBox'" ref="SelectBox3" :propsValue="selectValue03" :itemList="selectValueList03"
|
<component :is="'SelectBox'" ref="SelectBox3" :propsValue="selectValue03" :itemList="selectValueList03"
|
||||||
:label="'설비그룹'" @update:propsValue="selectValue03 = $event" :iconShow="false" customClass="select-large" />
|
:label="'설비그룹'" @update:propsValue="selectValue03 = $event" :iconShow="true" customClass="select-large" />
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
<BtnSearch size="large" @click="search" />
|
<BtnSearch size="large" @click="search" />
|
||||||
@ -33,7 +33,7 @@
|
|||||||
<v-row ref="contents">
|
<v-row ref="contents">
|
||||||
<v-col :cols="12" >
|
<v-col :cols="12" >
|
||||||
<v-card class="pb-5">
|
<v-card class="pb-5">
|
||||||
<div class="d-flex align-center justify-space-between pa-4">
|
<div class="d-flex align-center justify-space-between py-4 px-4">
|
||||||
<v-card-title class="pa-0 custom-title-4">설비별 에너지 계획 리스트</v-card-title>
|
<v-card-title class="pa-0 custom-title-4">설비별 에너지 계획 리스트</v-card-title>
|
||||||
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :btnActionsFnc="btnActions" />
|
<Buttons :parentPrgmId="myPrgmId" :bindingData="gridName" :btnActionsFnc="btnActions" />
|
||||||
</div>
|
</div>
|
||||||
@ -291,7 +291,7 @@ export default {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
class CustumButton {
|
class CustomButton {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
const { grid, rowKey, columnInfo } = props;
|
const { grid, rowKey, columnInfo } = props;
|
||||||
|
|
||||||
@ -304,7 +304,7 @@ export default {
|
|||||||
$(elDiv).addClass('tui-grid-cell-content d-flex justify-space-between');
|
$(elDiv).addClass('tui-grid-cell-content d-flex justify-space-between');
|
||||||
const el2 = document.createElement('button');
|
const el2 = document.createElement('button');
|
||||||
$(el2).addClass('edit-btn blue--text');
|
$(el2).addClass('edit-btn blue--text');
|
||||||
el2.innerText = 'Edit';
|
el2.innerText = '편집하다';
|
||||||
elDiv.appendChild(el2);
|
elDiv.appendChild(el2);
|
||||||
|
|
||||||
this.el = elDiv;
|
this.el = elDiv;
|
||||||
@ -352,7 +352,7 @@ export default {
|
|||||||
header: 'NO',
|
header: 'NO',
|
||||||
name: 'rowNum',
|
name: 'rowNum',
|
||||||
width: 40,
|
width: 40,
|
||||||
align: 'center',
|
align: 'right',
|
||||||
// hidden: true,
|
// hidden: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -389,7 +389,7 @@ export default {
|
|||||||
// `;
|
// `;
|
||||||
// }
|
// }
|
||||||
renderer: {
|
renderer: {
|
||||||
type: CustumButton,
|
type: CustomButton,
|
||||||
options: {
|
options: {
|
||||||
value: '계획수정',
|
value: '계획수정',
|
||||||
},
|
},
|
||||||
@ -402,7 +402,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
renderer: {
|
renderer: {
|
||||||
type: CustumButton,
|
type: CustomButton,
|
||||||
options: {
|
options: {
|
||||||
value: '계획수정',
|
value: '계획수정',
|
||||||
},
|
},
|
||||||
|
@ -115,7 +115,7 @@ export class CustomCalcNumberEditor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class CustumChecbox {
|
export class CustomCheckbox {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
const el = document.createElement('input');
|
const el = document.createElement('input');
|
||||||
const { grid, rowKey, columnInfo } = props;
|
const { grid, rowKey, columnInfo } = props;
|
||||||
@ -169,7 +169,7 @@ export class CustumChecbox {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class CustumButton {
|
export class CustomButton {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
const el = document.createElement('button');
|
const el = document.createElement('button');
|
||||||
const { grid, rowKey, columnInfo } = props;
|
const { grid, rowKey, columnInfo } = props;
|
||||||
|
Reference in New Issue
Block a user