|
@@ -7,21 +7,26 @@
|
|
<el-button size="mini" type="primary" @click="handleChooseSupplier">选择供应商</el-button>
|
|
<el-button size="mini" type="primary" @click="handleChooseSupplier">选择供应商</el-button>
|
|
</div>
|
|
</div>
|
|
<!-- 选中的供应商列表 -->
|
|
<!-- 选中的供应商列表 -->
|
|
- <el-table v-loading="listLoading" :data="currentSupplierList" class="table-cell">
|
|
|
|
|
|
+ <el-table v-loading="listLoading" :data="currentSupplierList" class="table-cell" empty-text="请选择供应商">
|
|
<el-table-column label="序号" type="index" width="80" align="center" />
|
|
<el-table-column label="序号" type="index" width="80" align="center" />
|
|
- <el-table-column prop="shopName" label="供应商名称" align="center" />
|
|
|
|
|
|
+ <el-table-column property="name" label="供应商名称" width="150" />
|
|
<el-table-column label="供应商类型" align="center">
|
|
<el-table-column label="供应商类型" align="center">
|
|
<template slot-scope="{ row }">
|
|
<template slot-scope="{ row }">
|
|
<span v-if="row.shopType === 1">品牌方</span>
|
|
<span v-if="row.shopType === 1">品牌方</span>
|
|
<span v-else>代理商</span>
|
|
<span v-else>代理商</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="account" label="登录账号" align="center" />
|
|
|
|
|
|
+ <el-table-column label="登录账号" align="center">
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
+ <span v-if="row.loginAccount">{{ row.loginAccount }}</span>
|
|
|
|
+ <span v-else>—</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
<el-table-column prop="mobile" label="手机号" align="center" />
|
|
<el-table-column prop="mobile" label="手机号" align="center" />
|
|
- <el-table-column prop="limkMan" label="联系人" align="center" />
|
|
|
|
|
|
+ <el-table-column prop="linkMan" label="联系人" align="center" />
|
|
<el-table-column label="操作" align="center">
|
|
<el-table-column label="操作" align="center">
|
|
<template>
|
|
<template>
|
|
- <el-button type="primary" size="mini">删除</el-button>
|
|
|
|
|
|
+ <el-button type="primary" size="mini" @click="removeSupplier">删除</el-button>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -33,27 +38,36 @@
|
|
</el-select>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
<!-- 选中的套餐 -->
|
|
<!-- 选中的套餐 -->
|
|
- <el-table v-loading="listLoading" :data="currentPackageList" class="table-cell">
|
|
|
|
|
|
+ <el-table v-loading="listLoading" :data="currentPackageList" class="table-cell" empty-text="请选择会员套餐">
|
|
<el-table-column label="序号" type="index" width="80" align="center" />
|
|
<el-table-column label="序号" type="index" width="80" align="center" />
|
|
<el-table-column prop="name" label="套餐名称" align="center" />
|
|
<el-table-column prop="name" label="套餐名称" align="center" />
|
|
<el-table-column label="会员期限" align="center">
|
|
<el-table-column label="会员期限" align="center">
|
|
<template slot-scope="{ row }">
|
|
<template slot-scope="{ row }">
|
|
- <span>{{ row.timeLimit }}年</span>
|
|
|
|
|
|
+ <span v-if="row.unit === 1">{{ row.duration }}月</span>
|
|
|
|
+ <span v-if="row.unit === 2">{{ row.duration }}年</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="原价" align="center">
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
+ <span>{{ row.originalPrice | formatPrice }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="现价" align="center">
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
+ <span>{{ row.price | formatPrice }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="originPrice" label="原价" align="center" />
|
|
|
|
- <el-table-column prop="price" label="现价" align="center" />
|
|
|
|
</el-table>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- 确认 取消 -->
|
|
<!-- 确认 取消 -->
|
|
<div class="control-box">
|
|
<div class="control-box">
|
|
- <el-button type="warning">返回</el-button>
|
|
|
|
- <el-button type="primary">保存</el-button>
|
|
|
|
|
|
+ <el-button type="warning" @click="$_back">返回</el-button>
|
|
|
|
+ <el-button type="primary" @click="onSubmit">开通</el-button>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- 选择供应商dialog -->
|
|
<!-- 选择供应商dialog -->
|
|
- <el-dialog title="选择供应商" :visible.sync="dialogTableVisible" width="68%">
|
|
|
|
|
|
+ <el-dialog title="选择供应商" :visible.sync="dialogTableVisible" width="68%" @closed="handleDialogClosed">
|
|
<div>
|
|
<div>
|
|
<div class="filter-container">
|
|
<div class="filter-container">
|
|
<div class="filter-control">
|
|
<div class="filter-control">
|
|
@@ -63,7 +77,8 @@
|
|
v-model="listQuery.shopName"
|
|
v-model="listQuery.shopName"
|
|
size="mini"
|
|
size="mini"
|
|
placeholder="供应商名称"
|
|
placeholder="供应商名称"
|
|
- @keyup.enter.native="getSuplierList"
|
|
|
|
|
|
+ clearable
|
|
|
|
+ @keyup.enter.native="fetchSupplierList"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div class="filter-control">
|
|
<div class="filter-control">
|
|
@@ -73,7 +88,7 @@
|
|
placeholder="供应商类型"
|
|
placeholder="供应商类型"
|
|
size="mini"
|
|
size="mini"
|
|
clearable
|
|
clearable
|
|
- @change="getSuplierList"
|
|
|
|
|
|
+ @change="fetchSupplierList"
|
|
>
|
|
>
|
|
<el-option label="所有类型" value="" />
|
|
<el-option label="所有类型" value="" />
|
|
<el-option label="代理商" :value="2" />
|
|
<el-option label="代理商" :value="2" />
|
|
@@ -84,22 +99,24 @@
|
|
<span>手机号:</span>
|
|
<span>手机号:</span>
|
|
<el-input
|
|
<el-input
|
|
v-model="listQuery.mobile"
|
|
v-model="listQuery.mobile"
|
|
|
|
+ clearable
|
|
size="mini"
|
|
size="mini"
|
|
placeholder="手机号"
|
|
placeholder="手机号"
|
|
- @keyup.enter.native="getSuplierList"
|
|
|
|
|
|
+ @keyup.enter.native="fetchSupplierList"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div class="filter-control">
|
|
<div class="filter-control">
|
|
<span>联系人:</span>
|
|
<span>联系人:</span>
|
|
<el-input
|
|
<el-input
|
|
v-model="listQuery.limkMan"
|
|
v-model="listQuery.limkMan"
|
|
|
|
+ clearable
|
|
size="mini"
|
|
size="mini"
|
|
placeholder="联系人"
|
|
placeholder="联系人"
|
|
- @keyup.enter.native="getSuplierList"
|
|
|
|
|
|
+ @keyup.enter.native="fetchSupplierList"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div class="filter-control">
|
|
<div class="filter-control">
|
|
- <el-button type="primary" icon="el-icon-search" size="mini" @click="getSuplierList">查询</el-button>
|
|
|
|
|
|
+ <el-button type="primary" size="mini" @click="filterSupplierList">查询</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -111,38 +128,57 @@
|
|
:infinite-scroll-delay="300"
|
|
:infinite-scroll-delay="300"
|
|
:infinite-scroll-immediate="false"
|
|
:infinite-scroll-immediate="false"
|
|
header-row-class-name="tableHeader"
|
|
header-row-class-name="tableHeader"
|
|
|
|
+ highlight-current-row
|
|
|
|
+ @row-click="handleSelectSupplier"
|
|
>
|
|
>
|
|
- <el-table-column label="序号" type="selection" width="55" align="center" />
|
|
|
|
|
|
+ >
|
|
|
|
+ <el-table-column label="选择" width="55" align="center">
|
|
|
|
+ <template slot-scope="{row}">
|
|
|
|
+ <el-radio v-model="selectedAuthUserId" :label="row.authUserId"><span v-show="false">1</span></el-radio>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
<el-table-column label="序号" type="index" width="80" align="center" />
|
|
<el-table-column label="序号" type="index" width="80" align="center" />
|
|
- <el-table-column property="shopName" label="供应商名称" width="150" />
|
|
|
|
|
|
+ <el-table-column property="name" label="供应商名称" width="150" />
|
|
<el-table-column label="供应商类型" align="center">
|
|
<el-table-column label="供应商类型" align="center">
|
|
<template slot-scope="{ row }">
|
|
<template slot-scope="{ row }">
|
|
<span v-if="row.shopType === 1">品牌方</span>
|
|
<span v-if="row.shopType === 1">品牌方</span>
|
|
<span v-else>代理商</span>
|
|
<span v-else>代理商</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="account" label="登录账号" align="center" />
|
|
|
|
|
|
+ <el-table-column label="登录账号" align="center">
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
+ <span v-if="row.loginAccount">{{ row.loginAccount }}</span>
|
|
|
|
+ <span v-else>—</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
<el-table-column prop="mobile" label="手机号" align="center" />
|
|
<el-table-column prop="mobile" label="手机号" align="center" />
|
|
- <el-table-column prop="limkMan" label="联系人" align="center" />
|
|
|
|
|
|
+ <el-table-column prop="linkMan" label="联系人" align="center" />
|
|
</el-table>
|
|
</el-table>
|
|
<!-- <div class="loading">没有更多了</div> -->
|
|
<!-- <div class="loading">没有更多了</div> -->
|
|
</div>
|
|
</div>
|
|
<div slot="footer" class="dialog-footer">
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button @click="dialogTableVisible = false">取 消</el-button>
|
|
<el-button @click="dialogTableVisible = false">取 消</el-button>
|
|
- <el-button type="primary" @click="dialogTableVisible = false">确 定</el-button>
|
|
|
|
|
|
+ <el-button type="primary" @click="handleSubmitSupplier">确 定</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+import { fetchSupplierList } from '@/api/supplier'
|
|
|
|
+import { fetchConfigureList, handselVip } from '@/api/member'
|
|
export default {
|
|
export default {
|
|
|
|
+ filters: {
|
|
|
|
+ formatPrice(price) {
|
|
|
|
+ return `¥${price.toFixed(2)}`
|
|
|
|
+ }
|
|
|
|
+ },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
listLoading: false,
|
|
listLoading: false,
|
|
loading: false,
|
|
loading: false,
|
|
dialogTableVisible: false,
|
|
dialogTableVisible: false,
|
|
- selected: 1,
|
|
|
|
|
|
+ selected: '',
|
|
listQuery: {
|
|
listQuery: {
|
|
shopName: '',
|
|
shopName: '',
|
|
shopType: '',
|
|
shopType: '',
|
|
@@ -152,92 +188,96 @@ export default {
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
pageSize: 10
|
|
pageSize: 10
|
|
},
|
|
},
|
|
- supplierList: [
|
|
|
|
- {
|
|
|
|
- shopName: '火影大战葫芦娃',
|
|
|
|
- shopType: 1,
|
|
|
|
- account: 'admin',
|
|
|
|
- mobile: '15872950940',
|
|
|
|
- limkMan: '还差的远呢',
|
|
|
|
- state: 1
|
|
|
|
- }
|
|
|
|
- ],
|
|
|
|
|
|
+ supplierList: [],
|
|
|
|
+ hasNextPage: false,
|
|
|
|
+ total: 0,
|
|
|
|
+ // 选中的供应商id
|
|
|
|
+ selectedAuthUserId: '',
|
|
|
|
+ // 选中的供应商信息
|
|
|
|
+ selectedSupplierInfo: {},
|
|
// 选中的供应商
|
|
// 选中的供应商
|
|
- currentSupplierList: [
|
|
|
|
- {
|
|
|
|
- shopName: '火影大战葫芦娃',
|
|
|
|
- shopType: 1,
|
|
|
|
- account: 'admin',
|
|
|
|
- mobile: '15872950940',
|
|
|
|
- limkMan: '还差的远呢',
|
|
|
|
- state: 1
|
|
|
|
- }
|
|
|
|
- ],
|
|
|
|
- currentPackageList: [
|
|
|
|
- {
|
|
|
|
- id: 1,
|
|
|
|
- name: '套餐一',
|
|
|
|
- originPrice: 7980,
|
|
|
|
- price: 5980,
|
|
|
|
- timeLimit: 1
|
|
|
|
- }
|
|
|
|
- ],
|
|
|
|
|
|
+ currentSupplierList: [],
|
|
|
|
+ // 选中的套餐
|
|
|
|
+ currentPackageList: [],
|
|
// 套餐列表
|
|
// 套餐列表
|
|
- packageList: [
|
|
|
|
- {
|
|
|
|
- id: 1,
|
|
|
|
- name: '套餐一',
|
|
|
|
- originPrice: 7980,
|
|
|
|
- price: 5980,
|
|
|
|
- timeLimit: 1
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- id: 2,
|
|
|
|
- name: '套餐二',
|
|
|
|
- originPrice: 17980,
|
|
|
|
- price: 15980,
|
|
|
|
- timeLimit: 3
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- id: 3,
|
|
|
|
- name: '套餐三',
|
|
|
|
- originPrice: 27980,
|
|
|
|
- price: 25980,
|
|
|
|
- timeLimit: 8
|
|
|
|
- }
|
|
|
|
- ]
|
|
|
|
|
|
+ packageList: []
|
|
}
|
|
}
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
- this.supplierList = this.addLimit()
|
|
|
|
|
|
+ this.fetchConfigureList()
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- addLimit() {
|
|
|
|
- const list = []
|
|
|
|
- for (let i = 0; i < 20; i++) {
|
|
|
|
- list.push({
|
|
|
|
- shopName: '火影大战葫芦娃',
|
|
|
|
- shopType: 1,
|
|
|
|
- account: 'admin',
|
|
|
|
- mobile: '15872950940',
|
|
|
|
- limkMan: '还差的远呢',
|
|
|
|
- state: 1
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- return list
|
|
|
|
|
|
+ // 提交赠送
|
|
|
|
+ onSubmit() {
|
|
|
|
+ handselVip({ authUserId: this.selectedAuthUserId, packageId: this.selected }).then(res => {
|
|
|
|
+ console.log(res)
|
|
|
|
+ this.$message.success('赠送会员成功')
|
|
|
|
+ this.$store.dispatch('tagsView/delView', this.$route)
|
|
|
|
+ this.$router.back()
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 移除选中的供应商
|
|
|
|
+ removeSupplier() {
|
|
|
|
+ this.currentSupplierList = []
|
|
|
|
+ this.selectedSupplierInfo = {}
|
|
|
|
+ },
|
|
|
|
+ // 确认选中的供应商
|
|
|
|
+ handleSubmitSupplier() {
|
|
|
|
+ this.dialogTableVisible = false
|
|
|
|
+ this.currentSupplierList = [this.selectedSupplierInfo]
|
|
|
|
+ },
|
|
|
|
+ // 选择供应商
|
|
|
|
+ handleSelectSupplier(e) {
|
|
|
|
+ this.selectedAuthUserId = e.authUserId
|
|
|
|
+ this.selectedSupplierInfo = e
|
|
|
|
+ },
|
|
|
|
+ // 选择供应商对话框关闭事件
|
|
|
|
+ handleDialogClosed() {
|
|
|
|
+ this.listQuery.pageNum = 1
|
|
|
|
+ this.listQuery.shopName = ''
|
|
|
|
+ this.listQuery.shopType = ''
|
|
|
|
+ this.listQuery.mobile = ''
|
|
|
|
+ this.listQuery.limkMan = ''
|
|
|
|
+ },
|
|
|
|
+ // 筛选供应商
|
|
|
|
+ filterSupplierList() {
|
|
|
|
+ this.pageNum = 1
|
|
|
|
+ this.supplierList = []
|
|
|
|
+ this.fetchSupplierList()
|
|
|
|
+ },
|
|
|
|
+ // 获取供应商列表
|
|
|
|
+ fetchSupplierList() {
|
|
|
|
+ fetchSupplierList(this.listQuery).then(res => {
|
|
|
|
+ console.log(res)
|
|
|
|
+ this.supplierList = [...this.supplierList, ...res.data.list]
|
|
|
|
+ this.hasNextPage = res.data.hasNextPage
|
|
|
|
+ this.total = res.data.total
|
|
|
|
+ })
|
|
},
|
|
},
|
|
handlePackageChange(id) {
|
|
handlePackageChange(id) {
|
|
console.log(id)
|
|
console.log(id)
|
|
const current = this.packageList.find(item => item.id === id)
|
|
const current = this.packageList.find(item => item.id === id)
|
|
this.currentPackageList = [current]
|
|
this.currentPackageList = [current]
|
|
},
|
|
},
|
|
- getSuplierList() {},
|
|
|
|
handleChooseSupplier() {
|
|
handleChooseSupplier() {
|
|
|
|
+ this.filterSupplierList()
|
|
this.dialogTableVisible = true
|
|
this.dialogTableVisible = true
|
|
},
|
|
},
|
|
onLoad() {
|
|
onLoad() {
|
|
- console.log('触底了')
|
|
|
|
- this.supplierList.push(...this.addLimit())
|
|
|
|
|
|
+ if (!this.hasNextPage) return
|
|
|
|
+ this.listQuery.pageNum++
|
|
|
|
+ this.fetchSupplierList()
|
|
|
|
+ },
|
|
|
|
+ // 获取套餐列表
|
|
|
|
+ fetchConfigureList() {
|
|
|
|
+ fetchConfigureList().then(res => {
|
|
|
|
+ this.packageList = res.data.packageList.map((item, index) => {
|
|
|
|
+ item.name = `套餐${index + 1}`
|
|
|
|
+ // item.originalPrice = `${item.originalPrice.toFixed(2)}`
|
|
|
|
+ // item.price = item.price.toFixed(2)
|
|
|
|
+ return item
|
|
|
|
+ })
|
|
|
|
+ })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|