index.vue 5.44 KB
<template>
  <div class="container">
    <div class="search-form">
      <el-button type="success" size="small" plain icon="el-icon-plus" @click="add">新增</el-button>
    </div>
    <div class="table-form">
      <el-table :data="dataList" size="mini" style="width: 100%">
        <el-table-column prop="contract_number" label="合同协议编号"></el-table-column>
        <el-table-column prop="contract_name" label="合同协议名称"></el-table-column>
        <el-table-column prop="contract_type" label="类型">
          <template slot-scope="scope">
            <div v-if="scope.row.contract_type == 0">用户协议</div>
            <div v-if="scope.row.contract_type == 1">正式课合同</div>
          </template>
        </el-table-column>
        <el-table-column prop="goods_name" label="关联商品">
          <template slot-scope="scope">
            <div v-for="data in goodsNameFilter(scope.row.goods_name)">{{data}}</div>
          </template>
        </el-table-column>
        <el-table-column prop="created_at" label="创建时间"></el-table-column>
        <el-table-column prop="updated_at" label="最后编辑时间"></el-table-column>
        <el-table-column prop="operator" label="最后编辑人"></el-table-column>
        <el-table-column prop="status" label="状态">
          <template slot-scope="scope">
            <div v-if="scope.row.status == 0">启用</div>
            <div v-if="scope.row.status == 1">停用</div>
          </template>
        </el-table-column>
        <el-table-column width="150" label="操作">
          <template slot-scope="scope">
            <el-button type="primary" size="mini" plain @click="edit(scope.row)">编辑</el-button>
            <el-button v-if="scope.row.status == 0" type="warning" size="mini" plain @click="switchStatus(scope.row)">
              停用
            </el-button>
            <el-button v-if="scope.row.status == 1" type="success" size="mini" plain @click="switchStatus(scope.row)">
              启用
            </el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>
    <dialog-com :dialogObj="dialogObj" @reflash="getDataList"/>
  </div>
</template>

<script>
    import {contractListApi, contractSwitchstatusApi} from "../../service/api";
    import dialogCom from './dialog';

    export default {
        name: "index",
        data() {
            return {
                dataList: [],
                dialogObj: {
                    type: 0,
                    show: false,
                    id: '',
                    title: ''
                }
            }
        },
        components: {
            dialogCom
        },
        methods: {
            getDataList() {
                contractListApi().then(res => {
                    this.dataList = res;
                });
            },
            goodsNameFilter(val) {
                if (val) {
                    return val.split('--')
                }
            },
            add() {
                this.dialogObj = {
                    type: 0,
                    show: true,
                    id: '',
                    title: '新增合同协议'
                }
            },
            edit(data) {
                this.dialogObj = {
                    type: 1,
                    show: true,
                    id: data.id,
                    title: '编辑合同协议',
                    contract_name: data.contract_name,
                    contract_type: data.contract_type,
                    goods_ids: data.goods_ids,
                    contract_text: data.contract_text
                }
            },
            switchStatus(data) {
                let json = {
                    status: data.status
                };
                if (data.status == 0) {
                    json.status = 1;
                }
                if (data.status == 1) {
                    json.status = 0;
                }
                contractSwitchstatusApi(data.id, json).then(res => {
                    if (json.status == 0) {
                        this.$confirm('此操作将启用合同?', '提示', {
                            confirmButtonText: '确定',
                            cancelButtonText: '取消',
                            type: 'warning'
                        }).then(() => {
                            this.$message({
                                type: 'success',
                                message: '启用成功'
                            });
                            this.getDataList();
                        }).catch(() => {
                        });
                    }
                    if (json.status == 1) {
                        this.$confirm('此操作将停用合同?', '提示', {
                            confirmButtonText: '确定',
                            cancelButtonText: '取消',
                            type: 'warning'
                        }).then(() => {
                            this.$message({
                                type: 'success',
                                message: '停用成功'
                            });
                            this.getDataList();
                        }).catch(() => {
                        });
                    }
                });
            },

        },
        created() {
            this.getDataList();
        }
    }
</script>

<style scoped>
  .container {
    padding: 20px;
  }

  .search-form {
    margin-bottom: 20px;
  }
</style>