food/src/views/layout/components/main/route/index.vue

126 lines
3.4 KiB
Vue
Raw Normal View History

2023-09-20 21:33:11 +08:00
<template>
<div class="app-container">
<!-- 组合按钮 -->
<el-button-group>
<el-button type="primary" icon="el-icon-plus" @click="$router.replace('/route/add')">添加</el-button>
<el-button type="danger" icon="el-icon-delete" @click="deleteRoute(countSelIdArr($refs.myTable.selection))">删除
</el-button>
<el-button type="warning" icon="el-icon-edit" @click="toEditPage()">编辑</el-button>
</el-button-group>
<!-- 用户select选项 -->
<el-button-group class="m-l-20">
<SelectionShopId v-model="form.shop_id" :allSel="true" />
2023-09-20 21:33:11 +08:00
</el-button-group>
<!-- 航线表格 -->
<el-table class="m-t-20 w-100" ref="myTable"
:data="routeListArr.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border tooltip-effect="dark">
<el-table-column align="center" type="selection" width="40">
</el-table-column>
<el-table-column align="center" prop="id" label="id" width="50">
</el-table-column>
<el-table-column prop="name" label="任务标题" width="150" min-width="150">
</el-table-column>
<el-table-column prop="route_data" label="航线" min-width="150" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="controler" label="操作" width="150" min-width="150">
<template slot-scope="scope">
<el-button-group>
<el-button type="danger" icon="el-icon-delete" @click="deleteRoute([scope.row.id])">删除</el-button>
</el-button-group>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination class="m-t-20" layout="prev, pager, next" :current-page.sync="currentPage" :page-size="pageSize"
:total="routeListArr.length">
</el-pagination>
</div>
</template>
<script>
import { countSelIdArr } from '@/utils'
import SelectionShopId from '@/components/SelectionShopId'
2023-09-20 21:33:11 +08:00
export default {
name: 'Route',
data () {
return {
pageSize: 8, // 每页显示记录条数
currentPage: 1, // 当前页
form: {
shop_id: ''
}
}
},
components: {
SelectionShopId
2023-09-20 21:33:11 +08:00
},
computed: {
/**
* @description: 获取航线列表
*/
routeList () {
return this.$store.state.routeList
},
/**
* @description: 过滤掉 不对应客户的 航线列表
* @return: 航线列表
*/
routeListArr () {
if (this.form.shop_id !== '') {
return this.routeList.filter((item) => item.shop_id === this.form.shop_id)
} else {
return this.routeList
}
}
},
methods: {
countSelIdArr,
/**
* @description: 跳转到编辑页面
*/
toEditPage () {
const selId = this.countSelIdArr(this.$refs.myTable.selection)
switch (selId.length) {
case 0:
this.$message.error('请选择一条需要编辑的记录')
break
case 1:
this.$router.push('/route/edit/' + selId['0'])
break
default:
this.$message.error('只能选择一条记录')
}
},
/**
* @description: 删除航线
*/
deleteRoute (idArr) {
this.$store.dispatch('fetchDelRoute', idArr)
}
},
watch: {
},
created () {
},
filters: {
countSelIdArr
}
}
</script>
<style lang="scss" scoped>
@import "@/styles/theme.scss";
.el-tag {
i {
vertical-align: middle
}
}
.image-placeholder {
position: relative;
display: inline-block;
}
</style>