<template>
  <div>
    <div v-if="pageDisplay" class="app-container">
      <formComponent
        v-if="searchWhether"
        :formOption="formOption"
        :dataList="dataList"
        :inDex="inDex"
        ref="avatar"
        @submitForm="submitForm"
        @returnToForm="returnToForm"
      />
      <listComponent
        :tableData="tableData"
        @selectionbox="selectionbox"
        @see="viewMethod"
        @modify="modification"
        @deletion="deletion"
        @buttonList="buttonList"
        @showSearch="showSearch"
        @feedback="feedback"
        @getList="getList"
        :hasPermi="hasPermi"
        :isItHidden="isItHidden"
        :customButton="customButton"
        :listStyle="listStyle"
        :queryList="queryList"
        :setRowList="setRowList"
      />
<!--      <el-pagination-->
<!--        style="float: right;margin-top: 10px"-->
<!--        @size-change="handleSizeChange"-->
<!--        @current-change="handleCurrentChange"-->
<!--        :page-sizes="[10, 20, 30, 50]"-->
<!--        :page-size="this.formDataList.pageSize"-->
<!--        background-->
<!--        layout="sizes, prev, pager, next"-->
<!--        :total="total">-->
<!--      </el-pagination>-->
      <div style="float: right">
      <pagination
        v-show="total > 0"
        :total="total"
        :page.sync="formDataList.pageNum"
        :limit.sync="formDataList.pageSize"
        :page-sizes="[10,100,200,500,1000]"
        @pagination="feedback('搜索')"
      />
      </div>
    </div>
    <div v-else class="app-container">
      <div style="display: flex;margin-bottom: 10px">
        <el-breadcrumb>
          <el-breadcrumb-item>
            <el-button
              size="mini"
              type="danger" plain
              @click="backToList"
              icon="el-icon-arrow-left">
              返回列表</el-button>
          </el-breadcrumb-item>
<!--          <el-breadcrumb-item style="font-weight: 700">-->
<!--            <el-button-group>-->
<!--              <el-button type="primary" size="mini" icon="el-icon-arrow-left" :disabled="forward" @click="sequence(true)">向前</el-button>-->
<!--              <el-button type="primary" size="mini" :disabled="backward" @click="sequence(true)">向后<i class="el-icon-arrow-right el-icon&#45;&#45;right"></i></el-button>-->
<!--            </el-button-group>-->
<!--          </el-breadcrumb-item>-->
        </el-breadcrumb>
      </div>
      <h1 style="text-align: center;margin-top: -42px">采购申请单</h1>
      <formComponent
        v-if="searchWhether"
        :formOption="contentOption"
        :dataList="dataList"
        :inDex="inDex"
        ref="avatar"
        @writeOff="writeOff"
        @submitForm="submitForm"
        @returnToForm="returnToForm"
        @submitAndSave="submitAndSave"
        @selectTrigger="selectTrigger"
      />
      <listComponent
        ref="listComponent"
        :tableData="contentList"
        @selectionbox="selectionbox"
        @see="viewMethod"
        @modify="modification"
        @deletion="deletion"
        @buttonList="buttonList"
        @showSearch="showSearch"
        @feedback="feedback"
        @getList="getList"
        @deletRows="deletRows"
        @totalAmount="totalAmount"
        @change="change"
        :hasPermi="hasPermi"
        :tatolLabel="tatolLabel"
        :isItHidden="isItHidden"
        :customButton="contentButton"
        :listStyle="contentStyle"
        :queryList="purchaseList"
        :setRowList="setRowList"
        :listData="listData"
      />
    </div>
    <add-or-update
      v-if="addOrUpdateVisible"
      ref="addOrUpdate"
      @refreshDataList="getDataList"
    ></add-or-update>
    <approval-comments
      v-if="addOrUpdateVisib"
      ref="ApprovalComments"
      @refreshDataList="returnData"
    ></approval-comments>
    <el-dialog
      title="打印采购"
      :visible.sync="dialogVisible"
      :fullscreen="true"
      style="padding: 0;margin:0"
      width="70%">
      <div ref="print">
        <table class="table table-striped table-bordered" align="center" valign="center">
          <tr>
            <td style="font-size: 24px;font-weight:bold" class="column" colspan="6">采购表</td>
          </tr>
          <tr>
            <td class="column" style="width: 10%;">项目</td>
            <td class="column" style="width: 25%;">{{formList.projectName}}</td>
            <td class="column" style="width: 10%;">供应商</td>
            <td class="column" style="width: 25%;">{{ formList.corpName }}</td>
            <td class="column" style="width: 25%;" colspan="2">日期：{{formList.fBsdate}}</td>
          </tr>
        </table>
        <table class="table table-striped table-bordered" align="center" valign="center">
          <tr>
            <td class="column" style="width: 15%;border-top: none;">品名</td>
            <td class="column" style="width: 15%;border-top: none;">单价</td>
            <td class="column" style="width: 15%;border-top: none;">采购计划</td>
            <td class="column" style="width: 15%;border-top: none;">实际重量</td>
            <td class="column" style="width: 15%;border-top: none;">金额</td>
            <td class="column" style="width: 20%;border-top: none;">备注</td>
          </tr>
          <tr v-for="(item,index) in contentList" :key="index">
            <td class="column">{{item.feeName}}</td>
            <td class="column">{{item.fUnitprice?item.fUnitprice.toFixed(2):item.fUnitprice}}</td>
            <td class="column">{{item.fPurchase}}({{item.fFeeunitName}})</td>
            <td class="column">{{item.fQty}}({{item.fFeeunitName}})</td>
            <td class="column">{{item.fAmount?item.fAmount.toFixed(2):item.fAmount}}</td>
            <td class="column">{{item.remark}}</td>
          </tr>
        </table>
        <table class="table table-striped table-bordered" align="center" valign="center">
          <tr>
            <td colspan="6" style="border-top: none;" class="column"></td>
          </tr>
          <tr>
            <td class="column" style="width: 25%;">采购人签字</td>
            <td class="column" style="width: 25%;">厨房主管签字</td>
            <td class="column" style="width: 25%;">验收人签字</td>
            <td class="column" style="width: 25%;">主管签字</td>
          </tr>
          <tr>
            <td class="column" style="width: 25%;height: 37px;"></td>
            <td class="column" style="width: 25%;"></td>
            <td class="column" style="width: 25%;"></td>
            <td class="column" style="width: 25%;"></td>
          </tr>
          <tr>
            <td colspan="4" style="border-top: none;font-weight:bold;text-align: right;padding-right: 10%;font-size: 16px;" class="column">{{ formList.fsbuName }}</td>
          </tr>
        </table>
      </div>
      <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="Printing">打印</el-button>
  </span>
    </el-dialog>
  </div>
