// 货主信息
<template>
  <div class="center">
    <div class="center_css">
      <div class="top_css">
        <el-row>
          <el-col :span="14" style="height: 45px;">
            <!-- <el-button type="primary">添加</el-button> -->
          </el-col>
          <el-col :span="10">
            <div class="screen">
              <el-input placeholder="可按货主姓名、账号查找" v-model="searchkeyWord" clearable @change="find"></el-input>
              <el-button class="search" @click="find"><img width="16" height="16" style="margin-left: -8px"
                  src="../../../public/img/sousuo.png" /></el-button>
            </div>
          </el-col>
        </el-row>
        <el-row>
          <el-col>
            <div class="search_btn">
              <div :class="search == '' ? 'search' : 'searchNo'" class="search_item search_block"
                @click="searchBtn('')">
                全部
              </div>
              <div :class="search == 1 ? 'search' : 'searchNo'" class="search_item " @click="searchBtn(1)">
                待审核
              </div>
              <div :class="search == 2 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(2)">
                已通过
              </div>
              <div :class="search == 3 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(3)">
                已驳回
              </div>
              <div :class="search == 4 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(4)">
                已过期
              </div>
              <div :class="search == 5 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(5)">
                未认证
              </div>
              <div :class="search == 6 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(6)">
                已注销
              </div>
              <div :class="search == 7 ? 'search' : 'searchNo'" class="search_item" @click="searchBtn(7)">
                已禁用
              </div>
            </div>
          </el-col>
        </el-row>
      </div>
      <el-table :data="tableData" style="width: 98%; margin: 0 auto; border-radius: 10px" height="55.8vh" border>
        <el-table-column prop="name" label="货主姓名" min-width="130"></el-table-column>
        <el-table-column prop="phone" label="账号" min-width="110"></el-table-column>
        <el-table-column prop="cardNumber" label="身份证号" min-width="165"></el-table-column>
        <el-table-column prop="shipmentsNumber" label="发运次数"></el-table-column>
        <el-table-column prop="favorableRate" label="好评率(%)"></el-table-column>
        <el-table-column prop="accumulatedFreight" label="累计支付运费（元）" min-width="148"></el-table-column>
        <el-table-column prop="amountMoney" label="代理身份">
          <template slot-scope="scope">
            <el-popover placement="top-start" title="" width="200" trigger="hover"
              :content="scope.row.proxyIdentity?scope.row.proxyIdentity:'暂无代理企业'">
              <span class="btn_css" slot="reference">企业</span>
            </el-popover>
          </template>
        </el-table-column>
        <el-table-column prop="advancePayment" label="垫付比例(%)" width="100px">
          <template slot-scope="scope">
            <div class="advancePayment-style">
              <el-input placeholder="0" v-model="scope.row.advancePayment"></el-input>
              <i class="el-icon-edit" style="margin-top:8px" @click="editRatio(scope.row)"></i>
              <!-- <span class="btn_css" @click="userSee(scope.row)">查看</span> -->
            </div>
          </template>
        </el-table-column>
        <el-table-column label="账单" min-width="133">
          <template slot-scope="scope">
            <el-popover placement="right" width="400" trigger="click" @show="getBillList(scope.row.commonId)">
              <div class="bill-content">
                <div class="bill-item" v-for="(item,index) in billList" :key="index">
                  <div class="row1">
                    <div class="left">
                      {{item.types}}
                    </div>
                    <div class="right">{{item.amountMoney}}元</div>
                  </div>
                  <!-- <div class="row2">
                    <div class="left">
                      支付预付款
                    </div>
                    <div class="right">-1000</div>
                  </div> -->
                </div>
              </div>
              <el-button slot="reference">账单</el-button>
            </el-popover>
          </template>
        </el-table-column>
        <el-table-column prop="authenticationStatus" label="身份证">
          <template slot-scope="scope">
            <span class="btn_css" @click="IDLook(scope.row)">查看</span>
          </template>
        </el-table-column>
        <el-table-column prop="authenticationStatus" label="状态"></el-table-column>
        <el-table-column label="操作" min-width="350">
          <template slot-scope="scope">
            <el-link target="_blank" @click="adopt(scope.row)" type="primary" :underline="false"
              :disabled="scope.row.authenticationStatus != '审核中'">通过</el-link>
            <el-divider direction="vertical"></el-divider>
            <el-link target="_blank" @click="reject(scope.row)" type="primary" :underline="false"
              :disabled="scope.row.authenticationStatus != '审核中'">驳回</el-link>
            <el-divider direction="vertical"></el-divider>
            <el-link target="_blank" @click="newInfo(scope.row)" type="primary" :underline="false"
              :disabled="scope.row.authenticationStatus == '审核中'">消息</el-link>
            <el-divider direction="vertical"></el-divider>
            <el-dropdown>
              <span class="btn_css">•••</span>
              <el-dropdown-menu slot="dropdown">
                <el-dropdown-item
                  :disabled="scope.row.authenticationStatus == '已禁用' && scope.row.authenticationStatus != '审核中'"><span
                    @click="switchChange(scope.row,'1')">禁用</span></el-dropdown-item>
                <el-dropdown-item
                  :disabled="scope.row.authenticationStatus != '已禁用' && scope.row.authenticationStatus != '审核中'"><span
                    @click="switchChange(scope.row,'2')">启用</span></el-dropdown-item>
              </el-dropdown-menu>
            </el-dropdown>
          </template>
        </el-table-column>
      </el-table>
    </div>
    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
      style="text-align: center; margin-top: 10px" :page-size="deptCircularPage.pageSize"
      layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
    </el-pagination>
    <el-dialog :close-on-click-modal='false' title="身份信息" :visible.sync="userInfo" width="500px" :before-close="userInfoClose">
      <div class="user">
        <!-- .user -->
        <div class="title_css">姓名</div>
        <div class="name_css">{{idSee.name}}</div>
        <div class="title_css">身份证号</div>
        <div class="name_css">{{idSee.cardNumber}}</div>
        <div class="title_css">有效期</div>
        <div class="name_css">{{idSee.cardValidityDate}} <span style="color: #EF4C33;margin-left: 10px"
            v-if="false">已过期</span></div>
        <div class="title_css">身份证人像面</div>
        <img :src="idSee.cardAddressUrl" class="user_item" @click="enlarge(idSee.cardAddressUrl)" />
        <div class="title_css">身份证国徽面</div>
        <img :src="idSee.cardBackAddressUrl" class="user_item" @click="enlarge(idSee.cardBackAddressUrl)" />
        <div class="form_btn">
          <el-button @click="userInfoClose">关闭</el-button>
        </div>
      </div>
    </el-dialog>
    <el-dialog :close-on-click-modal='false' title="驳回认证" :visible.sync="rejectInfo" width="400px" :before-close="rejectClose">
      <div>
        <!-- <div><span class="sign">*</span>选择驳回原因</div> -->
        <div class="form_css">
          <el-form ref="form" :model="form" label-width="80px">
            <!-- <el-checkbox-group v-model="form.checkList">
							<el-checkbox label="证件照片不清晰"></el-checkbox>
							<el-checkbox label="证件照片上传错误"></el-checkbox>
							<el-checkbox label="身份信息填写错误"></el-checkbox>
							<el-checkbox label="证件信息填写错误"></el-checkbox>
							<el-checkbox label="其他"></el-checkbox>
						</el-checkbox-group> -->
            <div style="margin-bottom: 20px;">驳回原因描述（必填）</div>
            <el-input type="textarea" :rows="3" resize="none" placeholder="输入驳回原因，6-100个字" maxlength="100"
              v-model="form.rejectReasonDescription"></el-input>
            <div class="form_btn">
              <el-button @click="rejectClose">取消</el-button>
              <el-button @click="submit" type="primary">确定</el-button>
            </div>
          </el-form>
        </div>
      </div>
    </el-dialog>
    <el-dialog :close-on-click-modal='false' title="发送信息" :visible.sync="sendInfo" width="400px" :before-close="sendInfoClose">
      <div class="Info_css">
        <div class="Info_title">标题</div>
        <div class="Info_item">
          <el-input placeholder="输入消息标题，不超过4-20个字。" v-model="Info.newsTitle"></el-input>
        </div>
        <div class="Info_title">内容</div>
        <div class="Info_item">
          <el-input type="textarea" :rows="3" resize="none" placeholder="消息内容10-100字" maxlength="50"
            v-model="Info.newsContent"></el-input>
        </div>
        <div class="Info_btn">
          <el-button @click="sendInfoClose">取消</el-button>
          <el-button @click="submitInfo" type="primary">确定</el-button>
        </div>
      </div>
    </el-dialog>
    <el-image-viewer v-if="imgsVisible" :on-close="closeImgViewer" :url-list="srcList" style="z-index:9999" />
  </div>
