<template>
  <div>
    <basic-container>
      <avue-crud
        :option="option"
        :table-loading="loading"
        :data="data"
        ref="crud"
        v-model="form"
        :page.sync="page"
        :permission="permissionList"
        @row-del="rowDel"
        @search-change="searchChange"
        @search-reset="searchReset"
        @selection-change="selectionChange"
        @current-change="currentChange"
        @size-change="sizeChange"
        @refresh-change="refreshChange"
        @on-load="onLoad"
      >
        <template slot-scope="scope" slot="menu">
          <el-button
            v-if="scope.row.status == '未归还'"
            type="text"
            size="small"
            @click.stop="handleReturn(scope.row)"
            >归还
          </el-button>
          <el-button
            type="text"
            size="small"
            @click.stop="handleScrap(scope.row)"
            v-if="scope.row.status == '未归还'"
            >报废
          </el-button>
        </template>
      </avue-crud>
    </basic-container>
    <!-- 归还 -->
    <el-dialog
      title="归还"
      :visible.sync="dialogReturnVisible"
      width="30%"
      :close-on-click-modal="false"
      :append-to-body="true"
    >
      <el-form ref="form" :model="returnForm" label-width="100px">
        <el-form-item label="归还数量">
          <el-input-number
            v-model="returnForm.count"
            :min="1"
          ></el-input-number>
        </el-form-item>
        <el-form-item label="归还理由">
          <el-input
            v-model="returnForm.rmark"
            type="textarea"
            :rows="3"
            placeholder="请输入内容"
          ></el-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogReturnVisible = false">取 消</el-button>
        <el-button type="primary" @click="returnSave()">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import { mapGetters } from "vuex";
export default {
  data() {
    return {
      form: {},
      selectionList: [],
      query: {},
      loading: true,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      option: {
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShow: true,
        searchMenuSpan: 6,
        border: true,
        index: true,
        selection: true,
        viewBtn: true,
        dialogClickModal: false,
        menu: true,
        selection: false,
        printBtn: false,
        refreshBtn: false,
        gridBtn: false,
        gridBackgroundImage: false,
        gridSpan: false,
        filterBtn: false,
        columnBtn: false,
        column: [
          {
            label: "编号",
            prop: "no",
          },
          {
            label: "部门",
            prop: "str8",
            search: true,
            type: "select",
            dicData: [
              {
                label: "部门一",
                value: 0,
              },
              {
                label: "部门二",
                value: 1,
              },
            ],
          },
          {
            label: "名称",
            prop: "name",
            search: true,
          },
          {
            label: "规格型号",
            prop: "xh",
          },
          {
            label: "类别",
            prop: "lb",
          },
          {
            label: "计量单位",
            prop: "unit",
          },
          {
            label: "数量",
            prop: "number",
          },
          {
            label: "单价",
            prop: "dj",
          },
          {
            label: "金额",
            prop: "pice",
          },
          {
            label: "状态",
            prop: "status",
          },
          {
            label: "归还时间",
            prop: "time",
          },
        ],
      },
      data: [],
      dialogReturnVisible: false,
      returnInfo: {},
      returnForm: {
        count: 0,
        rmark: "",
      },
      dialogScrapVisible: false,
      scrapInfo: {},
      scrapForm: {
        count: 0,
        rmark: "",
      },
      dialogLogVisible: false,
      activeName: "first",
      tableData: [],

      ckTable: [
        { str1: "3", str2: "2025-04-09", str3: "部门一" },
        { str1: "37", str2: "2025-04-03", str3: "部门一" },
      ],
      rkTable: [
        { str1: "5", str2: "2025-03-19", str3: "部门二" },
        { str1: "12", str2: "2025-03-19", str3: "部门二" },
      ],
      bfTable: [
        { str1: "9", str2: "2025-03-19", str3: "部门三" },
        { str1: "19", str2: "2025-03-19", str3: "部门三" },
      ],
    };
  },
  computed: {
    ...mapGetters(["userInfo", "permission"]),
    permissionList() {
      return {
        addBtn: false,
        viewBtn: false,
        delBtn: false,
        editBtn: false,
      };
    },
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
  },
  mounted() {
    this.tableData = this.ckTable;
  },
  methods: {
    handleLog() {
      this.dialogLogVisible = true;
    },
    handleTabClick(tab, event) {
      console.log(tab, event);
      if (this.activeName == "first") {
        this.tableData = this.ckTable;
      }
      if (this.activeName == "second") {
        this.tableData = this.rkTable;
      }
      if (this.activeName == "third") {
        this.tableData = this.bfTable;
      }
    },

    handlePreview(name) {
      this.$router.push({
        path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.design.reportUrl}/preview?_u=blade-${name}`,
      });
    },
    handleDesign(name) {
      this.$router.push({
        path: `/myiframe/urlPath?name=designer-${name}&src=${this.website.design.reportUrl}/designer?_u=blade-${name}`,
      });
    },

    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
    },

    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      this.data.push(
        {
          no: "00100001",
          name: "物品1",
          xh: "1",
          lb: "耐用品",
          unit: "11",
          number: "1",
          dj: "11",
          pice: "11",
          status: "未归还",
          str8: "部门一",
        },
        {
          no: "00100002",
          name: "物品2",
          xh: "2",
          lb: "耐用品",
          unit: "22",
          number: "1",
          dj: "11",
          pice: "22",
          status: "已归还",
          time: "2024-01-04",
          str8: "部门二",
        }
      );
      this.loading = false;
    },
    // 归还
    handleReturn(row) {
      this.dialogReturnVisible = true;
      this.returnInfo = JSON.parse(JSON.stringify(row));
    },
    returnSave() {
      this.dialogReturnVisible = false;
      this.$message({
        type: "success",
        message: "归还成功",
      });
    },
    // 报废
    handleScrap(row) {
      this.dialogScrapVisible = true;
      this.scrapInfo = JSON.parse(JSON.stringify(row));
    },
    scrapSave() {
      this.dialogScrapVisible = false;
      this.$message({
        type: "success",
        message: "报废成功",
      });
    },
  },
};
</script>