</template>
<script>
import { select } from '@/api/system/set'
import {
  listQuery,
  submit,
  viewSingle,
  deleteQuery,
  productName,
  queryItem,
  company,
  warehouse,
  listDelete,
  tableDeleteQuery,
  confirmDeletion,
  pleaseCheck,
  copyNew,
  revoke,
  withdrawBy,
  getName,
  queryUserVal
} from '@/api/purchaseRequest/index'
import Cookies from 'js-cookie'
import Global from '@/layout/components/global'
export default {
  name: 'index',
  data() {
    return {
      before:'',
      lander:'',
      operator:'',
      forward:false,
      backward:false,
      addOrUpdateVisible: false,
      addOrUpdateVisib: false,
      total:0,
      selection:[],
      formDataList:{
        fBilltype: 'SQ',
        pageSize:10,
        pageNum:1,
      },
      formList:{},
      tatolLabel:['金额'],
      dialogVisible: false,
      listData: {
        fFeeid: [],
        fFeeunitid: [],
        fStltypeid: []
      },
      hasPermi:{
        lookup:['anpin:stockControl:query'],
        disappear:['anpin:stockControl:remove']
      },
      setTimeout:'',
      searchWhether: true,
      pageDisplay: true,
      dataList: {
        fGoodsid: [],
        fSbu: [],
        fWarehouseid: [],
        fCorpid: [],
        fFeeid:[]
      },
      contentList: [],
      inDex: 4,
      tableData: [],
      tableList: [],
      isItHidden: true,
      listStyle: [
        {
          surface: '1',
          label: 'serialNumber',
          name: '序号',
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '2',
          label: 'fBillno',
          name: '系统编号',
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '3',
          label: 'projectName',
          name: '项目名称',
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '4',
          label: 'corpName',
          name: '客户名称',
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '5',
          label: 'fMoney',
          name: '金额',
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '5',
          label: 'fBsdate',
          name: '提货日期',
          checked: 0,
          width: 100,
          onabort: ''
        },{
          surface: '5',
          label: 'fsbuName',
          name: '开票公司',
          checked: 0,
          width: 100,
          onabort: ''
        },
        {
          surface: '6',
          label: 'createTime',
          name: '制单日期',
          checked: 0,
          width: 100,
          onabort: ''
        },{
          surface: '7',
          label: 'createBy',
          name: '申请人',
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '8',
          label: 'fReviewDate',
          name: '审核日期',
          checked: 0,
          width: 100,
          onabort: ''
        },{
          surface: '9',
          label: 'remark',
          name: '备注',
          checked: 0,
          width: 100,
          onabort: ''
        },{
          surface: '10',
          label: 'fBillstatusName',
          name: '状态',
          checked: 0,
          width: 100,
          onabort: ''
        },{
          surface: '11',
          label: 'operation',
          name: '操作',
          checked: 0,
          width: 160,
          fixed:'right',
          operation: '1',
          onabort: ''
        }
      ],
      contentStyle: [
        {
          surface: '1',
          label: 'serialNumber',
          name: '序号',
          checked: 0,
          width: 100,
          disabled: false,
          onabort: ''
        }, {
          surface: '2',
          label: 'fFeeid',
          name: '品名',
          checked: 0,
          width: 100,
          onabort: '',
          disabled: false,
          changeable: 1
        }, {
          surface: '3',
          label: 'fCurrencyName',
          name: '规格',
          checked: 0,
          width: 100,
          onabort: '',
          disabled: false,
        },{
          surface: '4',
          label: 'fUnitprice',
          name: '单价',
          checked: 0,
          width: 100,
          disabled: false,
          onabort: 'this.value=this.value.replace(/[^\\-?\\d.]/g,"").replace(/^(\\-)*(\\d+)\\.(\\d\\d).*$/, "$1$2.$3")',
          changeable: 2
        }, {
          surface: '5',
          label: 'fPurchase',
          name: '采购数量',
          checked: 0,
          width: 100,
          onabort: '',
          disabled: false,
          changeable: 2
        }, {
          surface: '6',
          label: 'fQty',
          name: '实际数量',
          checked: 0,
          width: 100,
          onabort: 'this.value=this.value.replace(/[^\\-?\\d.]/g,"").replace(/^(\\-)*(\\d+)\\.(\\d\\d).*$/, "$1$2.$3")',
          disabled: false,
          changeable: 2
        }, {
          surface: '7',
          label: 'fFeeunitid',
          name: '计量单位',
          checked: 0,
          width: 100,
          onabort: '',
          disabled: false,
          changeable: 1
        }, {
          surface: '8',
          label: 'fAmount',
          name: '金额',
          checked: 0,
          width: 100,
          onabort: 'this.value=this.value.replace(/[^\\-?\\d.]/g,"").replace(/^(\\-)*(\\d+)\\.(\\d\\d).*$/, "$1$2.$3")',
          disabled: false,
          changeable: 2
        }, {
          surface: '9',
          label: 'fStltypeid',
          name: '付费方式',
          checked: 0,
          width: 100,
          onabort: '',
          disabled: false,
          changeable: 1
        }, {
          surface: '10',
          label: 'remark',
          name: '备注',
          checked: 0,
          width: 100,
          onabort: '',
          disabled: false,
          changeable: 2
        }, {
          surface: '11',
          label: 'createTime',
          name: '制单日期',
          checked: 0,
          disabled: false,
          width: 100,
          onabort: ''
        }, {
          surface: '12',
          label: 'createBy',
          name: '申请人',
          disabled: false,
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '13',
          label: 'fReviewDate',
          name: '审核日期',
          checked: 0,
          disabled: false,
          width: 100,
          onabort: ''
        }, {
          surface: '14',
          label: 'operation',
          name: '操作',
          checked: 0,
          disabled: false,
          width: 160,
          fixed:'right',
          operation: '2',
          onabort: ''
        }
      ],
      queryList: {
        tableName: '采购申请',
        columnList: []
      },
      purchaseList: {
        tableName: '采购申请详情',
        columnList: []
      },
      setRowList: [],
      customButton: [
        {
          type: 'primary',
          size: 'mini',
          icon: 'el-icon-edit',
          name: '新单',
          disabled: false,
          hasPermi:['anpin:stockControl:anPingApply']
        },
        // {
        //   type:'warning',
        //   size:'mini',
        //   icon:'el-icon-edit',
        //   name:'立即修改',
        //   disabled:false,
        // },
        {
          type: 'warning',
          size: 'mini',
          icon: 'el-icon-upload2',
          name: '导出',
          disabled: false,
          hasPermi:['anpin:stockControl:export']
        }, {
          type: 'success',
          size: 'mini',
          icon: 'el-icon-c-scale-to-original',
          name: '复制新单',
          disabled: false,
          hasPermi:['anpin:stockControl:generateReceipts']
        }
      ],
      contentButton: [{
          type: 'primary',
          size: 'mini',
          icon: 'el-icon-plus',
          name: '录入明细',
          disabled: false
        }, {
          type: 'primary',
          size: 'mini',
          icon: 'el-icon-check',
          name: '保存',
          plain: true,
          disabled: false
        }, {
        type: 'primary',
        size: 'mini',
        icon: 'el-icon-edit-outline',
        name: '请核',
        disabled: false
        }, {
          type: 'primary',
          size: 'mini',
          icon: 'el-icon-plus',
          name: '新单',
          nameTwo:'详情页',
          plain: true,
          disabled: false
        },{
          type: 'primary',
          size: 'mini',
          icon: 'el-icon-plus',
          name: '复制新单',
          nameTwo:'详情页',
          plain: true,
          disabled: false
        },{
          type: 'success',
          size: 'mini',
          icon: 'el-icon-edit',
          name: '修改',
          disabled: false
        }, {
          type: 'warning',
          size: 'mini',
          icon: 'el-icon-download',
          name: '导出',
          disabled: false
        },{
          type: 'info',
          size: 'mini',
          icon: 'el-icon-edit-outline',
          name: '打印',
          disabled: false
        },{
          type: 'primary',
          size: 'mini',
          icon: 'el-icon-edit-outline',
          name: '查看审批',
          disabled: false
        },{
          type: 'info',
          size: 'mini',
          icon: 'el-icon-edit-outline',
          name: '生成入库单',
          disabled: false
        },{
          type: 'info',
          size: 'mini',
          icon: 'el-icon-edit-outline',
          name: '生成销售单',
          disabled: false
        }
        // ,{
        //   type: 'info',
        //   size: 'mini',
        //   icon: 'el-icon-edit-outline',
        //   name: '生成出库单',
        //   disabled: false
        // }
      ],
      formOption: [
        {
          span: 6,
          label: 'fBillno',
          name: '系统编号',
          inputType: 2,
          width: 200,
          labelSize: '80',
          rules: [{ required: false, message: ' ' }]
        }, {
          span: 6,
          label: 'fGoodsid',
          name: '项目名称',
          inputType: 1,
          width: 200,
          labelSize: '80',
          rules: [{ required: false, message: ' ' }]
        }, {
          span: 6,
          label: 'fCorpid',
          name: '供应商',
          inputType: 1,
          width: 200,
          labelSize: '80',
          rules: [{ required: false, message: ' ' }]
        }, {
          span: 6,
          label: 'createBy',
          name: '申请人',
          inputType: 2,
          width: 200,
          labelSize: '80',
          rules: [{ required: false, message: ' ' }]
        }, {
          span: 6,
          label: 'moneys',
          name: '金额',
          inputType: 5,
          width: 200,
          labelSize: '80',
          rules: [{ required: false, message: ' ' }]
        }, {
          span: 6,
          label: 'timeInterval',
          name: '提货日期',
          inputType: 3,
          width: 300,
          labelSize: '80',
          rules: [{ required: false, message: ' ' }]
        },{
          span: 6,
          label: 'fFeeid',
          name: '品名',
          inputType: 1,
          width: 200,
          labelSize: '80',
          rules: [{ required: false, message: ' ' }]
        }
      ],
      contentOption: [
        {
          index:'1',
          span: 6,
          label: 'fBillno',
          name: '系统编号',
          inputType: 2,
          width: 200,
          labelSize: '80',
          disabled: true,
          rules: [{ required: false, message: ' ' }]
        }, {
          index:'2',
          span: 6,
          label: 'fGoodsid',
          name: '项目名称',
          inputType: 1,
          width: 200,
          labelSize: '80',
          disabled: true,
          rules: [{ required: true, message: ' ' }]
        }, {
          index:'3',
          span: 6,
          label: 'personNaem',
          name: '项目主管',
          inputType: 2,
          width: 200,
          labelSize: '80',
          disabled: true,
          rules: [{ required: false, message: ' ' }]
        }, {
          index:'4',
          span: 6,
          label: 'corpsName',
          name: '客户',
          inputType: 2,
          width: 200,
          labelSize: '80',
          disabled: true,
          rules: [{ required: false, message: ' ' }]
        }, {
          index:'5',
          span: 6,
          label: 'fCorpid',
          name: '供应商',
          inputType: 1,
          width: 200,
          labelSize: '80',
          disabled: true,
          rules: [{ required: true, message: ' ' }]
        }, {
          index:'6',
          span: 6,
          label: 'fWarehouseid',
          name: '仓库',
          inputType: 1,
          width: 200,
          disabled: true,
          labelSize: '80',
          rules: [{ required: true, message: ' ' }]
        }, {
          index:'7',
          span: 6,
          label: 'fBsdate',
          name: '提货日期',
          inputType: 6,
          width: 200,
          disabled: true,
          labelSize: '80',
          rules: [{ required: true, message: ' ' }]
        }, {
          index:'8',
          span: 6,
          label: 'createBy',
          name: '申请人',
          inputType: 2,
          width: 200,
          disabled: true,
          labelSize: '80',
          rules: [{ required: false, message: ' ' }]
        },
        {
          index:'9',
          span: 6,
          label: 'fStudentsWeight',
          name: '学生人数',
          inputType: 2,
          onabort: 'this.value=this.value.replace(/[^0-9]/g,\'\')',
          width: 200,
          disabled: true,
          labelSize: '80',
          rules: [{ required: true, message: ' ' }]
        }, {
          index:'10',
          span: 6,
          label: 'fTeachersWeight',
          name: '教师人数',
          onabort: 'this.value=this.value.replace(/[^0-9]/g,\'\')',
          inputType: 2,
          width: 200,
          disabled: true,
          labelSize: '80',
          rules: [{ required: true, message: ' ' }]
        },
        {
          index:'11',
          span: 6,
          label: 'fSbu',
          name: '开票公司',
          inputType: 1,
          width: 200,
          disabled: true,
          labelSize: '80',
          rules: [{ required: true, message: ' ' }]
        }, {
          index:'12',
          span: 6,
          label: 'remark',
          name: '备注',
          inputType: 4,
          disabled: true,
          width: 200,
          labelSize: '80',
          rules: [{ required: false, message: ' ' }]
        }
      ],
      pendingPage:'',
    }
  },
  activated(){
    if(this.$route.query.list){
      this.pendingPage = JSON.parse(this.$route.query.list)
    }
    if (this.$route.query.open === 'true'){
      this.contentList = []
      let data = {
        tableName: this.purchaseList.tableName,
        userId: Cookies.get('userName')
      }
      this.$refs.avatar.form = {}
      this.getRow(data)
      this.contentOption.forEach(item => {
        if (item.label == 'personNaem' || item.label == 'corpsName' || item.label == 'createBy' || item.label == 'fBillno') {
          item.disabled = true
        } else {
          item.disabled = false
        }
      })
      this.contentButton.forEach(item => item.disabled = false)
      this.contentStyle.forEach(item => item.disabled = false)
      this.$refs.avatar.form.createBy = Cookies.get('userName')
      this.$router.push({ query: {} })
    }
  },
  created() {
    this.homePage()
    //获取登陆人
    queryUserVal().then((response) => {
      this.lander = response.user.userName
    })
    let data = {
      tableName: this.queryList.tableName,
      userId: Cookies.get('userName')
    }
    this.getRow(data)
    this.query(this.formDataList)
    productName().then(res => {
      console.log(res)
      if (res.code === 200) {
        for (let item in res.rows) {
          this.dataList.fFeeid.push({
            label: res.rows[item].fName,
            value: res.rows[item].fId,
          })
          this.listData.fFeeid.push({
            label: res.rows[item].fName,
            value: res.rows[item].fId,
            fFeeunitid: res.rows[item].fFeeunitid,
            fCurrency: res.rows[item].fCurrency
          })
        }
      }
    })
    this.getDicts('data_unitfees').then(res => {
      console.log(res.data)
      for (let item in res.data) {
        this.listData.fFeeunitid.push({
          label: res.data[item].dictLabel,
          value: JSON.parse(res.data[item].dictValue)
        })
      }
    })
    this.getDicts('f_paymode').then(res => {
      console.log(res)
      for (let item in res.data) {
        this.listData.fStltypeid.push({
          label: res.data[item].dictLabel,
          value: JSON.parse(res.data[item].dictValue)
        })
      }
    })
    queryItem().then(res => {
      console.log(res)
      for (let item in res.data) {
        this.dataList.fGoodsid.push({
          label: res.data[item].projectName,
          value: res.data[item].fId,
          personNaem: res.data[item].personNaem,
          corpsName: res.data[item].corpsName,
          fCorpid: res.data[item].fCorpid
        })
      }
    })
    //查询仓库
    warehouse().then(res => {
      console.log(res)
      for (let item in res.rows) {
        this.dataList.fWarehouseid.push({
          label: res.rows[item].fName,
          value: res.rows[item].fId
        })
      }
    })
    this.fCompany(1)
    this.fCompany(2)
  },
  methods: {
    change(scope){
      console.log(this.contentList)
      for(let item in this.contentList){
        for(let li in this.listData.fFeeid){
          if(this.contentList[item].fFeeid == this.listData.fFeeid[li].value){
            console.log("111")
            this.$set(this.contentList[item],'fFeeunitid',this.listData.fFeeid[li].fFeeunitid)
            this.$set(this.contentList[item],'fCurrencyName',this.listData.fFeeid[li].fCurrency)
          }
        }
      }
    },
    homePage(){
      let date = this.$route.query
      console.log(date)
      if (this.$route.query.list){
        // this.contentButton = this.$options.data().contentButton
        // this.contentButton.push(JSON.parse(this.$route.query.list))
        console.log(this.contentButton)
        let scope = {
          row:{
            fId:JSON.parse(this.$route.query.data).billId
          }
        }
        this.viewMethod(scope)
      }else{
        console.log("111")
        this.pageDisplay = true
      }
    },
    // 查看审批流
    getDataList() {
      this.addOrUpdateVisible = false;
    },
    returnData() {
      this.addOrUpdateVisib = false;
      this.open = false;
      this.cancelTwo();
    },
    sequence(res){
      // let i = 0
      // for ( i ; i <= this.tableData.length;i++){
      //   if (this.$refs.avatar.form.fId == this.tableData[i].fId) {
      //     console.log(i)
      //     if (i >= 0) this.forward = true
      //     if (this.tableData.length != Number(i+1)) this.backward = false
      //     if (i !== 0){
      //       console.log(this.tableData[--i].fId)
      //     }
      //     return
      //   }
      // }
      // if (res === true){
      //
      // }
    },
    addOrUpdateHandle() {
      this.addOrUpdateVisible = true;
      this.$nextTick(() => {
        this.$refs.addOrUpdate.init(this.$refs.avatar.form.fId,520);
      });
    },
    addOrUpdateHand() {
      this.addOrUpdateVisib = true;
      this.$nextTick(() => {
        this.$refs.ApprovalComments.init(this.$refs.avatar.form.fId,520);
      });
    },
    //首页审批跳转关闭返回首页
    cancelTwo() {
      let view = {}
      if(this.pendingPage.pendingPage){
        view = {
          fullPath: "/morePage/stock?open=true",
          hash: "",
          matched: Array(2),
          meta: Object,
          name: "MorePage/stock",
          params: Object,
          path: "/morePage/stock",
          query: Object,
          title: "待审数据"
        }
        this.$router.push({ path: '/morePage/stock' })
      }else{
        view = {
          fullPath: '/purchaseRequest',
          hash: '',
          matched: Array(2),
          meta: Object,
          name: 'PurchaseRequest',
          params: Object,
          path: '/purchaseRequest',
          query: Object,
          title: '采购申请'
        }
        this.$router.push({ path: '/index' })
      }
      this.$store
        .dispatch('tagsView/delView', view)
        .then(({ visitedViews }) => {
          if (this.isActive(view)) {
            this.toLastView(visitedViews, view)
          }
        })
      Global.$emit('removeCache', 'closeSelectedTag', view)
    },
    //分页
    handleSizeChange(val) {
      // console.log(`每页 ${val} 条`);
      this.formDataList.pageSize = val
      this.query(this.formDataList)
    },
    handleCurrentChange(val) {
      // console.log(`当前页: ${val}`);
      this.formDataList.pageNum = val
      this.query(this.formDataList)
    },
    //计算金额
    totalAmount(scope) {
      console.log(scope)
      if (scope.row.fUnitprice && scope.row.fQty) {
        scope.row.fAmount = (scope.row.fUnitprice * scope.row.fQty).toFixed(2)
      }
    },
    //查询公司
    fCompany(name) {
      company(name).then(res => {
        console.log(res)
        if (name == 1) {
          this.dataList.fCorpid = []
          for (let item in res.data) {
            this.dataList.fCorpid.push({
              label: res.data[item].fName,
              value: res.data[item].fId
            })
          }
        } else if (name == 2) {
          this.dataList.fSbu = []
          for (let item in res.data) {
            this.dataList.fSbu.push({
              label: res.data[item].fName,
              value: res.data[item].fId
            })
          }
        }
      })
    },
    //查询主页列数据
    query(data) {
      console.log(data)
      listQuery(data).then(res => {
        this.tableData = res.rows
        this.total = res.total
      })
    },
    //查询列数据
    getRow(data,list,add,i) {
      console.log(data,list,add)
      select(data).then((res) => {
        if (data.tableName === '采购申请详情') {
          if (res.data.length != 0) {
            this.purchaseList.columnList = res.data.filter((e) => e.checked == 0)
            this.purchaseList.columnList = res.data
            this.setRowList = res.data
            this.purchaseList.columnList = this.purchaseList.columnList.filter((e) => e.checked == 0)
            // this.waitFor = true

          } else {
            this.$set(this.purchaseList,'columnList',this.$options.data().contentStyle)
            this.setRowList = this.$options.data().contentStyle
          }
          if(add){
            this.purchaseList.columnList.forEach(item => item.disabled = false)
          }else{
            this.purchaseList.columnList.forEach(item => item.disabled = true)
          }
          this.pageDisplay = false
          this.isItHidden = false
          this.inDex = this.contentOption.length
        } else {
          if (res.data.length != 0) {
            this.queryList.columnList = res.data.filter((e) => e.checked == 0)
            this.queryList.columnList = res.data
            this.setRowList = res.data
            this.queryList.columnList = this.queryList.columnList.filter((e) => e.checked == 0)
            // this.waitFor = true
          } else {
            this.$set(this.queryList,'columnList',this.$options.data().listStyle)
            this.setRowList = this.$options.data().listStyle
          }
          this.pageDisplay = true
          this.isItHidden = true
          this.inDex = 4
        }
        this.$refs.avatar.form = {}
        if (list){
          this.$refs.avatar.form = list.warehouseBills
          this.contentList = list.tWarehousebillsfees
          this.contentButton = this.$options.data().contentButton
          console.log(this.$route.query.list)
          if (this.pendingPage.name) {
            this.contentButton.push(JSON.parse(this.$route.query.list))
          }
          let data = {
            actId: 520,
            id: this.$refs.avatar.form.fId
          }
          getName(data).then(response => {
            console.log(response)
            if (response.data.length != 0) {
              this.before = response.data[0].userName
              if (this.$refs.avatar.form.fBillstatus === 6 && this.before == this.lander) {
                // this.contentButton.forEach(item =>{
                //   if (item.name === '审批'){
                //
                //   }
                // })
                this.contentButton.push({
                  type: 'danger',
                  size: 'mini',
                  icon: 'el-icon-edit-outline',
                  name: '撤销采购',
                  disabled: false
                })
              }
            }
          })
          let operator = this.$refs.avatar.form.createBy
          if(this.$refs.avatar.form.fBillstatus === 4 && this.lander === operator){
            this.contentButton.push({
              type: 'danger',
              size: 'mini',
              icon: 'el-icon-edit-outline',
              name: '撤销审批',
              disabled: false
            })
          }
          this.contentButton.forEach(item =>{
            if(this.$refs.avatar.form.fBillstatus < 4){
              if (item.name == '录入明细' || item.name == '保存'){
                item.disabled = true
              }else {
                item.disabled = false
              }
            }else{
              if (item.name == '录入明细' || item.name == '保存' || item.name == '请核' || item.name == '修改'){
                item.disabled = true
              }else {
                item.disabled = false
              }
            }
          })
        }
        if (i == 1) this.submitAnd()
      })
    },
    returnToForm(row) {
      console.log(row, 111)
    },
    //查看-列表
    viewMethod(scope,res,i) {
      if(res){
        this.contentButton.forEach(item => {
          item.disabled = false
          this.purchaseList.columnList.forEach(item => item.disabled = false)
          this.contentStyle.forEach(item => item.disabled = false)
          this.contentOption.forEach(item => {
            if (item.label == 'personNaem' || item.label == 'corpsName' || item.label == 'createBy' || item.label == 'fBillno') {
              item.disabled = true
            } else {
              item.disabled = false
            }
          })
        })
      }else{
        this.contentOption.forEach(item => item.disabled = true)
        this.contentStyle.forEach(item => item.disabled = true)
      }
      viewSingle(scope.row.fId).then(res => {
        if (res.code === 200) {
          let data = {
            tableName: this.purchaseList.tableName,
            userId: Cookies.get('userName')
          }
          let list ={
            warehouseBills:res.data.warehouseBills,
            tWarehousebillsfees:res.data.tWarehousebillsfees
          }
          // this.$refs.avatar.form = {}
          this.getRow(data,list,'',i)
        }
      })
    },
    submitAnd(){
      this.$refs.avatar.form.fId = ''
      this.$refs.avatar.form.fBillno = ''
      this.contentList.forEach(item=>item.fId = '')
      this.contentOption.forEach(item => {
        if (item.label == 'personNaem' || item.label == 'corpsName' || item.label == 'createBy' || item.label == 'fBillno') {
          item.disabled = true
        } else {
          item.disabled = false
        }
      })
      this.purchaseList.columnList.forEach(item => item.disabled = false)
      this.contentButton.forEach(item => item.disabled = false)
      this.contentStyle.forEach(item => item.disabled = false)
    },
    //修改
    modification(scope) {
      console.log(scope)
    },
    //删除
    deletion(scope) {
      console.log(scope.row.fId)
      tableDeleteQuery(scope.row.fId).then(res => {
        console.log(res)
        this.$confirm(res.msg == 1 ? '主表数据为空' : (res.msg == 2 ? '主表有数据' : '未知状态') + '是否永久删除该条数据?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          confirmDeletion(scope.row.fId).then(data => {
            this.$message({
              type: 'success',
              message: '删除成功!'
            })
            this.query(this.formDataList)
          })
        }).catch(() => {
          this.$message({
            type: 'info',
            message: '已取消删除'
          })
        })
      })
    },
    //选择框
    selectionbox(selection) {
      if (selection.length > 1){
        this.customButton.forEach(item =>{
          if (item.name === '复制新单'){
            item.disabled = true
          }else {
            item.disabled = false
          }
        })
      }else {
        this.customButton.forEach(item => item.disabled = false)
        this.selection = selection
      }
    },
    //详情内容保存
    submitAndSave(item,res) {
      console.log(res)
      if(this.$refs.avatar.form.fBillstatus < 4 || !this.$refs.avatar.form.fBillstatus) {
        let formData = new window.FormData()
        this.$refs.avatar.form.fMoney = 0
        this.contentList.forEach(item => this.$refs.avatar.form.fMoney += Number(item.fAmount))
        formData.append('tWarehousebills', JSON.stringify(this.$refs.avatar.form))
        formData.append('tWarehousebillsfees', JSON.stringify(this.contentList))
        formData.append('fBilltype', 'SQ')
        submit(formData).then(res => {
          if (res.code == 200) {
            if(!res){
              this.$refs.avatar.form = res.data.warehouseBills
            }
            this.contentList = res.data.tWarehousebillsCntrs
            if (item === 3){
              this.$refs.avatar.form.fId = ''
              this.$refs.avatar.form.fBillno = ''
              this.contentList.forEach(item=>item.fId = '')
              this.contentOption.forEach(item => {
                if (item.label == 'personNaem' || item.label == 'corpsName' || item.label == 'createBy' || item.label == 'fBillno') {
                  item.disabled = true
                } else {
                  item.disabled = false
                }
              })
              this.purchaseList.columnList.forEach(item => item.disabled = false)
              this.contentButton.forEach(item => item.disabled = false)
              this.contentStyle.forEach(item => item.disabled = false)
            }else{
              this.$message.success('保存成功')
            }
          }
        })
      }
      if (item == 1){
        this.dialogVisible = true
      }else if (item === 2){
        let data = {
          tableName: this.queryList.tableName,
          userId: Cookies.get('userName')
        }
        this.getRow(data)
        this.query(this.formDataList)
      }
      if (item === 3 && this.$refs.avatar.form.fBillstatus > 3){
        let datae = {
          fId:this.$refs.avatar.form.fId,
          fBilltype:'SQ'
        }
        copyNew(datae).then(res=> {
          this.$message({
            message: '复制新单成功',
            type: 'success',
            showClose: true
          });
          let scope = {
            row: {
              fId: res.data
            }
          }
          this.query(this.formDataList)
          this.viewMethod(scope,res)
        })
      }
    },
    //表单选中后触发
    selectTrigger(name, list, id) {
      console.log(list, id)
      if (name == 'fGoodsid') {
        for (let item in list) {
          if (list[item].value == id) {
            this.$refs.avatar.form.personNaem = list[item].personNaem
            this.$refs.avatar.form.corpsName = list[item].corpsName
          }
        }
      }
    },
    //确认打印
    Printing(){
      this.$print(this.$refs.print)
    },
    //返回列表
    backToList(){
      let data
      if (!this.$refs.avatar.form.fId && this.contentList !== 0 || this.$refs.avatar.form.fBillstatus > 3 && !this.$route.query.data) {
        data = {
          tableName: this.queryList.tableName,
          userId: Cookies.get('userName')
        }
        this.getRow(data)
        this.query(this.formDataList)
      } else if(this.$route.query.data){
        this.cancelTwo();
        // this.$router.push({path:'/index'})
      }else {
        this.$confirm('当前数据是否保存?', '提示', {
          confirmButtonText: '保存',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.submitAndSave(2,1)
        }).catch(() => {
          data = {
            tableName: this.queryList.tableName,
            userId: Cookies.get('userName')
          }
          this.getRow(data)
          this.query(this.formDataList)
        })
      }
    },
    //所以按钮
    buttonList(row) {
      console.log(row)
      let data
      switch (row.name) {
        case '新单':
          if(row.nameTwo == '详情页'){
            if(this.$refs.avatar.form.fId){
              this.contentList = []
              data = {
                tableName: this.purchaseList.tableName,
                userId: Cookies.get('userName')
              }
              this.$refs.avatar.form = {}
              this.getRow(data,'',1)
              this.contentOption.forEach(item => {
                if (item.label == 'personNaem' || item.label == 'corpsName' || item.label == 'createBy' || item.label == 'fBillno') {
                  item.disabled = true
                } else {
                  item.disabled = false
                }
              })
              this.contentButton.forEach(item => item.disabled = false)
              this.contentStyle.forEach(item => item.disabled = false)
              this.$refs.avatar.clearVerification()
              this.$refs.avatar.form.createBy = Cookies.get('userName')
            }else{
              this.$message.error("当前数据未保存，请先保存")
            }
          }else{
            this.contentList = []
            data = {
              tableName: this.purchaseList.tableName,
              userId: Cookies.get('userName')
            }
            this.$refs.avatar.form = {}
            this.getRow(data,'',1)
            this.contentOption.forEach(item => {
              if (item.label == 'personNaem' || item.label == 'corpsName' || item.label == 'createBy' || item.label == 'fBillno') {
                item.disabled = true
              } else {
                item.disabled = false
              }
            })
            this.contentButton.forEach(item => item.disabled = false)
            this.contentStyle.forEach(item => item.disabled = false)
            this.$refs.avatar.clearVerification()
            this.$refs.avatar.form.createBy = Cookies.get('userName')

          }
          break
        case '保存':
          this.$refs.avatar.submitForm('submit')
          break
        case '打印':
          console.log(this.listData.fFeeid,this.contentList)
          for (let item in this.contentList){
            for (let li in this.listData.fFeeid){
              if (this.contentList[item].fFeeid == this.listData.fFeeid[li].value){
                this.contentList[item].feeName = this.listData.fFeeid[li].label
              }
            }
            for(let i in this.listData.fFeeunitid){
              if (this.contentList[item].fFeeunitid == this.listData.fFeeunitid[i].value){
                this.contentList[item].fFeeunitName = this.listData.fFeeunitid[i].label
              }
            }
          }
          if (!this.$refs.avatar.form.fId){
            this.$message.error('未保存，不允许打印');
          }else if (this.$refs.avatar.form.fBillstatus >= 4){
            this.formList = this.$refs.avatar.form
            this.dialogVisible = true
          }else {
            this.formList = this.$refs.avatar.form
            console.log(this.$refs.avatar.form.fBillstatus)
            this.submitAndSave(1)
          }
          break
        case '修改':
          this.contentButton.forEach(item =>{
            if (this.$refs.avatar.form.fBillstatus >= 4){
              if (item.name === '返回列表' || item.name == '打印' || item.name === '修改' || item.name === '生成入库单' || item.name === '生成销售单'||item.name === '生成出库单' || item.name === '查看审批' || item.name === '审批' || item.name === '撤销采购' || item.name === '撤销审批'){
                item.disabled = false
              }else {
                item.disabled = true
              }
            }else {
              item.disabled = false
              this.purchaseList.columnList.forEach(item => item.disabled = false)
              this.contentStyle.forEach(item => item.disabled = false)
              this.contentOption.forEach(item => {
                if (item.label == 'personNaem' || item.label == 'corpsName' || item.label == 'createBy' || item.label == 'fBillno') {
                  item.disabled = true
                } else {
                  item.disabled = false
                }
              })
            }
          })
          break
        case '录入明细':
          this.contentList.push({
            fFeeid: '',
            fUnitprice: '',
            fPurchase: '',
            fQty: '',
            fFeeunitid: '',
            fAmount: '',
            fStltypeid: '',
            remark: '',
            createTime: '',
            createBy: Cookies.get('userName'),
            fReviewDate: '',
            operation: '',
          })
          break
        case '查看审批':
          this.addOrUpdateHandle()
          break
        case '审批':
          this.addOrUpdateHand()
          break
        case '请核':
          if (this.$refs.avatar.form.fBillstatus < 4){
            this.$refs.avatar.submitForm('check')
          }else {
            this.$message.error('请先保存');
          }
          break
        case '生成入库单':
          let listData = {
            fId:this.$refs.avatar.form.fId,
            fBilltype:'RK'
          }
          copyNew(listData).then(res=>{
            this.$message({
              message: '生成成功',
              type: 'success',
              showClose:true
            });
          })
          break
        case '生成销售单':
          let liste = {
            fId:this.$refs.avatar.form.fId,
            fBilltype:'XS'
          }
          copyNew(liste).then(res=>{
            this.$message({
              message: '生成成功',
              type: 'success',
              showClose:true
            });
          })
          break
        case '生成出库单':
          let listd = {
            fId:this.$refs.avatar.form.fId,
            fBilltype:'CK'
          }
          copyNew(listd).then(res=>{
            this.$message({
              message: '生成成功',
              type: 'success',
              showClose:true
            });
          })
          break
        case '复制新单':
          if (row.nameTwo === '详情页'){
            this.$refs.avatar.submitForm('submit',3)
          }else {
            if (this.selection.length > 0){
              let scope = {
                row:{
                  fId:this.selection[0].fId
                }
              }
              this.query(this.formDataList)
              this.viewMethod(scope,'',1)
            }else {
              this.$message.warning('未选择列表，请选择后再点击');
            }
          }
          break
        case '撤销审批':
          let date = new Date()
          let y = date.getFullYear()
          let m = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1)
          let d = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate())
          data = {
            actId:520,
            id:this.$refs.avatar.form.fId,
            billId:this.$refs.avatar.form.fId,
            auditItem:y + '-' + m + '-' + d
          }
          console.log(data)
          revoke(data).then(res=>{
            if (res.code === 200){
              this.$message({
                showClose: true,
                message: '撤销成功',
                type: 'success'
              })
              data = {
                tableName: this.queryList.tableName,
                userId: Cookies.get('userName')
              }
              this.getRow(data)
              this.query(this.formDataList)
            }
          })
          break
        case '撤销采购':
          withdrawBy(this.$refs.avatar.form.fId).then(res=>{
            if (res.code === 200){
              this.$message({
                showClose: true,
                message: '撤销成功',
                type: 'success'
              })
              data = {
                tableName: this.queryList.tableName,
                userId: Cookies.get('userName')
              }
              this.getRow(data)
              this.query(this.formDataList)
            }
          })
          break
        default:
          this.$message.error('该按钮暂无功能')
      }
    },
    //请核
    writeOff(){
      let formData = new window.FormData()
      formData.append('tWarehousebills', JSON.stringify(this.$refs.avatar.form))
      formData.append('tWarehousebillsfees', JSON.stringify(this.contentList))
      formData.append('fBilltype', 'SQ')
      pleaseCheck(formData).then(res => {
        if (res.code == 200) {
          this.$message.success('请核成功')
          this.contentOption.forEach(item => item.disabled = true)
          this.contentStyle.forEach(item => item.disabled = true)
          this.contentButton.forEach(item =>{
            if (item.name == '返回列表' || item.name == '修改'){
              item.disabled = false
            }else {
              item.disabled = true
            }
          })
          // this.$refs.avatar.form = res.data.warehouseBills
          // this.contentList = res.data.tWarehousebillsCntrs
          let data = {
            tableName: this.queryList.tableName,
            userId: Cookies.get('userName')
          }
          this.getRow(data)
          this.query(this.formDataList)
        }
      })
    },
    // 显示搜索条件、点击后会调用此方法
    showSearch() {
      console.log('到我了')
      this.searchWhether = !this.searchWhether
    },
    //搜索、重置、展开
    feedback(res) {
      console.log(res)
      if (res == '展开') {
        if (this.inDex == 4) {
          this.inDex = this.formOption.length
        } else {
          this.inDex = 4
        }
      } else if (res == '搜索') {
        this.$refs.avatar.submitForm()
      } else if (res == '重置') {
        this.$refs.avatar.form = {}
        this.formDataList.pageNum = 1
        this.$refs.avatar.submitForm()
      }
    },
    //表单验证通过执行搜索
    submitForm() {
      let list = this.formDataList
      console.log(this.$refs.avatar.form)
      this.formDataList = this.$refs.avatar.form
      this.formDataList.fBilltype = list.fBilltype
      this.formDataList.pageSize = list.pageSize
      this.formDataList.pageNum = list.pageNum
      this.query(this.formDataList)
    },
    //点击刷新会调用此方法
    getList() {
      this.feedback('重置')
      this.submitForm()
      console.log('到我了2')
    },
    //详情表内容移出
    deletRows(index, rows) {
      console.log(index, rows)
      if (rows[index].fId) {
        deleteQuery(this.$refs.avatar.form.fId, this.$refs.avatar.form.fDateChanged).then(res => {
          if (res.code === 200) {
            listDelete(rows[index].fId).then(data => {
              rows.splice(index, 1)
            })
          }
        })
      } else {
        rows.splice(index, 1)
      }
    }
  }
}
</script>

<style scoped>

.table {
  border-collapse: collapse;
  border-spacing: 0;
  background-color: transparent;
  display: table;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}

.table td {
  text-align: center;
  vertical-align: middle;
  font-size: 14px;
  color: #333333;
  padding: 8px 12px;
}

.column {
  border: 1px solid #000;
}
.app-container >>> .el-form-item{
  margin-bottom: 0;
}
</style>