</template>
<script>
  import {
    getList,
    toExamine,
    postNews,
    getBillList,
    editInfo
  } from '@/api/cargoOwnerManagement'
  export default {
    components: {
      "el-image-viewer": () =>
        import("element-ui/packages/image/src/image-viewer"),
    },
    data() {
      return {
        billList: [],
        tableData: [],
        //分页
        searchkeyWord: "",
        currentPage: 1,
        pageSize: 10,
        deptBudgetTotal: 0,
        deptCircularPage: {},
        search: "",
        addressUrl: [],
        disabled: false,
        userInfo: false,
        rejectInfo: false,
        form: {},
        Info: {},
        sendInfo: false,
        idSee: {},
        //图片预览
        srcList: [],
        imgsVisible: false,
      };
    },
    mounted() {
      this.getList()
    },
    methods: {
      closeImgViewer() {
         this.srcList = []
        this.imgsVisible = false;
      },
      enlarge(url) {
        this.imgsVisible = true;
        this.srcList.push(url)
      },
      IDLook(val) { //查看身份证
        this.idSee = val
        this.userInfo = true
      },
      editRatio(val) {
        this.$confirm("确定修改该货主的垫付比例？", '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning',
          })
          .then(() => {
            this.listLoading = true;
            editInfo(val)
              .then((response) => {
                if (response.code == 200) {
                  this.$notify({
                    title: "成功",
                    message: "修改成功！",
                    type: "success",
                  });
                  this.getList()
                }
              }).catch(() => {
                this.listLoading = false;
              });

          })
      },
      getBillList(id) {
        let _obj = {
          commonId: id,
          pageSize: 999,
          currentPage: 1
        }
        getBillList(_obj).then(response => {
            this.billList = response.data.records
          })
          .catch(() => {
            this.loading = false
          })
      },
      getList() {
        this.loading = true
        let _obj = {}
        _obj.currentPage = this.currentPage
        _obj.pageSize = this.pageSize
        _obj.searchKeyWord = this.searchkeyWord
        _obj.searchType = this.search
        getList(_obj).then(response => {
            this.tableData = response.data.records
            this.deptBudgetTotal = response.data.total
            this.listLoading = false
          })
          .catch(() => {
            this.loading = false
          })
      },
      switchChange(row, num) {
        var _examine = {}
        _examine.id = row.id
        let title
        if (num == 1) {
          _examine.flag = 3
          title = "禁用后客户将无法使用所有功能，是否确定禁用？"
        } else if (num == 2) {
          title = "确定重新启用该用户？"
          _examine.flag = 4
        }
        this.$confirm(title, '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning',
          })
          .then(() => {
            this.listLoading = true
            toExamine(_examine).then(response => {
                if (num == 1) {
                  this.$notify({
                    title: '成功',
                    message: '禁用成功！',
                    type: 'success'
                  });
                } else if (num == 2) {
                  this.$notify({
                    title: '成功',
                    message: '启用成功！',
                    type: 'success'
                  });
                }
                this.getList()
                this.listLoading = false
              })
              .catch(() => {
                this.loading = false
              })
          })
      },
      newInfo(row) {
        this.Info.newsTypeKey = 1
        this.Info.newsType = "系统消息"
        this.Info.crtCommonId = JSON.parse(localStorage.getItem('UserInfo')).userId
        this.Info.reCommonId = row.commonId
        this.Info.bussId = row.id
        this.sendInfo = true
      },
      sendInfoClose() {
        this.Info = {}
        this.sendInfo = false
      },
      adopt(row) {
        this.$confirm('确定通过身份审核？', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning',
          })
          .then(() => {
            this.listLoading = true
            var _examine = {}
            _examine.id = row.id
            _examine.flag = 1
            toExamine(_examine).then(response => {
                this.$notify({
                  title: '成功',
                  message: '通过成功！',
                  type: 'success'
                });
                this.getList()
                this.listLoading = false
              })
              .catch(() => {
                this.loading = false
              })
          })
      },
      reject(row) {
        this.form.id = row.id
        this.form.flag = 2
        this.rejectInfo = true
      },
      rejectClose() {
        this.form.rejectReasonDescription = ""
        this.rejectInfo = false
      },
      submit() {
        if (!this.form.rejectReasonDescription) {
          this.$message.error("请输入驳回原因")
          return
        }
        if (this.form.rejectReasonDescription.length < 6 || this.form.rejectReasonDescription.length > 100) {
          this.$message.error("驳回原因字数应在6-100之间")
          return
        }
        this.listLoading = true
        toExamine(this.form).then(response => {
            this.$notify({
              title: '成功',
              message: '驳回成功！',
              type: 'success'
            });
            this.form = {}
            this.rejectInfo = false
            this.getList()
            this.listLoading = false
          })
          .catch(() => {
            this.loading = false
          })
      },
      submitInfo() {
        if (!this.Info.newsTitle) {
          this.$message.error("请输入标题")
          return
        }
        if (!this.Info.newsContent) {
          this.$message.error("请输入内容")
          return
        }
        if (this.Info.newsTitle.length < 4 || this.Info.newsTitle.length > 20) {
          this.$message.error("标题字数应在4-20之间")
          return
        }
        if (this.Info.newsContent.length < 10 || this.Info.newsContent.length > 100) {
          this.$message.error("消息内容字数应在10-100之间")
          return
        }
        this.listLoading = true
        postNews(this.Info).then(response => {
            this.$notify({
              title: '成功',
              message: '发送成功！',
              type: 'success'
            });
            this.sendInfoClose()
            this.listLoading = false
          })
          .catch(() => {
            this.loading = false
          })
      },
      userSee(row) {
        this.idSee.cardAddressUrl = row.cardAddressUrl
        this.idSee.cardBackAddressUrl = row.cardBackAddressUrl
        this.idSee.name = row.name
        this.idSee.cardNumber = row.cardNumber
        this.idSee.cardValidityDate = row.cardValidityDate
        this.userInfo = true;
      },
      userInfoClose() {
        this.userInfo = false;
      },
      searchBtn(num) {
        this.search = num;
        this.getList();
      },
      find() {
        this.getList();
      },
      onChange() {
        this.$refs.upload
          .handleSaveBill()
          .then(async (response) => {
            this.formData.addressUrl = response;
          })
          .catch((res) => {
            EventBus.$emit("error", (JSON.parse(res) || {}).message);
            this.$refs.upload.clearFiles();
          });
      },
      handleSizeChange(val) {
        console.log(`每页 ${val} 条`);
        this.pageSize = val;
        this.getList();
      },
      handleCurrentChange(val) {
        this.currentPage = val;
        console.log(`当前页: ${val}`);
        this.getList();
      },
    },
  };
