kevin_zhangl 3 лет назад
Родитель
Сommit
648ce57d1f

+ 3 - 27
src/api/article.js

@@ -1,8 +1,8 @@
 import request from '@/utils/request'
 
-export function fetchList(query) {
+export function fetchArticleList(query) {
   return request({
-    url: '/vue-element-admin/article/list',
+    url: '/v1/article/list',
     method: 'get',
     params: query
   })
@@ -10,32 +10,8 @@ export function fetchList(query) {
 
 export function fetchArticle(id) {
   return request({
-    url: '/vue-element-admin/article/detail',
+    url: '/v1/article/detail',
     method: 'get',
     params: { id }
   })
 }
-
-export function fetchPv(pv) {
-  return request({
-    url: '/vue-element-admin/article/pv',
-    method: 'get',
-    params: { pv }
-  })
-}
-
-export function createArticle(data) {
-  return request({
-    url: '/vue-element-admin/article/create',
-    method: 'post',
-    data
-  })
-}
-
-export function updateArticle(data) {
-  return request({
-    url: '/vue-element-admin/article/update',
-    method: 'post',
-    data
-  })
-}

+ 18 - 10
src/api/config.js

@@ -1,8 +1,7 @@
 import request from '@/utils/request'
 
-
 // 收货地址列表
-export function fetchList(query) {
+export function fetchAddressList(query) {
   return request({
     url: '/v1/config/receive-address-list',
     method: 'get',
@@ -10,19 +9,28 @@ export function fetchList(query) {
   })
 }
 
-// 商品详情
-export function fetchProduct(id) {
+// 新建收货地址
+export function createAddress(data) {
   return request({
-    url: '/v1/shop/detail',
-    method: 'get',
-    params: { id }
+    url: '/v1/config/receive-address-add',
+    method: 'post',
+    data
+  })
+}
+
+// 修改收货地址
+export function updateAddress(data) {
+  return request({
+    url: '/v1/config/receive-address-edit',
+    method: 'post',
+    data
   })
 }
 
-// 修改支付密码
-export function updatePaymentPassword(data) {
+// 修改收货地址
+export function deleteAddress(data) {
   return request({
-    url: '/v1/user/pay-password',
+    url: '/v1/config/receive-address-delete',
     method: 'post',
     data
   })

+ 12 - 2
src/lang/en.js

@@ -226,6 +226,10 @@ export default {
     modify: 'Modify',
     submit: 'Submit',
     delete: 'Delete',
+    edit: 'Edit',
+    action: 'Action',
+    yes: 'YES',
+    no: 'NO',
   },
 
   shop: {
@@ -267,11 +271,13 @@ export default {
 
   config: {
     consignee: 'Consignee',
-    address: 'Address',
+    detailedAddress: 'Detailed Address',
     city: 'City',
     localGovernmentArea: 'Local Government Area',
     state: 'State',
-    default: 'Default',
+    default: 'Default Address',
+    createAddress: 'Add Shipping Address',
+    editAddress: 'Edit Shipping Address',
   },
 
   profile: {
@@ -293,5 +299,9 @@ export default {
     loginPasswordSuccessTips: 'User login password has been updated successfully.',
     paymentPasswordSuccessTips: 'User payment password has been updated successfully.',
   },
+  article: {
+    title: 'Title',
+    createTime: 'Create Time',
+  },
 
 }

+ 13 - 2
src/lang/zh.js

@@ -227,6 +227,10 @@ export default {
     modify: '修改',
     submit: '提交',
     delete: '删除',
+    edit: '编辑',
+    action: '操作',
+    yes: '是',
+    no: '否',
   },
 
   shop: {
@@ -268,11 +272,13 @@ export default {
 
   config: {
     consignee: '收货人',
-    address: '详细地址',
+    detailedAddress: '详细地址',
     city: '城市',
     localGovernmentArea: '地区',
     state: '状态',
-    default: '是否默认',
+    default: '默认地址',
+    createAddress: '添加地址',
+    editAddress: '修改地址',
   },
 
   profile: {
@@ -292,4 +298,9 @@ export default {
     joiningPeriod: '加入期数',
     whetherUpgrade: '是否已升级',
   },
+
+  article: {
+    title: '标题',
+    createTime: '发布时间',
+  },
 }

+ 6 - 6
src/layout/components/Navbar.vue

@@ -26,21 +26,21 @@
           <i class="el-icon-caret-bottom" />
         </div>
         <el-dropdown-menu slot="dropdown">
+					<router-link to="/">
+						<el-dropdown-item>
+							{{ $t('navbar.dashboard') }}
+						</el-dropdown-item>
+					</router-link>
           <router-link to="/profile/index">
             <el-dropdown-item>
               {{ $t('navbar.profile') }}
             </el-dropdown-item>
           </router-link>
-					<router-link to="/config/shipping-address">
+					<router-link to="/config/receive-address-list">
 						<el-dropdown-item>
 							{{ $t('navbar.shippingAddress') }}
 						</el-dropdown-item>
 					</router-link>
-					<router-link to="/">
-						<el-dropdown-item>
-							{{ $t('navbar.dashboard') }}
-						</el-dropdown-item>
-					</router-link>
           <el-dropdown-item divided @click.native="logout">
             <span style="display:block;">{{ $t('navbar.logOut') }}</span>
           </el-dropdown-item>

+ 9 - 7
src/router/index.js

@@ -7,14 +7,15 @@ Vue.use(Router)
 import Layout from '@/layout'
 
 /* Router Modules */
-import componentsRouter from './modules/components'
-import chartsRouter from './modules/charts'
-import tableRouter from './modules/table'
-import nestedRouter from './modules/nested'
-import shopRouter from '@/router/modules/shop'
-import profileRouter from "@/router/modules/profile"
-import configRouter from "@/router/modules/config"
+import componentsRouter from './modules/components';
+import chartsRouter from './modules/charts';
+import tableRouter from './modules/table';
+import nestedRouter from './modules/nested';
+import shopRouter from '@/router/modules/shop';
+import profileRouter from "@/router/modules/profile";
+import configRouter from "@/router/modules/config";
 import atlasRouter from "@/router/modules/atlas";
+import articleRouter from "@/router/modules/article";
 
 /**
  * Note: sub-menu only appear when route children.length >= 1
@@ -201,6 +202,7 @@ export const asyncRoutes = [
   profileRouter,
   configRouter,
   atlasRouter,
+  articleRouter,
 
   {
     path: '/error',

+ 17 - 0
src/router/modules/article.js

@@ -0,0 +1,17 @@
+import Layout from '@/layout'
+
+const articleRouter = {
+  path: '/article',
+  component: Layout,
+  redirect: '/article/article-list',
+  hidden: true,
+  children: [
+    {
+      path: 'article-list',  // 文章列表
+      component: () => import('@/views/article/article-list'),
+      name: 'ArticleList',
+      meta: { title: 'articleList', icon: 'message' }
+    },
+  ]
+}
+export default articleRouter

+ 5 - 5
src/router/modules/config.js

@@ -3,7 +3,7 @@ import Layout from '@/layout'
 const configRouter = {
   path: '/config',
   component: Layout,
-  redirect: '/config/shipping-address-list',
+  redirect: '/config/receive-address-list',
   name: 'Setting',
   meta: {
     title: 'config',
@@ -11,10 +11,10 @@ const configRouter = {
   },
   children: [
     {
-      path: 'shipping-address-list',  // 收货地址列表
-      component: () => import('@/views/config/shipping-address-list'),
-      name: 'ShippingAddressList',
-      meta: { title: 'shippingAddressList', icon: 'user' }
+      path: 'receive-address-list',  // 收货地址列表
+      component: () => import('@/views/config/receive-address-list'),
+      name: 'ReceiveAddressList',
+      meta: { title: 'receiveAddressList', icon: 'el-icon-location' }
     },
   ]
 }

+ 2 - 0
src/utils/tool.js

@@ -230,6 +230,8 @@ const tool = {
    * @returns {string}
    */
   getArImage(imageUrl, path) {
+    console.log(process.env)
+    console.log(process.env.VUE_APP_BASE_CDN)
     return process.env.VUE_APP_BASE_CDN + `/${path}${imageUrl}`
   },
 

+ 68 - 0
src/views/article/article-list.vue

@@ -0,0 +1,68 @@
+<template>
+  <div class="app-container">
+    <el-table
+      :key="tableKey"
+      v-loading="listLoading"
+      :data="list"
+      border
+      fit
+      highlight-current-row
+      style="width: 100%;"
+    >
+      <el-table-column align="center" :label="$t('article.title')" prop="TITLE">
+        <template slot-scope="{row}">
+          <span>{{ row.TITLE }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column align="center" :label="$t('article.createTime')" prop="CREATED_AT">
+        <template slot-scope="{row}">
+          <span>{{ row.CREATED_AT | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
+  </div>
+</template>
+
+<script>
+import { fetchArticleList,fetchArticle } from '@/api/article'
+import waves from '@/directive/waves'
+import { parseTime } from '@/utils'
+import Pagination from '@/components/Pagination'
+
+export default {
+  name: 'articleList',
+  components: { Pagination },
+  directives: { waves },
+  data() {
+    return {
+      tableKey: 0,
+      list: null,
+      total: 0,
+      listLoading: true,
+			listQuery: {
+				page: 1,
+				pageSize: 20
+			},
+    }
+  },
+  created() {
+    // 列表查询
+    this.getList()
+  },
+  methods: {
+    getList() {
+      this.listLoading = true
+			fetchArticleList(this.listQuery).then(response => {
+        this.list = response.data.list
+        this.total = parseInt(response.data.totalCount)
+
+        setTimeout(() => {
+          this.listLoading = false
+        }, 1.5 * 1000)
+      })
+    },
+  }
+}
+</script>

+ 323 - 0
src/views/config/receive-address-list.vue

@@ -0,0 +1,323 @@
+<template>
+  <div class="app-container" v-loading="listLoading">
+		<el-button size="small" type="primary" @click="dialog = true">{{ $t('config.createAddress') }}</el-button>
+    <el-table
+      :data="list"
+      border
+      fit
+      highlight-current-row
+      style="width: 100%; margin-top: 25px;"
+    >
+      <el-table-column width="120px" align="center" :label="$t('config.consignee')" prop="CONSIGNEE">
+        <template slot-scope="{row}">
+          <span>{{ row.CONSIGNEE }}</span>
+        </template>
+      </el-table-column>
+			<el-table-column width="130px" align="center" :label="$t('shop.phoneNumber')" prop="MOBILE">
+				<template slot-scope="{row}">
+					<span>{{ row.MOBILE }}</span>
+				</template>
+			</el-table-column>
+      <el-table-column align="center" :label="$t('config.detailedAddress')" prop="ADDRESS">
+        <template slot-scope="{row}">
+          <span>{{ row.ADDRESS }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column width="130px" align="center" :label="$t('config.city')" prop="CITY_NAME">
+        <template slot-scope="{row}">
+          <span>{{ row.CITY_NAME }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column width="180px" align="center" :label="$t('config.localGovernmentArea')" prop="LGA_NAME">
+        <template slot-scope="{row}">
+          <span>{{ row.LGA_NAME }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column width="120px" align="center" :label="$t('config.state')" prop="PROVINCE_NAME">
+        <template slot-scope="{row}">
+          <span>{{ row.PROVINCE_NAME }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column width="130px" align="center" :label="$t('config.default')" prop="IS_DEFAULT">
+        <template slot-scope="{row}">
+					<el-switch size="small" v-model="row.IS_DEFAULT" @change="changeDefault($event, row)"></el-switch>
+        </template>
+      </el-table-column>
+      <el-table-column width="150px" align="center" :label="$t('common.action')" class-name="small-padding fixed-width">
+        <template slot-scope="{row}">
+					<el-button-group>
+						<el-button type="primary" size="mini" @click="handleEdit(row)">{{ $t('common.edit') }}</el-button>
+						<el-button type="danger" size="mini" @click="handleDelete(row.ID)">{{ $t('common.delete') }}</el-button>
+					</el-button-group>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
+
+		<el-dialog :title="$t('config.createAddress')" :visible.sync="dialog" v-loading="dialogLoading" style="margin-top: -50px;">
+			<el-form ref="dataForm" :model="dataForm" label-position="right" label-width="180px" style="width: 500px; margin-left:50px;">
+				<el-form-item :label="$t('config.consignee')" prop="consignee" required>
+					<el-input size="small" v-model="dataForm.consignee" type="text" />
+				</el-form-item>
+				<el-form-item :label="$t('shop.phoneNumber')" prop="mobile" required>
+					<el-input size="small" v-model="dataForm.mobile" />
+				</el-form-item>
+				<el-form-item :label="$t('config.state')" prop="province" required style="width: 100%;">
+					<el-select v-model="dataForm.province" class="filter-item" >
+						<el-option v-for="item in regionData" :key="item.id" :label="item.address" :value="item.id" />
+					</el-select>
+				</el-form-item>
+				<el-form-item :label="$t('config.detailedAddress')" prop="address" required>
+					<el-input size="small" v-model="dataForm.address" />
+				</el-form-item>
+				<el-form-item :label="$t('config.city')" prop="cityName" required>
+					<el-input size="small" v-model="dataForm.cityName" />
+				</el-form-item>
+				<el-form-item :label="$t('config.localGovernmentArea')" prop="lgaName" required>
+					<el-input size="small" v-model="dataForm.lgaName" />
+				</el-form-item>
+				<el-form-item :label="$t('config.default')" prop="isDefault">
+					<el-switch size="small" v-model="dataForm.isDefault"></el-switch>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer" style="margin-right: 110px; margin-top: -30px;">
+				<el-button type="warning" size="small" @click="dialog = false">{{ $t('table.cancel') }}</el-button>
+				<el-button type="primary" size="small" @click="createAddress">{{ $t('table.confirm') }}</el-button>
+			</div>
+		</el-dialog>
+
+		<el-dialog :title="$t('config.editAddress')" :visible.sync="dialogEdit" v-loading="editLoading" style="margin-top: -50px;">
+			<el-form ref="editForm" :model="editForm" label-position="right" label-width="180px" style="width: 500px; margin-left:50px;">
+				<el-input size="small" v-model="editForm.id" type="text" v-show="false" />
+				<el-form-item :label="$t('config.consignee')" prop="consignee" required>
+					<el-input size="small" v-model="editForm.consignee" type="text" />
+				</el-form-item>
+				<el-form-item :label="$t('shop.phoneNumber')" prop="mobile" required>
+					<el-input size="small" v-model="editForm.mobile" />
+				</el-form-item>
+				<el-form-item :label="$t('config.state')" prop="province" required style="width: 100%;">
+					<el-select v-model="editForm.province" class="filter-item" >
+						<el-option v-for="item in regionData" :key="item.id" :label="item.address" :value="item.id" />
+					</el-select>
+				</el-form-item>
+				<el-form-item :label="$t('config.detailedAddress')" prop="address" required>
+					<el-input size="small" v-model="editForm.address" />
+				</el-form-item>
+				<el-form-item :label="$t('config.city')" prop="cityName" required>
+					<el-input size="small" v-model="editForm.cityName" />
+				</el-form-item>
+				<el-form-item :label="$t('config.localGovernmentArea')" prop="lgaName" required>
+					<el-input size="small" v-model="editForm.lgaName" />
+				</el-form-item>
+				<el-form-item :label="$t('config.default')" prop="isDefault">
+					<el-switch size="small" v-model="editForm.isDefault"></el-switch>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer" style="margin-right: 110px; margin-top: -30px;">
+				<el-button type="warning" size="small" @click="dialogEdit = false">{{ $t('table.cancel') }}</el-button>
+				<el-button type="primary" size="small" @click="updateAddress">{{ $t('table.confirm') }}</el-button>
+			</div>
+		</el-dialog>
+  </div>
+</template>
+
+<script>
+import {createAddress, fetchAddressList, updateAddress, deleteAddress} from '@/api/config'
+import waves from '@/directive/waves'
+import Pagination from '@/components/Pagination'
+
+export default {
+  name: 'receiveAddressList',
+  components: { Pagination },
+  directives: { waves },
+  filters: {
+    statusFilter(status) {
+      const statusMap = {
+        1: 'info',
+        0: 'success'
+      }
+      return statusMap[status]
+    },
+  },
+  data() {
+    return {
+      list: [],
+      total: 0,
+      listLoading: true,
+      listQuery: {
+        page: 1,
+        pageSize: 20
+      },
+
+			dialog: false,
+			dialogLoading: false,
+			dataForm: {
+				consignee: '',
+				mobile: '',
+				province: '',
+				lgaName: '',
+				cityName: '',
+				address: '',
+				isDefault: '',
+			},
+
+			dialogEdit: false,
+			editLoading: false,
+			editForm: {
+				id: '',
+				consignee: '',
+				mobile: '',
+				province: '',
+				lgaName: '',
+				cityName: '',
+				address: '',
+				isDefault: '',
+			},
+			// TODO: 地区需处理
+			regionData: [
+				{
+					id: '10600',
+					address: 'test1',
+				},
+				{
+					id: '10601',
+					address: 'test2',
+				},
+			],
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    getList() {
+      this.listLoading = true
+			fetchAddressList(this.listQuery).then(response => {
+        this.list = response.data.list
+        this.total = parseInt(response.data.totalCount)
+				this.list.forEach(item => { item.IS_DEFAULT = parseInt(item.IS_DEFAULT) === 1 })
+
+        setTimeout(() => {
+          this.listLoading = false
+        }, 1.5 * 1000)
+      })
+    },
+		createAddress() {
+			this.dialogLoading = true
+			createAddress(this.dataForm).then(() => {
+				this.$message({
+					message: 'User receive address has been added successfully.',
+					type: 'success',
+					duration: 5 * 1000
+				})
+				setTimeout(() => {
+					this.dialogLoading = false
+					this.dialog = false
+					this.getList()
+				}, 1.5 * 1000)
+			}).catch((err) => {
+				this.$message({
+					message: err,
+					type: 'error',
+					duration: 5 * 1000
+				})
+				this.dialogLoading = false
+			})
+		},
+		changeDefault(event, row) {
+			let data = {
+				id: row.ID,
+				consignee: row.CONSIGNEE,
+				mobile: row.MOBILE,
+				province: row.PROVINCE,
+				lgaName: row.LGA_NAME,
+				cityName: row.CITY_NAME,
+				address: row.ADDRESS,
+				isDefault: event,
+			}
+			this.listLoading = true
+			updateAddress(data).then(() => {
+				this.$message({
+					message: 'User receive address has been updated successfully.',
+					type: 'success',
+					duration: 5 * 1000
+				})
+				setTimeout(() => {
+					this.listLoading = false
+					this.getList()
+				}, 1.5 * 1000)
+			}).catch((err) => {
+				this.$message({
+					message: err,
+					type: 'error',
+					duration: 5 * 1000
+				})
+				this.listLoading = false
+			})
+		},
+		handleDelete(id) {
+			this.$confirm(`Are you sure you want to delete the selected data?`, 'Hint', {
+				confirmButtonText: 'Confirm',
+				cancelButtonText: 'Cancel',
+				type: 'warning'
+			}).then(() => {
+				const data = { selected: [id]}
+				this.listLoading = true
+				deleteAddress(data).then(() => {
+					this.$message({
+						message: 'User receive address has been deleted successfully.',
+						type: 'success',
+						duration: 5 * 1000
+					})
+					setTimeout(() => {
+						this.listLoading = false
+						this.getList()
+					}, 1.5 * 1000)
+				}).catch((err) => {
+					this.$message({
+						message: err,
+						type: 'error',
+						duration: 5 * 1000
+					})
+					this.listLoading = false
+				})
+			})
+		},
+		handleEdit(row) {
+			this.editForm.id = row.ID
+			this.editForm.consignee = row.CONSIGNEE
+			this.editForm.mobile = row.MOBILE
+			this.editForm.province = row.PROVINCE
+			this.editForm.lgaName = row.LGA_NAME
+			this.editForm.cityName = row.CITY_NAME
+			this.editForm.address = row.ADDRESS
+			this.editForm.isDefault = parseInt(row.IS_DEFAULT) === 1
+
+			this.dialogEdit = true
+		},
+		updateAddress() {
+			this.editLoading = true
+			updateAddress(this.editForm).then(() => {
+				this.$message({
+					message: 'User receive address has been updated successfully.',
+					type: 'success',
+					duration: 5 * 1000
+				})
+				setTimeout(() => {
+					this.dialogEdit = false
+					this.editLoading = false
+					this.getList()
+				}, 1.5 * 1000)
+			}).catch((err) => {
+				this.$message({
+					message: err,
+					type: 'error',
+					duration: 5 * 1000
+				})
+				this.editLoading = false
+			})
+		},
+  }
+}
+</script>

+ 0 - 110
src/views/config/shipping-address-list.vue

@@ -1,110 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-table
-      v-loading="listLoading"
-      :data="list"
-      border
-      fit
-      highlight-current-row
-      style="width: 100%;"
-    >
-      <el-table-column width="120px" align="center" :label="$t('shipping.consignee')" prop="CONSIGNEE">
-        <template slot-scope="{row}">
-          <span>{{ row.CONSIGNEE }}</span>
-        </template>
-      </el-table-column>
-			<el-table-column width="120px" align="center" :label="$t('shop.phoneNumber')" prop="MOBILE">
-				<template slot-scope="{row}">
-					<span>{{ row.MOBILE }}</span>
-				</template>
-			</el-table-column>
-      <el-table-column width="250px" align="center" :label="$t('shop.address')" prop="ADDRESS">
-        <template slot-scope="{row}">
-          <span>{{ row.ADDRESS }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="130px" align="center" :label="$t('shop.city')" prop="CITY_NAME">
-        <template slot-scope="{row}">
-          <span>{{ row.CITY_NAME }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="120px" align="center" :label="$t('shop.localGovernmentArea')" prop="LGA_NAME">
-        <template slot-scope="{row}">
-          <span>{{ row.LGA_NAME }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="120px" align="center" :label="$t('shop.state')" prop="PROVINCE_NAME">
-        <template slot-scope="{row}">
-          <span>{{ row.PROVINCE_NAME }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column width="100px" align="center" :label="$t('shop.default')" prop="IS_DEFAULT">
-        <template slot-scope="{row}">
-          <el-tag :type="row.IS_DEFAULT | statusFilter">
-            {{ row.IS_DEFAULT === '1' ? 'YES' : 'NO' }}
-          </el-tag>
-        </template>
-      </el-table-column>
-      <el-table-column width="100px" align="center" :label="$t('shop.action')" class-name="small-padding fixed-width">
-        <template slot-scope="{row}">
-          <el-button type="primary" size="mini" @click="">{{ $t('shop.edit') }}</el-button>
-					<el-button type="danger" size="mini" @click="">{{ $t('shop.delete') }}</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
-  </div>
-</template>
-
-<script>
-import { fetchList } from '@/api/config'
-import waves from '@/directive/waves'
-import { parseTime } from '@/utils'
-import tool from '@/utils/tool'
-import Pagination from '@/components/Pagination'
-
-export default {
-  name: 'shippingAddressList',
-  components: { Pagination },
-  directives: { waves },
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        1: 'info',
-        0: 'success'
-      }
-      return statusMap[status]
-    },
-  },
-  data() {
-    return {
-      list: [],
-      total: 0,
-      listLoading: true,
-      listQuery: {
-        page: 1,
-        pageSize: 20
-      },
-    }
-  },
-  created() {
-    // 列表查询
-    this.getList()
-  },
-  methods: {
-		// 列表查询
-    getList() {
-      this.listLoading = true
-      fetchList(this.listQuery).then(response => {
-        this.list = response.data.list
-        this.total = parseInt(response.data.totalCount)
-
-        setTimeout(() => {
-          this.listLoading = false
-        }, 1.5 * 1000)
-      })
-    },
-  }
-}
-</script>