Vue2_Frontend 수정1...
This commit is contained in:
parent
1a3426a7cb
commit
fd6001a035
1
.env
1
.env
@ -7,6 +7,7 @@
|
|||||||
VUE_APP_BACKEND_HOST="http://localhost:3000"
|
VUE_APP_BACKEND_HOST="http://localhost:3000"
|
||||||
VUE_APP_BACKEND_HEADERS_Content_Type="application/json;charset=utf-8"
|
VUE_APP_BACKEND_HEADERS_Content_Type="application/json;charset=utf-8"
|
||||||
VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Origin="*"
|
VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Origin="*"
|
||||||
|
VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Method="GET,PUT,POST,DELETE,PATCH,OPTIONS"
|
||||||
|
|
||||||
#LocalStorage는 Edge 브라우저의 개발툴 > 응용프로그램 > 로컬 저장소에서 확인가능
|
#LocalStorage는 Edge 브라우저의 개발툴 > 응용프로그램 > 로컬 저장소에서 확인가능
|
||||||
VUE_APP_LOCALSTORAGE_NAME="access_token"
|
VUE_APP_LOCALSTORAGE_NAME="access_token"
|
||||||
|
|||||||
@ -5,15 +5,8 @@
|
|||||||
"baseUrl": "./",
|
"baseUrl": "./",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"paths": {
|
"paths": {
|
||||||
"@/*": [
|
"@/*": ["src/*"]
|
||||||
"src/*"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"lib": [
|
"lib": ["esnext", "dom", "dom.iterable", "scripthost"]
|
||||||
"esnext",
|
|
||||||
"dom",
|
|
||||||
"dom.iterable",
|
|
||||||
"scripthost"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -100,8 +100,8 @@ export default {
|
|||||||
this.$router.replace(
|
this.$router.replace(
|
||||||
sessionStorage.getItem(
|
sessionStorage.getItem(
|
||||||
process.env.VUE_APP_SESSIONSTORAGE_REDIRECT_NAME
|
process.env.VUE_APP_SESSIONSTORAGE_REDIRECT_NAME
|
||||||
)
|
|
||||||
) || '/'
|
) || '/'
|
||||||
|
)
|
||||||
//저장된 정보 CLear
|
//저장된 정보 CLear
|
||||||
this.onReset()
|
this.onReset()
|
||||||
}
|
}
|
||||||
@ -122,16 +122,16 @@ export default {
|
|||||||
async callAPI(url, params) {
|
async callAPI(url, params) {
|
||||||
console.log('CallAPI..', [url, params])
|
console.log('CallAPI..', [url, params])
|
||||||
axios.defaults.baseURL = process.env.VUE_APP_BACKEND_HOST
|
axios.defaults.baseURL = process.env.VUE_APP_BACKEND_HOST
|
||||||
//전송 Header에 CORP정보 추가
|
|
||||||
axios.defaults.headers.post['Content-Type'] =
|
|
||||||
process.env.VUE_APP_BACKEND_HEADERS_Content_Type
|
|
||||||
axios.defaults.headers.post['Access-Control-Allow-Origin'] =
|
|
||||||
process.env.VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Origin
|
|
||||||
//전송 Header에 추가
|
//전송 Header에 추가
|
||||||
const headers = {
|
const headers = {
|
||||||
// Authorization:
|
// 'Content-Type': process.env.VUE_APP_BACKEND_HEADERS_Content_Type,
|
||||||
// 'Bearer ' +
|
// 'Access-Control-Allow-Origin':
|
||||||
// localStorage.getItem(process.env.VUE_APP_LOCALSTORAGE_NAME)
|
// process.env.VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Origin,
|
||||||
|
// 'Access-Control-Allow-Methods':
|
||||||
|
// process.env.VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Method,
|
||||||
|
Authorization:
|
||||||
|
'Bearer ' +
|
||||||
|
localStorage.getItem(process.env.VUE_APP_LOCALSTORAGE_NAME)
|
||||||
}
|
}
|
||||||
return await axios
|
return await axios
|
||||||
.post(url, params, headers)
|
.post(url, params, headers)
|
||||||
|
|||||||
@ -140,16 +140,16 @@ export default {
|
|||||||
async callAPI(url, params) {
|
async callAPI(url, params) {
|
||||||
console.log('CallAPI..', [url, params])
|
console.log('CallAPI..', [url, params])
|
||||||
axios.defaults.baseURL = process.env.VUE_APP_BACKEND_HOST
|
axios.defaults.baseURL = process.env.VUE_APP_BACKEND_HOST
|
||||||
//전송 Header에 CORP정보 추가
|
|
||||||
axios.defaults.headers.post['Content-Type'] =
|
|
||||||
process.env.VUE_APP_BACKEND_HEADERS_Content_Type
|
|
||||||
axios.defaults.headers.post['Access-Control-Allow-Origin'] =
|
|
||||||
process.env.VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Origin
|
|
||||||
//전송 Header에 추가
|
//전송 Header에 추가
|
||||||
const headers = {
|
const headers = {
|
||||||
// Authorization:
|
// 'Content-Type': process.env.VUE_APP_BACKEND_HEADERS_Content_Type,
|
||||||
// 'Bearer ' +
|
// 'Access-Control-Allow-Origin':
|
||||||
// localStorage.getItem(process.env.VUE_APP_LOCALSTORAGE_NAME)
|
// process.env.VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Origin,
|
||||||
|
// 'Access-Control-Allow-Methods':
|
||||||
|
// process.env.VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Method,
|
||||||
|
Authorization:
|
||||||
|
'Bearer ' +
|
||||||
|
localStorage.getItem(process.env.VUE_APP_LOCALSTORAGE_NAME)
|
||||||
}
|
}
|
||||||
return await axios
|
return await axios
|
||||||
.post(url, params, headers)
|
.post(url, params, headers)
|
||||||
|
|||||||
@ -11,28 +11,44 @@
|
|||||||
>
|
>
|
||||||
</label>
|
</label>
|
||||||
<b-form-select
|
<b-form-select
|
||||||
v-model="selectMode"
|
v-model="selectedRowMode"
|
||||||
:options="selectModes"
|
:options="selectedRowModes"
|
||||||
></b-form-select>
|
></b-form-select>
|
||||||
</b-input-group>
|
</b-input-group>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-col cols="6" class="border">
|
<b-col cols="4" class="border">
|
||||||
<b-input-group>
|
<b-input-group>
|
||||||
<label class="input-group-text">
|
<label class="input-group-text">
|
||||||
<b-form-checkbox-group
|
<b-form-checkbox-group
|
||||||
class="d-flex flex-nowrap"
|
class="d-flex flex-nowrap"
|
||||||
v-model="searchFields"
|
v-model="searchFields"
|
||||||
:options="searchOptions"
|
:options="searchFieldOptions"
|
||||||
></b-form-checkbox-group>
|
></b-form-checkbox-group>
|
||||||
</label>
|
</label>
|
||||||
<b-form-input
|
<b-form-input
|
||||||
v-model="search"
|
v-model="search"
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="검색어"
|
placeholder="검색어"
|
||||||
|
@keydown.enter="searchClick"
|
||||||
></b-form-input>
|
></b-form-input>
|
||||||
<b-button @click="searchClick">검색</b-button>
|
<b-button @click="searchClick">검색</b-button>
|
||||||
</b-input-group>
|
</b-input-group>
|
||||||
</b-col>
|
</b-col>
|
||||||
|
<b-col cols="4" class="border">
|
||||||
|
<b-input-group>
|
||||||
|
<label class="input-group-text">
|
||||||
|
<b-form-select
|
||||||
|
class="d-flex flex-nowrap"
|
||||||
|
v-model="filterDateField"
|
||||||
|
:options="filterDateFieldOptions"
|
||||||
|
></b-form-select>
|
||||||
|
</label>
|
||||||
|
<b-form-input v-model="filterDateStart" type="date"></b-form-input>
|
||||||
|
~
|
||||||
|
<b-form-input v-model="filterDateEnd" type="date"></b-form-input>
|
||||||
|
<b-button @click="dateClick">선택</b-button>
|
||||||
|
</b-input-group>
|
||||||
|
</b-col>
|
||||||
<b-col class="border">
|
<b-col class="border">
|
||||||
<b-input-group class="justify-content-end">
|
<b-input-group class="justify-content-end">
|
||||||
<label class="input-group-text">줄수</label>
|
<label class="input-group-text">줄수</label>
|
||||||
@ -53,12 +69,11 @@
|
|||||||
:per-page="perPage"
|
:per-page="perPage"
|
||||||
:sort-by.sync="sortBy"
|
:sort-by.sync="sortBy"
|
||||||
:sort-desc.sync="sortDesc"
|
:sort-desc.sync="sortDesc"
|
||||||
:sort-direction="sortDirection"
|
|
||||||
@sort-changed="sortClick"
|
@sort-changed="sortClick"
|
||||||
label-sort-asc=""
|
label-sort-asc=""
|
||||||
label-sort-desc=""
|
label-sort-desc=""
|
||||||
label-sort-clear=""
|
label-sort-clear=""
|
||||||
:select-mode="selectMode"
|
:select-mode="selectedRowMode"
|
||||||
selectable
|
selectable
|
||||||
@row-selected="rowSelectedToggle"
|
@row-selected="rowSelectedToggle"
|
||||||
:busy="isBusy"
|
:busy="isBusy"
|
||||||
@ -71,6 +86,14 @@
|
|||||||
:dark="commonTableAttributes.dark"
|
:dark="commonTableAttributes.dark"
|
||||||
:head-variant="commonTableAttributes.headVariant"
|
:head-variant="commonTableAttributes.headVariant"
|
||||||
>
|
>
|
||||||
|
<!-- Column별 Filter용 -->
|
||||||
|
<template #thead-top>
|
||||||
|
<b-tr>
|
||||||
|
<b-th colspan="4"> </b-th>
|
||||||
|
<b-th>Type 2</b-th>
|
||||||
|
<b-th></b-th>
|
||||||
|
</b-tr>
|
||||||
|
</template>
|
||||||
<!-- 비/선택 Row를 토글용 -->
|
<!-- 비/선택 Row를 토글용 -->
|
||||||
<template #cell(rowSelect)="{ rowSelected }">
|
<template #cell(rowSelect)="{ rowSelected }">
|
||||||
<template v-if="rowSelected">
|
<template v-if="rowSelected">
|
||||||
@ -213,19 +236,25 @@ export default {
|
|||||||
isBusy: false,
|
isBusy: false,
|
||||||
sortBy: 'id',
|
sortBy: 'id',
|
||||||
sortDesc: true,
|
sortDesc: true,
|
||||||
sortDirection: 'desc',
|
search: null,
|
||||||
search: null, //DB검색
|
|
||||||
searchFields: ['title', 'content'],
|
searchFields: ['title', 'content'],
|
||||||
searchOptions: [
|
searchFieldOptions: [
|
||||||
{ text: '제목', value: 'title' },
|
{ text: '제목', value: 'title' },
|
||||||
{ text: '내용', value: 'content' },
|
{ text: '내용', value: 'content' }
|
||||||
|
],
|
||||||
|
filter: null,
|
||||||
|
filterField: null,
|
||||||
|
filterDateStart: null,
|
||||||
|
filterDateEnd: null,
|
||||||
|
filterDateField: 'createdAt',
|
||||||
|
filterDateFieldOptions: [
|
||||||
{ text: '수정일', value: 'updatedAt' },
|
{ text: '수정일', value: 'updatedAt' },
|
||||||
{ text: '등록일', value: 'createdAt' }
|
{ text: '등록일', value: 'createdAt' }
|
||||||
],
|
],
|
||||||
selectModes: ['multi', 'single', 'range'],
|
selectedRows: [],
|
||||||
selectMode: 'multi',
|
selectedRowAllToggle: false,
|
||||||
selectedAllToggle: false,
|
selectedRowMode: 'multi',
|
||||||
selectedRows: []
|
selectedRowModes: ['multi', 'single', 'range']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setup: function () {},
|
setup: function () {},
|
||||||
@ -239,12 +268,16 @@ export default {
|
|||||||
this.isBusy = true
|
this.isBusy = true
|
||||||
const results = await this.callAPI('/todo', {
|
const results = await this.callAPI('/todo', {
|
||||||
params: {
|
params: {
|
||||||
|
page: page,
|
||||||
|
perPage: this.perPage,
|
||||||
sortBy: this.sortBy,
|
sortBy: this.sortBy,
|
||||||
sortDesc: this.sortDesc,
|
sortDesc: this.sortDesc,
|
||||||
searchFields: this.searchFields,
|
searchFields: this.searchFields,
|
||||||
search: this.search,
|
search: this.search,
|
||||||
page: page,
|
filter: this.filter,
|
||||||
perPage: this.perPage
|
filterField: this.filterField,
|
||||||
|
filterDateStart: this.filterDateStart,
|
||||||
|
filterDateEnd: this.filterDateEnd
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
//console.log(JSON.stringify(results))
|
//console.log(JSON.stringify(results))
|
||||||
@ -276,6 +309,11 @@ export default {
|
|||||||
this.sortDesc = event.sortDesc
|
this.sortDesc = event.sortDesc
|
||||||
this.getDatas()
|
this.getDatas()
|
||||||
},
|
},
|
||||||
|
dateClick(event) {
|
||||||
|
console.log(event)
|
||||||
|
this.filterField = this.filterDateField
|
||||||
|
this.getDatas()
|
||||||
|
},
|
||||||
busyToggle() {
|
busyToggle() {
|
||||||
this.isBusy = !this.isBusy
|
this.isBusy = !this.isBusy
|
||||||
},
|
},
|
||||||
@ -283,12 +321,12 @@ export default {
|
|||||||
this.selectedRows = selectedRow
|
this.selectedRows = selectedRow
|
||||||
},
|
},
|
||||||
rowSelectAllToggle() {
|
rowSelectAllToggle() {
|
||||||
if (this.selectedAllToggle) {
|
if (this.selectedRowAllToggle) {
|
||||||
this.$refs.todoTable.clearSelected()
|
this.$refs.todoTable.clearSelected()
|
||||||
this.selectedAllToggle = false
|
this.selectedRowAllToggle = false
|
||||||
} else {
|
} else {
|
||||||
this.$refs.todoTable.selectAllRows()
|
this.$refs.todoTable.selectAllRows()
|
||||||
this.selectedAllToggle = true
|
this.selectedRowAllToggle = true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// rowSelectSet(id) {
|
// rowSelectSet(id) {
|
||||||
@ -302,15 +340,16 @@ export default {
|
|||||||
async callAPI(url, params) {
|
async callAPI(url, params) {
|
||||||
console.log('CallAPI..', [url, params])
|
console.log('CallAPI..', [url, params])
|
||||||
axios.defaults.baseURL = process.env.VUE_APP_BACKEND_HOST
|
axios.defaults.baseURL = process.env.VUE_APP_BACKEND_HOST
|
||||||
axios.defaults.headers.post['Content-Type'] =
|
|
||||||
process.env.VUE_APP_BACKEND_HEADERS_Content_Type
|
|
||||||
axios.defaults.headers.post['Access-Control-Allow-Origin'] =
|
|
||||||
process.env.VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Origin
|
|
||||||
//전송 Header에 추가
|
//전송 Header에 추가
|
||||||
const headers = {
|
const headers = {
|
||||||
// Authorization:
|
// 'Content-Type': process.env.VUE_APP_BACKEND_HEADERS_Content_Type,
|
||||||
// 'Bearer ' +
|
// 'Access-Control-Allow-Origin':
|
||||||
// localStorage.getItem(process.env.VUE_APP_LOCALSTORAGE_NAME)
|
// process.env.VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Origin,
|
||||||
|
// 'Access-Control-Allow-Methods':
|
||||||
|
// process.env.VUE_APP_BACKEND_HEADERS_Access_Control_Allow_Method,
|
||||||
|
Authorization:
|
||||||
|
'Bearer ' +
|
||||||
|
localStorage.getItem(process.env.VUE_APP_LOCALSTORAGE_NAME)
|
||||||
}
|
}
|
||||||
return await axios
|
return await axios
|
||||||
.get(url, params, headers)
|
.get(url, params, headers)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user