<template>
  <!-- -账单明细 -->
  <div class="white_bg burt-container custom-info">
    <!-- form -->
    <a-form-model ref="form" layout="vertical" :model="form">
      <a-row :gutter="30">
        <a-col :xl="4" :lg="6" :sm="12">
          <a-form-model-item label="病历号">
            <a-input
              v-model="form.patientNo"
              placeholder="请输入病历号"
              allow-clear
            ></a-input>
          </a-form-model-item>
        </a-col>
        <a-col :xl="4" :lg="6" :sm="12">
          <a-form-model-item label="客户姓名">
            <a-input
              v-model="form.patientName"
              placeholder="请输入客户姓名"
              allow-clear
            ></a-input>
          </a-form-model-item>
        </a-col>
        <a-col :xl="4" :lg="6" :sm="12">
          <a-form-model-item label="客户类型">
            <a-select
              v-model="form.patientType"
              placeholder="请选择客户类型"
              allowClear
            >
              <a-select-option
                v-for="item in patientTypeOptions"
                :key="item.code"
                :value="item.code"
              >
                {{ item.name }}
              </a-select-option>
            </a-select>
          </a-form-model-item>
        </a-col>
        <a-col :xl="4" :lg="6" :sm="12">
          <a-form-model-item label="保险公司">
            <a-select
              v-model="form.payorId"
              placeholder="请选择保险公司"
              allowClear
            >
              <a-select-option
                v-for="item in companyOptions"
                :key="item.corpCode"
                :value="item.id"
              >
                {{ item.longName }}
              </a-select-option>
            </a-select>
          </a-form-model-item>
        </a-col>
        <a-col :xl="4" :lg="6" :sm="12">
          <a-form-model-item label="看诊医生">
            <a-select
              v-model="form.doctorCode"
              placeholder="请选择看诊医生"
              allowClear
            >
              <a-select-option
                v-for="item in doctorOptions"
                :key="item.doctorCode"
                :value="item.doctorCode"
              >
                {{ item.doctorDesc }}
              </a-select-option>
            </a-select>
          </a-form-model-item>
        </a-col>
        <a-col :xl="5" :lg="6" :sm="12">
          <a-form-model-item label="就诊时间">
            <a-range-picker
              format="YYYY-MM-DD"
              v-model="form.dateRange"
              :placeholder="['开始时间', '结束时间']"
              @change="onSelectVisitTime"
            />
          </a-form-model-item>
        </a-col>
        <a-col :xl="3" :lg="6" :sm="12">
          <a-form-model-item label="支付方式">
            <a-select
              v-model="form.paymentCode"
              placeholder="请选择支付方式"
              allowClear
            >
              <a-select-option
                v-for="item in paymentOptions"
                :key="item.code"
                :value="item.code"
                allow-clear
              >
                {{ item.name }}
              </a-select-option>
            </a-select>
          </a-form-model-item>
        </a-col>
        <a-col :xl="12" :lg="12" :sm="12" class="none-label">
          <a-form-model-item label="button">
            <a-button>更新数据</a-button>
            <a-button class="mar-left10" type="primary" @click="addNewCharge">
              <Icon name="ssiadd" :size="14" />新建预授权</a-button
            >
            <a-button class="mar-left10" type="primary" @click="handlerReset">
              <Icon name="ssireset" :size="14" />重置
            </a-button>
            <a-button class="mar-left10" type="primary" @click="handlerSearch">
              <Icon name="ssisearch_active" :size="14" />查询
            </a-button>
          </a-form-model-item>
        </a-col>
      </a-row>
    </a-form-model>

    <!-- table -->
    <a-table
      :columns="columns"
      :data-source="dataList"
      row-key="id"
      :scroll="{ x: true }"
      :customRow="handlerRowClick"
      :pagination="true"
    >
      <template slot="operation" slot-scope="record">
        <a-button
          v-if="record.isEdit"
          type="link"
          @click.stop="saveChange(record)"
          >保存</a-button
        >
        <a-button v-else type="link" @click.stop="changeDataStatus(record)"
          >修改</a-button
        >
        <!-- <a-button type="link" class="success">查看</a-button> -->
        <a-popconfirm
          title="你确定要关闭吗?"
          ok-text="确定"
          cancel-text="取消"
          @confirm="deleteData"
        >
          <a-button type="link" class="danger">删除</a-button>
        </a-popconfirm>
      </template>
    </a-table>
    <!--分页-->
    <BurtPagination :pagination="pager" @pageChange="_getChargeListDetail" />

    <div class="title-div">费用支付明细</div>
    <a-table
      :columns="payColumns"
      :data-source="payDataList"
      row-key="id"
      :scroll="{ x: true }"
      :pagination="false"
      class="payTable"
    >
      <template slot="paymentType" slot-scope="text">
        <a-button class="danger">{{ text | payStyleFilters }}</a-button>
      </template>
    </a-table>
  </div>
