<template>
  <!-- 销售订单页面 -->
  <div class="salePlan">
    <div class="top">
      <el-input placeholder="请输入内容" v-model="input" clearable> </el-input>
      <el-button type="primary" class="btn" @click="onclick">
        <i class="el-icon-search"></i>查询
      </el-button>
      <el-button type="primary" @click="refresh">
        <i class="el-icon-refresh"></i>刷新
      </el-button>
    </div>
    <el-tabs v-model="activeName" @tab-click="handleClick">
      <!-- 已审批 -->
       <el-tab-pane label="已审批" name="four">
        <dilTable v-bind.sync="option4" ref="table">
          <el-table-column fixed="right" label="操作" width="200">
            <template slot-scope="scope">
              <el-button
                @click="coproductSendClick(scope.row.saleOrderId)"
                type="text"
                size="small"
                >副产品派车</el-button
              >
              <el-button
                @click="detailclick(scope.row)"
                type="text"
                size="small"
                >物资详情</el-button
              >
            </template>
          </el-table-column>
          <!-- 物资详情抽屉 -->
        <el-table-column type="expand" width="1">
          <template slot-scope="props">
            <el-form label-position="center" inline class="demo-table-expand">
              <div v-if="false">{{ props }}</div>
              <div>
                <el-table :data="tableData" border >
                  <el-table-column
                    v-for="(item, i) in tableHead"
                    :key="i"
                    :prop="item.prop"
                    :label="item.label"
                    :width="item.width"
                  ></el-table-column>
                </el-table>
              </div>
            </el-form>
          </template>
        </el-table-column>

        </dilTable>
      </el-tab-pane>
      <!-- 未上报 -->
      <el-tab-pane label="未上报" name="first">
        <dilTable v-bind.sync="option" ref="table3">
          <el-table-column fixed="right" label="操作" align="center" width="200">
            <template slot-scope="scope">
              <el-button
                @click="uploadclick(scope.row.saleOrderId)"
                type="text"
                size="small"
                >上传</el-button
              >
              <el-button
                @click="click(scope.row.saleOrderId)"
                type="text"
                size="small"
                >修改</el-button
              >
              <el-button
                type="text"
                size="small"
                @click="deleteclick(scope.row.saleOrderId)"
                >删除</el-button
              >
              <el-button
                @click="detailclick3(scope.row)"
                type="text"
                size="small"
                >物资详情</el-button
              >
            </template>
          </el-table-column>
        <!-- 物资详情抽屉 -->
        <el-table-column type="expand" width="1">
          <template slot-scope="props">
            <el-form label-position="center" inline class="demo-table-expand">
              <div v-if="false">{{ props }}</div>
              <div>
                <el-table :data="tableData3" border >
                  <el-table-column
                    v-for="(item, i) in tableHead"
                    :key="i"
                    :prop="item.prop"
                    :label="item.label"
                    :width="item.width"
                  ></el-table-column>
                </el-table>
              </div>
            </el-form>
          </template>
        </el-table-column>

        </dilTable>
      </el-tab-pane>
      <!-- 已下发 -->
      <el-tab-pane label="已上报" name="second">
        <dilTable v-bind.sync="option2" ref="table2">
        <el-table-column fixed="right" label="操作" width="70">
            <template slot-scope="scope">
              <el-button
                @click="detailclick2(scope.row)"
                type="text"
                size="small"
                >物资详情</el-button
              >
            </template>
          </el-table-column>
        <!-- 物资详情抽屉 -->
        <el-table-column type="expand" width="1">
          <template slot-scope="props">
            <el-form label-position="center" inline class="demo-table-expand">
              <div v-if="false">{{ props }}</div>
              <div>
                <el-table :data="tableData2" border >
                  <el-table-column
                    v-for="(item, i) in tableHead"
                    :key="i"
                    :prop="item.prop"
                    :label="item.label"
                    :width="item.width"
                  ></el-table-column>
                </el-table>
              </div>
            </el-form>
          </template>
        </el-table-column>

        </dilTable>
      </el-tab-pane>
      
    </el-tabs>
  </div>