</script>
<style lang="scss" scoped>
  .center {
    padding: 10px 20px;
    background: #f5f6f7;
    height: calc(100vh - 5vh);

    .top_css {
      padding: 10px;

      .search_btn {
        height: 80px;
        background: linear-gradient(#fafbfb, #ffffff);
        display: flex;
        margin-top: 20px;

        .search_block {
          margin-left: 20px;
        }

        .search_item {
          text-align: center;
          font-size: 14px;
          font-weight: 600;
          line-height: 40px;
          width: 112px;
          height: 40px;
          background: #f7f8f9;
          cursor: pointer;
          margin-top: 30px;
        }

        .searchNo {
          color: #323233;
        }

        .search {
          color: #2f53eb;
          background: #ffffff;
        }
      }
    }

    .center_css {
      background: #ffffff;
      border-radius: 1px;
      margin-top: 10px;
      padding-bottom: 10px;
    }

    .screen {
      display: flex;

      .search {
        width: 40px;
        height: 40px;
        background: #f7f8fa;
        border-radius: 0px 2px 2px 0px;
        border: 1px solid #f0f1f2;
      }

      .count_css {
        width: 80px;
        text-align: center;
        line-height: 40px;
        color: #666666;
      }
    }

    .el-button {
      padding: 10px 20px !important;
    }

    .center_css {

      ::v-deep .el-table th,
      ::v-deep .el-table td {
        text-align: center;
      }

      .fujian {
        font-size: 24px;
        color: #409eff;
      }

      .warning {
        font-size: 14px;
        color: #ed1d1d;
      }
    }
  }

  .car_css {
    width: 50%;
    display: inline-block;
    text-align: center;
    margin-top: 20px;
  }

  .car_item {
    width: 100px;
    height: 100px;
  }

  .user {
    margin-bottom: 20px;

    .title_css {
      color: #9D9D9D;
      margin-bottom: 6px;
    }

    .name_css {
      color: #0D0D0D;
      margin-bottom: 20px;
    }

    .form_btn {
      text-align: right;
    }

    .user_item {
      width: 380px;
      height: 250px;
      margin-bottom: 20px;
    }
  }

  ::v-deep .el-table--border .el-table__header th {
    background: #f7f8f9;
  }

  .btn_css {
    color: #409EFF;
    cursor: pointer
  }

  .sign {
    font-size: 14px;
    color: red;
  }

  .form_css {
    width: 100%;
    margin: 0 auto 20px;

    ::v-deep .el-checkbox {
      width: 40%;
      height: 30px;
    }

    ::v-deep .el-dialog__body {
      padding: 10px 20px;
    }

    ::v-deep .el-dialog__title {
      font-size: 16px;
    }

    ::v-deep .el-textarea__inner {
      background: #F0F1F2;
    }

    .form_btn {
      text-align: right;
      margin-top: 10px;
    }
  }

  //发送信息
  .Info_css {
    .Info_title {
      color: #323233;
      font-size: 16px;
    }

    .Info_item {
      margin: 20px 0;
    }

    .Info_btn {
      text-align: right;
      margin-top: 10px;
    }
  }

  .advancePayment-style {
    display: flex;

  }

  ::v-deep .advancePayment-style .el-input__inner {
    height: 30px;
  }
</style>
