<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"
        :tatolLabel="tatolLabel"
      />
<!--      <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"
        @pagination="feedback('搜索')"
        :page-sizes="[10,100,200,500,1000]"
      />
      </div>
    </div>
    <div v-else class="app-container">
      <div style="display: flex;margin-bottom: 10px">
        <el-breadcrumb>
          <el-breadcrumb-item style="font-weight: 700">销售出库</el-breadcrumb-item>
          <el-breadcrumb-item style="font-weight: 700">销售出库详情页</el-breadcrumb-item>
          <el-breadcrumb-item style="margin-top: -7px;">
            <el-button
              style="margin-left: 10px"
              size="mini"
              type="danger" plain
              @click="backToList"
              icon="el-icon-arrow-left">
              返回列表</el-button>
          </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"
        :tatolLabel="tatolLabel"
        :isItHidden="isItHidden"
        :hasPermi="hasPermi"
        :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>
    <div class="print_div">
      <el-dialog
        :visible.sync="dialogVisible"
        :fullscreen="true"
        width="70%"
        style="background-color: #1c84c6"
      >
        <div ref="print">
          <h1 style="text-align: center;font-weight:bold">{{ formList.fsbuName }}</h1>
          <div style="display: flex;justify-content: space-between;margin-bottom: 10px">
            <div style="width: 200px;height: 20px;font-size: 14px;">客户项目：{{projectName}}</div>
            <div style="width: 200px;height: 20px;font-size: 14px;">销售出库单</div>
            <div style="width: 200px;height: 20px;font-size: 14px;">出库日期：{{formList.fBsdate}}</div>
          </div>
          <div style="display: flex;justify-content: space-between;margin-bottom: 10px">
            <div style="width: 200px;height: 20px;font-size: 14px;">发货人：</div>
            <div style="width: 200px;height: 20px;font-size: 14px;">公司电话：{{formList.fsbuTel}}</div>
            <div style="width: 200px;height: 20px;font-size: 14px;">编号：{{formList.fBillno}}</div>
          </div>
          <table class="table table-striped table-bordered" align="center" valign="center">
            <tr>
              <td class="column" style="width: 8%;">行号</td>
              <td class="column" style="width: 20%;">物料名称</td>
              <td class="column" style="width: 10%;">规格型号</td>
              <td class="column" style="width: 8%;">单位</td>
              <td class="column" style="width: 10%;">数量</td>
              <td class="column" style="width: 10%;">单价</td>
              <td class="column" style="width: 10%;">金额</td>
              <td class="column" style="width: 10%;">备注</td>
            </tr>
            <tr v-for="(item,index) in contentList" :key="index">
              <td class="column">{{ index+1 }}</td>
              <td class="column">{{ item.feeName }}</td>
              <td class="column"></td>
              <td class="column">{{item.fFeeunitName}}</td>
              <td class="column">{{ item.fQty }}</td>
              <td class="column">{{ item.fUnitprice?item.fUnitprice.toFixed(2):item.fUnitprice }}</td>
              <td class="column">{{ item.fAmount?item.fAmount.toFixed(2):item.fAmount }}</td>
              <td class="column">{{ item.remark }}</td>
            </tr>
            <!--          <tr>-->
            <!--            <td class="column" colspan="2">大写金额:</td>-->
            <!--            <td class="column" colspan="2" style="text-align: left">100亿元</td>-->
            <!--            <td class="column">总金额:</td>-->
            <!--            <td class="column" colspan="3">{{formList.fMoney}}</td>-->
            <!--          </tr>-->
          </table>
          <table class="table table-striped table-bordered" align="center" valign="center">
            <tr>
              <td class="column" colspan="2" style="border-top: none;width: 15%;">大写总金额:</td>
              <td class="column" colspan="2" style="text-align: left;border-top: none;width: 40%;">{{chineseStr}}</td>
              <td class="column" style="border-top: none; width: 15%;">小写总金额:</td>
              <td class="column" colspan="3" style="border-top: none;text-align: left;width: 30%;">{{formList.fMoney?formList.fMoney.toFixed(2):formList.fMoney}}</td>
            </tr>
          </table>
          <div style="display: flex;justify-content: space-between;margin-top: 20px">
            <div style="width: 200px;height: 20px;font-size: 14px;">发货人：</div>
            <div style="width: 200px;height: 20px;font-size: 14px;">收货：</div>
          </div>
        </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>
  </div>
