123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- <template>
- <div>
- <el-row class="app-toptool" type="flex">
- <el-col :span="16">
- <Search
- size="small"
- :search-visible="searchVisible"
- :search-data.sync="searchData"
- :search-form="searchForm"
- @refesh_list="getList"
- />
- </el-col>
- <el-col :span="8">
- <div class="btn-group" style="margin-bottom:11px;float: right;">
- <div>
- <el-button
- v-if="checkPermission('/agentcode/delete')"
- type="primary"
- :disabled="multiple"
- size="small"
- icon="el-icon-delete"
- @click="del(ids)"
- >删除
- </el-button>
- </div>
- </div>
- </el-col>
- </el-row>
- <el-table
- ref="multipleTable"
- v-loading="loading"
- :row-class-name="rowClass"
- :tree-props="{children: 'children'}"
- :default-expand-all="expand"
- row-key="id"
- :header-cell-style="{ background: '#eef1f6', color: '#606266' }"
- :border="false"
- :stripe="true"
- class="eltable"
- :data="list"
- style="width: 100%"
- @selection-change="selection"
- >
- <el-table-column align="center" type="selection" width="42" />
- <el-table-column
- align="center"
- type=""
- property="id"
- label="编号"
- show-overflow-tooltip
- width="70"
- />
- <el-table-column
- align="left"
- property="uid"
- label="会员"
- show-overflow-tooltip
- width=""
- />
- <el-table-column
- align="left"
- property="agent_code"
- label="邀请码"
- show-overflow-tooltip
- width=""
- />
- <el-table-column
- align="left"
- property="create_time"
- label="生成时间"
- show-overflow-tooltip
- width=""
- />
- <el-table-column
- align="center"
- property="status"
- label="状态"
- show-overflow-tooltip
- width=""
- >
- <template slot-scope="scope">
- <el-switch
- v-model="scope.row.status"
- :active-value="1"
- :inactive-value="0"
- @change="listUpdate(scope.row,'status')"
- />
- </template>
- </el-table-column>
- <el-table-column
- label="操作"
- align="center"
- width="100"
- >
- <template slot-scope="scope">
- <div v-if="scope.row.id">
- <el-button
- v-if="checkPermission('/agentcode/update')"
- size="mini"
- type="primary"
- @click="update(scope.row)"
- ><i
- class="el-icon-edit"
- />修改</el-button>
- </div>
- </template>
- </el-table-column>
- </el-table>
- <div style="height: 60px;" />
- <!--添加/修改-->
- <Update :info="updateInfo" :opentype="opentype" :show.sync="dialog.updateDialogStatus" size="small" @refesh_list="getList" />
- </div>
- </template>
- <script>
- import Search from '@/components/common/Search'
- import Update from '@/views/agentcode/update.vue'
- import waves from '@/directive/waves' // waves directive
- import {
- confirm,
- param2Obj
- } from '@/utils/common'
- export default {
- name: 'agentcode',
- directives: { waves },
- components: {
- Search,
- Update
- },
- data() {
- return {
- dialog: {
- updateDialogStatus: false
- },
- ids: [],
- single: true,
- multiple: true,
- list: [],
- opentype: 'add',
- updateInfo: {},
- loading: false,
- searchVisible: true,
- searchForm: [],
- searchData: {},
- expand: true
- }
- },
- mounted() {
- this.getList()
- },
- methods: {
- getList() {
- const param = {}
- Object.assign(param, this.searchData)
- Object.assign(param, param2Obj(this.$route.fullPath))
- this.loading = true
- this.$api.post('/agentcode/index', param).then(res => {
- this.list = res.data
- this.loading = false
- this.searchForm = [{
- type: 'Input',
- label: '关键词',
- prop: 'keyword',
- width: '230px'
- }
- ]
- })
- },
- listUpdate(row, field) {
- if (row.id) {
- this.$api.post('/agentcode/listUpdate', {
- id: row.id,
- [field]: row[field]
- }).then(res => {
- this.$message({
- message: '操作成功',
- type: 'success'
- })
- })
- }
- },
- add() {
- this.opentype = 'add'
- this.dialog.updateDialogStatus = true
- },
- update(row) {
- this.opentype = 'update'
- const id = row.id ? row.id : this.ids.join(',')
- this.$api.post('/agentcode/getInfo', {
- id: id
- }).then(res => {
- this.dialog.updateDialogStatus = true
- this.updateInfo = res.data
- })
- },
- del(row) {
- confirm({
- content: '确定要操作吗'
- }).then(() => {
- const ids = row.id ? row.id : this.ids.join(',')
- this.$api.post('/agentcode/delete', {
- id: ids
- }).then(res => {
- this.$message({
- message: res.msg,
- type: 'success'
- })
- this.getList()
- })
- }).catch(() => {})
- },
- selection(selection) {
- this.ids = selection.map(item => item.id)
- this.single = selection.length != 1
- this.multiple = !selection.length
- },
- rowClass({
- row,
- rowIndex
- }) {
- for (let i = 0; i < this.ids.length; i++) {
- if (row.id === this.ids[i]) {
- return 'rowLight'
- }
- }
- },
- toggleRowExpansion() {
- this.expand = !this.expand
- this.list.forEach(item => {
- this.$refs.multipleTable.toggleRowExpansion(item, this.expand)
- })
- }
- }
- }
- </script>
- <style scoped>
- .edit-input {
- padding-right: 100px;
- }
- .cancel-btn {
- position: absolute;
- right: 15px;
- top: 10px;
- }
- </style>
|