<template>
  <div v-loading="loading">
    <div class="heior_box">
      <el-button size="small" type="primary" icon="el-icon-plus" @click="add">添加代理商</el-button>
      代理商登录地址：<el-link href="http://agent.juip.com/" type="primary">http://agent.juip.com/</el-link>
      <div class="search-box">
        <el-input v-model="searchModel.keyWord" placeholder="请输入代理商账号" clearable size="small">
          <el-button slot="append" icon="el-icon-search" @click="search"></el-button>
        </el-input>
      </div>
    </div>
    <el-table :data="retData.Data" size="medium" :height="$getHeight(100)" row-key="Id" border>
      <!-- <el-table-column prop="LoginCode" label="会员号" width="120px"></el-table-column> -->
      <!-- <el-table-column prop="Name" label="名称"></el-table-column> -->
      <el-table-column prop="username" label="代理商账号" width="120px">
      </el-table-column>
      <el-table-column prop="create_time" label="创建时间" width="160px"></el-table-column>
      <!-- <el-table-column prop="ProductAccountCount" label="账号总数"></el-table-column>
      <el-table-column prop="ExpiredProductAccountCount" label="过期数"></el-table-column>
      <el-table-column prop="ExpiredProductAccountCount" label="未过期数"></el-table-column>-->
      <!-- <el-table-column prop="ConsumeAmount" label="消费总额"></el-table-column> -->
      <el-table-column prop="discount" label="折扣"></el-table-column>
      <el-table-column prop="account" label="余额"></el-table-column>
      <el-table-column prop="realname" label="姓名"></el-table-column>
      <el-table-column prop="phone" label="电话号码"></el-table-column>
      <el-table-column prop="user_num" label="用户数量"></el-table-column>
      <el-table-column prop="last_cost" label="上月消费"></el-table-column>
      <el-table-column prop="cost" label="本月消费"></el-table-column>
      
      <el-table-column label="操作" width="400px">
        <template slot-scope="scope">
          <span class="handel cursor edit" @click="showAmount(scope.row,1)" v-if="IsRoot">充值</span>
          <span class="handel cursor edit" @click="showAmount(scope.row,2)">扣款</span>
          <!-- <router-link :to="{name:'agentprice',query:{id:scope.row.id}}">
            <span class="handel cursor edit">代理价</span>
          </router-link> -->
          <span class="handel cursor edit" @click="showUserPrice(scope.row)">代理价</span>
          <span class="handel cursor edit" @click="edit(scope.row)">编辑</span>
          <span class="handel cursor edit" @click="showAmountDetail(scope.row)">明细</span>
        </template>
      </el-table-column>
    </el-table>
    <div class="block">
      <el-pagination
        v-if="retData.Data.length>0"
        @current-change="get"
        :page-size="50"
        :current-page.sync="searchModel.PageIndex"
        layout="total,prev, pager, next"
        :total="retData.TotalCount"
      ></el-pagination>
    </div>

    
    <!-- 用户折扣价格 -->
    <el-dialog title="设置代理折扣" :visible.sync="showPriceDialog" width="300px">

      <el-row>
        <el-col :span="8">
          选择折扣：
        </el-col>
        <el-col :span="16">
          <el-select size="small" v-model="currentDiscount.schemeId" placeholder="请选择">
          <el-option
            v-for="item in productDiscounts"
            :key="item.Id"
            :label="item.Name"
            :value="item.Id">
          </el-option>
        </el-select>
        </el-col>
      </el-row>

      <span slot="footer" class="dialog-footer">
        <el-button @click="showPriceDialog = false">取 消</el-button>
        <el-button type="primary" @click="updateDiscount()">确定</el-button>
      </span>
    </el-dialog>

    <el-dialog title="添加代理商" :visible.sync="showDialog" width="400px">
      <el-form :model="userModel" :rules="rules" ref="inputUserForm" label-width="80px">
        <el-form-item prop="username" label="用户名">
          <el-input v-model="userModel.username" :disabled="optype==2" size="small"></el-input>
        </el-form-item>
        <el-form-item prop="password" label="密码">
          <el-input v-model="userModel.password" show-password size="small"></el-input>
        </el-form-item>
        <el-form-item prop="phone" label="手机号">
          <el-input v-model="userModel.phone" size="small"></el-input>
        </el-form-item>
        <el-form-item prop="qq" label="qq">
          <el-input v-model="userModel.qq" size="small"></el-input>
        </el-form-item>
                <el-form-item prop="realname" label="真实姓名">
          <el-input v-model="userModel.realname" size="small"></el-input>
        </el-form-item>
            
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="resetForm('inputUserForm')">取 消</el-button>
        <el-button type="primary" @click="save('inputUserForm')">确定</el-button>
      </span>
    </el-dialog>

    <el-dialog
      :title="amountModel.opAmountType==1?'充值':'扣费'"
      :visible.sync="amountModel.showAmountDialog"
      width="300px"
    >
      <el-form :model="amountModel" :rules="amountRules" ref="inputAmountForm" label-width="80px">
        <el-form-item prop="rest" label="当前余额">
          <el-input v-model="amountModel.rest" size="small" disabled></el-input>
        </el-form-item>
        <el-form-item prop="amount" :label="amountModel.opAmountType==1?'充值金额':'扣费金额'">
          <el-input v-model="amountModel.amount" size="small" type="number"></el-input>
        </el-form-item>
        <el-form-item prop="attchInfo" label="备注">
          <el-input v-model="amountModel.attchInfo" size="small" ></el-input>
        </el-form-item>
        
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="resetForm('inputAmountForm')">取 消</el-button>
        <el-button type="primary" @click="updateAmount('inputAmountForm')">确定</el-button>
      </span>
    </el-dialog>

    <el-dialog title="资金明细" :visible.sync="showDetailDialog" width="500px">
      <el-table
        :data="detailAmountData"
        size="medium"
        :height="$getHeight(300)"
        row-key="Id"
        border
      >
        <el-table-column prop="remark" label="资金项目"></el-table-column>
        <el-table-column prop="score_value" label="金额"></el-table-column>
      </el-table>
    </el-dialog>
  </div>