</template>


<script>
import { select } from '@/api/system/set'
import {
  listQuery,
  submit,
  viewSingle,
  deleteQuery,
  productName,
  queryItem,
  company,
  warehouse,
  listDelete,
  tableDeleteQuery,
  confirmDeletion, pleaseCheck, revoke, queryUserVal, getName, revokeBill, copyNew
} from '@/api/purchaseIssue/index'
import Cookies from 'js-cookie'
import Global from '@/layout/components/global'

export default {
  name: 'index',
  data() {
    return {
      form:{},
      before: '',
      hasPermi: {
        lookup: ['anpin:stockControl:query'],
        disappear: ['anpin:stockControl:remove']
      },
      addOrUpdateVisib: false,
      addOrUpdateVisible: false,
      chineseStr:0,
      total: 0,
      formDataList: {
        fBilltype: 'XS',
        pageSize: 10,
        pageNum: 1
      },
      formList: {},
      tatolLabel: ['金额'],
      dialogVisible: false,
      listData: {
        fFeeid: [],
        fFeeunitid: [],
        fStltypeid: []
      },
      setTimeout: '',
      searchWhether: true,
      pageDisplay: true,
      projectName:'',
      dataList: {
        fGoodsid: [],
        fSbu: [],
        fWarehouseid: [],
        fCorpid: [],
        fMarketTypid: [],
        fFeeid:[]
      },
      contentList: [],
      inDex: 4,
      tableData: [],
      selection:[],
      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: '6',
          label: 'fCurrencyName',
          name: '规格型号',
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '7',
          label: 'createTime',
          name: '制单日期',
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '8',
          label: 'createBy',
          name: '申请人',
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '9',
          label: 'fBillstatusName',
          name: '状态',
          checked: 0,
          width: 100,
          onabort: ''
        },
        {
          surface: '10',
          label: 'fReviewDate',
          name: '审核日期',
          checked: 0,
          width: 100,
          onabort: ''
        },
        {
          surface: '11',
          label: 'fBsdate',
          name: '出库日期',
          checked: 0,
          width: 100,
          onabort: ''
        },
        {
          surface: '12',
          label: 'remark',
          name: '备注',
          checked: 0,
          width: 100,
          onabort: ''
        }, {
          surface: '13',
          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: '',
          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: 'remark',
          name: '备注',
          checked: 0,
          width: 100,
          onabort: '',
          disabled: false,
          changeable: 2
        }, {
          surface: '10',
          label: 'createTime',
          name: '制单日期',
          checked: 0,
          disabled: false,
          width: 100,
          onabort: ''
        },
        // {
        //   surface: '11',
        //   label: 'createBy',
        //   name: '申请人',
        //   disabled: false,
        //   checked: 0,
        //   width: 100,
        //   onabort: ''
        // }, {
        //   surface: '12',
        //   label: 'fReviewDate',
        //   name: '审核日期',
        //   checked: 0,
        //   disabled: false,
        //   width: 100,
        //   onabort: ''
        // },
        {
          surface: '13',
          label: 'operation',
          name: '操作',
          checked: 0,
          disabled: false,
          fixed:'right',
          width: 160,
          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-plus',
          name: '保存',
          plain: true,
          disabled: false
        }, {
        type: 'primary',
        size: 'mini',
        icon: 'el-icon-edit-outline',
        name: '请核',
        disabled: false
      },{
          type: 'success',
          size: 'mini',
          icon: 'el-icon-edit',
          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: 'primary',
          size: 'mini',
          icon: 'el-icon-edit-outline',
          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: '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: 'fWarehouseid',
          name: '仓库',
          inputType: 1,
          width: 200,
          labelSize: '80',
          rules: [{ required: false, message: ' ' }]
        }, {
          span: 6,
          label: 'timeInterval',
          name: '出库日期',
          inputType: 3,
          width: 200,
          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: '5',
          span: 6,
          label: 'corpsName',
          name: '客户名称',
          inputType: 2,
          width: 200,
          labelSize: '80',
          disabled: true,
          rules: [{ required: false, message: ' ' }]
        },
        {
          index: '3',
          span: 6,
          label: 'fMarketTypid',
          name: '出库类别',
          inputType: 1,
          width: 200,
          labelSize: '80',
          disabled: true,
          rules: [{ required: false, message: ' ' }]
        },
        {
          index: '4',
          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: '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: 'fSbu',
          name: '开票公司',
          inputType: 1,
          width: 200,
          disabled: true,
          labelSize: '80',
          rules: [{ required: true, message: ' ' }]
        }, {
          index: '10',
          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 = []
      this.contentButton = this.$options.data().contentButton
      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 == 'fBillno') {
          item.disabled = true
        } else {
          item.disabled = false
        }
      })
      this.contentButton.forEach(item => item.disabled = false)
      this.contentStyle.forEach(item => item.disabled = false)
      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 => {
      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 => {
      for (let item in res.data) {
        this.listData.fStltypeid.push({
          label: res.data[item].dictLabel,
          value: JSON.parse(res.data[item].dictValue)
        })
      }
    })
    this.getDicts('f_deliveryCategory').then(res => {
      for (let item in res.data) {
        this.dataList.fMarketTypid.push({
          label: res.data[item].dictLabel,
          value: JSON.parse(res.data[item].dictValue)
        })
      }
    })
    queryItem().then(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 => {
      for (let item in res.rows) {
        this.dataList.fWarehouseid.push({
          label: res.rows[item].fName,
          value: res.rows[item].fId
        })
      }
    })
    this.fCompany(3)
    this.fCompany(2)
  },
  methods: {
    toChies(amount) { //形参
      this.chineseStr = 0
      // 汉字的数字
      const cnNums = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
      // 基本单位
      const cnIntRadice = ["", "拾", "佰", "仟"];
      // 对应整数部分扩展单位
      const cnIntUnits = ["", "万", "亿", "兆"];
      // 对应小数部分单位
      const cnDecUnits = ["角", "分"];
      // 整数金额时后面跟的字符
      const cnInteger = "整";
      // 整型完以后的单位
      const cnIntLast = "元";
      // 最大处理的数字
      const maxNum = 9999999999999999.99;
      // 金额整数部分
      let integerNum;
      // 金额小数部分
      let decimalNum;
      // 输出的中文金额字符串
      let chineseStr = "";
      // 分离金额后用的数组，预定义
      let parts;
      if (amount === "") {
        return "";
      }
      amount = parseFloat(amount);
      if (amount >= maxNum) {
        // 超出最大处理数字
        return "";
      }
      if (amount === 0) {
        chineseStr = cnNums[0] + cnIntLast + cnInteger;
        return chineseStr;
      }
      // 转换为字符串
      amount = amount.toString();
      if (amount.indexOf(".") === -1) {
        integerNum = amount;

        decimalNum = "";
      } else {
        parts = amount.split(".");
        integerNum = parts[0];
        decimalNum = parts[1].substr(0, 4);
      }
      // 获取整型部分转换
      if (parseInt(integerNum, 10) > 0) {
        let zeroCount = 0;
        const IntLen = integerNum.length;
        for (let i = 0; i < IntLen; i++) {
          const n = integerNum.substr(i, 1);
          const p = IntLen - i - 1;
          const q = p / 4;
          const m = p % 4;
          if (n === "0") {
            zeroCount++;
          } else {
            if (zeroCount > 0) {
              chineseStr += cnNums[0];
            }
            // 归零
            zeroCount = 0;
            //alert(cnNums[parseInt(n)])
            chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
          }
          if (m === 0 && zeroCount < 4) {
            chineseStr += cnIntUnits[q];
          }
        }
        chineseStr += cnIntLast;
      }
      // 小数部分
      if (decimalNum !== "") {
        const decLen = decimalNum.length;
        for (let i = 0; i < decLen; i++) {
          const n = decimalNum.substr(i, 1);
          if (n !== "0") {
            chineseStr += cnNums[Number(n)] + cnDecUnits[i];
          }
        }
      }
      if (chineseStr === "") {
        chineseStr += cnNums[0] + cnIntLast + cnInteger;
      } else if (decimalNum === "") {
        chineseStr += cnInteger;
      }
      if (chineseStr[chineseStr.length-1] !== '整'){
        this.chineseStr = chineseStr + '整'
      }else {
        this.chineseStr = chineseStr
      }
      // return chineseStr;
    },
    change(scope) {
      for (let item in this.contentList) {
        for (let li in this.listData.fFeeid) {
          if (this.contentList[item].fFeeid == this.listData.fFeeid[li].value) {
            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
      if (this.$route.query.list) {
        console.log(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{
        this.pageDisplay = true
      }
    },
    // 查看审批流
    getDataList() {
      this.addOrUpdateVisible = false
    },
    returnData() {
      this.addOrUpdateVisib = false
      this.open = false
      this.cancelTwo()
    },
    addOrUpdateHandle() {
      this.addOrUpdateVisible = true
      this.$nextTick(() => {
        this.$refs.addOrUpdate.init(this.$refs.avatar.form.fId, 550)
      })
    },
    //首页审批跳转关闭返回首页
    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: '/purchaseIssue',
          hash: '',
          matched: Array(2),
          meta: Object,
          name: 'PurchaseIssue',
          params: Object,
          path: '/purchaseIssue',
          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) {
      this.formDataList.pageSize = val
      this.query(this.formDataList)
    },
    handleCurrentChange(val) {
      this.formDataList.pageNum = val
      this.query(this.formDataList)
    },
    //计算金额
    totalAmount(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 == 3) {
          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) {
      listQuery(data).then(res => {
        this.tableData = res.rows
        this.total = res.total
      })
    },
    //查询列数据
    getRow(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.waitFor = true
            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.$refs.avatar.form = this.form
          this.pageDisplay = true
          this.isItHidden = true
          this.inDex = 4
        }
        if (list) {
          this.$refs.avatar.form = list.warehouseBills
          this.contentList = list.tWarehousebillsfees
          this.contentButton = this.$options.data().contentButton
          console.log(this.pendingPage)
          console.log(this.pendingPage.name)
          if (this.pendingPage.name) {
            this.contentButton.push(JSON.parse(this.$route.query.list))
          }
          let data = {
            actId: 550,
            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) {
                console.log(this.contentButton)
                this.contentButton.push({
                  type: 'warning',
                  size: 'mini',
                  icon: 'el-icon-refresh-left',
                  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-refresh-left',
              name: '撤销审批',
              disabled: false
            })
          }
          if (this.$refs.avatar.form.fBillstatus > 3) {
            console.log(this.contentButton)
            this.contentButton.push({
              type: 'primary',
              size: 'mini',
              icon: 'el-icon-edit-outline',
              name: '查看审批',
              disabled: false
            })
          }
          for (let li in this.contentButton) {
            if (this.$refs.avatar.form.fBillstatus < 4) {
              if (this.contentButton[li].name == '录入明细' || this.contentButton[li].name == '保存') {
                this.contentButton[li].disabled = true
              } else {
                this.contentButton[li].disabled = false
              }
            } else {
              if (this.contentButton[li].name == '录入明细' || this.contentButton[li].name == '保存'||
                this.contentButton[li].name == '请核' || this.contentButton[li].name == '修改') {
                this.contentButton[li].disabled = true
              } else {
                this.contentButton[li].disabled = false
              }
            }
          }
        }
      })
    },
    returnToForm(row) {
    },
    //查看
    viewMethod(scope,res) {
      this.form = this.$refs.avatar.form
      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 => {
        console.log(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.getRow(data, list)
        }
      })
    },
    //请核
    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', 'XS')
      pleaseCheck(formData).then(res => {
        if (res.code == 200) {
          this.$message.success('请核成功')
          // this.$refs.avatar.form = res.data.warehouseBills
          // this.contentList = res.data.tWarehousebillsCntrs
          this.contentOption.forEach(item => item.disabled = true)
          this.contentStyle.forEach(item => item.disabled = true)
          let data = {
            tableName: this.queryList.tableName,
            userId: Cookies.get('userName')
          }
          this.getRow(data)
          this.query(this.formDataList)
        }
      })
    },
    //修改
    modification(scope) {
    },
    //删除
    deletion(scope) {
      tableDeleteQuery(scope.row.fId).then(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
      }
    },
    addOrUpdateHand() {
      this.addOrUpdateVisib = true
      this.$nextTick(() => {
        this.$refs.ApprovalComments.init(this.$refs.avatar.form.fId, 550)
      })
    },
    //详情内容保存
    submitAndSave(item,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))
      this.dataList.fGoodsid.forEach(item => {
        if (item.value == this.$refs.avatar.form.fGoodsid) {
          this.$refs.avatar.form.fCorpid = item.fCorpid
        }
      })
      formData.append('tWarehousebills', JSON.stringify(this.$refs.avatar.form))
      formData.append('tWarehousebillsfees', JSON.stringify(this.contentList))
      formData.append('fBilltype', 'XS')
      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){
              let datae = {
                fId:this.$refs.avatar.form.fId,
                fBilltype:'XS'
              }
              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)
              })
            }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:'XS'
        }
        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) {
      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 >= 4 && !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) {
      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 '复制新单':
          if (row.nameTwo === '详情页'){
            this.$refs.avatar.submitForm('submit',3)
            console.log(this.$refs.avatar.form)
          }else {
            if (this.selection.length > 0){
              let datae = {
                fId:this.selection[0].fId,
                fBilltype:'XS'
              }
              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)
              })
            }else {
              this.$message.warning('未选择列表，请选择后再点击');
            }
          }
          break
        case '保存':
          this.$refs.avatar.submitForm('submit')
          break
        // case '打印':
        //   if (!this.$refs.avatar.form.fId){
        //     this.$message.error('未保存，不允许打印');
        //   }else {
        //     this.formList = this.$refs.avatar.form
        //     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.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 == '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 '返回列表':
          if (!this.$refs.avatar.form.fId && this.contentList !== 0 || this.$refs.avatar.form.fBillstatus >= 4 && !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)
            }).catch(() => {
              data = {
                tableName: this.queryList.tableName,
                userId: Cookies.get('userName')
              }
              this.getRow(data)
              this.query(this.formDataList)
            })
          }
          break
        case '请核':
          if (this.$refs.avatar.form.fBillstatus < 4) {
            this.$refs.avatar.submitForm('check')
          } else {
            this.$message.error('请先保存')
          }
          break
        case '查看审批':
          this.addOrUpdateHandle()
          break
        case '审批':
          this.addOrUpdateHand()
          break
        case '撤销审批':
          this.revocationOfApproval(1)
          break
        case '撤销出库':
          this.revocationOfApproval(2)
          break
        case '打印':
          console.log(this.listData.fFeeid,this.contentList)
          this.formList.createBy = Cookies.get('userName')
          for(let ul in this.dataList.fGoodsid){
            if (this.$refs.avatar.form.fGoodsid == this.dataList.fGoodsid[ul].value){
              this.projectName = this.dataList.fGoodsid[ul].label
            }
          }
          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
              }
            }
          }
          this.toChies(this.$refs.avatar.form.fMoney)
          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
            this.submitAndSave(1)
          }
          break
        default:
          this.$message.error('该按钮暂无功能')
      }
    },
    //撤销审批
    revocationOfApproval(res) {
      if (res == 1) {
        let data = {
          id: this.$refs.avatar.form.fId,
          actId: 550,
          billId: this.$refs.avatar.form.fId
        }
        revoke(data).then(res => {
          if (res.code == 200) {
            this.$message.success('撤销成功')
            this.getList()
            this.pageDisplay = true
          }
        })
      } else if (res == 2) {
        let data = {
          fId: this.$refs.avatar.form.fId
        }
        revokeBill(data).then(res => {
          if (res.code == 200) {
            this.$message.success('撤销成功')
            this.getList()
            this.pageDisplay = true
          }
        })
      }
    },
    // 显示搜索条件、点击后会调用此方法
    showSearch() {
      console.log('到我了')
      this.searchWhether = !this.searchWhether
    },
    //搜索、重置、展开
    feedback(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
      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) {
      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;
}
.print_div ::v-deep .el-table__body-wrapper{
  z-index: 2
}
.print_div ::v-deep .el-dialog__header{
  padding: 0;
}
.print_div ::v-deep .el-dialog__body{
   padding: 0 20px;
 }
.app-container ::v-deep .el-table__body-wrapper{
  z-index: 2;
}
</style>