</template>

<script>
import BurtPagination from "@/components/CUSTOMER/pagation";
import { mapState } from "vuex"
export default {
  data() {
    const columns = [
      { title: "项目", dataIndex: "itemcatDesc", width: 180 },
      {
        title: "项目明细",
        dataIndex: "itemDesc",
        width: 180,
      },
      {
        title: "单价",
        dataIndex: "itemPrice",
        width: 120,
      },
      { title: "数量", dataIndex: "itemQty", width: 180 },
      { title: "单位", dataIndex: "itemUnit", width: 180 },
      { title: "金额", dataIndex: "chargeAmount", width: 180 },
      { title: "折扣(%)", dataIndex: "discountAmount", width: 180 },
      { title: "折后金额", dataIndex: "actualAmount", width: 180 },
      { title: "减免金额", dataIndex: "reduceAmount", width: 180 },
      { title: "实际金额", dataIndex: "paidAmount", width: 180 },

      { title: "免赔额", dataIndex: "deductible", width: 180 },
      { title: "自付额", dataIndex: "selfPaid", width: 180 },
      { title: "其他费用", dataIndex: "otherPaid", width: 180 },
      { title: "实际金额", dataIndex: "actualPaid", width: 180 },
      {
        title: "操作",
        key: "operation",
        width: "175px",
        fixed: "right",
        scopedSlots: { customRender: "operation" },
      },
    ];
    const payColumns = [
      { title: "免赔额", dataIndex: "deductible", width: 180 },
      { title: "自付额", dataIndex: "selfPaid", width: 180 },
      { title: "其他费用", dataIndex: "otherPaid", width: 180 },
      { title: "个人支付", dataIndex: "personalPaid", width: 180 },
      { title: "商保支付", dataIndex: "ciPaid", width: 180 },
      {
        title: "支付方式",
        dataIndex: "paymentType",
        width: 180,
        scopedSlots: { customRender: "paymentType" },
      },
    ];
    return {
      receiptNo: "",
      columns,
      payColumns,
      form: {},
      pageForm: {
        doctorCode: "",
        patientName: "",
        patientNo: "",
        paymentCode: "",
        payorId: 0,
        visitTimeEnd: "",
        visitTimeStart: "",
      },
      patientTypeOptions: [
        {
          name: "商保",
          code: 1,
        },
      ], //客户类型
      companyOptions: [], //保险公司
      doctorOptions: [], //就诊医生
      paymentOptions: [
        {
          name: "商保",
          code: 1,
        },
      ], //支付方式
      dataList: [],
      pager: {
        pageNum: 1,
        pageSize: 10,
      },
      payDataList: [],
      payPager: [
        {
          pageNum: 1,
          pageSize: 10,
        },
      ],
    };
  },
  components: {
    BurtPagination,
  },
  computed: {
    ...mapState({
      userInfo: (state) => state.common.userInfo
    })
  },
  filters: {
    payStyleFilters(value) {
      const styleMap = {
        1: "支付宝",
        2: "微信",
        3: "现金",
      };
      return styleMap[value];
    },
  },
  created() {
    const { receiptNo } = this.$route.query;
    this.receiptNo = receiptNo || "";

    this._getChargeListDetail();
    this._getCompanyOptions();//获取保险公司下拉选项
    this._getDoctorListNoPage();//获取看诊医生下拉选项
    this._getReceiptPaymentDetail(); //费用支付明细
  },
  methods: {
    // 获取列表数据
    _getChargeListDetail() {
      const data = {
        receiptNo: this.receiptNo,
        ...this.pager,
      };
      this.$apis.GETCHARGELISTDETAIL(data).then((res) => {
        console.log("11111111111获取table信息=", res);
        if (res.returnCode == "0000") {
          this.dataList = (res.content && res.content.list) || [];
          // this.pager.total = (res.content && res.content.total) || 0;
        } else {
          this.$message.error(res.returnMsg);
        }
      });
    },
    // 获取保险公司下拉选项
    _getCompanyOptions() {
      this.$apis.GETCOMPANYOPTIONS().then((res) => {
        console.log("获取保险公司下拉选项", res);
        if (res.returnCode == "0000") {
          this.companyOptions = res.content || [];
        } else {
          this.$message.error(res.returnMsg);
        }
      });
    },
    // 获取看诊医生下拉选项
    _getDoctorListNoPage(){
      this.$apis.GETDOCTORlISTNOPAGE({"providerId": this.userInfo.providerId}).then((res) => {
        if (res.returnCode === "0000") {
          this.doctorOptions = res.content || [];
        }else{
          this.$message.success(res.returnMsg);
        }
        
      });
    },
    // 获取费用支付明细
    _getReceiptPaymentDetail() {
      const params = {
        receiptNo: this.receiptNo,
        ...this.payPager,
      };
      this.$apis.GETRECEIPTPAYMENTDETAIL(params).then((res) => {
        console.log("获取费用支付明细", res);
        if (res.returnCode == "0000") {
          let content = res.content || {};
          this.payDataList = content;
        } else {
          this.$message.error(res.returnMsg);
        }
      });
    },

    // 选中就诊时间
    onSelectVisitTime(date, dateString) {
      console.log(date, dateString);
    },
    // 重置
    handlerReset() {
      this.form = {};
    },

    //设置行属性
    handlerRowClick(record) {
      const { receiptNo } = record;
      console.log("receiptNo=", receiptNo);
      return {
        style: {
          color: record.isEdit ? "#2B63FF" : "#252631",
        },
        on: {
          // 点击行
          click: () => {
            if (record.isEdit) {
              return true;
            }
            this.$router.push({
              name: "chargeQueryDetail",
              query: { receiptNo },
            });
          },
        },
      };
    },
    // 修改按钮
    changeDataStatus(record) {
      this.$set(record, "isEdit", true);
    },
    saveChange(record) {
      record.isEdit = undefined;
      record.isNew = undefined;
    },
    handlerSearch() {
      this.$refs.form.validate((valid) => {
        if (!valid) {
          return false;
        }
        this.pager.pageNum = 1;
        this.pageForm = this.$lodash.cloneDeep(this.form);
        this._getChargeListDetail();
      });
    },
    deleteData() {
      this.$message.success("删除成功");
    },
    // 新建账单信息
    addNewCharge() {
      // this.$router.push("/customer/edit");
    },
  },
};
</script>
<style lang="less" scoped>
.none-label {
  text-align: right;
  .ant-form-item-label {
    opacity: 0;
  }
}
.ant-btn .icon-class {
  .mg-r(10);
}
.title-div {
  line-height: 56px;
  color: #252631;
  font-weight: bold;
  border-bottom: 1px solid #eee;
}
.payTable{
  .ant-btn{
    border-color: #1890ff;
    color: #1890ff;
  }
}
</style>