</template>
<script>
export default {
  name: "userIndex",
  components: {
    cutTip: () => import("@/components/common/cutTip"),
    phoneHide: () => import("@/components/common/phonehide")
  },
  data() {
    return {
      isRoot:false,
      loading: false,
      showDialog: false,
      showTestDialog: false,
      showPriceDialog: false,
      showDetailDialog: false,
       currentDiscount:{
        schemeId:null,
        userId:null,
      },
      productDiscounts:[],
      userPrice: {
        user_id: null,
        user_discount: null
      },
      optype: 1, //1:添加 2：编辑
      userModel: {
        username: "",
        password: "",
        phone: "",
        realname: "",
        qq:""
      },
      amountModel: {
        rest: 0,
        amount: 0,
        opAmountType: 1, ////1:充值 2：扣款
        showAmountDialog: false,
        attchInfo:''
      },
      testLimitModel: {
        userId: 0,
        limit: 3
      },
      retData: { TotalCount: 0, Data: [] },
      searchModel: {
        PageIndex: 1,
        keyWord: ""
      },
      rules: {
        LoginCode: [this.$vaild.required("登录名称")],
        Phone: [this.$vaild.required("手机号")],
        // Password: [this.$vaild.required("密码")]
      },
      amountRules: {
        // amount: [{ type: 'number', message: '金额必须为数字值'}],
      },
      detailAmountData: [],
    };
  },
  created () {
    this.$store.commit('setCurrentNav', '用户管理>>代理商管理')
    var currentUser = this.$local.getUserByCache()
    this.IsRoot = currentUser.Manager.IsRootUser
    this.get()

    // eslint-disable-next-line camelcase
    let user_info = this.$local.getUserByCache().Manager.RealName
    this.$api.post(this.$api.phpURL + 'logs/index/clickVipInfo', {
      user: user_info,
      operation: '点击客户管理',
      record: '查询客户信息列表'
    }).then(res => {})
  },
  methods: {
    search(){
      this.searchModel.PageIndex=1;
      this.get();
    },
    get() {
      this.$api.get(this.$api.phpURL + "agent/agent/getList", this.searchModel).then(res => {
        this.retData = res;
      });
    },
    del(item) {
      var that = this;
      this.$confirm("确定删除？", "", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(_ => {
        this.$api.post("baseinfo/v1/user/Delete?id=" + item.Id).then(res => {
          that.get();
        });
      });
    },
    add() {
      this.showDialog = true;
      this.optype = 1;
    },
    edit(item) {
      this.showDialog = true;
      this.optype = 2;
      this.userModel = clone(item);
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
      this.showDialog = false;
      this.amountModel.showAmountDialog = false;
      this.showTestDialog = false;
    },
    save(formName) {
      this.userModel.username = this.userModel.username.trim()
      this.$refs[formName].validate(valid => {
        if (!valid) return;
        if (this.optype == 1) {
          this.$api.post(this.$api.phpURL + "agent/agent/addAgent", this.userModel).then(res => {
            this.resetForm("inputUserForm");
            this.get();
          });
        } else {
          this.$api.post(this.$api.phpURL + "agent/agent/updateAgent", this.userModel).then(res => {
            this.resetForm("inputUserForm");
            this.get();
          });
        }
      });
    },
    showAmount(item, type) {
      this.amountModel.rest = item.account;
      this.amountModel.opAmountType = type;
      this.amountModel.showAmountDialog = true;
      this.amountModel.id = item.id;
    },
    updateAmount(formName) {
      this.$refs[formName].validate(valid => {
        if (!valid) return;
        this.$api
          .post(this.$api.phpURL + "agent/agent/account", this.amountModel)
          .then(res => {
            this.resetForm("inputAmountForm");
            this.get();
          });
      });
    },
    showUpdateTest(item) {
      this.showTestDialog = true;
      this.testLimitModel.UserId = item.Id;
      this.testLimitModel.limit = item.TestCountLimit;
    },
    updateTestLimit() {
      this.$api
        .post(this.$api.phpURL + "user/user/testCount", this.testLimitModel)
        .then(res => {
          this.resetForm("inputTestForm");
          this.get();
        });
    },
    showAmountDetail(item) {
      this.showDetailDialog = true;
      this.$api
        .get(this.$api.phpURL + "agent/score/getScoreList?id=" + item.id)
        .then(res => {
          this.detailAmountData = res.Data
        });
    },
    showHandle (r) {
      // eslint-disable-next-line camelcase
      let user_info = this.$local.getUserByCache().Manager.RealName
    },
    day(r){
      this.$api.post(this.$api.phpURL + "user/user/setDay", r).then(res => {
            
      });
    },
    showUserPrice(r){
      this.showPriceDialog = true
      this.currentDiscount.userId = r.id
      //获取折扣
       this.$api
        .get("course/v1/scheme/page")
        .then(res => {
          this.productDiscounts= res.Data;     
        });
    },
    updateDiscount(){
      this.showPriceDialog = false
      this.$api.post(this.$api.phpURL + "agent/agent/setUserDiscount", this.currentDiscount).then(res => {
        this.currentDiscount.schemeId = ''
        this.currentDiscount.userId = ''
        this.get();
      });
    },
    dataExport () {
      this.$api.getDownloadFile('/baseinfo/v1/user/Export')
      // eslint-disable-next-line camelcase
      let user_info = this.$local.getUserByCache().Manager.RealName
      this.$api.post(this.$api.phpURL + 'logs/index/export', {
        user: user_info,
        operation: '点击导出所有客户信息',
        record: '导出所有客户信息列表',
        info: '本次点击时间之前所有客户数据'
      }).then(res => {})
    }
  }
}
</script>
<style scoped>
</style>
