customer.vue 4.8 KB
Newer Older
K
klausY 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
<template>
  <div>
      <div class="search-term">
      <el-form :inline="true" :model="searchInfo" class="demo-form-inline">
        <el-form-item>
          <el-button @click="openDialog" type="primary">新增客户</el-button>
        </el-form-item>
      </el-form>
    </div>
    <el-table
      :data="tableData"
      border
      ref="multipleTable"
      stripe
      style="width: 100%"
      tooltip-effect="dark"
    >
      <el-table-column type="selection" width="55"></el-table-column>
      <el-table-column label="接入日期" width="180">
        <template slot-scope="scope">{{ scope.row.CreatedAt|formatDate }}</template>
      </el-table-column>
      <el-table-column label="姓名" prop="customerName" width="120"></el-table-column>
      <el-table-column label="电话" prop="customerPhoneData" width="120"></el-table-column>
      <el-table-column label="接入人ID" prop="sysUserId" width="120"></el-table-column>
      <el-table-column label="按钮组">
        <template slot-scope="scope">
R
rainyan 已提交
27
          <el-button @click="updateCustomer(scope.row)" size="small" type="text">变更</el-button>
K
klausY 已提交
28 29 30
          <el-popover
          placement="top"
          width="160"
31
          v-model="scope.row.visible">
K
klausY 已提交
32 33
          <p>确定要删除吗?</p>
          <div style="text-align: right; margin: 0">
34
            <el-button size="mini" type="text" @click="scope.row.visible = false">取消</el-button>
K
klausY 已提交
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
            <el-button type="primary" size="mini" @click="deleteCustomer(scope.row)">确定</el-button>
          </div>
          <el-button type="text" size="mini" slot="reference">删除</el-button>
        </el-popover>
        </template>
      </el-table-column>
    </el-table>

      <el-pagination
      :current-page="page"
      :page-size="pageSize"
      :page-sizes="[10, 30, 50, 100]"
      :style="{float:'right',padding:'20px'}"
      :total="total"
      @current-change="handleCurrentChange"
      @size-change="handleSizeChange"
      layout="total, sizes, prev, pager, next, jumper"
    ></el-pagination>

    <el-dialog :before-close="closeDialog" :visible.sync="dialogFormVisible" title="新增Api">
      <el-form :inline="true" :model="form" label-width="80px">
        <el-form-item label="客户名">
          <el-input autocomplete="off" v-model="form.customerName"></el-input>
        </el-form-item>
        <el-form-item label="客户电话">
          <el-input autocomplete="off" v-model="form.customerPhoneData"></el-input>
        </el-form-item>
      </el-form>
      <div class="dialog-footer" slot="footer">
        <el-button @click="closeDialog">取 消</el-button>
        <el-button @click="enterDialog" type="primary">确 定</el-button>
      </div>
    </el-dialog>
    在资源权限中将此角色的资源权限清空 或者不包含创建者的角色 即可屏蔽此客户资源的显示
  </div>
</template>

<script>

import {
  createExaCustomer,
R
rainyan 已提交
76
  updateExaCustomer,
K
klausY 已提交
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
  deleteExaCustomer,
  getExaCustomer,
  getExaCustomerList
} from '@/api/customer'
import { formatTimeToStr } from '@/utils/data'
import infoList from '@/components/mixins/infoList'
import { mapGetters } from 'vuex'

export default {
  name: 'Customer',
   mixins: [infoList],
  data(){
    return{
      listApi: getExaCustomerList,
      dialogFormVisible:false,
      visible:false,
      type:"",
      form:{
        customerName:"",
        customerPhoneData:""
      }
    }
  },
  computed:{
    ...mapGetters('user', ['token'])
  },
   filters: {
    formatDate: function(time) {
      if (time != null && time != '') {
        var date = new Date(time)
        return formatTimeToStr(date, 'yyyy-MM-dd hh:mm:ss')
      } else {
        return ''
      }
    }
  },
  methods:{
R
rainyan 已提交
114
    async updateCustomer(row){
115
      const res = await getExaCustomer({ID:row.ID})
K
klausY 已提交
116
      this.type = "update"
117
      if(res.code == 0){
K
klausY 已提交
118 119 120 121 122 123 124 125 126
        this.form = res.data.customer        
        this.dialogFormVisible = true
      }
    },
    closeDialog(){
      this.dialogFormVisible = false
    },
    async deleteCustomer(row){
      this.visible = false
127
      const res = await deleteExaCustomer({ID:row.ID})
128
      if (res.code == 0){
129 130 131 132
        this.$message({
          type:"success",
          message:"删除成功"
        })
K
klausY 已提交
133 134 135 136 137 138 139 140 141 142
         this.getTableData()
      }
    },
    async enterDialog(){
      let res 
      switch (this.type) {
        case "create":
          res =await createExaCustomer(this.form)
             break;
        case "update":
R
rainyan 已提交
143
           res =await updateExaCustomer(this.form)
K
klausY 已提交
144 145 146 147 148 149 150
              break;
        default:
          res =await createExaCustomer(this.form)
             break;

      }
     
151
      if(res.code == 0){
K
klausY 已提交
152 153 154 155 156 157 158 159
        this.dialogFormVisible = false
        this.getTableData()
      }
    },
     openDialog() {
      this.type = "create"
      this.dialogFormVisible = true
    }
160 161 162
  },
  created(){
    this.getTableData()
K
klausY 已提交
163 164 165 166 167 168
  }
}
</script>

<style>
</style>