| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="table_btns"> |
| | | <el-button type="primary" @click="handleEdit()">æ°å¢</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe border> |
| | | <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">{{ 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> |
| | | <div class="table_btns"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <!-- --> |
| | | <Edit v-if="isShowEdit" @close="isShowEdit = false" @success="getList" ref="EditRef" /> |
| | | <ComboDetail v-if="isShowDetail" ref="DetailRef" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import BasePageTemp from '@/components/base/BasePageTemp' |
| | | 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: { |
| | | TableLayout, |
| | | Edit, |
| | | ComboDetail |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | isShowEdit: false, |
| | | isShowDetail: false, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'name', |
| | | type: 'input', |
| | | label: 'å¥é¤åç§°', |
| | | }, |
| | | { |
| | | filed: 'bikeOrElec', |
| | | type: 'select', |
| | | label: 'éç¨é¡¹ç®', |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | options: [ |
| | | { name: 'èªè¡è½¦', id: 1 }, |
| | | { name: 'çµå¨è½¦', id: 2 }, |
| | | ] |
| | | }, |
| | | { |
| | | filed: 'status', |
| | | type: 'select', |
| | | label: 'ç¶æ', |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | options: [ |
| | | { name: 'æ£å¸¸', id: 0 }, |
| | | { name: 'åç¨', id: 1 }, |
| | | ] |
| | | }, |
| | | ], |
| | | online: true |
| | | }, |
| | | list: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList() |
| | | // this.initData() |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | alert('submit!') |
| | | } |
| | | }) |
| | | }, |
| | | 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) |
| | | }) |
| | | }, |
| | | handleEx() { |
| | | this.$dialog.exportConfirm('确认导åºåï¼') |
| | | .then(() => { |
| | | this.loading = true |
| | | ywOutinboundEx({ |
| | | page: this.pagination.page, |
| | | capacity: 1000000, |
| | | model: this.filters |
| | | }) |
| | | .then(response => { |
| | | this.download(response) |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }) |
| | | .catch(() => { }) |
| | | }, |
| | | initData() { |
| | | getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => { |
| | | this.queryFormConfig.formItems[1].options = res.records || [] |
| | | }) |
| | | }, |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | if (page) { pagination.page = page } |
| | | comboListPost({ |
| | | model: { |
| | | ...filters |
| | | }, |
| | | capacity: pagination.pageSize, |
| | | page: page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | clear() { |
| | | this.filters = { inOut: 0 } |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | this.getList() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style></style> |