</template>
<script>
export default {
  name: "saleOrder",
  data() {
    return {
      activeName: "four",
      input: "",
      option: {
        // 表格请求数据的地址
        requestUrl:
          "/api/v1/ams/getSaleOrderInfoes?apiId=408",
      },
      option2: {
        // 表格请求数据的地址
        requestUrl:
          "/api/v1/ams/getSaleOrderReportedes?apiId=408",
      },
      option3: {
        // 表格请求数据的地址
        requestUrl:
          "/api/v1/ams/getAmsSaleOrderApprovedes?apiId=409",
      },
      option4: {
        // 表格请求数据的地址
        requestUrl:
          "/api/v1/ams/getSaleOrderListBySaleCompanyes?apiId=409",
      },
      
      //记录旧的row对象 (销售公司已审批)
      oldRow: "",
      //记录上一个展开的点击次数，单数为展开状态，复数为闭合状态 (销售公司已审批)
      oldRowCount: 1,
      //记录旧的row对象 (财务已审批)
      oldRow1: "",
      //记录上一个展开的点击次数，单数为展开状态，复数为闭合状态 (财务已审批)
      oldRowCount1: 1,
      //记录旧的row对象 (已上报)
      oldRow2: "",
      //记录上一个展开的点击次数，单数为展开状态，复数为闭合状态 (已上报)
      oldRowCount2: 1,
      //记录旧的row对象 (未上报)
      oldRow3: "",
      //记录上一个展开的点击次数，单数为展开状态，复数为闭合状态 (未上报)
      oldRowCount3: 1,
      tableHead: [
        {
          prop: "materialName",
          label: "物资名称",
          width: 150,
        },
        {
          prop: "specificationModel",
          label: "规格型号",
          width: 150,
        },
        {
          prop: "materialNumber",
          label: "物资件数",
          width: 100,
        },
        {
          prop: "materialWeight",
          label: "物资重量",
          width: 100,
        },
      ],
      //(销售公司已审批)
      tableData: [],
      //(财务已审批)
      tableData1: [],
      //(已上报)
      tableData2: [],
      //(未上报)
      tableData3: [],
    };
  },
  methods: {
    refresh(){
      this.$router.go(0);
    },
    handleClick(tab, event) {
      console.log(tab, event);
    },
    onclick() {
      if(this.activeName == "first"){
        this.option.requestUrl = "/api/v1/ams/getSaleOrderInfoes?apiId=408&con="+this.input;
      }else if(this.activeName == "second"){
        this.option2.requestUrl = "/api/v1/ams/getSaleOrderReportedes?apiId=408&con="+this.input;      
      }else if(this.activeName == "four"){
        this.option4.requestUrl = "/api/v1/ams/getSaleOrderListBySaleCompanyes?apiId=409&con="+this.input;      
      }
    },
    seeclick(saleOrderId) {
      this.$router.push("/saleOrderDetail/" + saleOrderId);
    },
    btnclick() {
      this.$router.push("/addSaleOrder");
    },
    click(saleOrderId) {
      this.$router.push("/editSaleOrder/" + saleOrderId);
    },
    coproductSendClick(saleOrderId){
      this.$router.push("/addSaleOrderCoproductSend/" + saleOrderId);
    },
    // -------查看物资详情 (已审批)
    detailclick(row) {
      // 记录重复点击次数
      if (this.oldRow === row) {
        this.oldRowCount += 1;
      }
      // 切换当前详情表
      this.$refs.table.toggleRowExpansion(row);
      // 打开前关闭上一个详情表
      if (this.oldRow != "") {
        if (this.oldRow != row) {
          if (this.oldRowCount % 2 === 1) {
            this.$refs.table.toggleRowExpansion(this.oldRow);
          } else {
            this.oldRowCount = 1;
          }
        } else {
          this.oldRow = null;
          return;
        }
      }
      // 重置上一个点击对象
      this.oldRow = row;
      // 根据销售订单id查询物资信息
      this.axios
        .post("/api/v1/ams/getSaleMaterialList?saleOrderId=" +row.saleOrderId)
        .then((res) => {
          this.tableData = res.data.data;
        });
    },

    // -------查看物资详情 (财务已审批)
    detailclick1(row) {
      // 记录重复点击次数
      if (this.oldRow1 === row) {
        this.oldRowCount1 += 1;
      }
      // 切换当前详情表
      this.$refs.table1.toggleRowExpansion(row);
      // 打开前关闭上一个详情表
      if (this.oldRow1 != "") {
        if (this.oldRow1 != row) {
          if (this.oldRowCount1 % 2 === 1) {
            this.$refs.table1.toggleRowExpansion(this.oldRow1);
          } else {
            this.oldRowCount1 = 1;
          }
        } else {
          this.oldRow1 = null;
          return;
        }
      }
      // 重置上一个点击对象
      this.oldRow1 = row;
      // 根据销售订单id查询物资信息
      this.axios
        .post("/api/v1/ams/getSaleMaterialList?saleOrderId=" +row.saleOrderId)
        .then((res) => {
          this.tableData1 = res.data.data;
        });
    },

    // -------查看物资详情 (已上报)
    detailclick2(row) {
      // 记录重复点击次数
      if (this.oldRow2 === row) {
        this.oldRowCount2 += 1;
      }
      // 切换当前详情表
      this.$refs.table2.toggleRowExpansion(row);
      // 打开前关闭上一个详情表
      if (this.oldRow2 != "") {
        if (this.oldRow2 != row) {
          if (this.oldRowCount2 % 2 === 1) {
            this.$refs.table2.toggleRowExpansion(this.oldRow2);
          } else {
            this.oldRowCount2 = 1;
          }
        } else {
          this.oldRow2 = null;
          return;
        }
      }
      // 重置上一个点击对象
      this.oldRow2 = row;
      // 根据销售订单id查询物资信息
      this.axios
        .post("/api/v1/ams/getSaleMaterialList?saleOrderId=" +row.saleOrderId)
        .then((res) => {
          this.tableData2 = res.data.data;
        });
    },

    // -------查看物资详情 (未上报)
    detailclick3(row) {
      // 记录重复点击次数
      if (this.oldRow3 === row) {
        this.oldRowCount3 += 1;
      }
      // 切换当前详情表
      this.$refs.table3.toggleRowExpansion(row);
      // 打开前关闭上一个详情表
      if (this.oldRow3 != "") {
        if (this.oldRow3 != row) {
          if (this.oldRowCount3 % 2 === 1) {
            this.$refs.table3.toggleRowExpansion(this.oldRow3);
          } else {
            this.oldRowCount3 = 1;
          }
        } else {
          this.oldRow3 = null;
          return;
        }
      }
      // 重置上一个点击对象
      this.oldRow3 = row;
      // 根据销售订单id查询物资信息
      this.axios
        .post("/api/v1/ams/getSaleMaterialList?saleOrderId=" +row.saleOrderId)
        .then((res) => {
          this.tableData3 = res.data.data;
        });
    },

    // 上传
    uploadclick(saleOrderId) {
      this.$confirm("是否上传", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        center: true,
      })
        .then(() => {
          this.$message({
            type: "success",
            message: "上传成功!",
          });
          this.axios
            .post(
              "/api/v1/ams/uploadSaleOrder?saleOrderId=" +
                saleOrderId
            )
            .then(() => {
              this.$router.go(0);
            });
        })
        .catch(() => {
          this.$message({
            type: "info",
            message: "取消上传!",
          });
        });
    },
    //删除
    deleteclick(scope) {
      let saleOrderId = scope;
      this.$confirm("是否删除", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        center: true,
      })
        .then(() => {
          this.$message({
            type: "success",
            message: "删除成功!",
          });
          this.axios
            .post(
              "/api/v1/ams/deleteAmsSaleOrderBySaleOrderId?saleOrderId=" +
                saleOrderId
            )
            .then(() => {
              this.$router.go(0);
            });
        })
        .catch(() => {
          this.$message({
            type: "info",
            message: "取消删除!",
          });
        });
    },
  },
};
</script>
<style lang='scss' scoped>
.salePlan {
  .top {
    padding: 1.25rem 0.375rem;
    .el-input {
      width: 20%;
      margin-right: 1.25rem;
    }
  }
}
</style>