<template>
    <div>
        <a-card :bordered="false" class="top" style="margin-bottom:1%;margin-top:1%">
      
          <!-- 查询区域 -->
          <div class="table-page-search-wrapper">
            <a-form layout="inline" @keyup.enter.native="searchQuery">
              <a-row :gutter="24">
                <a-col :md="4" :sm="24">
                  <a-form-item label="料品编码">
                    <a-input placeholder="请输入" v-model="queryParam.inventoryCode" ></a-input>
                  </a-form-item>
                </a-col>
                <a-col  :md="4" :sm="24">
                  <a-form-item label="料品名称">
                    <a-input placeholder="请输入" v-model="queryParam.inventoryName"></a-input>
                  </a-form-item>
                </a-col>
                <a-col :md="4" :sm="24">
                    <a-form-item label="料品属性">
                        <a-input placeholder="请输入" v-model="queryParam.attribute" ></a-input>
                    </a-form-item>
                  </a-col>
                  <a-col :md="4" :sm="24">
                    <a-form-item label="规格">
                      <a-input placeholder="请输入" v-model="queryParam.specs"></a-input>
                    </a-form-item>
                  </a-col>
                <template v-if="toggleSearchStatus"> 
                  <a-col :md="4" :sm="24">
                    <a-form-item label="型号">
                      <a-input placeholder="请输入" v-model="queryParam.model" ></a-input>
                    </a-form-item>
                  </a-col>
                  <a-col :md="4" :sm="24">
                    <a-form-item label="安全库存">
                      <a-input placeholder="请输入" v-model="queryParam.safetyStock"></a-input>
                    </a-form-item>
                  </a-col>
                </template>
                <a-col  :md="4" :sm="24">
                  <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
                    <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
                    <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
                    <a @click="handleToggleSearch" style="margin-left: 8px">
                      {{ toggleSearchStatus ? '收起' : '展开' }}
                      <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
                    </a>
                  </span>
                </a-col>
      
              </a-row>
            </a-form>
          </div>
        </a-card>
        
        <a-card class="middle" style="margin-bottom:1%">
          <!-- 操作按钮区域 -->
          <div class="table-operator">
            <a-button  type="danger" size="small" @click='addList'>新增</a-button>
            <a-button  size="small" @click='editList'>修改</a-button>
            <a-button size="small" @click="delectList">删除</a-button>
            <a-button  size="small" @click="detailList">详情</a-button>
            <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl">
               <a-button  size="small">导入</a-button>
            </a-upload>
            <a-button size="small" @click="exportList('安全库存列表')">导出</a-button>
          </div>
      
          <!-- table区域-begin -->
          <div>  
            <a-table
              ref="table"
              size="middle"
              bordered
              rowKey="id"
              :columns="columns"
              :dataSource="dataSource"
              :pagination="ipagination"
              :scroll="{ x: 1500, y: 300 }"
              :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
              @change="handleTableChange"
              :customRow ="clickRow"
              >
      
            </a-table>
          </div>
          <!-- table区域-end -->
      
        </a-card>
        <safetyStockListAdd ref="safetyStockListAdd" @ok='getTableList'></safetyStockListAdd>
        <safetyStockListDetail ref="safetyStockListDetail"></safetyStockListDetail>
    </div>
    </template>
      
      <script>
        import alertModal from '../../../plugins/modal'
        import { JeecgListMixin } from '@/mixins/JeecgListMixin'
        import moment from 'dayjs'
        import { httpAction ,getAction,postAction,putAction,deleteAction,downFile} from '@/api/manage'
        import {queryDepartTreeList} from '@/api/api'
        import safetyStockListAdd from './modules/safetyStockListAdd'
        import safetyStockListDetail from './modules/safetyStockListDetail'
        //---------workflow  by fhf end -------------
        export default {
          name: "SafetyStockList",
          mixins: [JeecgListMixin],
          components: {
            safetyStockListAdd,
            safetyStockListDetail,
          },
          data () {
            return {
              description: '安全库存列表页面',
              queryParam:{},
              selectedRowKeys:[],
              selectedRow:[],
              documentData:[],
              toggleSearchStatus:false,
              dataSource:[{}],
              ipagination:{
                current: 1,
                pageSize: 10,
                pageSizeOptions: ['10', '20', '30'],
                showTotal: (total, range) => {
                    return range[0] + '-' + range[1] + ' 共' + total + '条'
                },
                showQuickJumper: true,
                showSizeChanger: true,
                total: 0
              },
              // 表头
              columns: [
                {
                  title: '#',
                  dataIndex: '',
                  key: 'rowIndex',
                  width: 60,
                  align: "center",
                  customRender:function (t, r, index) {
                    return parseInt(index)+1;
                  }
                },
                {
                  title: '料品编码',
                  align:"center",
                  dataIndex: 'inventoryCode',
                  ellipsis: true,
    
                },
                {
                  title: '料品名称',
                  align:"center",
                  dataIndex: 'inventoryName',
                  ellipsis: true,
    
                },
                {
                  title: '料品属性',
                  align:"center",
                  dataIndex: 'attribute',
                  ellipsis: true,
    
                },
                {
                  title: '规格',
                  align:"center",
                  dataIndex: 'specs',
                  ellipsis: true,
    
                },
                {
                  title: '型号',
                  align:"center",
                  dataIndex: 'model',
                  ellipsis: true,
    
                },
                {
                  title: '安全库存',
                  align:"center",
                  dataIndex: 'safetyStock',
                  ellipsis: true,
    
                },
              ],
              url: {
                    list: "/production/safetyStock/list",
              },
              importExcelUrl:'/production/safetyStock/importExcel',
                 // ---------workflow  by fhf start -------------
              serviceName: 'assetAllocationService',
              // ---------workflow  by fhf end -------------
              }
            },      
           created () {
            this.getTableList()
           },
           computed: {
              importExcelUrl: function(){
                  return `${window._CONFIG['domianURL']}/${this.importExcelUrl}`;
              },
           },
          methods: {
            //获取数据
            getTableList(){
                alertModal.loading("执行中，请稍后！")
                getAction('/production/safetyStock/list',this.queryParam).then(res=>{
                    alertModal.closeLoading();
                    if(res.success){
                       this.dataSource =res.result.records
                       this.ipagination = {
                            total: res.result.total,
                            current: res.result.current,
                            pageSize: res.result.size
                        }
                    }else{
                      this.$message.error(res.message);
                    }
                })
            },
            onSearch(){
            //   this.$refs.materialProcurementSearch.visible = true
            },
            //导出
            exportList(fileName){
              this.$confirm({
                  title: '确认导出',
                  content: '是否导出数据?',
                  onOk:  ()=> {
                    alertModal.loading("执行中，请稍后！")
                    downFile('/production/safetyStock/exportXls', this.queryParam).then(data => {
                      alertModal.closeLoading();
                      if (!data) {
                        this.$message.warning('文件下载失败')
                        return
                      }
                      if (typeof window.navigator.msSaveBlob !== 'undefined') {
                        window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), fileName + '.xlsx')
                      } else {
                        let url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' }))
                        let link = document.createElement('a')
                        link.style.display = 'none'
                        link.href = url
                        link.setAttribute('download', fileName + '.xlsx')
                        document.body.appendChild(link)
                        link.click()
                        document.body.removeChild(link) // 下载完成移除元素
                        window.URL.revokeObjectURL(url) // 释放掉blob对象
                      }
                    })
                  }
                })
            },
            //重置
            searchReset(){
                this.queryParam={}
                this.getTableList()
            },
            //查询
            searchQuery(){
              this.queryParam.pageNo = '1'
                this.getTableList()
            },
            //新增
            addList(){
                this.$refs.safetyStockListAdd.visible=true
                this.$refs.safetyStockListAdd.defaultMethod='add'
            },
            //编辑
            editList(){
              if(this.selectedRowKeys.length==0){
                this.$message.warning('请勾选数据！')
              }else if(this.selectedRowKeys.length>1){
                this.$message.warning('只可勾选一条数据')
              }else{
                this.$refs.safetyStockListAdd.visible=true
                this.$refs.safetyStockListAdd.defaultMethod='edit'
                this.$refs.safetyStockListAdd.getEditData(this.selectedRowKeys[0])
              }
            },
            //删除
            delectList(){
              if(this.selectedRowKeys.length==0){
                this.$message.warning('请勾选数据！')
              }else if(this.selectedRowKeys.length>1){
                this.$confirm({
                  title: '确认删除',
                  content: '是否删除选中数据?',
                  onOk:  ()=> {
                    var ids =  this.selectedRowKeys.toString()
                    var that = this
                    alertModal.loading("执行中，请稍后！")
                    deleteAction('/production/safetyStock/deleteBatch', {ids: ids}).then((res) => {
                      alertModal.closeLoading();
                      if (res.success) {
                        this.$message.success('删除成功！');
                        this.getTableList()
                      } else {
                        this.$message.error(res.message);
                      }
                    });
                  }
                })
              }else{
                this.$confirm({
                  title: '确认删除',
                  content: '是否删除选中数据?',
                  onOk:  ()=> {
                    alertModal.loading("执行中，请稍后！")
                    deleteAction('/production/safetyStock/delete', {id: this.selectedRowKeys[0]}).then((res) => {
                      alertModal.closeLoading();
                      if (res.success) {
                        this.$message.success('删除成功！');
                        this.getTableList()
                      } else {
                        this.$message.error(res.message);
                      }
                    });
                  }
                })
              }
            },
            //勾选
            onSelectChange(selectedRowKeys, selectionRows) {
              this.selectedRowKeys = selectedRowKeys;
              this.selectedRow = selectionRows;
            },
            handleTableChange(pagination, filters, sorter) {
                // console.log('当前页信息>>>>',pagination)
                this.queryParam.pageNo = pagination.current
                this.queryParam.pageSize = pagination.pageSize
                this.getTableList()
            },
            detailList(){
              if(this.selectedRowKeys.length==0){
                this.$message.warning('请选择数据！')
              }else if(this.selectedRowKeys.length>1){
                this.$message.warning('请选择一条数据！')
              }else{
                this.$refs.safetyStockListDetail.visible=true
                this.$refs.safetyStockListDetail.getEditData(this.selectedRowKeys[0])
              }
            },
            //双击
            clickRow(record, index){
              return {
                on: {
                  dblclick: () => {
                    this.$refs.safetyStockListDetail.visible=true
                    this.$refs.safetyStockListDetail.getEditData(record.id)
                  },
                } 
              }  
            }
        }
    }
      </script>
      <style scoped lang="less">
        /* @import '~@assets/less/common.less' */
        /deep/.ant-input{
            height:29px;
        }
        /deep/.ant-select-selection--single {
            height: 29px;
            
        }
        /deep/.ant-select{
            font-size: 12px;
        }
        /deep/.ant-form label{
            font-size: 12px;
        }
        /deep/.table-page-search-wrapper .ant-form-inline .ant-form-item{
            margin-bottom:9px
        }
        /deep/.top>.ant-card-body{
            padding-bottom:0px;
            padding-top: 12px;
        }
        /deep/.ant-btn{
            height:28px
        }
        /deep/.ant-table-thead > tr > th{
            padding: 6px 8px !important;
        }
        /deep/ .ant-table-tbody > tr > td{
            padding: 6px 8px !important;
        }
        /deep/ .ant-table{
            font-size:12px
        }
        /deep/.ant-table-fixed-header .ant-table-scroll .ant-table-header{
            width: calc(100% + 9px);//减去滚动条的宽度
        }
        /deep/.middle>.ant-card-body{
            padding-bottom:14px;
            padding-top:14px;
        }
        /deep/.ant-select-sm .ant-select-selection__rendered{
            line-height: 27px;
        }
      </style>