|  |  | 
 |  |  |       <el-button type="primary" @click="handleEdit()">新增</el-button> | 
 |  |  |     </div> | 
 |  |  |     <el-table v-loading="loading" :data="list" stripe border> | 
 |  |  |       <el-table-column prop="code" label="套餐名称" align="center" min-width="120" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="" label="套餐类型" align="center" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="" label="次数" align="center" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="" label="有效期" align="center" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="" label="价格" align="center" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="" label="总发行数量" align="center" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="" label="已售售量" align="center" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="" label="销售渠道" align="center" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="" label="销售时段" align="center" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="" label="状态" align="center" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column label="操作" fixed="right" align="center" min-width="80" show-overflow-tooltip> | 
 |  |  |       <el-table-column prop="name" label="套餐名称" align="center" min-width="120" show-overflow-tooltip> | 
 |  |  |         <template v-slot="{ row }"> | 
 |  |  |           <span @click="handleDetail(row)" class="primaryColor pointer">查看详情</span> | 
 |  |  |           <span @click="handleDetail(row)" class="primaryColor pointer">{{ row.name }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column prop="" label="套餐类型" align="center" min-width="100" show-overflow-tooltip> | 
 |  |  |         <template v-slot="{ row }"> | 
 |  |  |           <span v-if="row.type == 0">期限卡</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <!-- <el-table-column prop="" label="次数" align="center" min-width="100" show-overflow-tooltip /> --> | 
 |  |  |       <el-table-column prop="useDays" label="有效期" align="center" min-width="90" show-overflow-tooltip> | 
 |  |  |         <template v-slot="{ row }"> | 
 |  |  |           <span>{{ row.useDays }}天</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column prop="price" label="价格" align="center" min-width="80" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="saleLimit" label="总发行数量" align="center" min-width="100" show-overflow-tooltip> | 
 |  |  |         <template v-slot="{ row }"> | 
 |  |  |           <span>{{ row.saleLimit ? row.saleLimit : '不限额' }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column prop="saleNum" label="已售售量" align="center" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="" label="销售渠道" align="center" min-width="100" show-overflow-tooltip> | 
 |  |  |         <template v-slot="{ row }"> | 
 |  |  |           <span v-if="row.channel == 0">小程序</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column prop="" label="销售时段" align="center" min-width="120" show-overflow-tooltip> | 
 |  |  |         <template v-slot="{ row }"> | 
 |  |  |           <div>起:{{ row.startDate }}</div> | 
 |  |  |           <div>止:{{ row.endDate }}</div> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column prop="" fixed="right" label="状态" align="center" min-width="80" show-overflow-tooltip> | 
 |  |  |         <template v-slot="{ row }"> | 
 |  |  |           <el-switch @change="changeStatus(row)" v-model="row.status" :active-value="0" :inactive-value="1" /> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" fixed="right" align="center" min-width="120" show-overflow-tooltip> | 
 |  |  |         <template v-slot="{ row }"> | 
 |  |  |           <div> | 
 |  |  |             <span v-if="row.status == 0" @click="handleEdit(row, 'copy')" class="primaryColor pointer">复制</span> | 
 |  |  |             <span v-if="row.status == 1" @click="handleEdit(row)" class="primaryColor pointer mr10">编辑</span> | 
 |  |  |             <span v-if="row.status == 1" @click="handleDel(row)" class="red pointer">删除</span> | 
 |  |  |           </div> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |     </el-table> | 
 |  |  | 
 |  |  | import TableLayout from '@/layouts/TableLayout' | 
 |  |  | import Edit from './components/Edit' | 
 |  |  | import ComboDetail from './components/ComboDetail.vue' | 
 |  |  | import { comboListPost, comboUpdatePost, comboDelPost } from '@/api/business/combo.js' | 
 |  |  | import { Message } from 'element-ui' | 
 |  |  | export default { | 
 |  |  |   extends: BasePageTemp, | 
 |  |  |   components: { | 
 |  |  | 
 |  |  |             label: '套餐名称', | 
 |  |  |           }, | 
 |  |  |           { | 
 |  |  |             filed: 'type', | 
 |  |  |             filed: 'bikeOrElec', | 
 |  |  |             type: 'select', | 
 |  |  |             label: '适用项目', | 
 |  |  |             labelCode: 'name', | 
 |  |  |             valueCode: 'id', | 
 |  |  |             options: [] | 
 |  |  |             options: [ | 
 |  |  |               { name: '自行车', id: 1 }, | 
 |  |  |               { name: '电动车', id: 2 }, | 
 |  |  |             ] | 
 |  |  |           }, | 
 |  |  |           { | 
 |  |  |             filed: 'status', | 
 |  |  |             type: 'select', | 
 |  |  |             label: '状态', | 
 |  |  |             options: [] | 
 |  |  |             labelCode: 'name', | 
 |  |  |             valueCode: 'id', | 
 |  |  |             options: [ | 
 |  |  |               { name: '正常', id: 0 }, | 
 |  |  |               { name: '停用', id: 1 }, | 
 |  |  |             ] | 
 |  |  |           }, | 
 |  |  |         ], | 
 |  |  |         online: true | 
 |  |  |       }, | 
 |  |  |       list: [{}] | 
 |  |  |       list: [] | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   created() { | 
 |  |  |     // this.getList() | 
 |  |  |     this.getList() | 
 |  |  |     // this.initData() | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     handleEdit() { | 
 |  |  |     changeStatus(row) { | 
 |  |  |       comboUpdatePost({ ...row }).then(res => { | 
 |  |  |         if (res.code == 200) { | 
 |  |  |           return Message.success('更新成功') | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     handleDel(row) { | 
 |  |  |       this.$confirm('您确认要删除当前套餐吗?', '提示', { | 
 |  |  |         confirmButtonText: '确定', | 
 |  |  |         cancelButtonText: '取消', | 
 |  |  |         type: 'warning', | 
 |  |  |       }).then(() => { | 
 |  |  |         comboDelPost(row.id).then(res => { | 
 |  |  |           if (res) { | 
 |  |  |             Message.success('删除成功') | 
 |  |  |             this.getList() | 
 |  |  |           } | 
 |  |  |         }) | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     handleEdit(row, type = 'edit') { | 
 |  |  |       this.isShowEdit = true | 
 |  |  |       this.$nextTick(() => { | 
 |  |  |         this.$refs.EditRef.isShowModal = true | 
 |  |  |         if (row && row.id) { | 
 |  |  |           this.$refs.EditRef.getDetail(row.id, type) | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     handleDetail(row) { | 
 |  |  |       this.isShowDetail = true | 
 |  |  |       this.$nextTick(() => { | 
 |  |  |         this.$refs.DetailRef.isShowModal = true | 
 |  |  |         // this.$refs.DetailRef.getDetail(row.id) | 
 |  |  |         this.$refs.DetailRef.getDetail(row.id) | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     handleEx() { | 
 |  |  | 
 |  |  |       const { pagination, filters } = this | 
 |  |  |       this.loading = true | 
 |  |  |       if (page) { pagination.page = page } | 
 |  |  |       ywOutinboundPage({ | 
 |  |  |       comboListPost({ | 
 |  |  |         model: { | 
 |  |  |           ...filters, | 
 |  |  |           inOut: 0 | 
 |  |  |           ...filters | 
 |  |  |         }, | 
 |  |  |         // sorts: [{ direction: 'DESC', property: 'param1' }], | 
 |  |  |         capacity: pagination.pageSize, | 
 |  |  |         page: page, | 
 |  |  |       }).then(res => { | 
 |  |  |         this.loading = false | 
 |  |  |         this.list = res.records || [] | 
 |  |  |         this.list.forEach(item => { | 
 |  |  |           item.typeName = this.StoreTypeOps[item.type].name | 
 |  |  |         }) | 
 |  |  |         this.pagination.total = res.total || 0 | 
 |  |  |       }, () => { | 
 |  |  |         this.loading = false |