|
@@ -4,28 +4,63 @@
|
|
|
<h2>{{ pageId }}</h2>
|
|
<h2>{{ pageId }}</h2>
|
|
|
<div class="bread--crumbs--wrap">
|
|
<div class="bread--crumbs--wrap">
|
|
|
<span>홈</span>
|
|
<span>홈</span>
|
|
|
- <span>관리자 관리</span>
|
|
|
|
|
<span>{{ pageId }}</span>
|
|
<span>{{ pageId }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <div class="search--modules">
|
|
|
|
|
- <div class="form--cont--filter">
|
|
|
|
|
- <v-select
|
|
|
|
|
- v-model="filter"
|
|
|
|
|
- :items="filderArr"
|
|
|
|
|
- variant="outlined"
|
|
|
|
|
- class="custom-select"
|
|
|
|
|
- >
|
|
|
|
|
- </v-select>
|
|
|
|
|
|
|
+ <div class="search--modules type2">
|
|
|
|
|
+ <div class="search--inner">
|
|
|
|
|
+ <div class="form--cont--filter">
|
|
|
|
|
+ <v-select
|
|
|
|
|
+ v-model="filter"
|
|
|
|
|
+ :items="filderArr"
|
|
|
|
|
+ variant="outlined"
|
|
|
|
|
+ class="custom-select"
|
|
|
|
|
+ >
|
|
|
|
|
+ </v-select>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="form--cont--text">
|
|
|
|
|
+ <v-text-field
|
|
|
|
|
+ v-model="searchModel"
|
|
|
|
|
+ class="custom-input mini"
|
|
|
|
|
+ style="width: 100%"
|
|
|
|
|
+ placeholder="검색어를 입력하세요"
|
|
|
|
|
+ ></v-text-field>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="form--cont--text">
|
|
|
|
|
- <v-text-field
|
|
|
|
|
- v-model="searchModel"
|
|
|
|
|
- class="custom-input mini"
|
|
|
|
|
- style="width: 100%"
|
|
|
|
|
- placeholder="검색어를 입력하세요"
|
|
|
|
|
- ></v-text-field>
|
|
|
|
|
|
|
+ <div class="search--inner">
|
|
|
|
|
+ <div class="calendar-wrap ml--0">
|
|
|
|
|
+ <div class="calendar">
|
|
|
|
|
+ <VueDatePicker
|
|
|
|
|
+ :format="datePickerFormat"
|
|
|
|
|
+ v-model="searchStartDate"
|
|
|
|
|
+ placeholder="날짜를 선택하세요"
|
|
|
|
|
+ :auto-apply="true"
|
|
|
|
|
+ week-start="0"
|
|
|
|
|
+ ></VueDatePicker>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <span class="text">~</span>
|
|
|
|
|
+ <div class="calendar">
|
|
|
|
|
+ <VueDatePicker
|
|
|
|
|
+ v-model="searchEndDate"
|
|
|
|
|
+ :format="datePickerFormat"
|
|
|
|
|
+ placeholder="날짜를 선택하세요"
|
|
|
|
|
+ :auto-apply="true"
|
|
|
|
|
+ week-start="0"
|
|
|
|
|
+ ></VueDatePicker>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="month--selector">
|
|
|
|
|
+ <v-btn
|
|
|
|
|
+ v-for="option in dateOptions"
|
|
|
|
|
+ :key="option.value"
|
|
|
|
|
+ :class="{ actv: selectedRange === option.value }"
|
|
|
|
|
+ @click="setDateRange(option.value)"
|
|
|
|
|
+ elevation="0"
|
|
|
|
|
+ >
|
|
|
|
|
+ {{ option.label }}
|
|
|
|
|
+ </v-btn>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
<v-btn
|
|
<v-btn
|
|
|
class="custom-btn btn-blue mini sch--btn"
|
|
class="custom-btn btn-blue mini sch--btn"
|
|
@@ -37,15 +72,16 @@
|
|
|
<div class="data--list--wrap">
|
|
<div class="data--list--wrap">
|
|
|
<div class="btn--actions--wrap">
|
|
<div class="btn--actions--wrap">
|
|
|
<div class="left--sections">
|
|
<div class="left--sections">
|
|
|
|
|
+ <v-btn class="custom-btn btn-pink bdrs--10"
|
|
|
|
|
+ ><i class="ico"></i>개별 배송</v-btn
|
|
|
|
|
+ >
|
|
|
|
|
+ <v-btn class="custom-btn bdrs--10 btn-white" @click="deliLocated()"
|
|
|
|
|
+ ><i class="ico"></i>공동구매 배송</v-btn
|
|
|
|
|
+ >
|
|
|
</div>
|
|
</div>
|
|
|
<div class="right--sections">
|
|
<div class="right--sections">
|
|
|
- <v-btn class="custom-btn mini btn-white" @click="fnDelEvt">선택 삭제</v-btn>
|
|
|
|
|
- <v-btn class="custom-btn mini btn-reg ml--10" @click="fnResEvt"
|
|
|
|
|
- >선택 복원</v-btn
|
|
|
|
|
- >
|
|
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
<div class="tbl-wrapper">
|
|
<div class="tbl-wrapper">
|
|
|
<div class="tbl-wrap">
|
|
<div class="tbl-wrap">
|
|
|
<!-- ag grid -->
|
|
<!-- ag grid -->
|
|
@@ -58,6 +94,7 @@
|
|
|
:paginationPageSize="pageObj.pageSize"
|
|
:paginationPageSize="pageObj.pageSize"
|
|
|
:suppressPaginationPanel="true"
|
|
:suppressPaginationPanel="true"
|
|
|
@grid-ready="onGridReady"
|
|
@grid-ready="onGridReady"
|
|
|
|
|
+ @rowClicked="detailLocated"
|
|
|
>
|
|
>
|
|
|
</ag-grid-vue>
|
|
</ag-grid-vue>
|
|
|
|
|
|
|
@@ -72,7 +109,10 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
- import { AgGridVue } from "ag-grid-vue3";
|
|
|
|
|
|
|
+import VueDatePicker from "@vuepic/vue-datepicker";
|
|
|
|
|
+import "@vuepic/vue-datepicker/dist/main.css";
|
|
|
|
|
+import { AgGridVue } from "ag-grid-vue3";
|
|
|
|
|
+import dayjs from 'dayjs';
|
|
|
import pagination from "../components/common/pagination.vue";
|
|
import pagination from "../components/common/pagination.vue";
|
|
|
/************************************************************************
|
|
/************************************************************************
|
|
|
| 레이아웃
|
|
| 레이아웃
|
|
@@ -97,15 +137,26 @@ import pagination from "../components/common/pagination.vue";
|
|
|
| 전역
|
|
| 전역
|
|
|
************************************************************************/
|
|
************************************************************************/
|
|
|
const searchModel = ref("");
|
|
const searchModel = ref("");
|
|
|
|
|
+ const selectedRange = ref('all');
|
|
|
|
|
+ const itemStartDate = ref("");
|
|
|
|
|
+ const searchStartDate = ref("");
|
|
|
|
|
+ const searchEndDate = ref("");
|
|
|
|
|
+ const datePickerFormat = "yyyy-MM-dd";
|
|
|
|
|
+ const dateOptions = [
|
|
|
|
|
+ { label: '오늘', value: 'today' },
|
|
|
|
|
+ { label: '7일', value: '7d' },
|
|
|
|
|
+ { label: '1개월', value: '1m' },
|
|
|
|
|
+ { label: '3개월', value: '3m' },
|
|
|
|
|
+ { label: '전체', value: 'all' },
|
|
|
|
|
+ ]
|
|
|
const filter = ref("");
|
|
const filter = ref("");
|
|
|
const filderArr = ref([
|
|
const filderArr = ref([
|
|
|
- { title: "선택하세요", value: "" },
|
|
|
|
|
- { title: "이름", value: "name" },
|
|
|
|
|
- { title: "아이디", value: "id" },
|
|
|
|
|
|
|
+ { title: "전체", value: "" },
|
|
|
|
|
+ { title: "제품명", value: "name" },
|
|
|
]);
|
|
]);
|
|
|
const { $toast, $log, $dayjs, $eventBus } = useNuxtApp();
|
|
const { $toast, $log, $dayjs, $eventBus } = useNuxtApp();
|
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
|
- const pageId = ref("삭제 관리자 리스트");
|
|
|
|
|
|
|
+ const pageId = ref("배송 관리");
|
|
|
let pageObj = ref({
|
|
let pageObj = ref({
|
|
|
page: 1, // 현재 페이지
|
|
page: 1, // 현재 페이지
|
|
|
pageMaxNumSize: 10, // 페이지 숫자 최대 표현 개수
|
|
pageMaxNumSize: 10, // 페이지 숫자 최대 표현 개수
|
|
@@ -127,7 +178,7 @@ import pagination from "../components/common/pagination.vue";
|
|
|
// gridOption
|
|
// gridOption
|
|
|
const gridOptions = {
|
|
const gridOptions = {
|
|
|
columnDefs: [
|
|
columnDefs: [
|
|
|
- { checkboxSelection: true, headerCheckboxSelection: true, width: 0 },
|
|
|
|
|
|
|
+ //{ checkboxSelection: true, headerCheckboxSelection: true, width: 0 },
|
|
|
{
|
|
{
|
|
|
headerName: "No",
|
|
headerName: "No",
|
|
|
valueGetter: (params) => params.api.getDisplayedRowCount() - params.node.rowIndex,
|
|
valueGetter: (params) => params.api.getDisplayedRowCount() - params.node.rowIndex,
|
|
@@ -135,24 +186,32 @@ import pagination from "../components/common/pagination.vue";
|
|
|
width: 70,
|
|
width: 70,
|
|
|
},
|
|
},
|
|
|
// { headerName: "번호", field: "NO", sortable: false },
|
|
// { headerName: "번호", field: "NO", sortable: false },
|
|
|
- { headerName: "아이디", field: "ID", sortable: false },
|
|
|
|
|
- { headerName: "이름", field: "NAME", sortable: false },
|
|
|
|
|
- { headerName: "이메일", field: "EMAIL", sortable: false },
|
|
|
|
|
- { headerName: "상태",
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ headerName: "제품명",
|
|
|
|
|
+ field: "NAME",
|
|
|
|
|
+ //sortable: useAuthStore().getCompanyId == "0-000000" ? true : false,
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ headerName: "제품 총수량",
|
|
|
field: "STATUS",
|
|
field: "STATUS",
|
|
|
- sortable: false,
|
|
|
|
|
width: 140,
|
|
width: 140,
|
|
|
cellRenderer: (params) => {
|
|
cellRenderer: (params) => {
|
|
|
- return params.value == 0 ? '사용중' : params.value == 1 ? '정지' : '삭제';
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ return params.value;
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ headerName: "총 주문금액",
|
|
|
|
|
+ field: "STATUS",
|
|
|
|
|
+ width: 140,
|
|
|
|
|
+ cellRenderer: (params) => {
|
|
|
|
|
+ return params.value;
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ headerName: "주문일",
|
|
|
|
|
+ field: "ORDDATE",
|
|
|
|
|
+ width: 140,
|
|
|
},
|
|
},
|
|
|
- { headerName: "삭제일", field: "REGDATE", sortable: false, width: 140 },
|
|
|
|
|
- // {
|
|
|
|
|
- // headerName: "알림 메일 수신 여부",
|
|
|
|
|
- // field: "mail_recp_yn",
|
|
|
|
|
- // sortable: false,
|
|
|
|
|
- // width: 130,
|
|
|
|
|
- // },
|
|
|
|
|
],
|
|
],
|
|
|
rowData: tblItems.value, // 테이블 데이터
|
|
rowData: tblItems.value, // 테이블 데이터
|
|
|
autoSizeStrategy: {
|
|
autoSizeStrategy: {
|
|
@@ -174,6 +233,44 @@ import pagination from "../components/common/pagination.vue";
|
|
|
/************************************************************************
|
|
/************************************************************************
|
|
|
| 함수(METHODS)
|
|
| 함수(METHODS)
|
|
|
************************************************************************/
|
|
************************************************************************/
|
|
|
|
|
+ const deliLocated = () => {
|
|
|
|
|
+ router.push({
|
|
|
|
|
+ path: "/view/common/deli/index2",
|
|
|
|
|
+ });
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const setDateRange = (range) => {
|
|
|
|
|
+ const today = dayjs();
|
|
|
|
|
+
|
|
|
|
|
+ switch(range) {
|
|
|
|
|
+ case 'today' :
|
|
|
|
|
+ searchStartDate.value = today.format('YYYY-MM-DD');
|
|
|
|
|
+ searchEndDate.value = today.format('YYYY-MM-DD');
|
|
|
|
|
+ selectedRange.value = 'today';
|
|
|
|
|
+ break;
|
|
|
|
|
+ case '7d':
|
|
|
|
|
+ searchStartDate.value = today.subtract(7, 'day').format('YYYY-MM-DD');
|
|
|
|
|
+ searchEndDate.value = today.format('YYYY-MM-DD');
|
|
|
|
|
+ selectedRange.value = '7d';
|
|
|
|
|
+ break;
|
|
|
|
|
+ case '1m':
|
|
|
|
|
+ searchStartDate.value = today.subtract(1, 'month').format('YYYY-MM-DD');
|
|
|
|
|
+ searchEndDate.value = today.format('YYYY-MM-DD');
|
|
|
|
|
+ selectedRange.value = '1m';
|
|
|
|
|
+ break;
|
|
|
|
|
+ case '3m':
|
|
|
|
|
+ searchStartDate.value = today.subtract(3, 'month').format('YYYY-MM-DD');
|
|
|
|
|
+ searchEndDate.value = today.format('YYYY-MM-DD');
|
|
|
|
|
+ selectedRange.value = '3m';
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'all':
|
|
|
|
|
+ searchStartDate.value = itemStartDate.value;
|
|
|
|
|
+ searchEndDate.value = today.format('YYYY-MM-DD');
|
|
|
|
|
+ selectedRange.value = 'all';
|
|
|
|
|
+ break
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
const onGridReady = (__PARAMS) => {
|
|
const onGridReady = (__PARAMS) => {
|
|
|
gridApi.value = __PARAMS.api;
|
|
gridApi.value = __PARAMS.api;
|
|
|
};
|
|
};
|
|
@@ -183,147 +280,50 @@ import pagination from "../components/common/pagination.vue";
|
|
|
gridApi.value.paginationGoToPage(__PAGE - 1);
|
|
gridApi.value.paginationGoToPage(__PAGE - 1);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- // const detailLocated = (__EVENT) => {
|
|
|
|
|
- // router.push({
|
|
|
|
|
- // path: "/view/mng/mngAdd",
|
|
|
|
|
- // });
|
|
|
|
|
- // useDtStore.adminInfo.adminId = __EVENT.data.ID;
|
|
|
|
|
- // useDtStore.adminInfo.pageType = "U";
|
|
|
|
|
- // };
|
|
|
|
|
|
|
+ const detailLocated = (__EVENT) => {
|
|
|
|
|
+ router.push({
|
|
|
|
|
+ path: "/view/common/deli/detail",
|
|
|
|
|
+ });
|
|
|
|
|
+ useDtStore.boardInfo.seq = __EVENT.data.SEQ;
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- const adminListGet = () => {
|
|
|
|
|
|
|
+ const itemListGet = async () => {
|
|
|
let _req = {
|
|
let _req = {
|
|
|
- _size: 1000,
|
|
|
|
|
- _index: 0,
|
|
|
|
|
- status: "-1",
|
|
|
|
|
|
|
+ // compId: useAuthStore().getCompanyId,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
useAxios()
|
|
useAxios()
|
|
|
- .post("/mng/list", _req)
|
|
|
|
|
|
|
+ .post("/item/list", _req)
|
|
|
.then((res) => {
|
|
.then((res) => {
|
|
|
- _req._size = res.data.length;
|
|
|
|
|
tblItems.value = res.data;
|
|
tblItems.value = res.data;
|
|
|
pageObj.value.totalCnt = tblItems.value.length;
|
|
pageObj.value.totalCnt = tblItems.value.length;
|
|
|
|
|
+
|
|
|
|
|
+ itemStartDate.value = res.data[res.data.length-1].UDPDATE;
|
|
|
|
|
+ searchStartDate.value = itemStartDate.value;
|
|
|
|
|
+ searchEndDate.value = dayjs();
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const fnSearch = (__KEYWORD, __FILTER) => {
|
|
const fnSearch = (__KEYWORD, __FILTER) => {
|
|
|
let _req = {
|
|
let _req = {
|
|
|
- _size: 1000,
|
|
|
|
|
- _index: 0,
|
|
|
|
|
filter: __FILTER,
|
|
filter: __FILTER,
|
|
|
keyword: __KEYWORD,
|
|
keyword: __KEYWORD,
|
|
|
- status: "-1"
|
|
|
|
|
|
|
+ startDate: searchStartDate.value,
|
|
|
|
|
+ endDate: searchEndDate.value,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
useAxios()
|
|
useAxios()
|
|
|
- .post("/mng/search", _req)
|
|
|
|
|
|
|
+ .post("/item/search", _req)
|
|
|
.then((res) => {
|
|
.then((res) => {
|
|
|
- _req._size = res.data.length;
|
|
|
|
|
-
|
|
|
|
|
tblItems.value = res.data;
|
|
tblItems.value = res.data;
|
|
|
pageObj.value.totalCnt = tblItems.value.length;
|
|
pageObj.value.totalCnt = tblItems.value.length;
|
|
|
})
|
|
})
|
|
|
.catch((error) => {});
|
|
.catch((error) => {});
|
|
|
};
|
|
};
|
|
|
-
|
|
|
|
|
- const fnRestore = async (idArr) => {
|
|
|
|
|
- if (!idArr.length) return;
|
|
|
|
|
-
|
|
|
|
|
- for (const id of idArr) {
|
|
|
|
|
- await useAxios().post(`mng/stupdate/${id}`);
|
|
|
|
|
- }
|
|
|
|
|
- window.location.reload();
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- const fnResEvt = () => {
|
|
|
|
|
- const selected = gridApi.value.getSelectedRows();
|
|
|
|
|
- if(selected.length === 0){
|
|
|
|
|
- let param = {
|
|
|
|
|
- id: pageId,
|
|
|
|
|
- title: "관리자 복원",
|
|
|
|
|
- content: "복원할 관리자를 선택하세요.",
|
|
|
|
|
- yes: {
|
|
|
|
|
- text: "확인",
|
|
|
|
|
- isProc: false,
|
|
|
|
|
- },
|
|
|
|
|
- };
|
|
|
|
|
- $eventBus.emit("OPEN_CONFIRM_POP_UP", param);
|
|
|
|
|
- } else{
|
|
|
|
|
- let param = {
|
|
|
|
|
- id: pageId,
|
|
|
|
|
- title: "관리자 복원",
|
|
|
|
|
- content: "복원하시겠습니까?",
|
|
|
|
|
- yes: {
|
|
|
|
|
- text: "확인",
|
|
|
|
|
- isProc: true,
|
|
|
|
|
- event: "FN_RESTORE",
|
|
|
|
|
- param: selected,
|
|
|
|
|
- },
|
|
|
|
|
- no: {
|
|
|
|
|
- text: "취소",
|
|
|
|
|
- isProc: false,
|
|
|
|
|
- },
|
|
|
|
|
- };
|
|
|
|
|
- $eventBus.emit("OPEN_CONFIRM_POP_UP", param);
|
|
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- const fnDelete = async (idArr) => {
|
|
|
|
|
- if (!idArr.length) return;
|
|
|
|
|
-
|
|
|
|
|
- for (const id of idArr) {
|
|
|
|
|
- await useAxios().post(`mng/delete/${id}`);
|
|
|
|
|
- }
|
|
|
|
|
- window.location.reload();
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- const fnDelEvt = () => {
|
|
|
|
|
- const selected = gridApi.value.getSelectedRows();
|
|
|
|
|
- if(selected.length === 0){
|
|
|
|
|
- let param = {
|
|
|
|
|
- id: pageId,
|
|
|
|
|
- title: "관리자 삭제",
|
|
|
|
|
- content: "삭제할 관리자를 선택하세요.",
|
|
|
|
|
- yes: {
|
|
|
|
|
- text: "확인",
|
|
|
|
|
- isProc: false,
|
|
|
|
|
- },
|
|
|
|
|
- };
|
|
|
|
|
- $eventBus.emit("OPEN_CONFIRM_POP_UP", param);
|
|
|
|
|
- } else{
|
|
|
|
|
- let param = {
|
|
|
|
|
- id: pageId,
|
|
|
|
|
- title: "관리자 삭제",
|
|
|
|
|
- content: "삭제하시겠습니까?",
|
|
|
|
|
- yes: {
|
|
|
|
|
- text: "확인",
|
|
|
|
|
- isProc: true,
|
|
|
|
|
- event: "FN_DELETE",
|
|
|
|
|
- param: selected,
|
|
|
|
|
- },
|
|
|
|
|
- no: {
|
|
|
|
|
- text: "취소",
|
|
|
|
|
- isProc: false,
|
|
|
|
|
- },
|
|
|
|
|
- };
|
|
|
|
|
- $eventBus.emit("OPEN_CONFIRM_POP_UP", param);
|
|
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
-/************************************************************************
|
|
|
|
|
|
|
+ /************************************************************************
|
|
|
| 팝업 이벤트버스 정의
|
|
| 팝업 이벤트버스 정의
|
|
|
************************************************************************/
|
|
************************************************************************/
|
|
|
-$eventBus.off("FN_RESTORE");
|
|
|
|
|
-$eventBus.on("FN_RESTORE", (selected) => {
|
|
|
|
|
- const idList = selected.map(row => row.ID);
|
|
|
|
|
- fnRestore(idList);
|
|
|
|
|
-});
|
|
|
|
|
-$eventBus.off("FN_DELETE");
|
|
|
|
|
-$eventBus.on("FN_DELETE", (selected) => {
|
|
|
|
|
- const idList = selected.map(row => row.ID);
|
|
|
|
|
- fnDelete(idList);
|
|
|
|
|
-});
|
|
|
|
|
-/************************************************************************
|
|
|
|
|
|
|
+ /************************************************************************
|
|
|
| WATCH
|
|
| WATCH
|
|
|
************************************************************************/
|
|
************************************************************************/
|
|
|
|
|
|
|
@@ -337,6 +337,6 @@ $eventBus.on("FN_DELETE", (selected) => {
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
- adminListGet();
|
|
|
|
|
|
|
+ itemListGet();
|
|
|
});
|
|
});
|
|
|
</script>
|
|
</script>
|